From de05f64f50fbe0b339a38cd5a743e2b46b7e5e69 Mon Sep 17 00:00:00 2001 From: chyyuu Date: Mon, 2 Jan 2023 02:18:17 +0000 Subject: [PATCH] deploy: 683a4fdc55bf104a9600856c8b878f1b322d52ca --- ch9-dev/COPYRIGHT.txt | 10 +- ch9-dev/FiraSans-Medium.woff | Bin 186824 -> 0 bytes ch9-dev/FiraSans-Regular.woff | Bin 183268 -> 0 bytes ch9-dev/NanumBarunGothic.ttf.woff | Bin 677868 -> 0 bytes ch9-dev/SourceCodePro-It.ttf.woff | Bin 58444 -> 0 bytes ch9-dev/SourceCodePro-Regular.ttf.woff | Bin 68152 -> 0 bytes ch9-dev/SourceCodePro-Semibold.ttf.woff | Bin 68080 -> 0 bytes ch9-dev/SourceSerif4-Bold.ttf.woff | Bin 110552 -> 0 bytes ch9-dev/SourceSerif4-It.ttf.woff | Bin 78108 -> 0 bytes ch9-dev/SourceSerif4-Regular.ttf.woff | Bin 103604 -> 0 bytes ch9-dev/ayu.css | 2 +- ch9-dev/brush.svg | 1 - ch9-dev/dark.css | 2 +- .../implementors/core/clone/trait.Clone.js | 2 +- ch9-dev/implementors/core/cmp/trait.Eq.js | 2 +- .../implementors/core/cmp/trait.PartialEq.js | 2 +- ch9-dev/implementors/core/fmt/trait.Debug.js | 2 +- .../implementors/core/marker/trait.Copy.js | 2 +- .../implementors/core/marker/trait.Freeze.js | 2 +- .../implementors/core/marker/trait.Send.js | 2 +- .../core/marker/trait.StructuralEq.js | 2 +- .../core/marker/trait.StructuralPartialEq.js | 2 +- .../implementors/core/marker/trait.Sync.js | 2 +- .../implementors/core/marker/trait.Unpin.js | 2 +- .../core/ops/deref/trait.Deref.js | 2 +- .../panic/unwind_safe/trait.RefUnwindSafe.js | 2 +- .../panic/unwind_safe/trait.UnwindSafe.js | 2 +- .../easy_fs/block_dev/trait.BlockDevice.js | 2 +- .../lazy_static/trait.LazyStatic.js | 2 +- ...{trait.GPUDevice.js => trait.GpuDevice.js} | 0 ...it.INPUTDevice.js => trait.InputDevice.js} | 0 .../implementors/os/gui/trait.Component.js | 3 - .../virtio_drivers/hal/trait.Hal.js | 3 + ch9-dev/light.css | 2 +- ch9-dev/main.js | 8 +- ch9-dev/noscript.css | 2 +- ch9-dev/os/all.html | 8 +- ch9-dev/os/board/constant.CLOCK_FREQ.html | 9 +- ch9-dev/os/board/constant.EXIT_FAILURE.html | 9 +- .../os/board/constant.EXIT_FAILURE_FLAG.html | 9 +- ch9-dev/os/board/constant.EXIT_RESET.html | 9 +- ch9-dev/os/board/constant.EXIT_SUCCESS.html | 9 +- ch9-dev/os/board/constant.MMIO.html | 9 +- .../os/board/constant.QEMU_EXIT_HANDLE.html | 9 +- ch9-dev/os/board/constant.VIRTGPU_XRES.html | 9 +- ch9-dev/os/board/constant.VIRTGPU_YRES.html | 9 +- ch9-dev/os/board/constant.VIRT_PLIC.html | 9 +- ch9-dev/os/board/constant.VIRT_TEST.html | 9 +- ch9-dev/os/board/constant.VIRT_UART.html | 9 +- ch9-dev/os/board/fn.device_init.html | 9 +- ch9-dev/os/board/fn.exit_code_encode.html | 11 +- ch9-dev/os/board/fn.irq_handler.html | 9 +- ch9-dev/os/board/index.html | 18 +- ch9-dev/os/board/sidebar-items.js | 2 +- ch9-dev/os/board/struct.RISCV64.html | 57 +- ch9-dev/os/board/trait.QEMUExit.html | 17 +- ch9-dev/os/board/type.BlockDeviceImpl.html | 9 +- ch9-dev/os/board/type.CharDeviceImpl.html | 9 +- .../os/config/constant.KERNEL_HEAP_SIZE.html | 9 +- .../os/config/constant.KERNEL_STACK_SIZE.html | 9 +- ch9-dev/os/config/constant.MEMORY_END.html | 9 +- ch9-dev/os/config/constant.PAGE_SIZE.html | 9 +- .../os/config/constant.PAGE_SIZE_BITS.html | 9 +- ch9-dev/os/config/constant.TRAMPOLINE.html | 9 +- .../os/config/constant.TRAP_CONTEXT_BASE.html | 9 +- .../os/config/constant.USER_STACK_SIZE.html | 9 +- ch9-dev/os/config/index.html | 11 +- ch9-dev/os/config/sidebar-items.js | 2 +- ch9-dev/os/console/fn.print.html | 9 +- ch9-dev/os/console/index.html | 11 +- ch9-dev/os/console/sidebar-items.js | 2 +- ch9-dev/os/console/struct.Stdout.html | 53 +- .../drivers/block/fn.block_device_test.html | 9 +- ch9-dev/os/drivers/block/index.html | 13 +- .../drivers/block/sdcard/constant.SD_CS.html | 10 - .../block/sdcard/constant.SD_CS_GPIONUM.html | 9 - ...ant.SD_START_DATA_MULTIPLE_BLOCK_READ.html | 9 - ...nt.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html | 9 - ...stant.SD_START_DATA_SINGLE_BLOCK_READ.html | 9 - ...tant.SD_START_DATA_SINGLE_BLOCK_WRITE.html | 9 - .../block/sdcard/constant.SEC_LEN.html | 8 - ch9-dev/os/drivers/block/sdcard/enum.CMD.html | 73 - .../drivers/block/sdcard/enum.InitError.html | 41 - .../drivers/block/sdcard/fn.init_sdcard.html | 8 - .../os/drivers/block/sdcard/fn.io_init.html | 9 - ch9-dev/os/drivers/block/sdcard/index.html | 24 - .../os/drivers/block/sdcard/sidebar-items.js | 1 - .../block/sdcard/struct.PERIPHERALS.html | 36 - .../drivers/block/sdcard/struct.SDCard.html | 35 - .../block/sdcard/struct.SDCardCID.html | 49 - .../block/sdcard/struct.SDCardCSD.html | 71 - .../block/sdcard/struct.SDCardInfo.html | 43 - .../block/sdcard/struct.SDCardWrapper.html | 31 - ch9-dev/os/drivers/block/sidebar-items.js | 2 +- .../os/drivers/block/struct.BLOCK_DEVICE.html | 53 +- .../block/virtio_blk/constant.VIRTIO0.html | 9 +- .../block/virtio_blk/fn.virtio_dma_alloc.html | 9 - .../virtio_blk/fn.virtio_dma_dealloc.html | 9 - .../virtio_blk/fn.virtio_phys_to_virt.html | 9 - .../virtio_blk/fn.virtio_virt_to_phys.html | 9 - .../os/drivers/block/virtio_blk/index.html | 12 +- .../drivers/block/virtio_blk/sidebar-items.js | 2 +- .../block/virtio_blk/struct.QUEUE_FRAMES.html | 36 - .../block/virtio_blk/struct.VirtIOBlock.html | 51 +- ch9-dev/os/drivers/bus/index.html | 1 + ch9-dev/os/drivers/bus/sidebar-items.js | 1 + ch9-dev/os/drivers/bus/virtio/index.html | 1 + .../os/drivers/bus/virtio/sidebar-items.js | 1 + .../bus/virtio/struct.QUEUE_FRAMES.html | 29 + .../drivers/bus/virtio/struct.VirtioHal.html | 30 + ch9-dev/os/drivers/chardev/index.html | 13 +- .../os/drivers/chardev/ns16550a/index.html | 12 +- .../drivers/chardev/ns16550a/sidebar-items.js | 2 +- .../drivers/chardev/ns16550a/struct.IER.html | 167 +- .../drivers/chardev/ns16550a/struct.LSR.html | 167 +- .../drivers/chardev/ns16550a/struct.MCR.html | 167 +- .../chardev/ns16550a/struct.NS16550a.html | 49 +- .../ns16550a/struct.NS16550aInner.html | 49 +- .../chardev/ns16550a/struct.NS16550aRaw.html | 49 +- .../ns16550a/struct.ReadWithoutDLAB.html | 49 +- .../ns16550a/struct.WriteWithoutDLAB.html | 49 +- ch9-dev/os/drivers/chardev/sidebar-items.js | 2 +- ch9-dev/os/drivers/chardev/struct.UART.html | 53 +- .../os/drivers/chardev/trait.CharDevice.html | 11 +- ch9-dev/os/drivers/gpu/constant.VIRTIO7.html | 9 +- ch9-dev/os/drivers/gpu/index.html | 13 +- ch9-dev/os/drivers/gpu/sidebar-items.js | 2 +- ch9-dev/os/drivers/gpu/static.BMP_DATA.html | 9 +- ch9-dev/os/drivers/gpu/struct.GPU_DEVICE.html | 53 +- ch9-dev/os/drivers/gpu/struct.VirtIOGPU.html | 34 - .../drivers/gpu/struct.VirtIOGpuWrapper.html | 27 + ch9-dev/os/drivers/gpu/trait.GPUDevice.html | 12 - ch9-dev/os/drivers/gpu/trait.GpuDevice.html | 5 + ch9-dev/os/drivers/index.html | 11 +- .../os/drivers/input/constant.VIRTIO5.html | 9 +- .../os/drivers/input/constant.VIRTIO6.html | 9 +- ch9-dev/os/drivers/input/index.html | 12 +- ch9-dev/os/drivers/input/sidebar-items.js | 2 +- .../drivers/input/struct.KEYBOARD_DEVICE.html | 53 +- .../os/drivers/input/struct.MOUSE_DEVICE.html | 53 +- .../os/drivers/input/struct.VirtIOINPUT.html | 31 - .../input/struct.VirtIOInputWrapper.html | 24 + .../os/drivers/input/trait.INPUTDevice.html | 10 - .../os/drivers/input/trait.InputDevice.html | 3 + .../drivers/plic/enum.IntrTargetPriority.html | 59 +- ch9-dev/os/drivers/plic/index.html | 11 +- ch9-dev/os/drivers/plic/sidebar-items.js | 2 +- ch9-dev/os/drivers/plic/struct.PLIC.html | 49 +- ch9-dev/os/drivers/sidebar-items.js | 2 +- ch9-dev/os/fn.clear_bss.html | 9 +- ch9-dev/os/fn.rust_main.html | 11 +- ch9-dev/os/fs/index.html | 12 +- ch9-dev/os/fs/inode/fn.list_apps.html | 9 +- ch9-dev/os/fs/inode/fn.open_file.html | 9 +- ch9-dev/os/fs/inode/index.html | 11 +- ch9-dev/os/fs/inode/sidebar-items.js | 2 +- ch9-dev/os/fs/inode/struct.OSInode.html | 49 +- ch9-dev/os/fs/inode/struct.OSInodeInner.html | 49 +- ch9-dev/os/fs/inode/struct.OpenFlags.html | 169 +- ch9-dev/os/fs/inode/struct.ROOT_INODE.html | 51 +- .../os/fs/pipe/constant.RING_BUFFER_SIZE.html | 9 +- ch9-dev/os/fs/pipe/enum.RingBufferStatus.html | 63 +- ch9-dev/os/fs/pipe/fn.make_pipe.html | 11 +- ch9-dev/os/fs/pipe/index.html | 15 +- ch9-dev/os/fs/pipe/sidebar-items.js | 2 +- ch9-dev/os/fs/pipe/struct.Pipe.html | 49 +- ch9-dev/os/fs/pipe/struct.PipeRingBuffer.html | 49 +- ch9-dev/os/fs/sidebar-items.js | 2 +- ch9-dev/os/fs/stdio/index.html | 10 +- ch9-dev/os/fs/stdio/sidebar-items.js | 2 +- ch9-dev/os/fs/stdio/struct.Stdin.html | 47 +- ch9-dev/os/fs/stdio/struct.Stdout.html | 47 +- ch9-dev/os/fs/trait.File.html | 11 +- ch9-dev/os/gui/button/index.html | 9 - ch9-dev/os/gui/button/sidebar-items.js | 1 - ch9-dev/os/gui/button/struct.Button.html | 33 - ch9-dev/os/gui/button/struct.ButtonInner.html | 35 - ch9-dev/os/gui/graphic/index.html | 10 +- ch9-dev/os/gui/graphic/sidebar-items.js | 2 +- ch9-dev/os/gui/graphic/struct.Graphics.html | 85 +- ch9-dev/os/gui/icon/index.html | 10 - ch9-dev/os/gui/icon/sidebar-items.js | 1 - ch9-dev/os/gui/icon/static.FILEICON.html | 8 - .../os/gui/icon/struct.IconController.html | 33 - .../gui/icon/struct.IconControllerInner.html | 35 - ch9-dev/os/gui/image/index.html | 9 - ch9-dev/os/gui/image/sidebar-items.js | 1 - ch9-dev/os/gui/image/struct.ImageComp.html | 33 - ch9-dev/os/gui/image/struct.ImageInner.html | 35 - ch9-dev/os/gui/index.html | 12 +- ch9-dev/os/gui/paint/constant.INIT_X.html | 1 + ch9-dev/os/gui/paint/constant.INIT_Y.html | 1 + ch9-dev/os/gui/paint/constant.RECT_SIZE.html | 1 + ch9-dev/os/gui/paint/fn.init_paint.html | 1 + ch9-dev/os/gui/paint/fn.move_rect.html | 1 + ch9-dev/os/gui/paint/fn.reset.html | 1 + ch9-dev/os/gui/paint/index.html | 1 + ch9-dev/os/gui/paint/sidebar-items.js | 1 + .../os/gui/paint/struct.DRAWING_BOARD.html | 29 + ch9-dev/os/gui/paint/struct.DrawingBoard.html | 27 + ch9-dev/os/gui/panel/index.html | 9 - ch9-dev/os/gui/panel/sidebar-items.js | 1 - ch9-dev/os/gui/panel/struct.Panel.html | 33 - ch9-dev/os/gui/panel/struct.PanelInner.html | 34 - ch9-dev/os/gui/sidebar-items.js | 2 +- ch9-dev/os/gui/terminal/index.html | 9 - ch9-dev/os/gui/terminal/sidebar-items.js | 1 - ch9-dev/os/gui/terminal/struct.Terminal.html | 33 - .../os/gui/terminal/struct.TerminalInner.html | 36 - ch9-dev/os/gui/trait.Component.html | 12 - ch9-dev/os/index.html | 13 +- ch9-dev/os/lang_items/fn.backtrace.html | 9 +- ch9-dev/os/lang_items/fn.panic.html | 9 +- ch9-dev/os/lang_items/index.html | 10 +- ch9-dev/os/lang_items/sidebar-items.js | 2 +- ch9-dev/os/macro.print.html | 11 +- ch9-dev/os/macro.println.html | 11 +- .../os/mm/address/constant.PA_WIDTH_SV39.html | 9 +- .../mm/address/constant.PPN_WIDTH_SV39.html | 9 +- .../os/mm/address/constant.VA_WIDTH_SV39.html | 9 +- .../mm/address/constant.VPN_WIDTH_SV39.html | 9 +- ch9-dev/os/mm/address/index.html | 15 +- ch9-dev/os/mm/address/sidebar-items.js | 2 +- ch9-dev/os/mm/address/struct.PhysAddr.html | 89 +- ch9-dev/os/mm/address/struct.PhysPageNum.html | 87 +- ch9-dev/os/mm/address/struct.SimpleRange.html | 63 +- .../address/struct.SimpleRangeIterator.html | 206 ++- ch9-dev/os/mm/address/struct.VirtAddr.html | 87 +- ch9-dev/os/mm/address/struct.VirtPageNum.html | 87 +- ch9-dev/os/mm/address/trait.StepByOne.html | 11 +- ch9-dev/os/mm/address/type.VPNRange.html | 9 +- ch9-dev/os/mm/fn.init.html | 9 +- .../os/mm/frame_allocator/fn.frame_alloc.html | 9 +- .../fn.frame_allocator_test.html | 9 +- .../mm/frame_allocator/fn.frame_dealloc.html | 9 +- .../fn.init_frame_allocator.html | 9 +- ch9-dev/os/mm/frame_allocator/index.html | 13 +- .../os/mm/frame_allocator/sidebar-items.js | 2 +- .../struct.FRAME_ALLOCATOR.html | 53 +- .../frame_allocator/struct.FrameTracker.html | 53 +- .../struct.StackFrameAllocator.html | 49 +- .../frame_allocator/trait.FrameAllocator.html | 11 +- .../type.FrameAllocatorImpl.html | 9 +- .../heap_allocator/fn.handle_alloc_error.html | 9 +- .../os/mm/heap_allocator/fn.heap_test.html | 9 +- .../os/mm/heap_allocator/fn.init_heap.html | 9 +- ch9-dev/os/mm/heap_allocator/index.html | 11 +- ch9-dev/os/mm/heap_allocator/sidebar-items.js | 2 +- .../heap_allocator/static.HEAP_ALLOCATOR.html | 9 +- .../mm/heap_allocator/static.HEAP_SPACE.html | 9 +- ch9-dev/os/mm/index.html | 12 +- ch9-dev/os/mm/memory_set/enum.MapType.html | 65 +- ch9-dev/os/mm/memory_set/fn.ebss.html | 9 +- ch9-dev/os/mm/memory_set/fn.edata.html | 9 +- ch9-dev/os/mm/memory_set/fn.ekernel.html | 9 +- ch9-dev/os/mm/memory_set/fn.erodata.html | 9 +- ch9-dev/os/mm/memory_set/fn.etext.html | 9 +- ch9-dev/os/mm/memory_set/fn.kernel_token.html | 9 +- ch9-dev/os/mm/memory_set/fn.remap_test.html | 9 +- .../os/mm/memory_set/fn.sbss_with_stack.html | 9 +- ch9-dev/os/mm/memory_set/fn.sdata.html | 9 +- ch9-dev/os/mm/memory_set/fn.srodata.html | 9 +- ch9-dev/os/mm/memory_set/fn.stext.html | 9 +- ch9-dev/os/mm/memory_set/fn.strampoline.html | 9 +- ch9-dev/os/mm/memory_set/index.html | 12 +- ch9-dev/os/mm/memory_set/sidebar-items.js | 2 +- .../os/mm/memory_set/struct.KERNEL_SPACE.html | 51 +- ch9-dev/os/mm/memory_set/struct.MapArea.html | 51 +- .../mm/memory_set/struct.MapPermission.html | 167 +- .../os/mm/memory_set/struct.MemorySet.html | 57 +- .../page_table/fn.translated_byte_buffer.html | 9 +- .../os/mm/page_table/fn.translated_ref.html | 9 +- .../mm/page_table/fn.translated_refmut.html | 9 +- .../os/mm/page_table/fn.translated_str.html | 11 +- ch9-dev/os/mm/page_table/index.html | 13 +- ch9-dev/os/mm/page_table/sidebar-items.js | 2 +- ch9-dev/os/mm/page_table/struct.PTEFlags.html | 167 +- .../os/mm/page_table/struct.PageTable.html | 53 +- .../mm/page_table/struct.PageTableEntry.html | 59 +- .../os/mm/page_table/struct.UserBuffer.html | 55 +- .../page_table/struct.UserBufferIterator.html | 204 ++- ch9-dev/os/mm/sidebar-items.js | 2 +- ch9-dev/os/sbi/constant.SBI_CLEAR_IPI.html | 9 +- .../os/sbi/constant.SBI_CONSOLE_GETCHAR.html | 9 +- .../os/sbi/constant.SBI_CONSOLE_PUTCHAR.html | 9 +- .../os/sbi/constant.SBI_REMOTE_FENCE_I.html | 9 +- .../sbi/constant.SBI_REMOTE_SFENCE_VMA.html | 9 +- .../constant.SBI_REMOTE_SFENCE_VMA_ASID.html | 9 +- ch9-dev/os/sbi/constant.SBI_SEND_IPI.html | 9 +- ch9-dev/os/sbi/constant.SBI_SET_TIMER.html | 9 +- ch9-dev/os/sbi/constant.SBI_SHUTDOWN.html | 9 +- ch9-dev/os/sbi/fn.console_getchar.html | 9 +- ch9-dev/os/sbi/fn.console_putchar.html | 9 +- ch9-dev/os/sbi/fn.sbi_call.html | 9 +- ch9-dev/os/sbi/fn.set_timer.html | 9 +- ch9-dev/os/sbi/fn.shutdown.html | 9 +- ch9-dev/os/sbi/index.html | 11 +- ch9-dev/os/sbi/sidebar-items.js | 2 +- ch9-dev/os/sidebar-items.js | 2 +- .../os/struct.DEV_NON_BLOCKING_ACCESS.html | 55 +- ch9-dev/os/sync/condvar/index.html | 10 +- ch9-dev/os/sync/condvar/sidebar-items.js | 2 +- ch9-dev/os/sync/condvar/struct.Condvar.html | 49 +- .../os/sync/condvar/struct.CondvarInner.html | 49 +- ch9-dev/os/sync/index.html | 11 +- ch9-dev/os/sync/mutex/index.html | 11 +- ch9-dev/os/sync/mutex/sidebar-items.js | 2 +- .../os/sync/mutex/struct.MutexBlocking.html | 49 +- .../sync/mutex/struct.MutexBlockingInner.html | 49 +- ch9-dev/os/sync/mutex/struct.MutexSpin.html | 49 +- ch9-dev/os/sync/mutex/trait.Mutex.html | 11 +- ch9-dev/os/sync/semaphore/index.html | 10 +- ch9-dev/os/sync/semaphore/sidebar-items.js | 2 +- .../os/sync/semaphore/struct.Semaphore.html | 49 +- .../sync/semaphore/struct.SemaphoreInner.html | 49 +- ch9-dev/os/sync/sidebar-items.js | 2 +- ch9-dev/os/sync/up/index.html | 10 +- ch9-dev/os/sync/up/sidebar-items.js | 2 +- .../os/sync/up/struct.INTR_MASKING_INFO.html | 51 +- .../os/sync/up/struct.IntrMaskingInfo.html | 49 +- ch9-dev/os/sync/up/struct.UPIntrFreeCell.html | 51 +- ch9-dev/os/sync/up/struct.UPIntrRefMut.html | 53 +- ch9-dev/os/sync/up/struct.UPSafeCellRaw.html | 49 +- .../os/syscall/constant.SYSCALL_CLOSE.html | 9 +- .../constant.SYSCALL_CONDVAR_CREATE.html | 9 +- .../constant.SYSCALL_CONDVAR_SIGNAL.html | 9 +- .../constant.SYSCALL_CONDVAR_WAIT.html | 9 +- .../constant.SYSCALL_CREATE_DESKTOP.html | 8 - ch9-dev/os/syscall/constant.SYSCALL_DUP.html | 9 +- ch9-dev/os/syscall/constant.SYSCALL_EXEC.html | 9 +- ch9-dev/os/syscall/constant.SYSCALL_EXIT.html | 9 +- ch9-dev/os/syscall/constant.SYSCALL_FORK.html | 9 +- .../os/syscall/constant.SYSCALL_GETPID.html | 9 +- .../os/syscall/constant.SYSCALL_GETTID.html | 9 +- .../os/syscall/constant.SYSCALL_GET_TIME.html | 9 +- ch9-dev/os/syscall/constant.SYSCALL_KILL.html | 9 +- .../constant.SYSCALL_MUTEX_CREATE.html | 9 +- .../syscall/constant.SYSCALL_MUTEX_LOCK.html | 9 +- .../constant.SYSCALL_MUTEX_UNLOCK.html | 9 +- ch9-dev/os/syscall/constant.SYSCALL_OPEN.html | 9 +- ch9-dev/os/syscall/constant.SYSCALL_PIPE.html | 9 +- ch9-dev/os/syscall/constant.SYSCALL_READ.html | 9 +- .../constant.SYSCALL_SEMAPHORE_CREATE.html | 9 +- .../constant.SYSCALL_SEMAPHORE_DOWN.html | 9 +- .../constant.SYSCALL_SEMAPHORE_UP.html | 9 +- .../os/syscall/constant.SYSCALL_SLEEP.html | 9 +- .../constant.SYSCALL_THREAD_CREATE.html | 9 +- .../os/syscall/constant.SYSCALL_WAITPID.html | 9 +- .../os/syscall/constant.SYSCALL_WAITTID.html | 9 +- .../os/syscall/constant.SYSCALL_WRITE.html | 9 +- .../os/syscall/constant.SYSCALL_YIELD.html | 9 +- ch9-dev/os/syscall/fn.syscall.html | 9 +- ch9-dev/os/syscall/fs/fn.sys_close.html | 9 +- ch9-dev/os/syscall/fs/fn.sys_dup.html | 9 +- ch9-dev/os/syscall/fs/fn.sys_open.html | 9 +- ch9-dev/os/syscall/fs/fn.sys_pipe.html | 9 +- ch9-dev/os/syscall/fs/fn.sys_read.html | 9 +- ch9-dev/os/syscall/fs/fn.sys_write.html | 9 +- ch9-dev/os/syscall/fs/index.html | 10 +- ch9-dev/os/syscall/fs/sidebar-items.js | 2 +- ch9-dev/os/syscall/gui/fn.create_desktop.html | 8 - .../os/syscall/gui/fn.create_terminal.html | 8 - ch9-dev/os/syscall/gui/index.html | 11 - ch9-dev/os/syscall/gui/sidebar-items.js | 1 - ch9-dev/os/syscall/gui/static.DT.html | 8 - ch9-dev/os/syscall/gui/struct.DESKTOP.html | 36 - ch9-dev/os/syscall/gui/struct.PAD.html | 36 - ch9-dev/os/syscall/index.html | 13 +- ch9-dev/os/syscall/process/fn.sys_exec.html | 9 +- ch9-dev/os/syscall/process/fn.sys_exit.html | 9 +- ch9-dev/os/syscall/process/fn.sys_fork.html | 9 +- .../os/syscall/process/fn.sys_get_time.html | 9 +- ch9-dev/os/syscall/process/fn.sys_getpid.html | 9 +- ch9-dev/os/syscall/process/fn.sys_kill.html | 9 +- .../os/syscall/process/fn.sys_waitpid.html | 11 +- ch9-dev/os/syscall/process/fn.sys_yield.html | 9 +- ch9-dev/os/syscall/process/index.html | 12 +- ch9-dev/os/syscall/process/sidebar-items.js | 2 +- ch9-dev/os/syscall/sidebar-items.js | 2 +- .../syscall/sync/fn.sys_condvar_create.html | 9 +- .../syscall/sync/fn.sys_condvar_signal.html | 9 +- .../os/syscall/sync/fn.sys_condvar_wait.html | 9 +- .../os/syscall/sync/fn.sys_mutex_create.html | 9 +- .../os/syscall/sync/fn.sys_mutex_lock.html | 9 +- .../os/syscall/sync/fn.sys_mutex_unlock.html | 9 +- .../syscall/sync/fn.sys_semaphore_create.html | 9 +- .../syscall/sync/fn.sys_semaphore_down.html | 9 +- .../os/syscall/sync/fn.sys_semaphore_up.html | 9 +- ch9-dev/os/syscall/sync/fn.sys_sleep.html | 9 +- ch9-dev/os/syscall/sync/index.html | 10 +- ch9-dev/os/syscall/sync/sidebar-items.js | 2 +- ch9-dev/os/syscall/thread/fn.sys_gettid.html | 9 +- .../syscall/thread/fn.sys_thread_create.html | 9 +- ch9-dev/os/syscall/thread/fn.sys_waittid.html | 11 +- ch9-dev/os/syscall/thread/index.html | 12 +- ch9-dev/os/syscall/thread/sidebar-items.js | 2 +- ch9-dev/os/task/context/index.html | 10 +- ch9-dev/os/task/context/sidebar-items.js | 2 +- .../os/task/context/struct.TaskContext.html | 49 +- ch9-dev/os/task/fn.add_initproc.html | 9 +- .../task/fn.block_current_and_run_next.html | 9 +- ch9-dev/os/task/fn.block_current_task.html | 11 +- .../os/task/fn.check_signals_of_current.html | 9 +- ch9-dev/os/task/fn.current_add_signal.html | 9 +- .../os/task/fn.exit_current_and_run_next.html | 9 +- .../task/fn.suspend_current_and_run_next.html | 9 +- ch9-dev/os/task/id/constant.IDLE_PID.html | 9 +- .../os/task/id/fn.kernel_stack_position.html | 11 +- ch9-dev/os/task/id/fn.kstack_alloc.html | 9 +- ch9-dev/os/task/id/fn.pid_alloc.html | 9 +- .../task/id/fn.trap_cx_bottom_from_tid.html | 9 +- .../os/task/id/fn.ustack_bottom_from_tid.html | 9 +- ch9-dev/os/task/id/index.html | 14 +- ch9-dev/os/task/id/sidebar-items.js | 2 +- .../os/task/id/struct.KSTACK_ALLOCATOR.html | 53 +- ch9-dev/os/task/id/struct.KernelStack.html | 49 +- ch9-dev/os/task/id/struct.PID_ALLOCATOR.html | 53 +- ch9-dev/os/task/id/struct.PidHandle.html | 49 +- .../os/task/id/struct.RecycleAllocator.html | 49 +- ch9-dev/os/task/id/struct.TaskUserRes.html | 51 +- ch9-dev/os/task/index.html | 15 +- ch9-dev/os/task/manager/fn.add_task.html | 9 +- ch9-dev/os/task/manager/fn.fetch_task.html | 9 +- .../manager/fn.insert_into_pid2process.html | 9 +- ch9-dev/os/task/manager/fn.pid2process.html | 9 +- .../manager/fn.remove_from_pid2process.html | 9 +- ch9-dev/os/task/manager/index.html | 11 +- ch9-dev/os/task/manager/sidebar-items.js | 2 +- ch9-dev/os/task/manager/struct.PID2PCB.html | 53 +- .../os/task/manager/struct.TASK_MANAGER.html | 53 +- .../os/task/manager/struct.TaskManager.html | 51 +- ch9-dev/os/task/process/index.html | 10 +- ch9-dev/os/task/process/sidebar-items.js | 2 +- .../process/struct.ProcessControlBlock.html | 53 +- .../struct.ProcessControlBlockInner.html | 49 +- .../task/processor/fn.current_kstack_top.html | 9 +- .../os/task/processor/fn.current_process.html | 9 +- .../os/task/processor/fn.current_task.html | 9 +- .../os/task/processor/fn.current_trap_cx.html | 9 +- .../processor/fn.current_trap_cx_user_va.html | 9 +- .../task/processor/fn.current_user_token.html | 9 +- ch9-dev/os/task/processor/fn.run_tasks.html | 9 +- ch9-dev/os/task/processor/fn.schedule.html | 9 +- .../task/processor/fn.take_current_task.html | 9 +- ch9-dev/os/task/processor/index.html | 11 +- ch9-dev/os/task/processor/sidebar-items.js | 2 +- .../os/task/processor/struct.PROCESSOR.html | 53 +- .../os/task/processor/struct.Processor.html | 49 +- ch9-dev/os/task/sidebar-items.js | 2 +- ch9-dev/os/task/signal/index.html | 10 +- ch9-dev/os/task/signal/sidebar-items.js | 2 +- .../os/task/signal/struct.SignalFlags.html | 167 +- ch9-dev/os/task/struct.INITPROC.html | 53 +- ch9-dev/os/task/switch/fn.__switch.html | 9 +- ch9-dev/os/task/switch/index.html | 10 +- ch9-dev/os/task/switch/sidebar-items.js | 2 +- ch9-dev/os/task/task/enum.TaskStatus.html | 63 +- ch9-dev/os/task/task/index.html | 11 +- ch9-dev/os/task/task/sidebar-items.js | 2 +- .../os/task/task/struct.TaskControlBlock.html | 49 +- .../task/struct.TaskControlBlockInner.html | 49 +- ch9-dev/os/timer/constant.MSEC_PER_SEC.html | 9 +- ch9-dev/os/timer/constant.TICKS_PER_SEC.html | 9 +- ch9-dev/os/timer/fn.add_timer.html | 9 +- ch9-dev/os/timer/fn.check_timer.html | 9 +- ch9-dev/os/timer/fn.get_time.html | 9 +- ch9-dev/os/timer/fn.get_time_ms.html | 9 +- ch9-dev/os/timer/fn.set_next_trigger.html | 9 +- ch9-dev/os/timer/index.html | 12 +- ch9-dev/os/timer/sidebar-items.js | 2 +- ch9-dev/os/timer/struct.TIMERS.html | 53 +- ch9-dev/os/timer/struct.TimerCondVar.html | 71 +- ch9-dev/os/trap/context/index.html | 10 +- ch9-dev/os/trap/context/sidebar-items.js | 2 +- .../os/trap/context/struct.TrapContext.html | 51 +- .../trap/fn.disable_supervisor_interrupt.html | 9 +- .../trap/fn.enable_supervisor_interrupt.html | 9 +- .../os/trap/fn.enable_timer_interrupt.html | 9 +- ch9-dev/os/trap/fn.init.html | 9 +- ch9-dev/os/trap/fn.set_kernel_trap_entry.html | 9 +- ch9-dev/os/trap/fn.set_user_trap_entry.html | 9 +- ch9-dev/os/trap/fn.trap_from_kernel.html | 11 +- ch9-dev/os/trap/fn.trap_handler.html | 11 +- ch9-dev/os/trap/fn.trap_return.html | 11 +- ch9-dev/os/trap/index.html | 12 +- ch9-dev/os/trap/sidebar-items.js | 2 +- ch9-dev/rustdoc.css | 2 +- ch9-dev/search-index.js | 5 +- ch9-dev/search.js | 3 +- ch9-dev/settings.css | 2 +- ch9-dev/settings.html | 18 +- ch9-dev/settings.js | 12 +- ch9-dev/source-files.js | 5 +- ch9-dev/source-script.js | 2 +- ch9-dev/src/os/boards/qemu.rs.html | 14 +- ch9-dev/src/os/config.rs.html | 10 +- ch9-dev/src/os/console.rs.html | 22 +- ch9-dev/src/os/drivers/block/mod.rs.html | 16 +- ch9-dev/src/os/drivers/block/sdcard.rs.html | 1542 ----------------- .../src/os/drivers/block/virtio_blk.rs.html | 108 +- ch9-dev/src/os/drivers/bus/mod.rs.html | 4 + ch9-dev/src/os/drivers/bus/virtio.rs.html | 106 ++ ch9-dev/src/os/drivers/chardev/mod.rs.html | 14 +- .../src/os/drivers/chardev/ns16550a.rs.html | 10 +- ch9-dev/src/os/drivers/gpu/mod.rs.html | 34 +- ch9-dev/src/os/drivers/input/mod.rs.html | 94 +- ch9-dev/src/os/drivers/mod.rs.html | 20 +- ch9-dev/src/os/drivers/plic.rs.html | 10 +- ch9-dev/src/os/fs/inode.rs.html | 10 +- ch9-dev/src/os/fs/mod.rs.html | 10 +- ch9-dev/src/os/fs/pipe.rs.html | 43 +- ch9-dev/src/os/fs/stdio.rs.html | 64 +- ch9-dev/src/os/gui/button.rs.html | 166 -- ch9-dev/src/os/gui/graphic.rs.html | 32 +- ch9-dev/src/os/gui/icon.rs.html | 166 -- ch9-dev/src/os/gui/image.rs.html | 168 -- ch9-dev/src/os/gui/mod.rs.html | 50 +- ch9-dev/src/os/gui/paint.rs.html | 126 ++ ch9-dev/src/os/gui/panel.rs.html | 140 -- ch9-dev/src/os/gui/terminal.rs.html | 218 --- ch9-dev/src/os/lang_items.rs.html | 10 +- ch9-dev/src/os/main.rs.html | 38 +- ch9-dev/src/os/mm/address.rs.html | 10 +- ch9-dev/src/os/mm/frame_allocator.rs.html | 12 +- ch9-dev/src/os/mm/heap_allocator.rs.html | 10 +- ch9-dev/src/os/mm/memory_set.rs.html | 36 +- ch9-dev/src/os/mm/mod.rs.html | 10 +- ch9-dev/src/os/mm/page_table.rs.html | 10 +- ch9-dev/src/os/sbi.rs.html | 24 +- ch9-dev/src/os/sync/condvar.rs.html | 10 +- ch9-dev/src/os/sync/mod.rs.html | 10 +- ch9-dev/src/os/sync/mutex.rs.html | 10 +- ch9-dev/src/os/sync/semaphore.rs.html | 10 +- ch9-dev/src/os/sync/up.rs.html | 10 +- ch9-dev/src/os/syscall/fs.rs.html | 10 +- ch9-dev/src/os/syscall/gui.rs.html | 134 -- ch9-dev/src/os/syscall/mod.rs.html | 98 +- ch9-dev/src/os/syscall/process.rs.html | 10 +- ch9-dev/src/os/syscall/sync.rs.html | 10 +- ch9-dev/src/os/syscall/thread.rs.html | 10 +- ch9-dev/src/os/task/context.rs.html | 10 +- ch9-dev/src/os/task/id.rs.html | 10 +- ch9-dev/src/os/task/manager.rs.html | 10 +- ch9-dev/src/os/task/mod.rs.html | 14 +- ch9-dev/src/os/task/process.rs.html | 10 +- ch9-dev/src/os/task/processor.rs.html | 10 +- ch9-dev/src/os/task/signal.rs.html | 10 +- ch9-dev/src/os/task/switch.rs.html | 10 +- ch9-dev/src/os/task/task.rs.html | 10 +- ch9-dev/src/os/timer.rs.html | 28 +- ch9-dev/src/os/trap/context.rs.html | 10 +- ch9-dev/src/os/trap/mod.rs.html | 12 +- ch9-dev/storage.js | 2 +- 553 files changed, 3536 insertions(+), 9768 deletions(-) delete mode 100644 ch9-dev/FiraSans-Medium.woff delete mode 100644 ch9-dev/FiraSans-Regular.woff delete mode 100644 ch9-dev/NanumBarunGothic.ttf.woff delete mode 100644 ch9-dev/SourceCodePro-It.ttf.woff delete mode 100644 ch9-dev/SourceCodePro-Regular.ttf.woff delete mode 100644 ch9-dev/SourceCodePro-Semibold.ttf.woff delete mode 100644 ch9-dev/SourceSerif4-Bold.ttf.woff delete mode 100644 ch9-dev/SourceSerif4-It.ttf.woff delete mode 100644 ch9-dev/SourceSerif4-Regular.ttf.woff delete mode 100644 ch9-dev/brush.svg rename ch9-dev/implementors/os/drivers/gpu/{trait.GPUDevice.js => trait.GpuDevice.js} (100%) rename ch9-dev/implementors/os/drivers/input/{trait.INPUTDevice.js => trait.InputDevice.js} (100%) delete mode 100644 ch9-dev/implementors/os/gui/trait.Component.js create mode 100644 ch9-dev/implementors/virtio_drivers/hal/trait.Hal.js delete mode 100644 ch9-dev/os/drivers/block/sdcard/constant.SD_CS.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/constant.SD_CS_GPIONUM.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_READ.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_READ.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_WRITE.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/constant.SEC_LEN.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/enum.CMD.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/enum.InitError.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/fn.init_sdcard.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/fn.io_init.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/index.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/sidebar-items.js delete mode 100644 ch9-dev/os/drivers/block/sdcard/struct.PERIPHERALS.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/struct.SDCard.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/struct.SDCardCID.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/struct.SDCardCSD.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/struct.SDCardInfo.html delete mode 100644 ch9-dev/os/drivers/block/sdcard/struct.SDCardWrapper.html delete mode 100644 ch9-dev/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html delete mode 100644 ch9-dev/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html delete mode 100644 ch9-dev/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html delete mode 100644 ch9-dev/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html delete mode 100644 ch9-dev/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html create mode 100644 ch9-dev/os/drivers/bus/index.html create mode 100644 ch9-dev/os/drivers/bus/sidebar-items.js create mode 100644 ch9-dev/os/drivers/bus/virtio/index.html create mode 100644 ch9-dev/os/drivers/bus/virtio/sidebar-items.js create mode 100644 ch9-dev/os/drivers/bus/virtio/struct.QUEUE_FRAMES.html create mode 100644 ch9-dev/os/drivers/bus/virtio/struct.VirtioHal.html delete mode 100644 ch9-dev/os/drivers/gpu/struct.VirtIOGPU.html create mode 100644 ch9-dev/os/drivers/gpu/struct.VirtIOGpuWrapper.html delete mode 100644 ch9-dev/os/drivers/gpu/trait.GPUDevice.html create mode 100644 ch9-dev/os/drivers/gpu/trait.GpuDevice.html delete mode 100644 ch9-dev/os/drivers/input/struct.VirtIOINPUT.html create mode 100644 ch9-dev/os/drivers/input/struct.VirtIOInputWrapper.html delete mode 100644 ch9-dev/os/drivers/input/trait.INPUTDevice.html create mode 100644 ch9-dev/os/drivers/input/trait.InputDevice.html delete mode 100644 ch9-dev/os/gui/button/index.html delete mode 100644 ch9-dev/os/gui/button/sidebar-items.js delete mode 100644 ch9-dev/os/gui/button/struct.Button.html delete mode 100644 ch9-dev/os/gui/button/struct.ButtonInner.html delete mode 100644 ch9-dev/os/gui/icon/index.html delete mode 100644 ch9-dev/os/gui/icon/sidebar-items.js delete mode 100644 ch9-dev/os/gui/icon/static.FILEICON.html delete mode 100644 ch9-dev/os/gui/icon/struct.IconController.html delete mode 100644 ch9-dev/os/gui/icon/struct.IconControllerInner.html delete mode 100644 ch9-dev/os/gui/image/index.html delete mode 100644 ch9-dev/os/gui/image/sidebar-items.js delete mode 100644 ch9-dev/os/gui/image/struct.ImageComp.html delete mode 100644 ch9-dev/os/gui/image/struct.ImageInner.html create mode 100644 ch9-dev/os/gui/paint/constant.INIT_X.html create mode 100644 ch9-dev/os/gui/paint/constant.INIT_Y.html create mode 100644 ch9-dev/os/gui/paint/constant.RECT_SIZE.html create mode 100644 ch9-dev/os/gui/paint/fn.init_paint.html create mode 100644 ch9-dev/os/gui/paint/fn.move_rect.html create mode 100644 ch9-dev/os/gui/paint/fn.reset.html create mode 100644 ch9-dev/os/gui/paint/index.html create mode 100644 ch9-dev/os/gui/paint/sidebar-items.js create mode 100644 ch9-dev/os/gui/paint/struct.DRAWING_BOARD.html create mode 100644 ch9-dev/os/gui/paint/struct.DrawingBoard.html delete mode 100644 ch9-dev/os/gui/panel/index.html delete mode 100644 ch9-dev/os/gui/panel/sidebar-items.js delete mode 100644 ch9-dev/os/gui/panel/struct.Panel.html delete mode 100644 ch9-dev/os/gui/panel/struct.PanelInner.html delete mode 100644 ch9-dev/os/gui/terminal/index.html delete mode 100644 ch9-dev/os/gui/terminal/sidebar-items.js delete mode 100644 ch9-dev/os/gui/terminal/struct.Terminal.html delete mode 100644 ch9-dev/os/gui/terminal/struct.TerminalInner.html delete mode 100644 ch9-dev/os/gui/trait.Component.html delete mode 100644 ch9-dev/os/syscall/constant.SYSCALL_CREATE_DESKTOP.html delete mode 100644 ch9-dev/os/syscall/gui/fn.create_desktop.html delete mode 100644 ch9-dev/os/syscall/gui/fn.create_terminal.html delete mode 100644 ch9-dev/os/syscall/gui/index.html delete mode 100644 ch9-dev/os/syscall/gui/sidebar-items.js delete mode 100644 ch9-dev/os/syscall/gui/static.DT.html delete mode 100644 ch9-dev/os/syscall/gui/struct.DESKTOP.html delete mode 100644 ch9-dev/os/syscall/gui/struct.PAD.html delete mode 100644 ch9-dev/src/os/drivers/block/sdcard.rs.html create mode 100644 ch9-dev/src/os/drivers/bus/mod.rs.html create mode 100644 ch9-dev/src/os/drivers/bus/virtio.rs.html delete mode 100644 ch9-dev/src/os/gui/button.rs.html delete mode 100644 ch9-dev/src/os/gui/icon.rs.html delete mode 100644 ch9-dev/src/os/gui/image.rs.html create mode 100644 ch9-dev/src/os/gui/paint.rs.html delete mode 100644 ch9-dev/src/os/gui/panel.rs.html delete mode 100644 ch9-dev/src/os/gui/terminal.rs.html delete mode 100644 ch9-dev/src/os/syscall/gui.rs.html diff --git a/ch9-dev/COPYRIGHT.txt b/ch9-dev/COPYRIGHT.txt index c2629a83..34e48134 100644 --- a/ch9-dev/COPYRIGHT.txt +++ b/ch9-dev/COPYRIGHT.txt @@ -2,8 +2,7 @@ These documentation pages include resources by third parties. This copyright file applies only to those resources. The following third party resources are included, and carry their own copyright notices and license terms: -* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2, - FiraSans-Regular.woff, FiraSans-Medium.woff): +* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2): Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ with Reserved Font Name Fira Sans. @@ -25,9 +24,7 @@ included, and carry their own copyright notices and license terms: Licensed under the MIT license (see LICENSE-MIT.txt). * Source Code Pro (SourceCodePro-Regular.ttf.woff2, - SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2, - SourceCodePro-Regular.ttf.woff, SourceCodePro-Semibold.ttf.woff, - SourceCodePro-It.ttf.woff): + SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2): Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark @@ -37,8 +34,7 @@ included, and carry their own copyright notices and license terms: See SourceCodePro-LICENSE.txt. * Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2, - SourceSerif4-It.ttf.woff2, SourceSerif4-Regular.ttf.woff, - SourceSerif4-Bold.ttf.woff, SourceSerif4-It.ttf.woff): + SourceSerif4-It.ttf.woff2): Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United diff --git a/ch9-dev/FiraSans-Medium.woff b/ch9-dev/FiraSans-Medium.woff deleted file mode 100644 index 7d742c5fb7d4597ae140f8418f52ffe03dc75343..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 186824 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

W=jJ>x1=hAmW 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 K4`YsgT&eiD=t+k3M&gZ?bM{*ho&j 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 z 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 diff --git a/ch9-dev/FiraSans-Regular.woff b/ch9-dev/FiraSans-Regular.woff deleted file mode 100644 index d8e0363f4e1a000568d782653291e14c66ee3485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 183268 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⋘6;xf~32d$0yk&7>f75=aNfY{aX;P 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ȫt(PxR${=poRw4*a?_M2*akmH!V-Xt0A{c`H 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�mPX# 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�!M;-`|jfKN2Rtzp_Y+O=aR|l+u`2j7fypNl2G(SL# zAXfrz9B_9CoHGM7S`GMRE=WLsmfACE$HH0tT zX5(eBn}N1FvxF|TGgk>dWD^Cm>|z}r?qXUR$Z{g<*&=ktn<5Cf^}KSKZb|z9vX`N z#=*8MILf=}rrhr6cZP@WBLB&mS!`2oR;GilUvTIqs4RhJxQaf*&}zeU6*fzM5^!rQ zXX&p698N^i&Zev;E}c(4&*s~EIR)f`(G5lon+BFC2!L9t)q)gim`HvT%Ro0%fXbD- z0bps?7R&>*3x+ogIcjvOgO2*0yl?k$)DL37QP{%3x9se@!~sX?=%A-#-Bmi8=IIzf zO$RqzGm&Toy)`@inn6Tjz}=h<&`+?N!aH;jfib*!VsqCN0&@sV1He+|g=qfs#^DC+ zG(L{Nv}T`g1rU3>o%jDzGmy1s_H!%6FsTU0U7Matmn$o3a@`$qhx1p}oIC%}Kbz}u zEdOKq9c3L2X9nX>=Pzl=oC<}uW_n8bWd4Km=FMO8UDJ5}pB=Io7{o|=z2$iR4S>TT zMEddk8v%EvWSozk0jw}!D`dhCciUwPomkJWapYbdvi4HGcVn%@4G5vb7t zJDBuo#6FZ3_V~`C!?hWXFomt(fTt__H4dPr{s0|FQNk_R%N*G*3aOre-(k{ z2<%7TAintw9+|=;^>}0sf#Vcl1G3>gG@#c4M^BL#ZBeBW5k7WkIZ_9oi%q|El|*M< zE4qL1!PiV{F`*0RA7sBB`R9NCeOP z8pH4)kR6GP+W$;RTmH{lqb&_MLa4gojq?x9J%7=0`~Ogse*gUJ^rjLVBUD_UzA_Nl zZ63P+U%ucA0jr_=SAhW7WI0%$;jWH@yT)?pKEqub=e+CU;I6lvC(Up-#1Uef!3ERm z^8&(+9`Z2#N(PG(^f=YYM^s|q2Aec0&IWneAf2Y+069ZPn3W6dUWxfjwv{(Wm0l@a zR>ceEG2hFe>3uwmm%+n&RASZW#u=K0RKl|9;Kf8zOdH?~M&+h8CD)4(mw`BS&|o^I z6>2cpP(wbXhVkGSJ<3J^)ZjO(K>=2SqM`;RZw=ha8r3`d4$6};1f~&?_>HG>q(s=U zK6M_0rD4#u5NyXNXvm`_{S{yCgaTjb2VE)?37*;2x%(|(Ycs>@DV zji~KhN=MYXs$fKIT}wgtSWN5nCc`K@E$(K6!eHYyw*hXu<#3as~k7sa5Re;!YsxRPT_Q91@7bgqExC~m zSIWnHk6JljjE73$kQ#$n1i{I8kp~&Jo+j7? z^F&Ic7(JSD@i41J`mbHs1f6=3x`=05JUlVkfliiLoF=>;=M0L{ic1Lq95>DOa;USt z%3&AXiv0083P>yQ39L1(Oj4NL}?FNkJ8f#2vd9<{ZlLQ>{pw9Q;yFKtGnpfZr z54$v-?mc*@Pr|WFM!!D(aABLU&npRpE`6Dwxbm9=WifX^{ye(Rc0=?wIcYNT2CjnS zetbcUHIUKgH-y6*&V7EVMfmC#DfTMJ-4d>X)Q7K%V1ap`{9)#^WActtDvgk*VA(Po zJID4H^Ll6Ym|AsKYqyy~-A;8^A5f<|R#b{U`%BRJoK!88y+v=KgcRyT3U!%ib`u^M zL!xvdFonPwB-1%OGOcOev7lFrP8&6}eN& z^{PiomqFVyCO7?@BJ+Wy{Iq&41tUHw61HtRkXH2@&cTl5!lDC;%;AU!tIRyY8)z4{ zYbUyGyz1vPuiB*~?nPWsGOaV~)kx$Z&oWnIM5&8Ll)89CDUngs@r8E0QPl5r0(FKO zBuYWv(8iCfBT6%DD?>7DWjIb=bmOj#UAP+Ev1*JCRij^5jYVkHSd5|B-s?j2Y`hif zv)ErilW6_qHHQ5KC)Lb!EB@M6{6Mwiz>N`M51KO`yr73%&_gch!HAp(Pxs(AGbxud zNH}5v<3V;L2};W7envhgtqTKCT`;nm2cWuyI8cWa`9$5Ap9w?4AmmCx6ox?ziU;wd zgK!o7SR)pEinjv3RLSSs%ncfi)tdcNzAN%88h0AKDOiRvr?TKpqlSQ!ovF0*G~yI_ z2%=9s?vznnQ-C3-f|}xt9%I1ijp1N$_{CuG8-A;p(`{1hMUM<;z37qQtQS2p+zONM z$tQwirR^nk72zTt#-_tmR_fL~-iYk*5)W)=Ls$Vs#68rvqi^~)dV8IC?gk#hfB9zDSTg*9yCKRzBY@dyG8clQ7tYoH|8-{p59!j>2K5HZy5Y zBi}S0uI$kMVWZRtlkID^0x1?Ux<@W`yDP=E)rn=r_I27xgIy!z=*e*K<9 zKb{}N^MmYbQ&BXA;%FApGa4xrVyAk6I^ono{KkX$jR)})83ogdlOaY&Q_?88VWZ@R zjj}Dj#|Utey!Z!>!U>~x)-O#coIooq+(#Fj90Ew**kFJ|GrgcD(pAmCyEbyw2}&88tyiK8XZ z=+EmzOR#RK1jCLcj0cVo;5dCBV`w#!!3GJWsi~(~ype3KGkk`Ve1;RgtJBVklK`*X za=Js;zN}e!O8K`9OX}L7j0`)HJ&5l>d z@}-fPg9q=7x%lvxj29x2jiQCSJ^v52ni1uCE99B{h@ z&b;W2`WDOOCzz?uN_IduQ#Vk=Vmi26hp`wxP4={jP(z2=(QV^~e>o@drA|IY>N3e% zlwc&XrR|t*-a7N8ts*cY-XcOVr!FM|lf(-Y+ptNjja<4-kdhnUZv$+;s872lenwDXV@n?pRCA7tYm2v6E}OHjHG0J1pWc7Aw|%lEmmU!?0p) zQ&Z1PYrGi9E@-6QabrP@C2P^IZ4ZY7h81g>ffPq`PfWkrylAa}=)#b+RtYju8RjM% zOF;U01Mx<`v7nmA6AQ7ZsEj?)WB^#2QUs29^CxK12#z6fL291z?v#(*S<_V{R>2`edB1R={)JB zbNipIQiTicN9T3g5cXs?;Zi8lU>mGg*|i-;Dg#|qqL<3Kg45cQ3~xd)PkG5C=+zZ! zT+kmlfUDFF$RCWgM6IBqEGyU=Yk}GimWIPi=db9-J!;)!_g;L3+U-*86>7{bvRnh6}57RW8EOR{U^RAY#WdesvWD|m^k-FrsveB5;Tyua8=A_$T6kc^! zD9WT9qLh^TjCTX^u%Vq@XnS?BxD-}sr*S^*;sG>>MODyPR0WMi@dMTLKy}1>(8lqzAG#7%xkka=X3!B{@E!Y-!E zI5E_;NsT!*Gj_*SPHfaB9}uJIH=e`z44owHgZK;!#_gJFu483E!($mxpDirFBJ0oLm{6$xayTxRz=sZ&8^LT=8LVj?c43@ zdtjLo2!(bH3`Bq4KQhwaKRVi9+SF89R$m`YxqC!8dH$|9UWW*dQ^?wyh@P~NYoX4(hmNT@&rEvzM zQ4ZRn(4ggqDoXxU#&)=JohGB7bV*|XmR@4J0>!6+2cj?~mWB!;4fSXmsef;U_8r)JDqB?4n; zX`aL*pGUyO0K=vpOVe}-vUe4-cNJdV*wJ)SJ<@=mqi*48g>PJI7c&?uH1U$2gg8B$ zF?yyfSUi{UJWI@6$(t#*ZQFLUu7Bbe-}~NVBk%TRX7&=83SfI+88hY{{wfLn&$V{{3Mk`h}l=3|N>BT{N=r9h|-C(18MS z^iIIt1-SQf9347fJnsOoeiaN|EY`4oyA()ziLpMiJr>EOa~rjiD;*~*Ba$#^z!MrB z1fUkI!i-bV&cx$^CyaA)9f}#p{Kz@o5xuZEikr@b)Oiib z?KB=4M6z^BwEDXeSlv=6bt0*~iNsfnz-dG+zztDDNRGE5;6N+T!S_9>GEI}18iq_Y z0a9@hYAqf)$CKEYsxnBx0GEO&0sFWVba2Voh7z%#O2mGRg`g3UhGwoEMw3A_bcul~ z$0a^!VU_@M_&$jpjWcK=NraBol&=6-8kQgNSq6dhNni(x&EvYb50&Sy6W{{IeKHVz z&?I^L5p^8p?5t|uq@n0c!~U-{jpStk<9snl3+~(N1h|0qP6m?eltC^hgQe6@USsS; zN-_B;DD%l($Y0L4tB*&1em7(*ofkn z{ls#1=@*byDiHWRzQ?P}nG3m3fqDcU$Fu&5z^e$%;71(CBLM7-EBupSSi}YFSqA1c=S?V4eNeMkj#S5hDOGJPzU0+^jZseMSuedO!);n(Yf2agpk za0xHu493XIwo%uJ9#^wfX*FA=teHS@tsIT+lFNE-;Qvi{LLm=*{r&HMpNvSK1?3hz zx@zq&Y&ns`%KXUN$_DZ(RNmX$dre>8|28%^H_}%|US0-yMSoV%EB`w3(lKh%_N6Yg zy=QOK`&?`Ai(SHgEg~xF1E8qx21RubS7LWr;O>os`yj{BArwa3zlrlaCftVvE?~ml z$8mHBg%S5*!k;OiY^!W}5acN#BwZ!d5#ICL9%BlGi&yE6OPAWen@c z@ObG6(fN{LXXIBg^Yv{6{(!(B>Z_fsqL^kdWT(2OhN?KW z0vv>`Ot?uV!d7N7vl4IItrVb_w&9U!3NTSEqePM6tISU>^hy>wwJwhKITg{f*zEw3Zck3a_QjS{=S zPvH><0zL%hG$Y1XV2!4@_;6z@SxBvX5TZmJ+AbnYl`}v3kr0W!9~)hpSD*8_N0e(L zf0Lh$4u6Yz2|kmT@R{6xB|Gwo&r*r#O<6c^&nn`kL@ zA#ehXsMC1FBEWDC4Un_(0t}t{v4bG58qlccz_VZhXzlc%9V;S-?W}vpPs4JwDa;}q z;p0UZYDmIr_vS3#9Wld9?D7=R3LgTF7%_Fm3-d5Up74~iG?ZUPW0*%Mk{}Fm9OD)u z@W<^>lhvyUH}oTL5P{cqAwiY~$cIb$@a#E!i#>MOAsK8{YBAFMmW_oiwd;O$VFiEe zte6jv9AfsUCNiOqL%fbOBKARu@Iw<4i!cm*2ps3+V`U+ZsurMwwHqeE%y%D7xITp~ zhnqBORt6-)e4$G*>teinosu5CPHyPg!vCA-4u`wx>kX}m_nB2|XKnMuK!}@m(t!{= zZ&J4R_iyR%|C6hu!{uskcV!h9XOUO*%Wki-D01hwsZ{Ghi&aGwC&LvbRVpA_MaE|Ycku)vMl^2yOh0QV^1 z{#}GnJf_b(0%4M5%@VFOA_A+3L<%bh*>sc)r`pEhf?z)gDoF%47J$59ZAUm7B2&U; z-c=&*-whBognWA6o{Ek_9+1iAetjDH@+s7HPob_mKafEWWM~d#(F0j@Cl^1EOAqAo zC0#8h=_7=WMJ_$~X>4 zRTJlECvN?A5WvN}Mh(OJFi>*@LpKftx)J4M05vcBz{TUyl0N*>eJHW}$XDq@VbF)B zY#&I)K0BrYsc;EO+7&WY?##+65CD~)WMg)s!<1;(ZV>xY^oh6Rv5AT37e75d9vQcn zrGMx{)mL1(zN-1Ajt}J3`|8R6^6>9it=nBoUrJ9nJT*9Y&H1SZhm@n|AGm#YL>^F* zQj&rx3zWBuoRv8_mChpkTT)e3LSBSM3N>5AC|eak^-^$NgPy6Vqg2O}(2Y*jir~OS zxXjNNdT(UT&0;p#^aSx}Uc!A`f5G`dFXKd^8}Z0d1YW~j@JpB-KEd6IkeKYP7I7@(YP!r*&zqd!i@?=9G&&ipb2JUdaIE}#OB*5@m<~?E&mD8m*;%+w+ zBT#QQMdgm+5izmp2%;?J9t)umHc1CN4)AWp=}a~RcA=bj0)b!SMl?48f;jiIQn!1P zT|FD6m^wS{q7nv85YCJF7`bHmN*ZFL_Xnp7(q8WqQUR4hbWi9>@}i?$x%E?wHXL95 z_BsJBAgNtIbhB_*m+Q-s!rwl;xXtPH)JGIkq|5#S^(W}rtK@qI2$p+Ys5Cpggx zxUYe+a7^%%Z)KLHLhqNg{a zhkSMqhS9XkHrRaG9w;1ASU8Zg4gI87=+T{O!5b@M@y8T;*$};wD?NHwt}2EBtMGM?O*({qLjUKgplyr-H9Hd4cT%cgf#t>h5kLuVy-QmHBS@VwBZmU}iiHX2z$$ z1j!d$=d`#_gAbOk**eEe5RjF&ab|?n84Qs|ke7bG4V1-`)DogNvhpnQj~LkaByN80 zL|_P`4qK>#WJ0kN-%~2#TwrF|Q1MucLXo9CtmNb%(!*Iil7Nh?=MkY&E+eh&A5~!b zHCYQW9$J^(urPUqGbP-szo6jjHp{z4gP2Q#L666Ag<}QY)k>6SRIvRG<=G3Sy^pF) zizmu}p^A{1i;%sG@QW8=1gZ!FPetg)vA9u@UG%X};j=sgt+@!W(@Ig$m!iN?+jpy2 zQm2Agd9CE7@X((K`Z&?Pa-y&0B(lSaHdK#B&M?WtDdKSi_9JixrGpSZ8&wHq1DU~n z(;gwNcr92D+GUKm5)~;XJBsCgWBF7|nMi3RBIP@W#>am-p5Ksj_%H~Rx{WRJZz5YJ zlu+~$vrt*l-@n!GACDAW5m5RfT|Ek-jqK_}~y$ekF-gCP5Y{Vlwv}IEcI~&IW##p66{DZiwGx>I%|^TiSR#z^%l3o|6Y*S3`wejYj%8=mCe( zI&|PO665mAF@GP+UcC6M=rgAHldv8)>AQdot3lJyH8Q4VFPMVpCw1{DCP~xq(prEC zm3)*49B4s6#H5_;2=&MEA$G-W6?5t~UOIM@ZW6V~%f>33ak6x*4KlC*ya)sgKd_QL zhbaQ=mnzv;_!6RBI)FvIc$#vC0EehgNA3$>%ZYsc^0j^{IGZntBz<`B;p5an`Q z8X&)XfZT=w$;PzJfH-Jlj}mskC5s(!huB+bihY3HIv4DVW1Hdp*vk=O_vdv2T%a?r z84ZT;TZZs^bHIy$3*N(~#ppuJCGJ}&gGEl~tS-5uulEv$ zKq`vQf8h~f2#7MTTMd~WRsXAMU#H{;4Z5AKvvCvE>t-DFEQ*V_kljz9Bsk5-IH*c| zDR)B1ZLzaC^k8A|*2WqD3@Uq&tLq7k$`&=L8m(+yH>KIvpmR`8;ZapH>y)u#QoZJQ zP0TU%eoa}^e$4;qs;7>b@j}Y8BLksz{D7@}vYbNZvV!&g3AP zfP?U*X&dgccR^dkI4K~1I{M|mH?Lm3detiOe`9s6t+lnSt#$Hs)|x|pL+mfzwu|jA zRj%@SH+#LmY4&)Uo7>u&GYbnd$xH5u-0AibP4n5@mV4v?RUiFSea!ZbF6-%CwyeLn zxw*Ii29M`MqRA)}|C0+$nrNcJ`+2~99dIWF&K#{dC4_gEN$9^IaHFt%^hLn^7vR1j zTr!X8^Zr}1>LIC=Jn|-14O8vZ_m6;pGfG5OpMeP_kJ*oC;6gp0XQ;IeBg{qEgi_vO zaI{4y$g3zObj=;2io6K{zo|b&6rsmy0O3hnn7~7X<}1L~70A{Vcxkl|uO9Q-yz$D9 zCAYH(xOiJlGxz)x>GZJZ@)(HONFFKcUM0 z<;(j^ozBv-#>Qxt?eO`#{)8PK3+KVAqT8T?EQ#prA|L^$)T0DWNXh)M(UPboTu-z5 zCHlOR?P8!)CsC((KRKnm#W%pxz059*ylH({3jB`GGs1c;iP-}*2|;ZGy7ij&1=_eS z1JX&Rq?63`*e*i1chQ}>8`;Wf1qE?3`+#d0KxrkF&`K(!m45iTKnJO)Nm5b33KVbt z6OFI59gq%p;@uXDBpeHr0~C~s(ez|kxJZNSJ{qEDmVYr`qZpP*aK);|;Y-l5b)c`{ zK;m)WFTl!KG(&h=u?FKyH7tj4gaCAy=_&HEu?$`fs!0w=>a0^Y`k8KmcB4VyMpfX( zh@zWZ(~TP^+=SfS_#@n)5UD0Zjk3Hy7@Q6Sh!XUA-R{1=wmgR;FUR2! z8y;vz|C=BbPlHf=NvtEi-GqBtVvD`*BSJV+D=-PS_?d8{U2(X~3oKaCPg{e)b7-`j z*4H5E%+!}ma#r2_K>IhFvDcs(<6dlNP?ued_0!5=50}B+T7$5hGE%u!kDl02B%1Za zo?fxaR5UYP%sdPy)~&?Nx{ZEKJCd;YjvE@3l0=eBYrJWqB^!m1_iH+hj>HrD%~+x% z3VY7r_$C(uGn&~aOk^R0bnyNOpAN1OKhyzh{c3Q zVll;^1^@7Fpr>rPkz3a&Ze@KixH}Mt{?*tGv{yMBDflPlAleG_k%LO~xo^IQuN=C? z#1Y@p>>s7LZv*as0QViu{!!z3-{qV{BfdpCPV(C>Fb*o`lBhwT6M<(DIE!Y(t)?(AGNYe*jqD+7xbj&ffDQy|k$|@1l&@!T zV-=kkH%RR!KD@hwRSTSzddW}fg~Q!y-QQQBmCT|YmvT7mnCjJXxR-LcSJQN(V|gnd z&|yixRJJhSA2W(6)r9lNCxIwM>M9a|x6!TSf zs8S*cfKzzXh3=(r=rl1^;W279(_8n@i0JK9jOH6nfugCza5}!%$mPxLCJ7{l!i^yT zIT4sb0us|PSRB$Mpf;g^8biQ|qoG8{DACBeq1L-Zdz zSx;jZ24H*fk@w=A>?L=y7vtOfAME$^VkA+WRjKcdj9F?JLk^0-;YLM{PRr#zH*DT~ z1AR@jheGZ2^`?-9zDHNC%`CT5X{hZWxxKINTCexVO-^SMecAK#?e@I9=wFoD$p3wW z%0&Nyh4VJ7lcN(~^Ms%45Jm*;&OZa2lv04Ev81?4>Vg$jkq6b zwwM}mKhkV5HR65@iMJ)ZfyAb1A!(8NlwGWWMB$Pqm*@DYSEzP~VE2ZfRxo9;XZkDx zpQYUcTrM!dNk>E%W6dX4o5P#V?YkF7&L!h?e-h#0s#yMld{M7iek!_3e#+!DJgKaWRL8QBT5jB-To-xx0Ojuh@fyZP zyrKMr^-KTD-QVvf-a}hnd3jz=c{yj8YQiv?Qm(e+O1XuVh%DkBY$>NpYRR~`_e|Zz zRGg}qiqxKp21llZMHe}uBPvf=9Qgnh@RCCG8+lx&0(r>P0o8$RDo3#?{)h%o{MSea&Hb!sJ6av!- zxbTikrk|N!Cq7*;-DaqXv^Q-378{x9`Q8h?WQk zVRcD+;Zw>}labF(%AZ@kI=boyv3N%IP;T)N4`E`3ESD)=k<-zy$cqDmKUuj_d5|q^ zH1Lhs{%iCTe#(6Ty8V~&Q~@X;k2IisjKzIIoT~~UU*x9^>!RL65@8t5S8t=VtwrD* z>Z5P5!FtqvC_xLo1W2vWF2=Hbn+dlh&_d^EW`~|JpQ|Jqd1(ahV>7sMD;O`J$m4pb zglAwR9=)pL=DApy?WP>$<{TuPYBAZ$FwhE^!iMj$A%&a{^Za7sqytBFvd8Cf;NFB2%sj8a82PE+aRL2>Y4N7#P_;8~tccb`d zN6EwT8Vb9m?IMiQ4Hr?<9Ml^2nOQE8VAlV~+AiZ32X_rds-Q|+I zluIs`>v!p-(20~l0HrBK5Ku%>K(Nx0CZLF@KLjjvr2Yjgh++X0#DaieLGd>4%Kd_h%cP9w z{}=nVR@JRBP z$>c8vk~NXeX3xcAvpS0sbMT*t8JP)Jl5=5BtkgoBA(E9;5n@~4N((E=@SX!`&jEJN z~GvD<*!E>rCW$&1~G z4j5-i4&gjGgcs$I?U)0%Bir+J4Lo=g{U7E_nRUzIv`G;syeu}Iv4xZ>NQ4Ix6tp&o zDOI3jGGy<@bnMA3NS)$1cI@$y8BcG-?vl(h}p+)7dt}54-HSukG3pqx{)#@VRgCx$|~yh@H)6 z7wp;)JL_~8?b;Bd`@X~HzQ^Y-*|i~de%@uCYuBK3UI|b!u9#%8U2W4Vq`S`*)(c|m zC6pe_l!UZ3CdQZLa8ksnLvb%wSjOXxs&?Bp>oou_yYc``xZmx zgm(9m12H*hAqV>$>D$)1SnXvWp?FUAxb`ykann&K86`==AJC<)LZ3HZYzA%a`U=f7 z7~0*m75W$c=h|4PyGvss8BYyPGrF^s<)7S=|84VQAa|Huc?J<71;+xn_9@KLV3KO6 zvaxLY!k=;$8mYyk-mUtcySOF0sdww961)#rx|3pj1@6k+a+$rST=*qd0e7EQ^=^kj zMRyWgr?!Lz@mx91a-tJlu&WwSh_8^6E9B$~TiX`}8Cng8R^y@Vz>3#BhcGo3u*J!{ z(sxMqck_9E>xDi|);r#|9olu@eJwg&%gxt}ZW<5$!1LTU`wGu}-)uy`C6Inkkbc!n z@*dY7%SdR5b0KUd2cw9Ex;M+sNDD1{VwPj+g-PC@seFw_P%tBmL|~E48!6%Fyv&u( z6?RSy+`MRwgQsnf+Uu6uPQ;$%me}1iE)v^H*?MeB**JHZo&D_%BSE@IoG2CC`?0?yk_RXVML0xF|CJCWm#cbCIn1^=A4ozx9(b*11ho zs<)ksrY~H$0QD~V>?t=@Ul|g0-v|3gp65Q;Kk?l6!Dd*qf&YSyHS1XR+zWeq)OHO- zHj#rP#NEQR6e+}&W4Qcyaw*7suY)%p0=TIJQh;JT}fvl(_arT=yf?7-Z0zh?iY6t=BB?OS;DEjax*gEDq z$iNGPxb`v!zBry<1%GOAY@(V((c?jE;q(gP$|}W)@a%_`a!iLQ8IRK3wdBLtxJ4B? z$hPYv;@p9|vnELP;?>p&2^Ev~rV-MHkDCABxBfZ$E*c@-s;snVG?x7pnuF!;S|R<+ z^W1)$Ip@CpHgnE>`)%gjunz8X-+r4p=f3?mbFP)=++rJbAVI=kMGa?^edG@>7&n*BL?+O6MyQC~}F*V5Pj*3lEOsDJ~WMuZVLp5Qp3ioWM!j(?l zO+1+T9J`x%Xlf!NXhCAvTvLfzK{nZ;`2?xtlS`SV8mN6lj#FH;gdEtnQDmy*pv#%0 zOcgOs*rkWF{LC4ZbllIxZohY>r-|xv^H2QNpNDj%r^(^wX4KWB9g>K~U00J|@Xl#- z+tq|Q=i1Dh0o3*2YeuG4I0NdVws;#y)T~BMC=tQfj4I@cqwT>mvgm1C!Ezxh%0;YV zh-%Q7?|IL->F?=AL_2qU@YMgrRWWq!h|)<1+9L7^HkB`rh|EGluS~zlLRN~|8>qQj zoJiwUlUY#1d(=dAP~)3XK8c01WY_ZU0%2ov_So6G(|#yv%{LKke`CGeacl3+I-=}& z@WDwCeXsDgwKoIE$FPFKu_;PEl;i!Wc!tQuENH9~qqZol<%1I(Q;D8f$eKXd;%`P$ z3S$!~nQ?@zi9!0KFl5h|uf-hM8-kfEU8b>~&a<|NghrE?ZHID?0>g7ldpELTpRI#! zFM=0)5t!_*6AB5Dp3QVZacY2aicHi6a=^7j;jxu%+_XFK!3ySHBvqNOEhd}77D35q zo2;|v1_@fWCA#226mSp)k&A953)8r&DVXVR$w-GvH`}B`o-dc>`LJvsH9lcP#9ekh zDfnA%(9=I4+lo}Wa@q1#RM6cuJvrXk=$|-7ryCPqlw4L(ubkHd2Kh|@b4Q`Q)q@pDp6;I zgk-2CQcXrEb;D$uZ#2^1CYIy~g*hdOqLQ4Ln4A*&yvf9C4^0vV2Md!zLqx)m5TVGe zy|@SkH5Q8PS}Ak!?xR?Cf)+RtD(;_!zg$8Guii%8G!BEKrH~(Eu&9UC01|UP& zWQ~UYB{VTRCMFB9m8_VU?8Hzt!jM1?3+Ms)%M87q9=FR(({2p8zw$hHkiW+B z+(8}@R$oT`F%~W-62i)x3oUJCQN1GArA?$C3nyh_wpb!ZOV>TolH0;OE$*eK1Jz6* zRKwLFTjNrPY#;fI92Yv8;L={`hF!>!3o)%B!VX0?jCalIOtOQH1zjf})|&c=^$N9v ze#L^whp|yOkxwQjpWh(){9;|-MEO!5Su8UkM*Ai#39%OB1VF!&!YcfOBYF~ZYR`yZ z|A!&{Jb!t)8%e@Yh@OX%wCrIULm>)?q71w~ydm8l+r=Bgu^>j()`>A*b50)LXv-S# zBd6F6EqCqw&RIb>k%K46!C&s|qS?e6%5{gA6D>$i268CbqGpS@FbBm1L@LR}Y>4zx z@|WA>FX`kjBgsK`a-hWrjMdb_xgzSAS8L@p;FCk(p9Z_`kYd(;igF05#Y`){JhEe4 zaVKXxy=RlDcRCqoEp;t{e#*h3$_Q7s7M2@3rrNH9JZBP}<+0m5XH=a{ZepyfZg(V- z@p(Md6rOEe!V<$Ca&W=1gS;Knw~Iw$K!bB_kjoB*M3|SB6CKlCIMWSs!)$V}#@QZ< zhA$?pu$T;AOkjU8xxbk3qGB@9HeXK(vCCo_L}f~p@a>hn)9{DS6v0;#l2I~BG|ClF zkz|1D`9d69=G#w4-E9SLNiU7IrgKbC@0(>Wsv?)Ic~t zdoYq5yh9Gwk%Jbzb1*qIz)5Jpl#N;<4(gH>m=(!5<=q$cjb~AeA)_a>zWQ_vZ0fvuPfDdLA~L+5yHShYCV=kpZ?n+BMl9 z7Q*x@cc4KVcpP1+FlL8_WSI&fcqBBqkgBHrD1W4tjxR5#{|S!IjET;O3l5IUh>ppO z4=(cy4C~<^imaBQ{yoA1{T_mpHXQisX6W5IJyq0pEUo!OHnK6W^N`}jM4k8%lZziA zCH60^VNY?+(4C}P>J#{Y$As_tvU-Rg>whg|&G{;^{p+=pgCO#r z+sHwUW2`PFNG5{UDRX@v$y^tagT3V7M{+Qm`FbQzQK2Va{0G+W<%`!IrRI0{kirs&t>DS6_$FBi3GQ2qw~&-*Us5tRQUaf) zWNxHnw@UHG>?SG#*;i-wl3Q! zQq1iNJot+#=7u&oQ|L8^GqjcjlkhWQT)>xcAv+54hUmb_U6;wCU0Lx$mKvDy{< z`e5*j>ey2bQ3NV7H;cL=m&Q4nDeUSdxe-hkNV=;-j;w3)e4kXmOXrCT3&pubMdE;vp1!_4LjwGR(eL2-8Vwx`Qcd)8;U8BRPHF>u4gUUaeDOE1 z{$1_XPtTmIaqIhM&ee8sUtI_1>fQSOnR9(yeE*y+032m_Rk5ATD3Lhz(})0N52g|U zbi~Pu#9*a-5^cofQWv_nCm}9bU~f}$1*IpwL#KB8okgY&ZhViebR;$mYKKgDZjtE) z2O-Vqm+m2|2XV|f&##l>FtbVR7+XCU2h-Dak`r1(vP4CW1vMBR&0y4mU{W-uix@Q| z9edWj$EfqE+9vE+?8|2{CoE%}x3RNxne^a|L}6VeA2+r$lo47ixQO?K8M5urAA zIgAdrB{$}BHg#6c#hWnQp-Q@tP=6rku2sO`gJ&s1v4!c+V>1MZTuc3W zg(5Qb^Fw4B+RJaEUcbXce+WuUn$e@(M0)&&d1y0haevr}h|ORRL&99h|7}7Q(+Mm& zLJl@LCIL)!3G*msz1&V7?NXLsirB4E@gFGjT!E2UUD4{-5ZCr>;<|H)>saFw*D=c_ z;GYZd;B^%6?@%nO+$Hd+0LvS;YFH_J?NZ#*2fy}2(!ggQIhf6cD^{==gP~(%mtr|E z-*k@QK&1JTH!&Q*=ilYya@p{WU=+R~&6NykGDS1t8xt!kR&^4-u>x|_A-aIx#Z}_o zNr`#saRFL?QMN2b+2GL!(9b1wgP~asuNe$r(u1p=j806ER-0Vc29s>v>R^}9e8L@3 zlu;iS?)V?YSGXyAQ{&c1%~^^PU93r*;bM(j7P+ru0q)EL`vlvCx~XxX5Xl`eb=_6O zk)1o3>%jxb3TVcK6hb_Zm(!~stgL#ly7$Tz%U29?33)(drdHFxqeurfA`Z&!gbz!cYBt&-D9~fn!%a+Y1KmbFFc@@@+o*@@_?)NM zeHA~O31#Er^*NUmmwckInXCMqoK&2VYo~n#zYq3H?IhBZGi5zVNCVll{$d@`b{Jw5 z0dhxKW>jQ@yjO^Mzc)EJLJmff134RaQxwd`<@@k9!wt0yZ7N1clre@gXV+4h*jAM| z&7Css8in6k7K|I05~oAoLpVNX7~@Q3oI43&n0=%}FZ$~Z0%|z#5NFAT@ zLT)P~{lm)`SxgE?ox=UWo&Uhd(=t2^Lb9r^o6nHp%$=pW6Z6?cD!{sys-peCpIvf` zyrt0si&m|26T!sbs}{ErObqY1kLO%*w+D`3QiCEULaC>iNn>YXkdU*`#VxyWO zZBb2r>=r|98beqChVt}r#tVfqUMM!*J&|ia4bL(~Z7CjW{N;k6?Bv)YqN-$iV~WZl z+XGpW$74;Dw0&aLfDoc1p2V4$;)k#M>Yxvo;GJ zEOK#1NQggUJpK#gl}I76+;TF8&7CLXb+u3^pOgr#wySh-|Jbn)aFq^z=87U<;zlL$ zo@u6plvbmeQc*$wBGYPRdGIGPEiE!UEsb7HePd1DgA0Trx~8vuFcH%zX$WOcqyMn< zi^_wdb9eB$fAKjhdyX`OvcHeUw4KmCmtV+_aG>o{ek@ZWn#8Gar9pQQ=)e`)<$8hN zwwYZx|3o)pY+(sxCoze4_f(7*9{fZOxEi5>;~+q9}4r6j8X@gVUr`XAQZA>)ODz`R0)toG#TlZ#Z1SJe(b`wrfotPT_SW z2aK~M1-?`YGjF-%^lWzhQSBNjr>*C?1hpgnPz;x@nBfm%yU>~fJBK7Qm4ysPL4Q#p zd!Joeh!?dpQ9A_()*vcKWt@)|Duf;ia!N+GjfVfVjczE`>5Gf?x?*cnleP9e8;5wG zA8lPs`C9*`2Erd9HKx3Lj7oJwQd}&N6c$QR-^tLpI8bE0Rm1n~;al$4!>=3t@S#$E z#lbR8(xJ*E?P$j%EjyUf0hSxgadVF9;2fVlhbm?|pX8oGFB@lO#e3tW*yMeF<0;hsx;n7TYQ$VL8f__=^l?%4WigZG0x3)bTk& z4hjiM+R0*}q+qVf@NFVSjuJ6)g%u;cZE_ify2sc7M8sLbSQ*_xO{9liiX*8Bg4>4< zCNNlxEqY|@9La1UCV>N0F^nc`g_I-0+$)A~gBTJe!ImvT^^3~Mb^FM5wdi1?Lm?v_ zX$EL`Wr&V<{I--+QL?uSu8T(5Nz$c8@6Jr8N`oYK(J{6 zJY7Jj*Rd9>eX&*i-UXzfB&o;hz65KSjcB`EO46Qi?F&hM?6J;PCN8UtkYq1PX8nkM z6T};UyrA+6C&-vqXy?CVT9mCL3 zKY;DM#MjG0$GHa`}oC z%U7=GKW5^@wzi2A$5{K>?}bcH^uK``WnKDmMQv?GMO~dXNi0rE%*q0J95V+C+_P~^ z&(rubTLN&hmWLxmiw%~Ew!XbSJ(*-Gy zx{F64)0c|qGhB<QV7{_wmRdfOkN*^;-sK8urqQZ z`;~&VR}o_;wG(3S;gpQFfMR;CsH9FTt}PLXN@~U8x)M=Sc#1SGR+3riBm#)^}}!ji>M-;IL=K^BN)UyWu; zRu|a&Ec}VU#oF@(yGFh2DC6$pS9q+iv4r{yDp(GMRBWVQQvIl#~LAh&UpSr^+ZbUm0=H8*?Kt=+~65Xcr zAtK;+V(mr*6N1zE;;3}G8OUBPX;cV>ipG-Srb3~xu&Fq;ASpOlBu`B%5CsJ#<%2gM z)%;8Kr^@yExq3Yv5tCh$pHO0kqM&anX)Q**orNsI~PY&$_b zwk$*_89bB>E+Iw|_Mn0sw2%V{K43OMET$DEP=c_5D5kNymvn%b!D#E-&EPL9pro`G z7&jF)BHMLi5&4Y?A*mph{mt)bRqZ*ufEr*lK5aBw{}JXYA@j%;3UeV7QRWKu!NTOw z&?J=Rn-m(FEDXjgJe@zxWrZ)Wt3LrskP!ISXnZaPpZlIY_Y^TZJvdl_3bYT6=&UnV8_?5y5< zorKbg$-y>u;`6!S0;v}aPR`IZf>CH6gxNK5@xY${8G)uV}e1f*Y7I2jgr_}I= zN41ofBaLB5WU4eaMv@vCnJS5im8M3PWykdrhWE-9#$|&ww1B?vE0f{VI*!93Iu>GD zjm5Njg{9*s-JJWegL6Nz=N{vabUF7kcc0MZ+%Md@beD5ix&4;ya_(1bBuD$L7q_Q! zaNYbOFr85*o?~$E+h8=F4!?EpOMh)b{I!CND}iG^bRR_SF!1kHhZj_P2!-F;6bG1z@;=#3ke-hw5vCz z@Q&PV;yg?gBJ%Bk*v%DA;=IXvh*CDuZLFA)pHaaK zDXCGVrxXt9WpEar9FC@JsTd6UlW~?HCfL9Q2bQoj#j-`gUmP`^VhWeq#(>;8?6VL!1Ilb^jKkD|er$Yx z?^m!9%3 ze|&bKNYy_~6PT^4mu0aSwh7Z-9HzZ^OnWz3xjBg+?m&AwULAOup*%!^m2O$!NWynE zu}kbO*3^+4nW)psU@q#^nJ_i*r^c=7yU&6Am<$R>%5-3N_EhXZs%r>gKI|x0Ihu9K zD{~gGEnd;AQyA;Mjx^*PXPT`Ew(AL@Ay3obbDCiLfK+d3GRh$s$iZO8Qs?TDMnsi} zIuVsNm88l=!G!$;kpnDa)6`l_SKHwMX2e{C@Fj+BBKt{kexhLTFg zpSZZGX)*ZhBg*G0kK#R!0AfI$zu(~ue1{(BEl|#!2>(khcn<{A<30k(^FVMFL_6po z_)>G)AL46x=Xr2)eA3~N=-M)nE{p7LYsLf4iyOWKIYadPM&Ro!=v!1Qu|x|i=jUaE zz)JeEbm7P(Rh*(hSRP}@7MtOq``Q;$zwzG2GlAtP^_%rnGdMR1q@KgioX$7HXQuIZ zsdgQI*m@2jIJJ+Rl>#(T;oYf?qFR|EyFN9opEx6LRH3#xEMrjGh?!xD%6QB8+yS!e zlz3@GMVKNjxg`znQE*%0Z{gF-m_ z{ow3ZEl`#WjML_V!-_IQ2_d|Jkt48x^nM7V%DwmWM z#|mQN;$j4lZ}8q}e+n|tGw3Cw*pSb6C^4N5ewqR*E8nreOQL`r{Km`#;O3Z{4lo~n z{JI?5G_rGq8UAEZ{pNi;oPSlAq^%UFbGqTa(y{PhZW?-+c>miD>SpCA!ap`FG` z{b_v%d`HJq3OXMAIsJA&^VJcMY8N1?1u1X_qX^ZyW_nT!c7UGN*G`@Ush`ZsvqUEh zD4Yj|ndpXIe-ASKI;w}S(Z2^2RZq7+iN|7!SMmVd04UfCxQqu*gHZZf<%8CL_U;8C zdsNJjAcY0a=HWW} zhnk12x88dX^m>mBp7z9idhln97k_?pxar2Q9=;YhG=OCD7~cYiPI0pz9EWChCbc%A zZ)us>D2S=dOHS`sF#D5FK+4Cayh>p|t$!oceNownv@%hxR92Ug6cFHlYnbWghycG} z)y9XitKn=v3BTk9NMpZ)?PY-qZoB!8v!K`R_uoH8U!mVTasW}Ph#q@qDm48r6mC=ER4uQyn z#pDS(`d6I>L}@DMD_ZoN5j}hjaJraXCIETt3M0QfFO}U{uB+@roKbMcVYJUmIPfkQ zLjQc+dSLf%5cGk8eds_#U6sXBRj*G@OG!;jPJKeH9tjcF^50sGH%8*;N9s%RjmG>E zy*fo0othdgggOc@2=oM3J@c05FmI77mbK)qJcu}ZGvqC`&y|+7#A$OkO=WmXh=(0@ z_At2f6I`{o;l}nmm`tEh``L}SSH_=F- z8>VEIKQsCc9PMNicoJ$dQ>TE*;~%0=KlmWL{#mG=RDnQV3@@I&9#K9b#c(?z;VT9O z$r0cq`cU19+6IGvpKkoXMpbE!K0;uSWY?~o0;WxwPQPEcaa>}Nu;Rhqs-$|EtRXpF zGI=tb!BJ2or15^@g*$EmID@DU927w}v)8psn%Bzm)(w>DCT3#6qLtO47{iC7!&Rf|& ziMopG3qS^z>d6Iq^~L9(e-ZukA2w$6h!La543pN6y}!Qh{s-#CMx$7)gNg=k7(_b_ zyo*qJ@Dw6QOK=S4bsgsf@rL8TSNTvy&+a}E{gs+$`{y^lX0dFnku@$;l?{q1YL#z1 zPX+bJX-bRB3fG61Ca0H%8N%}7VwLfHfC(kl1EKtQ5M22Je${aJDg{8!LkbyU6e3?) z$1eoZKpK6n?RV8&N82Y*G$`Uia(N04kh^C^ zk5Z4&F`)RlN1vYi#M~$5&mK}&HEeig?YxSL`?XqnM!B-2w6sK7UY-yelaLS-n*hHx zhW8`bMqTnG!W(3LW$K5E#waOSZti0>vZppstN2E$?+UfLRiw!~0!KIk!Ep+2KZa<` z)Sk5dO%0l7t)zFt)6u-&z+3PE5pEv<*Bdm-`oU)uk13^O;@mkk`Py;4Go<)2P0Li} z!$lf_SuDOE&U7!Hm7fA<8m$X1kuCP(BdRy542q<@jj8!0M_ zEvONeN9(e3OwlC;aL}LH7xHEH*p)A{?q~+LSnRqI@|OGIGrNFYkBe&a6xnsDY5gU6 z9CjT&J3O(N!LC^eak=3Yq4E?_QABA1#IDt})!#3*_XAQ0yR!PhhYCOsu(QL}7*NnZ zUo*4#{!%JmEPlLBt{In^nU7baezCH2NP;Fpo1HZhtp-q%)c|f*11SIZKXCZir||RF zK`|=^J?|FGt|MUfQx9Nv6#YF0v*%T+;T08+l!^;VN(#iK#W8~D*w|=64E*kI;TDub zim(H--%>_8kfNr53d>eAo|-uDL5EW_q+me4{?U^Aq4q15%&jY|7@w7?z*AE*zqoin zye6zXGvhuyHO3C7#`ymG;JqFD;6p!0QTG_;J^aj4hyTMgzbC~;^fqH7S- z3A#Ob00^wlfB7YleDgFxxBX1?;9kG?HT^h@pxYhoPvWsUMYohMh@-!+oMpXq{5Xg` zW@Z6S3_T81(YJvg{noXCrmKSpx_uLmEAkTEw%5$9qra+|YyIZK4}suAGI;ExPtc=I z&7c4AuR~0~3?}GyDMYtJ;Lu*9+jkt%?bBa>4RXKg!=c-!l*3X>MO6}MT@pgK*9Mz@ zZGq@kxo%=sC7kWI;FsiqSZ~lRT=D2*M~;Z2VlY9s zufTCj@VH*0TfP*b+qWUQ{iF|7Wxf8{XYdK!RO#ryAiC`Z(d}GiTAU3rpFkdh)0CSh4{8@%1& z7HfjCpkg|a1-1E_aTytTc#AbIQK^O|YNCv}xnuDb^X+hp`F{UBxN{O=kFVg?Pl0^a z0q*istUD=F6Fm&9g4(QQCmu1o!x6I&9t595en#=W#3TOW3VY$G?=*om5cUq40>(nv z`^DI?@cK2#Di2|@SFraYy|-=+3wwhaY_NCj6fkb$Wcow-+OY|RG3s&YDyWy`)g`4% zCQQI``~sHao~IUz@@d74D1WpjU;RKPJGK2*S5%Blst{D=Ngsqm&47Zb80rU}5H!^t zBj`2x4hVXVab%c2bhueR0wQQ>O7g%G0g9Qt4-Phf_qCS@dMQTG{bFOPJs{}W$|33H zu}yih#)QNsnW8bSJZt_)K~6+ooiKY^vjCNt-_<^ep9nE~hX|UV`0`6Hty=ZcOD_)` z^T1g6-veW^YuiTGR*xB5lcU$?w{O z(t$BWBjoGPKm?uLCsmjcrVlGgN-GI9gh_cL^pa_7p z*aal5#Yp-O21!TN7VZcys05X=PRL>=N?ikt&=D6M^F<-`Aq-V=WqTL!^cMB z#~*(TA@!?}C#C_h_mKKk_mFzFT0I6byeG;^ij>Ntk}_4iFgiXyS{TpTRv%!$LdHrB z_$AbL3l=V1(9}ddW*%>zLiwO8c_TW!a-{hg^95=XYccHT%BRfz%zeR8)}q$Yl`oka z%mcxDtfipi_Z(xM2=1_!fR3)51E1akKF445a)(!rH$QAXNZrq>O&vddp!t4q#j7ia znn%JbDey03HgS9gX!24+Sn`3t!{A+1O`kr~8XLj%=|9t(`QzU``0qF{4n&>eQBbkC zg>%I5eSo98kYs${r;}@IC)d}5sZ+uHrBu*^Gp$!Z^K^JyPpFS{bX#2=d)u;=l+Wk~ zt-pchDfqS#-rY9vd+Mn<3$6XY=PS@{5N~^R+q;i|!z0Gg5)d~K-)8jgwq4`Fd&3`~ zl^}F5zRlOW+n$~S?#!HLy#tCS;@h&lyKUPX@Hu?RM3B>pr(~0Nw=H@U{0^sN1$bc; zzU>Du7hn#!3K!rUcmOW|gcWcoGPN@z%9;OBL;HH*R!`~E&TX_OYn3k z6iWt6p5O26t${O9?|CNliy)zGLxk3;|7GWUAlSO@lTSd#=W{&!U$&yaKd<~Re}PE) z=gO(pn-HQ$9ME*)f7yh`_16D#y=G<|{awvW>o0rufRH_!4*f5$pm@Zt_+NHAYN&J1 zo`rK#?XCZ10}65U(*JS?gdaL^;52=Ke)Z%@AUavqf&XP43XklH|AiliG}QN?hI-sW z>1f`G6Cm!mx>NtlY7}aD&;FN>7!7sL{{0|qpXFZsFBI=n6tm~-8{zk|9;S+$=!xJN z);9wFfr!X?C;YP;?u0KYf21?l!I3^jBf0a9z|jshfoGwT_<+4{$ zfha`BYj?);_w3F9yoo5{!aE05k-N&I>}n3m4>Sw zFMJTYSkdcFbJ__tryGDmPKX|q#nB0YC{g6b3DFz;ZGD?k($U~D=Y*hmuc1g2k1mE( zk1mGgC<>)3E{5fI=VI9E*~L&VYeFuDHYJsZ>=Lr4);YNtD6j$I^Aw!qf=&M+GGDa5 z$yhV&W38{BGv^i+9bo9cZUtC`-UD+d=27qmB^T}3xte-pk@e0L(*s5p zu2LPr)u*sFuoS}8y+Zgb*We<+!c`B?n*S(WIMCGJ$O1wi&w%h{I6MS|PhotF0O4Mj z@EyPcLeJ0A8%-_fS?Qo>M_SHvx~G}%YROv(wVX+A0viAb>39xlpNXb6Bfe7J$(5Ov zrqRrmshwOIJ;BuE<(0!s!_k+myT5m5)?{yqw&bRe4XYc42qRICdAr z@*le=A`1PtzJAf-iIC^Lvcme?G*g=iKlV4U+4Ezo^BUk|73i_KIkT$r=B{;Nd&@Ys z*WqI!?}LxM^Pp)sdaMw#zc)JK3QhUy84AeUWjVQzR_D*z&<7C%}eFMl8-qre>-T*k4%j$Z)s!e<_*_4UjP z#6ouXYKJdS1E;)v8kzFyyo#~uy(O-`4D@#rpT%>NH1n4jkoXuo7o1$l^K2)%Oqkj;fyHU4>y`c9)iEZtX6qzQpblmx&_{ zu-)YuaH_MJ>9|GD;Q)O9!(Q)vsnpKS=nf`N*7q{ChD9Ed!q zWyYC)=nz=);64-s3nH(z^?*YK+!#qA%ZrvC0S8?K2mKWYy)?Ld>OSB#a_-Y~%cqMM zpSjU$U>|}5UMKS{aOf2KcXhLA$m>7j5Z>yGtuH1)bd{7uzed8j@Cz(k|4??dsBCCj znW$PKt;NQd>#aC~aT?W*sjzd4%S8}+VBfxz^mk4XuaTNj>M>gC<_P`OHrx#cP7xfJ z@5fTNcM-322NAE4I{La!10pmP^iSH~;QEec=F5loeESG~97tu?7h7E1tTFs1WcP^j zu$P{<#ktPhy&F7u{J04Wq1SFh<`!gjNlQ*mNlr^abBUjOy|q!7rjA0k7G!f#AzKTw zx!}FO&D1&>U(CuC*eA8@xlZ!AFbUnfpyV`Y;0=*;$Sy5)rew^M} zv}K~GSg4zlp-O6$AbVJynhcC7m7EeeJZ~QBzD1`5(TvM z2Sfg0J<-)N<+J+UwXf-_w$x>s7nCYnkSBU0NHi&_5dZXwSU94wmoz~n4m1QLhKJ`y zV|&Wt_UY6W$Y9;sQ=ToJYrYKvbTj0%4^=mJ0o+|azIqG27KiwuJc1A;*cEp6l$%sH z>n6%T2Z9?}LkwVnVW0+n+l2O~_}zKe+?i8EQT*=KF_ZYM)FbzGn{=!j{U?8l=`*A8 zv(G-`b>mHIpTrNqR+}iE5UoL~hdq=^iqRZ+^6{r0n=^0DyaA1k1Nt{L(SxXG>F!`? zO^Hlaf__S4BO-*th=|w$D%JgZJ^Yk45T#sW0}GiCUy40S*DC45$jS%SQ3=$qh*|(4 zmI5jP1cf#SL1I}#{o406Q`wvfBmB@H-ZeIO6$MM6?E;wrKxiNWV_D1)sHIJhKTenQ z*{YFDDpgJ`c;VnRD*j^SZ$S1Izo);!w?{XAH}n7CXiwl5`+$W{1sFczf2pMhfPfx( z3Z%}vT}gj{e&CDFgV3v`!66R4~{l zBSlmrRboE${83@QU!e@!G3{n!sdra#>VKj;ydymQzv~9VLi~ z5ky79uip;05)aaZ9U$6HDd`yS=M*5btTy8b`o!Y|_2Q!ms$8s+jZx_F1Qp%g1Qmf# zk5}#AQgq_|xd>BL@ z){!qUH5eLA6rLjDtya_CoCRp`I$I{c&hxDS3kK zwodaeL{8ct8cmm*iL2_x_WSuMaI)?RIK2p$n~mFi6t4X=Pr%9d`+oSj-}kH6B&kBR zQbk3DLaHql38F=!Xn_dtnN6KAmF7*x(%BW5sqk*y4U@k`MSooRFJ$uEj=@YGZfMBl z_cJasxTQl-q1EkFF&zt@p(joOh4fMLdU)Oc@O9VRBnMrye%J&SH#XAarht~_f%K)R zQ}JGWnBR~0hj-BJEd4><`q~DQW0YiW?FKmF*zxoy`O8PeD+HyZQ&kC75=pfvBe$&$ z&f5Ku`)Bb^4gb@kz{V|q&nCvr>8jHgyfAg7Q*ljfK-n|>b+=UQW z1i&fgV6G=xMEf20wE90MhoKP^(_-q8Ma4ymBKW`JQelihC=|p9L55a4s=OS|Og&f% zwZk7BDF}Q>Slkur$NsOIRdcln#|nAp+1M)73H{PTCeGT3H`FzT>8@|9nRJ)V6)edK$vi?pDo%d5EeFDGVs!ra| zhO>pdpYGxPeuD28eeTjP4)2GYzUcjSx`ErLAkwD$p8;9(ZdKCz(GR?QIqGb}JH&t; z47ih{(p@t2r(Xo}#urLjs~E^V2tw|f7-98T3w@}2dG74{5{iXTf~f_X%xsio_)+^p zem-xtU6ND2by+hNJPCvxWkbFucL{E<#GtcndPG7|TqT0r=?HEYuo~VyJP88(O zaH4FmTL|)P^b5L5zaamecfiTh=T2_2&DU%24bHUB3_ zEPUU7>==kWYGOd!X^==?sCx8~OZBGj`e1|(X3=v%(eJ-=L;8A$)G1Iqr;h%*c8>MJ zfde4&07)CCCQYShe)#C4N51Q0MsLd?^|AJK>b`sG@)xmMp`f;03sY5;+k+gqSsh=BS|2-H8Sri|7<;Py)W z#6+e_e^aOVQ>(eHg^#${M1cA()JXya+#68e1rq+RnR(7L@T(RcKVAh!&@2Au4AiOf z%_v$i;8I<^Mx+YXNEGGe3W=sv6e&nd6hw;fE?d_LJF)?FA@ABfNQrAuN`#*||AUj1 zIEzDrK5)eAXOT|=tfL1*C7k}q^fJ8eb9~)TZUWX)t#37f4G^ynm;weg4WNH~=pih9 z9){xNhIe@V8piAWt603Q%+*B-OcFW5>jOrOr9aMJIwr0_P&z8DEWT1AsY=XC88r$| z-gC%6?0NDo_TOSwJvGoyY za58qcPvR%>K4Eq+1I{4Yh4?Hg9yqHD*OxC%PfMRzX_=Ik-h277v8ZbL*s%+TTT;pe zg4kGrpghGgTwj)zSyq;rRfdu7H2y5!9&b#{H$e!}9(=lm_A9G+rcu)PT9su}jkIZL zY1zP-!q$QBry~J`5 z<94-UOzZtL-Q4F2y=^X7-RiHN%G2^ch=T-m2BoFP9X`i;LxjC8e>^NV$lP#efw}?As2Y zo~HT|QNwn8evOK^e#aP8 zj93Y?{0|#SreX%|2F4!)33SURptrr%d@F?UQ#!Mn&+nqu{49p?>m6YH`ev#-Yc<~j z8Q7FA!T2rBf{v}`rcSKp)4>~^EQAflr?8nhcp-49f7gX*q93zc34TvVH^JL%3-J~U z+pF&0T)v|@oq_Fr!2@?~F29IzyMwv>BBiH;DIRAopAJ6pI5UtdF0wb5r+}ia&rA;R zS#6sc6k@OsL+{S)7m6Gw0Z)CbP{-egI={ z@2%tq97+r@*xMKdv3Ckvfx!3segS@=$`#`>O`@U}h`lWkdy7zn!4C~^s`p^*?Uj|B z3IUOa4jlM|{+ix;^eBisW+Y!??xSxqQCIqyzi%d1@|_rbcg0GM!S}lme4nVK^wxh) zp9V>%NDPCo{x6;8j#gvU!iQYyOThO548DWz4SXK}vBw&i=gdET9Lza>+yaKttKM?4 zl7H6^gYO?2>b0WsV6C*Uyu47VEfYlvL?S_y2yc~5oiGs__)cMyK)bS4tXEvP`9%z) zoy_AGDJ>lemeQka=J5;oIydHV2)EyF0?Q%X9${}D-;Uw7m*(+X^!~clwape{9?#W9 zK)5ZfeHo58W*mJgf5qr{xu9%xT3JGsL|P@v$rwEvPS?X2>z?+2b-QP67%A?*Rwmsr zn8CXKGjt6!CLCih9HT#L6z?4Cz7#T|T3$RrD6En~tQ*f^-R>;b z?fy`S4eQoOWHmxn<|D%dSrHKHX5QZbpGffzVyt`CE3A8S`HN|3X%i|f6VuYtmn<7Q zdi2<_ZEXu%Eh*|~L0p_5TAgBP)vL0z%gVB|RXE%LVcmn?VBNnsOL@Q2ip9;+rY%*L z4K;aSQHld5K~WhY}Sd&k~F z{sxA!LhqsM8`P6@gll5WI3{mxMM;sOq(o6vQW_T>Efhva$KimeME(Rygk#ciKos(r zzz-9Hihq~?);yOI?J}8my^9JHKh-{!y2KXgVv>-bvEHEu%;UA2ag{D6IJURvp?be( zGQIcy`&^9d;f`Zu`4;+Z{0|rRn&WxwoOev7cXsUH!e1|SG5j?KV%yw?r!Djk(nW2_ z>iEJ&VR?)x2cD2-!9kaya&Gn}YU)pnZKr^U<7{-SscUt(Hi>HTHQ?}Ty*Sx zlfx29NFATod;uQJbbB3q%?uUNT~3w#ave=YEJEd4Du zCV!_=jnHUjm5JpgC310DG1Qmh;-KEd1-@o`e%tJACeyYz-{j(7PrHqOHCWz4=`>5) zr&Cs34vZINGx|m>;R;@b%>8AE;isW`F8(#&^ON(J==DpMF6F{tL+&CBw!fZk3Aj33 z|4VCtuhuRMHsr3uU_-8s>;Z=g_;myY)$~9uJ(>%Hjl8!o*pNB%=n;Dep@wLshbBl2Itf)!|$iZ16pW!3JwasM|Eu z^`ZKoMh5um?ZRL~{-ZG15FLF>TLD5e74)x~YjAx>G4n;jU=#oAFjzBaq1U|Wj8oxU z;^$r+-l$7eM;c|tI$g2Ms7i?zCMOG{QQGkmxN9zv8dV51^5JurP*qLz5U_R%sHC?8 zY8Mv*o9lTyPhv9&6(O?kPBz#h4x9*W!^7rJt+^g0CuB#tS`Ly;tOL&j2JU!*sxz7 zsHq!0rmp6GlOZ=(tIf?d;N>goL=tW>nYO(CIvd8T<$c}tFy4N$#w{p}H?MJ78573) z$~hFq+n5@g8LkgkCZ#Du^(N`*9)rc3V78FCOmZ&{vh^)741l2Cq};)Kw?FFC7GiGzIpe=+~*MbsJ4Z zv&xadIhA(;>omTQP4iMwA{{b1Bca8rHWA4M2&Yn~KL5PQ%6lzuN?GY-N$E?LzLA+> zTTW<`7Xk7et`q+)xsi_QB45YdA_1DW$KSm-n82VVX%4qe&SN$ASV^B}+R z`C=Tp(%o0kzpzMJ6)mjkXQsdCUY_+(|2TypS0hkIsCs9X;}0|3!)zK>n7~DA2^h_N z*2xoSHb23Z^rsnZqkyrbuWqJ#OtStDo?Q#Y*F(Imo($=3;M!Uy9%f2Jydtg&DHk9u zIngYUW!I*r4U%P|fS9dc`}>JReN*^Gs&`dNWNJu7kT@Y$8deyCE$I(~4?Iy=uRu&; zRjYLcQ`h=8t?=i@C}|OEu5weYZ2+3L*Xzu>%=)6W-a)W4uJ0) zKm|-cr!#+!N`AbLx6rlDZ1RUeto0?waF|>p{dBJ{jm9$;5)Sh&vY*4TSbay~(I)>c zh&jw+-dPaM*PznCRWq-hHDiKlj1Zse8UKn?5%ai~Me6k>}k;%8tStWoI{Qksqi>%1-x)W)cmP!C2(4 zov9A+iz-^&madI2=$E97(`VgPiib#|M~c1kbIh5i)*^`I?eZ*ipyH~ zjL)lxIes@X$MgQOS99DfZ6|8ZZbx(cJP+phYoAqPYy3H5y*i;Zusk=vv@}1ryd)ta zGCn>sA_4EPw>lAZwd;*VGq6i9m3R6cq|UiAJ$S=<(plSVa$; z0utzprUh)t;8a{p&DA!)qY1p+*hsfb0fw3e`ro!TEX|N@{%h})ryIDyZ@)^`HeZrs zh!jA6jtcx51`nlwkS-i9%!@3#FQqKjn44>gm!!6|;K_RhPTpnDlXux3C#=2)$+o$# z0eom(2@<)fyZjwuPt&n?V5bM~fG>b$VZ6r*{@M?L{0HLrNsc#7b3yX;Qrb@!<+i-bxvPxjd$*~AyjX4ryv?_gk z|A>sxOm$S+u&VG>&O5NDlaTqF%U@i&ST}b zUh~cu;E&^8_#w@u>IDti&9By2Ua1pvzJT?csa`#M8xzA51GPco_;^XMHn?|GWKIP3 z1w0Inbs~z)ODgil7r996F0b{qfjaPr^*a#2iK3TRBCT*Hb`4Nnb`7vvVPtilauL)D zU(;1@sqf9X1~vgop9{6Zl(Lxccwb{raeP8z(Hy#b`AUm zgvd4U`+EA!eONJ6vErSToDQx5DdlHfkK`u!U1&0a5hmOi|pj>vsWfIr5=*u~Xp#j{!3GBd5Z2>{Mvy`ApGoG#EB++{k$qsC)J*3{t6v zYBcoQg#{>bxS+5kS`Zl>9VtK&2(4f<*zXc_wV%umP5nq14Igf){j8Iv2V#B5&60{| zD7nDb%^ZEwrw{$n;`;hu8p2XSo_#iLfJEFsHG8;>-_yERr-dB*n6BmoFi;fVx4YKY zpU=hMFLQ~($I1zMffN7H3mhxcfY+^`mKpckzW@occdMyzLH2f<%5twX6&z&GX)4i> zu}N!U+-fQrYP=+?!A|O1`z1*(06W65^y`C2?56 zX$8AHQ7mGYkYb5~gXZVje>6XTW~;&TG%vgSE&KT)!T)!y>~tFZ-?_4L)>YZzV*goX zrxhINWXg!L1E-8tcJ6t~=m4<_%%sD`MeBeLPgw;+QfE9WKK6M4Ul`11O(YMXbH&F^ z9)PRjv)xhg>0%xL)OT3T2aMqqpY2^zeB9>&xL163by4wgOarh}eAqMqtoR6uo^@1w zP!<4Ie73WS500yFrxJFa1#pekcc4~+RUncC&~?4XeG-5Ny=T{dq4#*11K@?;(+akB zB2kIngZR_w|A;@GEU$prk09FYq zK=}Yj3A!v@IKn{*%1eey5SpFU|IzHM?5_d4tzYyW{=K7go7|z2(=F?jQ8@$G$s`+x zGD?o`c=eEAUC1C!`9Q4XgrO#m1G}W;yc9H&34y}l{_z8gSS6<$>!b1+DX&dYMI$9A zHrA9QF)>O`dT3S!QgXsl@VspPujXYG!eQs~jfWhmX17;r)b-^{S1fsHl`Vcpa-zro=EtjY^ON*{e~l;KNRY98shGOI+~XU^RG% z4wuVU*$X+MQt`WV#!9mkZ)Au82_MVV5$T$)*= z5JW@@1d$N}&dIXXt&=6ivWRiAyxo}zc%4x(Lxrb@P0sG}^dy3-boe38;PTWHfOD7J zz6*DW!bH#R^=+l;s~Sgl$?dy!m)!oQ8Y>Owt4#DlApZGhZb<7rxl3+8Fo~YGZ^n!R z-&C8?%i6h10Ckt{61(JK)?IS@tNH-H$fB3VrW+FF1Cy2U#++PB0&~gXkUpvwJ`v5q(Yso-qmYk0>RMZM#-Tc8MsKCEcZQP9@14op?wy~*j{)eR&7~C!8*`gqtG2vS zE8+Yc>)xgUd-k@#T?CPNUVLI+ur@d=N+6D6{T$vK;vIx#7bfdA6>h!y8z&4Ne-v<; z4?XWT^C7aDP3qNEyHUT*J9HZg=F~NT@P_ab}Yq&+6JvX0_pUi}G=eV+!kC%<9M7tiJR-;M^LAy>@GC zGa9#T+s3&ydfu~JV|aP_aIKbpwOC$ISXdx0Rtg1CF)>k03_I^t{sizEk82*z$P4O` z=8v0i@mqg?_1$-OnN0Y?cj1L^xLmlP`RC@J_^p@UedCR-MkBuPFud?>mkXb5{=4}+ zzxBf5S6kvA4tL@zi!_!8R_T9tFqQ-5RvEP&rA7N0|jjIqWdXVJ6%V4E%q%dk^@iimz{cXO@r z$fjqLP0!YZ^gT=8=Ww?tn9gF z8?)M(mr>hi372TTW{w*MV+{xLY|%pJzHV#ezEXHAB2rIFA{{9&UQ@(~ zRByFN_0UsuYptP3S}%8xSuaULN|G$j^%Uie$w50>ri*9Q z_)A5x`Cb_w^3D-T+HV=|_f5`zw}-gjH%FYVEdQvS>33xV!~)Cxu7sa!@_@JTSTMI7 zKQzJ%ptl@>=mhI|j}aWU0xy8^ya!Bl@slubsKN+dKs><2@& zVoEdZ@C5k`-tYNkj(nb6Ni`GOB+Y~_G1Lrum65roZ{{lFo#LFE5<-sw89wjpdd#2CTGzKWde5mL$f=$29P44e*WTiiq`(F zu3|3($A1qW$A1snHk?8psI`tibBvmD{5zGazzlV=AOE9L`Qwj2 z>il@WX8ZA@GBO6pWN2B6Br!QTQIe9{!OPRz+tZ7H9*}bBZA=#uTq#?qXqlOqxT<&b zs-HciW2C(s6=U4S7Go4LN+Kov2=s%1DZbd=H0{-twnXx7uc+lmM3{DUqvDI(*y4*u zv=MoQMv5&un=ZEaF(y~LhA_yINLKa~zj*|{CsgW+EiR_Ci#TYLhz}{Q*w(b%?=m`( zyxTka-6KRNeHs;4+{PAHG^TAs{}RvfmoWO5V2;0dn)wS9I0*iQ>F^4cG=N$4>{8Qe zB*Z{&@_)m0FnvU3RAGk>0YZ;(_h@Cu+}~PE9+uvxuANVkcW_o%8N9OMNkvpZnOIyC zg}vc9zvsqC-m8KnlC%27ICzg%bJK!eETeT&K+CS^V=PQ-Je8~#CL^lANSLX^(s~co z3$yHDS(IN%m&m@6SeTio)iLoax)EXEavgHF0I)E7!jZE}N@jyoN1)9;EY3_S?ynrc z8q0PAH#G1B2$>7ocSY;yzgV=4u7XPhEyE@RljK6o0CyxM=Rib_+87INeo6vpmxC@x zzdkS^twTbIDBVjD9!Xrp_JZSBDW_Paw1hmAG6RoLkxz#Js8hcEC#MNR)DF z9n$m^2ltGLt&782S#-BBI`!jfIz+o)EQHTkG(HBKZXUbNs@s79P#T-h@unY_dv@{0BIL(%U`Rm6Y zf$I-htm_kmYCt)uorgBo_fb9St1SdGo6_yf6FuZ;{^UY*HGi_^k6pWf<1Q`nj*kT#FVR}S5JNnX*Hddcrur8| z#T3%QdG*z*ziRC5+NW)JB|Hyndk*f&f1o2T@Q@3@anJYPA3@j9rXxpy-;rExN927K z1LW{YAJv0etqVFA(|tkd@&ylhVg@{Pm=fg*gZ{MQQLXY}f6CvDRL~=p z^fE{VJyJ=J?pW=czhh0;9%Rhod*hFiDBq%ph+bsJntDPR6ZcjLyZ9VUEWR`Q!LvJ9 zoX_!gaZhlGaZvHL?oXU?cu%tcq(EE0A10NdkzmnSP?q~Wr4(<1($y{C^hHc*E1?8h zaMX~wr`cNumS7il=vXjj_$%o6=+Qb9leW!AF&R4n?M&P-%ugc9937e#P!tnW5*Q*L zGY0c$E4Xc~)zJ8WoJbDHHae@}J=9$sR23aFFa|4o{*C+?>Bipld}IpN+@S?)8u=## zHRWme+FEh>nizex8tm=9mNUpj?ld4rIlxucJ~k-0SBhsOCe{@bQwVPIba-dd!iAOC z;WbgXa86ovNP35gn7DF3|H_!eZa(SZO9pvFx{<<#lPW#MSXb}97=>rTLl!$ldpzOQ zV5?mRc%8s|q*@L6r?PtRpqiRNgR7&8>V^~*4jEb$sZ>Tr(o9x0c1uh6)ipfSjJk$o zRtB4xmA8Kcx6a~T^~0jXfp{yN$d0tY%wxuh^e7~_d13h*vvW2Sc2>`qN_+WYCvq)_ zSEXVnva{O9Es!{o{sB?#l&u5Z++sRVC-QC9KIDQ-S(ZF6=OKXdsR^hx%$Yk8pBgP& z7Uxhi@pDpvjX4XAoJd=Jg_-zjHF#THt}@&G3){i1YxK07Cv+Cnn}Eb~)=U^H90Z39 z5l%iOyek~5Jf~8fJ9iFyhtpn+fCxzVdxz8DB;?iDJDi)DIV3w9O-z?2r=%oH)6;#u zy?lMWynV53ZUQfG9e#u9lj~0LP9Zwe5Yx7$OCL{f{r}h!-szDKUHzOzk^UKhE^e;b z;!}!>VxcI&BQ!Ng84U8|6F|GwFb8%n+f;!4$dd5#e`n(VGh{Wof%(}99)rv961JMj ziKFGCUH&2Te=yh&Ku3vxN?^C%vhot4tG9E=?L@+(tR}0Z0%Ddy@B;LoaJzqa$@T%5 zhtKe1T_cj#ltUUP9w!W90sNRDKdN~E`_E-FOLlmIT(Lrq5F$rKZ&_Js3%wlWHCe@# zLRJpnao1|X3%}@x1S1MS!ubAeo9o-WEFL9!A^+|BhK~;%lW7WR70=+yA_?|7U$6^0i@a~ z0XU`vkbdz6*njXOR?bFjIZ4G*LX8G?!~eKXs4r39>W#(!m@GWtWx<&_N|I^wE?olg*A{D?nFd)TTnUSs?*_m8--H3Y<4ZL~f(^`QJM-Cr8 zht8nY=gxufbKSHZk@rwk%i+WBs=Ix(&J59zjMC-l%m|Z-GxITaX3lhjMVgyu&w{Ws zd0GxK^b|WYZLl-*DEk3+S9@!nnYDOH#)HsiIx}Y&XJ$LCq*-XfnVFKFUW3o=b@%!x z|LDs&GcrkxTplBlr3Z*Sf`U9m0d)Db0avZqw?fIjRY~?OgQKh)*|)Suna?X1`gYFy zqz~S=M1%LK!sFjAWcDpvvkTDn+BNX(C^7g>;7ub)3(u%^XoNwUk702cssJ0ug4~>K zlw!D9is9JPKaF=nC^$wb{>PD<3({;Z1Dmj8Q#uyZVaMidT^(+}3_CX6u_MH@I3~%> zm8rFk4MG1_h@(huZrI2%=!f`qBsZ5iJTwg-GSP*B;hjf}ptj6y>uni&FdEo0`s0(> zGRy%vnAkGflM^q|iTF57!v3Ktrv|p9PK{v+PVCgoQ1*A0JM~k`Yp_!j6%^P#*`o_4 z)&~=-68z57sabBR8v9gfuaI=_vgnvnU%#@LgwhV_o#*!_fRKfv@bTpykyuaLUyKs^ zVK>UGQzP_yZ`ra{tClT$ulwMk*%OfJP$i>dF*pnC_IK#)O zxu|n$x=AyaR8Xg8V_r<@^3;^>UXq&lb-!Y#CcHRU)X7=yoE*?G*-7Cn7KxI)h0I)U zYj$R~y}2B0*n1TBZUH_%dVp{%oSQtu>Y46^vC=nWo$@}EG0shLaxao0TLZ!=9%Pup zhi1s4NQO+=I>6N}T11_juUT`Eb#8R&F={Yk=Z56Ruy>>R3-+5kp|!2NWy`KP)NCZr zRN2GP$h+yRf2J1IQwdHVQxihPKVhK=x{ zY%gNiBM0{c-kUyS#`KaBI7vN4Jp{I6vkvB3PFKH*TiQ^XHD+7(S1(teh8x+CwYiq_ z)Ya-d@Dm%SHP>>1x~EzRcCbMu^K!nT9sr)PK_hc5XJGDS;56;gduCe>SI<;`1Bb9a zuX*mZ>S}O{SIate58M($AG|O53mIEi5bVfKH2mv~zk)*x3i=ckf$HjeXoGP0&VA2^ zff2y<82(Nycq9zdeg||j)G?5LcfKk=zp9`B^ymR*ya65S#%OMU>euOK8h)S6c@5g& z&mMvD`Si0IexD6^0OyUEps4_N*OSk%$`2hNvh^Ig5m_B`PwO+Hff;5qqEbAp?rfwfj;XZ@rL)S)z=_-knrDZw zIP0mnTp7_l$MK<4L1PGp8PQK(yds=#AtMT1^chi`mhL^INzr+pqI{AOZJSFoqCN>; z(jMOFqTI;neD*Ty5bKhV2b-OQ^a5@$*P4;Yg;Pgli1YDCw9t)&E(z(MVKxbwhSz1o zkw}}4N8(EEB_w@^brT|+o`hVh_1sT3Jqbw;`cB44$kQ+jIRlL@3F!`EtyP*~5|UAx zE(ysf&14cX4IgeMl_r0ky&djuF|D|VR3un_<_z{a=bBC{evJJ=cV215=cG2x}e zZ(8vK+>>B_X+;Qt$4~qBpF+Q*b*D~&kW(9G$r4=!?9c5r8_P+ZW zrWFaa&0xN1#XqR`-8ikd##~xa>&Nm<&Mkil$+^AQk9Dz>oD;h6NzP5fe(Xqo$+_Fj zO3tNW`DXwWr zDhR$}lT<<`P30J4OEeWo{rtj51qCx^Xka^g&9h%}s8n9ykrh%UG%Zg8!8SHeB4nZu z#!@{XQUNJAZjX{yF=BNF^;Tpd>YI{|QYXT}WqTC1j%nT2QtP$=*`vytIaCsnB}qi!kv;PKk|;XSOX}xOO`A9@Q$(>3~-*1I6c$&Mj!H76k zD*O-JQ&zU<^)YbZI?bax)i5PJ$!%b?HDX1BF~icuIaI8UL@fEi7O&Q&_8g!W%cNfy z!}@h5#2WRE=GhR{P$HHmc5qeLsOJ1ZZW3<)YTCv7Z zZHWxDHL)($P+KO=u^84IGa=Tvw~);c)j%a}8EvlR)CH(xv1$<0GT1^(&(Wl-7F$kO zf;{`E`VpnL3Lb;&R_sU-iGC>o^AUmm}JN;_9s8a;hjS*=8al5xA^p zc4?8R%MlP971Z$1+{hZZ@taRIV=rZnWi;mnZdsu@aiX6zu(D@XajA`7bLCibl`UA! znK+gA>Q3c$?Eco1x)M3iuWs_$9&W;pSQ9QabOB;bv^Ca5BUVF)5mv+=K}#~r zGUua8s&)}CwPU*kGxHpf*_*7WAz%xo6UJL~soIUx8pY=nLDmDj{eR_2|}f zXpjHf9&Cj5eK(|KjL*zregyhzvBV7_?h1Buz&~L8^A+GN82XJ`{S9VU2X3;%j4tg z5^|Uyfxb2?7rU4h3dIV6z9K4DoA6K6>QAUhr{En6BK4&rwSidSh9Z?LjgK1?uV#J( z`ZB0o>|&QG6w4^PeNELs`Fn|pBPBV^k3e5$l8arJ4Qe%sp=5#$Fbw`Fu*WNtgbndx z#9ZP6Lt?b+G7yOWYt^c-wcV!sKl}R>`S=Sb!9PP)uV*CBNmPW&S4r)qGvYC&c7prt zjnfYFRV)YPZ-|0T|xsv+`#C$BYw^i7- zZXs-;2H-O)x`7ndeIW}0%vN4yU$7suZQL?%V?c3L8=VRpDWLpnnHyvG7=Jt z8R!VKa>W=*ONG?wJ zFPR)e?z!FoZ2!tw$}>%pGJQm1^dPY;G<9NZtLWNDDy5|P zQcA$dL%HA80I+(cv6P#eB&A|enq*GAJT&{=Bzwt>I6CI_&7GLo96XWx9K?L0lTbG? zS7Iq|S}Ent(5~}kX)~mXQ1yzm)@f6csFdp(N$F^vl5$ttf5@>RaV+=lY5apSNX`6Ct4ffUxK~I>MVBsBp%W&!M0nhJ@&tOGzy8N|XxCEFvXxK> zRp47H<(pW_i{>`E1R|Wb52!iKN((P?Y;+>QAVVP?1DUG}j@Ae{2o#|o;LPWs<$rq( z>Fg?d^+Nw*s5de^>nd3;lhBi{YOkT^GvIXC)~@RPUzQ zrA<$w=#tkPqDvB)j5m9NF8P&5f={txej>9ce@#(oXMxW@724Y=wVQku_C%}^%+J5j zj|vu?^Ll3L42dFG`EH7xbee<<_L5_auwZDkUM3L5yCk9Pl}n>`SX8^YJV6 z=|Ch4RL)OJni?k$%wC>kE15{nh#+jg=|QjY2F5K}89HPvn$Q8Y1MNRHkZdcJ?5tIi ziF^u0A|hEp#^|J&fnr%e>Xdlf=zh^uGD%Ya64PuWzEY{a`uc0y+czz+odAZw_LxLbFO6=|N+NkfpEmJm6k;D8@ z=-7J9*3}GKSCVEvf1X#EhV+&VQqbNqL5lZGhiOc+jaey|uYC7igK&-Mw&9zMNP1#-wIUg>Ou=?Xpp&+W6szlBJMeKMwt>OA{{q{Al%0OJ&|%=gvi%X(*M56IAld4&1LmV}!M6()N!ifbI`xch_IH%mV)-sUFf}e1cuQ;3h zw2pRdIyerWm=$OzD^MGF104X~tUw3wGJ7XJZYW-6^oMf$19SV8liMHb6bj1iYb%EB zAn;;`Z6B=fu|8QkJ|&0wq1%BQ8ZE|`J^MgqZ$EQ*f1#@>6 z7!?21QHldupl$oIwr$}=a0ocGEpu>y6W~3zAgI11^awm}li_tUbh0_D;iA&J7Oz9Bhg_Y#}mz zS?A&4tESLl>m}&RCX|8?!OyfV7pCK^HyL$wo;$QDaA*z7!B}ALkl(5`?86rL%}}sE zl*)GNso=qmA1hU`Ka|Q3)=>eynL4B+lN9U^rSh@$vXBCclhWku&r8(HKI?mg2RUZA zM8W=0DxX;|3m)QxSJM>i51lc~`OKJhZFDmR|Cg@Tn7-uLaPXm(bm+`u%UbEHTMY-F zH)&-u^`G=*poU`$+e&$axL>88)A0G6<6uRx;6npkb=?1r&?{-&tV)NdtS4VUO*_ zsx?W;qp@E=f6P?IAWXPiZbK#?o3xWQrKC;5b`t$DQ#gYta*Y*Cj4k%h(lTaZi=Ff}=D>;z{A!*)((j_u$K`1L&WaKhl*W7XPUYNt)b zcG~@hyF#GuzhE+G?^4{p9h?(Pw}-ZH1iWAUU7l)*THRw;aptmIhRkg1$h5((+x@=V z^OTE}>Z+YZnQy2WGJ`Ogo7PElv;U7pUEj`A_uf}7UzN|0S;`h=g*zL9Df6 zOvGYz^%l_=e2f^n7krEuCa>P^VXxjAi@_jiw{N~SbT6M6F-%^y-NRnBH5S8${w1E{ zFJbgA!5n|_H1`)l8t4gg@q}%Qjm$v(<4xPP0DWIEvfoE>9rD5>dV-!{G1}?npt5V* zvSmw5Z~+(I-2WI$4x{1=g)DhxbQFJ&ZIzgz$M6GzHyWYPr zhJb8^RCEc`J=3k3=H!>+L#w}rck+vI&2&i&2}*H`a<;bvebJp(cK)5m#*t^by{JwH z=ya;rCtp?swtr@1 z49v=!l^&IlmX;8ep6u-<^6?RQX+eJ<<54vN{f$H+;0}FgmqUC18n52};@(=$^u8bM zeRos6-ww8Jp>MeGgaTbGJe*zdHE_^uI(ifY|1w4UaCV3asoS8ws=tP4AI`q^Vh*Kc z`Qhww;Dqkyj@JD5{rA9eR~q|vvJ0vLeb9B_jaL0rtNOdY_TlVIN;i(@!`YwmUoAv8 z^Iz4}@7Mv_?9dVy&tHs6&MjT~+tY!nCj*S}c;m>!SsP1_X33%vwjqyZyGC(g@sbKL zV*?7KV@m0x*?;@1o({CPYnQfpTtt3g`hXAtgU9<2h7xdJU7u7~w_xU{5;%*{hCjv#orGbT(ypG!86^iLAW z#&${zD2<6N3knram_R#QpzExo(Jo-P3Bdd4V{KQ#YW&#%yj_O~>P;it{uREiHmZD0 zY}A_Wu{sc_C3!9w+JUn;!A@5D&3yd^aEQ)E-_@Iyl-ttb(I;tCD8FQ5jphS(URPKelvbT3Syp zNo~SMcVN5Lkrg365w0?qw4l&57lli#k58JfkQCMIhr1RB(whu6TSO|B(D$qx^TX8( zq|)BxJ?jS`U6lbHTSesfxCgaTw2AQ#jB2NF2y}Og_tAmPk~3ZZo;61Io^?U;yquf= zkmszfFk|jC`kb{}4n5fk^z+{!j00=-f#zEnjRL`M$ph5b`|Pfw6F$<^g#Qg(AQPTo z&9)L~Ogv|8rI|&ZvsTmRte1sjmDg0NYuB#nux7KGjWxSCD{EMGHX50cDosn1reT`mgjTHj-r zi{V#k24CSu>(P35dxiG113EZWEpp3ITKrIpo|*=7`H;;8@1sq6vZR8KFo**WE2wyG zQPJFDVEe}(;Mq^V2v}H2PArzAzk<%FgkrHclH1MXUs$456wlQH7K>d%$z>2r5nTdrtW8CD ziP4#k182B!A-qU^vhPa9n+h;0--)e>gQ(LKOj^XB>UAnM|L)0iz^Qzwt(5PmD1&l+43TPRw4Q=f0pLLzJ0)BpV};D3xl3&1!ju{ z^i&I&EuT^JRDPH(ZGh*&0|$OZzo8FKo&+6F7U?isY7{kcNU&6@wWjC#reU^xj!n;B zieXpHgHxw42en1ambEVvv&B4mDlg0yvYZO}oCAemCHmCp9B?$doE)!T2aon06EIZ; zgBqc*1ZlQGRT-)VtFUvJvxicQH%l=dTlYWjCb%x=2t`gbmLSbnW#D~m)b<(+#$coN z=+vpW{rlLc?ZX$1r7cBfTYjn@jJZEzJ$3VPR;x#WpGix>M`l~TuU@476;`v(khzxI z)wSx^!37>IKU3GKr{k6o{E4@a4kkfJ(~FDemX?CoUb~Av6b}F9$LGVqFyML^fA_aQ z!@e-!f|oqGps;X3Q4v_Q2rPaR+6)@4c?3!)lF!(Cz!pDS{Wf^kdywWCC>=++jpz5- z@N4juVdFJJz^S(>H#xu0c8vqyR@I;+AnHLsE8_Rr7k$9i%6>==+7G0kIr95#-5cOh z??K20dqiX7<8m1yXz+UQLOR0!S z=RicYszE9uo}?nqM!!{Ol!{1-W&O!&>rxTBnw^R$1tnUwHVDRlVib&jPnU{VL6w@< zK&f%8QWJ9Lq0Bp2ldJH?AKdg@#44>HX{yRSk6Z-7{`57@MV!_aAY^k9rC|s4ezAE1MVVz+(`olZPSXRK_`9E zpdr#GkE8)X+Z6Fk8ax9odw=-hIJ%5JI(iiNAMI);X|NX44Y4L^AnagRM;-|d9|j!` zWmrratj3c%yxB>EBaG*^YtJ6wygR3PNrO_5&ud%E2k)URM%$vu#J1QmcLlZ*Thlh_ zCZ>6G?jjWX7u`9DSH&|`aHVOfg6?=_uONFA?Ybfc(f^JW&P5IE;hHo0cl=%Sr8Os@<25;pS2Y~qaB$iaSllzoli(hqat zim4iL=?7+`J-V1G;ZkIgOA**%j|$E(Toim%W}L|&TpTT`%n>}Z$6J?k4s9QAQL1=w z+8)K;VVZkbZ0-Rb+oOJmnC8J2n+Jni_9*Z_#>(i#Ym@E-_Mur`4odANy&F4JZFGQk zI=CjV`)OI((|_O~Sr5&l)AB-{1UhvTwm8`p>XnA)>E>cfGjoW-t9)rVv3WWM#` zOxVfX_2C#h*^2sb7EtLe)Q4m2WM1{*Oxnrb^4^Nxa!Bg7^)$AVt*H-Z&Q3O6AC9q; zn_C}_mz~V3J{(yek-WCxNbo(HZ@2~HquR_087%9rd3H>mPg};DYdIvVI|^H$ou@OJ zd8Z^Vil*x5>VvK7dlRGiACNh!5i;pZ`;1@K`NEQt*Sv0WS zxS^V7R2J>^7|wFX`s*=<<&IbJDR(@H<8n--uH3Pa*_Islf2Pnd(Q_9*K1~;}3oS74 zX?g&uUeCa^o(b}9ze<#}P*Eh;-D+vF5ohsM3lAgiV&fXZx?3%@hA`2IoR3cAU;|oX z;DPnPRva&#D8XK=6Zw3FQm(t=!c`#H@QRDJK=3wx1%f%QxHL8Zzvf*anEQ&0DFbk; zRRw}gTygooqCoIxRul*}b;X6t0A#MXSYrU1yW;ZyPJv*uwtV^Q>%QO!nq;`I>q0da z)|M@_88;N!d_wjc?R}TVwSV>ZT}bU;LOz@y`EYOZvk&B>@@MRO_gbi-p=!|xv6A?e1h`^(v{gCGe%%cClxVEt19dHQ# z311MS+Bt^w{he;$xn>J|agV;^2aduK;DQk{_#H6!`3f)#T$rv_PshER_F^1-DEO8& zh2y9xO#cm6?gt`Na|(2t`)>~Vmi$8*p5kVBm0{?H8D8RKcxj4SJw^AN@Vs@;33EL~ zT_Yn(rskjr;@4^e(mKQ!d8K$FqdH@v3rVs@@Usb1+LgVQsDn7g*IHWSF zgU*!hJKEVdsRPa7cM^%ZIAuD;1o|g92erhewCulDc0L_zJ7Y^atelu8;F_^2mUjah z&1U%GB%_Kftcs_cs(3m?p%|ijH)#7m_HM8*y4}i7Wp8($TE`PpBH|>HxQG;qmxqT) zhLk(%n_Hn%R0GP+P=CjW3U z`DdU)F%Zwgxi3b*Kd~;%+qrL(@|!EMxfOP18e^Bd4hrOGkp0cx@|%6^ZL_Jh^~Q_w z@ByafC~zfquCoCN#%d(sjv;uWzX9BSWNST6*t-|JJ$g5JRS0ZvVS^^SmHn+g5IqMi zve9Tv^mR=1PvF4Q$UVvZgwS@LZ1+h5#nQ<7`e_I$^S-1@1jPJ z2Gg*`>#2WJXp41W*H*f6M3~xN+7lbR>PT^(zke(HRyTXohi2p93t+=5%y|Vk{jhuY zQFOJz8$z3`-Wk(Jb*y(e)jOsuv}5Npzc+-)%o{>m8Pa5D0$Xh5KFzv~$G4i% zmyO`f7d65Tc-v>jms+_TV~qPmtUq@XtLIJq%fZRteFsJ#I-~}@(feD8iAzjfY~luC zQMD{$WE=Deg={lfzz}jP@n08|o|Z%p8Rc#lo1F;((CIL4&XyJ@6jsjW=GCZ}@I& zuRE{n5iJ|liLu?LC~BQ#PJLCfYS--cQ2~KfNz`_eVPa|6(B@~mO>nB|%3KbJVr;jh zsyZXvZKAYC$23uCR7|mtUvYGNv3FY7oLZ00uHphw_~>$vaH`~U+)BQ{DA~{SQ8!Ah zCRf=?@bt_Q{KCih+Nm?XDzNd@Et(o%`O&5Cq%yah*B>XhoQs0II$`BV0)r*^M=bJ^ zFy_qL;7?;w-|hyGW)pmIkU&xN!p2S_aJ0h4atGPy+dj`38_O*(TKc*yq+nBa*UiP9 z=*0rR_<`aNfukxB+gQPAB41 zOFYLoY$bnpVN1>6QNmg{sZWbh2V0=Ov9a`nQu)IVKVV~NJhrjzu~LYQEg~ZnY+~64 zvqlv7Vb08X(`U?`F}JF;w5qbK4E2CZP)pEPkr*8%kwir&CVM-(dU?4zdv}vc2heNo zwct1C51;ABrM4XOLo)d63>lYpg6q~5keHf1GhSPlppAFicE0Ve!_a%V4?)X?hGhvB zQ_h!RKm*P-C>uUIsT4G!rb=VZY)uugP}o{uQ-$GtkGszYC}-;nkTCqp^%AfJNXh`1 zJ4;{ZfpC7x&G|cpph-nV8gpifieS#Kjy2|dgPZeFM%z{v3TdouwonM*80TLx=f{mW zKR(UOFe{6HH0G=={-J2Vnh-zJT;gY7+>Kmp@i=qz>p8bZzmW@?R4t_OSTfZ@UI$>* zaEsMKg01QnTP@`AEW=*S#l1=e)nF4m!1RjjYpLbH6}<%ypc`bk+LHrQi`;L+7S|yE zp93&k=v`7*R8&`j1TlR>8RY&!gPcNKXMuAlRX7~21jEqy<3c@p|4Gch3j7B4!oT%e ztt!X%=iBh_6KYyL;S&F{1mftvY{7sLBb-9rpsJ*%xVWYS+?Z=nF<=4u@5vJwc>O-* zeVLp05tYD9@e{7D2Q$1-YhxMM;wR{$kqDS|1^5p90PpEpS1_#a-C(+HqNIrxto0>L z(C&uZtH3?(j_;uzw@{}f*sxAX1Eqt-H6=tI@NAX=&v^;jIwgenQ*Pd0GrUdI9Mo`{2xOxA?47iDcB3AHb3yPp?jaB|DX8oWM>j%e~0sq#*Jl7WvF*(mK zO*h~<8(q*=4WaaZ;YpwWI>L_Nedu)lI_=zZZoPi46j)hX!~}ELaNYjMx!VRK1sxarR;2ZK-=YcBCG7vkE*qg?%FvSGQ9(O}L@*jigIgs{5I z&5GJbd<%fo>bVf6OaYLVZ|WH3fMt}|J#JpqB5G99qtRKzR!8{Om>DVQ@!K>5Rx>H9 zr`)Wl3Dl@Y2Y*%(M@AX28bev#;AVA{(O`WOS!r%PooT>o4kdP`DZ_!S3(aBB%9t7v z{5iMa)U;?+tb)Jb&z=u7U{z-gv7PF-^u!`4u?LOD_Qg1OUGTZVeTGGvXRvDSLp9n@ z9a0DEke*}k^=TA@!PlSoRw+1OO(1rYe{NJ<=fa?n?or?4*WA(E+75ME4qLy{2vRr_CSBqfa{sm z)as0k3CR($5=m@Ca-x^JhnJU!yO%CRez}pblk1u(aczOB1Q;5h4Ah5SmDTo;gj+=%h?2hUgBFaHfZ9xRs+uB+39 zVqp_PvAHrd%>H^$*|lEAp;*}DP%OOOn?~Pm^nx#NC$i9ZT`1PJd7)VN>J&8k(A>E{ z-{>i4ndm~Xwl6Of3$ZTj+9tm)H5i>Pu(T5D-Fe7@2LyL3Yry)6=d~H?~?^@ zc9&i0WgLoy2BBEnW`ts4_KWOHAk54_&$4df;q7A_iFN$niNs=6Qoh%FmShK}xn@U8 zGBYL7*(m`YUjF`G9syXLZ{sy{U9g|Y|KnAIrIK$}1u5vq$D4K0!t0IJ z!qi94S3E2~1Fla{sU}REs3Z6flks#)4tJdZ8r;r|ROkJQMzA z;<$sxPC$p^*VOqWdSwhJ3IFJr!hn#-0Rwb#++WSdaU;7mh~rL__j8gt^-;?DxMsH( z2Lx0|XjGMn;~wW3$DOEq$xKqx2U2xYy znE)MI1*Lg8``XGKB7A%z+Q{sEoSnnm4T8J-`2=^T(BN*S8hxb=?lK36iQuk(nH-Fh zm*|7Lzw!<4%6BQ1yLRo;1$P}@LU31>7$ufS#8HV!-p(#wUM|kwWm0MX>}-pfX$#o{ z!FzZjjW((hbEg7L5Z0n`@6D&+>lSi6f)6l(@tg!c&=T0mP2ib|CQ$$6PM{uS$p3=L zujVBG%Ph8t&!@P_WX>j^&Qdc;+P}DY>}7bI!35TE5;()~c&A~OSK9?9%PZK23C!gr zux~u8gKOLbn3TETOH5z}CxI`SF1(GM1`UUX1`7^T z>)#gd&Vpca?Sne4c%86LfNNkJu}k5x)2GWcf=$t5Q&Yx>Q>yKMJ8s>5prkzS>v;lebqAoI46N7u zeO$-$y>}U&uG~CVQ=Zs^Y6efYz$~yB*&n1lvoX)b3mKk5Zl0eqbL4n4hVy)^9BkJd zZ8)4$z(1Jf<3=nWf5EU^-HhSinn87!oJ{u50nkxhzm`#+ z7q{}>X*5Z!USRi&WMGcw>fgHYnm?CeX~)fS6QjKA%^0uyp>nWQbJc#8@puge|API7 z<2AS&5Tf<)@z*kZuDc8Nut5YS>PEr{lx<*~EeGRYii^>a#YIJblsE@DE?LsCN*q}k z9NsTR=%D#NIU7%xgUPaOKmno9wq>?$DETt}!+VW- zcyAxm!)`B$f9^OL_){~epU-;@_(OYc4XJ z&&_KclL&BY8ZSR^54mjB9VoAi1Qt!xAi?=2sgUMUel{8p!m6Iz+}O^r`mjl?K8KZ> z4fl1dKKq0j`k$Ia>?fG5`SzNQ*sST6twE!qw}RC_&_#3af^Ia153y_nHcB^H!|FR7 ztLak!b!rx4r)HGERC%_=D_5>yi>__L4aYTV_*VH}q~P0yO|xguVjI4X8%{Dw@%^Ps z-(nl8al=xBh7Ah7sek- z2zhty^5t){6wl#?8yhv8UjAG8ePQi`bMxlSWhw5(4Hq=` z`1aYNMGIAotG|!i$$X^0C^*QdD%c>_IW>Qmp4{RbX7t@K)~&wC?N+n5KS|BFcZ|M! zhw<1!7!5iY{$(^v(frNwavBUU{BAYtpPRoT8A~GshTlzQy=rs!6$4&OV3&h4y#^Cw z=thuOlQ6if?73zevly7P+4fn&C7LbF0@vnvr+||%(`eC^gF2J~pIsnctuK4ygmP)P z=(M@y|8^KM*?9*BYA(zd3R~FQDeWADEm}}67hqNcE<=zMK0C>9skfR-J@nMvnrX;| z(5bYVP9^+YllN~!Y41Q;18Ik$B>3znH7#uAr{_YAgvMOTGzG?Nu-WNSN4d!LT>gRb z23&?C34FFgMY+T_iA(6%hFq?|>;_zhqGb5&7^C@rn!-hMZ?Pd4LTA6#n%@uQnjIfB z9KqkMrt>=#YmP5(FoFvk)nTZbm;RiJ;M|SXel-Tz}ccB7k;u~O|5M#kfkxbOiJ%HUi6HsRBdCCA&u!3PQ$zr@nNL~{Ivyb#C)D!k6G3fj~Bn7zhps#XJ&A4UhqIzqDJWknE6T|0mtAaDtg0Dl_3A$Al;|9;RY4@)2)@# zmZ<`QzfI-)Z7Nu!LVxMMh3#3K51sX=Lrfo5R5Ywu^Y}5eIdFn93BpWH@nI4KwyN-i zHWX0FS3o6rTZNuGw^Fuj-J%5*kOjzS4Czh<1k&%m1N*-}NV(J+ad9=xr521=+;wgx z*E3O?Wun}-5A4|THD!{;w<}rTT@`w2sB4pDh8QlkfBp%c?LA6chMR2}e&h%^&30PM zR~|9=RE4e^$m$nbrf(<+N(v~8#Ek)Aa1$aK0LuFsDo}yj~+p&A7dGz>K zaZ9>11vL#@IvTcIs$PzFcDRw<|13e$4+eXAK<95#_f!vJq4O=l@xP*8%);@J ztd(y9>U>mT;i#e_@X9M-+9KF)&}hvq(C2mfnOPit{b#Sg0d0B@(mVov=F`t=_J{<-2SJfaf2pLX4Q}X-llUlH&vLBKH?~(K~vta-F&)!0xhzNetg!!0%s2bb+p*iTIJwicVW1;`#% ze#kTzS!^x>kL;1>Sp}WgURF))BL*w}6g#mS0tKGBR#tZHI*e2-LpIBl>6pv+6iRrT z!F}>=$PVVs{i`dz_MHd(trFstp%C~yG$TZ;Vu|L~H_CJ!p79=zyXbm6OGam2k zm&m~4g?Wi0oHLxr6>=AfW}N+RD?9&=HC?n=9(f?rD(zk|*mh3=u{rIg%I2Y=~CSKHg2O-=2ak@2cDA|@#*CPFIlbSHQp?xd_d18Hn@saywXoS3^N zrwRM`Q-f3D6i79v3yEwIik=`((g7Q{ZvwD!z6uR!^PpIDt*0@taeE_NJA9P$1~zVw z#)B+`(9S#Ms$1QRVU69J2W#v!aT*$VX!h)%Z&#{rRv5z?yT3G8;~7bPf~3B=k>Y%M zv;0nl>UNdAos)FcurQSl*4T;HC391-#!m7oMU@=h?WVe2VGL{R#Q&1HSy*Ey*$Y_~ z5N2hfXW4{Jl`*QZ&;JIh@wl|K>Z~lZT~=b0Ocs@xl}4_ZldI-*iFjMJ zM2;GmI;Tv4%d<-_QRwyG!iVLAmnt>g@5RJN=wnuv7m0~D0H5_1X*t#eqH11>?~rkIsCdj;AWLB4;me8UzqE8 z7v(a|#=9zFB{9HtrZ3Gy+we7wf$Jv9tDWSIeU-AlF0yv|OY;nBGOyd@I@Dxmg5p-L zLvedMMOx*RSR3~~xlJBc5ab!^BzKbd2T7b1PF=jb;zblS*@E?uA)AeCw#j2CYVug2 z3IsG6HMt;0x|jiO+gKQ;el0nKETCQ z>}61`WDlQeB_nCI5>*a092m4^hep6{258IS6>2a;-Bo2-4P=7bd`KragSLFh1Xf!k zwB>y&)xLfEbZE=L%|=@um!3W_I~y%dkt8N1B}!6Ky+s}!I(Ue@X$Z^#oH7{#GcunY zz)2O_ZD2kR6Wp-?T==-C=%Y=W?!dsc%Qd&Q$a2Y*cm{IW(4=G_m+Nz>NvQ;md{X#-2JYZc5N!dq5NmqV z=FK1)oL~JG5|7Tx%G4n*H`&&-h`h|h)?|>EjciRF@^WI%IyIY4;HenwCo9k$1MhVx zwl#SvCKVig>op`Dmz9z!(84b}2+YGT-_KWHt1wkygM~hD^zzX zjKPJCT^%@3i@%KR-R9yi z*9;wrj>Wz^&?mt&ZE(jlzdUhNzJG`q+sH)8LcU5Cg5OnWn~{=N@lx_CI1Fn6E|IHc zFWZ)7K$w4dSs={gle!0|i%P`w0cccQk#~C7tbQK!0chAOrI;h>^zX)<226jcVaIeD zclo2DqTityEs`m+mm_-}3bXdzD1Q{@ki6RddAS1ycI})+o{o}G8-v2k%YMJu4Evo- z^A`N3c?)Rw_Ci!JDkCzT);=FAEVjy+&wd%k{BG7d` zS71Ha^k`ni#?^lX%s}qof#w@npZgIYVPpm{En_*$0Q`gbWTd}a&`Cgba!R&N(he4aZWLhvm?(Sm2Bfg zD(RwnSC3RuZw{&CLaF@sav6J#*^KrUGTI}UFMo21^(WOHi(`VdXFZNdrVNd@zgQ`| zSY>aUrN=SBv{)RIgvKBj*t9T>WAe|X?yWH;`^%N^>C-GULknUe&}i-U;HH3>{PW7I zX!5=pGY(v;l(QTJEQSfD9AqeGGcZj4!D_H;m$bC5lfqY0i7j|#M3)>tV!>am)IyjD zp0M3$5`@W|%Fg_!3(~_!5qheL3(YSc`OkE>@Og1*E!Ui4!t162w_je|JwmKTmgm9oWdXrqD}b z(2+mZ(LM1P-V>j2?}<-x-(XG(1{#BFeViMuR*%N)mQi;18)KU+D+6oGN>O+40XBVm z^gt_rcvXvS!q=GQ!ZuNf!$>f=_sB8mRP4$@KJgxDbs^Z8j*7;{beDep1X^s9!+1a% znzlM%lZy9aqSy6|dhL^z*r*+o)yGNZ*h`+-%Qf3~%1}3gP{lx+>~8|32`4o52uXQR znpc5XT+qQMUmTM!N(-Ib*FDTRQtcHsq{NLtn!NF16ugaXXbX@gOP4KOw*1Yd%j#-t z>*{K1e(A5u>DMnu)nA$3DJ(TLtW!E2+e7BgyQR$75(Kc5oMU@(oLW6jzyO|P3VyT- z@Wi=7n)!NJWci0(b2b!4l`c<9rG-Y;@4+T+=llSVV8?8yIKO~6r);MPPtRCS5~8NB zU#=N%*2|#`IfHu5S9r6YtI&a>Kx;u!`XUw-B{xdCAe#Y2DG4Q@D82mR2Z%ocP!UH! zQKX(uKDIK4&K-Qh+GN{zaB}M8W&n!vEgw*naTF9KU4_0EXhBix&48kK7sU<#x1@;ZgoNmbq(o0QcP}q@ zHxi`&60cu@vF-XLlwt?)Z*05ftWZ(?Tr;JgYoM)Sx{T^4wmJHV1!s>DAoIF`di?yG!8q%`x z_^Pm*;2}Rt`3(BDa9u%(3R}u8u%#^RA|oh(5e3-xt{OBHosL=F-zULSS{t0|lN%|{ z^$U%xt))8KgLQV7OJ{pPC*=x8XRD2L=EzwRz=Y0L!=VU~QUeJy4Ae$$Ko7x3R2VjS zNc@@0f`j&;m0kGzwUHzQy{>yS6M{bM9_E_e(@EaGC$`p|W$hyT{mK%lr8+@afGt&G zt{a)=wj9Pg@G>;bZJhe$#z`u*(dZtDDOJP2$EJCN+9Pymp<8E{gwmjNulz`HUI(8% zaZH{lC3Ff^%P)dP0VdNshnKyv^vySyzPWT@ZSBB8 zH8l(S>*6_&hXl0an7|vgA2A{{aWtlmsN)hV~4{JFtyy z25S+pr>;>ryOsWKN?@T1j92F=OzMf}WFl%hoqPN4G=sS`lb$Z~gsy_)CSu*Lnu%j< z`olUJ>waW2R{o7r`OP=qV4q?kHmK}rJw(>0Ff|X!=4C^Cik}-qxs@OZMZ!t1OA_NH zlK4c4ROCsZi#E zS+y~Kn_&QWKL@?|?>`tyYh(O~{ncQjNc}O*W7v1@^;{aMFT+j>w|qZqPb(1%@Y9@f z3fHkbKIgBaQ$}LaOHM?*&pEu9W7vT~mA`_{bMNP({p26qdo|G_F^G-Qz zKMFYf$X@h$#VSwgUFuK_eAU%Akqz_*`ge_rjVKHb=^hhK91Y@01qSu*ggvQFg&jRR zIc2tw!Jd?hL_|HQGHebvo*4+(;s4!5KAR~B;n@5FBlo5nsA8u4JhC}^7W{wQy$5(x zNA^Cfxxy8Ut85uz*~Y!gHtyZ3SCT6(6jO~&htMIEP(n*6fzSygKmth!o3ezG00Bbi zy|-XY90(mk2?^Hto0)qhOSWXoa{l{!o^N-Z^{($dGxyv(Gv}T6%zK_8M{GwEKt9>J zu!u0&Uh1zU3?{=1MhJskSWEEKiL|snnVDmg!(!s&W5N)i;<8K2I{#BbM_Yzuu5WN zZw-J|lIA1u23n!+T2YRZZsn+|@=;&5lkui$23Vaw4tzC>b*btESf$c%lEbY$`euO^ zSZzb`J+{U22p)~>xUx`d+tH(-;}Mz(u+IP=cq?c6lT}hfvS0o7`jjt)bhYC%<%=4O$-tw-{z;lT=@#4`U>AsrE^_6~MJm@1Ei<1@K& z#5Z0>_u=(W);7>do0&cfVcD)gaP;uu%kZ-1W+BP?xt*(2=E@3aN3f~-C>BUE@MUzY=FJSgGhLeUX8B1M6RnblFk#L`L+an zif~nr@t~x*JA5>16j}J*Ml0C^^KjK;f~&gcunYvkRqlMHC=TPQlFGpdS1ljp70XW@ zfN+&cB+BuQ@gumZ1i`2OQokGV-G1P&SjPBnN9zj~T{J9MbQ>2e@~j0|V__^>xKcTX zjFTV~H|(=Pkv%rXiZ=I&e(!7RUch#uq(2Jr`^v?Ac@p8YL2f}Tky3^hee+0=6;73T z@yR_9kctUcGP>?;T2BT+T2`ZyO9Cs| zsi~o%X#^Kc^6sy63~N>-+&m*MoEEjy_8?Lu;V z-Tj;-PBA{dogF34VSIj!2fMa=l%d~WE06c$DTPiPudi9}(*1h~0 zoG0a>rl5tZ)S%L6Gmi^WK|DM*2yoa$qCA{P6rBHsH21555aoijw7xiz=qunXk42~} zFk8U$wo$Ybd1KUN@8jwg;YonkHa0-52VQ=@Eb!V(4Zy$)y;&cGyfja~gNFtZM=c{CWKRLk^S*P1Cz^Y9^Mg(8Go1_2ebHN;h$q;=Gqff#{J zBM1z>vC^Y;K1UH)9PzoC=|-PZ3!o!N|8V+(xwB`@TR5$EVQzWp z$9cbnJkAz0!;Whayx3C8Zs0Pq?3du58x|77nUVp`QZ1){ z0RqjMQ>Re)_>O6+WiK1Po34<=B7(iZLz`JN`QSmI1_Jnd&SXH{?m`ejO(Bg*mlrQ| zHq9hjDC_*G1+Y4Qs^R}-Y-=v=YY2M06k=mz|y}exxX0`C6#Fp;DH0@;0?I- z$PwUmRH1zmWxlM4rhd;?-YV7}3fO^RL5qkM0t#+Rq03ev?x0NlkuR(z@hL$=M{sz;`nI;1Ji|S6xsVkgpj&P`b0zX zA@O|Yiro05GC_yjXcQ6)^+IBnd|*RjktkOv%!!K05oCl+>gy5a79sZx8Cu8-A+9`U zNuk7ZRI=t!!$OG^=VuZDpJU)L69J>R4Fwb)LeMY{{&V%Rz`($fYSpN~z@QbYh7KM) zbm*W#3;L`4Gf@bELWxX&RexD}7^WP;(%G2!9fTLmh>8CKw%V8&=L?BSzRXp9mKR;T zA}x)i#BbP*V&c%8P9FYFQs>S-zHtbggnRO1`6MQu4*oFp3F^29f3~ct1)t!ne;Ur! zOc3neg5;wNAcAKG{lmtWx@GhN^`apgevE!;fhRyMVo-TyfbDVvO6M+3WsQK z-zXFV`?|SBGBNO8HbgNJ10SJ!k{GxaxZ@c3Zv*xLkC-GQ>_dEgGQA%AV78|kSG0U} z-*C0ZQ!S2pO|cGY%_to6jw3Pe8-3Q{KP2RJH$UY44>bq!8fVxK&CIMsA@9d2iSfzF z@rfyE9X;_`LQfp>w&lF$jsyod4NHAZdR4pnW$8(9Kvy=ANweSBD9yfF2`>^u8f55L zBSYG{oW~l}<@~(KMEbilJcEC9x%p=r8P?Y2JTr@?XU(3iOO!vP4M&Zwo+cCJhtryf zcl!9G;Ak|{LmV0|W%A_Pa;~A)cQ$JM?Z0YQzbZWrb}pmoWy_cAvgM~W&X)h{D_yqy zF0-@c-L0vuJ}OaXoGst8VYYn79316>AQyg!bGBoQk9Vw#zcq^WV(!}63On@*!0GY@ z9IZ0-okpG47Vx|?R3<}!UY8JW@&0zR3Gs&e+vAd${q3X#z5VUBS zrsvF^t4oVF*a_FA#fKXVyW)HKy{;rwFNw@`^jYe%FA_$@6Rnr zd{2|YsrJ{qO0Rb_OniTCY2y3y8{J9P^RHd0KmQcNxw^#n*R4u?e?DqFocZ(g>A&3Q zD*LsYVdDF13lrb1d8G{!-=8Bl*g7UH84@h>PVDBFDwIb=C`k^`^{%?a_ouB%e19q~ z&FChkel3w)?P{3#{`}ube19%^D#?D4o%Kq5vs8M$yJ6xx^*>2`M_wc^=z7;8v2VI- zwkSR`GhURP;_HFqQoY3Y9i|fBBjLF_>p0rlxi=b(0BzaM8&ha{%G9a4)b@K#r?&Sg zD}$fx9j8lef7$BP_8xDIfmb@O93+h6rw)U5-@q`f-cF)<=NTIpE_K{6#T%IQ!0#>gZzN0scCpxBA|hp9I%wJvy4>y zFlJ|&*3Rjsy0eHevzinDF=l3UeT~p24zA5+%;0(_OO2X2IFBvm`I*UTq@T^w71C^? zrRhvdM@Z!nV`h%LM_O79t~Pa&Xbxj$zsahc`zNsOyU>*T-m5QfW4uD@m)iQIkD5A4 zGM?1tVT+M4xqD2#KfeG!=f(y9YHHAz_<2`eu*+9$ou2d+Iaw-dTI~ooPykfA>O%yS zKBVFsg3>K;3+N3V0xS6h87VcmzZKOD_eU$hInDRK>#75NvKCJTM+iz>WU#T06?#sn z;5}1qnqA)Tc&Hql(fnjs-jGq=3m|DTjW*AZ17Fzd0tlUZNd>F$54!wgl0NilGwDN9 zt3c=CB}pWG$l8YAJuxXd$FpNzo)X@+&I}!1+Oab~Jkul7Ej1_zuLV=UDJp@wr|L*}~XT-;|D$uyDCofP=l=1*|W#i=+tEm;<>eN5DUH@Zbe_4Ssq2IPf{a zYChJ`Vu@TqT@=%26xvf4gbW~NTa+WD6|&U)bM`FoJHx(<8tElT_BC<#4KZrtER9|( zfn0kq7r=ScI>@!hkPDb=f(xiQtt1r01xaD1Fx4SFA~q!@HX=P)=*IK%;<*XQtnR!S&+4Z@D$J=VuWf7Ul@{#Q67s64f+qtvNuW@;%P^tFr<_h=n|aa z?%!MG>Q7v;trf1=mX0H)&;Qi9V)=(a$AWBYCJ*S()yr0{SiZWR`6!cQ_wJo7DU&4n z`zIv$`{R=*OAySQ%=yGT&clvy9$crA)Xet_LrcFXP;M%S)Nvjg*HI4bf@DG$ZwIks zxR+O?qu4Qs#|w31I1kF!)FNhkPu8pTD}0So3RY>Z+|{jNlP6+dO+~9x3FmbS;4MRa zykX&OPE6_oX<)&ZIQ=I`M}2I5Ee&Vjt*g*l-Y#4y40n*}9lPGe#+OEzkDsZ2g!%Xj z2r%>UVil|^v$v61*`%=10K4KEFdxyBt!5)$Z@~+9sRHz%vm|6JzA_axy?P^ii}C5T zR!mu~B&p+AjhC*K%h#@5t7S>Z%V-@-Qk;>| zM=XZB6JldJcaDioNanlqJUw~td=9Sbd>8y|m~b`(2t9za z+AM%W&PV6~j%Qh7QVc#H(FowA1(D6J0pKWl69(ra27p4G`gas~Nc9%>yQHy&%b2PN3;yDC1D%_?Q9_gGCU=r2Z7jA5(EPA z6BZakpdd#U0&QaP{JaMRhGYtVxOav8AG}1AQgRlKt z4)zm+otoQz5g!;%c-xx6PYn)M)Z?emTZ*5UgB58@bO$Rie#-086n>fx?wZ;Zy9?~) zQ%HinZcWe~tT2MoOKR&_)+yx!x+`DA`-&7HKdfV&rcJ5me^xc(e^_YZ&pB>UTNkMW z&C#8@wkAygI^Jhvlf2I@6}*UlbiB{k=I}o3v2h*mBgpHfgjcLH!^U>^O5jI|`B}V- z;LuE#Um1(0>z48>gU0iO2@K`{fqp(pQ7pn7fjwhGG3MBM17nV^{y3d1$KO4`IomPH zyJNJgj$e6gYNz1!-?HJ-Mmf*s`x)yuXkKm9Ir^<(^~6fe|1)AG<0SzY2U1dcrl-G^ z5Gv~2SrnR(;Niye@Zh=C6Du2y5-S~)vz5dv(3Dr;bJ;*94Y!?TUUA0^$$H(cNo6_E zQ6!HophzMW@I8mC3dKd0_RIvsXFRr)B6)mSNrLxlv;wXG0k>}HOg?WFMe=yyFt}v* zgb91EDCtW|?THD7A~8QJtvQP1@x@$wTaTm<1_eokaoswlddb2gXklP`d%J529YylE zH5AEXS}s-5)O9(1QEhNuf|&gmD3Zt0DyjH4arW;L)W)S8?Qsc)BKhloLXkYakV_!q zHAP{TcUt?*$j)hLog*_-ym{_Ip*zpp%&Y)^&KZkl=xbDr=F}d8)j&&)d~T8&@rKp( zd>u7%(dfD9dTKIIh22Aj@}jN9&i_d`E7)j_>d;)A1c_RBzosKG!dUuZoCJ2|6kwL<-N0ptrj7 zLR><#JOaye+yaOTc3b3v-BiBjo3lC>j2m6gbL?#?&(T{Z>DNyp>n%+R3QEF1Yydxn z^JR;84(HOetocRZrC;Q!J}Zc-=Q%z{0erB+$IYj`#4$=J6gf$pf<4?Lcr4G+ELm@` z(zd`yk13(%_9@+x(zlnE-zWv#79Z`<@*BA^sf(mR`Cm$Nw-g4~^BaIGi^96H=^fmJ zHi~vpLhncixxLWEHOxbg;Miym!Lbou>}zi$x3bC55gd=3A~*yz4Jv4b zjpg3_kItK;-vT;jW4F1?hHR5uzG>4Y-T4oy)yziEjEsILGXE|y4$IKTC8l`tan?N_ zXWjGAXdVEZi0_;kEg{@HYGLWK(retpU*LA2g5LwBN=0(b=5a@YLF8g`E}U7KsKup! zmsW8rZ_Qh|as|yKrG0`f9MSILf5O<;#{WWiQM` z7v}3-=u0jfU%I>$Ug1{$lX>LGVYcnt=*kt1OwKB;E`7kQe0Y20$hXLc(3Z0jT{ync zg>y=O$DO>t5s{93W_01?Mi-7Q-BYUJR>I8-7cO8fB)PpM=o7$_)N$OAwW~o1n;W>jsocQNi7SYp zbq|BPd$4ymSrlU$C^sVT+ZAbN|HnM?;gYY%8Z;^;6rj@_3s|c zCSNwG<2@TEUv^@XFS%%#W97G4{cJouzj6agN@_Jbn8}7YZnkq4cd_POW^vQX3A_V- zq7n_Kws*kSa5E?eKYCo9_td2P$vfaEmDI2+Od{e@5KJ#)x^l0@T_L&!23^qtaHFaPIsmRyEzkn+ zgXRG6r72q7w(d#EA_Ty5hpON~>&(b$eZ7+fC>YN25Qm0I$@6}LR+W2(&x?;=_66U7 zBzhC`yhSa3-XdzJM)AbZ^-QXzp3=28)sj)VUQYxR_P0Plf!PZfILXbMEyNP+@0$}H z7m@ED)FXz_kNcn6*>(!(#|S6{bqI0Ec8>8C#;_olr!Udu8$Lc(Pv}RUUdBAVb{D|n+AYoQ0vOhA8J`@E7tL@Yo#5%o zNGIHAES;d+28dLxQWB5UP^k?)@?W?S3;;F2K|WPMJQ8Y=M}))lJ;J6`8j-U$OsTBN zRaF;i_Y0cWSTM3*Kr|M9E1OSv|r)V*zg&5RHXhEznpnv1RaYYAhJvGccvGu;<^jyoIuz8R5v933U4KMrHw<>0+%SlRC+UxM8wN%MtPM5{h=BFj zvAPWdGvyc>Y#6X|44v_Y0hVJp*Lme&133m!;J|^z2fJIm$`GXdso^T~HrXpMQ8I?I z4*PUKB;G6dw08_qOS79ODR+@N^<&i1W)9(na{e!*A-p+9TKx1!D2ZnGO2e4q{~w|d z?|{dqR-wm$D<8wGLX<^g=G7X*G4p?<2eHev9z?@UgB@`H5TXYm*KQgZ(Sy+2H1IDZ zdJwYKIBA@rlXjVwf-t%l@ITdpC;?rmVbpC>aTWW5o$1N*m4MITH&gn55$BZ~9?>iO zD0N%;(%l{n7b`0(4xn}b8&XN0%Xo*{QBs1Q{tYqOuO&twxY^M*ZQEG2Ax0IAjlxu7 z^qrO%J>zC4uQ!@&#Ar78i?flxFi#h6H32kQ!*3j^^t)s%h9;~9_-|dK5RjbT? zhRrUgp@uQLl!mY!^3F>1y)f$T9Kh-ea!1WBDw+*yUs6^FNy9;?;p-MRJRLW@jfPcB z!{5>H7V|u%#-4{~V3udv>^DkV8}J_e%Ep0iXA9=iFYU?GD2zW1<#G%h{10h%TC1A9 zikt0ApJbZtO`l+z%{9@i)ef-tN78J5tD5~1J8>}$86Pg9HO#wnHqorzYw%_Vxgy?F z$4-MwOvln%^;xaJ9s87qPne! zpWUfo&j6k<1~_=+h8FCqbPW)b;aN(wV;etUua7{<|XL%8kg z_a~W1l^asfGe5s)f#$^v%8DqVrT~A+nmTJn`!+_~pM=}rO2a!$`{=jdna5JJ>ajk? zX3<k8tZ_Ofn&S_dvFKF(Z4b6kE3gt<`qpg zulVH`@WWTzN%P`XJ^yOlJetD)VcKUVbKC)&COcsB=n;5x@D#Z+yvZxWPo4yqSWk&s z)zvw;t6$OZF4I-?+a0E>?VIdC`==YgrXLQHD+NtnDY$wS+$9h7AwnZ>v0t^bA6rr+ zmPg$!Dw;QM-hH^3yZC3-Q5Bvg(Dy%_wHeF8c60;vaK_A;Gm46+HOhCC?^BNKLe|uk zpD5o(S6UI96-{3GzH+7VA8IqZoHT8-T-g^KWLJQuuk5Al1NO3$cGFjmRn7))*vY%O z)<=U&kG;ltS?hEBS=Z0$U1G?|U*^k_JwRe7g?}7r*w=bCe zA>}w?qUJ8>{XV%(W8Q5`S5Q`i$7r5`?laJBA?U3)aa*7K{66Tme*M6ZKdE_RrfRx@ zKi1>c&`f1kYhMlrhX#*2RvKSHT6wKF0X@&NVI8-niz$pr{=NxN8O5)(fvP&0DVPXIN8p_dL^X8?Tjlo*e2ct0<>H`~tahV0%NFP8d zIAaf!cPQ96%t$Aij>GgiVI&U2T~IXF1qC>04`ts;*;uSKelQw~;ZE2z*9jZS${t!h zl#{E&o4Yz3+_HzEN0_VIH+OY=0PSJ-&zY+Q&0Q@3&+MV+6*(Dsp42R}MqUycd8(QZ z+M|&-7>&HLTMI(b$QzAE-VqueXGY#31w4*NUI<#1J=k@h9TTVraa734l9H9Hs1U^( z&E1b^ENb~v-2|=&XTKityq{?1*XF<-q<~CI6)Mp8ho*f&NoBmOF!Uv1t|kIafhMg_2tg ztgJnHrY6VadJ6KQlZxI^!~3Fn1H9rrQ%XB#3g`%tT9B52-N4ZxH<+`1V%!a-*bO&n z_&wu>8w&V6v7v4xHwv_~ zl)T=c)mc4ng1jCGf3vey+S^uTWc1I@o{|<7my!|}m6qIr@7b}VC%*%7JU;OjLi9g$ z}&x>S-B$zps|m z{s!4iA$GN-HkYAOF{$lpjMR=cI4S$jsZ+q`q(s|-6#gX@0|#+7d?tC)6Fq{K*WQeV zU_1zB-!S2|1K45L_$`}E5WWn0!~4fHdk!1`Zu`}2qh*-V#?-c7pnpK1U%)#|t(lDv z`zjvvBkj9OlVWAE*d%FYCjsBzpD*b2FU(40s~gQqSDCpQ%}Q6vT+M<86T>Y`u}br1 zF^vwAyt#SKXEcq2rnAK2KSqdg z56urHU`=r`>^~k19X=Xf8#F^?F3K!|Zep;);n924UsMva5N#IGOfo!B93 zL{NrresoMhry$YDk;Kg&)S{NUc}&PC?B>qM%_Fg!kJ0cby z@tIVapQdYr}Iz{{Ym8I|_ z(bN1?H=66nsb=!n1GI|;`ciGQ-za(#t|KmrjDNb94;frhF?dLMNbbNvxw(S|=S4^) z5#iZb8h?7-MD8fgWpn80KeUyRd0kVp7kBGi{H02@IXAX=WqKNsh240Oa%>ykB|s43 zDsxTg6qw>7cNGZ)$sI8rjlLg2Q?5#qEr5>8mG9!8Gul40~E zvKz&@XN)fP^Wa8lCXMF~riKmUPQAdr&mFHgP1C1OpXRjTe2nI}jv&f>w)kUe3hdCB zEuNN@H3Usyv(rD(&EypKEcISn5$ok73d$DKK;+fZ<1;cH{Z^slJEy9(=;!sNkXaW?6UviXgLCOWeo zcV-FAZf>AoI80v@X7xn@4laEU%7%;6n7%}{$}zKzl4#(RZim5iXUdsvh7BvB)l!*M zLLMR9tVak3x6oaon}P4R14#fPSlHKD5o|eDs^C3e=Z&b7V>>x#^Bs zU*{bv5H6I;B`cvDdG7XRJ$HKmS1f?t2W3TN5+4f;?=sOA-a&!Ok*`*g6p%r{k!w%w zM6)xGiJ@_TWaaG3_=v#(2SD1r7jP%s41&+Mj~yKyH@BGDse+Ga3Vfl04{UAaC~T%U zQ@}1RAg2>}x^UbV7$jV;N4a1YF_T@7Y|wIxbr32AJvrH!qZgILu@TU#m97%A$q!DwR}bd4Rcw6PU(5TaUD z-x#he@~zRvzU`w__92aZZE0iQ$U(O1JEk#;GZ|dwQslfxQ-*v_{tC~)FG0XrE5?wJ zdZkz-173>7wzd+s*SIXnFGhR)i&QR`>W&AQc(NW!We?J!8y0p*HeUw#vW4{>N+%V5 zj5T(QbO^ig9CG8!mb>w#YLOiHsutJ3Gkg?ipV7wlu}?MyoV4_vEs+C%)zbRL@HwgN zMjPACHZ}=VbGgmB(f8C%cp82I0?%19jd>$C&XECE**wOL6h{JnVRJHh^&DrA&Iq0; zLEiQE*FM_aCNR%GsCRnsjRn**#TvQP)<$M$1H$pXxFhEZo5tcr(p(7!Z&afS8;zq@ zmc08eoFtta&!iSwoxaP4g6HaZGy1!i8{UE0MHLdM_4Hf)A{p{*s{q7G#re~Axe`n+{(8>dV4+oqE z0dpU#;UWBko_1E0Xu%1hxnyHfuLNtbpHHqxuLP@P z#~oaPwO24cK~xafA;dY$N#rYxWlFGOpIx%#vwB}9v9*yRp9#okrOQmiTT|N4s%1U{ z&fv`@^;IT(W{3xFx72DcKkRP4o#E(&}_hS_J z^@4g&2>?0DdOuQ}56Sq{G_zT|ayM|%e0K6A@IO0Md;BPshLap>RP?oC?eU|5rjMle@ z4gt?Y>^Uk8oi8g;P{co4P4^G#W^&sSv*rqx0K8ATFPiFnP)cP$`@@G(18Hmn(#KNq zpW^Hn64b`6LhT;yvbtehf8?oF36?BFZ(7MTGabG5iN}u7pf_Cqb%V1ahZ$EsZ5sL%SGBg!pEmL9$70UXQK9!v14%l z$;QYDDbPXx{F9YSg(@zod&dsBB1Swuwa17b+(TW%75t!~`RJGUBEL+}+{mb$j$XNu zF*zO5f+rL2oNV;vH7*n1q<2nI8Bf%(_CcdhZ)4qP6oH>?Mo#7U@+Ei^`om>|Dk}#K zuBcd0u9R0+%9Z7^l(5j$)X*@jxi_$GBKq2PaXL1!4UIc{TDu4BQj(Ijuq3AFJE>}O zUd)!iIwuV1ymklW*fvP%>*4P#b&eNyigT9v^@}7$$t2*8B}?NJ?b6tmER6^yHy*_; zTN*W#<5l(jxd0UA>935#>&9`@fioJ#KF#cTlYm2{zv1nk7n{0J5}fzBM7g<3$jYY~ z@q(5Q;cDvV5UGTZ7e?U9wI|-2c z9XvFg9GgmKLlBD0{)Rit@7JYfhS=ZHnoEV`0;SDCM z+dM9hbKJz%I8QSfpQIW}PEtLy8ZXu!~-W9 zY>F#DGK`|8EJ{jh3xJPAQkjM6i)`=$3D?6Dj3z7t!i{#9i3sH=0Tz}Zg&smq32ogm-1B1FnM)n9EInphh zPh}NVbm>x21a=OgY^~+ib_l!DV8m~nx;iSN=CMvqeq$pw`6@M0Da;1PEO~;(+9&A5 zJOQIMK{PJ|^t;>mX}AGQkD;sKlT_g@`(3Mn-wxJ$lHnY!9R1cN<>;{*1yQ8X%F*vK zM~D_voB9~K2`4k-f49I*eLx{RKrMv-04KPxLeEo!bb9qm4Fn^IUOlkc%L>+yH4XPn z3f2#v$n#EQ1S3F@pKp$+b3}eXP|w(K40ABv^YiZ+gz#QSzCSKh>=cdgo?DWD;Js{c z$%5}oHd`UHvXdjnx#Q_YzzQjv8X*BJxrRTxh9d;btti5-1V;zxd27g^YmoEnui%wV z&;IfMGd+8{j=;U6sj0m)GR7o@M#slThbATPdG36^JCCo^v)^h|&)#3PNJ;!yZHXVJ zO2t-o2s(qdj2}bmKS2FM6fFSJKrX-d072+aKY=S}uE8TpJ%8rvfU;2TUQe8YmAij^z0ls4pS)sdklZJ}%r8}_K<_8A8B@P zosXhe_{2tqN^!jwK7^4U>baEPl5Yus^hg9j#erENK2LS`zfTAl~P4N zX=+GtYHDyuDyx?^bXw#)@diMMxQnz|jfk>y6zvVlseY;?_FRzoM#3|a_ zHwOJzmbfR`OwI-`6=XEn~jceYmSM!itWyGxt(53pHBj5@-aLcG{ zw9`wBGE+yNQx6muNrUshz&iRNIvxG5Ks#9s!ioV|2rFW3PH&7A?Y&)5pY(+Ex0)lQ zzZD*@B-)%}osjWwtj%JW1a8CIf(o&snfMU>P`ONrw%2z{WbOjo&lsFdS6hSKRd)Dp+&nYJG22 zWR?3b>98^8@AOgN4f~t}!TQYKR)hz~HOKtD-xB5zaJCTXy_OJXTT1y&6K8ZY#90}* zWXXFlB+mSSvz{V7mbWqb9!lU(hA#r^qwE~0_a26@xGBeSrfhp@5QCe#g5ef3Wz_^Z z88Btllngpi934|u2C6M^Tmz=eA4FN|IKR*G^&Hm)b-IcGC5;iFv-?z&usVOL=Kh{Nzxf%0a77APGc zK*@X>?EtIdr=`(!K*^s`@zdNavbS|bKq*+^lUT;kXlidvqg7)+?Q!rupa08PMspjBP;n zNGg6N5kHrpHmbU4k0hGRBEqh+W0xbwZe z`R+bs#GSTesxqX}{B@$SEgf;1UmGnM)dcV~AkL~O33LG~;lO(0>=wDs2yuph(T^oy zH3CKz`o!5b0*uTg&Yr{l1?%!lRffPwl>afZSUDJ8ja@p>E0&)+00ASFNR;Cp5nNeG zy!jLIX4Ax3BX2e&&Kgx0FcN4PS%6njqcsbF=U_c|4%0~n9x^2v82)J`kqrE-cQhjz zI9A-(S?bi6fkD#-@j{S|UZlLhUUQ3v5y?OdgG@*UGB5~JVqRYAs2G(XBX~j|k5D%R zgMtSa5XnG)&Phvxkdst~X8(hRUlgMo*c>0$sJuWqEgvvIPM1s5LNOl}nx;cNyIQ6a z*flMCVM!EG3CtJOs|4;qs3%0-$=%OM;uP!c8|x%-4&(D<7}Qe+?pU%C8WLmv9F3*p z^4Sf;l~9XvoGsN7#KpoEOBpS}!Vo{`iL;DQ32(_R=5Ldn$@}>V#pig;ysGYE02! zYRxDNYQ_;z^G2TrWAp@_TdgNJkU8S^X>vk*Qc`?Ea%x9Dze5K;zayzF@RB=#1cJyd zWXg=g6CpM6aqWK|l^%WmJxzbVeLG1#e$5>TR+0lT`WH@mRlE9S=}EA%l%`9&cGXK# zZg}P7m$j>3l%57_>#rmk#$PqMa>|R^)z3@Mg0K40bl-mch|O#0%7u-teEYB3)vrpA zgM~wAddSeB#Aaubl-lsh=}&7{KPkNm_Q}w{SS5QKqpeSUUc36w((~Y}GMX;y*;6mg zx8apDp46^>TzVb+qGuE9@&DN9%4yGPS3fPi41UzJ$)p80yz-qtYga!jy$HT#ucSC5 zz(lT-E>+Q)iEgZ%4RV8yf`pnEn%*Gfq8*dd3MPS}^fj6S!|5CKY3M&&nv1(e0U}jv zZEa<&A&axVmn%?gzp~zt#o57&6~JHhVZEU*Ej6@F0pzOfT0@p+Vk_n<0AKN5y`gGL z4b4;lSH-OQN4soky7oK;=%{+X-q1NqeKcPIyj2Ueh9-dr7N%J%CMtlPVv^QS8CXSi zqi!_0s15yX(W*y#tOD{7*iMVS^C5LZ@eQr8wZ_b>7>7rd;6By0nU!%^^@0@-wow7J ze^7B+!3F=7l9T-ePTNuni^n9aJ~7XB_n3{zHCP#C41d_L9W} zZy!iKlunjpTiJ>6H-gVisKH@mr0F~YVq^hej0A40q;5+;&>9g)Nl#ui)sr|AJsH9p zdBxbMwZujRYvU))E^7SsO29|JJNn392la114*Y zw3Yv#&S&1sf|BAWXHo-q61kYfeG|nT5fIVL&zn?4kNK^9{Xy^Sz~i>~6yZ z8=~KrP|p>5hKT`isp>qab?((W!jzuGCg@n4QkHF z?~B(wG3?1WZBMLZB=J{9ePEXGM`pcP;P8-vslD!g7-m{5a6c;vrd4>~Pc-kJkp@+* zYS4se`hHf>#jwFQq`^{S4H}WjGv1(4RrCF&LrOaVSr z7wQ4tGIg#0tO@ty?7Ou0n5`M~4}-o0$?zap0uO^h?v4rqVs%#Xi_p}Mb%MJMI%*E6EVHFcZwi3ho8Y0hlES{(P7BwzPbfy4C@~^e5N^F3a*U? z?e>#4CvlaiP2*B<#%NUP3*Wrx1Wb~4j}FpF!RfK6A$&o&OO|u2uXmhVw5z=>$arCA z>l@H70<);a#P6Y|{LVAt_fakmaz|%iJz7zR-44PUi^vnV|9uKnA4bo)ux=#RnPqn@ z(0N;^)pW@^!3EdkzA3{zX_uVO`e=pWbxV=lPx|k{9 zb|mlZ0(d9yZOwE2gMq+d(lj{!(2N;JYPu2AjD*|5x*1#*GHtem+j>I@w`u3j0sphK zj^vz{)Z0JRTNx$F@x?smol^SuZuYh=$!ms_AYl%AlBdAI90@mY8940u@yDa^F8t>3 zVbI~QO#2|RZt|`&>TU^rr$ozX&P8_Xh+QLf$&5+3Q7^1BNan&b{$88Tj{E0HSyTu1J70pxb0#D+z#y70~~kDO$fM+VJhc-Thm=p)147; z%T9=vNTL(6(|tYpzP@}vjOZ1M_HZpYC3`VI}{+h~F` z&}XA=YtB%j5;z&WJ07H|H<2;vWoll!0iGO2mcAjD9vC?Rcw2L-1k5Qeh7-nvp51!E zd!t5?Q#NmNb2u-}BQj6Ig9U4h=(2q@9`qUd7Chg1)j(kaKW%V8hIfuglONBZi zshjpdU0GsE1Nv}mQg{E%4uv97flyc&-MLVZ88V~XBa9cN?hrbvh>u$=ubap%;v8xA z*xE7eu{BpLomQ%qPTTT#=fujmb%!X&wjp_bo`Ehhmjqw`L}$7GpjaZBHXpPzG10bp zO`-Xn;`FZ@$BhGCEnv$64bG0`|*#_fnF3`HG;2m^o2?6P1$ zmf3(On%z_k^aIyJN|a!#QbjlQ^x*GD6bFCO3+v`_?Ksy=Fkp6?Sy&^joM@!o;*MAB zqv?J7_Ho*9rq_+6An-At0h?}IBW+A(=0J%AE=x&DNKQ^jN=fV30T+GifEh3eM+GiX zKjBY1!I?}=&bp}yy&XT<DsWM<&D%csdj4a;Iqu_~&$Ydzse8;kpT2e^!c@c|WH}t=<|nJVTmrXju~u zp#4+@e5Ka}WzVVM`fDr3IQwbKF>w96j4do2+oc9@p@tHky^dbkR?-_|d3vWVf-qQw z1(Nmh^wy$?bZB#VdQ)zJ&i!c=ky_jEOHo9s#CduNMFUith)KPLiJmb^euhV8NT`^f z+!;SH=LNV-T{8Jzm?w79J@E_RF;fAb%+>Shy}AY5SpArm8>`t~3ZAnu?MFo3cy~); z+Eczb@vqQ7ut$tY7t;=Yo97cRRFat1wL^$YCX@V^?t^05xchdt{{FqfNM;~;kNlRs zM?PpbRsrj#x!X&1?-BTE-=je_74|&>zY`}w)zR}>DPzMlzkgNAI1eZJp%C|EdV257 z%rVJKmR~Z?^6Sun$@062hJL(ZmfuZE0ozj)&hlHTBtB8-e9|yDFzOSZ~>g(zK0`)hVkbO|g6 zYZ01Nts~>qwaIbniawbqM{#wHtHffpk!(JH&G#kX6BGpZ9uK;pAo$r}eAN6C6a@D* zH=D28P@Fh5Qif$P!mv0omcjTn_QMLV&ivF$oXr;{Quzc$RaB4_32I&1#EMk!QV85< zDd3|ydMnZtwB#hQG8IPUg>4v(irAP9J+Veb2#KRdW%qQEIrWle_i~jwM)-Ia$GhXo zy?v3f9%fhWUFlM(ipRnfIi}L^5{gkAofj#}@e<}n#pVbygD3a#2y=~~`N6{rJVKF| zch-&O`e-xfObQzNe7t=5+O^A}@tAzo}D_C{4*;R1#afMWx=H8?)slR+3n=8!Jhueffb-GUqs7zj$Z4Uw;t^$?Z8W z^@E*;pV~`K-M8SUgQw6#%|O8m`t({5noCG%{z`jVr*rBeEbAauZ7vK^&SOLKwZK&o zN0c2px_aA^(>jqTH1~CLjbKje>|;YLV>-sCP-tEUoKbA9sinHl9nscCW^J9RBC!_E zb4@go$QD8iL<7Mk|ip zp1)wh{E`xCjdGrHH5JV6wl;O;C(3uxl|pi*y5W`1`d7ZM+@OSiQTy1v#HNi_C?|tz zcE_!`D~E&g?2baySI$r_q1@OVgQl+>rknwu5Sz1`ymGm6q4F^`n}uvm+k8v;0mU)v z%5lo~(3KRZMbnX&$zpGLUAjyxE(Vh(-G`rZ-`e$a?FcXe@Nls=oZA;*vW(aH@dX9r z3k$)-iD3F>DtPc1%_%V9eR5lkdABXvLJ9i})?5J-=8)Ue`nNfoysZ-cLv0u_QIkml zT=?ZBgdk_Mdma`R@G@vW^{2dimJA+s4hM+@{Xe+y?nG zNNcX<-S*iM@C0?z2IP(-tt~X~wn?)o2jr3&;HUZIwv%SQfhCj`dIS5xBIXUeH1D?0 zE5J|awtHXzaS2=AyV={8E}=N+wpX~gA5)6R!GPP@L8LNSZbt&#sX|lRf@_PJZNX1~ z2%Z9S;aSj|*%oxf&>9U60eVdi235kGDZxj$7Mc1OdMEho*Jq@CW8BV;L!cup$4FX_ z+xZkNM#G!qcBW_x4e4_`NtoMt9XYeF0k@MH&jQ`@mXS9HT1(zYfKN*tJCGr7+D=fw zTI^Uf;~F|PjyRUGQvV3OuOV-)MaxcrxIGW4+zX2Q&CdLIer{?9m{Hly;+CGR(Pw~o0ANh-MfE3aNVbB9eX1If|krC z{h4XnVUhy=O{VGB#;0khKA?FBtT{}19fyYW4c9?)h)OPjqrgHfeIr1@n9+%equvLd zf8#J^bsUV*H^|z-60jH{*Wvo~&1VF;nn~YOTSnhZMhif46Z8#&o#xXwWyn~G+4Rka zt)_1%&JPH7+H)>913T>-)zR@+S5&H10|u%?v$I1(Gcr);Mg5EO!#W%mcONWcpQ5T^~kG9|4PR~=PkHL=*o7@d5Cjame%~0_$fI%$W!KUYPF-n z=vH#WQBey#W-H*sxq5@*2hKJ2V>DKG2YryWg@waMjJQU{e6n0~n$|Pty!$O{fV|=*OoQx3hXB<;OnVICpu&0f0%~f8aWcr zcJpUI-zm~k;%X4zvI#H#?;-M6!`(s+=J2AzO}< zn)Rkn(;Y-@p*eK+WSBKpO3GL5(oLhr3NqoF&@-W?@MH?#L*1JXIXFufjHRAadj4Cn>{b!E`fW3=zFi=@UQEsxU*wJiA90LTm-%RlQaJ?$ zF4OBKP)|AU8QIBMa|j4v#RU*D_k;{S#y_M3@0!tp8@bX;`MLwn>x_0_-P=m#+q%5p z&zsJ&zCk4#=#P;e$MG8oxhKytCx zn!PoIknuL5A|fU<*FUIlJimTxXb?{rFUZAPLzJJDn_v5Ehlq|HBON=nv9|^8$L(x= zgauw)ITe6cthHbR^@4iU&^2qREa(C1G+%&w(1Ut)LLxbqtvf0GqfyuVI8ZJhsLSQO zXsHftv$?#YJ4DQAM{;uaw6vjdK@l-A5kYZr?k=wG?yfHG*139@Bcg9w4wAT%zP0C%kh(WHY1 z!HO~aa1!sulj^oM*>?6P)zpyAX;dUoomhOn#xEJX_I#^A~)DN#!oNz&+Hge=$kA+kW%X9V{31B zTurhtCsK8UK5M>`M>TLcux}r()EGN;^R4OQ5$%>=fk=Ru8>pHItii=>r-^6?%4yzU+=c`1)c#9>iUnP7cn$t%ha!>5-pWaa(5vlMBj3~nEjTB9!8Jvw~ z?utxt>93AY>MjuEMu#bJm58JsL&>g)YkDWLE7C2N_Q~*&hla^IbdZKcNckE5gG+gV zEVhIW_LwQycV!$b zlzdU3+*BA*yds?u#`$y|<(x-2`p|r;4fH5YUt~C)s%M01~*nKcJYM7alE2nUfum_qjyhYvx&qVbR}YV#?-Dz9g1rDERSSyQzHmRQ&>gm0WvW z8HzO=ZLz%f8WqbsrXX=zIhfyE59eRZm0!+bdU(8X4~=O98SCM3^i9^PpZ&E=uY)T& z+H!cSnkF$4~Hp-mxE@SX3OD~%P~c0%`Ztz5UD){Iii@NJY`MDh!R08KO);b zgO?f@l))pSn7Eo;4rg5p$_p^nOW;p`EP)1;AZ0glW!kArY~$5g~E$IAX++BS%{; zZk2vSsH+y|q@1cCZra|Qo3`&ulJ8FfF)FjVN`&9l%|cUc zO(U9-(tJY}2D}ISX3~XB)j3>lgDDD|xSTnkXJuLrbJm1x5U0SUj$# z1*(@#6pyQsUX+TjinFgvE{f^13WMTt$W#A|;&CWvBk}evBl@q@{3AlDmr6iDl&5oI76krP}lyoSZ@hf%F$MbTW7L591lK_ z&*5mR!yPvy7j5DiREJAb7t|8{Nn9MRlyj~n#o>w-q&QrcjO0j}J6|CR$KwBKJ$l1G zqvrMM7~>IN=9?yvhKI|%f}=`HiSMQ%-#ux{chmG%_-T#SPosL4#(X!8nh$T`@^5Jy z_1w1!^q36aH~UMCtm@F&le|n9SO(D4tF$bdouC$x177kvfEQ^iszl zYo(<6+a~j?zgbziq%mY>8<+k}^|zepaD~9TEGfCiu=TtEm*8xke>v?I=n}2+$>b|S z!{r?W@~}ubKOx3IJ?gevt8E>%j;eLkQN@8;>Zf+lDt=m9>-bnTm*2fNPeMW_ z;P3ltdHKh4a_)W3bH{n#bIyIY#TjUzg8s>VI3J82(Y(pg%x;VqI>^8ZW;aa=aCUUc z`=X%Sonpn#(%?=1#msIWy^vvG;Fs#o^01Y54)yd5=_Ykm2I~;Jt+9gGZ4JCPfLzoc z#n2GDH5i0qb%@>AA_b^aX1ozAJEKDndKhdPB0)BMAKnFv%@ov}BSypG7cGIap|^uM6vBid%AZU(Xp*p|LFxKy=pc^EuMD z)P_g!h+d}|8p^m8W+~&YWx)pg$Iwv5ZL)?kZdnqcjI*(It4d6Y#*}eNCA@Ew5j?!a zBZd-V z4a;;avXY^phMS}=V~o?GhI_P~PVRiCRnSe%3^!~Xn-}MqLr(1dy}K(Sqr>w31AE1X zU_^tVn|JrT?g+XCD7>A0?S|?aI5pFoZR?rdT8t-Pd*=>#Ro?&`=jhmN0Yk&|cFzFJ=`+1u%~aOn zYkkyAZ}-~3^yVdpYr577rnh@n5R~J@FR1p*^o%L-PT`6}kqaGY zkD#28p<#Nv*B+*~dsid`!ClW(C^E%jxt8heUMrBC8K$>;l51jNok)0Fgj%?YFt45cK=|Agu7-gh*T6BcH8rgTjUk4{dG4o^$sIkP=H*v>pM)0SGAX-lt56gMU6mFZHu zcd|=lCrh~32v4`%$<&l?YfMtQIl#Z=Qy3abw{wP|PLI+pQJMF=Z(oLn(e1l7FuIkb zr-aMcoUEu=4C)fgD&f<}*?rt2*zr}q>0EJGxWpsMx1xfWaT+q?Lvv=FrsKSS$eONvWHD^I30x(t;<1+~82}pdVL(kYO zZ-J{U3;{V!d}eT|v%h1IfbG{)fm+07+4shMx_^)d^e+|H@Q9%yZ`)@9-5HR#;n+{F zOkt%s-q$ZK&d(PYh%7_sZW3dib>wXZ5n(GI^713 z$sHF{(B4+cc&g6BH5&_RLDL3k)Rz;TvQQk5zgv>Kw;)hU)3*1iBoqNZpHw%Nr;V&j zD32G`McT>J5p_z3rEP^ZENv@bLxr8Kw1aIDL&MT`&j9@Cu(UY|<)Bm{5HpO>I=5kI zy9XFe48rStRnPlkXn5N8ng}`>@U%%*%Veupuh#IiF`l%Rr!8%nmZuHF!MvgZfuOfY z1W(1qM8(EN#l$6X)Nl}AIWY&!r7{iA66Sy&$Z_}-?gG_1F(*G7d0D~77Qrb~E>EG^ z9*$A@s{KgOEUI%$J~n-rh56X%P}3Z+&{D^mLrs44=46TTWMFfja2GF8nX0dUZ|+qV zP@fx4AX||+-Zh;N6XsnTXDP(=e(OR^dkBMdYjBF1cgjoj*{39T-CMs5R6o?K(Oqyg$HS$criS zPVqo6MCOSjN;mPYq2^JuDxzeHN3B6263gUNok&qD*F==mJZi0pD4F3=YmnR$3+qL~ zyCNJ>QfP1p;ZbA!`G3Nr)^JrxaL7$@VFoX?YkGK0N(xS5LO8_JQ;kFBfTfmZR&zwj zk5Sv!mFLXEmP@^wFReu=Nrx{@6G~F^r5On&>G7p$LrH47G%G_%E$GrP>Tpv=MPj1rb{Q zuB{|ZNs7~yMD}5xo)O6LZBA2~gWO&V;mFJNO?7kPAul%!dAVJscAhL&u!{~&*BWD9ZcCaj zy%2|*rpqwIp+nQ96XMY0rZs1%qskS{h6=|M=gzPCTegO#%T#QmB~4dzY=h8rk;qZ| zXu3)Sf^=L4(-5I658Phw0?g zP1q%z%MDkj!#kcsPOE1gmnozCzzRl84c)$05lJJhKND|&JC<+ChDcw@lXV$4np6WAePh`oJ zXr}zeSkdgU1)^qGQhBAYC)ip8I>Tq@r<1Ao2+e?f1~WjzEx2!zR66Os_mIL5k-`Se zfwHUGvm;7BECpLjOJF6~jvTR~BKXaYKHBtnD_uLo^my#rk@Wb)-u>ZA{_I|Qu3bQQ zVIh5KfCpOijUM5G#;`5bVO5)A_}lwOEZSq!3v{eZDzcY26bVua*&@%Oy@<1>PO;zk zrc&%nqU2rz7imbS*xgMW5-#KjdMbpst;p@_JQjRx7+T9dBr?dT$i6YOmK{h$ zVN_&C6)mz3i3p8~tm{b{nhK6nNruR0sy4H0062auNqjsBAN2S$_7aC)owI~%Ldl6N z8Yr}1&-RVO&KGs{)~!+%V|R2-dfIq?+RChQmk_5tdjsX*Z`I~&OeV9Ft+Z1Y=EC`S z{gwA9@2;qEf=&mh;B%Xd!2bDM zzDr;dJA;+z=a-D$dlJ}4B~y=DT7D9!fIGon_%Rp)HlCM=FA3F_k2SOcu-5XiZ!0Jd zRS@vi+F;pYZ2IdYb!E6->dMA4s`K0TK15G9lhl>PtvC|itWI4S%jU&$^RRc#^z}ym zcT{M;UtsTed{bHO;;%b(^ybO2ckM4hXuO-SYY3MU%1YvrBjKswvZdj8`9O^5V2qF$ zrM4Zzv7ws;)T!?5)!O8}iTEn%qvUA#Tw9&^qnfeQM7qF;qdUbkmZRZtmlYK8sXa=}|kZ z^ukdDPOARcL98T3RvIxBkDPjPKwN9&fOs=_4((8P?I^oR7Za4{Q&1OpG zy^_slL-66|6oWu05Aw*O3!DqmPe(%g^^tcE?UX*T1V>r;EwR&PT`ru~k*B zls({_J9FkHtcSZVT>{-N(^r7iDw4!$a_Ul&;#|7^0dXswe)R#d=2|n=%WKzwZ!P^T zY9*(|!gC_ww<6TWd4cAD_&7Nr{=R)q|8e~T;&~wilE~S87 z!3NmB1_0P3A5CBG?aw%D^q}}qDcDp}0{hf}V6ozUc{$nn@ImnjeKf%~fhPVYH*r^F zcPe5cG?AVZE_dN%M@8YAxP$YGUPnx-@{CZ>Wz$aV%L2fDU9 zq~lUdYsc!eKp+FJRZ|+ZhWm66UY#b9jFdGdGEzE*Zy6BUb5k^bhX&4+#20jvI25EN zA6ZBW`Dg8it5>aDyK2qwp+koc zA2MW7nINr4k2FDv?=luzcQ$TEvi_O&MX7>0`2l4g7b$iWg=x>m zw=JN$bnzE*9o#z$y9RRIg6)Of{G3?+j^u27D)`>gRQUdr2+_W<_HW6x84_?@b4 zvl(0sv}fcEtv(}vO=F?#sMPmG{`q?(xt|o`Gx9WYM!u^-?2q7(cOr-7ZX@d)>fssE zMcRq$;OOs65YZ9ZM>KLq{teZSoRR+zaPb-W)7kJzp`ERygKZ4GebZZ`-Whom)lsz- zZ;aq+mlQdWDH6oQy5}uf_x#~l@t3jc$#Sk83r($y6#S$*WB0E9LUV*1tZy`#EHVNg ztWP2b>rIRfHIn%<+5GwQwI}Nh?LJwTrKMG6X2L76{K%-NNPcW0o9*Q4>cqwenuEbt z-~#n`OY;l{Ht;1VgDTJ!eD!s#=tznXb;Fghm5w*4lXG#zftbiQ&en*Lt``--@0Ju6 z{jLQ)5GT>Y4}=rL#N>rc;gn= z0^Z;>d;)I{(D0@mY527?szKO;03B@_eyh=q@icrB=;q5efo`l!!?yz63hQ;}GNa8FTMask0Tj@{`{Pz7VDm0_HfjstSzk}5sib7M#t#~>5G zkT3NTu*D%EA~(0p;LuE0flr?TCtv%3WM}U(iK7>>%Yrv$mu&2|9pi*8(jQ>Qt%6+! zx%lmbUHqMLp zW`cdH=kD$Ub$3J!2K&AB>G+hU2siv!Jpumh$+Sj%*L zJrH)=1PIef$JYU2gTWa~>*1LrQNk}0)$8H8H)U&%5ZqB+;rL9_AFc;1AhMR}`&vY{ ztF?&CMEbrtL^c(CYzeS_d`=`jFA|Xqu){6W_l+C{l)i4-qeiJIOBCfCKKqkXRF>-C zHiA;+2&E1h0JK4y#b$#x-zi}u{?i6+)>;#^QI{S!2W`0dQU(0OCL?G_F*n9FB-JIu zDLEi8MH>@Y)9RSW(0ACpI1hEkk)My30>Ozq|G=K{K^RV~xq!=gb9e|&1jxLdyzOx` z*e$#{Ci0~vi+_0{P4sn|kXXFFO%{Jd@l?Mo)>^!(qB$1Q=7c7Tu@Jq4rlGOwgr?Xy zHVbFTlY}O9EJQC&NfQeJHi~!D!H`py%ya6?WYN(?wRv9Xq$FBz9(>uY>iHt=xk+Ij z(8e|D+Yr}qm&1)+uL$Iqg!*xf`nJY3>Msk4-(M?`!#%+9@@1{cd+myA)c5KScYHB= z^ua3`ip!b$agByI7T2i1B(dx08b62J-dW_G!WD&tN{WS>Lr)O!dj8=x(Ky#S*#z|`1SuJu2FwcLOlPgf#0SYBAHwY8WoM>6fwo+@MYxmUTzWWxC-BNcTrfFgv<9UDpiS?$ zf|{V3cTW3$^XD|j989E8Q60m!REJi56wTk>KT;iYs7flfmpBv)Qi|9j-q4;-zS<1? zb=GFsv-;n@JNzSb^NxK#`}TM;B4I5DzXcE%kSD4r0+!gtL|g z-q}Nmq9gI`*~IFpXw{Xkw2O3(vN?M2cUz+e*l}Gb_9q$ky3vEbB_Y^xP2s5PNIiKW zU8S8oSdM{go#?@0YoZ5>VPhGoBTdjo59-ZD4;(Y(pg@tTjvjnr$*NzRN*A9_7qzTo zX{}Y)YOUJ43TUGSrtUR0j2bML$(Ao)u8kTzYIoEiH$AJ}q9k@*Rm@#9z zoFsuWrXax-1Hrjvzm+vI2R@uKe*8FE5NBmo8wgG+`>yO6bKvtGlP0|@kr2TJNHD`> z9~X=oHImkN5D5-75S&nUzU&2a;J*jQj2TU9+=~RWTL^knW6F+{H8BS^G4@tg_Mjyf zAxVjjBpEr>(6ZfS@L%RY`0pa5lx`g-Mh2tLg>Ms%V~%;f76j8NYWSYv2)!o}>Lmi=EXFS3qJ>2-~rGJbO4>kDB$ZF%m?R#)?M|?a3Z%&#pq^M;U$6TUt0QFbyz(w z)Rih<&SoxE%~EdyngZjgU;!mDHXZxGkH7)A1&js@>aw%yvvFCOm$rh~$#6Pq>Y87E zrQ7CFQa=0+llhiiM|sCC%(vds=FhD$$e*K&g{OkWl+;+C`oc}%AlwYbfW^1uidzaf z=~G>+`&36Is4k4s?UM$oZ8Zzke#(M%_)iPf_E`hfmM7D+g-_z3Cs5n=ov#UgW7u+p-1m>Kc<`t z%JFmYcNE%3dU-@SCA!n-aTO&u_Wh9q2@az%@HSX=O(v^VkTFTKxDqpvlMO>Nl&bRe z?ZE7!dY-Rq1`Tj*`2PkR1fDaM`g5 z6HeSwDsG`BlsW+OMVkSpwz8TAn2+jm5x`7ZG9*yUi>vTS^^}H%D|i9j>^jxUwE*)` zdjRGmg-nvApni}k>asO_plX2m=*0YqI2Nq9A(P*fsaM_l zHZ3<-hU;%P>Rh>9CUfPy;LnPMS`1oeg#1$%gUa%X;p-tov>^0uYe8r;GX+|yF$k6Q z>IZ+1S~P$g?UK~jFWo~P5uxDm{rmJGHrUnboo5#{K(&68{?3E(XDZ{c3H)grwsl~5 zkIgYr+xzg}-;43*FhP}r#Gy(k=)o5A#t(1~pz&u9v=3Wd;hh_=t?>4$(w6Yhu^*cO z@wvVNPF8q$7S}@_&X>Ch0!Q~?2eU#lT?6{(5S9!t?Gc0ZZ%^)anXNwp)QNQ`TANtc zTPp6?Pb}>%NeT>1!hdwp`DDiKRu!E)mZfDbEDkICI4^5^L1c5$`7Ww!mmqm}=kDFa z_K`du-$CpUao){OC zkPs7>nBvB9adUIwU|#b)(487*ih^-h&$kaKaxPZy0t$E#Y=&QgA#RQ`mOHSUD2J~Y zfI3VQS2EQGq7IjqVgnGpA*S@Q)p~O;=;$5GagaK>0-LwxO;|0>Q>mvGdJ(lf4AsV& zRJ)nuAaQbi&`qTZJ<3p*2U6hFXzU}Nz!^lSfqgE~ge2NwXF8qy1 zR+-UQ1?IprPo5CDiDu*`f+6r;eLayYGb2|9-iKemctPaEE#!22C0 zunK{C8~Bn)Mj*+XCL|-k4!9NHutFpYTj<0uu8}MRi{P=>uZi4HGjc=0IC%ZR10t7W zrjI#b89a>hScqh@8Oda1oo&Dw{=uLq8?+sJl3U_1eWT`zIP|X*a_^{$qM}hHC1A{$ zhj15j^pS5~j{>6r=Nf7u7xn+C!AE@xdw?BrQ@z4W%47sDGZ>i~z1k5B=73avT4Y15AQjZw!Q`V^^nhP# zpmr(z3P=k-Y98=Nt=ytoIXGhnrQc@J^TV_ibmj+AY->@mE!DvecKADsh=*Ae4+B5h z!H`R8@opByy8&nidwil6=UNo!g2#5y?QRwsn{x1%!7}+5>^}8)bncu*hJ%E`le3uwWy4wgYYft~k#G%wjyzC)w@L zf@BxIEG%5RZru~gZN>!ELJ2Hx-<(O<2vAGF~6g)fozwS|S%)J`}=UL%{Us-c%P(=ULRwa-9DhZ%45_(AF$A1AzBE(2AKsL(6g!V{L`mIz1%wWXf>KJ z5=#3?`ig1y!*u_#`|%0rii;?~OznbXrh#?q*W*>`-O;eaI$3`y=~tL_{X(k~>Q~4V zO~3eN`o#zP;2NClO+MUCs|LnSs(Qu**kzJ@tc?8Xck4d)?^FO>D65uEfX?J?x>@%& zXz?6781@(_$rBUXarJ*@*c!6jy23)dio%V^1S6pvvch_Bh`L8Tp{;aDF?6(A9QOXSX)mg}}=jRHi#>qu@LxJmtlFga~~ws!|C zHxCX&OPCWSq4qA710VP!k^J7gubApyl~+2%2+_l#JRtR}MH3JEeWWd8#Y*SS{&F?cniK3Pnv|JW}(p*-|`F00-qPd7rLWu78-4)#B@g6 zEHv6oiJ_qe@5{(wn}r6ODKVYFHVX|lQ(`)UZ5A3tro?mxk+rLdwKH11LYR=_EMBYt ze()|?bAB|x=FCyhGk+a2i&@F(3g86)ByE3hdUf)dJ68cb2$Roxv@)9PqvwJJ3Vg~= zR;NGBuTC`zY)B;eE_g_VwKVp-YGXgdZnE^t=u>bMJ#)LYY#Gt^LRVXyzP1-nKN~TENI^4F z@X?+@gNW20W_tDqU>u(~k%;|_#9FQo8nK_jTc;*Z#$puHbej~jaYw&?MA>6AJ$wA> z%Xi)(hW*XtNBRwPflsAm3cd@To3#J)SFa?aM-!pfCWT%Z#^m6ZB1rWj${~x@ib!a^@yLx=60D^t@TJ(anYvCjiP6bk@^*w4T5PJ}15QL+i9>ALz`7B>ki3T1{ zA{2rXCGb!1HHdz&X%msVKqVQ-CBaPabqV|f&DfwHKm3r$?MK^5V+*->C|Hz~ctl?A`?pRH}hoDoh8bOJE~t0A1-Z2)?6|4djwx z1~^#){|mkYem{`y?p^T6oW4hZd6djad<5~Y{(*rv8~h7Pz@CyOhR#7YJ})#Q*nB>n z3nrQqY(AjIr+sDwn@^}y5PbX*jR#wG(wF+EG|-nFlT!A)wDkFN^!Te~%b@h$heSBj zyl^Hsh=jB1moNae5CQzL^bsG;Xu=%3q_lJi_@{|-yMo<@rU|Hvr;MaKE&K{Nz){}; z-+8Zd;9>lyy<+#0=89cMlUMBamSX+}TTXdWGC#|Wn;jWhJU$El8!@AA_Y`hyu3H92 z91iB8=Ud099WDa4%{?v%-j@#!A#j2Rt(_}@+)y#uNvmy&`m0w)~ch73B*9BCIq$0;RcD-&d_-Ch%O1qAC($o88X1<#m9+R9L z6P}vn=E~u6Ij%VNcCcwa^^_#BYqN?DQjstaG}eH`?9Ex^rAL{6=}}oLnb^+_X>2U1DIdd*Q=%M(% zqO)xleZ%eyW)@QIXJm-$t5#1qYBRe$Ej?1MbE&T0ox3xW`}(DNWk>S!yfFnsV};^D zrCmo>>V{DvI5%r9dXv8ai+&IDH|*X9U5_6Ep+n@7o1cIAsW@4*3T7`3Ly=PY?+Di$w5~`&IJady@8DM2S%n zNmQap;O)-w@!`08lbItmKXasD{|6ty{O=c&MOoE6a~yS-izWyudmM8598K0=(2_^C zjt+Qt!xQHhRV~FYh3|n`H9(lXhfG2r6D!Z-tKi{Pq-j6V^f$vGZwP6-QVQmll)wo! zpkGyA*g*D6^_9IZ+jM1bTDX+Wk@3UumA%y?$HJ?z>xb|X+yuh{1l@D_QF-2hd~%O= z3Wzaptr+mls#P%U*EP7n6|MdOj5@-=ZII=GulRiuws|1G?4#J|Embj+u^}N*%wC|= zd(!?asbfF6q@T0Ip6}yRk;K6}O%Az*{koM|LbF)a*$GJ%9`3n(%mY!Cm{K`Hoh6j6 zCgq-(T;-p^E#^lT^1Omi4s72%xl8b)tsg;Z&SW zz(#I?R=cse0P$Hvx;_Bns54z(cbjCFlBz$?=Pg&5+Iw( zoHrIN+BPV5TxhVeak0tB2s#Sq8qmc|Nlf z&3(tyM{TG>OX=xcmVr`SxVCPR0_6q^Yd z8AHTkxFjtpF*!LgDJ|WD%klK&a6M4p6pV>r19etCw-V^N#YA&UQM|XPXz$*MRQ69l zsSW`D{~+Ofzz3_S2Zj?dzhFmx{*E2!@s|r1LivL&$cpEiCNTXNdv%iauaIQ@#%y?r z=!!G1D-L`yXAaD1+=^`Mz-T0A>)I*~wLH_WXjEb0sG>%+4!RL4y}hK-!$#cGD|HBU z6<-40^PXhGQ}~Zu={$}(91Re&?&;*8Kgkcz70s5tI9RCA-HcIRZ{*aHyD* z982Dei{7l>^qXB4;q^mF=KRnS!RstP#Jha`?B~>rxB=wt?*^P^UjTm z4=eBstc;4%`m)0&Id_j&`?A3<+z?i#W3;zdoKt#t*vBJsy1plCb~}gEmwK31a;yt z9>u`Mf^U1}G~lR~fB!w;|7U^5x0NX1*sc$A6+c#JeA`1!bBQjCzAa^ogE-k!RSg#} z0*?zy+QYGdGeOeRr|@h;q2iY!jc>c3XzgmHZ`+hNy8!->H(T|evu6S4tVVUmn)l#) zXQxj;|7(fj=VFa-yBhhny^(6GecOZjzU_j$clEf(CMWguP30*gBD0Ba+fX9^r40GD zNo$4&lMFtc zHxCy6vYssKPs}arPyY8m%Kpk7hB}+w4=saw{w>o_b(m6=!v0_bf}~kwp8y=Q6OwcL zHh73uBZ~1o(fGTepNq5}ECnASKeu-cC`W$oAH)a!2>H2vkzZ_;pZhb(kJtLSsSy$v z;^%Iz0hL2Wz&o)k2lC=Lse}Cm7;|MKKbM?T=Yv4=whIKOmM(>YKX#yLG8yd*$;jn5 z<>ykiYCkt7dP~n} zl^Zs!T)C-g*hqX&(a2#wSp%xGl+^>XLNYQ!g45Gb=WCFkJDBke!^4c9ix-a{HBK(8 zELFI;ET&`+adP+kFE(LN?1odw!wt&uaSL#ivf{n{5*%fI1EYz1>%e$vZj`=!`3d;y z3_cs1(KMck##k%7Tru%-pVJBF$jkje5|p<~oV5#ix$|i+cO&4);VPZEQqY#QDLzd-R^9=jO&W zGn@q$E5SsiTtTLmt=Xw%`|GdZ6`8EaeP*U21ZLdbO;wE_%dDoxl9cj)nKiQGa{2M& z$C11HFoUL3#`O-(B<|IE-PD7GzM6#fzq@%9n`^qg!_?kLOpZu9qx>DI+ zISSmRkIO7c_61ky;{o#>ouphr+0*FXyyOt&bnuYqeBVOrA1E8C=`{K=uXDI^F?eN_ zAT=cj{z_UM2sZ8d}7_tR&1v1(aYTjLuQcHIM)4a`y%iVb+QXkj3=!vx9(?? zrc)h}N#=sD7LuP`xAF@tq8O-?=fDE>7kFvi&vx|zU!k8p0{w_d&`M^VNfv=u=x47$ z2{H*I2jQMa#!jJf%AS^%K7EP81+?B&P4SxKUH>Cjnk~c;5-xDW*;|Y=3;Kz0Z5C^p; z_;FkxAkIc0Aoy0UwZV^V=uNm*20vZ_=QF2I*TSFR$5*ZZZ_T~DMuQ()klw)71V5Ob zx)sxqap@B9yqIYz_^}bqkFa(JKfY5##1p4Z0jHB$?F)Y70IB)8AO-uUO@sOOH;{!? zWqcup*{4;H0luH-2AY0dTLwRvT~+6($gg zjUlAN2qFCqC>#jrOl9c@0`SQ4HWCO30{^N$r&6IC_^mk*VEXm(`09Xb%yyHad{cn{ zf0KcLwP+5zwk8m;w)KI4d=O>+@F5Buo;MFF{=1z)f$8*lyz%m_r?^(Ak@B@u-6!Q+ z`5?`_>NK!t_H0=4%X+MuK2SDZhD1~&`#0FZfTL>NCFXUPfaPd08F6(!(H(11cPzML z2cy4L>y9_CJ05(#U;)f+*hozB#F9y#P;Pdr$E1{NI(<-Ot|uJu)DF6kQm*Or5ri4# zFDaHClzyUCZmz8CsZLoLspQH=@BGl%dYoPMxU}@~WAykma%|I|e}V@2kF;akvaIOG z?@LR+ucu;VOI7#P#a!7S!@SxIa0vN%%71oYwX~mSLT$QaKJ-&pbY+8b^J>e%M&wEL zd$5tHO*f}DN%8@VR+n{UgCz56lfZE_jzmv)6CDh9tdbXUJh{nl_@$$hk@~i6>YO$WFYq73V$#96QTDlHjD}a9X(yGSL>bGPL zlvb%rv8J{xV>8tlUIyVLWQ3)#14+o;K;2{7(F-R@v{h49(`mlW}(*Vpb^Y_ zy%x*{2PZ3)I0tasGj4fuudelba(o`q(XApeiH|R_iwrHUmj4qrvC1pSov+|z zxMJoL*T`U`a}i0m*=O}}1j2Uvx+@}MLNMuSjJx(YV!#MCFVTa(M6Rn#po7q!&*Mco z`gXAE2!j68siT*74RkC5Pn=7KO`}MAwh=cE-5Q!SKu%DiJQNP3IxR> z>P~^^MzNi(m{=UCWp<|xO#cHx^&mn zomgB%d-Ya;;sFETCuADfqG@o}=rlO{j#7!UCqG2vsc zjN?7lfE;x=*~H~)gX0T*1)Q9S$ZW1hRybejE(jdg(XFseBS%zMe=|TL@7+fx86Zmy3`|ZA3{2HjB3b;>Rs9s8 zV&FiyldQBV(|h(vrE(;aDM3>vgK@x`LzttWBRPb5i&dVQxv(Uxba!snj)KUN)#+(f z?n%}0+dikdbq>iwlfho(5Y6iz*tGAU9lbe8(rX!jSuL0}DZr~oU=slin; zAgQW?N6{~OH%(wBFmM@CcME(sZMxawI({2>1B zC(Ym06WQh@vs9`Fnc6g zZ#vkf$>9}}sy7?Kvj&o;sB;$c5A~L6Cnba3z~Ag_G3YH(W}sIZ(=?xHWAaur8`ZG4 znFFcGecyWf!dvh;vqrL0Cfm7lC*v)~#HP2A?VgZv#Kj-W)L8PTPhi05xwGcam^p9e zyvmZ2${wYquqU+?+JJsZvHbA3xNv@K0++?&a9AvEeo|7O%uLj~K42Tw4Xw*scUv>- z`;>yWii_cE@D|txDiMm^{xODe_KeeXhN-*y=0LoN`?GZ}dn4XZ9JRW1)+{()x*$<~ z-`k4ioOsXEloI}v{rB_fOuLRUa(lB9%tH432sx3D7)x|K*VSm>&z*NwK`P1mfR8Qq z@ncXrd^p^_qc`betzIA5t?6SemD-g3_|F+SU7U?{&LLei=I5?H4LESnRp3AGhb&l+ z|Ii!FMjmMna%RkWr2T&c(fwuEBemg_CMNK+-MBgY=;C5!W60Ptk62E)*j2zz4+s*t zBt((diZw93qd$3*7~Pj6uch+FFH_e1Zn4xIcr6=l{SC}+emB(9-A#)q6`?kzuTG{^ zs=a04_1iB#MNj9U)iZ~&)zsC=&W4`CJmM`59`D>eftQWF-T)u3EPh;QfnQ+HD1Yo0 zZ@tl}V|SktZ>F3I%=Y2*y@*PE>g|~1Mb|(L2mPcuUdG`ryh6e zC`SmOT;P?)iVu#6jg1J7k9T##gilVcgo0~6lYs`DjyrsSN`>y=c@1DIXUd7CPFl3o zNg(LoAD&u+lWFY%x7kvlwU)wHg*?bUo(qN!(j7maH_b+CeWO7(DW%#E?n5_nGW}}O zZDCd&zAAD#nMRg;?bXKsOSS#G?~ubeMRT)qkOD65TA!(?)!wYUv}q>MMF$K0O$Q6_ z(80oICy|%^bq4M0!S$f~-MjF|+fqfHoLsQ0RcfufU6(hp0N&4=sCugBZVwv`R~;BV z`p`{<;-*|f-t%G86lMup&aHK~KcoYLJw({uwq=*5r67ok+-)Cq+_3Q$!dy=Ai>m|0 zyx0<-R8LV@xRi&ZhBp<&KbuKG@?9*u+dlz^lP6AKcl)z*=YZQe`i|&Eg;Xk&Q^YF zf`>CT6{>pxBu>GLb01eBn485zC4^YX_1AG9-)&O_-y9{5o z`~{J#HBvJ5NOiUpEGa30qiTRKw+J?otCp7|FTRX%+d41)HX-XQks~kuE&C!tas=|? z<@_*A)+y}S7yikAzmG?ZYhq8IG!JQbxQrJR*`o)s-$rD=f6dx&qn?W~+i;%)R@!ei zH5dMt4SxdREuD;!Xe$e5d`^;7jk&v&9q42mwy8S2Y;$b%)}DNIp6ci9AXa*@gVer6 zm|n_~bPe(J%*9NHWk_2-V-J}FdJw|a2*?2L2tvHYN>hhP-(n5Oic9Lj<>o|@IBHUI z<%k{Z09LTb#jiSx9mtB#_Rioa5P0Ttj=+BuG0Ty*o8<^q1XbDaHKR%2EEHoa zLMu-gM;PX>aK5y187}c!{^5{;1BVQ)u3pqjBJA5&DCs4R4+=<33ie5*Iye?53*Im07w?s4eO$ob^S>CJ{JNF0@9ZbxvAygi_E88?I7qwq2qbW# z4}uexCgNF;+@}vbx2k|xtg#)QK_lh+XZFL{dfOd^M$vd?Izy!cP)tRQiKD>RORCL@ zPFW}l%H1he?kox3_=g~VDE}jsEJA&QGt1Lf+BwYAGqju3H9LghlcluN*?fJo7NV@9 zitzQ#FF_Z{)C9=f29>lS;R3+lC;|BII}3A?s=(kEsEPm$VKT z@?35aR+fWg7)ecD93LAKA0HDNpW?>Gr;uzn&`l)jOCXN}K2;zwD;}YpA?cF%KO>Wg z=}|nquyA-WWW@9f3ap5Ts0qwuDFs5_6r%)e zLAd>eVF;t7aqNi}z2?lXMT50&}o1sV(AXxTfPX=4eF5Ok*=6ZsmG{ONNbS^WxRCHk7|lcV%RBSiXN?ueeYQSTH#A z_AVsgOzFe+br9Nz^SFFgiYEbQCEyG5W};PDeNU4LTg1nO(WTcsK%i(KTTBQJ$TbdR3q-cB&u;VIk_?| zZA5%fL`+OX5Q1ndXBQV|mMhJ6oPY+b4n(_6j(u-g8@)WQmqHCUd2{ zK%{WwQUcG=RM`x;w{B@wHd+VMD3Cw10N%}?sru>kY2b32K80`SKNzk* z{LVW^Zb%f@q#Bs^C85BvJ}UAhi2AV5W+9Q}ICXW3~!X531U&9zVP&05l0DLq_oU;)&E(hET=g;4Uw;O8J=&Vkp zP>94bIWo`ZgaN0a6)24`;2cIM?Ymq`u6l+Bk^go2Lo`TkiG}qd;aw4G;hI82vHB%p z!1=R%DD6w&b-7I4%m?V57G1oU1FGS=FIu3qhO0D66BlOiQoE*y$E2jhgr_I-oY|h9 zY-b*sX`h&%X`g`X0R!Lx0@1iMCu4hdvRbl}Mc-?L2U_lAw@Gf@Mt!t)8wWGN7TBu> z--R!qiR5k(xl8(JjV5RPtQ2fRXsxmaq-7Vp8ZdxtkeCR@D(xkX z6`ASfY!PpCU&6K8i_{Ztx3-?pp*lA%sfx?ZjV1x0BrUtEIsnw6Ph7T-fFlnJmvOn$ z&HN+-|z_OKTcS84p@L}f301;Zq>>S zYu5}PF#^{sE~*j>d-oQKtHgdxZX$hw5_cwt?ocAhL&unPfm2Wa=!2p7)@ zY7pV#`3H2zTs(iRf%mEiHEjy*WzhS!9-0fIx~ewfT^s!CB9VhiMW$HCbo9#BCLf~V z)hmjJT!^F7b%r2)3dPK3d~PC?m8}|#Vcj$W>)@*nHIfZ7*@g`p5U$%r*k@l@pESIS zS_JJu+Op}3=FOQs{{uC;%PT4o2>OUb@K{1jbZl&NOhPiph3)3XcHyAT%>>)11Y@TI zGfRP8aWQ-j?DQg8evH#Cd3g;_1~4!0L3RYEOu0No4SNrrrj)8fW5BHGROgOb3exY$ z$6cZavmjNjiD1nHA6x93ZUoDaGuQ|ozgh|hHg^m6vX)9!o%wTywqsf3t9?QGW-N4d z^#bsMeXfHb-O$xugsa9`3SGV5n$Q&fn9JKgBbc0NO3{~?7Arx0eKS(J&rvF8lT~v=RzpL{>Cez3zr|r?DLuG+#j{kuoN zieXeKNwot!hW5B3oa&&BDxD-F+)`BO>RG^5t<&DWXCkU}f<_h=`8rPkS4{@jduPso zY<#_U&U=k?DCxFLj^j%|{Ge57WlV{($)8dHf6kwxdU*Uea6B%gLnQ-;!Bt1bk3U)` z*NG{eCSb+-n9^yz+emc4il6$jlExd^b{(A)7Yz&$@nXw;Qaq%g;W83ax{Z$tPY|$T zRZNL;1TJSzpS}+7!oA;q3p_8#H8CZLL?Nf{NEA1enwXNBud_8VC4yFtAhdERo06(t z*46@_t5Qu&=?Ag!o=Et!2(@uDOM_NU6SVSA`_Rg1eZJ0_CiprVuV)jqa$8!M$xG|1 zi7BP<*lZsDBa`b>i|dbWOvz8n5Z&ta=Yqk8@H2rOErLluQ)0*htKs10VA4-S&PXr` z!IPtBM)v#GhNi6DHsj^$?2Y@aE}0W!t* zxn*Ej<>u(9?R_KFY@Y+ude}=GDue`&yxm{R_F2K$Z8h6xe}qRWx$ZO`F-S=36Ptta zNH~rb$-*M!96`W{3U&}HIK#!iZ#H53^kW=piw%xYMXJ4wCVd-dI6o}~j0`wGdrCxo z`-&tz#Yz4+VC0{qMIYN+$N5>BmhpaZXxVPe`5Dp7`MDLN54o39rtHWbm}4rh8sD15!}#ne?ln^ z9QmfXJMnB~UC=9sW4PhO3Q<#ko}j%xBXHweswaUPuYn7O8~^GBkA5a_!!URh-+U8` zPVmTTLmgGFXf{+hG1N~}bqqCwY%dsIn2H)@tHxq@F`mGSSGrLnLjOr(a_yu4tPlwL zB6M*$AvPv1E+#f1+07NB3sP6#8R4oiU>`|jWRvj|hnF{M((~7ApOst#`)0{xvu4lM zmSLCwp!z; zf#S(eU$1>qQU{LGiZ$gDhpjD_u;u8KOZ1if8CuhWm*j^0h76aC;1Hp@Tw)Err;;&7 zCynem@$hRNY|s`{>~2jl#eOekgu0j_)=gVXQ9X>!OQ4G>{5!h@*bD6=Fu$+QTgch< zz0;|qmshzrE~dyPNzdJpLFx?*GX3w@YyT?w52zn67LTu~(H2NF{C_Ku5IiHHgwrW0 zJ=4?2Bn0zgWBI`e@f;_%t1H`yqpfl|ZqU~$PhPM6r{p#`K2s)}Ict`-Ok%6iG6{Ft z`*L#C=p;%-@CCzFhv9gY_I5wV+1GO<*Yd>L`jJ}(4bS-N_1Z@z_rR?YV)2NPBei7` zmLdYi$|NGiaFN}OLh+3v{W6J$ww6gW+$<(J@^yvOZ@&rQDs7pBl>q@0WfBcTN5N&s zCQUkVvrtl3q+ce{*sd}OxvP6l6kR6KfXvX*K4HP203k1~)F;JL5*jAw;WCLEh1xQS zpW0I<@slV|P#~h}@QjN;Fe`)1{}!8~#cvuN3wKTM0Y;_shr( zpwJ9BXD|b%J$}9R?~)(DxydrwWWw*Du8^oVUm;OYUJmyi7@@6@_`Tf~64^sW!28il z26)7{rd0c<^AwSMrB^^iWu>-4!UX+1co4R=I-nC1$JA%Y$b5{Di_0d`2o4P*yu zD!AqeE8GMDW2;<(Ss@}$Ky@B!QC%VNP(vGUxr$`xzY zE?=<*S4g106aB=pUYI&wmf|0floa5fqOB}5+)k(d^Lp*$lJCKx8kwwS!US#A!@ky4 zJ(Q(lf_a0ghrLv{&cVv=Y;Sv!eH70t%0c81;_4FVLYz%?4a1{0)-Yu8Qx*vQ^FEej z?=1~n{gl)&JR&Ub-boxsT*DB|^$6-BVo3vaY8ZA|Q^PRK&Q{dHHcbX^XloemnW|vPE0N@aPTHFeJoAhR4Q+N5&>_9dQkVBR4N8sdq+( zwy3nTr7D?03ebDdAh=muS7YfHy#^>ikLqf;gN(E3Xq*+`r3Cv-cuNJ16>t)BAe=CL zj#8;D%d(`jPhSNn>E9pjAxh^UrKLud&QU8}hmgxpMwRN8JPz)m0Mg1z_!UvQA1R$= zROx=?r4o^)NTkxJ$kJ(ayBDo!cW9XcWL8wbuZhwFNa-}AN)ODI$%utcT4AB;Dh0^u z)e9aZN_QfqLyaokIgvK|Q7e@8@2vp&2;c1|N>?JKeT*tyseb*n;3oC6QKfX{QaM;v zPL0S{fCMx|FJL5uR#AU#8l7((4to0f`#P$9S~MkTTtr=MXh1*NRgN(FCwro6($mKC z(^ut0Wl>9Bk8%cbki}#&JK4%Rb;0R|6TvMi+!%13h#YgY)BFo;!7UKnqX)eGKE`AI zjL&s?5vT5kzfSXP-#FYO>gugqr7Fg5b^B>6v&vmUoc4SkB?mvNcKk+qAVod+Xaini zz9mp{nqF`N-=2O#iHT;7x7k76j{cjYHeo4gskz}}Au@1Jwcl<7P-vTFsBabXXDl!l zw73MkVXvDYWZt(*_z3?Y@l7NdY=wnnuqpRIY{}9@oD4?U+PYOFCPwGDdE{j(;A5MN zz(EDvDA%AAb_Ofi5A7`!V;uOBia^e`f$_(cfG)`RPeB*(B@p!P4Nt8vBZf#YGz75L z_z9B~l%pyXq-)KvV=K1)brL%nqZd2bSVnbzyJ0PQx|t+_t!PCO*k+OhHuP;aFV-WM zB!T(*c*(<~!t(qBd&T2>^m136>D1BNOX-P_RDjfr<=su#HPpi`jFrSC!IO#LzQsX# zA8_*X;e*+k#4dI17?h112{@0O;7RVRKC1(cI*x zdU@>{@U5l4MV;ilSa?Y!{7!`0xR|Mlr5q=*lpouN^N#DsQs$Y6rPO^ZB(apsX@vrA zN|%%{eo_)YEG5y?$(hS_cJd^X><5dJ><8diRtE3R7n4bLxE=e|sW2({UUjhLes!0` zN*3$KRPIs=*cEJm{cC^?d@08)r#}$6V@6ZH4wZsUB_*&=4Tz9t{ekcu-Ue|<0Uo8kiZr&Z*$C%xYMQX8B2L4vfRB4TO`fH$#tZXz9S?L(QWk6`pP0{=v{Ua9b z!9cb=v9O!Op(ri6fGzSIRK@Zm2yYTIkFnB9AiIdwKPQd=+2~OHOs{lxrdJ_f>LqXy z2ZxB<+=L-vLRW!r|3YU!hkz7k?+O{qhnQk}J4~@X9lKj={?VFZ<#M16uxxK_fTcV` zP+2L+C>O>AAF2HOkm{hajbrLWIT5dQUXn8^f zT6Fx3m-1urzOGUfXvxBXmd!Whafp568w8YHlfom|UJ8#;AD_4YOu)aSELAIkmVHED z9BBCmgrY#p-wVmx<#=CLDrG)U%d$nFML@XgH=;!u{M|iE1$6540<7SR?JD>ph%7HB zFU`xt3O>|RdgCbybYX3ZSl$89WN^*cWo>! zeN^5f(tE{+sHkLD3O!s;+;tMq~@5%hl>p%fe69nC@i^9zl_3|cg0_-&pJ{vbN zHkEHLDcQaq{&O6hCeJQHd$5COn{DH1+YSiN;g?HGZDz5f#8C zXPYQ%Gf-kU1#TX6)7hSxZO-;!UWNdC{G0%6OU?(U^*fTq>&yWdPwZGFX{Hl9W+ZL3 zLnIBK*l8tc^^l|$hlKWQOVVQF5J~F;J_GxRyKUQ~Px-Erl3lytKW8*HlKa=zVU?sk zCzT{kRS|A_^}xipEZgL;6}E|9x6Id2fac>#XHD>Fi#3Hh5S6I6Quu zWv4o2lfjuE-8q=4Ih18Oy3;O$vvPE&Era{ilEFE7bO#bQio$_X6NCHIDF$c#=#F&; zx7|qw_w3Of6N96U?qCKNES}xhg2ADqJD90j?X)#2XLfqW zNacREL*-ge@0h6E7H6nj>**bHDknmxcMz2$xic)OoFE2Mxh8NJYO=+)CJ%$S+FJ7L zLM7JZoady;S*m<+UB5f9^c%~0YrI`j*E#vE=A?!V0{-Uy22$6hURnW3U3qp!nSs=5sY8e$eHD_4>yw)?^^ZD$Fye(7^R>Ie&$5QBYU6PCVS5w;;|rmr)`iuvqL;)WUmRFx3BB-APmkfSLPOAT_1X0 zx{l5RKj=?HCoi?^uAjC;`<^}aW1@YVouz#?j{VrCeXVgfyaTZ_zF)Zw*`vo+R+2R+ z;`YhMrij}d`m!gpfaKYD+p%_O_A$V%uP2W$QRDrOJD)v7WW|S3`Q#}T>C1RoUCrPJ zyuXv^so%EORPvOGt#P)6ZQ^X-X)%3rwX6e#Lce3XMOnu9+N*ZsYsa+Y74&C{uf5?& ze9d&(0;5(U6`=TJB22_!X9wo^XT-&4;Ru9%jg#Ge%M>SD=X{)OY(PY+>9T}KHCKq@WDThahE_KUr7iRC%fEkXSxi+OH0Y$=NDjoTyUv@TZmx&wT&iqj2zY)A3ODb79ZpPfqB*! z>FKpuSwm72I6@&OAypjc>lYa4=No8>kG*O&KGsz;(GVZI-mZqOgP@`!^2U5cn`2mx zYY5$~u7CWd$(PmKuQf1sp`F0kv24xJJX2uof(wDMNENxN+fR9_BL$X$u?wyS#x5K! zz^v+co{D@21RgtP5_zRVfw2pHn#ngm8$J4qpYqj5^DP5oj&Fc`HZW#7WJCqVE*w#M zx(A6D_GjgWiz=8Ip#@3Fif|MdJC=%y5970HYOvl8LA_ZyV`Qec zLl#EBQkV3$iWs9`eAcA5wX0hLVVi9Q!jd;MCD*SP^55=jxbncgcSfbRyhmkrW_dt< z#L(V;EYlIA^$s5~>R*VC7=_{;oe>Sj9i5$wfv_5(nwcG>NJ>(KgcKxk3K-d}ft3NV zKJnQBtOm7T3|7I1E~(%{qCvm$s7VFm$Fv5(K6Ew!R+pFC*qEDFS0IjIrKYlC#MB9+ zDYP|CoiKv*C}%-wBBDp{n4d6Og-#e1MEHh#<#$gC3q|)E#QFOt`cVNehjw~sp(!^{ z(Sf!80>ROrIAU7J`ZTr%zW#Rogpq){(4f!|_@Yi2{Vh*IS7&E3{KC5^y^CVgSn8@6!^MeFYx7;rvjDg>;lK5`_RBYw^074g_&s#N&F7vY07 zHYL9J^2a;!wUR1(2Yhf=n+IR4`nBpdz4^|LIdf)H65oIi4r}w^ zl&Zs359rMg-e6U}e2gg+Hs?yV&$;C^TE}}O3t8i-J;EP3Q2V+*YEap~Ke+|V^1-{A&1Kb5nta~@SvCFDpsu-@d>hO1!aK6f zWmQr;f>AC5YqHFD1UJwo@LFakP(}_J|Cc=pP{o z$G5J4_?RdyKP9GtBHi3te`lbJa2wvn9xtmpgbZwiA)>a zAP}nJCI|#OK|UPVyVg`9RZ!{Cu_~}?u%8SFsQ=l3~@OFR=ds+ z8yT>I42yM;$r-ZQsxu@~yHG>Xjw~C>34+SG0Vj+@Af;C?^2b+-uyR6OQ4Z-n%v?D} zH%Lo6Zjf_I?JruB8>GbrH;7P8&gu56Mt!Exc-M--XVK!S8>Ho|4*Mw1Y1QN_fPM9< zN#wsBa)Y!C8A&ewdh+CN&gwM3z#=qeZV>%*bAz;;>FMbnD1Bu}ydpwe7o8cQ;Bd4N zaos&V&S^|;kd}_PL0U9wd7+v(uhyI?GG_WVxItQ;j~k>#@w+_#T0#De0$9c`#m4*l z4Q`Of|4-Z?EvI{8SJ*jCX>L@OcMcDo1Lfspn4JTi1U@A)Y>cY_IIeDi0Prc$Lc8p< zwbgk3z2MTMbK(W_ab@&?Y_;hDVUg$5FPl6dXRThd(&_=xl~j`d3>|86fn0LI1!6i^ zDnc$0U7sfMl5lBrs3TS9TN%6v zx1_h4xwUVK1aI{gEcyU>Glu6h_K^2z$j`11D2SM3IG>6xaIA%kvcuktA~A{p7YULz zC`);|F-tjhK6QY&Bqlpp%jIgr!qi;8IwU)OG|J$`&S%6o7X`%O+V69^_WKC6{);7+ z)`!87vCmmY2Fe1~U#{#e&xnuDK!5lu_(}9>j-6ip$8dVJGaa2?U0lwodbe2fb_w6) z$k?!z=c1MKVpxg{s_eum1@hD zEk=I?)^5lA5xsMA`V|zAA4tS05=n|!k`clP3Jwlpgg|hGAQ${=Ep2sS6CBnLcRltFR0wzbb~&KFDffheX*EA`(g^gyHlroP1xW<`t;i&5AYqX64x&Ln$YTZ=2Dw^FHlxPWLY1q9-M@v-tRo$dTfCt4a1 z5{1+@A3rp=05f2n&Hfwo)|M9)m6wweU1d>GWhD@T-LJe#X8*ZK4tBl#3Yq)oCM+(^ zMR93h$Ez#If~)K0U^|qnxVj$V-T<4{kWhjKsOv}Rqo}SiP^N`4_-x(ij+7HDqMk;7}b;T0UM&{>_`+ zFDfH6r6@RuQNT`CGP2TerTt)~|8k+ye&Edd4P@LuAIrhd>(-MA|9lKF9)x78GsS-m zWUI4&e-*eg2KXGne&{LmMpy+$FTjBd*-mD$FfF;16;~@rHeG--aH?OFBtnbG7ds@B zX%&CQ*h$q}Wei#VB5 zIRAu(GVnD`yWs@s4ttgv&Du>!$#Bpz0Z4RjYOz{|x~P_+V9wO(6ktedkda~m`&aFpDV|pW37DpA{@a%h-0-GCYGWNa{%#PKy{Xkr!vbzY;pU}tn@yt%t#%N zU(7_8Sl*~nU$66Y_sv{8f^Eo=Hjmy3_)_(-f7i}6;In7VdD;83%iP_ox^7F~} zuhpymXu#zM=1T-}xj>Si%?x2gM>9g0cx+|5IJPpuXG@onYP6Dk0_PqrwUX#t$Ci)z zl=GA%3GY34_(j{8mF^t{H;=+b-hpo>yK5yS+C%-fm0%g9SHmZOzV&^`D`UsfjMw%& za_QQhERG_8q2wo{YkQi8k0y_%{BKZ1T5$G|xa_DRzMz;H&xaHa=_%1gJtczgSFR?- zcecpEffXxB$sObY9|l*KB-$yQ+N_POj4lHDH~GzGe%1OE;f8vVd^DRapf>`KsfvES z3ZK3zd0&6IH$OVMM#@Nr!V2+SZO0v?TeE$ebZOEWNVoVnnVBTRNVjB$Y-f|w>tl05 z%lX36h{!TQYH3&wdrp5wQUJd&ls&EjmPpXvc{&ER&^ZH5iZw0`u&cTmJ1OkM#6y&T z4E@#i8#1`5Y4DJK@kPx8igW`96(;59Cne?PK=Az_O)94yc7!G!1a5{bWPa6|dCRI& zDz<2~n~Fq`CS_upwEhs`-Id*w6`bI!@Rc%IQeUMnHzY(H3TYDRcRn_z{Vor{;~g}V zDQp5g8$>%nXbj219vBEsP)`vgG>Ju<<=RapY|X-qj7CIg-T={R2_!TL@`!*aca;}E ziplj>c}DvO@Ix@6d6TlOtlbB+K4XFQE+7;$)5xxbcK&EMqj%||)?y=TCtNwHRmy_U z__QVsV^?XwEKP~hUiHD_o8a+&ypAm}rBH2qnPa$q$^`mgV%RYH^po_P^a-l{YW4p8 z`{B@71Sd6j5bHQoSwu`DL)tQxi8(ogAX9lcODaiEmq@c@VWB9aV`vyGgHM}Cco6$r zhhHo;9oa+FG|RBE+=4R$VDPUii!Eeq^`^IySV+pwo`BArFsY8Fd5qQ657n14e@ z9>S&ZTr7I&u&C!xv1AqmPFj(XQ40;#DB+uSVNNy9Cvxrweq!p+)?( z@}XLiPmgPZFhMC&Ft2;A&TCuzJc|R8JXLK5Gs+Oxbc> z$XP)8_uu6HE2ZkoWkxIh9W1q*gI4^b;)NyT&&3P%Ck`G2;RlVP-6u>Xr|y5@h3|f^ zP+uxHx8i$2(GFYjpIKV*3(uXixTk)av>_%lLc`_huoZu$LUp+cTJh3VLle=CflaU` zLg4O*6;F78@WY1={X(85*ZuMfNdBeTSP?~;vPMDtQL4UJWwhdvhU8eTr4?^GRFZ+L z_^r^2KV40f>i;-%2Cz>T8B35qkmvuGpZB=nDx_$YMjL(u9Cc#g-$5Jxw84hoj*}~w z*s$S8$z*-<^2pCFSE(*l8*KPIF+V?_FV2%O89_{D5QB+FSc;1yECqZFO?Tb3Em>e2 zTxW`|ZNbY+i@oKg<)42D?;~emGaiG3p9Lpd94>*gF%w0H=q&wKqO6jv0h=I!*KWi^ zmSK0uGESccH{py%(2in>e^?2uu=MX$f-TVUub2R;q2>Q44y-K0$&l|lX89k-ft5;) zF|fjw2SUpqU$#;=Xc&1a<@JFPsf^5lvDt`!>X^w%0|sF2M!KloNbnsr_|sZG&jR~j zT|r7)K8HhX8eE~$X@_iD{)C&s@)rp=GzbkDjiKc~zMvPh{2P_|y`bgKWkyw|1tvjZ zeQ>6%?;XvQ1ucKWMW8k;|Iw0aR!&F>B;OGcJ^7-Zp*e{&`UJ84x!T~wk)=UNP~+R5 zj-f|Eu3^{mr$@c9V#V6ED^|QwKV&#M2seC4w6=efR@2n1W#{Cu6J=Qt`~+zE52WpD zH~H{yMzi0yDl>0sm8jx9Z1%tRPYOytya(F+35C(YaXt!PF_V?%qhvJ;vB9sUJ+jx2 zA3b^>?D!TrH(z=>p56c$PT2iL7DVhP`tT7yBXU33n;sP9bl-$(C&}V5BHBm zc7J3Pue-{V>5p!mM|S_`lyyeg{iY}ew$Gs5kHQ$x@Ymlb`p+NL)lJc*OTHG{Y3LX$ zwXj(j{zL+`s09Pogm^e{(xi!HWyBiQ0@W%a20z(i_sR9D+3?9={A9_qPx_cYxk&YnihM$R zg&qa`c7zU4O# zGxX=dz=im=67$!5Y`!*i>6fFx&VMr@Nb3#-cz9u9q4GO&l zi89}UDD(ASRe{?SQGO2-Wv9Yhr#c$m(tunS8^RdgT30}Yx7MMCfOE2CL!{z{AUf;5 zB3Y*>Q=R8}cx!`^AfIqOyoE9{i7dlg7m0k*59m$dEe#mzqFStmw?uFOvZfaBRJVr| zBKzSCB*v*$!dt2Ojo@$6i%`QqcT;!^?YCgI8{RsEvPi6ihCKJz`L@GbUqFJ!bR@h* zbV144bkp?LzyBVDe5bM--uehjbu_$17SAdn&lk_qU)r}11nyJW4R3w;6rHbdBE0pT zB{7}@HIn#qk)z?Q4`5Arj)k{~u7L6VfdePWbL7U8CqewlGCSd|ZBTB8GvO_|z~YLU zM@No;sKW*Ag||L}<1MGd;jK#sYP@UjUf{n+*Rk-H24uQ8wv6E|IQJXETZXw`Z+-43 zb$j*q0KmhqJDrK|=6q)O-Gj4I;P2G#L8i6v7M-czQ3=*SlH1=ryoHjqjdL`-^#GIH zw&ATe?S;1hZ3tWrnj8)xZRl_a3D6edOkxhjeeQQC?jwTctJP(~TlW#!nWUk#BNONY zoQnHYKaaT2Udl?a7WX*>`QIbph2lPdsIZLtoQM4<)k@q)*qZOlEbe2o`ZV1)Wam57 zWg$|VaUZG8xQ~JMIT81d(`jYN@b|YlT}0+YsPuNLShvp4wXY>#yG+Vm$TN z9%!ks32-QE@@&~w!X^aR2RV= zP-LxZ>+Acd=kT*z?-! zWEN`V-LUG}R3q!{)>!$n{@#4p$OvMzy(b0o6=dK5MPK}+PkWW={F0)s{U^opWn|}R zP^MuM18`^)15cH!R_ErD6V-B+N-np$iGcurLZdAXk1TJ)2~>JaYgePk>2xQXo3z@d z<~j6b%L3oRnIrxFXAs3* z)0*mSm<%uq3JD(LP0h_sN+n!b$zi!ub6$eWD*_SgB8XV9=jB((EHr)XUh*=Tji;}> zrnS{R2)M$M{UC@H`fC_OR|vw9MfO<`UBTgX>q)`APqVO}6;%IMfMHozLt--lzOA%f{XI1rTTxTqP~P)I_^+~j}z&Jp-9s3TaO%i3$E$pqTELKmIABE%`r8> z#hsjxI~u-*4nm9p8|Vbx%}h;Z-Wv0>pWsZ-g+0liix=tllr8E>9xr=|?ly2Bx#r7J zqu!@}O}TkzV|IgB5M)o_2AKb3HJAftmuNI4xX4Ye7unoQuK#@a@GaD@DQoWnt3@s_ z75S0tMfU4QZuxM)fKAk|Dc9^ut3|G?(`f2&ktx*J**6m>en|adao@NuuD+i9 za#P>F>#1K;(%Sc}*5Lgdr838KSBH&SR%$er7}kE*Vb#=-U%%bE_gd=Lbalo@R*U=y z!$L)V<$965dy}7T?%Ve*>eqB9$0n;qZZg&KbJvUP+n46MvoD?Jz$;2@z&YKcP1#67Ieui6H0*K^`Izo=WB^PTbsHAn^< zp($I3zt=8<9~wdH3Jsmf#?%;wh@Fq9bKAV-^vTQ0%9iP`s9us9PUOA5A}A#k)R588 z0(yPXt8`CyCBAk;173$9^S}p$5Feau52WydMy(@n|EAHY4ygC*zz3js=y38w{C&Sq zAAHZ5H*GJq!8Y7*1Qoe%+ay;<-p^EGW##PI)uzD|Q| zLEQ~x%>&7A(6_!4elSwK6_q-NR8M%{)csNfKx3UH&Vw%EJP1U6`jLmw_x+ymgK&b- zR-C{!oFEk3yRO>>fofHjK)1WtNw)*}fI;M!`1?sc{9uiq>S!lDMWo%)J+anFH$$NR zxd3#t)p0+kZ6^gz0i8q4Bd_Yni@^Jtk&mQ*X=MmFCH+gHjMVGMCzq^DD@R@IT1Nr5 zu{Ze>`u?j3elXG-9UcOZp8ch}ImfbR*%IxP5}@Qey6by;o2#H7R6#6Ua840Fwp9WB znZ5u{?USb|@9dFF^EXSkWx&_g!4;}E{(h5Mr%*zpFzgD5z=WJyseD9jx&vIR!pf^l zORLLC&(wkJ_!=&^E@Ap~?-<`X;1^OxA4#qOBS^1T36CzyE*^9`p~fqg6l?%DaB!(T zv^VxBM5?>rD8vPuMPG{HYvn_Rkz4ThUjyI=q79`k5B0^Dkheu>tN`v1vXo{D<^1_Q zSbjuCc~MzeQ8`#rZw9f~Vc*ve#22)q3_?uzz@c%Ym3!ZFR+1C z2l|ko5F5w`Ab=dy7VRglY4#J44;O^5@Hg2TelXg9?e>CL%B6*N+dSI~z^bBhgde<7 zVFs~!!4>_V*RBzs80y#dp$6H2`ZbW$H8L)KAE-Ti9#!BDR_qzb!GKSVuCfuX8^{1E7L9Q=t-V;QAWox-L5d*$(CA_8{b z<+Wz|K)(D2$YrV=GQO%VYjisD+9ge~>agyIVyj$+1-Z;KSF$2hmWw#LlJzq`c2Jde zWu{@V{Tvb){pX`VbAP(0hstOdHbC;?8Z>LH}S1T$665oJ$w8?}^ z3kG0luR&;z(3NMQS)(f~NLO6Z8l))tgsWgclcm;n+t*rMmgNjZO?eR9VA zC#&yO`~p@|Pa;p{`>uN`2Mi$J-ZpUHd(>}7UG+^(qmaLrElL& z)Grpd+;wrohm$Yuojmzt>bIlr^SV0n>y3?#Z&1I_-)Y>Tm_uVD`Q_WadTpS7pNr$Z zPoKA_Uo7sV>*C<7a(GpF`D*GHij#wxL?7a&0}Dc*JGzP@^7w6CwdP{QscJA23>-a{ zT!FvOV$Ru#)&zbgN*$VYOV4YRI`YmrjYhR!c|Zex2JyA^cM;ir&{eG^ zThR9rQ#CKTDC{B#FRvsoq3?5)Fd3KxZW31=V4gR>&65@U`AuF{?q=D0S@5;Nlctcb z;_nk<;fLl@{_pRM`M=k%cOd_FCz=kNfOxH#U2WLm&0RUtf~#NVNwVLRZj!*)Sg?uD zqVH?iRCOsm_-SL>zBOywPY>=={%;#4SkM2B^zj+g$6e?3@fncTH?naw#>p z4Ybx%b0f4@Tx-26z^|l?yoJ6EQ-@0lE^VN-o+lfjz3Cd-o1j~933(5F|C9?qG?y|| z+dykQLp4Hs#x=BOKqQ&WPu9?s} zokiCMTI*SKUCKvmqXg^uXpuhdxYl}ifO}yv`4D{{lEKe&9U0bBzaq5fT|;{wgp^f~ zSJ3x)bXuL}Qu0(=XssqsMV8q_7cH}iVC2~G!Ul2^xa=ad%OJG0octYq|Ehu?EbO|A!mfjW zqMqap^nDsPatF;>INndA?>}_#gM}S}!tA(SYzjNnwgoz5focnp1*$DPVX9^aEYQko zWPw&zU!sIP_YGicT^ENkChZ(M_5A?i|l!(|1o6=e0Yf1^*` zXzsv|kP;72LK0wc;2E7u1~r}@2@}dwRU_kBB`^!`#;?whYFT+BlL^>4W4}}DF zX>&9f$^q`~%!yT4&;)fxW}hf#WGCW5yecYtR9qIbccyYse0r3Y#~rQ0;==4<^6-cs zUy%w+XF*KUXF*I!#Vqyc#4Of;Z0)E7sr>upP)IjGfIGx}gvpPBVR0Il0mGRn10!d6$cJ6R2%fl&I6_KG0z#}cOAyqtC$t{o5 zOyEnP!g36oDLl-MlpD&4(XAy}Ezfn8JrIeJL|aD^q1!+PKEY4;SQo<4EhjsJFsH_uJL)%vF>4%Wyz+Q08fQ&1*ar#l zGVKPPWquU5v+?{N3o_sTN=p|nHk>L49$M#zrO;wna!TTqqq$OMpG?_cR5VCvEgDco zr&<(Eo$EfTb!rs5Mf5U^;s((S}pq=d?}@dUrUnQMEP> zdN{GE#_}c1epzrbLJDtbPvM3$-Jp{eBW1LU)Nrc%0)CwKsI7F%#|=lTzcC1RYgf48 zZ1r6&9wc4uPcn()4U^1RO~%ZbaFT)ZUGW$=$qdQWjZc)SPOO0a`w2D4JagO?Jo&1! z@~fRhy>gKL+L!3C?eiIvPpG-ZR&nwnBx{MH8W)#>i}SZqoMFy!^N5}Rr<`F4u@h7o znZ21&Xv#@YF>^=7XEFO^sRqZVGj%-v7!@v8X0O~n@@7&vhbs3uOx;hYsmDffy_C)R zdmkgMLSWJDDJ1ZJ2pD|Q$KI18a`3=PoyyV?;aLI#HmpWTi6%ks0 zFOA(VUHXDrP{%HsDw41U<>rlsop&Ye0@Zn`V~3s1PdK6u{HU~a?!0*y2+p)I`t!$? zB?=7SZ{ytA4gimcerU~&46XY+jonu&eL)2Q=%xrIF>uWtg#p}f2mqWvA%JV&Qvg6` z=L{~m=!4E_iH&0M6cw7hCn6&$8yZOvfoTS%&QRJwfTq!DW5~G0%0dH#5W6#}#U!qj z3GhrBB8jgNiN+T|+e$u?BaP~nfhX~mrkS)I2yi+bKa>>Cry$V&b+8%S4WZXr*bMi+Q5GvOZiZvH;p7Tc7r54l`?@nG8(s;n zOOpFb(`V@fwTZKb4=n_MWqD= zMs<<<_R5UTU<5@&@o8~!4Z={d>7?W#tH%}(P1a~8V+eDdfWYhbt~6YeXi>vgVr0R= zF>cC$=A77^;E)*i{O&R~yGa}&#o|A4LOiG6dr&+(v4)*&62C4YHNZa{*05F@C4qHy z%kxTMv8wo?B3wf$tl@R5HN1|taGCO(|77)n46 z8bN3Zh7bxN{9+ZtFJm>Du^7T;XS<^|(V{!9i9~gW5E?R2zlRXIiQ{5xjolF?tv_KE z!ik9*%|s00TPGkS8~O{|ydgG*3;g^-x)k_Sq+xxy<#pvpGfTO_0w|sjHWEs@2R1b< z?F=}HfkELTN`?7DqFEzU>9fasR=W{vq$SL3MzJ`xf|;4VtXD*uD`%-@7R(kK&r)>@ z>+T)d11^Yv=NB?w;3NF%&A(uyNxLE2PNX;g-EQGIwS zKA;%r>;XjssH#?&AP_t}ru(G?fJx&`7$H6Z*xwF5e*Vyym=S8}>~RR+J0ex6EI=;g zYa`NAW>kd=F}{?J3~9T$c_Ssgby#_p#~nQmdqZD5N;MILu3I3e7-t7 zT{N{Kl#d&j=y(GYgy%`!&BXxpX>4s^Te6+1Jre!1?)t^?=5?P0>mCO_0M~4`jv%0S zt|+ANI<%%!Wfx+Vs5CUoU&-a_!ZSpR>%ztOgv!}=&cB!)T1n^E#Tibfj2h+7 zWf0lrO=V?G<>15=!rgQj!j0U5V3}_=n_Uo^#UEFR`*$edIdh86stN&b#}07fr?cesCNrdia3gOe@Tm*r(Me_ir(xlT?KTiFKjP(B z7bhP9pB5tM>=jslHuwqLvRVJsHZAlvr+^{z&0@3jL$Y{d%R_JrQHOOpGz#xGLWssw zXnh|%*auF0cg#$9N0h7o^G~8PZ2g}t`YEh^5m-kw+nj&rw^<=pTUjAkwBH;&L=_+i zsZuRVr%r18MsW4V$AKAB>7MQ?CQEXRl zfkP$=3z`uwR`226US@#$c2L;GXM2<3rlHRbr+5q;37_H_2s|K9aTTdM^TTe0pqUt+vxJaQWDlW#42Es?bZzFan=nS9j zRP`bFevn!{Xz*YYXK!1zA)pIGOpQ?u`ql@F&D~UnPhy*l|dO(X2t zWT?w&r*yiNpC6p%m&@m>Lem9f%YwO3Mg}+z{-e9ukRcCf$P*%~v?e`mSS7M3Hu2;T zhYVR18NBfoA$%<3q8%BEfO>I^KS6Y+j>4kObiBQYVDk&!&Y(6$-imQymev9p3Q zyruE+nT!nfz+y%cmhp?dx&&Iv=uEuJ$%l2xWGChYXK+Rv+BO4P>HiXX+xo~Aq?AJ% zk&!mE3dvX{(1v9C=Orhr!ZHLiYC?rr#%+6b39NgjE+4ZqVO=Egai}iMMYx}4fOAgO zWeX=4^$)01SeKDy!G?bNZ99uE>>sRXs-L^a$F|_{ zlF#R>U|*k59%AV0=N;&$tz+&(9v=HVE*krzjbs0ya|@dgE^PjC0bc_bwrLgAn7iZ@ zj%`?{*<4Nm#4)^tVZd?N+4&SMuxRW<98(NqKLL0Xi-^nCWCTJP(KCBz7EOqcn^s=1 zVqw=>;6~IIPhn@r43;a$ai!X0(^=^3s{*VfrrHEDJ8XKRuy9f=YphB-dpy0`9on7^ ztlW@Vsk9+7OT4akL>iXyrd=5`8Z2e371zb&gj7kSHBiRNhHx>KF_)M|Jhd&OQKXw3 z%Nm0WDkNh`dhgiW(E9X@#;8o`hQ8Pjt^nJJDK>G;37giyFPzMZ9S0i*%h;G&3GL_# zaav_WmS|}$c6KYl_rzq|GQy`ca0@5L#*R~qXOBZN-shJ@$byPR$WOt0p`5|PI5ykC zF+2QO9P7o^(K*3YX_A_VtkmW8VW}9$(ROi6VYTA;kY5y$6<8z?7KdhWrMls)>v4)s$uFkY4EdV5#ggm=R1_}Wl94Hba5Cd-UWQv37Vu++%qQ^w615uFxVE>=$Ca~mGc zO+vQlW}MpnW3#;A>q&Q_X#QV?yX0ou)?|!`AHf^kC^WMX-s}Sm&d6W2#4ix zD>?b2S!towX{r|l+{PyhaLXQix|rUXw#qEMT4(+KDsW{C@IooJUU@o&-Uw^&M0&Md z%wj>^%f-zW*ANRT&ze8lUyi*gX??35AJ?^^!P+Ahjw?8mLIl9LnaE z9i0$gj5R8?u2I7MC^)elR_BYSbLgIc$|+@*)Xh`B72G5PiEJ_ukW+3HYcAHn!MqX; zX3({rq;BhXfFAk{$B%==pJy49x@pwpux@{rs4vwSle(>VIuFZgH>n$BA%Wyg-9-KU zefvPb-h3*xS66a6kp1@``OO~{>Z=vTq;4-`slGJFlDeHKo?b#;E}pKx_4U`l=WCxZk=>MNDz+0HAVXor)!y=R%!Z6?$R>zLY<)NQ7;7b`PT!{Zm?q;7vy zsjt>}y8EWD8O~PWB-Qiioj^C514-S$HQ=*n_wK{w@8p)lhe6a~WBRjhib`djg1BCx z{=LSS)a?~0*8|J7lI`4DQa9o$O6s;pK&0#|AY^3sZ@&eB`_hdi$REk`$^5*hw1R7u z>OZQDIo;4mjRwIT%;~nzkkf7Nu3f-;r_x4Fx3SsTee?6lkFM0JuGCWL&eH@11%k9Z z88eu{WHN%8c-6cQSIzrQ&vSw(Pvbm?R!v_#&;84&PJ^pvsM)HiWh)synBDzTBRMr3 zUQ#umH%P`Q;bjkDNCqI-vb+e=hFpn0y$urBb|7t zKR~2clB2JYG6bfBWrMMc4Q%+U&M^(4;qA<;wtg- zbF{SJdaO09$JMwg6iJk&6~(KA228C$Ff^N6&dnPUlNMSjR?dKy)}wjJ1_NfUjixwD zzE8~k0}lIPa7|94{bV!qI{4R+c|AqApyzYtd=);uR0X~L<=#9dvsw~_ zTp5K>n38tb!Gw9U+e?@?PFl;#2`S}6&J$58NGT1?Nqn(iP*MO-7s4K0j-4m{o=&2d z)4p#vUHU=m+4A1|FGbRvy6yns-8Hc|COFPl;hV-}Nqm&7K_Z+dZv*hMvBY$F1bZLs zQNy2(r)Pt3C-UU+&GY1;Jn2j2i6~FHAx~a9l_x!1ordzH%fpO$@=%`iX#W6SFwT?r zCS`b9%agZ0V}bTAAW)vXu7q~}NSr56p~V&`9D2qT(IQWt5BN|2F_B3IgR6;^8Zcc` zsI*so@c0fv+mF}G1@v&*S(^1cdEw9I$@@mF{^px+Xq{+_;0)>xq8!hYx5#>)ysFH_GjI6K_MpzglBn%EjJ&i-e68j8<3s`b1*fws@GB7s~%nD+`fyFE+ zReNY5@#?{m)fRdbLe}Xg=jBB4eFLQNAha|*hnYE;7d;ese_H&KEWYsObdd3N!Q5=+ z(sX`OV~Td31ldWnyF><@k^Rs#04&FWp?uS9U=AVDBf!fytSciYKDV^dOG|iodc~Hp z)xp6*ZiPgbF8(TBR+QL3q(}&k`Z9a?B{4+hEVlaVd8zgBk>Udh12Qw`sn{iPS;G_f z5yc$kG_+A{*VBn~7HzW`<2s_hLkyUIMMwUGkv@b-TbxB2g^_xhA?;?4)X#`i0FEQ1 z$qZ2$i>=x@H>EB zpLCa?+VpgRE;zJ^pH@CVtLIGV6_&~n6$NKA^4O4hrKe!UU4n}H>v=SBIaFLon zo8lKz$OjMnB9Ll1T4rM2hH=S-%!t&@tlAXOnCyf?mY|Bo3(bws9GHw%%d@Lm-pP~T z#OL3@di@B=n1rTpL&hZfR|&daPgKLdpea{0nqSM|@ZO4sHvsLBu_FgSn0~>93qbt) z%SJMmqb4VGyQWj0t2C0a_aP}jvf9tEO@L_fH{ERg*`r4R^GGpelLK--NV#)|Jb0<6 z`eIKb8G8pyb$5`AJt|&ULjGL5P=Dg!K@fh>D4ITQGWo*Z>C?ZxSf;*EVot_-LD3GA zvCk~Y*urz?0Qc826B(NUtBbi4f2oA!CFG z2tR!2&@bd^a@{Y#faG7QjTKRpC@U4j?>*JOl^e+z(vTd>wL->%tYz5FKxAwyBx9$m ziBkO^XU+ij=^|qZ^1Jfo*yUfVNP(FJx@a`ZNJ8j@%+rRq`1Rp4|!NrEj zWWDq9$Q>6dR2M1?Tr5Y-&&%VBbF!isflOu~BML7Ik6m6*!@Js8Pu-|xA-GroP8n8y zVJTcscgz;m!u51-LQ_WiY$dyAe8%8-euOSrKFP42-fmq_+m6oLPo5C|N6x@5a12g5 zEVw{eP%=78zm+JfBx}H?2|%P>hljhL-Qn&Bd)^&5lM=L}SmLF&)C@{}uM%v5)U09x zD1+4O-r&I$HLHSD&LL`c9B1^d)KJtclMAVtiqA(Gy(sZX0bKj%uj7dh!p>jFfc1?zM5ScFB=XQ>|%~;dJ1ltCFYjS zvx-~-3jZLwoxcVrgK2Q>mO{2{i=q*3$?KbWRqI8<4Gls_(GoF58=cqStLV`v&ujFP zdvl^9E5v~)LfZ!ltE266kfN>hZPtpVwPA3zP1Ycami`Py8=h7HDOxd?Ul<-y#1j>U z<|It*9hBt9Q8N;Tmjtn4yKa9vh8{&j+euJzPvfEqhoGBr@WH`Jk9uRpinVK3tazh- z$nc@?Gki#-x?ewys;OC>n4O)Nkd+C+Pk?N1AnogR+1_tPw&z=wk+-x`RPmlxx2Z_@ z-h-610V!*CLbeyLV>04;D11_xF=8KOOn*LRdwkjhdu{T7_VgpL`&;Dqe+gQX4ZzO{ z)>njC-$RP^6{ln_El4Ov+0jcAH47-#w-)%RQX%V$%MbI5gshJj8O4RHkLmBnVPMwx zIc4)wtS^RX#`=yx)<^yWLLu$b-zWOdAJNrK(WOg{7F)kR!@)?cy%w}DiRh+ZNAx5+ zga2418ZcI)QsO~Q*d64=_3H!;Pa7XYxtX+|Y|y_<{rJ)JCSvr!&Qp$c{*OLExm~5& zzJ0qXO?qI5)1(j0&K{7TPp(T(6H6rGwDim{Mo?&I5F-rMVlC|IBdOLj5DC1f5%J`;lVlI~H)sD=Os+k1Mp(n?yCc`HQA|AG8G=9?C)Smbv0YCT_ zF{!k)s*zgb`#4nG zw#DGWxEW*+;5Omcc#gfcV-Yw3UyA|Jbr|Js2P?Oh@Q0PV4Eo{9!L{F^*WOtU?!eOA zfNTUVZHZ&AO_@t{gDQCueD)H4?XZI&mk^y{!|efc3=Q|dvDe;h2D@S1Zh-osxNd}F zuf4XMpuyK3g5sHQ{_~~%MQk?udV!<9UO@aGM62^*qcSb;*dX%fql->d+h7X-f6unaHMCNqY7H4l zQhbJomui7Iq0Kg^QHb#LRS81pJgD`MDTotXVG)nar$+-r>eu?^hyMf(9yFq|{ z<>}LqInTEp*!==>TBaj`U7`yJC9mqH>92qPJqY-k4^^Py2`b%hC3eW3pnMBuR)Zhb6 zXax2Frul6nuy5Lpz(So}CEk60t8zy|u=&tvwyLwPsxS4E!5lb1SHl&t+D-_Th;n07eP`!)qxP~eHTNp`H&)5)gVvx8VOA`*xoCij;9ZBDh6BqJYukW zDRatN4E7LYCej^o+yYa z;pL4HaM*)o*^n84bC3xpnqMR4X1t^J6 zMRgXqm7F}bf&p>=Dej#Z#`pD&_U-|3S3%qdmZbFKWerUfME2xnkLGg{2g$M)VBA;Q z!F`2D@PsD5KgJDc1RLABNfx-gE`#z{^{v2 zpbAjYH`9%5ZpItgj1_=3%?(eIdEHO}KO&j<$E6CmJyU^rnXcYY0gWIlS{lG8NX|}> z2L%NXfAcG1LpVOL0vJ)$oGonRNPESlM5vR}`X}?^dP^izaRqqoRe%T1 zdy<^L3_a)i^XxgkYS?qq{2_%h^_<4UP`;0EjCT)KKuT2{NAvAsQ9o|hkOW~=F*kbz z>^TE7v*zKRbGx0MbDN0pgiE)V7T40Ry;}N#|2#>be+{)f18e!$a~{{QmejbuiN>`M zkL$PqaaDY>&M>Y=Bnp^tT#tq0dWcN+60YTvc51nVnC_`>0W@4o+TpfOTh#I}k?pB} z{J`+=gLWQ%Km>V`xxX0nN3_+S1rBsig(sY|yKDb{J`MngENCY%O)g#$zBLP9F}!5y z(j}FZfUlXO+4p1wY-o4d6=DN%ml}_b7*o{$sW+LRff|WSs`T^ofaX-E`;1ztIH@o+ ztU{WX(UTF>y-N+>v z2WN64c(bed2;Gdz${90>eC3P!Bl}d1u#f(LmuT~yFNgFbQ9b|nLbUUR=1IFlynzix zr|ZU#gmnvqrlKY-ORDhm#dW)fO~t~{&~j9_pg^i_2?dNEQQiGS;rs?@Vb=)-!!kML zlI)?dZsjTY6JgzkW@XOI<<#T4U9nd;m2#T?%pO&p$(v(s15B$o2c4)-ancBqXar&gDj>+LvWGE)G z(!v^~+PQo#Z+vdK+X4M-v&Ct9+Ct{V;`*@#t@giV%42bm(REsmE za$jG>Tsqwju1XWLHKCzpl3e6gfvVK8vV(jgy8H4%xixGayNb^nn2}s2&g>s0Ve}Mc zk7jeLZcR(BLwW>EdmXV*KA8+yt|&8ktX$qR)2_$Lfju(@kJZOkJywajSG4$^p)g{( z)8`f*cjJb8LCwZ=gPbtK=mYHZC-MQZ)uACJX}RNjLe07prP1kuK4IN_*ulx=3A}^~ z4!6HFsWe5}D?-B1@-qh~a4XJFLdRsFW_j&tHfEus2raQs=g?EFY?(>bZv=mnUW6L{ zxtq4k7~EX#ZJDv==4!iT#^C01WXp_oH<$G-GX^)8qg!TdxVfxvnK8JzoY*qcj+?8U zEi(o;mt$LIY`M9tZJ9B+xt!TDW6#ZHW6O-e%hk~>GY)yV9NRJjtNV!fp9|BT08M*= zXxc-oFg5MnWmHSVY#p5Tq}V}^roH%FhEHU7Utt)(Hkrq+74QdVCYPmW4TzEimx}Vn zCUL9p&Ez!T<>R)!!KqbF)?fZgRSPjA8qaLAWrnHWNfcC)1Hnq{E62m#&+dvYpFz64 zuBe6*f5j55ZJA-}cT|Ek6%}Ov381X1o@~KeW(>YG2e-^T<4dEq%p@7N%$yf3Z?f1j z6VF3iW}x|Zfq2Um^N%!{e?iFnQ~CONqQ+@q)TBf6FD$GQnn)!x8~^HnGMfj@5~QR$Iydm$J^OE6a3op<*%W?+I~X@H#H3&(l1)uze%fU zYSyxIa@dKoER&nA{k=2yUEDjPgY3snFE5pk(?9%DQG&g7VL|Hs~UfVWkh{reonc5F-5ur;ry zt$DTgu&iZUmTY-Dc82W?$C=I`AwURW?@ghM&`F^!ltO6>ltTF!EnnM|7D@}0vYVFC z5K5UXvGPCXNS5Vz$&TTJ=lR2vJbC2n_x|4BJI?za-Fx25rrk`B&P>^~yDyo%@4ov! zmq%wZZ%$D2dUJxU=BrSLqa<%mKo*N_h)nn9gv2lR4V%fE6TR0))s1gV^X3G25yhEy z{9xx|)JQY(I#h)w<{e{|Sd?mNhm_5#V5`IHh*Xx@$ zZ{F12{sMHQzuV9jJ9F&$FVu$PE4dBF+3_EO`t%PF{=H+be=#>6U&(DeW={y8K@q(D zn0}xk8QYOoeKB_+U&-x2&Y_7Fyp(<%X)=;Ff1$P_U&(Dn&hAr3pgjE}!8Bsq0e(sFX9dQQ@`T zojX?Vv1yMUe{5e%%RYkg?8QSV*ftrZSFCl3IS8eRvSO5HZ;^V$fn^9~i!(YR_nPm_ z9q9L)X;J=We@hEKOwk1{VAP``Y91)Z@=#iM@>gp0x>~^!F<35X#7Ugz}DprV79!4_L#9Fp4rLK|v^sj$xRbIt)`{$&k4Q)DV;J zXmt~qG2iIPFpc0Cd=f5IR%Mksy5)Y?<-6rRDl$|Xkhgo9x2t@P2MJMkFoKLF^C9Xe zA*!AbW#!2S5P~6~T?R@@gxiwN5H=?vib2^0wN@cpP{uKcjE!QSap#c4E^@ZW>%>jA zz)H%izoEdv19J~Bz?%FJX;QqHnkZCTh$c%Yo3JLMiC#oEihT6WL5W?M(ZuRsfi$_k zp!o$DwV){ou&4q2 zlHnM)ILJ2WlTjYu{{U7GV+qSivs65hmMvc!b8K4+#E8pc;Xuma@0Tk##hjx%7{z=8 zuht=8S1o0$1*Rs-W7@JxV5oApD%_&5)zd+_%{UnrgY9r9qjYATrml+L??weY+azOA ztZG#ys=@+8T`%>*lBI%nr(YWuh&w#t9c_#yx`aYT^LTP*rB+BcNSywwHfj`olsd4@&H=L z-Ggd-+YiY>`%lep4#1_+vs~jx%~#4foEq*^FnBEW-mg~VpEN%}bUSxpy3sP0jKx#2 zM9n7OVCO4Dw+@F-8x|sRL)(#V+D5rp$K^>YShajzRP6LzFkIW9G{q@Dzh2{9p>`y1 zCAy7GquZ=U^k+2cpU`m(vfobqr5%8wRrx3Mmw=n#Nej|VS}CjKDVV5o@(gq!-HJ0zEaKTk7tC+6#Z=ucfET6zjwf3b zFV9zR6_NhHRO$0$?g7}79!sT2FAnli1c>D+*TGj#6s<2FE zs^U{DuDV*&sGx(_4e8pobc5U>a>{MXHTvdXlC%6DB}aGjGhd%fr&Dp>$r7O5+^5bQ z;x(A6`-a|*y7p=T+SjF6GxD z!(#t6g_gC$w8BS8bi67lvr@rR1*K-sdHw1pl`cp*`4*X}tJWC#5mEG$x%_w1yp*Z_ z3(i>8i?s(o*_f~0);)*D4!`jREJrt40=@=0^V9NNY*bc_m?>g%CFMMaI@Ia@Z97VC z)ksSza^HwK)Qhx~dqg5Nhet7)QVwd7EzZ-rR1vw_CwB2nQbVf7T=yL^aD_Qx&RGYp z%wg3zx<{mX2yPw$dsRae8lkTb+*ODoztdy~zB0=hS<*oGfBaD&> zH8+zWT}6U)@l);xg{ItZ6q0iJ;}JVc%Ds4U%6%JDzYZPg{{jxV%}+n0%>DvUrqj@N z=m-goZ!IJ=ikah~!F5g!4a8Z8h^>x2UCOXr?G?F6XsFDATk^&^ z6~N|PYCbuH)Eu981J=C-mi!SMCWj|Y%#2daG4W=u_&fCJr(|-}*VpA!x&ht8fcnkr z=2t=eZc+P9bTb=Ppc}#cEg8*^x_gPFQ(pvN{ar*n4*kcLZPM)9dh)dCBevPIU{70=j#Q00(goV)H`939dU)OZdeFkMK%qUT z8ug%sj4C=VZcyJjwigty$Wv#4NPA!*QHc7?u^&Enyf7N|m<#mV#py98jq#eFrC)mS zc)u-J*n=(CO$aj+VUMlN6SkgwyYmU-B=EC|AwB;2j`}XC&i+N(omHR(9df=7*zk?_CC6oKkID^Q10bP05 zlq*mF_~?Px`(FWfU6xE{uySWCU@>I`~czcl_na$xk?Gs;6rLb?^$oh83RZ8b$5yglEsb zl4YPc{X0f6yWYN(y|j!|CbjXDTN0jAMvLKQBUU>aN0>nVEWhiSi#R-#ppzSprAfk4MOBWM~+daXp&5R|g zItgD<$&r**NIA7Wfy=U^U*@B9LB5ymsx`OEUBSx;fUm-@E+l)+6`}CIg+(Y0ezgDw zmX=i_1{7=#g#eh{1F6>$fD&Pc-Jxp~i8?%WTMz>ZpQu{SVvEblC2WFZN8%Ez16(iDUQ4%9 zF7LSnz|R)!19CQJRv!pRs*w+f%PJ`31ALcxTfY?fKwY)B68S(I@_|bTfFHo?7vckR zIU)RSVNPfSPr(}q1M_*D0bwXDtJG(#P$5p3U8}GamgHN(-B?}4LWXb&c`|H>GI6EK zi43u(TWlAp{akMaGDK49qUsdNIHBU<6SM_(20{gf;nX$cyiw^FS1VY^7UdMD#>;n^ zwl1SQ5?x)Dm*rHOQ!-cJBK*P*_#qU`uRFV#bZ07Yg#<}Q-C1q6J1eQKGx#ZMt~--D zL;@U-%nAux>J-_mJKE(zS&d8R;nGrFQf2YpOaNR41@mjRFCO1H5iog@ii!4+><>-s zoO~enip3fZPs(J;I0~P{;yj~A6;o&eVpo+}Mt9Vhg13_wL>`60`7!`tF;gL_kXGXF zTOBpQb_`%i3BOM7BMevx0}>k_d!w|XOvI8{`F7JtQtA;a?Z_MTl%`2(b6!ON{AOVQ zl;R30n=PCGz(6LL1VC)zqj+Q^074e}w}W1rpj=|Pt=h-dNz@Gro8waatT?!D!2l$c zDBtlMwe=kt268@NApj`5kgr01T2U@yqkr2hTU+HmO6B5vIW(nZ~7@q?@xxDMdS@oz(SFGCiAMGks(gV@Z+ zD+98FfF(9vB)3)hDv<$V3Y-1nRx;hR0z9-}8&Jp#%egb#z$V};Gd8G1|F)Yqw#vK` zl>>R9fzmc9t*)*#s(3M|=Tug)SF3_}NwstF=k?RP6uPn4Uo6`0RIwloo>X1~Z&iFu;2DSZ;y@QH+IUPl9 zzh7$NO2~uAeBL`Ho_)Al|iOB^W)--n1HSF@Lk5us5p~o>QHg!tR= z<5dg*B_gjjLiV1vwKA4yqH>XzgLl$us&!$J%XQ8gR1g>&Bz}IK+Sym*h<}Utz#WSj zhR6AUAmalvF7big*a!632fS)4_JM1@2z!Y%DhfZVCbII>qIL+^zPJV|u&F>V=@)KC30(Ia$vX^k{0B;%J#v{+DUXtZg!>LLrs4S$)mTK3_5k-&M)v-44ts<`FU4EtjcMT@6j`?M)3C zI)mT|6ySxc_XN6Co7vJPr4$NE+Ga7Mo2q(~UT-|^^(LVR8x5PU%i$Qmt)sD{qp_jA zo!qYl-EThbImi8K?VTB=JMH*iN`*|?Wsh}q#A4a|jiURdPxyWbpRcLO=Sx7BxkW-r zrIe(_Y;Kic$C0#Jf{8>h(A-S!7e)8`bn*0)&CX{Hu!BE9eAWZLU!Gj=4EF~6TK)b+ z!tZbGRmo%>7Hhi{i z2+@2})EtOrO;H$8_w*bcOFf#7|BzgvnI1Dcbx&ISHo~kxdEoJR<$=dlQfZqB`7Mq< z!@^t*y z8F*0yZ$3F`4)$ixNeEu)obXCvae2Dg+{A_d2YK$1Y@V9|*@ouT zX}C{eg*$tcun|$xs8%4l~StBJh8s};&Gp+xf%X_ zj+zi$QuKZ{WU?==7U#g#x=Gj^>+U{q^Ud!=@&4Uo@0}aJs)>MffJflrc@X`Gl9HzK zvrI}#DSL8RrgHWyb4hLm$)e0ZH!p({VLZ^?jnAc3?bb#Pohj4zd2spEA3O)Opa#?OonGxqr z2M*kXaH5qZeQo@lrv7xC;PfJ#?=2pmRdbjW9{v z^!e!b2GTTfvwsv64F7=I{kzlEt4S~*l$De3cKmN0E9&k>cE>B#P;Yu=Z_}Pe^lO*q z7ONSR%YsBpR{C57awsiEMz{vt0uM8mX3nJnGn`8U58wFJ>urA4U4O%kH{NjlO+zE2JBEjMjE=x{iIpo8@inVkb@lZ+wcAZ(Jux3y zgBwP7tY5!lbORh|UcS7!X=o^^sjt`6xLicXdl#nTKQ*5vx(HbW$0&;@YNUj<%)|C&?Qzizsb{CCsf#%()BMs{r52zSN0x?GkqTlX(-kD&l-h_%DzZNux@+mK(_{C=Cw>qW9U!2?KE zX#uj%I3p{otqsds(=s^F+A=uUYIeEIW~YG={mr!1N*gQ|B&!kp2>hA>XO{(j zJ=)j5b!&g$XrI^ZLI1hEaCs}@s&)11R*0ODVKDXQJb-R6VYrMNVjtZQ(&ScW*j7B2szJ=jh)v{_;3-XB;qt9nF zlh|$qFDwk#4!l#*(An9jF&Z^m8lTa%1NnVqPQQ;7;ZW!0%vq zPX7v@eDa<>r|#Z$N`JgH6_2M{<8VuKa4;Gk8j9BV{3?|Pb3Y2+D#Y*49Nl*2ncGIs zT+!ap*xrr`N4PiEj(j$iYS3u48uW+YdcQzf`}b#MwY6bcXGU9+u}Cr*RoB$0)wQ(* z*K;s7r>xjn8C++r=*ZyefIFLddq`f@8;yEB$*bE?s~2Vz&7ZH~seEk%A1_SDvm?nw zG@M98YHMn0(I2AY%M0UvcVky)QzOdLI)g!{)9aC}A@CG<8Rh%RA_*&SxkY5AQ&Oe< zo3{4$?%1-z@AZ4pdIVl=YlwDrMH|{;W`)XPQ7Q0OiUZ(H@M;0FHjno9?%cY<@2m58 zyk78TODx>c5stM)jdGRAq>>wnvd|eR*Q_MV+13O@gEFg1yF{Azecc=e%-RU;)E!Z@t9h=S`-FDVl z+eXh`(b+(@S~_8G`-YK@_K}eeTQF#|ld51F_#SMWQ&!_y8Ck?vv8)c*Kee*nhIDM0 zQ&z)NzaPTY3i^{Wdpzb$SF;T~v@lugS_W3NCI<#uOiriC>~IiScP&iEX)5bc@btoB zdo;eRw>iFSSu<@m(*~0%^SuNtozM3YuvD#7_BmbsN=0q0LfP+f_9>O>6+JOrp~ZUU zdaT0?lCX3>-!{y6zi4-N6y0x*$2!blD=ePRcL=aptswVPC~Inz3UWV%dPR2(FXplC zIleS$+nheym_J-L}MfQCQewHg9k{G$d>7ZQ=9d#deK$htua8p<`c<`XYPnjs*M$ zqXl}0jdW5Npc1BFUv;1=q|q)T@_F;*XT6^AbGp-!nBb>=ht1L@4#_&LO~b;Fu-Rl< z@5yaGB;L1bTxZ_O*yFc81eI$lvf?tdIj7wf9kBd7q8l+);eRClHME)hBs(6wlYl*-LlU0iG1-C`ICezSJ{wo6}>4KJo6@wrVC3Ru45R$2j;k>o{F1XD{2DK z2Ua1mbr`k)2*5`Lh+Sz5V6mI)>h|5l)^yOx)9q{P7fY7p0pg3jciRjo!Dz%QwR01gpP{pMGdrLnKBUk{xT%iw~e4>&j;pRJgJ0qDV@ z^0fBB*3T*lVGyplK)As3rH6)T+19e5FLy$A&dr|6aGo^XJi@AdV4@B7f-eEHZj zcO*6;B>!{lGzP2ahk0}1?oTg;?H9kfdjB*--tH$u-VOrQ z#s6+gKZ^e#;I|&z&DdV_==hK~?zBVR_Ky#FD=if*_XljPVpOX7dq-Q-N6qJ~Q3NPQ z3IUE8j7_3?Hxl}_WBVAxNa#G~pgpc?w|h)oYTYWkE;k2l!>LtDkGz%4K@(6kFUobO z6z(c}Rryj7c(-h+QoWkYLF*wFI98Yi_Ud-K@nR9WvfdXV*&113%Wd^%Hla21h^xG1;BF<%?LgZM%#{HGSY!grz-UXZuKpGx?0&Bd2~GvX^VmXHNX z=9ofu|IYzu?3O?N5g495Z+r?_Q!>4a^>%ymm6r~{qy060r%l? z(MwM~BYnoN&N=6Q|F$goTJQK2vfGZG%h-rS7d(aR7qd?x+wUL5Q^+jVlnPHFJG3nE zdOw~*cGIWi2Eqip2Zy6tchfB>$G1 zLUs$1t0Qs?okAwVQ^vvHQmHEM2*|Z-WL`kQ^W*fyxCvi4O`|r<{_TRV}rF|T3 zqPfD2c>xKx+m4;iSX=b3!e)TImi}ee&G|FHngpU|o2m0_r-D_Rx22zVUB5x@76mtH z!itpDmQv|#8#j`5`z6H7nDwD@ z$ItURrExVc&K+uQSY6%3wy2bSUICt5zw6juw5~lq=SZx-OpL?|#;)qeBeBTj`j7EQ ztgk-`*%kV>8nKoe=Xq3WFSl8}!9hl1ai)LPc3iEt=F`SL{T4CeX~#}sB!OriBe4RL zMq+h3gI6}`@c{epqeA|Yy1MKDdr`uJ2iP~rs_{rHn?h+NBeC!aPIx5N&$7kEbR)6u zue+r6UjX8fSQW7K;%#IkR%0uvGM>S6>HwTF5=#&MGxlQ`OpC$ab-gWMZ%ZOMHx1b9 zKfNY_=MCI}%jCQ zv35oxn;II@H`Vz(e!s_8S1%QdC`u%jBAu%N0Phu2yC#&YECISpNpGwRhDS77OPRWx zPVTj@4>0K5CV_L+cLH-^f;XVmRvpGxvJ;<$AqYv7mSRcs14Ng*=*}=2vq1S0;+2=D8_NmDjr3U zc6E1m!3Wd36Dyi;9vddzumJpPZiW=73B(L-3e@epo~=er;A!?XftfqepXNHz?1Pij zFm&>sJ-8jc?3}dryr#BB(hRD>y9Jo5-{#AJ37mFArMiu7KGnWD0Ch8Uq(9Adq_cxT zZRy2lrXA-uH8c`t*o82oTw(QRe5Y<7@g2kr@ttgEN;{WN>P+uF{$cKE!0bMGH)>C> zJb&!HpEkF|i3XyAG(c_Y<>#gaU&+w<*@xt{g@nPia4!nUPrj3AX(qq)$AaASk1&wF zrnxzO4StIj{502e&wMLH0P4IiJR=?7+0=xe-o5wuN0X=A3K6|4`(*Mr5NGG6ixF+@ z;5vpIzK`?dRN6AD!1&?=HNndh=H_qL_dLAH(EZhLXr0o%(epHrht6(dE-e;!Lchw! zZsIf;tPy5Ig-I%l)j*JdoHBFg=X$5P$1Gtq-z*r7E_hk9sri=ro?i?YdJvkmlhBAd zVMJxAY-C6E<`6ShK~q#%1wk`HV{9*IoDxR!bAo27^BxDq5WF;QBE$^pfAF8MYm?{q zIUMb^il<$BKxC{Sd?v2wihQV~7eHXVeZJDGVqbyd($o&QB%-ZG&A>12a+? zQ0u*{uxO1p3$(GINkkaLy@i3$2QQ0b!*ye}{)<8UA&;$AIn6?BX=y)VYeQWIgg#Nw zpdk$6jzU3P+C0w0?PFo&I#1<5bigLLxiZEM=}bXpR5TjO_zm4cZg8-$8<^@YX`-8N z33Wd_q`&KI-_cYYfDL?gWt3x(% z`(aB}4T@=6rgZQks#QKl9NLy)%s_DBQ*Z>}qo-4U=>lNKXg*{!_+)6Nd2O3@>C*FWCTAh z+?O4m{W0r>cbId&?1yoF4f189T;<|LYS#FXXE^$aXB;_EUp@lm&!&$4ZAZQ@<8MVR z;Hd&gzLs9^G1YH#c+Nm1-)2FG*JnxY<4G$bES*GV=0@b5HbkcQKvvq~WwBBLc zbEQb@Rjj{AY!(U~GKLL?_%+OUrG--1c~RYZCu{=1g>w>B^ui1$+)v94L(@Cb(=*b0 z^rMr?MNFo+ve&#Kd(!<$FZ}nvP=Dx1x*33-+Zf}g+!GD%T!02wU=4;RG>GJDFzmn@ zIQxqhaz;PVAT6Chp4H_LQUIUP|Ik)O-WmPdkp>#@HKf6zd1+uhh1g)jga!_NE!IGa z5>`yVf!M&kf@m-@&!H_dX)pr1(~rSR(#JqW`mTNXTAWGj@S_FT;c~3Sx(O|!d?mA~ z(o88(4%4l*6FcB@ttr5r*F=`+6!hS%kzTAC`2D(k=p*Z2NEbiQPmlgNTxfK7DUhmHp!gu0AcuTerj_}p& zDA%m0@m57^M}oKz#tBbd^m2g{M?`K}fBZ6E_89z^p=Iokd%&JujPmh`BN*ck3&J?h zVtvvv{j*Fk*fRkSqeTV!*h_DmoCDYj@bhC`sMI}UPK@`>x71amQn#Q{0tY99WH8g^ zk8R7th`%%FMz!tS81J8NZL3DL?E*3C?;FU&xEf*XM8#~uwl2JwRik2dVHn3=|J%+y zjJpxW9#p>0&EwDJTfVAMiMc?GAN_M>9>&2F6!z@#j+2=|acgE~LS|2Z%uLt_%8woZ zW&O8-TZfa$;q~itQz-77a_uHihOS-O|2=T$hGcRB`8qALS@q*7*KP(&(Y2-hw}T&V zOeQyO+LW6b@#`tqZUaluwT%9Iz^~im@%E06+_ux*Q?A_tO3}3?{XYPAuTCacuUV7Z z9eQ%gwc7y$T?_kv0-ns1i>FLHJmuO^P>il!(tkI2I8QEfTHUsS5_D~G{|~{B2b0Oc zp&=5Ozb(k2hH+pz+&D15Ysm$s7xwUE%xI;al3REYd5;r0l%nN*4^NPAt0m85D|piK2osTD;znd`goHM-S@IP4u#ggKRbH*W zos?KBCrYedo(z{*V#>$~soFCoRvXzpx(|F*NK3X-)lP~~@B8q9Y{ z-b}+r0EpLF!5iSc!lWlnx{P$=<_jn!ec3rV>1#Q{vM94gB-XJ*RD&Ki06@nH?|%Xx z6ec~dw7pm|xwJ)|jj-d=mK{>G88I_itNs$aUr6!4QkgQFZT)KFI)`=hRhajc~ zf^=ZWsx&8}=*aNiL6~{FP-a?;g}PmR&E2O)z5t&m-&wd1R}} zkhSV4vFh^ka@be!s0n6TjM%E?7LrgOD7?r+#mST+uR5>D8^{)UI69v$I7MxDxQ~lY zAMDRhQ5_^Y+lkn}6dLr?=IK?rJk5xx(hs7U=?Yp-0X?tt(_z{6~VLMujUZ@P0Ox`FTBO+yC~ti z{xOYz$a~VA;XTczLGZjbLPeyFCTEW<u7=9`Rf8cL(RhtQXyl#csu7OMEaW z)N>+L7Ny!>9afJ1yS`&~#Z`FfZM%HZw- z-adh_*rwI(a{AmG>89^C`5Vu6xm!4On|+(^jP1|8eJAg>B}OK_ea8f~h03>UuzU}e z-{@~R%jIh21~>UO68ZS;yLNHCw8PRc`RzL_3gW>k*xJUi0w}l+jY8=(S5ei zP2WNHIRo8i(%W}QQ+?jscTB*WAAZD7{5HhTS#DSB1V6zYHY<7i&K6%Mnt1yTqW=%W ztKo}9RFMy#&`+KbpK?e)zKLcA#mEoCb%tJ=$K%))ObJUwv#B4GGu`J)0c*M#?LWs6FdU*4pJ(>!2Y6*8;DAuNMe+n%QO(a5+4#Om`D6qBbHX`5@T!HYw% z2|CuA)%9Yps7~b=Fj!UHM!Hv>afkQeRq&<7p%=RYMcg;#s2|+2WWpVU0%^kN!QQYO zc|%{$8~zI2t4$eisIpMTPUH>WYRBHN%}pm{UMi~fZbaTYXm<>oGH~C3*DRLza&6<$ zma>N@d#`|x(ufb?RS@r$=XvjNCfX`_Hp+y(_j_G9+IDzMt=M~Y{!PexS38{>Eg8HT zsDlp`sfy|lUip;alE*#Hl|Nd+!^{84t4ssGxNJ#rc`<6?B@t~{9TSU{kY^OhoVAU5 zD7cT;s0*T+hH5lK+DA)R%4*7_s8<64_@<^#P{A*+s45frmGwKE7UO8J{`@A`3fr#i z3$CXfHSOl)1%AV3z`Y%P*pA2lFp*n?;0q{g`euCst-3@rixI#>!bY86?%`9-=CG+* zB9=k6uF4ouL^M_DosQbLu9CyniOPg{7%sm~7anL~@GU|Lq;)ZcL*!Gs)|zN!eEWJc z;@G?6R_I%2mRPDeN)|^i(j?S$>$P2w!2NJB;Qm4|2V6Frtk*n=9{5=kQN!MP-bRp1?q+x zW8$J#47U;(5!_c$q2->r)G7e0SLx+badU9_M#dDNl^P)eTBT$mUV{UP3{XjJozx|C z$<2K_Q`3*yan>Ea7CM*f1Ueo^#;mO2t0GEs)9FnaANbGb5@FN3ECjl!+=*RwEp}O( zZ5`_Gp=bLo(6`nkF;$~{%+?Fl&9!vv)$JL$hZoOfXNNmoLin$)0lBPC&=vfk0Xp0X_F|zZs^8vd8o>{{)E?wj)1<~h}H=!Stn4{&|(V@Y+OS5 zq!cJ^QIjf%N}wvIUZm*rG`M=@auwj4`HoCgCe2hiW{U2bsB+xKq}(gPRgNWB3<@uRNU@|2t$%S;4%MUT&5PD+wEkheoVjvnDW`O4WeLwD*0-sTtB68s_u7ey z2&o2)$EoJdsK!m*omTvVXl8-eo^Z`X)M6uJ$=Q-hkrtQG!8Mx!g-bl56X5eDaa1!Q zrB?bPZd`<5rChjX>d}faHIq)HjZf4}mRejh1yIeT&(%y=BmeXom8I@ao1Y@?_dfh; z!By4V?#Dvzr{^H|3k_~$9Or(t2fJTCa=&Fc_d{jX8qzyb?JitaNn#rBMsu#L z!tVFUwC)GesmI0+gA$^&YjJYy(D!RwWU}4<`Tk>@iAl>|OSG6cghx2s% z3-paxDN8k1#o}rOrf$8Z{Vtr8!e@r`&2p!>PGwz5oAm2k&W+}bZinX3?GV(LkG+04 zquXPUMhnCu=*C1#7A{**9l#IiVyjXa-GYjs25_tSQMyjV9Y?Dr=(Wh0UER2NhB~*P2a+jb7hQXGXWwRNc7wx~1SFLIaPZ zWU_0j_3c_q>Kjd{2nwDStPP`*!=s>kbte6g%{rhb%7NMm<-l}?1GV6-^0ev^tXvw1 zpuCU{doJY~kaDbAK{=nvlQV@;IJdJwN zMTt}vE-p!iMOjE69*tOgxDuXOKKB0egoyxkK#ISj59he}LntgyNAJnd2Iry; z!t(NT(LY+rn*Ka0DPNk-lcta}cm2iTaxHRHRSHp|(&`Lbl47wGj<4)Volr<6OxIlv*<=Vo-L%b>_aP* zYMOUc`}Xwp?KuTn64#IY{{Cby(eQ7iYFR`LQQ;!gpz_ignodKb2Wz+tX}C-#&uNGf zb!NkjYY^G`^;TsUZS2#bSV0+qPU7lC>)m9rYS+148%-Gv56z~bFLC+U^BE1RiXMeG zqPC!54QDOQxWtBHmOzU)ydvfV?rHO@GodtT_Nl`nd5;GfQ6^L5nuAS_T%+wAqOGca zi*+@PmMfGFES(B3)vOO}b65;p{Jx#GjEbq_ROIHXXh_^V76J81{9qKf=mXRzyj-Lz z3eB4F=3z*VHQOp=ZD~zP#ME)NL}h3QbwS>kd!h_|5!#1LlsVfiaP=bdGObn7t~Ye6 zkvaV*dGyVwVTh_d>&;fpYKLQ(Gz@(}HHSIV{L7Ou(m2RbPpqRcC{uQFIwJtp%?1J1mA>&!UwHtNvIX3=f%dPXf7 zGOnI2XmRE}AAn>pVFS*^+ehCNm4>$1SH_i$a}DI| zN}@J0eFIYR3OvpG%hpLA&UKQrD~bBa^ra2UkR^w{d>!TCTt_+G`}h+|;=VF{TSGE- zURw3#Yb_7wTFW`KL=9&8ZlvX2JT(1F+hZQi^_a7JF6uPXUqj(}@z`NPQdMCjp_Vi2 z3fwPW*LgVCbOIrfG_<3rexLl-lLh_OlQ5jk>YtL|`mmtiLal51Ck=Io&?vD3 zEX)q5ht1jn54Eo;x|@-LKPwWGFLI`oO5@AECi9c&T$ns9^UhMcT0h`(+LzO|QzHJo zx63I%wftPe^7LyZv`U`Tmmxpol&R_{<7l00;|(gQliGE_&;@@MJ+rRXCrO~J8{R^P zTAtX2a%=q#yU5I2%3fMpSz2YLoXb=V_5&MW65(}%U5pU?ut4W$k73s%)j_K zi0N|tDmYVs;w zmB2t$JNbf)YC)-?DpX}rX&R*dz}^T^&A9Ap^tY~6&5<#&YErJMPUN=?*TI5LF2Sk| zFOt>1qVB?0(;(H{Gg?ir68RKdEl)&O>(=`{<5r^;mg+FyQLArJ_`{d9V%5s6gI`B~ zqeYpgtYnMJSjsBYVFnyKn=;OJCxZRSBEbG?ZKua;@6;Mbf{t^~#;}{#V%R01L_hY2 z-3a#5k|i3sz%3W(tN9w9VMD;N=R6F%A9jmsdG$PlTvaFbyEZrx?4@Pe*0a&yH4XAg z5tGF)D;HME-F!dYZH2iPYMz+ZB2VmWY1x^3ndjwcuX%Z>xq0Zzto~ew!(i2}UZhyN zPTlG8**Y~yHRn0!5Y?uMHKoWS=j*EZ1|Etv=gH@1RBNF0yb#ZZ49Xa!dX;u5fmX?++M72v6OSM{@M&?otr;%!$Mv!WO zoN8gI0jXwDsT+`Lr-U=A^df1NuB``@LYpYHPadutrXeH{1$YR`%J+h*#w&67Nw<;iE2`kwArR8F-!ddN< z_mHRSmVjZnAO162qa6yo6mG&P#aZqh#OjidI5rs*m1a6NetM>FLor`p?E}kI zjWxV?L@|?F9TX~hTz*TNOj@%9{mhGhB!EewmdU2dnKjkQAmy~}^h1z@=1#xd&I@pD zGE}9xBoTFOqLzFI93_mDt9@rZX_sIkyBTmn%}7_XE&bj89!%)C9PyDI8VXgvDAC_ zH02*Nk{|@M!!vXHpVJZGF2G(NV|&S20zI2*HrMxUD8U?zQ(*F_>xA-Nmyei>G5#Yy z42pDYHdVpY@>L<3({XZ;DBK-TIjaIZhuqYmbWsf&O{*GzZW$s(xaNB>QAYj#2|`@( z`SjDN^mqOaKzB#}X)a5^spQSb1^a@aPjkZLcTzJGwTcDsL`bkiij`l zDMLT-;Lm{oc2uJdT2fvi=gK`2mwA%|t7~j`NsZh9+f3=2LwPN}7&i;D|U%yYLQwkE?EQPemRB_|+;@k(7zq zltbv!t<_^?4GFtQ!w#_YDEUw>gaR{p&t=2TSE8@6L?6dWn~k1oz!XDl}X@Teg#S3a=HyA@Mx_%nMvS-goz8L z$q4ge;sSV4`tPaqtDm;#b3qR1Dth2Vg+Bm$(qpOg(Z?I}h2zu7i@}X>-w6jBg@UcB zhD9}*0(~Pmw|ZeV*dnwOb!EuYvccxYpF;s$#X-R)Dk~FJqP5`%dcZ3jm0QCLNzO--Gd{(u*X&n|kxER6e=**n|?W z4szj<*|&;v98b4Zgnt!Rd{#tfZM) zkp#^TfU@+*FnZ(@B()T5UNjn5tPBm}azulFdD9FugsgGl1P#Vi4OhrQ%)zv<=YpPqk4$bXqu7b^zR#c#7 zC#-O~&UO>GSZ|Y91U?=u(KM?ZvKFnjb=)mdQ~8+ojIf#cNP)HKpTJwv9|C@Qbx$56 zeZ)idEMlOjswO;SMdK6?ky$Y#^_F}Op_3}EjK!0bmy6hnI+@*hvITpHZO|+-R(rTQ zQB6#4lQ!1YHc(kcJ|T?oFeB5jFzK+dz+@)C6+^w4Bk$pkheKl6ferW1}8`254SJ3-mk}MP4@}3j`GZc?aB}%0 zi1Np2Hj+P9_>P58;3cEC}RyRqr-tp84=Z~jI{&2kVR{FHYJU*I9{#cIqSls+E zk7ecc1uQGym^E68vj?q_lyY3O74TOR<7ygpFWA^ zCx9}YhPFdTkoaL{KSnQx?Yt9RM+C zT4oUFa5xG{IEEC8I$@UYLk00YD<5~)BR_YD zr{uKDv!Z#VHzMH%Fbr=Q-?;$`E&KuXd2QXOiykZRG&#OS)ZcP#UG_k$$6(9YeJ6oL z6Ra3NO%5x+DXYADUdkV@`DeTlq|T z&)5$iKVBFOZiL@D@sRna`D$wuDtY(qX+)g{~Gx9 z=45j7mMwYT4*NcLaZ>Z)-E2zdPIKz5JO+=#X zan=uantmJkFivp(?8I?$tyGnP z$CFLv6Zt3R6ZxkL`DbOGe{N(|FU5TF%7rxFt?H3uNZP2eO2!P7*9a6|p-Z#YNj_{L zarA8zM+do ze5r%)QuSELhm8d1LyHtgJg$s61?RZkmB+=A0B&Yx?9N4YuXd}trNqP$nn&!;mwQnh z4Q1?(>n#YnpfvYz=5$XY%=kre?uUYsmsu)46E*3Q3PFSp3}&9t#n0|mJirfXT?%Kl zsKFGpHD@2n)RJd+d9a=5ixrnW*ms|aN?XU?N+d3u45qL&PZG*xpPii!A8Gf;5 zgq-hjC$hwm>~}Bo-dDgsY07PRGNml!dV+e|-5*_2Su?(=z^&qYYwdDd6{?PXD_1bk zPw)7M}&Ma`#+0AYXxeES#lPWUnU6A&fZ8# zr7E{q!>jhxTIKdCaih`Gzq}az1k$@>xu&r;K&!Z>T2Yj{e8Q^A)z`8MrF zT^8rPi{z#(gj32w^kAHQktKOJtE#=VHo2`@gmA7{&dB0a)l)2C#!V|IJKv)3S7V&I zl)5_Wre2}dw2RKV>8)8e{hY(;by#zJIISe%q|1hrny>JQtmacQ;lu&IBYaMGtWRFN zXz~Ks-HFIXCt8Va=^1Pb4 zg(s^(X}4U;mbyePdf1H1W4hHL(X#`Uv_#WLxy)zQlMk1Xwf-lI+k;G5>rw3#B5VER z9%RGh9%PwoKI|YkFI(K6uC8wb*YuTg+DXV6RaSyVb3}MwZ znMn_#5t1HcOQr{DC-2$60I!3;{35((|JVZFv&V_`BzOz_@B}xOZBnMP5}$xD+YamC zDWwzJtGxmZ`PxKPrKqD^)*YFzO*(z#YZIG{ZdJIP*GznEVgRQt0?hgEfA`OC|JwkT z!|%-c4O}75;sWV{9>$H&`(a!I$yy&4$@AbYFmd5G4!Nb(>dL8W>%_N6fx%PqzeO70 zDJqt-N=hq=%cUHt2Q9A~Eo3E4IVl4tz&294CaKGMPKbQiN7BOgQCc_wH<+{>Oic@! zV zcy|@Yu)B)nxi99j?z)_>BJQf-p)SQ`-r~%BFXxt-xB<3>(&O*tE{PI%T~6q{bCKxe zRw-v$T}ic)Pv_?R)zz&YP-jD zVHcyUNLr+v^_162091SxIM=wj&f^)i1TT$woA=tRO;x__-pzMJE@&vtDtpF_8 ziLMZnmlI}qaVv}Fe0o#B?cQb%ULNya@wm>n-LokNr850*a8Tjphxie-H7N+vSHuwx z*IFQqle+}aUAP6^Jc14a|p7Px27_PvL|bAQ0}gCazKMZxqNH`RHt!ifI(UaPHXGX0$Nzrf=v zAEG~^v$Z1ngSEA-n11&#kP`ZVYz9D2{}jCYF7by~5ul}o0y@XICF2j5#(c>AY{>m~ zc(-KT?@ho<9|3pQ)`_B`27{|pR4<5WbzM3}9Qrl`Iza$2X8`o(i?HbVS+98dSFi{{ zKK5~u6TAsuE@EKFRcv=Mu{@Q|DgSXmbe-uWM;Z z|IEKi7f`Qo)Q{5snvMRz$#zBpHe5&^AbTDDKi;l9u<0WEXTE8h-gk~RZQ8U+)1*n8 zHcii5O`5a!&3%=Y8|08v@qo%Dx5%Y<-~qb0>LQ3MD4?JqhajSOAj*oYE{eE#kuSfQ z`F@ioG;Pz?-@0b~qw{_9=FQBT&u8Ae8NdvHRV5>5!cJ%TbQ-9-+_Ud51i~8BtqL)!K_^yL@pY=@gPG8v@r=t%5p{c!=Mgxj zs9{ol{iKG=|N0jp`0;nBihyyN2w*aMn2mX? z4(SpiO%~SW>E)Gz?CH9~xf_J(jZl{ea{+V!k~Fw-@=DXPtvs#l?nX+NoE~+_*|P_n z{pd@mO9JDE{tW_MHnhuBWEXl6SPX=Ej2sRELn0gmm2eO&p$EaWo(93SFTW(>f4GU2 zj_XnBxB~~kkJx}*#%)0Q-I>^c!O|3AQy%Qh6vbUo>Gc9^z+j7(P>qnm&eSDnML7=G znfFtj$@p(iO8@uLdhpiQKVYSa9+f7J9U~aHc@M+MFqJNevS-i_mL|S_c;(86o12N5 zj{6+<5SjGK)lBrcVch?;|qTJ?1FWXFi7UwqAJ0PjA9K7-E0ug}&_1sCTnBDo-S zGX5;bzt6Tz0%xbrCDTF5RIKDR|2~_%kcfwE`x;mt#I?ow_t}zJ;KxNPNfyY!N-|dY zX~`Kx#LA7%2f76sMkCIBti2ku5|^eh;F^>)@ZlVxFF3lqek> z4~#nwL25t*!H$b?->@EouW1i@rMVd#s04)b>(eyIb@&N#??ITaV5*|D!%(#1tqk?# zf_AKnj{E_HlfQtYsfAn}yG*RGxIivMdx=;PkmaF>x>J!0mEV#nf2U!v!%rA|k9>Sd zLE*IQ(hhyW@;9aVlMC8*B0cobCZXg_a4A^@VX#J&sf(v!uxcm>F=IW7ed}?m@;a$_ z6!*}r{`64kLxv*roSf`(?;b+Xe?ROY^a5TE>LINty;4k(o>Z!be)HW!Z&d=|{NX6p zIoY?)?^pgx#{3PJ2=`s$tIDrP#z#GsKr$Hn5%*_Y0e|?n&@b)}+9SX}XtdY$HfB*n zgR{PV)-37*`S+;%mHz<0`?rKI?hhV=>d<(s>wV8Ib?9r+AFaUbNC^JxA0}JeA54by z$>~iW>L&B875MJrANto_e&RCJUDtZ)F6z$l!xdQhxZaef?i_y(m!{EE_oAtLxz|ym ziQYt0_j2#S{RByi-ha|K6Vmnq^+ZMS1NtKKtn6%KtZI_F{b}6;h&29;IrZPuH9P~i zT$)?O)p86O;<^k-8jB|anHA2fXb2V}eB8ep{d{xt^E(KZ^?>u_T3aInFy6X77Y?5t zj6en>P%TsoV~D+EFj2kqn=0}&*83XN+wZ-WnOWl~y&u#UmfxMNfO=0v@$6eV&RnoXbX{;eyDHN#Ua^pgS zf%@Me!KvxPWK26DtNWj=i_t*XQ$O&{e9sB=NE9(g4ppKSVEnj@i;aBw8Tj;n>_!?q>9EtR%=Ux zBO_BL63b=tKn-~-B-jxed_t!iX)w$xk>?f`=E_TocpOe*B8S6+-SF}4Wy};f6j-Qg zA-e8}{V`EYCW9MufV2`#*8kBe9t~Y(4_3=DZz9ttThJTHCvSH!g$ySiyXbNz_&=mK zQ|R0U{!MZSJ;?#&g3AuaXK1Yd9gTGWptZTMd<+`DVtk9D5HStf(!}03K(zDeGiQMG z<3)KD2`NL1mI8yFoD*@S(*AjK7|RwC2A$Qe+e@%4CNvj%Rc#o{9uf*=J&&aZLz!XN!W8Hf7Q+7oc9r~N z&B8kJ>zakm?;$mgIp7k_oV|d2;NZRY9=_O!MOQ%408aD=nd6{nk&j8{Et;Cs#D4Z5 ztuDvLORUUGmkd^SoIejOQk_@HA6y>NL zB>#QPdEnqd5chTkUE?roT~$RzRlOxWLnO{f7f;dYMj4Id8yA~w7n^YX97BQ9XjB#$ zw5dFfP{`q>(tGuP?fUUrS}9sTAhGb+t1lW4GO*vGiA6UvFvR+%^XvQY`f(OIjR@$w zk*VMuj1jWX{EKiNAxfIb8DP~MpsIWf&*`|HBy!BJkgRDIbkyQQEb$Va14tt7UM4g- zl=@CHSliS@PMrf9T85D~CQigF*nH+_#`lawlxmC1Bk^budqsqDfI6KGE|KrlZLMvz zhBO2)qZ;*^Yzv!bQ)bmZHU~71n?!!0THltO&(pMvb%KfzZ}|8hTIha8%} zJJ_)+T?=7{S(=AnM_ERO3wC5t%lDcdj0JwRop3Jxz>c0>zZWi@#f&2m-h0hzN-b3+ zAXxGz+jCl;ROLNAJkLBsCe3Az03kDs!(%PcBh1DTapovRYD!Z9M+RH@8eH518E0U% z&_9Y@%M2XZEZ3NZW1bnfVg33I=r^Qw(!{p5iIZB>D#o@|INI7PWCnvws?$QfX55|! zm-GYZA?8A1iN~#XcSM&z1uV_o#_*uP*p^b`>Sk5bixrj6SLeO>-~7UH`CH#4qQWGV zLS9C+B}OewFNm?Gk5w`WJe-K0hEu+Iz4PX?7UYQL-oBe@2XSzKrejAW#7NqgKD0`p z1Z0pGCfw9Ns1FVa@Zh6UoUkmD=it3S};-hIEb^UiI|WKQ&LlEg~kCUSEG2T6l=fVLj|T3H#zG>_ZV_n+K*p>HM7-zVt#Rd4Y=eg6sZqv_(JsfYoM6 zq1w3`MHN)L1gf2c)$W#3?}PNiAGOiD0hHRGK)rThwRiY{^e4}OEV2l@Y$#A67ke=-u(tic=$J!C3XYmHRAbnxu2*)q7c|!#Syc`=>$I(k<25zy6M)Xsl z%swFc)2UU;f-HpSRZ2IapE#GDnolA6%t&5lv>_@dB{?@%mkJSm)>k3HqO?I$i0Gv? zm@@wXe)4ZiVbQf~bax1Z^{_iCQxua+)pxH+#@&Ip6h_PNmV#E4)48Rv4u zJG%oUfE(ljo6-6L$%Vb}G@L>?jH`D*d$zyO{%IGqKidtoH~)c={SmEpn89#YQI=Az zR%R6y@Yw8x1U4HX`!C_-FMuP$1KEE`*vLqNm;+KOmZM~_2p|MM__qPF==yanvR+7L zQc9gto8=HFrfCcAUMEazfY$Te04YgRbZ&s`17iQICk9u@#Wt<=IWiryk`87OCPv;6 zzsR`_{7$lnYWRy-aMA4e7!88GcJ63KznE84D#{ z2w&VY!oOY9QAd7O)8YK$-FE@+U0U+*(`S<_-kdx4z=awtnF9EmAiy69CHoEV_pn<$ z0sivOKL^>LHMjx(tb!pzjliN%I8qS6|E$LLS#4-=T+!O`5;L^)E3hGXjNj>I^a${Y z2$1mp(WB?c&&X%ao&_0a>*;n_YOK{3;tR;DDqZ;gIViRii^cd}+&jL{Mfmi1qny$x`FrYTJ3NM z@87vlYr9ZO!F!!L$6&}&>oh4`c4{h{n}T;|e;B}0G8rxWamFb;V+0DLDal#ctCy;6f{m;rwYgC$* zm>D>B)Jr$~q=&R%D+saWL0TXxONvcl*}}60DT+uNyHY$Ilj4_xqJ;P1>i)|YIymtJ}a@`Ihwmu7%)|M|gA-~3># zUf%}!!H%MW{KCTgf}+wy9@?1XB|_cmz$B)S$@8FaXaosB_Y^Jwl#_4H1{~c&b69Wy zyH;J&VUt#EHrMT`6IHC%>&B%QO)EIcP7^m*_6M*3xr2X4W|UjN!1ZBe1Nh%EwkT4-6gQXtM{8CXIN zSDi$+NeC=ac5KSMg}1^pw?zqq;f@J zrU+H4M9ng?(i3PC#>I66UX`93r6!NPP z_aVfg?2IU5WVS$%6P*?S$xq5hA;Bqv=2Rw~=T`?F9#HSb*XEZjwxW@GXYX3&sJ-cB zN%1KmhHyo)D4V4ZN@2(6CQ`kNFL-&yXYan!Xtg%N@wp26h#1Dj{t}>7E&}v^Hw38U zr;uQKXz+p3(qTH?v;t|4N|hrmDB#A$bGh+xTs#J^K`poW)N&g=1~=VaM*Pay=1Gz^ zL3R;Lgvc0nD znP4ovJ)QUuv~thXXX9Id?c54Mvh4f=6lPrwWaZ?#(9^Z$AJ&Glj2MNlyFHKi5z2~T zuo3ks^bkRj2{A-o66kQ&0nXuaO3s3J-T@nDy^T)dUOWRylrbdqOfB)%S4Q$NC~-BE z_#eh)KY7pDn)!9)w>9&fH{N&yM7*J=YPdLVGP&`MdGp@CZ197Ro3Wz?myID>Udyqz-W8=~!=>9WjE7aNoFn}nrFBN z8nk|nJUxCnow3bwm1|E zLFYyPc@IG%-g6N0p2OvYj*NuX=NvAf4Q2Y$RQ7e5;j-~;P5J5iFqR4Pp7poem;%N% zx>qsp@zJvg^1>m;?PfNv2T^ZYscIJP-w$RTJ5~Y4klS8Cqz927NP0w&{6H(>4mw@i zP$tku>$CGUn*3~iNeY`I5OCNjcs4B>pwCj5EJiDmx$chHWXnObNn}iBry`#v5aqzx zl*;C)XrF~I~^g~M|wr6{Uk9XE;mA$MgfU&SdI zE7B#~vz2y1M)sgVP!BU)DfEn8exmSuV#iiN6wc>Y=gRGT!SJHup_3^Tu1~`#d{ln5 zP|vf=6*fNKCeN`Z=*4#pVM}9WWn6JR5}z7ripmiPl+mVWDTkfSW>Ta8qn~2BsTpZZ9CNFt+=o8*58C9KV53 z^F0M*AW_#b9ydCy)vs+r6`%2r(JGPXzt3*t4&r6k#A&1 znezyFT{Z2ump)#T@RLEiHB~tA?GSGG&fvok{%In8Rc(!vil>HEHr!P{o z=@8(N<4ytb(lZY7GWtQYbU@xv1uEuR! z9yhCuqi2_9NObI?JScN1^vYF?%?Q62`h@FUP{mRVP$%5YPAwEvA-oPUgei`ke0i-% zGCWU=5dG%&Azn|dOGbFz2ImI^^I0iL+0b;M!LZpGU>PwC_g`{P{dY&_>6EfDd6}BK zRGQ^_+1&RFV9#w}MwKgwtjg3_euzF&lqgVy8{+GgRJYye>+>K~XSH;8-wh(+m&#A; z02n&R-E*+7)@C#L)umbb~Db}Z^g|3da6HiaZbCyQf}3+dn0>wtCu=`V4DGX# zwK=lUO0jmPO0!fing4D+H1Z?ND3g?sT9czWLHe*%9zQe85NnfRBLh}nA3W+}WWXW< zZ&mIe1wfUf)5-*dZ)k4x2Jkn%31Xeko;U$f?m`IDgoBHgf)pFMIpUnwcFY>avW8J` za}k!+Yit92LLXoH@7oaCzh$5SCixuTo;^!mIb*b)Dn|j6P`6NjG5)!ld3EHKnt9G& z?!@>{y)<#+%csn?ljT&@1TZ$-UdU{Mi-o@!e*=9~X^4r!_)Xdpr2_>z(x{V67f+i* zgX0U9jma=3=hX`}d}CIYIXNvfG~|>SgTF-tiNSd982>8}{q}(a2;;wU&y6>NUb8bv@}s;`%Hjv9D93iZZ;umo zU5}0vWxrS6I@V=5f?frV=*?981NxO1F=R2MAh`utXxrw)4Tf&~!FeO5_+1pgQg+I9FdunRH1~@ z20>}HjHmGo^kP^n9~=xM4grCIu{w%j1;mc6$j5<@T)B;(GOQR(;H1cddk2EffcnXx`ObfE&eO0}=1~;Eqs@4U~{M#J#K4s=WOCJe9hX8z0Z(#m93& zpwT$eXvF6wzXKN_`J@IS92H!jgAg@-;rU{wG&Q|Krjpu(InxT%leQ#F>SY!4^Trd8 zRaEHmhDlR%<20PYRE3SJ7cH_e(S32za1tlsgKuye2ln*Z7B((3sc~|B{p3b6B4=m@ z^~B1=iJ|Q9FkVCl_>|N!?;^K?X(VGaljVMC1w4j<`3!J{xb06gc+EH8XjdyoXqY)- zkyRqis}?CH6iP-vDHPdcBZ=FVd_rE4%1#I=j!NV3v!XQIiaY`*`tR+-yF5yl`qQV! zXY&YsV_QQ*TO;TgN_0LEGx8*eBmYBGT>A}<*Tc8xGR0oR@s#ryV$9OR4on;~z+7+z z0_TCYkI68rh^&f~c-%fVUk2Of$feqMurKdC;r5Vh?{*%<4Jx~QjqDiV(a9lP|&olxV?(mM6g&1 z!-|UXY7&xaEOzpTAVcPaM!t$G({K!NrD91bHexdzB!BkJh#4Ylrc_nsHAw!nmk`;t zLQYahX_T0otccbo)D}`kEa}VRaz2e%0%np=5xeo@a_!z`1dJ26S2FV%v+*#2zJx7g z<~ujH5YaQQK1mu{1~QmlV`C7>LeF74*7?{K!YpE9(*tdhISQ9<0$!%$F!~a}|<&HKN0a7QB%&6a&^b<^-M~HA zS6t|YK%Y7egwD0@{2xr96K&+Sh?9ETabp++63AY=A(un4=m;6Ni<~%`Qty8MeUS7X zeIV^LNF~3jdf?vEdfNv^Oq)Rq`67t<-~+eFi~iAP0@N<5BR{WQ~>wb(FV=)DwJx(eeExME<)^iFJ#XrstKF(zn&)pFPJ|lH=Z^b&zN8h zAC$vh#q9ZY$exEYz8M&MejTKI&_Y$S3btwGv13)BjokW=JJ|DuV>El#*Xxr?BQ)~d zl9F7xrbrOS=JVNc0z5q*gwvDgn-3I=y81w(JeQC;1o1q$It$tS%&1bXEr;@fM+Uq) zA3>*I3C+2S%#B!PDf3IVcmxHXoMz7?(TPl|M7Z&R3ejGmt+I zodZ<1s_P?0;6;BvT*cq>k3V0-{CP-KNCT4@)u<~`SUJ3k+nB#ZhA`#w*7dxsFQtN)NNgmA89Qh6jgBL2`Pz6=OoFaw7e=6wWvSRhZi5a zL4NlS@i6&_AAsNoNJ7wykAN{7uG*!H?Qk&Pd14S97YxjLW?a_rr}LE0x8|&TF=zw` z8eQ5FWsYvqYns?5!NlRQLMUSdJ}9`=--CkDZPn`Hp-G7~c{oH_Oob=|T_MWA!77_j z&$VP_SrQY=WeO8dFKTOy7e!07?6jdaSR=B^3x72p{tU>-Ux*U?PUZgFGnr|O7pNSk zZqN4qxMkDUjgLOQW%J}IQzpZIRt`4mhY!~q2bZhU($we&ZL=QI`UQ+f{h{?ggE&O% z1DR3HTK$r`%$6N>70=Zxnl|Zl!xD?y)w>=c!owvdK@30K6e;6FdSHqY$HmjMJ_Ec8 z-9T8MhN4`QUf#tGgz2S(#K4b@N2_!!PaILiHb^KpaG?*6VRmEm!}UbxW0=iXLFDJ) zCVmWaAzXKx89!0+)*i#2E^4m<1>~^_fS|d3RbJ`CCUNbH=IUK_630rNb~MVtdg&*# z3@>mFFS^r4Pr zt0=Bt(@?F`jW8O?chz}Hl}eeXF6Oe?T=av=)qqLFa=(L)X9pHs711=AiNh828=^k8 zobWTE;e2YtX(_#zvS%;RfbKt+5QGoMT{Gr-R1MqL05M*lc&4% z7c<;><)uNM-8GbEj8*-QqV8#tP>gX9nA+bc>LpAWy`rd>2n!iaFx*kpCh#<|q|esv zTNG6USOc@}pMQ6FTDJc=O-lC_c-UWQ;){`e8Q@F4D=;;BPsdaxmk|uu#0M~Uq z@}76z0hNGH{;TSqi*(5JjL}9u2RI*o=oaZ`?34(qU06q6s$J;(_x}ALX1|dR365?j zpL%V^jJ>B#_ERPo`8$NkpZ~GbLta^6LF^VSP5wkwlGw$QRuns3+A1nbRy9HLht5YP zqZF|Z(bn$)O#b|eof0vC^Uk3|XUNaVUGKdIlHa${?XZ`Xm)nRlW%iS1SL}2zW`BK& zonrR453;}GmC!x@ar!h!J7sajPCqO+o--NGn_wNMEH3tU2(!QM2FCslfu#2vscKdn zI|de^^O3FO<6X{2p0Hx}_o1=gkX#y}RpgbF)FV#R@crW%bgQopp}q z>av?QYPCZVE7-o7hzOUI3u2QYE67UXDw@XVOG!#Ug)1A?nAIo#JD)H;c@nh z3eVwD?PdeNc(8%qE@aRHC3$+npDr?xt65o|0m(qs-|8ifhqanfhzvaciy6iG(lord zWJCr8f-Fb|l4D{sIhYI_ps|n-GVmTT9Fu`tfP=`u?_Tk~OPCCFjrSFF=3aTk`}$(9 zQ|?e7v{$0bUO3R_0Sk~rMI4~JKwqVE2I2s-F$eh5Gtl=ErT{nmrvNVzOGtLt%&a=S zex%7n9#pGx^Ye36>S7+7&Ervt<N@#AU{E5463?`6n@S>3a_H8WwfYr>GGi4vLCxSr6`MwA&l;*#;{0$yd;)Gxh01 z3wag&+}Tw3cM&}j#6rVFf~KfX)-!vGuBAK$VXjBmBuTgRe9(3@{BBW^Orbp~RH zo6hYmM9`cs*Sm9zp6W|((LV%sMP635NHSW@>%1v#0$Wf(=N5@rY*C~!QjwID6NPh& z5>JH$rwSSc5MGNbaPmnERDWw1^;=AVktM9-Kjno{@+r4)ZgQ%$3II- zhHAA_)tT8URd%LY&5e!caN=XR?sT(zyJ$NK#6WGMTQ-7wE9~})%1U?2&t{(~Khc&& zR#;@??FEDrgK`G9Gr+*!=)QX(rsIUY`~ye1I~VH7E>({O5wPm;mM6fIw4q$tI=#gr zd}Zron8=NxC#y{-tG%;zF7!8B=fbHPDpjMJ`26!S@+o(=j-R23ZnAYQjGaI}_WGPT zZ=9+wKV9vet#ffe**aEUXSU7-XoleEf{wAGvLscbur$de%QE9^os-q>Y@Lq>lCATx z$)T?_5vM9l$E&=vb@~vC=qX$0g7Jc>>`R0GE8~Y%rW3W^**XI}$>(Rb4zwcfpp(`0 z27x9@uTW_;Duup8z~&?;bJzm+d-o4_8Qfz)6dc@V%8{oXU%s5SL=X0su z{1^%RXhSpD-rPhE1<%d_)}|(M->!CduFdED%C(_@AeC!l96O%8p1XWBKbKQHMx;x! zW#`xg8QIOvQ2k-(zzFo~J~zX`cZ#Rm6hod=DW4rfZH5Pr(csN+gQl5n5=C9#=h9MPyMSR(=F;Y{Lt z#%}sXu5S7m?BDe0`mK+x+pu|BTiZ1F+da}~9y+YtIMPxi5)~GTL`Cit$gYdvXb=ti zFREoTxZe){aiA2|W}J!htbds}G=`07)|M@AkTvhDbv##}-Ly%o8;Ub=wnGe?X%oby zMwp@$0zr1PDO$o|%c)EpDk0`_9}{9gXF|+Uqqt^=xpG&FWb@BBA?C7K0byWjAvZc9 zs60%<=S#v(u_lp6Ld-UQ5@OnLLQJWJ{KB0ObFPPkm`HOus4Xw=Oo;Ib*L)?!ly9+E zwrttrPKdeu7bL`}@)dHGO0LK+;77;scrnrZ%A%rSdOaQmGvFw&q7@Ip8?>5%tAoh} z%yx3_j1{=^!x$T2kxHLMHcX+5yatO*_gUn%yRBASL8S1mhuCcU~t*}V5&mvo=I~;h+>X`v-S>1tE~aq8obo1Kgo^5*EYvz6LMD+Y07aWC$W*ua0C zkA28wGDBFFkZ|V1%g}&*50jSJZph3gPT>p4c00)Kstly6QG3*kt0bFoMV?W19o?<^c|^U#{ItbjE@5$IpQNATYA7j{)T?A_!Ia%)$(4>Q!Ts*@|)Hcxz1BT z$edS|kW^D>C;tpGWQ?v(RI()nY(s2;NK}kBaPK3Qx{v-0XahH}yA52po^~}J@VCEm zr`QRxQw%cPrdzifb=VnvjB1?MF{*7XMA*y=Yv5m>!pEqV_hB>qDSV7-(sYg>pI?K} zIx|fuu*!3@YDJQf1rl_OYWW)>!9syK0it!0Nf4VHX^hC^^Q5uGe7qUn0(SRf>}#@R zBhW5EzUCoa#)7xeF2P#7OORR4504Gdha|BR(n55x8YyMV;{zD`7b8vJbLZJz*py~y z%6sRdD|-Klcf$|%mr4B7l~dH+g~&-~Fq7C>RMcEr+LoIk%gK>ty~}+|*OxCK(D_8A^mMII4EMgXZHuu}?VO+t&FJ zkmP*S``lERjocM+q{w!-)OBuZAKvFa-uu@1K9G2XMy~fkI9`JenN%%2{!S_0I)AUo zM!o@v{rlY_Py4xb9#DIK9eJ_#e&@g5ejCKUO{eP|Zyrj%_O}TWUOG~2f2YK?b-o{O zouBiYtn8<^&WBmi9V|sU-b3mh@M4*= zuuv&0E=Z1zOH7Q5O~!kpJNvuhi}W*8+Ae#eNl|RHH_GFS!}PIcdSdPx!1B8{tsMO5 zd@*!6u(=%{6#6;dJMWKeOYLa}Pe5ih zY7P(?tzYBqvcKbv_I=*`iro#r`Uzi~Hn@^LE>*0sa(R`xx#-$7QB~cqin&90S#gkQ z>v(0dtg^%$aV@$PqY-R?2Jh>VtyN~Zqk@_9k5CXR&?FtSk$*1aAM z1Z*5Pn7{$&TW8(t;e>YJj!9hXb4=nE%|t7er7NfdN>ofji(?WyE}BG`jPha8fXf$!>SK*`ryLxBFFejE z2UnbLg)Z>+h5K;eV{^BMpQfO|#{wMqxXlQhV_s~vE?&IY9r?I8;K+vw4*Ie(@@$?m zJ2y95nODe;kK=IS;@MC+J#=^sNc8cC<*X2El)5-sn!uchIGIrp zD}bC#%IC>ksV#c&DjYk0o#))ypYxok?~eaPeRnom4?c2!5iME(EV%DXsPA0qE&Zlv zy{5PHPS4JFrDv}67Mh;v!Rye@e%)!^Y3KAbbA~jp656@QZRZGmCXr!Cj6rr5#PUSY z&N|x8SN|eAUy0L#x187Gk|%?5Z09m+j-Kn5sd;9&yj$pax7eNG(koN*k>S#nsqOY= zYJJRbfdq}FYM_&;?d}s(^PS=1o2k9tN2bW;nHWK<~zfs8>065UqRIT%y998sOiBrI7R)sZF%P%325F^G}tI7GRu== zIdBr4m8Ay*&9!Z)mmOFZS3a&1Hb>kxp}g?6DED$7(lwbf>vs_GsWoCHP{GdhjM3 zkC6jkt|RplB14asYjwCFmW!5aZN^^PaZ)d%`7gBj=Mva?P?&vG2>?Wh8CsJ7t zR`ow~VY*7QOfQ@Fo-1=fPRJ@!V-th*5uyY^R=6RqE}J^i`6_K5a)CM!2H|>`T67todL@Gy)tM}fRbix{jKXwqSpEHGw!;^jRo$= zdp#$fqwt zNKZ?#LAF>UmW-exc#pgj5-dz{;B*#CN~{pF#jKyQiAo($rLlBI?v{I=>vKi!0I*N9|IbcO z-{_ZBokW!L`bzhHaD5GM2jR~3BM8T~k=rAVYi;lAy@PP)`Wu8hcTA6&-3hIYd>Mov zJ?a*DVL(B+bHhfHFTOlw%B#n9_G3ElAe{dv273#_oqOLH8q8HM9-XdF%B>fc@XKT} za}o-|eV}y*;m!>t2zSn|Dc9SG6B_&b2Jax;xxXd|cg}pY+<4q%JYj-$94qqLV{5yH*)pqt@ZJu=#0{M;b3cQ8jauQGuHMY`V)xoyM9TXq-AHl-7EUD8shg1 zQ&KcP9PMcGrBTKxQCyrP2IKb@@N$2Sn&ikv(k@k(vEX25pdr)DkBmiu26lodL>Ft2 z4rHM^M-)2Wf5Yuks~nwCpYQt{_2E=1U1{lFQJ?S4nJ6v2gcr+)SRJLML#)n^iOFDl zM17X~6ZKh6UTef@>1ub>=Uh)wpGd6@RN70*@#NdmpY;t+zFgPjn}5VL`LYO^O%TIn z>BG}_Nz!mbY^B^gd8{9uvBljPBZmQZv}e2D(VkUS>#9|&+|iz^1CI7MbUO4@+p+vy zWnP{#H@^se$K}SeIrxy_-OTC0f^Cme{3&NmtZn(d+PrIzoR?LWLV zefnKyvs=f;ZYAEmY12kpB1%V@*QMZtEuXbqW48bJ=Dc}xX^HD#!4X{wE@(N?@?U2A z&2=3ei)o3AVZp&&3eIfV-{NGplZ#iaT1gi~hmeb4U!g`21)w z<4fXxe48P<2mrRM>urV}EZ|*`R0UTt`Iv&-g7He-YEx0^tbA1?zj#`~l)oD~@TG?8 zc15Zx&cG`cUeS}=uJ=J)Nde%xIU*u&igDek)q;=1|)*R2eHyy2Fyxj_&&zE{=E^x7IcF0b5^6%xEJ_qd=;IYhqQWRcXhuRp zaS8zdHlV4`1~d`xI}1Pc9u(A(+K#SAYJYplO~`ljnUGJI%@!0S)AviHr8si(@ck0` zIDEU~laSz4VPiVeMo6mCIHG7{RJMSxj4MjSguD(s)Q?>nGzjygn!Dg2)Mw2-=Gvvn zM#q!ml0x)R;sk*r!Vur6q=uif(|ULttgH2!oweTPV}?7g55d;6P}XyC@qRzO)hieG zdU|VWA@%fDVWG#^;jzd2i&fD1e67dfu_%)ag(70OLHaNukDm## zN<|hnD2VBgLCL^2PlLKn&R*^1r2T4tN&D4v zHcZ;jTW#cHAoa7)+#;_Hh_qjApG0olH+%L!&)MuB*}O^njee7M_oWjwX}@~55|Z}f zRpT;D0?4UKlPp;Zs{oPq^Ar7z{9d`dm9OL!jTGsUtcq-_Kqb)gLBut-sp-tB)hM#hh&GFO`}Jf%)`rz#Ti9K8RBC4-i~|x%X$3O zBj*vlKGyO=O~tdG_jaJ1M~N*ZE+rD@Jmy51qBGeXc|6`G`Cshkr?}50^=*cIvCeyj zQ9C4L|L^L^)2uY(yE@RteeSzDNc?J9x;8ORz_Nxz3n?Njp~-QvGOouC$u@s>NVbs| zM&P?TwC){}t3B8GD|Z(KMBym2vDuODqP zk$VgCRcf^=zpx~M%T7pOa}%I)LdJiIc4i182|sY%EoX&&hu*;h8?z>q78Fd*)+{#` zTIVX28CndzBrgOks7ScKifopRFD+0{QD{~e3oY|6K#CBds8r>XF}k^vDlb#bh5U z#^Aq%`}hl^r@t@)0RT6NZ*bJ!qYbRc&h%|MbPv{QCTphdFfXzOSxZWv7?C$-TY+q7 zcJo}-C}nsov6X2j8aL?lBa`*XLo`85b3hOmJ=?-yoB=n8PthXfy8@PH9S>{9YNo$r zo^K7Zl$2~6SulQkK3l=%<#1s&BXh!Ih&45v4*k)uhq59TL8{u zFenyXI1>bdz_0$bV4Y?P>Wsy%&KOO1M!vf<8rJKyurrbdQJuk|I^%QL8Q=U>ow23+ z&fqdi!G7WmR8w3}mEg_h<~8|K3V=9EwxX?c{L+kgDVr^4>xL@oq!HorL9!9V>%^E> zYHL^N^s05$0RdDsvN|z3NycG(3l0$fLN<$|7lLj~XC0Q^APWy?LWyl_VTDXdR@TGg z^V^q7B#kmXkrEh`REjRoXfyj*P|3kY%lyplW|e zlF^i<8=BpO>Rk_Ix2!i9rsQZP?WL>$IBo?RSOFUZgG2tcV3eX>76wh!A{(~>RU^+< ztRAa`EfCkqOoTEph?j>>$JegVXj&zD;V?A|n+Wj15m*8Ljuzah{$zQxY~p4pH|QTn za>p&n6xT|vV-kO<-lD0S2KR)b)WDmcIhhif)A{qNvy{}dkqO&^LCZ(olTm&p|? z+jHBONW=}YGC~>{lvu!rRn)K6YRAcR>7xp<;#|f>XnMaY7@FOfh5FX31M*=7lEy3@ zk%UYwxWoRif@BatL=xZn)3-Z&bg$cdyH{`%u&`%G5A>?3hcCd*gU!w0!^$6>e;$J> zq=Ez@+CLTk)}vc|!na!lzk~8FD*S!`s&J|DB3bk}R6zt(M4W#ryxgPXe8RWmgeuf` zuYzSYR6zhjh$#P5c%etvy3Mz1g(}4OR^hYCf02Q(BfuY^pi7BA_QMjNRDMUwo`xkz zAnsCv+y_hiQ27y=a1__lwFIu^V&x?=;SJc(IOwkS`Zc7>hsx{VWG7@z(y^;mlM0!c zSy{{5Rc(vWWY>3fSFOcxNE6^0hLb6x&-$UK2UINl+6rXmqJ{=%ef^?EP9iGQ`R5sQ z2U#q1J#YA@%?Np|EHsP>wP{<2w2>-K`$T9MJiNhTE=A6N<+eZIVz-utv4-f;GIy? zvKDIr-P-H^8D$tW3f)C(kWpmvtcS{a`06sDceq!j_j>;Bp^e{A&aTf{N76Q!SzrwVK*{N5`)Cv(m!~zLo-P;b*K43 zdY-CUpD19*gPzP$wC8uLldeV+ z`c{4Y>NPWN5DCw2bzYxmpJ2yYT?2pjPpiRMHBzKiqjb!}NGpjd#sBu}G_Uh`D$9hq+sjm6od}7BIz9>5?|pm-otzzJ6`Ko`m8YZie!qpPms&#eV#6o74 zT(NAlvh@MDR7uLZT`f1eSIa2c9sAS@Et#u3$dcjqdfbK3N5AIBsyQUHLE64PZ(>2v zuD5bqAIM0nl$b}!sxv)T%@!5Qy=rcDubMq;1DDQKi%Cm8tqoi~U-r*PL$azNDZm42 zB{GsUD{E?WZ)G0XgmH&?$=jvDP8jrDQmM2wqq!8 z5spK@8bc2_@6m|nthiQIiU>%u){B6Yu$XupKJPsanUqG@lVG)=Qq$|}pC{VLW;hDB zlHvHPZ~Ym)-x3+n0`Wu9oI)0e^tM1ZRUv#pF1I(>mykp7XMDd52XVso&1AwT`!Hm< z4zP^4Lfl}m(Ox_>Q@U#`3aM=c;c8+K5gpnX7{V-GYh{TU$Ui zI6K$jn2T%OG=N&C?KGtsQmIk%Zb(0Hm-Ww6#Seb)NrM2BM{uJ!Q&)H->GQD{iPLkZPN4<#|I^$VZ1elgYI zmVwKpn-@L63=6Tk z-Ygmfj$pOox~ioIE~SD(nR#=NQj_IOq*U!jL!ycw8VKiHu?4GC+&`6y!P#S#`-e^# z=dIG#epzZ4)ql`ZQ7O^bQVTyhVK1z4^ggATpvZD2$ms zMPsTnwMwA*zazdw=C_N&Jj~Ch-&6=gxUq)^*4(eFIln2LtE697+kEl+?}_wlzmcbw z5Fsr3X|?58zjatYp6@~HsbXk=OGW7EkdD~%P&%@rLxQ7&DK)PSK+UT^{X`^Oyh?ub zV5gcLSj~A*%`g2@lc~UJj>)9d{BqRZYLS&vGbAoFG%l1cd#oZT+?=_L^y7$QQ7p;J?Ah9q<7Ms~Uv~!yW2*JP8e$Sk7l7#$4%#df6Mx$fV{yaq>R{DsTp zr(H(oVyNb&zE1EYhl5)O}QqB`<=kbMi z&e!AJ8ks_;clJEMR_^LHJ0EfEiU#O_ZFZiJO z)|M+R3&02W*zNb+doL~;j`v);EqZpL-M;X?`xvhGem?2G=qK~+_IdN?Gh7d4?diVg zp7nP7`bQqYQf;v4uiY2@b%Mn*Vd6yhPR;r5i=Llpx6hn4%VS5R+oHd|Dukny5+$vsL~(NxaKAhQ8?eah^@wYO$=S?y^4@1Q;Jm=q zV0N#&B3*SyyCSH@*>Bk-6&ZNDD~uZ!&coY!jGeI3r9La&>8f-~AFYM9oKS_6c9o@< zQ~QXq8S%KbFJNsueAf2GVmgs>H!QN!XOZ2jX@#Em-wJ4N$jb_CJ9R0p9VtvjaHW@E zrMrAqdZ`2JwVK|X?VsuIdd)1his-$~uuu-(kYaoUE8Xa`(vRlREnPT(N@u-c&2Wft ze}{6z!njm_qlZq``K)vwW!~xFB|=7A>mKwY&np9wG0o7W<;^xuU1)=z7mz!NYjw}r zll2e@7z2Y`m>Z$usT=`iT|u_frlM6VC`uSj8SZ$u zifI7)x7&s~HX7Xx4QIiBDaH2ox1lvp!iJ_&4aKAw$r}ZBgM&Tps~iO35sg8?OzFr1 zOG9ak2nur&-&H?h<(CRv^wo+bt%j1m>anG?un?wn6cnauri6Xf{8CkliGozYF~K1* zA(Xs#{MBrf+C#I7jmCt6WHf$R;fWDc8&6_MerQHF)1}#Wwsi(9tSpcf7#b897G%cq zUhkL9&`c<%Y!-niKa#YwkD9rK)jdb`rU_H?U}~C<0%yCGm+z$Z^U@vpj!@;3BdadPoi_l2T_o$R8O0(Vm2)bjkUu$}* zJXJ?Iw#Z~!&=dX9Xvi*GnmG*%icX91oaMa<3iZ~g@kx_QqlhHh=-d0H(N45~M%hRh zZNY2K6L8IWu*;PU_qKf4a)a6a%M)9-ZlQ0icor6Xs7t|zTmFr%jriBITefVb?{0V% z7F^No9T=~!Tep@jh@M-0vD<4SE-za2Abr2YE3n|2ZgqU6^TrDFHtfq?3eIgg+VUH- z{r8J2S3XQjJO>MI=~8fZ%i)$knC*X_Te$FETH+p9a6`8@R_t+A?LXFZgPu;o~Kd;Vn+t;Kf# z%o-fvQh_#W+b*4e#;fsCHm+ne2GO3C?C`>=tAlXgMh2$R}G zZVp0WQlP^e#IvrY6clA3zyCVs+d)LvogWzy726yV8K9a=IUpu-pW((IZpf_3#9LHs8Jp5= zQ@5hLn(9`Jzd*oGbj@9Vvvt^lY#Pn>(W6ZSPeO}CGzJh9)As&|H6KL@@S6L3}O6vz*33w*PI&HMW z@(Hxj9&a_;pe+)U(T21dt*t_})o6U$Xi|^_4Uj%%f)fzKen1=DdKdvZ0=A>QK#q<~ zuH9%f?gB~Ref@at)Bt~7KmZ|5b%8h)9MV6cozh0!9TWf0N#gF{jDDteUK??a3zBod zoBA>8Nxptso-ZM8a)G!BEYmfq`}z85SmG=fh_k?3`Z3x`ZEDB5KpYD`(ofP(ZzWc9 z>cJWK9w(5)5ffTb+p!VYA7a#?3H^KjeroN~w2pbg)Gg_Nf7kPk|0T1$^ECYtj247JdIn&zFrQuMwx3sGY$&6%?{xaJPLJ z^3_bwvO@&Bv>!vXc!8K}!2CkB9*1R{9Q#JV*G~y28H}JfrKc z9>mT^%s<~Mf6!8T1f?|-{zdU#jY-Zxm&rd@)G-qgi^O4v!}lDzhl z49f#Cc0c2pHVwppE8ZyjSP45NT@u)SO40%|90|+-=e<$d=Oyd}c1d9S2~1n`x&w<| zhY{Y?wc8~`y8uVp1%P|r$p0K^&AIJ>^=%mJjfxL5tf3>;5PEwf&aWk8N_2B&N_1lu zoz^K4j=jj*rzPR*>g(67Ctn_Y^Qyj<$nkSUjvx3I?=}nDUwF3wgFCQiL!G*cX}!Qv>jmHuL#3)*Lt2k=)Or+HZ0x0NpkH!q0Gr`W zc&B~q4X_vmgI`c6KwvYd)hm^1HEI2_qt-8j3cW&EtR|W)$C})>r^#|KOkbibXId|D zr1ugq(on7{Wi;9CNR!>bsFx{abn8K25e#Qro1M3H5DZ3IuoLYD)iAtL3m(x`DoN|5 zj#@{SX~9TcIn#Qbqtp$$Z z4l?iMJC1luBpOhtl_)s$w*ZU4d+gO0Rb>Zr9)uLDC2 zI@-VM!DR3*yxhL^4zt$YWjZk4P^u@qpLfJNMxg_B28D*S-tVY&R<0Hl>cz#R^(sfL z!!t$_t?j= z$2w?j=CO}sk9E-6%wr$N9_ygBna4hkJ=Q^MGmm{7`=Eo?WM9YbrCZ z{b3KC4h+=m7){=E#5<=@4T?2V1;M`pI2)d^fq#>~1@EJ^pcL&}#^7IpWv-(NM7cs8 zWtp$20(w`d^_B^XDiH1pb+~!P0&;>tE*u0elDitoT^Jxi6f7zLav<_xsP_?*Fje!g=D+`d77Ea>0OKo}N07{lLg+yH-GGiMlz z8GdiZkSiib2L_0^77RyXPJOzCb$73EPp)AZK8+ckB4>L7Z}g8jQ?+wi4(HZz`*jcV z#mXjE#Vej~)$-Qm%ix!bTyIaEe^-X#BbE%^Y%m-KYheHG;l7w}awW@fy-r7;!G8E1 z%unOrRY&;AAIyw@T)PIYUN-M>YCDEp>kO@#k!JWkr=QMs|33KVZ>|sHp#btYH#?+d zcw5=z*JZ$Emn)}a(hI=|pI{#>I;}pDp0{V(maE^n-dpH%G!M5wnAr|Fw*44)%iR59l;PO@&_AZ> z{wKr>IB`C3h;zkuHs)@1^&^j5fid3HWjfJA&*#pHr6=?+W@162?Ys^V3lhO4ZxsI# zBe&jCuA8%R>G^-sTx^abu{q!yZEvHFeF`IijkM0|jA z;%zOF9{>UR6@XxLt!kJ+t$la?E7{^XX~Fr ziQ^0!BAWMLhCd2I&}D$Tf7RUZH|>c}(yym3zleKID=KhgBcGY9jk>UkS`Ed_BD>W% ztV`=@rs6)3fCH8UblzOUXY9%Cq2Ej``3rj{t)cBRDj8E!_cs}e9k;}Nq3$mueF?@! z=U9m-xMqvZdbAraHpB5^6Q_@CTWp#EA6>=2-y!xhX2JQ0bH;vl@Ijpb}HySVNoxw!5^DLO+m4C<_g$H<)v{^*9eh8LXC@B&Q38lK-r zYX~{75Dj0kat+fk%{f4qqS9ZiS-ZI@20Zp7$Qf+l z)&UO>K`%)`W=V*!G(%iF$apX1vBn5-XofLZ7Nkf_RtD#bh!xzi6*|Vp4y-^2$RB|q z^c((NGq*yc{oK{>*aj1-s~h2KXsW(Kw~?aH*0|ELj4NVq7$o-qaYfYr25@sC@OT&h z`T3R^+%dS@@s^kAkhs*}%Jp)A?(p-d^31%{>X?Ma?9A-p5_LlWeck&sepGIRk-l9n z(LW@~U*VS#6_L%8MR|LI%%8nHV`CbVxdxbANz4+}S?4$nJkUM-yKiO|5Me+6$T$ax z0N2+pM`4R}N-Z|V=9cl?3=aKLw^O&oZ6=+@z5mL_Epf&cFHfVl=P{|Yk3umaKP6Kv z&P>S{3;01HAwhh)^!D>XGKKziaF^T3qd-7C{q46P^ZXOcgDh=OPboD49x4Ert znaAyiImcR=7nYovg#zy9H%Mg}dO>Jub_{cY8+*T7FExF?+Z1tQkD>^DTDmbR+RNMP zhbsN~8gEaYWc7#y+S0G#j%0HX$C=yQx`B{SKmPa(`VPJH)mI??t7^6%+A3X@7XDan z_@TlZ+lRi*Z7XJ5NZ2}in_Curo7?MIFz3q}SVsME`ZN~MYADTBjp`4T@`jq0QAMs* zV`owx@MZ^=+~yX?&Yq5gYxBaYv!EaP?HKje#~*``<|;-YXreE2qc3!eiI0tokBJ*8 zmG)IC(c$ye`tNIq{2+N=MsaaQo?IF!;73RE1(9Uh2s^vJd=7ljE&RJT#o}d^+|!2F-DvtMJ8mp>02=DiAh2NyNH2Mg%**ah&CBip;l<16 zDV>hyzOiLGcL3)X=Wc8JiQLv!t7C6#D@xb$1^Ubs`nI;JAtTVm>{WxpMS{Y?v9btb zdPYfPLdL*>cmfQ-8$%=KJtuESTgw|-l1FZB&rCH6Bbp=yjboS_(qu8@hP07+H8F~i z^7M?du<)||Hl=@`j7n9e}=F6AaOUSU;_Q zPE?OPKV6Rj8T2h^xPN~-)4xAq*zyIaXogNg_ir8!OKL!O<~lO^dL)O}k*PsEIyd4D za~&DKBByA%I5-A?-Sys4fdQ$^ zePr*m!4rMISFY)^D>l$8TvE~k{Izq$)W5Lz;?Z3_wC?V*5)wuIi2Yu|A!lw_+((uR zxzu*3MZVyV9u-FLh*6^>7IAR?G-DA8`mSA0-G6}@@z=44BF=G+mCMIsg1JT1>hWD?hU>EjW^!lbm8p4>r_1OcmD3N9q=&}+VSqO;d1#3*VD*?STf|=k$5C_Vcj*a#;MRAU4|f=i=$3xt#ur|o z55$=WHgkP!QO<%3sPS{%>%08!QSULAP~Ow8!w*Bb+mh0)J>?us`3I()LsL@vRrp~D z-@$};><~VN32$S<$KYyxzYW2(W@T1id%H1x>Jh&P^tjzV8 z@;B!ww_4ivBbT(@{1|?SwxK`(4#Puc^UI7f39LeUx>R*}1plKRw(np zvuH1-9Em9ns5kuv=d(TdAsx*EZ`hal2BsR(CUfso_+hnu&w0unD%B2pb}E&Ga<@w| z56~{p%A{*Oes<168#S8uH{*w;{JsW!nTDh$pDilok_oAfBME$ZVUS1Mvi{wKYN8Q*O1i&_^z5+crTR zZ)5ZDN_`ct)bp5aYz2Ot+Z!x)&bwxt%6?Zi&YSv0_;GGivDi2->u2GIAw1^F#(7ac z9Y1Y5uG1UmRsCH2wC(XuZ=Bcl^YOzFo_1y9{6;?>KYHQ;U&B&c9xxVsiDu!^e-i)t zpdi}oR*b|C>pO43dU(Z_@BE0yV5%31@A$wiTJ08MRz~J!=VfBAo7*2hWNjY^es_s- zW*_{J^=BaX&ZT}nF$6zsKTlyw8?&oDC7xZ&N8pF0{L8+~$J}b%mf>F$qwSQQ_+hpE z(WQPa8jK$@FLS^G@Ebg9ol*tXq8)hCoQi*?$Ou&PYpJqmoeo;LRkqnDwR8z;)hVm!6lbuE*yp* zmhv~3C}$7A4@>!tOO&f7;)kU?fhle5e(fo@D3#Al!4FIMhf6Z2H{pk+Jns_a(y{m< zlmo#RE_wXwNASb??M0Wo?{Rvru=Dd**Jk!W{IDM1`E}?&SrahjQhH{yyWd&|@XuoR zLx1S$Ad^|BH@E~GZ|Psek8_aIV*kUCb3K0Ac21`^z&mDe%n{_Y*Z^qw(F_zMm2sPWi|e|@Px;Y^G)uKa-?*7LT( zp0@qx2Q&fu&a=dSylJ03OuqwQDfhx&wka>5@tA5Yq4c6D-=yusQa*(vHk-SyWyH3{ z9CQu@@8XWyl=%~(Tt{Sj(B8g_et*D5rpIBEZOV&iET&pdDBWqw4Kwk>t_S;IZ`+hV zqH!!l?t?t(e!fQU3~WEoxFmD+qxd1Sny!DEYmqr_pM^;R6zbQdrprdW^=39D)0yKV zt(8wVeuqBZW+j!5IrZh%a5rOa8BNJ_hW0U6I1)C$8wL&Id9V{k3s*6x#?9ox2(9ox2T+qP}nwv8Rz zwr$(F`JeOR+~0U3HbG;JMblE&9jr=nk;Tiw@8>ltAGza zkB<*nF7B1jGcOi55f@zv4hgAzD&|y9c7~87=j*G&h~jDn(zxujC=_%tVmc|`L2%lG zgsY!548@(j=-@5PfWN;lH29#5igv_ExIhx-T&aAN0$Kc=Fb3}aH80PziVhU@pQnG-}j z%C1C(Pb0csMd4p!Wx}0it!1Fvgjxqq`{22WdTwU z;ltX~^DBQro*)}xLst|U%AR$^!jF?fbY!iZ5vHC(h&4t$fQ+FFq52{qC(pPI^XRYw z5t&R{REi@lV2E@HHzh-k&2B@OioJ19e}@l#KLil>2=T6|K8fOWRcP9 z25gYUYGnr&#Kv_vE?K%7YFa_@kGJyP=i@e6gQ7({~Y7$NCxU;)r#z*D!5*<&C ziPLXu8g)1NW3=t~$2uVscoU}ceyZeze(n8s81KP=Y8}=ps9FxMb&nL8fXfm>Dp{p{K-8m$L5>YSbA^(p~ybNWGQ*TwIa^(8{H|^^TYD z%&~PQ5Bb! zHTf24p;108X}am;LGPiiobX3;V#3p|wNfkz6PpS}MC3Rg`Z7MM$b4NcHPpMezXO#9 z3H6rVDh?(DwJd@5FOC#wj0~XI(4rxM$EvQADeeIQM8leZY8G+zv@+vicx!7y>ZZw~ zu9y~fIw$bSS^CUpZ-Cvq64iX0QD#o&cv228u5wjNJf)8}1Q|9Xl-86wH?1U+CM%vY zik_$hi!h1d!+8klBv=RJpxsuHKxr$Cn3|jmfOU~IR{ZRZzVy=(_i8%$sF>PDSC56G z9gR-09vn<%yJiU0(F7c@vab9@f zsF!~{kUXP*VB8^J;{YGkd}~vt7YyR|usY)Q*JIEi<(XvIHKya9$L0AEknK zZIE{GIgp;cW=3Y?~^qU?^4d7>4mF-eEJyQ0kwXP4rfKY z4E8H9(|?*p~E3IgZ`wOZf7nWmWtM41^#Ex9@fiK5ix)7u--O^H849O9TLtuczUw6!4~EBdfRt`-1=gzp87_d0r!<#y7S~ zqc_RN?{67W%RK9l9(lC^mP2ylp88H|L+vj&UK+$`a3C|-LF3Ph9yGvUI&912b>oIs zt-n35lq_|9IW2z<#M%4Ms{`Fp_I9wBc6D;Wr!I&SX5lm0Ug6>7C8l#g*?6d0piM*v zs~BuSoB`!dhUeTCU`eHYN2bRvdeg82%NlHtya(ec9GmsQA0J6`0Cq`@o_3(f_nm;J zSjqOC08CQpwM%v)tLU{YY>hF0<^iV~Dfd4SAw%EibWx{hjXGcJ6LHF@_F=-ZUxXJuEd->{b)2#Ri=L-{oi0MM zY)8&c;zb5$^0Rz5Xn|K=aKLSjXl}@)Vkd5s3Zqm@NzDrp89rP^9nToJMvS!tSm%~N zo&=LqI-_i|{-JaZwN|GLFtS1yKEu+~Y7~me42EWD zdB0h=haj~Rl!b(f*x8K)vjmf-cmATn%!6te0~Gx|VEw{F&4cO~{T)NZZ~TITh{GKw z8wk;*&ixn7U(OQ!Qw98#n@ru7q9xWTSBPo@y~fVu{n`_B+FC6MO800qSfG|!cm9)T z)OOps_-dkC#4uW7W_u0D(wq-1H+VySGSD~(y9yqyu5kS*24N4Rb60fhN=H~~O=XpI4?*+rV$ z;XT>SP@DiC^d#+%lz8zFq`)rCIF z-`sB`$wl*|y8@Ossay$9j2|a^{bYE5W6WGl_DWF2*blRNI^0l+V(MEyAK`U3*W5ab z|78IUYWqWidw@Y=<2_TT{~N4_aKDdZE>xNb8S!>(bL%6Fvi8*_=@<8zxDQbWppA}Q z7U({vdhg4qbbuXud359N{SrNV1pjpsS{%QY=Meor9%6&89ja=Niz(uKXb@?W-uhdU z__f?OFgGR4`e4bP&VE+9osb3{*3yUI*FO)fn0!%p9lI7|~FyRRDL)KS7Q-Gv5|t~go?5x1v8D>!!knx z{V}phRU*E4pI44j5AcE|Z3qGdT$4Bt7Lkt_R^*K-<4qw(4lA6S_)}3MM@anAy|(1x z&U?AhDA;IZtkI}+E)7b&uTYUbvPxBUHw6(K-;_&;m4UhablwQ&|Z1WCcG1bb@Eo-Fy1Gncp z1%!0rHOiY!^B!Vx)k>GKD^Hg<_#lx*qdBHVeFHFOWjJg-VUD9?0*bQx$V{HA#@8e0 znZC`DcL`!~)~dD4>E-K_Qn>t_0j~m;?NAX)&mc>UtV;N!ms8*g&^zhIW)G1-MFo#9 z2+@*~g-@aNhe&S^xB{(i3kNF!tH-af`83R2>2&{Je~*UZ0GXe$sjRN3Grf5SACDnc zwg#HKJy0f}YbCYz9(xlz2fXiDQYEy4Yf>h(>+Gj8lPHa!_ki!3*a*kQMGj0~{Wx94 zYjScGtr1Qg3F3qk_OVY+SDC0|xBJKE8GJ>VY~4u8xH9A4SW-nke{GYc^@nE8M+}*x`yqoE?m(!1T(j50ak7aN zqy-?KL7q(@g*TSPie+%!r7;sVT8t`HeJlrb4SR7;~* zbJjI9)a7+$rCUQ@-&)ZryO8OqyY20)tB-#gs$op0gBVo52vbuV99(_KbNUz&%^wD? z9Hyvnufzx_tHqJhMNYX6$7$)&KNE4CY1JJZd%ahwR+ZJ^&=;io3^+Ed2Mh{=oV&l9 zn;+PF@Qsc2_1)3^LkP{t$JJ7i22~k}_U&)gaW50Ve|9W}2kO=AeUM5=czOn2C0V>U zVrZ*%dp@Rg2W5FP0p-RQ1EB55NRtZ+x(8gBMx|N2eLTnJ>J7ycJ?-f@vUQ;iAUepX zsnM+qm|m<#FqKL6(>C+(n_14x)n>m}Mjpzimizu@*UY-Y{%q2EPz9)Ov=KuOYw7+Q z>$V>hS*~~1@A}!%W8p}22K|MT*@8y-GG)S~KGeg%5h+MTMo378g~*2@cOQfVA8v7l zKrB@3yjvo}O=o}Tufb0NkSEJGXO`kJXb+T6TR;FXJodOt#c*rC)O3*-Y=N?tc_2aL zmr4939nV(b3q)ej*vuD1t@QGg1N^3}SD6Pb?Znlst<}R-v98W3k>1{d=il~MP3CYN zrG4H$u6-n6AAjdgm~Qzo&Rp-h#qKd3imM5ez}V9p0?z_=l#*%lGNSwLD}(e9!?MFf zTqk{b)CK?<`I+RVkGmKF{3_ih^@n;GZ0Hw>!Li2h?c;xe!0}acBR6AXGb4A~qt)4- zk=5Cz&HoMpb}_edJm5u-vl#As^C-ltF?W39@b5hHX%# ziwP;qz7l3o^$^@1%>E%GAY`6Q#-^5-1mQuBRB&*|Lw|qIz;FXwGYHsWyT%ZdNoZ-# z(N`}H+Ia29nu4jqQCMs&N_CdbMT?)O;_hy+_j21YkV~ji)2HtU`8#jbE3f45+GfOf zkUDK_B}|N8O&iYCGagV!q;_|LwvL95O31fTTqd!&ID!#z|Cjx%ZQDnRV~6`3C7BG_ z!7aal7;JR{&dmvq>MVP-P^058Z*kF)?qRHYyNs@tOl500Sv8;(C5;@a&4#aED^Qv) zuorX8J@&|NnmiVpU6_T%J)aX8LsAmseHf^e(cqE8W3z3^L7wkeI3FKB-z$J`Ffk$NWNZ6tt;ht?;$kk`2IwLvzOiOwyb*yK}Y`zZbtxKa3p{T9n^3lW%@chmuJ9KY3;kf-alhD zHVa(kNTwFrk!E<+8=OVJ|kW=o-e*e^JnM zxZt(Y`jQJT7dQ+59$8$vs8B3z6w~>Vz%VR+y8LF0Cnz8tP&kNdI-~U_f|f(jGl{ZK zsy0*wYS^*!;v32BZjEjG40TE#XP6WesANdAjKO4rAhHk`_ItD*Pe_-~lOLXk3;teH zn0sF9(lJgomV*;6Pij(}IzkGK3?(&uAQ*aIa{5|Lk&%D{ zpNWBi37>;Bc6k5Zt%G-dJt>LVNy`i)yNOC-XFHR0g0gF=&;CHn#~XMd!Kt_f*Ta&2 zz26zj9;GERqWdUGORW079+r=yVXW3OFDG9jHBQ$wpKm*mfsH1Ow04(1uf-W8+)lBF5c4w zZoyL*NFnOIBGNt$?fCt-C)t-sLY2K_8HZCF+YJ!PTlD zTCtCg<8ao$kFhw)3-QLsM)s~;SJWi}(!Xl!= zVg{8j!n45tDm8Id)@tafD|>q@tLG7M#!3?b&#hlzTzv94DAVe|>wQ1V^yn}5gu5?* zTBiNlnB@^Mi9dA&pY}brn({p^K|*C1KVeASC7yymLd@4af+XmBNOP|(>VjeNuTtCRPh`TLWX$$;zyRfG>?# zNb0@A5iozP>v-Y!b}YchOZI%?hS%P=H0pkeroCA(V`UgfL4_+c?P@YtH{KG^7ry+GRkOB=q;b6eLX z$wkxDv@&K+2S;kGRJnP=H>EB_ow7h(sdmN{)z!lI2%kl@sTQ6l%Nhp(x?Q;ItQdAP zZy79lr84r2W+liS{Y=*7rX)lYIDAna{c7$dnOM`MLqvl-E*$2lU7>))KBR9L#4+u~ z4An7&L#R`+K&{=8JbJ#kN%FwmKx2lGs!+xotKD9=oHNVYXe2|G|1RCB)<$X z*n+We6lsHK)I5RQV1Bepfn~5o1eh*7Gm2_|Gy}>#z_R$jixkd}<^l9ZetsJGBd%R9 z=`I1sDzu2xH%3OZn8IQug$o(^*NVq=1?^XdUMrx)_x^Odqx^6%Fc@rI&$yxB0B0D) zFIzGHy@n6BvH%y|-!Z%IPaxPQ&i?yQSY#iMiJ^#qIxmM6aM^s}Sa{^c<0o{mp*zMy_B@R-O;gv%s`L-&~sh zlZ1#(1Z(dc6YJs}lV7;<6;Sv>lLfg|Gz+TH7J+4ogO#6pzhiwB>=j#|okNHHcMcx> z9dli4b*`?gvZlSeyS-*I*~~Oe?APw?8xD<|{sqHB*R*HP^fyj&ZuN}Sn9ds@i2kNZ zty2)}U^{3yGX>71v@}Xsd_u!Lzvo|IP#1$Lk5j-(k4+Uo?h)6+s3p}Xr z4)j1di>?m@A}=mnP=(n}q6ohbn9i-se$LJJ*Pk>Ot<&5a-Eq&pac4A~$-o&g1)z!))!q*28l&wiOc1JX9PSZWtjW${==dw(NAZo>_yc5h3pzY<_T?;9h zho>pMerF%DCEPe#9Zi6#ykxZvV(P%%kd=Ml^u}a8S7ii;H{Sbqp{?v+vlHC2L46N* zrT%bO!IVLEn;o6pWBta(9P#IxXfR%Wxv%}OG6fE%$G7`EO_6gsdO4v*KU zt_B>lC_KKa6szt=$6XPzsXnNDpZ9~Pct=PaNRwv)=7;!3w|dCQc7<>;6yW`^O_94# zy~*ymv>$L_?~Tdu_Xl+bx^&pVu>6>7A-j_y5hKTNxQ9v-0{4H#;~56_A`Qi~(LRT= zhavkFs!%vXO4MWT6{?n=&a+jFG>{qY<>ejh<%rl;` z#><|t$*Fw?$Kn9(7QWnX^tG_hcz^{d7>_F|Mx~jsZMfe5?0a=Zxqi#o8}io3*I-aD zw2iyN(C3Ob(>nR#{f}K zA))i@Po=Z+3s8h;8FfLXp%9gro|ciJj1_!)7ZQAV6+zIDzA_zWWgxsm|BIj@pUKRC zP%#B>k&DZ8im5Nk#C#AjJ)d_a*%5@YC%fF;uLkzSC&LvHAWh zCOotL3ZwhZzk|MuqQizOM*84+nA6=3h0SZAH+K%}?L0300tpC&<28Or4(+0~4OkR> z#csZYoOXp=T2vA2_g$c&S}bRKUF32etd3vH94WVA>`ukSQou3pz63X68EDPE7{bv< z&ys-8SxgunwAUk4CvFrPlX+lsuJ45iXoPm6%$RgO;T2H_u2ac#!477u7RZ93Wki}7J?6E@BiciP$HHD_n~0QjHx({lU1}Lo!;YAd<)XCIE9K(tP?5Zu z&l^q?_OT)tt!4NG;!8;Dxo3Q!o*1`!jV#ah3V?qmOubwl4HvB|A`vJB!_FxXYi*aU z9QYe17*oUGLKS)_#r@MvtD9kM93OW;<{xg}QUB}(6f6SQ0F7*YuGljnih4(@o&tmq z+2rcZxfCP@dj)xWdwF^LL4F+_zn*0kQQ^Z)P}TPIPo*82Gpp;-WQk?IjcNHQbIjbD zL=1*iE3`~L7&X(~R;k&ES@YwGyz&00ogJzasFDQSp$oqVxbFQBy72t`EeK%tjI6li zw6x?nsw2=Fe}7j%&p!e%$-WYrHplax_O-~Df2B;qEi6_g?eqz<$Z-e~pp(XZ3KjnR zYy?j`V&SrVz_1xW8)O5=i`7qEo-RlQag-(Bjea`O)YZ4YnOpHzewQoVMx~*5?#qKl zv~n*L%d%}@ItL9+{iXnG!?}WhrJ;Vk8zG^7#Tv-lGT{wpqgFdcqE5R-9I@yp&g-P3 zE(5C@Ahv5mOF0-E5?{G4)9NRlW@t6^N2d;poGCUc*4LcViC+kp$nQtj%m;fWZ51RF zB_Pe-?WF|K=n=9I%4-IxL9^ty*%YlYvTtlUEXKNIEpyD3bY>@JU?3)@q#UFn8<~!o zCJk8rhy}SWtij4G==%A^`rNM8nV&1;lpL^fPb>p;aEFMrh*?)if^6&X`I$jUBiQaO z{77uBz@8>`FRYow(**+ECCdv-iYog)NuH#LO?}xHS+WG3JUb}@}2?y zp0_b*Z*v0l4?^DrH*`*uIxE}u$rmm#Rk}nnRrZ0(Pipx|J20NVR2%EB=Vka-NH5AX zOHStJ#*Vmy`5+)we9MumE*!wCe8*muPTt2}7h*(W{BsM~JxmX&P-n+9@XkZrBbDDy z*7A~&B9)W1T6t&0Lr>@=8sm4y^OL;(sNa_S)q@^t+D-Aw6*&)Chm^?#;PShfkKy5t zm|||g0~P@H*Qj;VzQ$5z^X(lAvo9^N&d7;22CD3Mr0x0n{<{Vc;R*YV5~JbhBtLx9 zPt587WMEa`uVZoO*k6`>?>2MDWRB2qWxRP7zVSO?X_mE`U)ZCP2CaKEaIqM8?sHZ? zq6yX-tymlRPr;-UO_`1+;MQsVB-|%3J1ZxDvR;5PJ9HN31qH#?MJwfjzr zXQ4JP9Dz4AMXr^t$}Y5w!>k39Xy6?kC_iVlQBFuGgL5(2T(O3MwPEq8(Iof$bLJcz z<~8@I%9sYovSK24vM{PA!8p0d^OMe$JfXbl<0Tb@vjKEG*qISn zTQo*NeoPYQk(QQ{k`|YcIKzRP*-RPsDBbN}7oxXKY)3(3#UdL;8&3lt(#^g%P964} zzd<wK>jCgX+iF5rd& z%h7N9edXZm6FmQ70@KTL(#7_*dPVWI3X_7bgXd*_RX-R*qgkKX%Y)4HbR)x*3L?@T z|5etkh0?O=thPaU3GrIl*<1GAVuTt%45@+Vt?)WO8`;71%qEOE9LH8y1syJ@ux(NVFac~`|}Qo6-MOXSY1Dv`E{w8r#Z42@th*)GMw6<8IbeQ4MRShNbT4?l!hIqfsVCj zo-LwYZZeoJY{@`E$=9bFYDFWb)>D_@ z5S`nP#nvRB?cRC{G)&N++n? z_bbOgQ8J8(p@!31`Oabzx+3xdN?ETa`{yF5IU%x2SU3?3X^^F zt=#&Jk1c*Zwk+OI%Q2JkqK%D}*0m}Eg{XaVCHZ)ILEq0-R@JQnA0^&M9Zf!6$ADne zC}QrY{j<}|qA6myjcyL>u~MmA|;!qR?F6%I9s~E*PJkP7`)>4+;C+pE|i#fuXBUU6eICx?xZ7i&;ENmPdI1LL11G954Cbmd+&^v!JX@nUCryF#*28zU8+vBp~63mt`xF=fg+Yn#FG zFqICDIFx}LFE)V@uTRffuV(_(K8ziHMK#3hdkLdeCnG@lhIp)b_2RSaho?-{uBvHz zi;Dk_+WtmAwnrm3q2mktB@r~JL!p{fjcAejO&oG4>|=;+a+|_R<#okRZ0cLkdNnm2 zB)*PY%4u-kP$c@aE=-Lwt4AFx!*wh8a%^QxK&xZg;qW_I)&^$J{;#WtIj2{vR(mSM zhH|QxeJ@h0m$H9#Y!~BRmn&ytS7qH}omAne0p{_$Jr;^W$b0&85ppA!32LL4mOu3j z52C5ZDEiEkA~*D!@86Kz7NQ)_X*oSX)J^131I#}A-(}&tLb`JN{u{s7np>gPgt^Cl zT6@qC;@S)h3S!JRoI)w(V8!RH-64Zm%`VPra!Hb%_Qu>Qy%h_CF}TLd{#q;Vp@pjH z%)%|CK;zfS{w;Vi!0vv_1dX8Wxjg<%mXla)f`VdPECHGC+7SwdLlX`)ciGHGKtsz8 zBhRH|#wMs8ndR>ZW6Xg?SxXH^(HS-yN2F`WA&@ArklC074s&1`FLD*(m_jWGNZVXILz)>%iomdG~+MsFP98vl21D@(-JYUh$=`MQGZsHa~ zg_b+(&&-iU(_NQ>U=l$Fl)pJb} zsMX-bUZ)!>R93W6ScsB7iwOD?W5s&ujVibgCP(>zeNbJkGL@30QWDF-CPU0j@LI>M z9Y9ll5@ljEYF9@LqSQyom~Ch=3zGs0m@GynR@kw1jz5;dJ8Y$;B{f4eCHbX(HQ{J1 zc(hZ2=q>D75$KV0282VAYGojlIxDS@@JYhs!0m~ORkEdGQp*qrb_EzeFB$~hWG%bn zeO3S5l1HMO*fX<-ps&VgeVj!g$taU1#AubzNu}D2Lp}^suYqYBvLxACLJb(Jk4QG#J7sU!RASWpLtuM* z=#kC{g=!Ga|BGP5iMtFQzHGB`YnM}7J{Dcma|*rn1*?7L;4;tYo{X_~P~vGvKUNqP z1A6cbv`#MIaB0}LbvX;f4%4w68k0GdcViP2#Lmgy%_j+>lM=<~_`on?0N5YzZKMMa zFd2TT4RrBhw~|`N6BhB9? zVb#70Z0&H3dh|Gppa~77PhRLK5v(bFQGKDJoaM9YBG5%%S@K@ZkFU-*keJ2BFu>0N z2ml~N2)GD<4iF9i_0OlD0|Efx7Xa`G01yD6YbNKi%f|Bk^YE?1rJ8W4r4YFwdR%a< zC4D`(lvo(iWf7m4vWKaR8L1OfW79J6WoMJi=he24w{^?#<=H(>%`)5cJ?HTw%I){J zR=_bGF~Kg5;_zu`q5TU90UIufNTDZO+?%7|TGR?wTo(bszM|j~!$~wD{A%`e0xs^J zrQp^Sd`@2+v?_ z_!f<4XS$6o%6!$yP>w-o6UY~>j$d1VT;dy;a`D{H^9@K^;%zEpo$^;nZ{Xb`iQWYH zmSv%LHiDe=w0pBGgg6B@gA#<Zc7JQ>Dd*hZRvyr=G|boODHy0TV(}PVvIyaZYDm&IU*Td$wc9=J_ z!}GN;!vtq@_0%;BRll3cE0moU%c;3|;0-$EQ~{bk6>~h*vD^#&9=SCl3gDp+w`ISe zpM^bpb96TR>*1pgZi+l~+MkoorIdvk6^@S#YQZ=cN^#8nkWY7?>k2f`}w1>7(Qnfn`=-x=NoI5pa!7jb` zy7PqJmK4MDe52k}4mTr^D z%UIs8;~Wl)X4UMI3de3|oHAL*q(XmUpMSa0tO4A++$P0N>%abCzW!n+Oz{q^Axu7R zI&`-RLT}vj91wRfFJe^*cOagwIe1n2XikTzIIT^Gu@L6(uAZ$KLpa}b0 zO_V6nWIvoEPmw;K^nZNw?rgV0x-ddZ|;4rI8K>2|}HOFDQgU&!TBU0o_mCG|L!xKBtQ`+SF#08K&J6_4Z@%GXq zIdifD`vM)I2ZBpa`o%E(^%wWdU6l%E{vE6{CiFeD^*_L75Umu&YJIu?V+r&Rq`wg# zc=-N}1Wu1J^^!`bADDTodzK8k6dMk#V!$6i^Z-w5?OZ~B`1DqG&Tt?ggbVTSRmH_V zplwA29w?t6f|L7*@T+4$s6uk^*9GYAx&+EQxtJOU||=>skOwFC{Z*lFkZjoS(9kPh3RS#vNYfc4GsLcB`Oeka2O@aVYd8IO zw}6jhFAy&g(LXo)J+;9?Moc*3(ZwP1Nxh523tWXYsTAN@dXo zcjhDD>xBWKe6%Py(_*CU2cr$ioEBc;Q*k$OkKA(>xTj4q4{IXsmxN5!1w&2?F9zK_ zyXP_smE6;w$yngfkE#M(OR_Oc3kLrh&d9Xf)HI)M}pXawyUl0<38v0{7kS1#ChCES~ ze571)6*u!HO4Mit&Twl{=S{U#Gx*k|%Ar~l@W}rEpzY~0sg)Fg{qIwj_lq}}>#@hy z>(-wO;eKmlJ(h+WP_}QP@0^401fTExqwY#SwDt-C7pIeIn9aq!zwC}GAy;QJT9fS+ zYSZ1dz{iAnEzchFHMrkT``g|h>oMM+C(HkU#TOU!W*@*Ct0xBNkU^IFA6x`%VqR?N zK7-8b(n5pC^qONu2jU;i!rhyOx-tHtL=c`a`R(;@j2JCg{1mnuM|xxS7Z^OOqj7Nw z%f!si8$3MNxWBP*eP(2TNy&T{m-x)jcb}ea|1<4gnT<29VBlu{M<(j9td5f@xn$^W zK{fj=tHc|1_<9d*IADLW?e=KH)xo+iS~N8k4qV}34XKkksae779n|VO_Y$}9GoaaL z<_UI9nga)X{*X&+i(z6A%fYUgL614=sB&;t^yM5O_0;Edw~aCD`XcoowY^S7|D!Ff zoy{Op0=+nI?ZO;XuAnp9YHIsxYWZ`aJvE~2!9BG<*~FY3lF{P_t^bX~R?TS2)9&=E zipjXeqY-nH!~fE~3sZNMvvRfFkF;y(zL!{QmjA8DUV@A8z$P(UkRx@%WsJ6^ktX44 zCi|+}7^bE3-p2<`nd!%ejT?4u5tYdBKq=!{k_OWRwMKH(hxG}Aj8{_zT&u;Bbr`|E zCn#3R77j|6vzV+mgOUb26Dn1M5+-MLgB0$S!QsCzt}Se}>sTvP!JGR3#^uG@k2-k} zo(c=##`dWg`~JDV*Kr{Hc<_4I^!4vdc6PL-uso-qzMs_TKtEOV0y43lbg=)o-ljEQ z{t@T*k8A*n`y+YENu%GLS@XU~7rqNENEhE9NaJjWGPx_HO%_ip*|Umn)i82cET%N> zJD8^b7vG3sa!AOx-069sB>KQG!utFq)&jsCh+$%X3Fsc}H-buJv8!f46$t6Ptci@X zqX#M}?PQ3K+AybcN!A4Sidc5_I)bNfu!Z%xn?>}y=Hgrrk59to;#?o`CI&!MpE1t0 z4K^*Zg{nmV*wQ1^Oor^avLn>|MGITji2%KkC)!#;_0gq@7T%Le$wkZV0gZEwc!oe8 zDsV;B*)@smm%oS@(3qEnJ0!Sm_8aN#WQ;tN0Ms|=fX)f)Ue0spxlYND!ib$k^hXV6 zT8O+P=AOG4;$C|8<5a`Dica2Ty%Qq`=00yp?d>=b#utP+pnOxuLdzmk$HL1h{}a)} z^cOJ$_D?h>-}Z;MC>Xn-AHjogDsFa3sQ(2gnwqP_!N-vY(Mr5v5t{z2xR;d{wBYVq zVgyR{hJ2>~MNaJz;!@=T8$wPy4y^FrJkRd4sAsZFjuljQ&gb?u@d{?xbP@l?bj4=G zmfI{x(rYO_u97uo7>!iufQokX0ENDrmUhkfxszKbb@1}wO*`6F?y3go3kqx(Rg8;H z)WCDI@ZP)Q*NyoGX4s-@E(YvEtV$IsVO{ff(`WT0qEj_LI45ZPve&=U?{{880!_#vCj^n@Gb-<8d`$GWO6*8hdIt}2@z zfn0%enLM1TkbW#vsgxyDf;uU{jhM00h-f$iOuA-x159o!iIiqXvmfZ2QU?DwJO~ih z(>T6Zc!rgrvJ`VT3DQXSHE>voNH-aD-$F5+&qgo z?2vkV^6y`{*KusS9KTAXet5|j#k7m9u)sdyi* z>*NSBH455D_MVAi8D>L|`lB-}H0^qF%~fKVDMxDt5XP~JM+uLbC1wgo*i67p3>AxF zc@S38Ej`vj6WC>9MD4%ZxtnEbWBlAfALdv)8Kq-nWFx|!QcGP(vSS8DjTaO>USY%@ zu;W>)*xdCIl!f;k8Eo3qST-jzq^Gf%M)D-0F%C-k{s+C1OsQs1(~R#X>7NXfUukz~ zW-)0`sb(>1cWJ~qKN$Skt5NwQH~?nVfDHN}sMLI~~Da5i8%TQfl_Oq<$a*7`TJ zt*mRj5Os1f7wDJK<1B`boPTXPoMuZrZ#2Zc#JIiwX!`yIOh;s|+x<|dv%Yr?b3reF z-BLCL`mB}@n>o}iAeH4`2zMitVwrRNe}E{(GVA#NW8RTLisgUMGGiX$R=3!(GB&r3{s$^P^|p~hycDpCKIPVM6&m)< zo%=M|^r|y!pTHds3)}4HI626x6OJy)r?Z|m%$m3gK&KpgLq$0&gpYOjyjXt{HCU!9 z-rcr%rr%Mk!v-Rt3CNv=<@xoAh`$223CUlnIfKqjgSb<}nc@=FacuJ7y?bm_BRAs` zlOr>3Xtn!IUSJ66aMuaRxook;cMnC!G$RV)5}m-qcfmb<+P~zciZv>I#zBvU5z~`IN}qB=eT?yr`UlxBsjO}*qQ-Dj1yiM z|FhTq3U<9pxc0j1)Zu;}KlXmzpveKPR2ow+s#H4b6?LC!0yWVGk`|d0P}#%bj8Hd? z_KW{jD z%WUTIRk|63d&RVX#Pj}L8n96waj=;HA^yBtap;3I?0DYos*A^{|=ZXk*zuijM>pUKx{Q7+x6@WEdRs)7WMuJJZWl7#_`;Au;Vp z;?s445L{uJW?_!_9PV@5+-5d7P4#dZX<^k%)gYNH^1i4h0#J_lAn$X7+-BxDP0er` z8DZ7aL8&GKl8^W#?sJi+o0W5#-Akxs8uz1|t7ci^yNZoK8A=1PPYk`Cij_I^4%9esF6@ z_>(A&YW1)$32m>gH2ndLDP`ZF1p!A}ER0ZiIl#GpDjEMA(^denK5|I|9_nuHg zCqNQPAmqKE(|+IAwe!j0u7!WFl5@|qpMCD>dtwb7v3!D=S(YPlIazfY})i0RzB z2NZjq-S_NTuYgjsp?s@p?RJZ{6&~ed(zWtud8jC}53k&>Jwom!e}~x1LJ?=Y~<|N=9UJkP~bSJGcFq?k{dGa3GR-qow`#|!ZRbE2#@6)rhJthF)t+Iz#N88<;^6pOae z*Kx%s7-zm$n8H|iA(NvsY{=^CGmGcdC6>RH6+gmP*`dZy!zzVOuhi&}hx0KqL^J!1 zlDQc#?1qeovkus& zFiS@{wWDDdV3oCZt~{^WFkE%{2NG@739Az=l>@c46~0&2FAWHbt}_j|h_3H!xZpN^ z0tDSX#Fa|y7~24lVLuk)6={#DX_L9L4c^@m0C}7S8eQ}s`>7jaizl+rSvP7UuYAF1 zPq^l+OAgRXa^0iapGmKn1N1JDOCPUHTBR$dJrI^I+6W#Z-|PWl$C~8);_YeiYkI4k z_()G}Oj`QTIn$KOBlp|@2)LzO`T@t0?l0c0RpKQnZtD@oJt4%u5JoJj>H%PUjD5f1 zTAv?^iWBLbJtZVOihm_9Vob>-ikMPn!(qt}PW5Em9)I#n&Ky^A$b55$8*{3XSEUk{ zb_*K^@Zi&iYhhu&iti1EXN<4pT87C!ILDQ#dL?%~a-Q%IFc4wMqQ`E-dvV_P6{WA@ z%UeDO0@uv6-UAqzA9G_go z2+w}OkQ7JzK7QI;E~>yGYy;+h|B{P})!&u@VpYIqkPx6w34W4R_a-!5opZu6m!?+@N)aYx&;~y;Al#tX@WGQm+&5jXDDF62Q4HjJFStF#a7g+fpV}V%-WS9*<9x{0-ZL=!wh?BYU?qrm zei|5H0=L>Y<>hBGW%;SA&>9kZ`;mje+n+#0%#VO~?|berYP(2Mq@bI7Cl9 z*HSL+;O=Q6`Ho@$P}@9~`}hQU1sYESBE1V%n9rbPKPf;)IopT!zOZo_&CNOao3D%e zQ;{FuS9~;}J47@fuHM0|5K1g*N%?hw1;RNi)&SV73%Gv*(hvkH&1iG(Edt*2+niUn z5+Myahfd#1?P#@|&vQh~nh zlwZ2DY+d!@;*Qg>W!HG2N$zjvwBlJY34QIIOSX2NV&XE(6|R(!d7Lk{UYB>@FOia0 z6L?$s9|`<<&{#j^*qd_p1o95Ouh0GsSHHuktM8z?`@0{G;eVQXOP+8y%|0XdV6-MW zbt5bHU};$aQdgR~(Qyy}MvCBeKPg+u5Pm{YhA_7kNXko7SW!nFzbB0KbgtD1zCTEE zBri{4v{zkoh>KfCa_F?S1H3Qg`4^V<(*#m!wCeU(515=r8g;+@>y}%_+9yz67L5Qk zEuBEIh?mg!*<|#0vZOhMdW5~HiwLv(rXl_$JK<)(HcRa<*l*XWScQiBtT|7>J1lC= zc>*mYW_eeZ9GHv25e`xUkpnm%5*a}!%L`7HmfJWh_ZyKTH+4=%S*R_4L8^*_e< z`p%MXQg@RQx=AJ{8q-zZ<`C_qZ?dwEFRa0?6xTwWOT?ckD0Umo?K{a?MJ^U@oszIj zZw>F7xoWrco=cPo+5|4|OsM*y$%LxOWXp|CQ$Q~8g<-RwU>r7k0%w$~cx7+6xqJS| zvJoS==XVBLI*p4xgm3@a@S6wZDSy0?puG)4x7zk~`<7#Q*vD2_NA8aJLIFUa#s43q z?2dq;Kfo~}%{<)o6_Ok=Kk0vsW_%&htJcoK#VTHPwX2kf9f9DT;rms3>yiazwJJ>B zPLk2=gDb9X!Y-oh)$!D3ok2o&O-vO}*ts^Q;VBI@0}&XQEf1Rb>7_{uC*4)9p4{Ry=Sq4s?rja^@ zeU1_`#cKA1URHU}k5Tr^zTHQQT`BnPH-N$$-1}shi#<-TWu4tz<@<;JB?g|W`6+#SUUAs;$0!BDFsBvki!Hv8b80CQK3)u?s9WH|dEdmhRr(aRRVyTG<( z#T(?@{34R2guY1vW6g3D_Q4qrC6n_w1SC-l*ln2p=8lGd=M8-q_+_7T{p?9^1$~!Y z%d$%__qN-;sG29=E$n$e`38Py#>3ouI`V>DZ(jEJ%(}?)sd)&d@9vyEDbjPm74<>i zH$;sVFr>fiZobtJF!;s#I&V%nQe6}57RT%ZJ}`Qxb*A>=i{e+#j7L8Ag&F7dpIm6( zUy}GjD>7^2`88bw+;9e>`kmppb@GascHBGB7hoL8xIC|S4;1?^Y-P)(0?#u_rx~{a zZdE{A;kyCQqm+A{=x|cyrQ-$&0YTM0!rw|Xz`_Fhskn;}Io;^R<*nJjdpX$;yMt$8 z+x>eQ;J4A1Gg;SnzyVLP8^##qw)k`#+8JD*X1vI5;BDLW-65aUuG<+Hu7ZPLIrGS1 z=iZ#N&z*iEXxFJf2P*{APdf5axP#Zo*NUt2%;(3Dwu?nh5Op%r-BtZ=-*CW+3v8{Y zP6L)aucX*we|B@+9V*535!w+ST6uXsg{C^V|Dm5~ucFyu0_%rJ(5P!B$xRR4K3?mq zY1Z@qf$*MnRuA5B8nvXJ2(N-0PZU1!lUPd+;vD?^n$7z`6OGg8U25698A*XJ()u#1 zZ@WoV6@lwTR$8S3gweWDPL2sB5Q zWZP2L@zB2w^sm4%>JGZ(SX47w%XckBu+(=p04@atZ$co)Z0aMM{@* zv2f1cE4efZKjemx5uT5H+ptvw+Bb{7!8oB`CiD+D83Z~msD9UEE6(l%P(I@1S6n@^ zavoOxv1Vj@M+R-#HnHmK$LU%+x9(-VuRcXdiFgDn*Rzl;ShbTFFH%byatLR8u9qd` zRH+(SZ33+))|ee*6}L|Et3N`QAb$*lM}0y9f&(WrxO|q{I7x2D!?Uu3k8|19%Gxab z)~bF&VYGwFZ-4qve_GV;4~%(#eJ1Nr&DlWzX{J+p^cRbCByIO=@r88pg?E5FcInc% zX7S3~^399Eb~X%yJBn509xy%)E&ENe4OpvXbLd8YU^sMprKnTTcuzv=IXcylGOz+w zBlqM{Sc!^RNA`mhj`i-ojpPR5?Z%b^9*G$b&z5U9zD8*fIo~Dv24wSfg%5tX?(nBD zEYXlHFn2!%>(hFq(WR|^yx?|t!?kIaZAYQc2UFU{HQ=5!x7D2#RMQqY z=c+W|s?Xk*w4C-8(064pf(31w!!qcM=-n8lne%I`BK@{bt)%~~U$dFur+nsE2UXY! zO}C1g$~1($1vc)SbXFPjeMVPHzIt6_%x`gglx*12^3dNc8;$2tP@}r|P5ar`Wep*> zr`aD5`SfuIY)G}0)7HLsE`A!EzANGTAeFYD@wL-tx))ca%W|_uz$k>)4EJO;c8ody z=>Sia9Q=A^_+Z;);T|O0@V)cZ+JB%x^v+h0XLs6uX3{{P-@_R>$h^03CJ_A6>N<0y z4U8nF+u*LCU)Y;@UZ|jVmdNH1iI{#ZxxSSnkFIP>+VLF#x%T0OY8$S`)qrtRfRUL0 zNPhQMctKxI5ZP(86o79IA9Q#=%am5t>G@H9mtxg^?haGPOqTQ439cXJ2=`(%)eldu z*iU-nn?W8ZpEz%zt3X66GaSC!G7d_CnWp6sUH^oyBExk1Serzd&D^;46@~sh&|~%L zqkk=WY_;gKhm^kDWBV@@vRZ($_MHg(_5$+?@vUiK#z(8o*0`0OtM`#kCoZDYrTqKb zYEA~Lw;2q?MXTOfUD&T0G%H>hFjXi9=ThS;XHvYK4kT#3>3pc%eCT}CAwJnY{1Bha zUC9k-g{(gEe(U{S8_Y_Xt74N6Z2av8W=nlUi-+h(+}kSGAUmGhQCsQB|8mBkPyr7d zevLc?<;x!@1tJDh+J8|JK2D^z{}$mg+2`b2qiP;dsJjdVpk$- zAvPuGc;}#Q3FpPcdJkf&99&e_wR3mBg+_?n7)& zhD=M5XCOAe(u(x5Um&z91(ZFox-nQ2PFS}V_bP*kFwI$u3KJ*wdxVCRwdCsuD*$v> zbP)E$q+yOy zGfj@Hd~*o{~kzrCgT+P*cot)i$3lKR{Af)yx&Tcd~RhN{_>5@NaF7V zO9xa46jE8Z;8*2e`qA}Q+~rN3Uk{i*yZ(A$>5Oq+_bU!4t-@6S-}?R%!9Ndp*Gbnu zw-I-~ph1%8VCF4Rna6Z?$L{rbmnSk|Lvn!p@rS`xJ?)>(*l>1Oz#-+8r-;VxKTz@% zQQ7^0zh?IJ;TxC#-CM1k=m&bMn|9fZIa;t|ryl0*$J!9p!&|&W3-fNXUW=-%$37PC zRyEx!bQ7@*sjNqaRQe6hgCqoI&~O``^&`12^8K3my7@}5o#{LC(-;juhrn!kf7R?* zdLzL8GYq`!n?+2=2BPRQ&Wer!lfNA1#sD;8t0?&V<0Ze^mmK{pfyOT*v}v zpf7NS_5SYZI{!^}2mDLpg3z)=mcr07QjtcXBRp{!fT{n3a9XE{-0IaTi&Eg}00)EB zx+hqlgYEP^{UYAK(wo=4qj4a0+*x@#*d)nvp15b6iYV>(xB9e?(8LGCVh^qtm!uXJ zF0QQ9))!0_Zr!q^&A|tldHa@vY z&s$7trXC>2Bj4;QDMrWQrIGKZ#YIB^z~xnSRT+Bq>`&m{!_K;GJD$&U+h`64@6n{p z_a0+2k^=#2l62owqrt3Tgu_1z_SbD|Nv4vvm_D3Al1J$<%G!!y%k}{~7py4yRO`IO zvPi;o9O$tBwH1Uk)q%4N+}*B^L*PE){FVyY7_W?3^U*25g;>ZQwC8<|Yyr5>mo3d*0oV=Y;^mc8(SJ=EU zRttNY{Xf`7UrUV490QQk;fn1u#?Sf$i0h=z%}eV7f1(G@>t*SS`5 z^R!)uUvX9nHIOc(nUz`BIoG5vrV@{|Snqg^?XT-cR^cLa;t1VkP zHb*yE5ltFP^{OP7GK5(Xj%l_2lTpTRsmj1Hg}-RGDZ;9g`2_d^m>F=YE|WHmS938=fZ?~;&E;FLdVtXFA;^x zx@wwlV=hhjYdss_pXjVwC!m+dbw<4Fs?9Fer#!6>P+l8~q4J%6C+()BX= z+CxZv(`sAuIn>ThNuRq{vGT#hYdk^@PG6GdMovZ`(u0@>H+d{X`iZll8qq(!=`cce z3Cr6vqx8$|=f0d&yViSSrSEA07t) z(_*wI-Cw%=I^P&*$y@#b%-h!4R%X=4_dOmmsoWPZ00Xiyo)^sP+pChy>zAP;YBt>7 zY9t}RE$_demW@e_NaBINu<&et-1$u{Ih4R-^u#%vIe@9E_jZ5ydN@J$cm7((z{a4VJDh;4)a9dyjb@aG&fdt#b=sncd;Bi@YS z7!JtRz;UD>zWvK0Aiq4GYwvJYwgD5WRdN_Xzn+(zp&hctE&35#(|>4~h|$EGC5&u= zv*YkJla!-vXX!wpw$g@e@49|pgE3fYe9XMq+#yW z{3uvtb@Qo3RY6-D@vI8uwIC1KBT+)XMr~zSV~Q=`jMwYneUMfEreKxxcgg$2y9NQh z54mm;0}XJJvCamyw_}~fYj2BRNK81>)%nV9_F3z$(EPYk34r&drrVFS5KiqzLi+_* zt*Yh=KRUbJ>Nk5jZ7BDuX6tHT^GSJ(mN_Gtb#bt)N~YSdZFprg(Yx4jB*^=@!%xtT zZ{B5BaA=}>eta9P5%(BhJ=j4$am)6Z&y6}9gryAyfe?z?jhhOi)BF)^x$22XuF55 z;srIVLlY4zLc?h5bpQ=$btrK_kWA22g!k)~5*XB>@P4b(!|Rm0hjJllRAYYc;8YWS zpZ`Ayfd`NJvB(G1XCHXqFCSXU zk0)Lh-=RH9Yo!eAK}qDii{dZpSfxBJGCeWM?$P`fc`fq#&5on@bB8{?EXV03t9eZL zpzQNZ-CqNPHPOua(Gu>i`}4gok-4sb>a;Gb(H(N$mOFNR^ksyP90(Mk>C|q zaZOl?kXMc(L=AHwDi9abi$8R7@n0!^EAo%bB66^mzb zB@Qct(uOyWFLvlUJHkK4jcjk5T3Q0FPCL~S6PUB%ybP~L3aqvp1x*&BNSPgpmL9oP zAKIvq|D|Hdtl=cRRmaLywG*(XII|xBEv|3=Q?>|~I`RIRUh5>E8b6ghaj=6Y1g4^U2B^TBbhIFBP1B)wJch=P@_Co`7}34B-^o$` zgKOlde%$|}5641|`UeST+B#p^*fqLUOn;F98MVz>%LwQE4L%HH8A0sVMJ>Nc)&T$x z{3fUPBsJ}3k8b=Te-}OmyMGUVn9Y{*Fe}E%Q$JFtpzof9%qO+nW=~D+|BDvSaaQ;7 zedzzHbsq{y%{8UZ%$_jJ3itZg(9ktSoU1#5cCjlMk8J|uXBzfjp#7y>6_O>nx|3)Z zhp?~4&0lO-0NRxIZY=sT?YH(#N=i~Bo}GDshj&K8Kj=pgTkI0A*!#dHV67W5KabLY zpSYyzYNR6+O5-nAWqN9@2!%4E#XP=tvK(%`YSaXYGsaz7wXlY3kse>ZIhE+p&b{dD`1f zawF^KU&L{2yl=8_|Dr|HvhYH(c!Txr85r=qVAL0%0NY6l%dz`#iIuju`tozFzMZ?f zT1cP+d|T|hd8ps!4JTE#THW4r$~W1QUI5n?)!R|Nwl=nMGEAP}Ne^A^s0e=Kw;q<@ zPovDNx?6n)XL#q9b9v?xj>~)476&;s3*$lXiwf*9qkvbDkIBqMlv89YAPhD)g35cA z66d>c)e?O5*AeyBLb&LeLN_U~g89aEUpX;L>S}-$0q@i{h_J;>95Qp{*Qk@^e zdqlz`f*N{XT%}QMWhO0LKsa2%sBJ&*biHrxJZl=G&YP7Fxh>Di+O?hGYg25 zvtfAL6EYLQ`7V+PQatn(<-pr|8+i6H*tXJ@m6emIuMQv76Y-j_irVn;L}qay^a@?U zvu0ICANlJxUoe9)$pC#;-;*WD=Un8c{`6ZXysh!I13f=B~(IodQJR*{0U6D|ppevaqVCGQyR_z26hf_O9 zWaYR{;rdFMMM`zyfH!gSN$PrLld$C!{z`#rtAgkT!`y!$xkw`wek_@An!X*n=d^u0 ziWNJ*Lpf%mc@N#*C`Ki=tM5~;QMe>{qxyOz)q-3jB4W1XYp;sw)CVR~^+dImqojHS znWI!&f$eePKPMo*c~!lK%?A!ap!g6*DVBuL<5vA94ci?5At*uMM_j-*C+9eDUX0S_ z;z&qXGBRa=9?9SDBXj4Vr+v=rgMOgS83_SM~2KLamMbD;~ zH5fQB9))*K0J%Y1CdAL&Ak1Wb0@aYBrt0|c!@tly-YM$3a9W|A2R}k8u>G$QDF01h zNlPL7$?K?LmG>XWiD`9^X9SEn6P~V_4I>r?82Utwe8@0;y_0k!p2ZXkPr<&+pcBwB~=aQuO8=!&On}s?bThis`;))A5uHy=WvQV8Rk;FG_0vu zGu%^5^l&Cmnkv?~TuylIr({(<6!)C?R5oBt$Ew=za_OAM65gBCkfPwK-c;(iCqa$O znHh24OAN9a*mPzKBr{ikO?D{VSsy~c$7?7ooHu_znc^#&V!u#9YGXzb855F~WUPa& z_i&p9!7Wa9%huNWels;}tXQDV=G4czJGMvf=o1w4TSU6JbFJnF2N3Y(!6cm%01id4 z4uEJK@(Qe=y_RjHJwzwkA2Wjaak>@7C!tj52=eTz*g>o0uc zRVHlH!R1s$X!|;piQ5n0asGI+ zc(LcWGz~rfQb%o6GlQEI3~~Gt9~2HiZ8=PwblAQi1qQ1AGj(?f<_#1Wl`Fe{uz3QcDmKf()YSFjEOg{B|P5I&YrPl)5W$Z zVyy**Rj`$(zHr6zddOJV$3GRPQMZdSiML_uo`;#piG{1%ZJ}<6yM6>Kb~L2n&1}2p z%D{5Bb&Hwf7cUT2Pm$~HAccENe+;Le*$Q_?zn_kI3-Qi?+;|xMcBSlr{1LY1>S6U8 z%*V}%_s4OroAz-X0kxC=#aPYcn%R?`;+qGCQb_B5LIjA7bUcSo4jN(To^cDdR><4L& z@5$0nyOYK2b+&pPK{ADyo|WAS($wz599({91$I{2V=H;gquX50UN}{pxrhAAkxUIs zJulv0ELmug*bA2TJgPux{=FRCWM@)0EO%}%xmy2m&2*bmvL03R!FKXZ@D^K9?Dmhn zIEGHs|Fsna*PSNAnRx`W{`fv~-=E&Z#Gve~I**|2e;jSp_n7}KT4N=T{|?QuM&{s_ zf8Z7RMVNl%>TF&1-+_YRPk-IKP2wnkix3?HixmMZ_GMI^wXv8WP41sxnVUde7skwP3mpS)hVbdwb=gM?Vd@wB ze1P3Tb*SrQSIalnU(v@io9rS_cBQHs=4Zi((?HQ%t8i_EDk+PfPt|Z)k*Bcpws}O6 zJG2oJ9kN9)YDi~u<}b`;&GD{o9fvK|3{}UCRv1il>vt-hd)C5>7J;?qKJprcSrO=J zh7}nV;a5gckab|cYSGBT?l2ifr0GF4Rp2&TWgE6Yx{nqb3*`11H&F#xh{QgBa3oUU7g@L!_H1{J7%6jRafoMBE!I% z^1!6-cj`&CqiiPYGS)9_y?iCgWwz}2(QC~~DTyk>HBN+Lwtzx4Oo3k9kG)mph>jp1 z1isq`z27a1!FTS;;pKb$bq8GJ1|se2wzMTvms`cBd~?`)4wuMjiJ7u|D#Ic*YKGC5 zCpk>yiO*d@8(ITL*t<}CI#lvx1749;SI%8X!0&0)pGIDYKb}8Au?eO1Rq(9Vh-}%| zlF@V+^2b;EVv-}CY;g_qmSCz;`W9{WY`taJvixTG z$AkJwP)7^Ge62%LZCEn^o;WhR5<2-Sj9AJdnfQ{u>uaRlw3_&f3Z&TrGE2pFebA~N z@W;qiTI=3i;YIRsN{VZJverxgWL!CJ3O8Gb z66UVHWG%RCd2d&<&Pe~+Rd)5A03(&1(_mnSA#eTQ1}g9-tK`fKN|-GB@v*C|Vse<- z118t>C$@0`eB~X;UrY`2LT|&!qdyGSwYE}VM;h}OQjAI!8Hhvp@RFcu- z1Orb;xyHKsdF$WGRCfchV1@Dtnih^{t+l8Pjf$v|xgXi<1~hC08S60u>^)alaw_H8 zqfi}DU=(P>N!}}DEp1^WMY5iPa|M1agBG&#I+gZLDY4qs^I1 zHOCc&`_cCYY@lIobu769Ph>dVmlBkFI3U=j8`su?49ZMeEYSEqWL%!nI?@Oq16 z*?k{LviE@Nu6c-;WX}fkTq8fv0UeIq<`=vSd1&6&S;%0mz>NiPcfjD5bc;={qpuyu z$8R2sgb``7R~dLd^d*eHOe!@>uKn*0GLNp4()_)`S7%}T0UGn|MQq^mqcAx;Z;-gG zZYtm2nYpqX+w)VG!NTx!Kzs(}VdA5GoKBb9Z;0uU{R^(p`C1;%w>&+uY3iwkQEI7& zaVn{Wt179ddel;#cU4nYPr9>wh&weX53&zzF=*^Fj@q8L=l-Wn_j!TQ(+s>l#Xnjo z+mk<1HZ0)tB8_O2!4=@H{cOHAK&bh_!;7lnGv^MuTD&;zpAxIwd?{;*!Y!@B&3E+f zHl{1nt0>*kyj#Z@w6VeAw6p>IGpvxK`-M^k24hn?XZM?;?8{G zoNdj$GpiPI?Nazf6a!D7!6F9JNPCTwCu}0C`Brc7Zp)-n(jUcX93PDU&tx ztptdIL?!TurfV{+R@Yb9|$^nx@2_>O0HMO z?Y2L9k;$poYiK2vRrbHo>Amb`Tsrh|8&vkuZZ=K+oj!K;O$c-^?>yHdq3~Aj%(~Q~ zyEWr-kCJko@DHD-7R2$Y433yl58|zeheq<0uE_J7he%JCJR`Q1*dWL!y-S1u-T;gS zMzVi5k`Q1c;aY^fpVqd>ow=Xo%ZT}U!@-5=7VecBcjhNcr~EimNbV;e)9rg&3XZj$ zaY`zMi<`oo;f4@o?4Ic|`S=~}`f1l}l{^eVdR5c)4cDzNj9OYutYUV6#Da>a?^)O2 zkf^s`c{#z^ywRR@3_LRYvj&%cr?&_g8S()T3#|jav9AN?B-z&$YUyHj2?4GFy$7Xq zeR1}r?Wb0VwT`%e{c_wdo#*MvauZfUq{5az)s<8<)#jTp4(IS!Rgu|wHeoU}x2(?g z+x~I?|6=5hdPJ)`$2T~g=o_?h$(xXe5?YTc9!jteGsI++1|^*4U6xMtY1>{fMsRe* z+3dUDu!>sfa3cjMJzYu)g#=_0`3lEuC6cr!+MRBL8KY*Ogv5VOGuRKjj?rB>$oE%_ z#O0bm6N&%A7Woz;t$TN1KTrmvyLhndub6_f&tJGvmHg>rg=Xfj^Eb6crf~;`qpQCPj``@nHi|TC9?5%$x@kmRYc_1n{ zL>W7p5x2#-? zi}7*Y-r$rERFB4t`0b{!??TVRX7n1uTpwJnQl95M3S2X3VBq1hqUTAIW9CUq4F&d1 z@uY#zy3YB1I1lT2dJzUIopwHC;>ogVj@x4#Qnp>Y)7eO4P6KnJ_ody5J`h*on?Db` z*YZG81<@<5g7`qkV+Fo2wncTM3e2-Xbo-|CgDU(H=U~h1>HK^)@;Yx(lAtDM)GLf0 zm4zs%5I7ne!Mb@#EErYek##EZZi8$1?(;2#5ZWiTnSGDu>H{wMo99+vh^Zj7+I*IG zggG&v=ITBDYc8}tIr*UbN8iTvVdcjg)RT5)9$)^*P3@yRPxVN7US0POc?30#wV70A ztjM(5W=*~#a-?+OVyoQRw;{TH$A=+@&(uOXZ~aoCG#^*FA0~|X`5jDH0Q*O!DbLsJ z><=qonAGJx+f<5LLh1IWcpqSJgS)asatYJma($U`D6cOaPsOJu=4+REkX%tMqtRyE z+rhq@?X>$!^U)J-0xCxY4s=WOwbyD(;me~J5gl8X(JHq;yzzI>^P-Vnc(BUhlwy`# z+mfK33~v56Zh)KLs~^MY2Ds%I6g91jjs9z`Rdfj=Y+SD-@v-U#*^h5Gr|BNn6<*Nl4H0`~TW-+xX63iOc{ib#vC-cS_2L!J??I??w>_2yy^oULx7AG0*E-l2zy(T| z6qN5CzP`;8q&ga$#9f{#aouzdclrw_kKl5XX4)T$*E1M{f>6+Ln=2ocN+^@(V2>_s z37k(CGv#HxP{u5&WIJSRdk6GT#pB|6m;~ZgYDq?}^U^XKq%Nq|VD9EdFv>LGPK;^N zoemkumncw4mdMIVIEj>pP$(#kURljL9wxJ+YF{Q(VhngIiu!1;MFxGg<8{7W4uG#v zx14kZfbsj5_cuP;mR$+IYI399+VSv|*bMX1Ks#x*U>@|~Rn9lB_X_cN#!E9X9WHw;F_jc+-~f}XcAukUBdM|(f0*U443U2NNu zDGx%G9ASni^+yy+*KmoQ^N3449Z&rPvYreenCzE#k5*zigHL`iJ2;ULAD;5%5|5wS zY{2|4rNn0uM=$sYo_qu^ri;F;D^h=YpLUS^3wzFgvKZ_MstW1*-g>KU@DnYEnxe?F ziB_i-@92C`W{7`!x~u%<#0yas8u#1O`aO47q&4KJ@)!Rga%88z9`p!-T-1x^UJ+H1 z4=QK_&OXsx%vce9C?B-F)q7_2^(wcR#96LJ>1j0EGMX)6g+s%OCR>I|Kjm~&ve`d+ z-zTCHMTh@g6gaN^|3E`D`ZE6i0>shsI?MOPW!fnB?uh>*@9qdUnqvt>ur2+L4~W=T zX!Yl^K}1Vn+7fX#UAtwEdYQ1(#vU&kSf$Ys9Ima}n}@&k=!#MC?gzd&r~2`G;b)Jkza5wlhbb4N0>;8OK_BSUGVp)AsH!Y8u+8=KEtA{GVl zu#I7@2*oBjApSx_eJIw9&~;n-Sxl2R-aog(u|{h5`}5MCU6Oz4V#=}d0!P;P|Tv+V$Zq7o_mX9tm1RYi75sZ z9!}m-3X4k~CqP#)%lS2$cme7&aR)R6Un(#!?V!|I)|ME#EXA@z7J@8mGmeL51f(hj zz|~SSJ2a>GZd8I_TPNHGi_RG0G@X+0z^!D}la@*p>I$Pbehlj-htzioeewaGx?EEO z>brZZAn4Rwso$YjG;#w!5^z-4W3{`#ssNo@EIl~%N;|%I`UvvXiWd62-jiD&=N^PW z=KVf=gD!Dqf_j3HeV3GPa@D&DsmRlFW~NTkWu}6{W4Twxc(||6M$<9IvcAOmSs(kX}R)K#2VS@6EE^Rr6 zK!hZ(r?Z~5rtzM357A8fQ}-QLtkNL6`sN=h@B|vGbh?5Jc{OVRnpvF?NC(N)gi?Ge zFJhQ`CBI`CD#Ge$?u_@a1uH(2N<3;y#3BjrJLy}e(g z^=R(j{AFhk1>zdxeJwB6FUSiAU~@c=R|n_mx&-I-kgR2H2j^+;e77w{~sMt$o#;;!DH8goR`b&i%Mx&;@ONAp^nRi%47We(oA^}-w`*N|+7olks(dNW)LGRIN%U6K~1!)B< zxdo*Bf}caS;nEB%=cN%gQdR3i;OS>{j|_^P3Lf3BD#$mKSbdvk>a6t8Vr!65*JA4y zoy}?ITc6bc$o!J3IV{;u;xoZqSxuTZWMRupB-N{WFX4w>8z~b&_8F3$0&>h%AO8f@ zQ$cxAiZi-bvbgLXU+50b)6s2WODXDWhol@YY+lyRS~4yCrJ-8mkQGaYl$&P-U$E>d zKcw}@P|u+o(y}7V&RP0T9@NqerKOUW$I?IT|G~6nh$a}6HfR6vuGz)l@!Y(C zuyNXl2QQrz<7=q!JCD(z&WU`I{3F_&mBxqiQrjvaY{cI!8%Or2tI~052}yIl(9G0? zJo}t5pOt!Ur=Vmzlw(e^-FHW<$aG=Cy3*hc51;B<*$M6V=X{-vJ?2}T3_WsNH^fGm z5}d<3t5mV$JRZ+swbdwdGusj&IDO{F7M|0cK~L?PuGf~lU;P)HOLMklOpCLIWK5sm ze0@9qE_-J>btPIG(?yul#t0Fnl#Vf*B7`0*3HAv%n>x{i_wx-zvNm8YD*Q2g+FJfE zbjP3mA$R#}Bd<@equ_vheS#JL2Pp$fAJu9qx%AFP-Wj-+n3JIFi0$R}SbAs5sb8q< zQNf79bAIC?T zx{Yy3a;@pAnZQnP;@6}0z1#fjZ4gsc=zuK@Gv#!ToD^%OGQ-8MH-JYy(vgw&TRI_u z+2$dEYtjwjT*`#G08!2)H(?dU^KjpuG zGOZ#S)lre>9RM?dA=8Qtcv%8d0x7mliBQP(2mjJxqTGO=B;4meAV<-W`JSW4fmI(V z#hRN0U*jf`?@O^~D!yB!+CIFK%7wz81_$~Is@T6%KMS^fr`{S3V}@p^h8%hF0Z+UQ zIa*`Q>#@gVT|T1v*#n>c4y6FoZuGVyhQ@V+E!v zUyeT4hv8G2#1uGIGXwcZRWHx4*KR1Ah8!L3(vh>I0x!4ex_8%JQ&}tt-iQyWlA_PV z%e^vE^0bs*c$C!O6r=lmJO92yReSF3{XxF8@p*$J|C5UYl8OQNe=s2k{D`;v6@BAt z(iz{1UtF1{yG}KjJXQ-4UfNHisEYJv^fG8fyXwiQP#|>f!Z#MboxtBbKKeo-&b23a zDbro}`l7X*c|@>Q-o0}Y0vUW)2eW|`Zc_;zxhKv1J58!Iag_eM() zZJzrLRU7>WWk#HSLw})ec;=H#!^1_FkdmY~JrC$8ZILzZ-BOX< zXBQIv4PVASqU1T?kQac@Rq_lU8wF*WNxa&hP(wVQ{}0v&3*e?zMuj_0L$GR2$B7fX zrLEh%%dD_e&{MZkQ9^8n z^S}1>_`QdAW}jOw?Ym;WyLPNi0f&0LI&WtdJ+|+6yn~8`XVY&*=lZgexo!6BFH$1r z%C_Wg_jM*a*y+rZLxoU539e6~~Uw4EYn=3+d9N3xGc zvrLa%l6`8Icn>zg{z7xv9gYj~;DNHqn}Bvvxm0ufe-fdcDe-y6n4yQu z>OLJj(t85^O5AONE4|4ZUi(_zXM0HpG}R(r-`Q?~ofr0SkH-6O1?=?M{~I)4E@USd zIHt;~^zh0Bbi!xj{aVV(Z(2ofHH)T7wKDMU?aaTp(RxG|kZ73e=yd|a=#(KF`+e*U zO!7jKhrdUZYxhTBc^E=A2sMkdh-# zU}jF4Ls>a%X*my>IU{6ZR-$Om6F7p3f(i&I!bf{Q&-cFX_Z`RL$Iagy$91pkTx*?c zvDE32ZAK1brCP$Z;YrI!VmQIQl^BlSOQ#D#ve}>=wiOHUgRM=aTan4~Anf9%3sIwW z`B6Uv_a^3xGVQU;AnM{uebzz+?0E60`ORo&Jv;`H9utZcS^&Q(@?b9XY%! z!^h97DG>8SXseJC3~dd9z1aqmpVby2796Fmf&ckspe7=ddsGnhl-uVkm&QVT-qx3! zk@w^cbWV7E)d%3>eyk>obG%hsv!vtZu|niXPL`@}bE)TF5l7wT>eJi`L-IrGSG?-z zqQBK&=$qZ782cu8-hB#b6Zi63G`+dO5?X?b{~Osl|K_tO-rwTN)qnNgX(96Bq7eDh zfkz9wCe#x#VUwIo$y^G*e^q_-YO4@AiG-od6~JRgz#wUk#7W*I)1{2dc&5E{YS}F( zvG5aKm{jwBlu~gojEg`3446)<+lFglTEFd&b3DyuSx>5claB%9%^rMCD%AL{n^34R z`?tDm-)XLYv*Tq-W1$gT*z4l&d-P=|&1-Qeq=W0<>Lt-QjSh%RqM+%`@~@Tg87HN^ z;GeNMyZsLlsQ-n1=R&9D+^ZQ_T(1W}zF@Yg->?(iv~SQk8@I~Qm~j?(FKEkVmt(F2YSY!dHb*Hv91X zKi$Y9T8Kyv*uqj@Hihg?9r}+(;&o_uK04+6$%M=-$rE4DhZ*gsjK!8Ko-ipI#_ZF@ z9!NV2gG3~`h6JU$d16mM1vx3{YTnoA@{h&mVTbW%H;*|Ve|PmC*lL}tKGKWj$V*qa zD9HP@g6e1e?!LrY?!;V&s{SCIWpv3Qa+YZ?qt`Rdw|Lu?U8@;iF5@urpk zloNDP^a154I{?mxs$2tqFxCp2e&txO<8S94c;Q#e=|IKbV3%%sd_G8Pi5qTt31JU6 zuvaIlnRc%|YCvD7gzT2C!{SM|{-m1SR5r8=_#5Y~U7wgcJxmvBza?Y!g5$QAVF@T7 z42={sF6EPW2TJk#g6F5h;`2tnp!|mZ;!@+CF}>OIzuxl_#H8G7*XewRJsq?z)=1>p zr=zN``PiRnx-eCHgLN|cw3Cfo>tm%VOUj zBFa&vn;MalzY`BL&}v!BUL}`mc&VjAM_9Qfup?|t%#HC;Q8r?!Cn$E($|Gz9 z)kt=z{Z~f0qFzUS1*s_?8Szq6PTIl=VWhqmRPFh-IbEDp5ontG+8yH<$BL4K$n(R^`L@4=&}kj3AAyHvYw$ zMv>9TZ)glm>qg(pkjX9M#;wNxugCUO`tif2C9ObQatb#42X!L92zMWp&S_DyZ;Sn zxXvjo*N)*StY)%_>y&on;>)VZW&41^!}oTk}f zQT8tu+wNa;yI3|`2V{9gndQUz!fx=e7QHf{g~!xeV@8`cwqur6X@ zxMN!If1}+RL7;S+AS5ZB3$?I+<6VokZ)n0L4ze$4M^WT6G0VdR2GQB(py~-LYDblO z>nPz(^jzt-vIO=eLAf3C58x-gi1|I>frU=oR#zwh2hWSfK1YDQ89y2~3j1%2$_i5Z z%p{BoCB4`*#}o)f>;BQk%nwf|6*>|pD?;8G)af@|v|Im! z5u;Y;mEr{HHYqRimB*~8)skdZ)N+nFlrw{V0a|w!%HuYg(#itd-89N`k9qCZXEYF{NMqf!#qc(p7dbUZY@Ph zJK6GucjFTk?(t_NPo9poU49Uoc)Bvx`lI_X!ih!>4t9S_&v*D6ulBm!f&GKtWtW@q ze{iaWDi5`UK=0K2L&4jqzSiVBI77Z7Cv9bN_wOLtT1%86RSTh~+SbpNz8 zeYp9bmpTEt;JwV>NcHu|-2MN;&%+~wx^nmbV)AkZ|L-b>h?nHfH8YH_Z<3~_nM6eL ztmMxw07!E={TggIMO$L~+8K;5QZn6lE@k{5{D8esg5Tdho2Kd%`(x2k)Z-KVW$(n@ z*!2G&US$^S1lt(}RofI4hz<0Ys_!LFI=HC`)I2(lvkf3uHb;$48~E=FPCriCTp4l~ z*c@v}*bBdf5LlluInb;0;HDCMGr}~@_3~q+NlzyS{U`G>^;#36!?G>4+y4*1?UbQx zL&|+Y!zoKt7jm{Qmf#Jis$=(ZlOd=cBb=uP`J<`_MQda)&+h>BndLu?B_9}KvE=jq zS*1rfIL$h~U6B&^md^bw?pC*uey%_QFlq8#bX+Ay_D0h?O-X97EbFisc873kSE?w4XzJR)3?qNBkn{zwtadnY^`yzQIgq;}WXo=m)cn_rJx5qK$_I zFg2w07{ZSF>&}7x7%cy1wp~<+gpIYfDsa8b>5yvTq^^NZGB>_*Mk>6(ri4Ms`ww~> zzdtqrMELaxb;ha&J)N{?c*-=4p#!L7XZO4Pya7?3%Brnd8=zunD!W~KRmFeioa6d+y1@5(QZ2z7c$kJQHH8Viv7jLRPyqqPL#Q7@Warz`#C=Do-by)}tH@(LeWVVgCn(Fm#?e z9+ex)gk&Jl+caGk{EJ9VBv}~bzBr&5z4J^wx|gr3)Ulq>PKYMHY1)3{j19SjiTH1X zBceF6HJmT_oq~LFn>l$=_460bb)R#f2HO~jFBV4&Ef!lRtD4R>6~{$zs-JCm8Qx&q z-$(V;z_4ze+ONYxVg(Y5!h2rPDVEg<^#GN*xYhK3Qchy8LY5J-D~$8W=Xx-#gX|*C zO?2(=`4sX7gPswrg1b&63TBC{aB?Qo*-o3pHd-r3VA=P*mC}E%9R066I3(`fco7NN zmcH@UDEes|ic=dxLa0iZqrpxRCVWoFtgF8d5Bua7pJ@np+IE`8RYc77Oiy2dmnwV~4I9xb=?M8yId(^g#as zWEtZ~gsjXtV*UjKrdmQY+k}88P$fh9QCjx>lpsiNgtNzi} zXFr?2t0-Tq@{9hh**5q5t#mXvbVYXp7`kSZL*$L}@(kVD``SJ!zW7G#itJ6^U`2-C zS>w9p3N4J&QW1666@>l={JXRF&>U#~E2PX`GHebMrSx8cG&&k@j0wh2d)yB`=0xoK zw%QnPj0pNI-V^~&ADR^iP8K$uRfijW+wc2NeM7(aRw^nm0Nb+r9~j>n;r2nAVIqC68EBr7$v-Ao@RZKh z66EZoxNLJ%VB01Gd0PruB*dQmbEBIoBzx?iJI|03(%goBI~Zsh%M<|^Rmtlm(!=`9 zm}%^uemc+9`A#tiZ6^-EYW{s^5!hbKng1gwnXWBt%G588=?f)2@BSwvXA^n9A73=) zG$;%Mko$&WB$_KzAyADk?IWi{iCGa$*FhEpZ0G$>l-P^ILL{0q3>&cRgioSBL_ej= zviP@kXFUHxzO+-)?R{yf)NXWiJIePZ;^cY~z2wZ6dy49-=g{1EWdN&HcarlbvuGm# z_~h>wzgg^2-B(#=9K14HO9Q}BO_AKjZ#5-K1itg&WwH#?FwMjzCru{gBtry3jGpt;y?j8;Yir?Kk(oreB0^Be5LXG z(F*J*)o*PtroUVnpUzibVpBk5`BAu)^mD=Oz_JBW%jW=n zS>}Ywv5<#wLs@g4vWyvR>S{j~-lHg-JM?#)^@` z7{|s}Kj|aE5U%xMsznN^T%lvQZDvsjdtkW*q{ZJo978+DT})Kx-C3_<8T!rGZN~g+ zuIQjGce)!)SkA>vA;jW#7b`HNuc2La*ch`E68R+DL^-T4V)pNC2%`#gCb9wx911-^ zPLYCANa*B)y5Tt26xqx8Lm%$d9fxF{u8(gxt#Bc}fxDW0N|$ekbqap+=0x{i@K(K$ zu^dlx_rBS((H-Tao$o_3L&jBT6OW2#XYENJoO^VS8E=GEV%4ZpxUPj_N%uc|(2v>$ zj71mCuRNJBf7SaaSO1I$5}ie`Xg>L&!935n3{_(rV8-NZ=E$gja%XGNS3OhROQl@A^b~u8V!=D zuZ;1c60UV4k4@3o6j)^@bv`}uvs>jj@7Vnpc(Jv#s}-h9uV5wIN-wkVF42<06b?{* zv40!xR1LRWX}&4b9|_5majG|eGjgACWrKfP5rsa1!|^n6!wo&<0boqu;m?f81* zi#~1lzqbpJpRa>Jzkmg!kR}bkCWQ6~I8CQzYhP3&P|-MOC9y7K&OZr6p1VW_OBS`{ ziO=*dv^p^(v}TR|b~IyV+|`MR$gR_ldZb{y`T3hQboxBo&7jdz8Jrr}s<*L=k?Hzq zu1d1)G~AuqH}GxG5!{9FXaHpccl85kt%+zFx&Kgr^dp?KnwdZ)*@PfPVVXdoL*kEa zA*3`x0?!l&HY`N~@}0}KP4mUU7FekrCSY48Uwl!phUBRy6~VnVqt5!9Bx_r9CdBYY zQ`w?n{-1^ssOY}PjgteJE4!0zMResSd>Bb`WYyK@i7%x6*1L?cIJm_5j2r6_n? zy?ti4iEhD|v3)RO-u?Q}VzCjduYeZ!L}MQwE?e21Fa=-%Jd7y^J#GL1EVX4)T$q(3 zAl;}SXRt^%*YmWth@>2q^FET1^t7+^mT=c2eK~_-nJ8Osu0~-ov#%oPGy2t~{NL@7EXe@^uInNSQI(qbI=Hi1_-w;AEUo*0@a-Z55U-*^aMVMX>H!VzvBRk@-# z9=&qUB61AaVEwf#Ys*tY7Auj<7Ih;PLpa1RC_)YStE1^S0SnZcWzZAlV@j7mNNF zE?eE5tlW53E>`YMrrwf|#rIP!e2@h)pa0f&%-ilhO~zdVagWD%jUDH2Mz=Db`|lmC zGhzsMvG1RYNPfz3mmZN4B3CRjM?*`77d70O&v7MHY#@`$P`pJ$D?CohGfJQ%KH|hY zyi^39K2;^Z60GdKWu25exRJ3ZcYv{MjB`eEig?*-`Du!>;up!$v zLHR49prDv#cY*z7#?jA%W)lXV2m1x1x=M27qkvCT7#Pza%H!!3^m9xWC|+qk=TDej zR?y*r@+W%-_{?{X&^H9tu!E}`h`R_OkK_K&ngI)rQ3uYv1*WE+&~vDg#5LzDHlpeZ z&r-Iv(d=($5LIrr8XtT;`MMLcw)Q7JVo5V*rt0k{%FG)XfOqulb5A_CT#tr+dTOL% zf)@6<{G;M6_lTw9JgARAY+iKUukA|~c0OkUGh5q>#MAx%SQYZYc7VSnu25s+k?D^ z^%_B7HDD4DVvMYIDsHmUahc1t_a;jie=du+n~0wwwCf?g}yB#X4)v^;)q5 zxYcUyL}#v;Tjb|7ayfxpEwpp5vnFadU7@22qzxGzkeNflh&yYXeR~B7;7;;Y!C;Eo zNX(YMphj0RB>Govg#?YsX6r9SJC)^Vl#3Nb_cv>I#T0}?Slqg_caGTSLy8cpnK6rm z&x7u+g7xGm;QC!KoHBtvh=Ts1%0JZ4H41#J_kQcfv%J?{n6mk+dV1#vO_PbqWf zaVOBdggp4hjT7ds9;q3*M-E7FKY1Dr2$Q|g@=og=_Vxhj4x!>1FqbV@HlPOV{@4rf zY@;U?$o519v{B7YO0)}!F6NnPc%6^T`tNR_u)NP`RD2JArd5#-w(~QvFSMKU zD4zo5>*^1XM^Ia9ICfaHbt{%Hf8Z^H&%FSE5vQ4by%~)PlSgs9FUNe}=&D=Bp)N`S zx0w(3_oWNeT#TBc{4$#SGN#nb2k^iA>YH&pDAy>I#u9!ira13XCWh>5P-2WPP#}** z!NuX1>qNhM#)CzN0^_yBc7B-Rw@kY_v%sQjO;`P!zRxyElz%CpkPuK<6)*})H*#94bqc^X z$HL#>0{mbOOaeVp8dMir;bERY^>RmN6N;Q9NAGjR1!m1034M^@jy;!|&calZF73r+ zBeWU+f|HEx$21{Y?*^nHT6NM|=`l5k*1eb-C-|7sOgXwWFJT6i9Ju#LG7ba=O{#cc(~fj@brz^}u6=Sr6UWUv4}7NTWOs8RG0=G3k9|_pOEMi3b3P4>ww#ujficKn z5hS)9?dDm6!Ll`BO(o^~kQQv=ENEByRzDXr?hAzY7<-PJGJXgWJT$lUR)h6+PgYY^ zAe!|yDjWCECL1VG@_`}!23L#&M|=e^q<$47Q+D5_0~WS4gzyXNkDyZH$>yt(Pg~4= z!=472`$mn<;VT*7&pMPK2iSQNY!x#v*Nf z6`dv3wiwqT8!^>Xbh1y>g-2W!p`y=ZlP3eXiF}TUpiJvzkN^&7MAo1wYVt^ zyzQ2vvF2bAYjh?$UWLW=-@dQq04|;pVrNEc!2n+zhui5n&IO zbVy`WfJN+z@^|WMUck0JHPU|5eP6g2fSFikMj!X@fi}z-8yb$JG5FiN04#0M1q+K< zJ9kiYA88la>i#V*S5z2l{Z-qSH#{oF%_0^bwS47@#HIrF%b>z=s!wTny#V~ERN#rxyaSm%BHcBrFBpP5%n#TNIdb|(}y z$UPOMx_|Qf%D$@wf2#3!HaCHFDpS^veWrm~sR|ucForx~fZ(bK?j3pF0}rmTFi+c~CO-DZgLWDLt5 zD~4P9T6eks^t%0(gS4&J*zHuriNEHccFCnauEP@Zsik48qCo^1LrOpO&CB2MxqGiq z5^^!trO>Ch_pWRG*+@9j`0g=b%N_S00z-;%be5nqdx8Cda^pP2)?aG*jvlZ4VvvPW zHW%~OH7tv9fwEK*!n9NVxnng|J-->UqtsUhZBlp>kX)rk_-UNMrw05v@*d`#<8j2O zVas^y^5JO5`6Zs{QqJKb8XyB31HWl>PQergh7U=ATy@&C*HkJ@m4nN7kA&*P* zB}W2G7ZF~piF~#|JdCwe!S>xLL9oeSvpDVLnWS}Wmbt__`5MOW758WV`z`eJl2vV} z*QfC8s8f0DmjlrVsz~j zbG1Q$Yc%o?L+-oaKa}k#A|h)WvwY|B%dW%cwLJW;sT27Lau2D_hn<{<8s zjKm7Nj52*rBJ-DO*}$9O9jT>Gb(q#QM27mrH&@g1iTw2d}FSPH9`aE)C>t z57urI!6M6s-LQPMKXB+P1e-gA>*EDiO0E;tp%V($4og4A^So57)x|1u)9h3dkyYz@ zW8{(IKR{L*Vih&CFfz2G$@_@lAji{d7U1*!LAez0SD^fy&o)Jg?Ehx}yHZnNi+=-$b3W`iSIfRxANvsI^bOo!c)cGr{(uePjn0UMa+<%! zqh|4@BuoIRUu)5oFxC9o-ICBuJWHU=>lM57g%T*e(e3rxS=G;GAdkER03ki145Ir~<{fWhZH^VY3Z(dKEdHxCz@>jr<;`QSOb?N)jMnT=M0 zL3R^?gRo85$2r50&e_%(@6NogIm6gaNNa(gKC-<`FEUVJE+QJNkRI{NE2j%wwXFh9 zbt6i2t~R@nHid|7kGer_l+7ki^`C9H6~uMRwWu-Yab`y|I^Yv(A&u!_b!Vr_69 zVOMNue-ti@H9%V%o;dbH@Jlpm(lAn1HwYzBoF4F0Y(U0B(hMSp^>ap< zFY&5*{5f;#Du_ePunmETDG2e#p~@b6JjtF+kZABAv$SZGfIVV9HhCg)t3%I~Bqj`^ z4+JOpXh-6bP6q8vSV3Y(u-ZkCR%BRzVdqMh3l1CD3{%dW!E`CZ^)U!7|=#jD=!tmE6qFTOMMNq+ym?-t*P>Fqnw%rq{*`Dx7X!6PHNUb%VB zjC4lU@qGZRr#5E~zI zm&X})Bh4{e{gPbQt`d*eb&KetZw+Y+;kqB<{-WGO=*x8-O9!b7>6`s3@K{p4nH&v2 zaf;Q7+#knfQ7#2y>W_v;n-7v+af4u?YI0rsQqaD(EDC0+G9etWc96NiprMoA3tlYa z>$uD@je4AZ3!fQ@JA;NG&BT}UyN$$sw}bzJBSF4A#f(TBi=W@Y;%nKBD$A_v2GI$` z5-I-cCD#@dhe#uCfVCzYwZF8@e&Nr~7u_@{UX$E&5iDL=%vbl!aJEQTI<+ zI%xG*`#8xay$7vOl|j&cE^HS+d@qCj>EQY2tXD;YQ)8+z`dd^QY!wXpMf0b3$Y~PKv(d$>%z3oB-qb z$p(hbi=>p3L9|tbs!pX)A!L+}URg_+(?&okG=T*)=hS@*EeL#JU+o9iX~v8t8+G;%Qrvpar-sYe*RMUC+?6UaR_G0dq<#h*M(QVj!ggO@ z@v}Gauvg1gyvcw4#ER<+1;rh*2Poc#B|3vOekbDd*!uNo(@RXHt;wGBvw0l;CFhtWd2khs_X+>LAvg*0}Jf zJNTM)f2X4QF+Y1V(r8vFKc@B_FksaQ5ufd!Z>}})HXnDxN~5tne>5zKvk*I=%3N8i z@&Vg9tZJpx8D3MT9e~LEI+WZzR&&W?j3EoNtI+YiWsVBBPI})FQc1X3T_X_Q>1{-R zTWq*K+*n-PFmX&H_?+CBb{QcC4#yKlU`8PAj}Zxi^HWFG$GX#XFlizi zF`p>FnQKUr?!^uptgk*__eEQ)n#C5$e`OLLI)s%&#DG9Cz3@EVs0hf3Jy?zSoIP}o zURFS^`W+o$NkP2`d>0XC4i5dKFH89d6@-i@xN~|NMhu8+2AfX2JA@VH`pWaw2j#n$ z6r%F_fY{g(S*7Ac}wUk|5LG_WU!3Iy<@U*^AyNajj*R0-uDmX@|G=Y-awVj24B+{a-sOabr_$y(>-fTN+i0C;2_XD==-~4L?xshu&^XRgMQyXbv_P11rnaK| z(1Ryk@>@Uu0*?L_>Q$=YRT>(0nqQ&%#}%1^`vTS%JrsV#yc9RM&deTQ{ve8GGkh;1 ztl#u6D+2s@KsLjncE0Lk&US0+V@{f{BkYQ7M@Ap!w^a;#<>M;|J!^}FfN$bd(_c5K zCFhg#i2ND@#d*ZCrdeH}?vhVlU6Y@Yi&7IKvZW9|6r3@Q3Jw|w&djax!0j+x$)5F{ zKMf3ZGIQ{{oWz3nI+?edS%P-q_3iw^^f*40Rnsb3E^mGXi5tGj>+PpZgzPIhHmu;j@ECb49GnPoI$!*HFZ9Fy zCTC&UVu?Ktbpb!%A9}x;>OlVK4<>01=4uTRwQvIxr1}#h&dts>4usg&K|BGK8qQgz z(=|aTpyGZV0e(ATgqe5m8ji(G0^|aJWfoAr$kR%!1_!Mcr|=N8;QEwS0SilXQT75jVEair1yPP(rn zS8hz_L0oGLDhPs@acWDp*-Z(~jHK;MxD$xfK_glQB>KKAgjPd_vZihNxCUQwQFP~} zjON`RWi<%wuuR(DZ(HW;l~?runs;W5);L?vO8Y%&nLX=qlS&4)eFEg~#~NiDcaK4! zS8C0R^vwra%Wyx{Ln*lu(o1FDgZ18nlqDQ7ScBf?t^Jx=OH;oLfktR@_>UHe{3iCs^qrXDb; zP{R>T<|uZ>+W5hJ{wNGkj81&Qg3SlTEQDEftg=F1Sc~C^An@H`QZA3k%_Tc(jI4n{Y%1bC!j%+7zUkDnA6k< z(z5~W>?_kMT-M_(yMp$aE#i?gQK2)j9p3eGwj=tKE=y7;D{jJ|y#h@fCdy#vG{B@0 zJiKX(bxS8%c58vFIPR^3VDI)VH`$-$h4ii1ND-}%N(O91&hRnwujI_-FB$Bbw)&p( zYWSrLP+Uaopssi6%L`TK&RKx9f2D_kt1ZCK&iy)d>hIFqFMs*Pe+~mDz)EPDq;Nwt zN;jq zF?<9QwRL{<%e{^6I!?9CVEb0gL!Q*+>`2+B`F-bcK20 zhRIF!%|&m(i_h0S>EU`hR3}M^r|BnvW{bVG^uwKIi)Vx3cSH>vb>-Y!F#VsS8CNV| zFL|@g7RQusH92lF)@1=N7G*TQNV)Q)POO_0xp&G4H>4d<-(?Xb7o*Drp-=SQ#|nDH zN1R_PSwC87U(MrtsM+Fd@*V%I^*a{t;euf|439Ej?uA&qKhM`*zU}H9_2ERobTHrr z@x*d`*T@fj=>g39iGmVO4-1&Rl%46~rujDi;L|J7EXxw{=59&x)sk+kc%)7l_2M(b zB{1N{bvF(BYoIL)`2Zk}idxUkQ}{G=#!|e}NfeC`x%H>j!W39z(R+hGwHEfeS#DHK zvE=>-Y)nXW<{+tNdq2HVS?*KnnHj;!6T(wb^7@%R_~DIyvqi2B$UI4qzHbI)4LQqN z^QB6$1_2pThNm*5GzXpj_&lI1s)>r?=)pU)=1~B6CY@Av;w@MOQe;`!?wgyY5Spgd zn!kcuoBiBh*SeFUE~vV)kYlijI>UlBn5g2UPY5$)j@0c8pDy8?#BR`iyzG%ivA1!D z+E3h-5I($eXDf8FGt2$l`yAfXhL2FyLdjjFmyctgeQ&62OM8=~Ya8}wWbIu6zQ?+D zOu$yew)=d%aG0XWzHqT>cgfkHo=nZk?pAXtaFO!PoFPX)_h{A(hMjjx-1p&MY*43o2ZW0Ic8Dtx-T^+ zBAcJ+-ZIH_I1aqpTz@X}nZ9Z1uO&6b3&YLAZi-PApCs(Zfv-0ijqdcj8?xl>J|;_D zxn|4cM3>Ww-S>)TQ?6tB_PuV@NQ*oD+#QZf)OFd**gM)T0jmTFECkjKDQrbbW`U}Atr(?K z$*XAyv(onFf{FxE0k|iODWDbfg2%^(<2A2Fa^A79Y!2|lH1Aj|9{l>r=Re?5H&#o9 zW%-r?XTCS38_Y=Yr?!Lz_JaclkP(A95zGbcsM0RI7LHDaAzU62@G<4qi-;AAt}2U~ zNxfD?FU`iRy2|*^_C8-djaP~8sOjpMuBp)rUr7uaObuGcSQ&%k4)J@!sabJ?B-&fB zU;tGU8|~a$;SBlNR1(phltowiGthX6f%e;PpCY$A?X_$DF01BY`lII3BDxC2yHt{% zV%t(xS1E^8W8ZneKU#wh#%9`wXEs*r1otKz(5G@uAVu*INfRPuZPu}9f7`-%k4la; z)}z{$u?9C;`i%z0PIH5rZD1LjpTl{Q}_%Q))4FZj(cQK~E|jIXON1^iqB z^25wyeN&a;x#2xO(Kz_Eq40yp+C&2#QV8p-+SbAM>KxFTo8c|v6D*dz$m(7?qHjM2 zhUgGTIFLg_mtahdnl|>-h*WI(14O0;csi7C$wZF##L*TJ9}U7xEY?DFVFT{zsM=f_8JvoMv{9B@=Z#_qrpcu zfm^HKShlnvq|Y0h$E87Cym_D=8g7AlNlCkV zbiZ@C)9Oeq=O7W4~P0CVNLJkBf}EJJG+a3WgQR05L1;P?R*nSDpDR? zY<1YvC&>8^*3`xiyAt)5IaTfK>y+aX(q4+h6C5#9O*dPN3{MRtu$(z3^Of7mDtptJWD zUQumQNw0LHoM9D33KdjJUe4Piz(|}@W}#L;x}&Bro1`080smj35|db_F>AG1tG)vJZ@a#YPZtXlo{LX z=tKVD9@WKwLcZZM>5XbvGBKGLy2h2v50`B}_eR$CeGoEa3G#<$wE#D!&$O#t zQ9b@GNvP}G8!_#~)eno4!lgNiWm?3itFQmgzBlK{`|eW5z2msA`{y@GOk*2{x0<1C z$4V!R4|QQb_DOo(JfHk3%=-M`ogIq@4R^+GHXC25^2>1^tnzz-JDOrVK%0~-{akDr zfcUJ@sCZ>f#?(AzZ2*|X)wIyr`s^(~{OIsZrU`~)si61Xkw)n;eYFsjqMZ<_A;o8V zO&zFoxcNt$(v>_JldE@)N7{uRu>OGeGtE;z!TzM8O!vV=lk1fu`Wz<<6GAmR`QuoKdW>eK)Tx zORQ8%b3k2~opeq?b@_cV)^^z3=ADGk{Ed{5s<`_2TgkKMO_pXg(PljcE9!tNQC-=s z3Mx;}dH6AfN|{Feq$%c%*`3RA$5*);#ZWwi69yusrt7yYViW0ISzz9nRyFkTay!qM z{q*A}ejH((7*@Cn^BCQ~N_fKktoU!+Mps`R3DKoKFGsUGusK943G)EvvFpC&=R|lDbAoA`(eTq)pvw*} zmceO))Vo9f6R{YUa=}Qj%hh)Fb#W5)!uFlB?e-4%pD;J4IQy1*tkG~^Nj#gmn_9iv zc)@O-UA^uw#1_j(}v9Gi6W7st#RPhHXKy_Id_zuxDp zS$Q?vd5=@yyA$(wWW7M#gnG{UP-nf9eU9<^kM?4jx(YObqkPwZNJn=3?nP+c;gsse zhotu8G*-z!R)n;E$)-b(+IlzDGE;AZWJd(bAMs;eVxenCL%otS<#(45@1^inANqKKZ>*JncEmpb+On>8{cemw3T z8gYv%E70o91I;nsB^R&xxl=~XN~+PoXi^i_jM7ez*|u*$m@U&RMqO@ptxTJv4^5mw0T5!PFPK^{ab-x|8^+JeH+_RM z>f_-6iKQv^SjvM7Lvgjy>C~x7GGOl~(Bt4lX)sLN+9sp(WNE|Z0X1F-QWl3;cn1nf z_Jz6jY5z3`|1k3xaOy8={yo-BDXtEimp#j2^G!b%i@tK%QNG>TyJ^LBU_5{-^eI_e z*GNdxSl)7b9s$T-+bEaZxs!0a+A()c6RSX&U)FN^Ay4NCGY zCi}x-co&lS9((fq6<%2DWtMRs)mRq{9p5+Z-xPy063cm`yx)<*FWTEIU}?RLxq>-c zzl3F6E{uOzZ@jY!9pEq`FDB-|yHT%SlJAidUWI@Tz^HQy5sKYe) ztWBNp#D%8VW|_TBr=f@GPHk^?0~o*}=v~!IH2n7>-4L6MOL`vK+cQ33PT@BuEwaT` zaCjVK_IbbwX2st+!Ul&@XiI>-o>}&YM%*)oDs+EFx21<~ZUF?I^i@Ex%Q7Rj_k;F{ zqCGNto9bq}^cYgWTdKR>W?7#R5DRCsU5xhWQN~5I8tkEFy)UiYNQ&wlTPvHTWzNzP z5p-U9yN@)PmKhaEMnY3m1zwwJN8+ zT3RbKa|dN>7;?u$N<$;ViIB_AH2%X~zrHn-P$Pmd_EafW6SU5)Q}7LWiMPq8DXc{O zQqn(LY!_zO%UwZVqlC^^jVOPq0FEy3p^L@&LznrA(CbZ2M0Gr!EQKv9`=Q&k3@bJu z%^KTGkoVY6SZ$Y^(kPv)d|kc~uD|qie1oU{pPt?Ws)^@&;6+qWsfyBzSU^Cj(g~<2 zh%^C}PAJl(_nJfm0i_DkI|zt0=`{hRgx(?41Zkm%5JG^2kQT3AfNow*a6X08UijYQ3Ob#dny9IKs)g0F%39q5hVPh^1Rq z%Jfx}>l%KsA2ULYI*`5r&0DUpo`j|;QfkP$8y>o+((IPHh-53IWTPoT`)V+#-MKQu zGu~^qbjMLARrHB$!v`VJ6aq8%KQt>UhaFV&u$#~x7t9%t7laWY2NWprSt#&@Z*PDg zjN)fPAy+>mb;@kAtP%w-%Fjr@LHuM!4t3H?n;~Xwk-)Qx1TxzS z+}m0&T0lSC_TZFlONtp1d7`zWmch5GPMRumibgi`u9RvQP#u)9GAqFj4$*l~fkSG- zo9Mid8@dPD(RmQYm0&W4Rd_9nlY3?JZ78!@PyN?ATi57hvfhB2qFT2^-`?k^tQ6`x zzQXa0G$FPb5hMs!3}aScT`@kircI4HnMRDU`KV{FsLrbODDg63T?Fj3qJjF)s;bMo zctmdJ$vYkO#<7Sce)Wh>~+qpy=8Amlt&Z@;_Pu5dI2$dE)o9+C#rQRxia-m6` zRHA~k;8|%}!=_?Tg+&n z!s^*OL2FSUpPZ{+?x*Nfb$4(d?z&Sh`eiiktBi-iPg5({fEYYfYV8{}sJQCq=0mkh z4SlG~whuiy2JCF283xL3C)`>Kf3|J)vXWuEaV&?Gql)R=c-HDgw`m0B>t#CG!76Wwi2~`9mhHjKuxY`nlDuD7lLmFcsu8v64i+z_hVlZ4%RvZ}-%ryUGgRiK z;nfqh=|+g#&eX=~{8`O$3oGK^Hzn_iK_frSuo1k~r=WM3QdWdu#D zR~Lt1YNX2P)k?JjYHq9_1`K0`QUY>~nyV66V06}jC0pIE{u);KTaHG#AAVWs4%e2b z*?L50Wk?K5f5c?XRht@*RcG*KWzV5L??YhKPp@Gg55dm^QPH3cp!)B-m^UM81+Rw|AD`8NWkg>6-f~~cHbUb z0x!vgC$xn$w&B~#U$B@F@)*rSv2FLLLY(-9o(vNFF_pjwQ9cFn6&9%!= z%|OVdVa*B1k2>EUt?_GcgBi~C41;aSS5-whl||;C(%_qAQlT=D1bBJ?Fqohn1Q8jj zaTqs&@eERcfY{7ss8_<1jszcvIGM=~aR%JlPL?29NMH!zQ6Zb_u$lu}#p9buCyzWp zJLeuynXpo!K4;o$y(tLWssEiv!kI6U1HF?lLfFMMjwj{)Bc%Q_w_0Sz3MtoiRAlKk zT*Np1S3>Ep{x>qtzi`&S6eZ&}CIdm4R@seoN7+>)lUwpjLpkmnBa#@$o3sKW3j8Y= zB>i4T9f9ga_G40~b%g3gW|iARtUK{;R8%#0uUkKc217hh82m6VGOGx)v58X@`vdVA z{?@Xwym%&w-Z)&eaO`J65({W5aN)#m7Vj){Xdc@2KO#m(0R6=oCgTg^9u6oOHI6x5 zAse`XD;NkF0$Z?;aE?H57#cF6sip{l)FMZbr>5c^=}R37F5qtq5@&t|vK#|81v2&p zr_Ftom`&KrQHcrTm>i#&^_p3LTMdCDi$}YnErKIWfh8^7Ks$R>dx;};`@DE0x_HLy zLuGNPI;p$`?;^X22R20n&KY^CS(Jzg>;db2NhW^&DLX`>8Zo@$YOkS`F=- zhC+jCtXMpjiL*69p5D3Gl-&NRX+KR!mk|eE#W!Np*KmjwNa+_K~DwFeGT- z!*L$9@fY>sv`N($BsUp@g)i0A59bm7*EdUk;jk0aF>EAtZb)Xo#ew*R?v5w)(;IFW_H--q`U>pPMtwej^iS;kZX*cmKKjZ94<4wrt(yB51FaBmxc=g5~OxOYlmj;-0)? z=+Yug55ChLx`dR^KL77?auC@z$Ha~NPSE9tmF>&p7auvEKSEDEQf(_9X<7rBw>Rzi zWQkK+?vhH?C^9IFf(IsgE8f%>?esEogOf8U;G6|NE`N_gxH4gPnH{`(NrRtlTkjS+z zB&1o!J#y`?hynAY`r&x&gRm6AQxnney#meLNeK`}FMujbz_Y_Iwds6G`mpGk+3QLA zpik$5r$=3^gOkS)vk`sZm3~KWTXFZ#YjtmbGs4vmTdr|N+-F_IRWHk!5QAKVHd6xG z)&m7AUUDn$&-3?fdTKkoE(?_SFE_!_VP@r-kQ0 z3&!A%=kT=M^Q300cUfs-w(nlTyw&Dyjb6fD6&Y_O-{ILzf2JccwI_>(mPCTPgn*;e zIBBOmAC4n4q2repo=Mx^kG{YDB~j;o`RPID z*C%_W1V0|3jp>h(_Z9~i^DhV)Iq`1_)z2)trs*)fbE%d zIka}>Z)RdBM)ruV5+!k^roGyK&M9X&cn*{YrFX(Vbw40R1r+hW`}{uM_-QpSDF+7_ z6Bgc69k?b1dR}gEb}x~jdO7aq=tZBZUoWT4#~*g!<9Vc`ss+oD%?ss zof6A~^-JuNrhnhL$MF4AJ40XTM+=5uHcv4eYwOP>p74Gak9=>_dTS&3ulf`Co$G};=XW0jp@&i8|x$t6jD)$Cq@v5^tN$ZB4IwAqe_Xf+=PxGGD{xx6zcCE|v z(LFKti?mEtc;-P`qk*7uX6@(0l&`Lep&q#8vSrwEri)V z`l(0Z{%kWdeIj(vWqT>}xT2rFA+Rx(drIj>5|uM1wk1~F9Z^d8BjC4bWX$W=^Tt>Q zf8+|lSHi>b!x3kPWe~tUp0SDx0G_~-0!QxPk^+$0_{F@~EBzXTCwn~S+(~h#g*8Fb z_wwbsQB;iN(0bBGa4r^}35tsooXd9147glrw)u}esDSyA#$U5XyW@vieJ#aS9wP8m z(zGGKT>Nuzyc^;>iJ(G%3ckVYs&4<}&)GzL@lek2%c)#yxld;97Y`kOfwY_|iU~r##rVq#w`O)N zajzIfL)*-J5tB=JvxK(WaDJ7gRqf4h{8<#1%*D&xG&D39{_jkD6c!0&QNiC9xVTBJ zp&2m|Z~6a9$|U*U#m$Qv)axrWwEz1BO*;5>CJ+oZ_j-C)XJJt-lu*I_VUx`h_qWZjfS^^qVun?x4jlKxp&L$ z@v}4+e0^j2ws+afWq()(3bX4mngb;$_A4q!WUGO92p}0$F4Pe-hXdghh`xZOY5Pbq zpj4M-)#NJUgZ?P~rf5pTWI;*4FDwPsqb}rtL#3qA^Af+0EOT z;BKFW6^|D=%ysI1!{44gDw#cMgD&FpU*x@L>hX;c+yo`ET$yl~Ta_~-NB6w=#q9A{ zw#oh&8G%_3a#9ApZb4A4|Yl|uM+gr7NUDDex zj{c?+ia6HscObNZH%x%~T=--n^a=s^n^k4>7$2WCe8?T$Y94qNBUOJj;ibUYe zSuGa+UB+isyRtuF8N9O7#Cc^$7;*Y5Hu$>t;-YZu~ue5sKW2Lc@>C;lWk(T_=AwP^xMkpDkHc) zfmoNWHP*Y3LssIq>zkviC+Batriw{e>pvG>u^(LuzOofA{L?PvuDw(2(~Qtuwn==< zw8&?#Yiyl>t+VO9h*COq-kaBXmOalG^}|kLoR_z(d;MNu^Jn$19)Z7)S08!(&T36| zI-dRVOLcO(LCRfBiTva<*YbsfH*Y1j4Le{-1`d!JH>)$Op$yglPPs+w@bA^E3H*Y2 z54kM^bG}D*o`JDRG|**Bh%h9_VVdYKjJOP4is?{%K<`R#t45>B8p=AL@N#SLVX7!E z&t_$Bo_WQav#V~Zz&U&fC~J_#s}_rk-RX1@Y`R!JjWaj6@$T1IrHjw`Oab_eBwXJD zmcR#o!S3&WP5XOV98Ym!Zo6x>JtVO=xAy`rvzO~pNHI6M(cK{-b{)=%5ssI*+ExU% zpVqy-XP@$So3Z8XGEVubf>r=qb9`?|+tb|zyhN)JW)Sn_~v;~Bv13OIE394KtHU7zMKuZ<)b8mP!leT<7diL$$u zdO5iKX`U6kg4+0qB5hplPJrtdKel$&z}&&CQ1Y-XS1#&Hr|A8ri#F%;arS>s7cBql z;+Hh5U2-*>gx|b&(Ss05(r#KJ`1{WFLER99a<>}E^b2d=y&YCDom%mxJDMzB?X_1C za<<3zi0aKV^SG42_}IL6na4d29!{&c5UDBsgVv-xV1?SkG`{&x7F5K_jCFIkTc3ej zVWW7T@;A`g7%YJ3tH}v;9(9+nhik{$*^-~4owMF5%GKB%)kvd^Hb^nu5{m&o-nZdL ztidR~<^HUrI3j(TO?l4KXmICx7! z;=$@{AHETH>bH?*CLpm6($8O|+Nm7DWs_E!Pv@|Pn|WsI=-S(;jv)IliDd1SuXjHd zrSMLw^H#dXGaqpdRH5!9L(VHBvyDPkRzJR;31*Zcw%g4cbhM*6W~xm$&vvWM)(fbM zGXPw+O7Ul+j$*<}2|JOyU^Nh*_P)b8l@hb{f?Tki{tcCJL+=yhwR+9S zcI~yVYp2BN8Ps|Lb(m3D6@^N_vR-pp&eXrH96UMgw|Q2!GZ0ZVO0yPb83?Y_5VjHx z095@q0&3UC329#?8?=apXyw_Dx~0&250tHbrH_-V<4^-Urwu)I*C_O0=Jq0*dXV@7 zv}sDmMet9tQ@M=?D%A=s%Cs#%V}W#tBlz*Ogddarv_9;Xl9mnd;HIYmPyXKb{A?{z zV1qj0(ZnlSLXJ@-{b}2^Ah3AqKPrHiek89RL-j^?J>{En?}7e`C7&ZFw5DSpt!6Av(sqRsp^dMj!-qEc^_ zVkqhH)S72oko`f{teyuvf*EK{c0fy{UkqCa%`L9qmr zq}r!3p?a2#(FC`5gHnKQT6;Ec#tMNQ-#2S#egN*uyhhWA`WHWeR-nvE;5U#mtmDml zoM9etewu2zOITVUgkT0J1w%2sdBz&!B*XF0Noq97t#0kg7YZHqVpzkw@DGr*bpdW_ zek*cPYd7wOqYtC}^@jvgvg7+}M>*hNrK($*6c^aO`zv}%gHY!Z8607ssH-KoY7A{^%p zw(IhxX;y&arqy;sFR!bpNmTI8vJS?%Ynu&GL|pbJHdfc`I(mV-mg@3a}Cl z0aVpNoJZXx?5p8g5K*GMLg_3=-_WESH`^UKHd-S2xxlIZs@=6h1`C7is1LVYo)38L z@K{jBI0Y#q;wfSpbJ(Q%QIn3@@@9hwxGv*B`s^n(%2~qsrGS}3`@Ovv z7}INr(UP0_5{bk+&hu8G?Iacv(BZ@6_{p#PP5gJG?DpJ~$<+()eySr`hPe(&6ra3z0oxy?M((#RQ18C|?Fs2ma^&yn5`!qI6lbdHk3Cqdnsj(3j@k4Z_pTBh%l&P8H$ zgF6PSFB~4XGHRG?3#+Ev{pnw>vEBpP=Ie7ZSoVV1{s0~nX|ChiW6K^8GFBSmJ%{gF zbbPI}|BTY3>_!srDDGhL9x5Kh-_u$=Fg zJcrv9Ye|T(_mx8~wjmiUS4l2}v?6_y8vU`4PrOZ#VMn<1ws3nh6MhmaX7^{7^oCu* zShl4z(yl<7DDy`fL@|U@8klX`>%~yzyWQFn=f{TB+ZuOaLa1f*#Ph(y({;3}mv{CW zbC@cR3NS^A;~@oZwLz#hHp#XfAa*4FziO$Ea8qBJ451tB-2Vv_tA2OEhNn_M;gRf3`+t>jj zwAroAM?u6=#AK|tL#w_2Q%Iu{{p45`%GifKa?@-R{ru%1@JjUw-_u7_T@*gxAUS52 z{@QlQq@#VuL-t$Au%{6^K5&pUrfw5h~hqcatu>@LLX4M9~}1Y%7+v_ za{32-yUpOfmDe&Br+_Mg|J3xcL5iaRqzv_J6Zi*o`l+^qY4k`dgsf%?rVT1JZHJdY ztxwN?7By_0752oz$SDiw=Uyt0tbe%7x>UXu+dos0xHO8b_`TFi*D%1|bMXT4$iQ>& zpV7YM(cY)p`cZw+oOaXx34VD~ix_V?T7(GCc!E0FEJo&$+_F{2!pcP_fzlR#%bnJN zm7-=3<8oic4gO+a=?Fo7*+p07BA*x+GT zGdk~Ec?ghL_hyQ$;0tI?DxWc!8NSN~Ss;Wq@^5-p_V{C0?x z(GvZRK)K<*%I_22e~MQ0p}8kh=1b>XRRbYiCk};JP;C3?Y6XAy($k3Csenm{h&Wo2ySXk+9o&0lfqk;K$Ic+7Mcjdd!a3h$PZ9_H2N7Y_}O3Acrux7STSt?JA9%$#YNR~y zvb}H-poV#!UCFlL)KlaRc(W!Qt+%PNp*5%-nqvvM?MI65K#5b>O86-XmaeL+c`w$j z4nP-BJN8i_!|$+O)5a#b%&M#^vc)d04R&c}>&nYfoeA_?S};BBgG3h~`5d6uQ&Vq- zkX~JlbZ9|X%;8@VTr=$xdDP5_Z!-am5-tz5H?1nwNjjmzJb1R00ShN)J0C~Qxnn6+p3Yk}0{C_> zfk7MK0}MMn)G=$f2DxKH{D~eA(2+(a`^KN9!=(i9R8!JkW0>Mba&5Tk*m}8C-ej^A zkQ|7CJOZN>T(h{ULYIEPgLPI-5?YT!YP|TV?joMq!okubID5%sGaKA!p97OKA|*=G zvPfUMYJ4YX)nImNa7C)C85!jT)qggF2v(Y>vu}*cddt0V312Apw9U=B@oGttr9y_A z`kMaFMz3I~Ti>i8SCRYG-k(`_?WTsAVhx&pN{PbRbds?V?b68kvnhxtL<-j_TqXUO zMN17#*EY{;D$QE~-tRl&W!N#;jaHO@Qj(L4e$S0oezB1)jH}&HScb{M|Wwv{0WJt%-7XjSV~g}2;xW#7WGhPfv?`cEy} zpJ(`FOyxc0$sY;Q-A>3Nwdl?Rs7}E`lk&@?w5JH4Y#%1H!ctusNoE@xNTE4KX?ZEpi2Ybb@_wE$V_WJy$Nrdx_mftkG zsL){jY%m9IrKaC=48r1g{Es7_G0x`W*?on)A&>Tpyj|WgDa)L-@ybohi)j00lObsQ zM&^tWu3kFcEUCuWQA-l2ZJFzW%ziXDIA3m5udj(@Q;zhplOCM*65>kMQbN0Dz-zeh z6*XLlYNsZqp_)0-MLQ_?{%LT>hyvR_!r66HFJRRZRHY&oGtx!DvQEj6NV#416sw?lgqzkP^$mp!N$d#!8^u}Ns`@$e5 zdup`?P#xNb7}FzW%6RDx5r2yW421w(XZhCv0KJqtWcPv%@+86s_Rl00N8JMp;I&gc zTt*RgrX^V3gnY0L!cM%z%R-QRM=l-!{{gS5wcNs3%e&5oa_T00~TgXu>Vk*?Pf;e{0v@WQO`)R%|+F}V>n4u54U%dt)~ z1P>A~=~|S{lbwcb&dE*Q7X3Q-o2oCq!xv1^j;3&uy$>5Q=1RShmQbyi4X&cH|@c`Rl{nCYJ_kPq;3d zntr(AsAw!hT+;uoFn6MG_P#cYMf>R~PCO7w*5%8Cz7mD;b{}%BQLSSQkEi zh?H%J_q&5s<5QQ3lX{GAKgp2Ow_Vc4d||buo;lzFWYmEDT!r8&HAu++`e`;)V4pIW2if8mez^{=6RHHAt7z#7q!o?`ZG2=k?gWcRUyt85CPu#?dobKZ$)j zX^W*s>N8VII+IK-8It?m`@_z8L*`w9)y?uTJ-Db&OwYv7;Md}HMVZtR-u+@nrB&zc z7ud&pzAD4@vm|9)W=zcj8_?s)nG%~vp8Un7uO8A`7Jf#Fny~ABNz%4bCohEf!YAWv zZsH3~zWOVr+RoqqnHJxbQMxKpB2|(kN0wtt=oyvXGRgLLMNP%b%kTLT9n2oGJLbBh zbnJN0=kb+dOqU5}aP$;U3*sL)+obJYcF;elyNZMUhPVgwiIA)?*eEitTYe?Y@n3uF zjtCC<8bQ#6K;^lBj=Yj~K}O&Od0v zSmnnNF;NKAMc2pUHM9|&0b8U`6khlCfDK9H#*qU4Awg`dyc916QywK+0^Iv;@2wRV z_orw7Jrgy{=LL@=L+1e($bwb4D>6z#$)Qkrpl|Q{yz(MCM$Omduo>H+t`j$ecgUjH z82efac_6x4YoeH0U+i4?moDfnUqI>Pj{nHJ`Sf-o`ZQ#3V$Jlc{+Z%H8#TS&V@>NE z-4pX=OX2xnluxZth;N;8JEoP`yM^k zZjEw}AVC_~L@{{EDT)jN2 zDB z9PIPpFHU;G&&sam6Uie^O^9wI?qcvq_svy7M?N(cgvOAO%2n0CYt5rXhmuK61PCuE z68iWW7uyJ&WZ%hdJYZ7c{Z^5w;9N^&NZteqY4P+y9y|jjCC7` z{@DqrjP`UmK&^Q+6bQTimM^RSzqLW=1Rlec_VstJ0ew2`)0&S3#S+4@hpL60!C=66 z9U8GC_drZB>ZFnIY+&-smKKd`g1iHO$Ks3oa#&q^^bH<$eC8mSKnkyub$K5Zaq)+>P) z&TWO-KI<@gB*6Mxzxsk6KNptF+%7xja#!L9{&lL|VpGM8SS~ehrgfgc0IjhwM?maJ z(1nAUCj>;%(QCR$OEvN}dQ8)e65f(h(_So*hWg+xkspnv(U#p>X zNWUm^3Xb?Lh|`_CtxqekIoE&gXIkCSOOPawZ0Nf4?zi@ygyh=(xTvaow%T?stF(VX z|G46xts4e%!?YUXUrN$173D8vOsl=CI|0SAn4W0FO6tIwq$ zdFaN;Eh=k)_y*!DOQA#ecA)AGN3ec%-Qb*nDiLJbsP_@K#OPgOn|vEve4 z_80Gdl*)9hm3gtH*s=ORa76dJLuSvV@6tPUe}5o!jkAtgMIgq;Q+k0GcZq_CjP~)2P z_ZW(M6spy7D|Zq_3%KHQLLW~5M}3*AXoD!=zwU0Jayj%#;{M!V@{adm+*pFriK?j0 zfK71b`qG};r}Z`yX>smZXFXDP;z|I0Fng5uUF>0l(3XpOeDOCsRLUKs;m3;Aue}Y3 zLVmB2(d0vkflqwZ{2!zcwy+-Fg;erGwth@z?QiammVWEb(#pTQx^yltA%=kFboIHd za>;-+IH6>6J2CKdhNg+eOih{IFO`WKG=LhdIc1&N>=9JRiE(+GU2oSzm+(PFGI6C<> z?&dfAtcGvA+k2hVCORm> z^9_Mn7cYyH=I6ZwO}Ee0V(Yu^>CYpKUQr6LZU=hxIY)uYH4E3s*9Tr!HwpQ>CaZmh z$%HHrd7`@C?Pt-}&J4A%Xoa+3F{|(FyQEO);mshH+2++LnE#i`#hPsNiShS!IOm|H z>v6aa^Lk}fdq&1Cgdww!JPW^;j$#aan1b#Q^ehP{tUG>0RgliJ{*=J5h;hUvcR@$m&Xk|EjLa%ztSSQJ zW`bt|qwK8X{S=U?C}HhIf^%{#NJ6$>AqxI^)ds)}uKbb^j_d7&r|(MrrlKltm`Tw+ zL#j*=%yYLKb3LyPruo9o%90u0uHugFZ8x=BB1yR;n;XALxhbSB{fHms?&6QFarrA- zjChkdO%ZU)cluKjH`M4dHuDFT1 zMMt-BTZ4~|nJ&6jLMMdt=EuaVG?fF_^ZwVSwY9CawKbjX_1pbdN=!K)etgVvk^Xgj zzvP@`&u`4x3WdVO$;cG8J0;6Vq2#p%y6?A8BRg92y{4hb{lOAIZNoAVpw}(Q`Wde9 zaEECxWAr0?g%R}X|@@e$1IDWpl#JT#^R9!t*^iY{S$67_| zQa1Ox?Sa0|bJI6kjC(5F6$Z&RakANL08~y}3BxU6+2&LFd)qE+|NS=$e>(Grf5(Jf zzmieU6(A+~l#>|7$U^5r$3(|P_mqx~j@d2p{0UcLB7gXe@CVPGI4;Vt*1BM6`{~`?y|9`~Fe{H)Z4(mOWV*T79_S2^8Zlbsa8^nM2 zNnve^P&ex;b8(nZpdiQ8iH7Pm7k1TzQlGZXzmNB_w-kLG%$Bn`%x>;69~3Pu)0S5J z5%yKQx4069ide|l`0h2XeKNG~G532tE3-4{R>)$H!H{g4h1cCT1LbdG2h8RJM~WGq z-2zFe&zOnhW=%J4L03vgK8s)~GyvZ<<+jD__^LDSi1JVGeGy^HP0{b}C~JH(`jrLA zb#?mLErRz#IWW;yG_BYj(JLoIQNwm3*G>mid`h1lpJfbpXs74}fTXj ziG#7dIRMa6{wZ4v03fDbXw;iJIl8(50KK2^- z0FaQN&p7}a1jw}itMOg^-;dsTAsL~_0bc-+pY;DLpSFNpdB6PBPy7AogBFtUQ*Pj6 z=>K~Et024}OpVNpjGm?*gGHiAasrY5h{60tlm`eceo6YT&mzhwyRUD&uWw-(9sEHS z%oSnbWE^A4Y@!Ym<5C3izeYkBapR!lP3qx%wRSVuW4x0z3s8DfsW|q``CI6>3tl{c^kvUJ>3N zVR|%GmElW`lkHioQI7R~3kMp?`jd)P`$d8|R>DG+Dt}Xd+wn0)%IKICK1lw)0wfgA zg&@qcqa1#_M`!dX?8w1!e?FZZ%uA>k93uhqIeA`Q6(c%T8|3t zI7ur+{Y1;{EX(C{MEH}&iXNJha`x4`ygbw*!aU-0;-*D9k znZO~aB61gnJQ~We&#L?-f4{1{c`p_zGjJ=BXC4bK(iP$cFr$wlvt`#khQToA<`GmM zYB=oqS@V%S{qpcS3D3_s7c+sY10!xDeKp=)tRjueeLva|)B4 zBygAvCZ-V!DIlL>V8m5*o?{$*#|^s_;NRGL)f?_3NF}@P)k!jCfjf{FVlyGLuVVqP z6VldwiSYF}}hR2>ij*QO(`sjNW z8G6}6zsD@SI+U_)V3&Bt?Il8lpV&=CXwDiF>;&Z>8Y!c+d>+#q-mz)$U_|U06I~aAOvIUP4k^^sszAGI`mH z;_MgA*v(}~6|ZNb-}Q<9o`3bT7R6=27N$xNZ?aQI-EGP7SZF!lW8b6}S5Z->mF$YG zk3DL&S1-#T;1D`la2Z2hav7m;N><|TcRS8b%dm5)u=D(J?3DtxGvYfnAkkV`+<_r1 z3@VM1`>`x&>m6-@X+uc9F@ zmQcwh>GWjnhJM)e3c2G zUF>9#FNKQa)fnOFhcuougI_tahbr&AP{fx_|NneR%nW2TG0ZoZ-PM3R`}G#v+|Qf+ zx`(d^!GZ(sLJQ7910NU*<=a>8a=_PL5oOE(TBkE1&w=+F;unIihg^sN=69viip&zK zu7%6x;LHk0-g31qCA4OFG&gya6XRwzA9rObcU4Pw6)lB1GopXNe(9yBEFoyZ#3E2= zqSVGAXd>h);%H*@&O=GUq%!15qO{h>+D&^O?IU@jY%GBQ~!WU_p(g$IyLh=eEI7g6;iKo0ZUTzp;>}sQqN9AyN80C zmXD-{)h~Xf?{0l_b~zSSnejI~KMqa(YE!K$N}>4W(Q2}fTI^?JYv%MP=j|rJf&Rm} z2e7@PbU^87$R4CeMN6ROO>-YneyA}!TM!AoDG!~_xQrqMl~)dz*W~kK(tC{1@$`$_ zdrP#9QOqkw5X#Gqdll$^_Eru8J2J*cTX`=o+x??!UYa ze|020fq0C=hA(<_Xlcn=XZoqo@@eY-{}nSHz>&MweZ$V_e+)FvYHAFsrnDXFXza10 z)%%m;Qo}FeOv6(`A;D7)rBMX45ZIwilqoJ}#qlPrPYx+ENXi7C|1GKrk+u-`*%*7o z2-m`tWXYJU#R$*CgzJ9)TikwfRE=sS5MGw9%B5<_CR4Yxr4n{+HaD&)=^r|8^He_D zsU2@PV`0@lj}A3qs6^;w9n+qqv_ITWbfL%?#EPYu7C`=SF<%g#NO< zJ=?PZX?z9_Hzse_WNjWj}9YOAzx3g03Yv=heiP*BcIhP+FgtRHV9+G!In@CXwfRz-k_qL zXwLA!{E~jPAj|btwiU8AT_*`X43tcKb;k04n+VI6Kk`zG9OB@e^V)NR?BHicEy@)D zqmaKUD?4nyR90O4tJu2!ofgK&MMjVp*_%*m^DH#+i_)ex)rKj5Fo1{eDa~!|sCv-w z!cAAp-GB?DxH(3B6r`qm-+g>7`7b&g{C3n~GcDS_k=eXUlOH^6{dpE$ zy&HO*8SlwAJh@abRD3RnkMn=`yco3vwVZu4n=4NAxu29O_CD6rdM`(M&)bDOQ#Dp^ zBdzfdRs5S4suysYMt!-&7KRbIUfeVV7PqoFE#0&UEmGiSC|qTk#WYk>)K|RE+65LX!BvXE8$$@b`}k3q1~J1cF{5sO|91U7 z2Aa7qIq6>WcQ&91fMl4wt9T&WlP63%62rX$rIdr5l@py+QsHKQ>CF7rnN44vjaZ!t z;h72gIg=|?2pJ$M^&X`7ies+>Af$&=N)5u28_Y7F$-`g{S!51sW{z@a4nz9h=Y3^L z7L>-48p{%=u!4`a`Xy-)31H!7&WJCHRmWcr=WSKz#He>8>dh?r(im#=qjhID(7%pr!?E|Lw8=|Z(d`A zUZD^Ck@5VoDE!0if6IwxQS^AeBy5DS$^!zHhH>wQ1!~2ZxrjsXzK<(>-M3gUhIy=~ zUuq;d-U$Ul?Aev+6fhi2Z9NX!L zh#aZadlF04~dm{TsCiY~m2&LoVk-wB;j2wj$HfUGtRs6GbR?Fic)5Zmn;*&The+f}yPm$o~mKFcTam?P@M z{^jH#0@X?ywf=pQplv$GtIxpe&!*Q@u-Ble*TlZpDB8&MD$3iW4I7(<82j6#u%#Zp zQEC`+{<;x`c*? z!lH&4hlX6UhSr_BAriYj8M|r``wz4OssLzeW2dU}C>)X23EJl(ubFTnDOF zB>({LeWC(=02fIWbbq#wwU+ZWga5+g{gTJ>XT@ooMb*wUmgdSf%l*Le#=HMykvb~z zht8QOQ)w@dy?3b73Ia~TS_BTmiX@V5b^sM6UqU(g4T6CZtgovts-`QtM+ht)GPS0O z?3^DZe~%H2!&*r>iS~-zOzNR8Kw@Ahz+fONU|^tg7SdJRBLMR25=+WO3KiCn=PKyQ zy|UPo6_DA}f%$+rAvr(+Nn%(@*;hCM3h=QTa42t%1(kPxnnDDFS8uP!EiNR{tv1BO zEjNVJttVv9EpW&cBpQh|BY}!MKaA>FDo6gF#+c&8Za`T;XTS*N?hxIpaVrTSb4v;N z;np02?1r?IIUEk+h3f=)!@YrEBC+OTQI!g^$g_*HC^rXV42$aVzFNsa&()x9y8Gv z#nyJjxYO~1%(WrZMl%b0i+Rxi+0CTF`Yc>%cUvIdenRFu#wgpHSWfxeiJFYxRrVxzmN+^nhAPmoK=5@eK(md2#^E*dMBGze6AB8JqbWP4~y&;Crg8B zSeamNE0!kKjH7g;Nsz84Q8>FMj?^a0TsV|qZJ=atpNK~{iM5tZL#Y_boLi^`%tbU8 zTN`{YMmrUr?^OLmyp&+!7Eh9-O_jMS5J+#5W3BnX-5A+iv}yo%@aSbw<1*~)7F4hB0kcnkU7I-0!`BMXM)?WTwKJB}-^11HdFNNINC7iX!~WHx*hIWZ z*><3nQ?&eA@(5Ozvin|hI#QUsBC5NMBnjD211!jjlQdbkGUb9)81k4ab)d|Qv@e_7 zqz8Umm(%Ounvu05vOnJv$7=`%*7(4l58cn-Uog0R<5T48h@X`?!#+O~6vb+o2Ucap zI+z?=dvXy83^C5-I*@or8WeVKlHPvrlz-_M22pv0-h0Y13!mWn1c)%dEPOr#6Fx?!F4N`&v{uEn3mu9#G7Pq87C<{f-KTNXwTW= zRMrv=-U||z)_#$-b1+t=$KSc6=IjIe^gLAY<)g>@jR$K*GLH~GT66T816ntxq!>H!D| z->b;U3v9{Bi)<;1i|{DSO0&q#O0p>I^7R^GyAv+@6z?rM^aeD&0i!FOCp6g>jzwwY z_$6r++4)-J_(fV2*@esG_=U?9_+?z=XZfw<2L-JZ#rdA(#burpW(5!A2chk35gR{; zE>MFygP<;OQ9JOY4;)AuI>X5?AQC&Iq>p+eT^<-z+b$E<-aS2kwml&c3j&FsQ zqdw23&HKkIpKkNW{C}A#k6g{g+RC~mLXU^P$&_(p1VbD@~=r#KWIK0UJZaZ@J(C6%(%*4d?=GFxxag%)|d@b>{VVYnF`eilZ-#I zkI?W$Z=$vGp@+ieg7z@1Ng5JvUBNcD2n{N?a^QcrbPcn&wqV>_z6R%8AMn~OYy_wiiHuTOM?#Y1Q8+zwb_GC_I8@%0`y#zZXs|5|{a`S4@Y=xJjvGVbTaOYz8pid|p zB;A_4NIE2{SvG0kc{VARLL9I@f-b(<%6dix$aqHHm30ow%?g-6f_{MK-11iRI}E!Z z1&BH03DGa5Q6eYH!iV{0$xIMHD&VQx^c7KW{VoInl9q^E^h;T#NQTm~;m%n$6S)%| z@Q>T<6;|&bU0mJ7E!jWNFU6Q5Yx2{EU*_mc=uR}i{bKVpw0L3BeIqR7p{_+hPCDiait8W`y|V@2&*-xpjv)PR{j^70|^peWs_$XQ$a4#BHr`BbVmgP-}`Z z$bn_;4eG5*|~{U z>;eqCO5S3H5EdDG#I-u<@@TT@O1%TiXFRufaB?RosF?G4DgG9_Q~b@p zBmY|%JCiOjN$=_lr)Et9S7c29cLPG&Sool9Pm~7!DixEwcWIJKVjiZyk6;{7y;o~$ zjf;5eJL~;OS~0jOn`j8~n|@uj3)ay#dgsp#?EdrWP73L>`vHN%%Jcr2H$?1*L| z2lRF9Dh03pUlOTXVDf*zUZxtWfgf7HFuklAx+Oin`kPgbGvs@6pXToM_q`!kTJD@2 zg((KE+^pG}6A#zrPR~uDAM|xWTm$Q8-PdYQDX%*35FfyR$q(!y~1k3XE=QvrM@PxXcvs*X!w;!(RrO)`fd@TdCyxa zgmg2oj&5o&hQ*<_!cs`HW%r6QXP|*){EFUvFs%OdYZrRmINsG#7aq}{(W{eJ>fS!b z8_QR+4@hi8@*v=ENO&=ca!3KAuQA~|^#IL5PVTRkJG}fstyf}?q^MwV*#wCLtP*jJ zSz&sttf3#yqWYK*Lvmn&ajcY>O7XiQO_gOUVK;JKqPGNX+zjc`6dp4c9hIeoNpq@I zt+?Mwhy3m0g1_qyxejTSoz)pN)HRfwHP{wa?o7m!k+hN)^xX}+RSn(638d(9)Vb#D-BARzi59VL?cd}B76OQ2$ipaS z2)+B2(*aG!ICdcdPVlt@kX}gJ%%~$0v180+N5hHQ(6*+oXCZV>Y!`z`UeK5Obg#1C zX^?4TWzEZZ7mHFCLPzH5btUnvQF02a@N>|b4%xGF5S(>t`|sK@JP#rGGpDcI{f8W% z!Xr)g@YreO_2vf=Irsm{Hw{&D`AovOu2MEkl{WL(8S70c0$tCPuofwt4pcknYk$+7 z+O$2_rkwtRX`6M()C2u^c_j3M&s#mdq43iX8dthQc(v)BB)YYHb^rL&dnY8irA(@h z+$=gjLvo9}KG5$(sgDvruzrUguQRvmW23Z2C;vfw})L0lOuT^*~Sz z$Pf|i0}w#vqnE?u{^HE%!-fhAmN8<~hTshLQ@5cleO6^F_W_Eu7N^a%;`FIoSg=g% zWY~|im|8YzafjJXG92cDS07t^wftEElzxYH3_$I+Ts;Mx@{>}GnEZ6kZqx8(qDYaI z-Y=1IfoN~xSKp!tP_ZkCV-;R4>{4T^NYzy`DB4*eYJ0_|s)MO#h|gcYQM&grl{SgYPw^(u`b4~cw#B{^7O>5OGVs_uw`z~yBn$wpQ){706 z=TGk3wJwVs7wT{$V>2bCOoN;kyzDL5Co;l#{^*+%G6(22SF0>Bo~9UVjNCiDl)O#K zT$s7T^PT4)P2q9ntq&ONY~9=V40fSyZF{{v{&{2(s#QqmTLl7X(Y)7Dx^F)w~|Q_GuAL6aDMutm6OK=F?=hM`el1GDQcPHZ%+= z(Bm?PVb|JE#i{D;9r6OzTg!VkI>0zxBKyh~<@KVR<>*uO?b5vYypw=fH%XbI1Y?}H zn4cp*_T#{#e@!$wF`ClaM>ec;+43^BtA{i-tI9P-ZEOPFjhT3WOn&saUse13PY z^js9X$@2JRM^3S{c65$(=f6gftJ0iVHRe96 z9QT2v$JRf;|43Ngi~Wfg_w=vUK3TUF6pItbYjf zi~Z7O`3x2RS>*G&kH1r;YW`XCU!%H}(}Gey+sSGmjaX@h9P~W~2@|R__=TFYGR&Je z^!_aX*FZ{11zR!1b+57wk}%qGH};X=|CgAwd}87OIfabET;eThQ3NU5m~3MLJ~`GO zQ&fqh8GRtVy?E!m3OeXZM=D{V)(PEnPKn7+9g3ywI}_7Y^_C!ei_sMV%<=uJ+b-t1 zDLrui#ubGxg3v@B_>#1UnjtglJt+FgB$%6oFoGFJ$|7099BEY&Iaz)x&Gta#r(BO# zg9fIC>Z01_q8Eo)jn?R*-_~rbAf=SZ!0&~tJx9OyB(|R`Z@?TRl zn;ub8X_TM&`0T%?n9;v!rz6oBF`NbMJ3$i;@IBh0tpGXG7#ylrB$Ei0C>U!dPNF(# zYZGiQpZU&8+e;jp`9O?s{u2V%t9~d#i*+~auf_qBLSUi*z>Ms07?O8{5P>Sq`QT6MjN}&+Ge5 zCohkM?#)f%s=WgFu~)+(MEtFIjE@_|d@I*4s4Eh&;GZUrrGmQ|>4>&`jLq8E zXSyf14@sm4zS{9)XsqxuW&?g!HRD}&oNk3%7<#$*e||u8u$4mn^w^y?)$49(cRk*7 z2nn^o{RO9#M2s!2l@(7&>OxYf;?VPsI7jzACnCz`8vMA78XzM)1SOu#VqpNq;f&=i zPZrP@td9G{M0OQlM{(e|^J+X}gw0-WjP#xdg-R8P{%1$fry}6wKGL{4=m5Ts{JaHR z@AtcTyX^fn-!JW7Btq!K@w{q$m0q7H;yHYa^)_ZwojWg}0^{GfJ@a=Oy4NFZx_BL-9TuA#V)(MLk2ii zg7~^OmcZ5YUkX0v-d~eqv5IY;sx=x#pA2PF=^@nSvKT?E*L90l=CfY97#?>#8%;ML zX??}o++iMXfGdVe`3_72{xCCsGA*f##{1^!5m9e5SAZ6YL=iOgUEQ^WdfTl=n>S?U zP=gO~YLK=>ELqcW?Ep`*>Y!II&O<5m*70t4&2=txk%oH2Z`3jpoT#E_>H?QVmu1Eu zGM$FH9c*gKpj*Tmt0r~<{3epjQt3<+To7r#e^FPEw{SJzBsip`UCHdQm#ndW%hvHs zI;Q@bN0=RQ51Y6VFQVTF8qKLsJ^86N(uV-3y8e4=OQUUCgpDDVM!L%_?=l48JaB=j zciVG=uJ^0OD)gExGY#(m{J*U$gcx8L`s;TW;(8W#7Z;tg9Nr`u#up!|Y4RX8F@uWP zoxe_6x)?%PO#0p2m_llO0Te~Bj?t6n@q}F*oV`TMU$WkomR~}PR*;%tFTABr)Q{pa z#2_PcUbIG=eERlWham-@9Ib%dEYzqevYvagBK9aE+%4*1WhS(q(hZi8; zhV)}Ye(NZd?-L@_Edr4vW`jM+D>;}59wi-AJwJMIi_T1sU6345iV)cp+K~CX`RixD zl|C!LuxUs|be<~kDMcg9t+tbmid7sMys&1NUxQ~e5{8wVUeU~w0|G6|=0uoo=O74} zA(^ne++90JB9#l!5gmB7A~P~85zuHT--c1buEUur#b>R1CI*vX%c|jCi!f;XrB8h#&Q+$1FcdU|8 zy*Y0(6U@-}LGTbpv>9UL+QkX1ysD>h7Eq?`S^9m-_rM;DHG(m2#SOHgKPp{m=&l^( z+Yoe9=@~sROUigM1vPegKA8y}bV8M55$EA5(m5Wl?+3;99NmFWg_~JV`JE z(_rIZAdjDC5}MK45{bpPWCTU7G?;>}OhSUB)u^n?e~91-w?&}@O;yJ_Kv_1|>;Cf% zqQHQsSe@Ar-^zMBlckfP!)|&;e+uD0qp`vb5eyWmB+5*LLsM&i-&u2BSV&-Lj&=VN z0C9E~0CA6M6#T+19$BipS}&nfdv9)rjZ5Q@wYoJkKBHT3a?u{JCB!y@jc2t~>jz-S z?_b8HFkN?=I6ZjyOFdMsrI6_N8$BtScWM!sA<{kfP!{Hr}lpQttBCWU4 zc@O!;2bK4qXaGQJEx(Mb=R0ZrF1ZouBLqRbLCN&?*twJWgeq}e*{U?pn($2t=W*A( zX`JiaTwjFEPpQ{4)jn&aiPY+y*t-Y6q}CFp5jE!+^E&xQs$KB`4a@Aoi8Nzz{*7jd z;NEQP7>Hw1g@AtX<`Ke41k7=j>!Y;n3>SVNbr@uv#Fl+zh5n}Tb<(Af-OV`zh2r#! zN#s6wHhKHaz6Y-=0ji5}XX)uf5r9_}7=1x>ktfKGO{e3#KKDbAZGeHo2cd=W{a0nc zPj+XwLaM%YdriG!5QE|sfm2h#rfBT6=J|W8*EV5YR2qk}uHXl^rehl1f@_xP-9Na^ ziAzI-#feq{2rCs~HOMT<0f+-)GSgvQ6}&cLVt&-aQ|auY_PafGXR+`K10a@b)r(I>~{XL}fCW}`Xyk;JDH3~Mg9 z8D*C)NkI73ky?`i8?Vw$@1SI#zh}(P9bbwvOQ$P^_@aOClz&YO0(^yRihG|Gj|uB*@V?Z*!UMHlhWT%v|4{ymT|y4Dv$1+kN}j5X>-z zLs$%i#e|jYF>jJSvY)+$$nyCq=;1OIE`@5JhoKxkdIy~wO%zFKlAcEpWfMx6S>r_lviRzNShhOGRIst z=x0do&NW+NI`*1C)O(2gYrkI@PH)E*5kiDaYg)uBt8+Qup|`I3CBvI%_%UgIJfq9- z*xM5#WGN4u9wFZb|5-!Hik(DOEF!!JlfMc^6p`97J1`y21eDgW8p%0y)1$DdOKlkM ze{bC!ZdGai5LqvQQkPQiPc)9ya1KJ+{~{$0t~khYCicb=5Zw0yMjLozKHuP9aPKFeqFG2WIAN;eg zb&v{Fk#}O5Ae||DCfFe})@-?#GQX2IgYFzQ5l3d$g*4RS#PQ=>o}b}K`**1!+jtje zm)E-4aSnKOjt$XM!d+;;n|^I5Y{|GSYy>{YC8L9TO#bl~ikmpdi`)s#y_zWjUp)V9 zKT*#eH;&RD)knJ9xdjwSs|IN2Y5BH~7JnEoL7b0NG8=W5>)gf~i@ol;Zt z-a0zST+vRVoA7W6mbf`A&-5VD)F{PhKOm~#>;RXCgqcm`Zk=A!ARe!i+KCd+B zw~0*7bP(>-!C$w|xIbAl4mz76nZnixfBG!i`jjiz1g8?*~AAA*#*}O()Ta z6OGW!(p5yyluleqU$AV?R|qe|LF62 zd|X#MWRex##0h2DdR}NfB1O$ z?$XlSt8u*egM8*$Yq|S?+N{|~gG&fOFL~y-rlVz6rP?XZE-#aXX^f`K>GMh&`eCcP zRFk1iN-`2*1<{-QyTJo+k#{o|XuAwM$EnZuD$*iyFInF1!Pv;!0^`>7io@aU5$ucd z%(d?Uu_c*E0caabMNG7-qQEgL(8JV8WndShZ^Cfn28ZMzUNW;WnjNR7X5d(Wtw3JH zgnUkhoX0cBKX*9gR1CE=9@IWxc6UPrTwkg_RN2%%c>hH=z5ExAL3nOymhso?3bq|E zxa)d15mTwpAOzb1u-U)Km&+G>g#y9Zz!}fnmDQOSs%NpggH6+{d@rHE=!nH7)2*r4Kr`^1LEnP}TI0 zlv@j8a!F6_)(%W-O@f`u{E%8C1A=QrVuePgMT;HT;QwHmbLsW5VWSG9nGJ(W*{Ioj zQ476;!{SxbfBf^6AAeRu;*gbYqHZ}V9^Ef*)wA9AYB|YNKiWC8)zkGeu(zPVq##vm z>)zTex8_(Z^fLQCX<`ljDyrbje@rqS&3wOn!zH%uDK}Ur_NxhHUauG14!#lQqW_a!|_*RiJ zs%DRfyv;$&gVX$E6J{BY)EOjFW3hlrl!8~Py|`;@*}d0i=Z_) zHXAR)VG(nn;lO+I(aEIY#a2RY_TJq7{)2tj{Tk#=)<~T8$K31jF2jqZr6iXx2Ti@9 z>s`y;MI{DpxDTbrXxQjdDQ}CV;mN73ZHhT1`7yW97L^x2?Gmo!EY51^5i$lwy=Lj} zJsgP*roh_?!v%g2D#+U(^VYu7{>v@BCVzaydTK&TTKza_ron>xH-8ECGPSBo#vILB z;u@{g^(rf#8y^WC%3qi4LL=PRD1*Pr(0Pt&pjkNudU}_|ZEkq0 z-!A4Xx1W#0CVgvnp`}>yc1|_k38;&f$mbxA&)@fMC$*Okc>axP!b}n^k85J==ltle zsX#{MOjv_Lw@;;H2lJ00-jj+{wg(YVPb}h)CRl*LRmc%ff z(7*0PJ*{?Vw~g&HuUGxE+3&TozVjIV`!BmjENYD)4nEigen909scs%-C@~PjG%I|C zQFQ3#5pD)8UkS`Lh)Sw{c>!e)=@;}LQry@+FlLa6#9@jsh4oA|e5d=kp0BvB&RDl9 zB^xyeBqoCy1MgM6!)&qu0#%g=le)IF*f7m4JpPz#Jqir{U%cVn=!77=2MQ*`K5#B2 zZhqU1@i;xV;1XaRU}|(rx(HB|4L6xBZEWcdHg?NoEiY)RE$?u;3TP=NCBeBB&02Ai zOI604&{m8sGESIX;KwV3dVBzIVFZ-aF=r98OM`x?zt^4>E)c7a&)e9x*199{qU=y? z$6CbhRuJYKgEv`nfl_S$+anC$?eNi^=F`O!s4B9RDK`B{5LBv z=(F5xW#Gk0MDG+KOu5BgH_bB03sFb?h(YLOGsJ69C}L?erqZ%LCQ0slZkzn`}0 z#kn@fjC{ToJS93a4L4dGQ#N@o#>)b3&`#vt5inqp)?klmUw|ZB539DuxzbV`@OYR>aQ-Oq}!>6R5eeN+(dThH2h*B|2jx%KDf16`e25 z`hLh{;cH&gJHn{pczEtURV8`$@K=wl!N{>)P5kW+O+z33iM_$bcIKM-i6_()iR7k! zc)g$ljVo08dME{ypdR@XdeC~Z;;&p{+D_#jNwt0>nid7&^(GrVm1WKPZ<8krQ5cqv zPG%h6GD=f6jK{HRKK&0%-`_AF>GI%0+{?%PshW5}ZR(`dLuuEt1G)BmIUe{HE{YMocu)65u z%1?|O8hA$>sVVMkJqsVCe>TXk$=%pMJB>8MDSG#yIK!!Y*bV{Av3dDKu7-pS{%*U7 z#lps>fp4<4#TsZMCwODb{Ho@b=+FLL3ss}JIbZZ9CyZZ_L;)tHSKn zN|Bswje!1wemiq^gnXY^Y*z|R)r?zL=cOj7Pf@z)Wc9~G>0_w{J8fs`_g@pJUBbD!vDasG9bq@x7;O_C$Pt*5s!{Q!F!w0x}Rj=v7aM+ zNa3kwZ+|&{a?#h{PHc4QpOtHP(@**Yf_loH10;t{wUvJVk1K(vjkNQuWpXahLMtau z%!f^wWps(ptubput3F<`(D$FdMmdSDyv>b>DK9l7?c0dnU$s1?-d77oY0F+j$Atoq2=nQX}eviMtRnO$FHrnQrw{b+w!th!b-~jxtI#*TlKNS+=AQB6M%3^ z6*@>yeO*V{C7fIOA~(YcjLcHcdlD;jdX$`kpyIk9$X}%tyzZ%hf}+M1GkH?pZsV|y z@e_>a;IR-l_*R6uYN~4{N{4aDmQN@ffQVao3#}}qa*Yo``)9c2MjV`>Gx6NpSB4XC zQZ3|{(cbu_Z$1Nc{8>TGK#hV9qHQYQ+Z?Bsn!i*Xx?H8}*F)~d>^BlV9=(7{DXe5Pi~-HvNXfuDqchV=qwp)Y)&Jo?Tc+L70qT{ zR8WN?(rl@87|W$u`^Zgi3%cH>?3Wb;+fGJ~{`3b+QI00F9mcAaQ=c%!?Iw~VAGfP+ zj3$F#owomlLK#)nc985dwD$H`E1BcGILG1PMoxNn&D}xz+F)a!T=Tljt?G}jKnX9+RjOGo8rP~?CH}~XKv^lHl(XLq4jx)- zlUo$IkQ62h-h{Q7t6?90(@v$w{ju2HgFt(M;AQ!oS$N4!E_CML9w zTUhyP(<67r+jZTNcN6&_Gr&})4#TAU?Cz(Q@{5WAvNrb=60dlSwWfGqYK66`13MY8^b$Zy6#N$dVn5Cg7X3r$S^YAp;Lb^GoC2G7}uxuBS_k-`} zxjR<@ue*&oL>w*bytul!ZC2bM+4NOgv5dywb@q?fHu2qUXOT}G-I-d=nDS;y`Tfv7<8^fxP3zJDd)boqDX)ZO*#c(I`Z-*4a@Kg(o+91aQn4W@!V+)n z`*e_tl!#KJTc|D@8jWVT$YCE5gLBZtWg<7y`{Sr$P8GC~za}&p69^%Set*1W=cB46RwC5*gSnA~ zyM+&p;QLc%-|cLmi^!Ud!&Jbgn8MFU5(X) z^w>HMzwYa-=K1ELkuelR?Bx01MecIU3p1C~4s!Q2o1k6~&RX?Tq4Zgtmd%B`zSjBt+9^$s` z&)nbQS-F8xS6pM>-YVrLRtYxIMlKw);L+%b?s*Gi-7nt%z5fW0W;kW??Hw>deEhq( zdBod%ks{|jq5RO1u9p3 zAO9SAHo2iKOX8Xm-v`pDvH^Mqlc&9t&ss7ig{`NqEyrZfm0Qzy?gs&z zhF-Ru{-EuGHm&uZ@G)e=hCakYB)}1Q&*0gf@^HYzeAKo)iB}Df0_a-ZPW|VTyk+v=I!B?w$ zrm8K~4p*no6S;{!w<|O_oM{cAGGwc_W~!&N@Kg4dwz{$QGM`gQMB6spFUzDV8IMhv zj19wpR)8KWDz^-}2pZ;I1U*i*{T}E!N{@n`1RdipfxZb^&%Fk^!jLLzH?E@gGaWDk zN+sm*>rPaeo>f;^eN0L_!}f_ewYs`*e|NOI$%miY+D%Yrtvt0gry^$K^*hvZ>--&g zb7drMRiE3${&`Y)J-(5|DWZt9I0b>~>8~OB3!n#zqb-D~(XIoHg0ANspfOO9_k+e& z6=BQZtNf}+8oA>T$!Thxldzm#G`d(fav!AcPwAu`WbH~9tanG+yZEv`gD~0IU8-{3 zVMxcS94336t9Ee6+`WHQ8M_+QMtuExK-=#?Eub$ImHRd51xjB8J${O)i29|eAmH4b zET7>9Ie{@UJ|>ECa}E~w2&Lxe+?<-6Yt5*2XsrE?O18nD&hAXFjZB)%sPCInqvYfM z>}={o*`1lPvcfsvzXqDv3h&_I!mH8IhHf9~aD2G<(L8u$pw4G5T=K~>i3a!mG17M& z<0bV8xPpl@1KJZXJOZzJFT($R558$N!^$p&bJid6LSy0H!JP6$5YHN&8``?Ema^Zl zd_3Y#+3FjnL(!2c*ZOM$fzWVki{G0G+1c-H9WuMjp>$zj@0LA(vY|KI)w6!0Wu(U9 zvUGRZEeWeL(UIu*Nj5ie%WzLFHoZfZNwq#chqRIYNQ|PDvJ2JlYbqE%!KiKfxYwZV zilk|Tdk%CNYnv?UmLPlrlsl?wfIlh0-{gyOPWKHfQt~DMjxR>ylR>#<&_z%O_ZsL* zQTeE*Lcgjm^o9Xwg}sy-nu=?C4wkzt6BTuBg(h@e_Mju5dxc5r^L{a2*;D!AM5{I( zz}rL@kJEp9q-l?@G2x5$d)nh3XDH|lL^3lq`)1~?H*X!<+7t>kd15h7bbWPwQ`+u` zOU+?_OVsU-wYIi<{ES!E_*!3sG-kSxdc%Rq8FQYxHkm zT|STcJBgkK@qJD^sqeX&s0+O>p{Y#{+ztP+^_T{ zpuV3W>E6$P+xXJ2X&4@_e!Ll8)o5O>K5JP0x`r<+d@uA)p>YWW)Chu(Et3jNc z*9t|g06kVzZW(kDG|0UOdYo$eJ2c80l)eG_I%tl&1o|e`_BGIz0(l?B zjo(KJubyQs@oozB^nL`-uA;Y6hE~0+viDAMp^mAOs(T|NSH8CbldCX}^;%p)fEwLN zP@BuQCrDEWp?b4$k1SLIJN zZGWFPb%gGyqu%ay2YV%Bp%=ZiqsHJ3ro z`4&Y-@pyC)Ek}yq|KV#C?Idfv#DZ3W9xEz$7Icx)?}MI0O5Vu9$4pXPE(2NtdaS72 zGUy_u-vd2I>2sjVs@9|Te^fOH0`ql7fY!f;))%N{ya;+6DS68W$Ce_o{SK6S4RnRl z=RlV!T?SnwDvRjtA*@j2qG(R1*2e#1?JJ<$$gaQrBv~w3wq!BRNF&CPG-761#>94F z$B7e%ae1@MSmx&6?lxuSHf4qswoKVFGjmTf`QFS(<1u9Sqnsmo@+7@`=fQm!e?#eY zZaAMk-VcTp)Cov1DnZ}7s6*B(-(b}XwDqX7WuW&6h1Yg+r9FvZbI(^=3g1pFC0l1Z ziD|t6v%lE*kdHt*sTUd^^aMK(e6-Z9T;KJ&(z`B)77LR%R=n2yD%Ok@F;fan)?>x^ zJ<}&%KF`!DvNhLqt>V)bD_&r$t+%gMpLm% z6&OD>N;E2~Lt132Iwv@#o|TdE1*s%06a_<|&@b@hRDHg`F*gM0y4nwcUu?z&L1|o& zTS6_ZLyJ4gHO1nOl)%5HIdsXaB2=1A1-!RF%2toU*joj9D1y9CL(lgJ^db8he*!l? z$=?+D_TTT(_Z0Q> zoR`1fnCCkO9}H2kQn-F_IAfY2JGHKKTl_DCZUcGsc3*gYvLQP7pz?`pczo32!qkaC zKdAa9>VpRq>mSI=c{8UdSer2elnu6if6IqM{n5IKFQMbYx*^l{v0vZr%jn0ux zqjDqq`tUS-QKNEc<4~A`FU>syU(`-2^{aSo)X4_uo8_tn>;XqFDIK+Z=_ojOC^Pl$ zFYpDyWNHl-tKHh1oaXVfMJeBV(h)ik(w?~|9RYvI5G(s-3cbV=!n7&9uU%CbR3I|r zN#vt}Ys6?8bK2R65L4^R#VojbBq%(s6O6$as|1D%qOkt9wOUQ@#&fu92@4v_Q~(J4 zqU*%DfCW+i_b@vfefkEx-{3l}ftp7XcnY#pQ~>Ju*r9n#WXx=LMvJ2szH2$$gB;M9 z2?dCm;P&-HP@0wf3RzB_YTb%N_b*khosX2tC(E^JH1KtL7aRJOyJpUg+LX{hOOP)Y zmMjrtHIhG&o2`br4jZ~!&hJmpJ}QqP0V|R@QfpCOeQPkXTw8vq1MkswI-&XU>G2{A|xUI&5}X2W(|b2#M6&e)APCR*KwQKZjtqt%3H zQ>>a;*C<3=B4D2gddH;#*Y3~;n1`3}1ejDU0#fv6ocikvexH4J2sndGEDWO{AI20K ziF=rz6G(m=4Sn0~pi8j_I1?X)>%uw|*c8d4W}?3~o(6EjqHGiqjcG(>vx%>}8uA2Y ze_5?1D~dwC%NN^Nq{Lx^H~_lGg-ggnMk;dHi|$3QdPsXX&iEL@_6E#@_67N_wQFI{M-CdnE>1k8kK0zWyX#c z_Z;os^LbDw8pqV+r+7U1fkk@~maYn#U5h?pM2{TW{c!ICh2p}5R89LNsoVm(LOw=Q z#0VG0jk7~3#}Rgfh<3QS={6XVCth8evI@bXC?9qe?4#IRw7w{t_lU;EWm>U9fojcR zPyzzJqIvigAcwolA?YxXr}w4qOW-dBAU<>=QK+Vh4f)*k+)Oq) z71g_Ibvcsv_)_*^fhuAT6dhh9?r=mA#F_JiTyd?9Fc>6|hcNWkUx7UMS$$&jT(hIa zEg1!(;wir$TZq?s)!KxtU7e}n$fDN}I~tA6M$18fB{GNQ7?yOPSr6*T1zavvuS;4C z#<)9{RtV&2cew5Cd+EfGzIG@uK#|!(%)NypS{{tn4yC6aoQupvijW?jIh3iiYgL#4 zTAR-L^Q-AaIrMk#d|;9ynSmrz6v;x)4cYO#oUY>0Vq>1sZg?RUZGahpzP(I17*m<6 z!f0V5l(aNJ=zP=yoD&m`A;X=K zKAS>rNgo^T^&mW*yfrUc)EMrNeA;I}Adl{;?0je@Y>$|+!qG~+ zj*KbqNPNrSfTOf<#ZDtK=sEIW10DfA{mksUX@B5Fe>m*Frk58hr2?HteSVVswPK_Z zH&`TMff@Tz*zMb$1@E{rWUo416+0Lrd#;kXG@J4x7Tn;S(zzkkRVwR@&YFs`R5u6( zu13HvK$-{o=KoOX?x|}dW`#kf91UyT4U=z|N9$L(#*F41Vh_ZY5?I3GG7^)Ryq0O) zmUg(rqLfS)_ISc_SxV)GIq6|&dz7462iCRu55{dl#=gdR7=zC+e0Bc1&fII%rPC1r)RUXlay z+c5VrXvXyM5G`Z3Xi5LpIJS5@=xCv*4VA{;i)Y~8Vg3h zuA208Be}%5RjvIe`Q%RC#h(O8F;WW>t1WNT8q{IY9mxbP7W;vKT%>3og>QcVzgWki zJi0ou0|XS%oLVfv&*e~p)EIvtVAMj28SaK1+${H!SEDhVN*LneA$1nhX-u__=@c>7 zDU+>_>g4l7R3~tVd^LmR1oo|8(I_!+1yvvy;SH!oZstA7&}P*CE!W_TV^|^OTT7T7 z;~_N!@dCi(Lv8>MfKinxVuTD)*Xj{V*j%4@^ojHOII@W=`IvaX7JJFao1rUh8u2Q* zY4>jfbA@h2#G+-u0WC6O5RZ-MjMDCA*sF;x*jT-h^aZInEfj_$;D)UjSetON?&{7` zJMcW?Num8VG?x^USA)kA3SDZm%si?xn?*;qB4yP_N*6@Jq9owrNwz{}y{6sccy2Ii zR1)#4J8fuTPw$gY&G31ZtxlUd-#MlNQslx8m01D0TirHqRB13_Mj(b%aSHhc{GyMc zsa}UtMEL_GA$;$|^%AW_AXJFm-M!r#q~j97FvMwuOY!&GtS-Fd{yb>}YHdzST@LYC z^siBQ?s~8}OWqcojtL~g?Hx2M45WHyfYYU0j~L?XSSpNtre^h&_s_0DP-8>Tcv=2M z^Xp`a3-|@zFf^ng;>XK;ff;=A?oMzz6qt_n?(BO1Qufc_ z^KtTls(%_^h(GZe5x!X1eRqq0>3br4p}6a=mf%z1$Bjt|dDn360KYLM0e1jVPMDs$ISunLCtES1T7ty9`A)ewrku5;&kkA z??p_9@)0TgHQ?=?1V6Z(dIaioLv%lF@LI@?voF_KZI<2Oo1}a%;ur7@e0vL5dv!Jq zHU=TJ^1Z`6zFwoUDFmwUg_sBC7T+1e<%)_z9IJrTWfB%}X|)P*PCQD{T!woFMmsq% zhpkv?T$;aW*N6ElgJFrOY-$%ZED=60;I<~UM)TAKI*tXtPGPAjW%M91=wn(1F=ia% zAhV5dwWR?lpXT<{=$yf7E}E+=swBYnACoI;N^xhB{5`csoA6CRV~lAzR=k!SPv7OnuPxUTVVK`Sl=F+D7eDr~|Kz+LWYAL<_9UiuF8f;%qqYoidtPyU ziTe4i`+BasUN-%DcPO!v&r?0XRr9frU6dxn@kv^@G{SMD{7o5Z?%dn>`2P2>DiH)OQzAdYBU_@9q;b6Xrd}j1i$>EiTNQ;@91Vf_GSuD zoNS~*yjl9zE6ksoTx5^WJ00JP&Ns>16ia$f(a!vUNH@05W>Cq={zA2s20RaNDsY)^pKs>1stY! zd*)`_=4McPNhuJ($ls_Z=@8q5nv$yIAWIg!kXm#S}+n37Ki!GiPBxiOK>Gp0oC6#ScE{$p2U08PM4<7jPwe=QMz(2d%*gJ50W7nFn@Ru8cu*)J&u_pZ zRLV5!u`!X{a)IzG?e0E0VJRasjEnQbR2Dz%{SjV_w)HT^n;wfXVv^6=A2l+zVQ0nHI@<~wf@()>XM9a0jsPCHSVTRgp#O&fQ|pFW zDL?Sw=b;=#hltIHq#KShE1z}e(8)$b-wp<%<4Yo5v?-f_^6|YE#F^2$N1aBy$LbGQ z6E{p(CLPq($Q@DMa8cgPkD&@$9Lufx!05Q!WJIh^+#Q|p=S@L_-D9(doQUZUa;?%I zqL4@7_`Z(!t)cX$bBDiOu&pm$Hy?SV8j%?!S_NX0tb8mD_(q3PCmmG&%nN>`lh+(@(*$ZLsJ0{WFX6Tns4uVtwbG36nj-JP@O^{*a6Z6!llr{<=UMyoq@< z2Ip}Z2P!+My^O|J&1($Y*4Px3K7DUGD$fvmSDBc! zOE-u~lV9n_q(#n@+ezp2(;QHFIXo+qmm^qjm9VYfTyN$5jBWi6+Zy71m2G{J^WFEb zt-s*3KAUa*9@}c=J;}EIi1Xdwv#q}qzF&Odqj z;r+-}tDOHg#+_&5);r_$lW2a+-shkCcdwyV#-LRoFszTszu52oiXEw=>vJgZaprK0 zZ4I!kJNY`cHN>{+`6$~OS?7VBZw$`&Moz5!9{Y=!V7+ykZH=?7Hco4jZ8h@|wl&4l zWY+>!RXm_c?-m=qTOvc*&Dn`popVk-I6LwEY(;89GuupcZjiC~&cST=Qx~T_iEU^1 z3v6ll7(2&Ip1Pg(4Mt%G_$0NzX^#q#!07jZ+@*vqt8)lBHt6VvTz&q)WM#hd1*DaC zRU>Y3TYM!~BIGT(;-j-i>T?EE=St81NNx%` zB4stt=(7jaf>GR&UQWmh4i}8lh$V9Cs8KH#TSG{q=>%`}Rh(YjS9bYgn8`T0x_rcx9oTS#A$st z+xk6D>sQ&WITps2l7e1e>aq8iQcyz>t z%2$)pRx8sRwPc3Zo%B>8$RLFc%1B)aL7g#GkZ__vFlI7$Liu{TQcCjx*iFTH4~kVf zm;9PBoki=mpG$eI2;qrUoC1*me6m1FybeRzP2E`*?%y4dG74ib1Qi&fQrEc(UV%qj zYn1g+lQqCc6^jbvxWXzO6-#7JjoYKt8f72R;O4G9p$2bA4d?Mw2byyGFh4Dj_*`RC zhfhWi{ovT}vG4DPxtkXuwcB`)(Dg%k>bZ0xx~_wuPh?1mpo7b_hnaaWmPp7}T5#f; z%w`h7@pnlj0_C{i#GG?PAW;1#ITCj6UE9lEjk{6uLgjQrUeeJlJs6f_1F+csx$! zxKYT65N$=qpmL}+x`AfL?~5}o%OWi`aX58BD`#9h1bF>(Iab7UMt?Tk-W~4vG~vkz zyu}^Cz!a9#H*KAeIi758F|AEpkUC9>`+PWI(fbY&wie_*OV{^5@_(wCU0yzfwNEyv_Y)<2 zGHEWB@kzp5I;bFA5>wX;{s#G_vI@B>G&{cV z3N8fEop0EQ6MpNDN-ZlH;qbOnhmOOOq#b%wxd_Vu~QXPOZ8G@eex5(tMEG?Hc%IfMXz`u4u0s;}D@70gR@7%U``hg@~{A zj$2XkT~hFZ*{LokT_Ru5YD^$mxhNl--qkymfeh0ceGrbA zl9R>E_?a{s-R6fW!P{BS34{-+iZnfq@Y>u%`ISUs`G#V8ULP}LvH0N$IeHjYtA+E& zF3m1Pr~Jjt!D0Dt(nlJ{&z~S7E-zxv-+6$_bIw&xmZ|k~Eo7wv?^X#{LxCDGhe*j6 zoztbe`^)4x1^A?N@>nab+xPMZZz)uw?Ry?Pw>re9YwgD%@75td<59*op59t!mYEY< zom|%_wS4+62j{gGh|^1ng{IA!Tuw!%!u9N!-8&ccpRljX}47%cPFvTTo4>E^db?Qh&$pQ@-xP`#})T$Eu91wH_|9nlpZ%2 zX*GS0#p8V)Ld{MwgUP_X110a(&CsEl>0G4ciDY&faD5JoAA&=CBpsNHxWVIDvfaMJzvLU4n@`1OASjcC_@5=8wa{1>@8@N7xUt!k~u6&R(@@%1(dC=~2j%4VaZAw$gRr$5b~<9Z(74a!p3D?8TD1ve z%3oHfofC!WlLXW+2l9+3wox^qVg$nQ)$>fPnT-RPY z_sG5VVz~X#GhVhb!0{NP`{~hDyasq5QeFq{8h?NHLYwAl+n1{-ys(&d?G1xsB{Uhv zi}S{qE+0cG67gAFh1*yBfgN-38@HTz z_NNbS+!w~dcwS}e_IK`v9U(!o`i~o}wRzOHyn5pH?DB~x9R_>IZnTG3j=4{p zWw-F!v!urh*_$bz{~VPgm){O~W;BuiK%SpY6S@1%^Nc3qKT2sL=T0CgN)tJL?zRG6 zh`54*%<@F@p6BdY*F>bS*X=Zs4J5dG`0t$)j+kLK-CSNgCB5lLJ{;*FPXD1yY&yI! zSFROK%1Z$+g4asvIxjPmkAzTD6!q9kvG(pUfod{SS_}?w6wPo1uD*kB|EsUBi69vH zZb}oGUQ--!U-`NvO=}|NPvGEx$kX{x^feJH?Ct+h6DiZ0NRQS;;!qRmt_?I1cP~{g zYBgq1D1S{cHn%i&COgnXqV)4#LmM>_;s2&8QV+%UdMI5ax#xybdI9PpIV^ExLV+Gj z2PdE|^8FpVV$*?Y4v&cxe@Y)~oqFAw6g($UbMf9oUIOhEE2pTLyAd+e=%dsZc&sjB zn>)MES4EC@61uy;__n!nr2Wt{&kr<_amf4sA5CPjWpfhC>BwZbksb3{vWG3Np3Jllt>dL#P!sW_+}ZgMIAQ386X`0yzeikuar<(8CYj zRn5m@BBclp`4l-$Ya@kw4tbN#UZHxj(jWYd62mm)+9WZqqK|Bp6&g>;c+p}myvS2F zTr^vXo8$!Vgcl{Bm$)ap=lJEX`VeqBaZhgf1V>J6m24{y+P_?&rNpI$&@1{<;_c8^ z&>ng*B~^4Bx%J0>xs`lSN=1El!oN(`WnxqNF&fd}uN1lujG4$_yae6I zA%2x>ufYn)-4Ml`FP!&NP8=OSKQ3hd!%Apcz+Il_hEGMTCkC2r-w@9y?gMYvoEb z`8i2Vpb!YRk-Xx2C^Ojs3mx`s)gpI#f@vn~UF6PM*tTFK*l7*ASGM<$dkZ#m$cTFy zq=w5$tu5nohTIM|nC#7kI^%ksFX}u*JcgaoMRYy-pBiQlK{I>dEJG-omZRmKCe$lB z`X)HkCe%~UV(Jdy?FaR3OHl?4w8;SyMW7|q7+lwcp#N&)Yp(bxNA*oVMHvJ>8x?ID;OEyV+w&e z8=l?bNfKWEJ*0mQKTXoBW|_?S>vZcl(+%Np){xLHybwPHH0|VQ+PQ=HZUWypej0pt zalX4a-)n%kPoPeQy4_WM>fj3`UNw#5;KPE?zJo7N5JK&MC!#(;yU{g3l^RHFbWn}6 zV``0Bhjw)h+mdFpH|lC_MeERR>)LFf)8#fh(tMhshf)CJNh$@k`69XL$itHR^K>Y- zyY&g{H49Vslx}t2bvwklmP(_O&`TsvmgUwl9*6MY@vUhHx874CboWsyEJZIuZcgTM zb267352XAEy#&6eaK5K-zKc*8BXl%wp(m+n-+0gLZ@}L{{SNbxh1^+2)Oa0I^n~BGJOf!9=h6MS+^uk1LPHI8WQSijQ zj)FJ7VNO0f5gjOICZbUXY#57i4$1lL)amFEbP<;eg+p;WlAexQE1v_#{nSqMJh~P_ zm|7T{OuP0Y?>~R=gPq7-c`Nv1lKvuUFM18#McPX?4T?z3MF;SKy%@PFzsIB(*-h<6 z@1SQOT+oQ&NwT{i#gA5g|JK&sH0r86NBds`NOw`|0n(iuBt??1;opUkv+{@asCoUr61|vy0u2tQ2^_F0?R|E9U2-151`V4qmT>Z z%I|A*jR9R(5onD#Y}SQ>j{+F9^{p|~Mbnk%#$Mx~0c8)>DD!yIo}>b1U4KAMydDUv zJWrsV0JJ?*r>!1`O*81J%5$g-`(GV@gnqPgb^lvHTXVU}>gC$B1_$MPMPYcjkRKW0 z3b}PSpC2YaLI*{?f+tae)KwY?#*?pX*#iF6_o}RU6NMN6g%XmKCNnofT&dEabQxPsFlLWr2s>2snpQR+t zk}2umo;&gN1=g{jY~1kf(TXka|Fx^bo6ltO-VSbd{YrHV$GCI*6rc1R%KEy34o&us zK6tJBx{J!?hdQ6y`Uui5iyl?Ea^)?Z-2S(B4(iucXE@5$)8 zudZBkbBXPEdg~*VzY<(~svB?tzf5weQ`OFA?71Jw1aDsVhTvLyS@^3;7-Gq)8_=uu zShbTJv`qNs{x^h3e&4lW8i&6kJB+pgtbT|Uudh~cQx&f(O9VCUuXa3-A;VIAM!`+9 zz#C=S$_kA_)s}DV=rZ#}Vv%BDX}xeF*eMc71)_M!X_jeZ5&t~VwV{ZyXP{FJ8+j9Y zw<@+QIhqScV!@@6cvisU`;7YTfwI6=PDZwVy0>vuu0e-32}=NV z@?1jUM5sd~lnBJJ5OP}T*w@v_%;j3!yMauRSiZ1)Z5@3Z!{hr64fMe%N2c6%h)jw* z5wQx-!QUg?qC-j4ioO`Ah;OFXe{~&%A|Y_yT>LQ!bp+|K%$^q3c!A_xQeo1X*Gcsl1GY9#J}zD1(FGL_w#}<%<@RtmAMnPk-hj&+(V2U)>3+4; zp>7`vIRZw9%jF6hm7$zJU)CD!-J>WdG07wWk3Xer)k~xyw>v^|u>?xR&dvRy5A!tU z5=ojShfT7@b;ZcY+EjXx@QUHf|KyvSE3fRZRVFHMo9#h6jE6TtO+SS{#$J5$RbViy0pP->qj5->rMdUI#t+ZUiaR03&@THAEy)-pq>t=xH+OH%3^9+^M9?V>1O* zPD`&hGwgw;gc=g+zm6FCmsoE$ne$kDI$g}-=*&cW+cKr#l<@lbk%J*W!KVBK$?i4J zH<5c7@qgtFNY6qgz#@eq*rU<4sL8i=xj2yU5u{@ALPdPE2^)d`|xQb zhK}2mcEttlXTBj!;cp*2ISk=02!FO7o=rjwm+;Ngix;HA`0RtD-1*(cC@VfR&ayC& zF1jCO1$SR}m*BsF8$$K*7RFN`m>Y9HZ=`9Ax+INEc=!IhgeZ6aqR@50`smB0LDZW_ z+sLVk!}8`LlG988ONrRT8=0FURse# zuQ+v1X(gEBKCQcB(^wc53O3CRFWsH%%`Z>7qjHbbs&jU*UXMATGU!X<&Yh!6uHI5W z9mm0QYr8+Y_UzHMyEALf9zE)Wwe$MsY{=R4cC{ipo{DCWR^iiHNMC6Jiu>_CO2%o0 zGth3Q(Kt&>tU7c*i^|2+MxoC;HjhP?19@ZNrNcmRdgUntrIqRQ%2O{GI4)d@jRYgQ zEm13*XmeT{RDpY4|uECb=Nl6YE~szM-pYVd3Z#eM2Ue=<@k?X~`-z8O(CD zCb=lv(Vv>kw)Z&~_xEfpE*|LKSX}*@!JdYr5&iei(P<=d?%WO9hA+UkQ7WJccqyrC zSmXzsfSX}ZwswsxN_KQ<#k>%leo2~5ysdsGPin5bBmRd77G+at8%pn-H*aU<)qNYD ze}2P0#6%*Meye)n^5A*r732n7$oC>2xrO>O?LAxht zRa@m6r9xp)DSa+~7y<3`=M&mhCG88(x3WITK2kQu>aoxcPo|<&+mtLkwU2Q2p0nw9 zNoKQks}0AVTRi%#fn^JMyh51IGxrB0U03XH;pgULH&3RHnPkgWgJZrdH()w(lmF6d zFW&aZo}S4Ol}laub;0USCl)SK7+un~?&7u^*X-VF)P@W;WbWOo=t|q|Kx3f#33mr~ zkh3z=#NjhYoIziapmkL+f8@ zYVR|ivQE*yd*Pbvx8&i}Rpsr1#h*@1EK?0mBvzig;OHGXP1tDoYu8!Ia=HWPDsdK? zFMxi;M$TtvT{JlY#QmlY(=-m$Fh9E_cJZU7QR!HGzI0(enZG!f%#F(?VvD4UJCmK4 zln`}OWzFl!o03n$KX| z;hS#>v)xzd&Z9W(`|r@}$lB0e94|$4B){wKu2vf%xCO%v^E1C8ezAH9mf=q*A(i4d z8km+l3&5G4<+xkdw4XYwYi!(Mta$2FK?**(R`6CJ&@Ix4Bc1tBku9j>im+`cKLl1S zWM)YwoVQ0MQHe|4<1546&jpEI{6aD`hmkQIBj|V5uEQc zvTWzk7qwh1^C^Q0i|AohFc-)TIB9gXGo*b6p$O#YX|xA@NLw%i^UN_^1fPe|h3H*c z0X}cmeI5s&cepsetou9$sov&%epUB*65@Qo`TV*m&gUGQ-_(6x2cLg(aeiC(`6s#% zw{UTOSNC}d;=Iqrd5ieeDf~0%^ZS|)GNA(cCA|!M{!owed+@oI^Z8>vjs)#R>(L*< z=k0o&kC7f7!}+{Je1I=ESG&;-)H`JV(vf#By`L}Zqdh_5cC+S?Rc?2i!{9!7K9$Q{^rSo2tiDzBus640z-@7u)NYeI7wgzI zCrRdpkh@C(mS@J?%GFp61h{puwH2)o<2}lNH0W?8l5N87l-=SF7~4wmj#$v?WJ}M+ z>}G@06F~YmY4i@?bc+pIZ>N7 zt?hRp#_-;T4Z%&Ds5+guK{?rG(n)fjB@m`Y!jIy;Kw;Qp&#`u`U8PU|M0}$~Vrh+a z1bS-prGjpsRH}U@b(El`Jss}$lD_*?z;Gu}*4o$;IR&4q^d>`BQ<%OJwpgN0i#n?A zO%LXlC5v9C*&iJeE0X3!8{6s3#Zv*BOQ*kOUf;r9MK5a}8&(<%k#M&ga&#w@#N&`7 zBIR*Mr5t2!;C{p8;EN)}=eG|BWe=~uZ6xI??A+A}y~uW;?`ojWNO`8Lq1RO!Gd5gg z4{67k#38dRe^2)m+(@n;PDR_}W{rg{D++d_h4tzk$(Y^c@jaW11UlqA8LLgSr$gQ> zy!vd;jP(O|z+!WmO`h+uc9&f)kLqo1s@^iLYLr;EHd53utDKy*fZ2NvUU678Q57jR z0Th-g5FHlDla_dn?Q}s2E*-bIb%vH)B3=1`*K2~(G8H0`F3))1f?b?E{%WO)&Ovsr z|E~3z4HelJDxIw>Kq`P-+g>=t?ZcSUgb>`aIyK;?Ht592?)F^Z|jY4lFwB1yB3z;FV zyoMv|YD#do*yiW)Wg4?urSGh~<(7I(YK6{VF(d~$&ifqQjM{6OYTXeu)t|+?qhql| zS9Gq=9J9Hs=D5w(+Fi^qO?MYzLw1zy2?hh;1cE@%i$K&e6es%CWVYU~ycd}#a0a!p z_P?@xd28h-gzi(pISsIDNIZgVW@mCLvtnh~5LDQ7-9CSE!NBz*XV-WTlpc1YE8tJf zPs9Mqd60+mQ2XKfky#+QlK*co1D4@^W{WQnWx|P=%C9tNOHMW!^jh76txl~&qqmq0 zdbh*KD&=;K$>Vl}g)J^ygzE!O0q0`G?Vjnx&E3c;Ew_6v+9*%SN7=B-HC~WEz)WiS+&7F zp)zIn$A+&`YW!Z0O=tR6XIJOqm|p4-%evc?x~MP9wS@=4xd+9$-6UN9ktF@c%j&N3 zeWK5pRJ*fvOK<{xOw{F|cS(b}&xo_SE(A<5nK=N@$VSj0i8~5+;7sW^)iWF ztKfDVo($CN07Jr)})cgAIwR=Xk8BTy#ofw;Ti%$8zv zU)P$ITEB<=QYUq{%DeJvUCirFS-N_Pi@24W*Q?(KtQSzNb^ZF3dR=DmT<_`VGaE-; z%hM0+^2Sdc^pDwzyjXo0O_CHdbnDN!N$jY_JC}{^nd6^lb2wL|A0Rk>R0VYyHGkG> zyjbG3iJ}l!*;tKtHuo9#G0q4Nw_u6JsaEUzkFg6qW+YeYEe2zJ zl#`{@=qucc@3vX3po6y3fOCFGlzckO~neaX*Ll zqJMDTPVW0V@cnP@TSoTCHR4k$%HCLQ&dk2Wa%w@)6wjp>#6Yuv#j#R?#<~Kdiy3TA zzb)tXpuMGz^2(%IWve{zRhi;C^=&q9PsA4iJdXe#nqCQbY=CFVRx8uopQlp|lc~ez zr~5~W5EUi^Ha&eE<@C8m%GtkjnanR*ppWqd)j(d#pCk_#x>eo6*AzPA4BfG zterMTGy9k3vms;ofwm zB1LvgG`B@ECvT6)%@Uj1>lg9P6rR}z^A(Msww8;^RJV&KWqsqkR(=?F70=9>241vY>uF{4OnbK zq49^}N_|(pV|fY~q4IcNr(Sh=@J2h^74SxhWCD3=g_=?W{wWS4%GFFQSI+`hDJ^Ap z8{6tHcm*1#83q`1A#hZ`(NXUB(Mv&}(eN&*^It$cyg?sDX{PGDZn*GJ+0)Ic^b^?> z-?K~fK$JFVr53qN>vzZvHZ90sXm7wLSKl7_RjWv^5iuc=2%V==X{_YON!Zj^FlSsx zDaZ-s>@@o#Gc8)b<4np-QjgXX6}DX>`axMTe1Ssa&?z;}uQU?BSni7;QxuGEcVn4a zuCu8XS{te9A3&*up;TJAQlX&|h(3&Aez2n0iN4o;)zLlk7AQz5RDN*#sW0C+uz*6y z2>JgRq>+={*J+tzx;^W3U8BMaMi{MHu9u7DLA3Wc)E=o^W;ZcRgb@SIm4LGgc)<%e zXW8oFYJ{|S?xp^=vNOu#8M0=tjc>`B1FjZdj^+8-RJe`Bbik7h0fps=&gL>0ok3P< zeD!5eT;~7qvRJ{y^M4@ud2p zUi)rw%CoRz>79F%anbgllV^)<*4hdB{sl*$K#cO+{_F{(4QCbcscZ#rnhOoil z$8>sIEfd1|uBi4h;bm5NN$XZ9l|{67p#ACqZ_Ad*wPRvYpjAnrJr2oeD_&1)sdbmNJKnr5KIPB^WK+UwdVq#qf6J`Gmm%P<{ucC<7=GfHKXL2~xEc zjl32_i?!0#r6))MK4QqKbxGqRmFEfmt0CnANU4GHr|bIOhSrxQn&*d2IWbLp7o=r; zo@YFBWxs^R-Vp-m@ny>%C%?+`cP?Fa2f(@;U@-to53sUqos4X)zi60!yL(@6hYb#{ z&_~Q?Jx36tUtyLg85mVG}?#H0iCg*=f0K zX?aFz5o%jhlBBzJpxwn2&^)oObxr$EOg#vRm>`eo(xR>h)KR@Is(GMtL$r-Rz8~mC z09i=r<&*_bkM|2c1zmxP`SeF3bfM$3sPoe(MbWj9mA(w#L>#w~-C^H6zTUJrJks~I zV=RrfxQ;*mNaJh+@4o*>yt@p?I(L0NUcP-p;JG8=#W2(TYh98^&5$ITJA>J%XA2iG zlhZn45te#bwFkj0^4UOzPYszK|CRY2-e&VW6{fX)FLi zK)%16jzrQ_T^`VbjAH@*m~J|jd^8IN{gSS%!6VUYO-`p+Whr@%F|q{@NC=jMH4JTK zO=m$O^vV5^QG?^OSDqzu0=NI`SJb~S%e5GHV?W(=&Yoq97YZ;@)_-#-)n6B58lZk1qUkrW0VzzEGTD z4#~F!G?Kd`J5FKLep_CzGR+Njgj(4sjSby0d&(rg*MRo2oQgF7TeuQR%Lw=)RGuQLhuX+@=pcWyamI%6pt{*P@MRM-Rd}wcbN=Xq)bjRH zFK7mAdULRcl^VpyGd+yJ-{Z6BTUC1V%20B@E8{Rav$od4pvk&W2*yWsQMAL=W@p{T zfE3HjdbiZ*4;1V?UQlF`v01BFpp{6a<}<=Rvm@p++5QtUD_Sv@SfyI-rkPKn{C46O zF$r$BDYexFuFj_>caD^lYwP& zl|rEp491eh;7}}Htl6Hv9E)Mr8XRiTy=#mbjs@OR=u(?B-G9Ej6dvaWGopf>Ct52zK!9S`HMYR9Rp9FdsiF zdJtvWP(c#$9NW!Em@vIZ#g{I!@|W{dv{=rSiaIFXL)1W+p~V3i`_68lDm|lMQZ|{cqj!t zxVHKh7UF%Bi95HDt*e`-s+py0%4de5Ylclf(Dp3s-O;0sYWy9lup(&f_Y@2^$NZRf zLoC=I84S3$2#*?@f6741#*I8y7g8B<)@|P?h)k-4*c?aCuS$Tiy2(-e5z~KYH;UX$dwUIv3$iU(CO~)g-%Hpsf7fAB>HhHE#FVcs8xW<2A9;xY!`Q-PddL2iA1h+;)q} zEnu&0TNuZ~=wO8rVXVOP!M-ys+lIG4yhXfj4YTohNkH#annec>@&nF9AVsfPON);~ z%N8flAC+tO5xyj1KpZ$H27FoPm?Sh!cpTnLm6me}V)b?+(usp|hb)*Kw?jkW zler+yLOY?M2lG&V?p!sKWND7Dnv>K`Thj*dm4vWK)}@2zyXG#(?eP(27)wT(VLCoH zv?ErGj|fI2qk_@+XlO_LUwm`dfpx8;7mte9;kJh#KKO%wI`};f{y*WLx5o=^*JIwE z9?~xl05uDM8V%?x+>P7HiQu8u0B$LExfq}>#)%~~X;H3$1tY>y$E6E5c8Chnp<_w| z$z9q%>IOKC)W&F1jnkzrAOi$ME9$QSX27&~}<%h*tj8S)h2N?c$|e&P|k!v>XJw zc|>@(J|9oQv$j9PMYG8)ms_;FBPp#^HNAq8ddOay7*KXk^sOie;r>y5ag~WT+V%u* zP9E!Dc;Vn*P{K(gw({Fb1$isK^;Uk25|tmffAPf^6yVGN_6dAF;O5Fa+pNK=ZzNz2 zdruA7>HU8DK>MmpAgz)x*9)(gc1cGCa~CCOo_UVU(r$BTLk>^b7rIe|b_ur*_V%sI zm^BN%p}szrUzr;**fJ)|%{rBDPCT5vEfgZVi+X^XB~TVd$_`u*sFyrf_%;4xI3}zW zzn3d}LS-iH>KPtpMp}nkM)jABt{2T=N(k)zcG=Dvhl-H?Le$%KeEX@<-wNIp{t=zx z;B`9qCuGZBr^VA%g6in?+A4n<^;n#wW%O4s#VKgj-oy1_jcra^@T=)y80HU}`IDm; zEY-AW!kyZrChgBG?eg?=uzf1$iLKA2*@Y4HvFk)cE1v z2D`X{Mk5%7henHUt ziZc`q`a0|m_e8#Tkx4gSbe6ef`BYr_jn4IW zh1Vk7-qGo8i3Zxk;({wQvP24dsW4y&RX@X$y0s2+k}wOu+NKxoM-HiRBMfYPU!Olp zeyaRv*&gqR{aN|1WY5We9UDHr2O*5gn8v(cwIX}KlNkmS<8UlPe(i1oEaoL%|`6J(6`Hix(k5)V;97UT%kF2~{guWv}zYXzX z6)zr%$4NSMy)V*IHbPCqwqSiGNW=(6)vz0Vvi)4qxsvlm=XKsTf8%Al7f2BjRVjOE zbiw+bo{?Mq{GI?06?z9Y9fx`%x1#Rxd8triPcvX@)CcFtPPz*o)jO#7h$rJrG@^8g)zQ^j0>vf z*>PiW0@RkQM~4m{#6P_Ew}T0`+aHR}%ehi9SH>bj@5?J<@azIb_IS>fj=9sQZN~T6 zZQ&RkIEeHw^|xnBo$1nbmS?k-_O?)Lz@LfqF9F}qj (}T-D1^GP<^82Uij;8#+ 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

sGP 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Ɋz2 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 diff --git a/ch9-dev/SourceCodePro-Semibold.ttf.woff b/ch9-dev/SourceCodePro-Semibold.ttf.woff deleted file mode 100644 index 61bc67b80252dc41fef75b08604adc1a09c34761..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68080 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 Dg^bl@ diff --git a/ch9-dev/SourceSerif4-Bold.ttf.woff b/ch9-dev/SourceSerif4-Bold.ttf.woff deleted file mode 100644 index 8ad41888e6e3f9f4439052ae6b14ece2cdfcd7cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110552 zcmZs>b9iPy&@g=0TX$rKuiCzDAs z*U4ngWD+-dF);uL0001~Sp^_|=insK0Pyel{|G{Y%Ax=exajXHvH!q?Shq_=SyKGF z?d*5?$NvI|xQOU?pKy!cou&f-ppn+4c5&hg^2z`Z1Zw~wG712a2;*sZ|70069HI!4m<^2+o~-|Z&9`%?P`1H>7q0ss_$3#-di&8$64 zzuyS~fC)_i$OLZAxw(P4iJ|d#TaE8_Z2tj)DQ~U$H}V@7|6Ts31(3kL!ugroIJi5{2%9S3`)^@;eI=pWZSb}e`2Pbp?V`J$4JuXP?Hxl<72q8uQC$@$*CIG;l zHvj+@^UaeHrjU2>}5M_d8vFh@2h)zbO1& zxB>AMkTL&TzcoGE+dCfL--~cS1ZE0p3ZUEtX>tdl4PgiA2cSY+vA2iELBJ`H{~Hg+ z%?uY2er%11o%J|GSjbogKhcfrJu>5DOkgZ~qTx~Dor?;*nelGoh(EYHEfj~~OBDV^ z>d&GDi0A@f&BJ|j>kcxM24Stkxe}_sVPZSLVnOziWnrEly)o3w#QcAS?JLffOLG;{ z1oU$K`N9>xl}AS0w{>3v+QKvvzwXz!0oCIcrRAL{I>e~nmxC{r9Bu%DeC~D2WPO+q zOMg#+r60x)d#|Y{r&iEqiP2ZP<$J_G3_TTozvS0f8`jylA-y84o?NNU{Wr&1eO6oM zlvgeIhph5J*`T_y3|~@b!<66w)dTi`n`GTQN1J3nHPK5$lTES4HnyEmvYyby1NFQG zfPUutVQ#)%w3#i^qd-QX(5;i&=fJ560^DK#j9hbyZ^r4s!G~C)lV5A(|tv!AD^tbaw54snfCXb-kBkk{;(L z+T?=fuOnk!jcWf-zo-D+^|h6)`ahAs2gAMme*BgM^*g!~Ys4t>%k)v3wZt!=Gf-*mt}JzJD&pB|5|4&ljTfro%#SK;8h3n+g_Ih_0lfV7af8 z0n$>ZjZAP_)m(M-6h(F!DsyGgqpAJlx&`T#e&fxrX2xgaBH!o<$;k`l%#rUwUpOu# zXxC8HBkVD#Zw%)W;vQ+)Mit&E@6TkH&;)YB`~r4)SR&5WZc*MmVGq9VH0as>O)_V=>qwGa{`T>| zi`Y3pi|=h1z0{}u1`@^@Nl)vkcj;EL>!U~&RrpL@e27|}q;F7<1Y!fveW3rvNGl># zufY!mv1;QhYE!fv8YmD7UehDlAn93A_C^UW`m>b}!BK5rbG z7FxS4h7}YKzKH<|J@Td4P;nJMHK@4ASb7!CHZ;nB_QW5}&|#G}mGSMLy@#=3Iw;h@ zAA6c}!$YI34WQRsf6!dFeWe$UKk9})c**^5Jb>Q^z;4K!sKRYvUhI>X1&mEGNguz7 zdp++2<$M=xR@>k4h5ObyrSxezug(teeta=);l``&W)#z26(0L~a;&P*W-X`W<85 zqr3mEHh4Kwbhb-=?(z@MbK$se++k%j6VYmAz43AL{y@FL?hu|j?4ppRr)T^k%Zp$~ ze&3Fjt&6MFjeNKgU4Egw z`#CZ41YA!;Nns^et~TtBzK`Y8g`aeb@d|XX74^8BGYoxgPt(`{)?($p^mKvD z*TYsYeaY2zujCdMQ@3!mDl{Dmw0ehpF?$%bnQXt zvrf_t^*MN)Z{FbDX`d_ zN;9%uf2Y6BNUeVu5O2^|qWzR{#*Gfu9pkStZ6QBT>O4gpSpI!f`@^SQ3ixi}t&fy- zdTDOQ`fBp*+Jt>F@w+w+@&yeoJSAXKzW5~rCs?x4&LWP?T>8a#%d!6KvvkFAo?TOB*Lcy(;EEHSz;9Z~K-xeDec;uF2<`3X}9bNJ8 zyL+4}J&xU~st?wH#1{hFJ|Tyk&%({H$93Fr-MU_5UG>Z+zhs_GWt;)O>OlX7CCt@N zFE^xxu)+ETRRUYGE{nv2C%mi3#V?tdW{ya&lKDp&4UitFy9?rRT+}yUH@--XI@!ep z+rh*`d+1gLdop;S6;#k&PW($4Sd>X#nw?6NHwcFaqN|)si!Vr0q zmZGAazecMl*n;z40Ab92&;RU_=v1&|om2FXC%)r2Znl3%YQ+`6jb@wg2ZtHuJMAFX zO_^S0X8gCc_-|?dX}kJi>upClO5czG!1!%E<^$l6=#jwz#zBF7ZNF^o@snx*gMHFS zKSH1Vgv4&OZ$@D_2V>qt2{7YP9aDdL_mL+CXSIcVE5MDmAnvxPjmR6)j7TVTNH`8i7&l0P&l3K@62XHKfkhIb2ND6v5+REcL5-l2WXU+*H3D3%21LBp zt-FGd!TnJT#v)|KV(7-AY{udU2O@L_V)zH5d2O}%{Ei1=A&qqLTDJTz_H7P4dSa&3`T`|&%(4_w` z9*~tA=4_^%IjUBVSzZu79pv-OgE;DQNs-&cK3PxKJj+~;f@u=BG%@+@JMlp%0zw!G z&ej6yUn2Rh#eGMv4g)*?(rl*r)MxZut5^S}k{oJzkKms$L=_@N6+vMU(7zYQ=g z@33t9*NWYi*`C^#+JT@6P1|zVRIepkm8fP?QMI&yZ8z0;qy<|gU$x>Y!<~vZBWGJ$ zN4o(GTWdS-bp6?pt~*_A{nQM#L3}ax2BWd)2$wr2Nd4h&vVoI!G>6{g6%E4)B zlg;-oDuPtHiilLi*$mD?v^oN6b7)t;p}uWLc}DEK1vNxhzqq$PhEh~f}VSMhT|Y~ug-UA zg#LYjglBU!3-UuRzw0{fgb=Tw&^d5=9->`B{hy_71&&L_jL0j}m`hwsmk*V9F&v9PK+0=5`!ZP6( zX2SvEG3Qsu@#m(6-+AdtHBlZ!mQh<}>OrCwP(tf;bmss;KU^Bf#p|fsiCnVCml$ft znj0)d&X-2)s1kcajVd6BDzs|=R26n%5fEk(Lb;E4?eUAWNXL7h$%}(<#6Pp=c%Jct zdqNt!d`8yawek+KyFtIY38=&5UbV%-#I|lJrkRSY9Hgoow{#4cT8sPOcf~bx#4^jL z=oV)5jw^Q$!~XFbJz^bokwhUZvYo|z9I4Sjhz01)Vg|}$s^e_J-#v!_t+~d*XMxHZ-FoXjW8^U z&_{_dWFt2KHa+aavn%x6iuqG#&{m@_v~|*fB1oSxU9&Eo)gg4iA)wG9mDoO(*de!Y zHpGH4rMNaJ$KJooICC;-s9t4z^sKBKUa`=@ICL_N6k8v~(nz*^jJ3FAxiM2zH&bsb zQBgROBrDQnA$n|-50R3^>avzyrt>E*NoscK&Ylac_o;RF&5|{4(N%6S+E-X{+w55P z0emd^!xeEd>3nQhteeL3GqR>WM)l^wW958FvL9p}e5{LN?9~JMbwT0KD`16z2eUr1%w$zT>jrAzCx7m(euv` zq}RmjjGXJt5L^tTT1-E+n4#AhDA$>=v=|vfnYcq4aQJ{eG-hBlhO{(5Jn#PY=j4al z5L)eFV@UWZxkM#UUrjJ}Ai{1?4*Z?mFD*=k&{SHtci1 zM;C&vgB{IG44pfNr+uwz@gIO9uP}omW&k$~s67-2F^K!;z%5U&e}b4Is_)&* zdXr6y)kbs6{}>t@>+9b+c^my$niDgA#PqxjGSmDda_B4#^3hx+a!m0W372pKG1ME# z6eSVm6saM^6zv>Qrg#AkON|JW1s^oDg>UE3&CR_{=K!C~PD*WTH@P9LkAA=BYk&y( zX&CbSLfkbw=x2h!xjuBnsUPw$ErotlEs27+#@fNb$lr8Ig}K23XVMZPI1=F&!qD2M z1{j9nA|s~?aLllaq0*Q#;u4s0;!+Yq;*t`A;?nONc*I0#c+~l*c;s`eTzdVkT!IBS z&IQ3N&WVHavt!7RbCk$zbAQr@r-e$Tap$m*)r*-)i;5aZ+NI5;-)VA)iI{V!^I3Ap z=Uli5U^%<}=@L&+b)!w(@g}xbGy+nd(JN{pdw^AMIA^s#RqMv^hD=xRwQJFIYvH+P z@wiDV3pzF_&WHIXM|@jQpf(wClgmJP4@TtnT05dpe9!shcB3`#NqDK}8t!rF>Y3-H zksk`vNMFPC`cxk=?y+radrH_zD@$5PUgNfhd0kyR^$X`2(7L95k!I8b2(e_~Y)(8I8j*y+u3$FhrHEwJlQzlqgAd9C)syNX~fx$0QC4$x43 z&G!N$h-fMz=y1D^(7<{9<3*4c;qp7LBkm?dL;JP(4WQp9f77(;@EU{TZ#U#QcLjIp zRcCt-^@Qe&dM4}VxU+9oH+PSrj?@zwli$-O^sH-*`!RqvoM!|))vx~XiJm3$h*WPD$)AvgBY4pxNHHNmVTPxWrWpm)ABYd5bRpo&0dE&EVyY`;h34TOgffuQ7>}Aq3W4r!d z>8at$PjMYYTo<1yBc~Z+NBUo_;NiNzc#abPLZ`vWx1+j`7xypFk>@&CTvtkm9qT|A zIkqK?9SWGH;c0$okR7;nL26(dr5|I_l11+bI6H&}DRX9-13V z5iwhV)MWtA17Z&UMT~Y4Wt>jwb(awW%6zjAA*}!-txNnKw^SCxTFtrKuBH+8U>*Qp z&Fb3jx_Yq=tU2@ls3u0>{=8!xh&t!ICp`c@<-aI~`$VIsxUX&J7chHpo|n8@g=g@$URvr}ed=$w6{r~S0|4Vr`ywfCa4`tW2kWJ@3kxl1b&3kjjailc_(j+jY z)g{se5T*a7@sw-eVaxI$$Iz*z4I{F{~1i0Yc%4u;JR64Y0z-X6y+hEqG!uQ zN1~S)vWBB2`SgR0iYXQygk9J(+P8qdDQHYy1=rH*#H1x=i%CVJmz{`^Ej=8Xn1?Z9 zHW$5dY)n{1U)ShFv-#DW!iHuin-yVGI5o5}i*Dp)E`1}{n6j$3uGPtW@yj*b741s2 zBLc5vYshQir_s}i#Epe>@~RD&mNyd~v1?i^TAoyC1aHB@keMQ*m#A43eZk$3*Sv|* z+X+k^jC1kom2--QXuH-qV!K!+i!SveiY~cYYBk1Nh%FMeID6!W6njKUY1WW$q4wbT zY?TrJf{oG8iEEwR2|^vRbLpy^bK0tzbIal45u=ZQFGw3|n5Qgr-$tzww2Pq4ZyBe{h^Q)v8^W0-H?lfWz7f06Sk-#f>16aFYL4wjwG+~h zs4A%$!kK3`N;}cMQM}JtHF?$ZX89m=P4T7UOZ6pk&GDt=%k?F74f3Vs3-Bd&P4cDY zOYkLkjq#=Di~S^g4F06x3;QH_O#h_e%liEFnEXk_m-b2a82w4dH$!70VB8?FVSx$_ zbvp8#{DzOM{EmS=0k>W^jF#%>*(?+Ci>Fm$+Q96NABkT?mT}nedU1CFCT_|j}*_iMD`qXOwXU_(S zbuo8cR9DPppWY*ar$9fxCsNpI$B81e*Qo>a+oaM^!gcU)T6l^DD72)76f~u|CG?nu zXT)r>Y1(!2vKZbY^g8C$YUv3a^vsD2H2nz;bj^u1wA~30^vtO@H2o3NaH@Uoa8hj^S)zReS?YB>S(<&EX~MO?TD*N&bG&_2v!M1P zYlAa2NoQe4ZPo|GR@ldR&B;$(6F*`3za($mo^t(Oo{IfYo|66arl-JP=x+GvJc8>aYQ_23#)e}fMI?0%sIMD!~D#Yu;^{xJ=C zC5)tk`446)gicuhFRneeJMTLRWoVuGjGLN}_zAENT>DA`f_8shg*@w_ljZ^?8)Tig=}i%W$H`(TE10{%bI63 zG0WBe>M#FI-DkWi`4o1mf7$*P69kqq&T-hiGe%_*PyIQvxNCpmpf*$6sZ@q$n&YbD zz8Nbwim5ZzkgkMZ#y<;o8S*sfs!Klgd0EUjgpZ@Wl!JZ`1lq|Lny(bK;Qb{q2g zTl%5*$?)ac3l%|#c7P}aMH~c6gvIuQJOr^2SMlmZ;huRI$mzO&?y%eH&BNr2+as?g zwJdch>F{U$5A+{y3+^qJE*>9pVv}q?@IEk996?k-?|O69=62Q1fUM>J(dbiQ>&?9T zRwq_x8;4$}MJ_^e7G`Bma6{sPDln?TF$&y^u<*i3vpkJ3Ho{@EoX)VkLRYi&>~&e& zQy0HhS|_^T^zdgMdZ{l}A5A^kyTZ1$ugK+s7j|`4`>-*Fn6HsLL9Y79uhG1rdV2LG zbP^MdNtwr#>J!dM$t{>NBiITq%;~wJ_l@(Y6Fy=Cbbj ze5CXjp6;nXrUu#n$ht0UI^9 zH}?y2z_RZWb%x}9ihMeMW`3@HngwhIga**|J@=*dRplG!+vX$g_U&FJd?w^ICtm=~ z)!j2bDg^f8YZM!vX++?r*2;)IlOk>1D~~|CuS9 zjbRyCy#~K2N!F`GXAxpqN$vTRds5*s4W^VyQt2_5+Yt1UVha-~i*W2lbQ=+~S(|&C z-$uO%(eSv?I%aK}w95gqhOn#H&0)M|1n%g1Y3%#dFAlyLe&`k=2#O-fXiMPXp#@c# zq$LreMmejr2vN*?b?$|v%P^KoR{69mxmH(AS4^QYgvz6EOkp%s6XWHHW8sa)cxzgZ z@dF2w29v*WyfK-CyM$H-Nc)usFo=hUnTcVEF$x_DG76cv_}ZB~)#a;?=d(^4?(tq( zKSDlXm4qbifB$R@<6}S_?sL`vP#dD0hZ5VPSNHk2gAnXu4EGhKBQyX(Xd+VLjWB5| zqo!(kAA18hV957zbt2E~x$%3G+@bCEQM{veRNzt+ij^`{@l{n)R8>`ZSvB!g>7$Ls zpbG;S=QRwn*}5|*r>IPQoEqEK-VM;2v@{2*9+t7rI&wyiT*17$K1L4*?Z}@y^`!7G?VNla|G@u^ANH*R^ZxUkZ{%iKJFJud)4n}_ z%llvU|Lt;Pt~xG9Pt5Kt!QZ34HBd4_nvc%pc(I+wbV zI>~(weKuSAp5&+t4KIGX>UDg6IbAT1{(uRL{7rQ70}>RxzyMbRoX!8^FZ?siLSJAl zl{F&oY-rN1sXGLp|J4WW`*_cS-}V=u0yh%;If4$Nx0r{5%ObQO3ofk~&aB!!{PD1f z1M?;rvGx9%JMDH1{a@~9_CLa&$Wp(IsWhdPMiCtSvq><IY~jlRoUxK668A!2W$ok_PF?e`W6(()+C zg5nbr?|yXHK`95-nPRuuly1EqBpCv0BwXCaAnCx4AjFtSF=k?O8pc>G{mENXKc{F9 zg_5K-W4<++#{}UbvOk+7$_K6GKRySxjX09M!wY+QF7W|SblD&hG zgHEc_Khe~P7g3u8bX5_Tv>%u=I5YS)xi}eL!U){~1~}iBayb5Xy&bKv0T-h;CjXmI zw-(@;n*sP_(MFXEa`wqE#kUK9y&cUX^~<9yawCHN1H~ z<#^5fuFlT)&eqP^_B!@zPSf_-*`be*W%KhFMYOQ0D; z?ujB0&df4V#2oey192a*u0rUCB;P?5Gs|SM$@mhZMpX|eZ;?IXyv4eS{S;sR>@7OO zlzz?uPbi&}KXJ{mPB1x;Y0zmfbWk_(I)74Om1CA;X(9Csrwy?7PYnFI-j^7VnD~Ls ziRyvzf;L5vgOXCPW7Gy50;T{TfK@;s(EQw)N4!(i+Y&csC-O_WQHDmY6+I9+>^`3U7Mj&{=3;H{Q;mGT_a z6~4l_>KyA4Qa!g~iuO=x6SkYNCtQCBYM+Hejm&K0@eyM@r1Z?$f8}?jhyDN77(!;Qea2tZ!L$uE>lUXE} zL!sBb&^gxG8Lc!Hbi{9qbS{%p;VnmN%D7d4Zb#LPu@#{&WnXx+;8)JT8rU?Pw{~(x zv9d32?b~#>Woyaan7lZabE52q<@fIy3KCK^%*yy$%Xu}bbtt3Zk7R=n|v2VMlw-@W7<*DY*=I-i_;I0z4f$~_? zHPl(ymDH8i39S#iW1DwWv!8dwfAxiAPH=*MLa<6O8}t%56nGf86!;Lx9XKQ8A~YhL zH_+A3-Tx`kEpazGI@)Z0a}rpFTY;X1?S&KsoY^DY6W$NoFGT@E4nrwL$xD1lnn<*q z&lyj`PFzp(%)89K%-K%5@iVsOj{EP7)g8k9*VEnSw2%gkP;LD0jsRJEZFGtFR>A0# zrj_gtQLAHhyPA*oj_!x-uLTt$X*peY z9JIKKne17zTu1?LjCBoR`NiOXa3pXB$Rtj5S$l`LXhn+Xd2RON$V?frAR)mBdU%o` z!U&F$p?w;A7JsK&4yHkX#@$vw9q=5-qnntwj*uM zDc7%KF31mOHvw(_ovV{wU1*a>|ZjeqwEp6OLO>$7&D1=WnM$ z(vV5eU3)K>#R|OmHsAZK&}W){S8u3Gy_KVl{JG@owiUab5STF>dtkw5jU3 z3odzU4aX`iS}w0>WH^bb={@Kf>_~98-4aaOb6Y5 zF(tMI?}G+VVQs_MOJvDeA%b|%D-_VZLpY4$w7FFkFSif(aP!&oG(6G;bL2WjA)!SB zj5w-e4B3_m<6Xk9@%;BP`V{=lg*G z%~U5W%J<>$7tZb{)jQ@I{n+!zv8d*w$D=`bo|X`HRuJm|30y*73I3N`;xIjCGq#?8 zm5JlI>rHpoa+h~AFO3o4Xc}-H7tJs&1jH>!$W>Z3yUwIN`idNG3z3QQlwJFzRJmw4ghFBEnfPWj4 zmrCM1g}-^wqb7{VB?$!sC3Z4B21b?QSWg@oWUP|SmBhB%ttZw#6n@DBTM-d`=JEo5sgjC>XC4 z^(7gVcpmQghhj8XnFabHImo2)Pj2= ze!t*|SMb0^YERc^uhN^@5w6(zPzfw{Itq1t3!&FGPqO5^$o z?Y*0!6l)q_lc~{M?Uk7Br$F_1=aW6b8lJ`diEOH2bLwGF z+~k?*)s9|Ff9zd@?3fN-inV3pv)yNqcLmE7GTLXjYK{SNdyaGbFr<<-qe^u}P{JwT zS|o|KA0Km-;}rW!`YCtbR5GR3KN4*8DaW{B*$@^<`{igm-i?9(i{#~ zxy+(s5q}pt>>>O7cm+!`g;g0Q2JXEQ4apQLsj8(%InQxXW-8O8wc|kPswD$dRfMrw zZ%ggR<>4Sg%dJ>f)T0X&Sbp&u_d}HpeY^QH^UuqVzpT`qz*G{%v)zuo=fSn}Ke?{f7%8iC zBMq0Ef8I44ErsRs#4DyFn@`{hyge-M2mJ|=W$}1kR^~rO#8*7W3^8f?t`+nJE!}o2 zYJ9@AcYIsVmTh79UAN|Sb++1pSc&HP5joF74pQppKrd<22hZohCvk#}&o0#a>1{6p z59R0uJ$J;m-+zrP4aqwLDe_WyBh0kva=M&5Z-s36SU*265Vu?QgRmr`FS|^@-(k-x zmRvu}e**Ux?Qx2iyP=?DVevfDUP2C_?H8&%91gMb3aC)D25;(GcvO zXPqlQxaUXSo5xuZlZ5At_b>b14KqHX$3)=WRT0*w91E#z z#cgdri#qlO?P1n&ks)Nw1361|wY%par!tHCy>t3J)mg9Ee$#DC&_?OhIHZZTlhiXU z(4z6*lBeqI!ry$0X7-J3G{)sWXD8hZ&%~eRuHJ@EGuGv=M+irv(bB~}6*5Ft5|O#s za|3K_K4*+y-7IfQ9zpU$+-yDU&fUvI8pY~W#RNIgBd2={8Ea4+$+ z?d&sZDro?x{FSgZDo1N{Qy{5FP8FPsR#!f1DrXd}{EzyS(8k6Il9@oIM0yNouWd_` zZHwtyC5h*DyMBL%`Ol5YXU4YA;Q8yFwAePK*2REYWOs)_~i1ii^Q zEebHZiJDlg7&@<8@-zEnusqpum~jtQzod`?3R$`=fMp-SDtUZo8tnd_a*L+n@7-fX zpRBew85$)yjx!8LD?ubtOzB^bBIz~$V^=PVxD*%H#Uz*v%GIRAj>o;p;Mcvz;ndOzl#nX)ol#v+ezOii*0^hh_&~5 z;${W8GSYF4v#n-RhtQs%1a*X&t`jHh-b_z-K_#N37RqiscpdTh64*E;6+y6Y@+FLs zA#?VWteG=49di@ILaR5%NU}9OK3)$K?fi{FcT&+U^6}AT^c8bh2I@YK-$bcfby0}z)~X1};UqNL-=Cr3HE7U8efam-AyrfMO8DOB#bshx#nk*yl(fGA z)9~%^=dv!cm)K^$!-lo2;N=+E%h||hx5-W4`@n>)gaL=yd5S#@Vo%BTRSi9Kj}6>M zii7NICX!+^qHkkOg{#0&H%pRs65$&7UtulzK3&!aP#Sw4gy394V|HK-f^G&_g9gaa zSu%*ptKU*+aydOab$Wqc-jen`8YCgvkDul)?p**R<*m@T;Rnc#qdYxW4 zUdymUOWw971+BSpR~+{CBe6kHuHi|e!Q)K9t~sOSToL7!mS&0`7wy)Bq#zb1Jw-`R z$>YR-FhNFv4(w|g0#r8>@oX$x2r(wE|BUTCi&@%oV;U}$`-YJ`V9XZeX_=#c_{D&9@16d;n=!Eg0sVOPTTU$G7J(J8j5C*UnAb^Ci_K5NNRA!;X`i z*@6oH^l{{7$2U{K8xfGj{Y3wX(>D$V*Fu%8#wBbb^!d96z)M`md+_fAlO+1eqbrJxTnMsWMqgIx)Cj1mn+jGLf#E6>uu--lt6>s5LN2x-b@>Mu|r z-G%orjs5)i9NM4ypxyoy^R8896zDBh8LhhP{7&*4$;f(-Ghx=smgx9gRDK!a8r=_7 z!RKEZFEG~}vBqDQSegc!^Gt}ZTG;do<4H0skpb9&U^43jN z7imJ-bM3@K)d(HUr$H?Zipz z*ZqH8H9xu^oBGsMaD-NZnbS+lBaE~@SQSsds({H4Q?Ckp1cM`Ml@N;F=+>RldFWoygmYLDw;sV{zhLG4*VyvK#tDBCYO=f~!aUv}1K zs=S;IAiC{zJylx{*>*kejZWyPCA@%-Pr`EH0iRocCv|@W_kPgqC4qiA4VE_Ur0IpW zK7Sk&=c=w3BJOCfgx&Rjj;@A@ZwB~lzl>GuWSH=)K5D|XZ4n)o+7Sx}5&DHgcoKX&x@}q}($eD#@lotvk+_!gV&@vYLAJIozVivOKH~1etaq*!d1DEx$9s?P z7otVgS}rD$2<1t&-qzQ~-tU3Qu$i@UDiJ+|6GM}hL5&invQ?j*@Q!n73SM&*F`%RH z9#~R5aK0nZuB{6fUA)tW0g>#7m9%3f);%1C6QBOqOJYBlW2?rN;0?M*+b5|Lz#fg| zbAE%ztmJ-c^D+VI&ckY=B`Un_RzhkIV&9Zm@7-4$Ic z-ZBK~1opPc{75iE@iX>*hb*IxN8y}oX>Jmqv4zFx=}dpws}G)7e{FjaQ6aEM^TvG~ zuf5J8wn9$#J&XwICH>#>&`{_+hRW$?5O&t?LOJ=CA&nPE=Ltb*q6wV`Msy=Iv)hJ8 z5McCq`mL4@m8laP0SJOdYq4dpsLjQ>WINimIGuP9Ww0srGSPr65{B|H$8XUGgs zc&dh0p3B=C!vL4P;*9*`k16iV0GCN<2IeAGQr2vUTPVpFm54|0G1Uw7K}KnogD;hU zi1W|9JT?HrJL?7c$+w?l-0WwbioNyMx14a$t&4yCCnY8qq8+lC^;x^F1FOLn12JLw zjCK{<{?{&7htXD{sHw@t`B8smNo;tk&K`y(ac_NPzlc{RFjwk|?a|cFhDBh#&soSc zG}}|mYux2LIYqpx{=zf9f-2Qrg93RQS(d#u?PQ+sc*ZRUF$QRjU93+lpM{pvQ^Lgc zV>ApgLn|GlRlnvn>hxt5ULj@EPZs$nry_`ft`<6QVGYosGnlbfD1&}_PQe|kUmu|t zf$O7OLS;_w&LWb&jt2pC!kiw?9B|Bqzi&?LLFtdQlXw2?L-D(V6iHlclu9SAccdxh zl8aLE&aa*Rb7}MR>#H8%4ayDlnpKv|#O7sW^fju?W;w*VM%4f#br@$pxPkLr@>n7J zfIHe^!&H>?B%iL~2X=D{45#L94B@p3My`CXu`GUDft->+Z_N3BhGn#ztww zIS!Z$gooy#D-Yd+*iQ{IDmuE{TM@oU5gqYT!7Puou|hD9UC7){Rn}~h7-xSCBi;?N zv}O&`&H7}uPk6CsfTu@S9O%lVX2CH~Lf-5#ft`wjX2|sBjqzZOnu2v(H$OWmF4dd_ z4IX1zOk89GdEP_U1KA_X<>rC|GM{FqRJ*;f-fSnIJA{lWy#46)=R}Ca>IivZx;wH* z0w;Riwxau>J@S3|Z%L(5`3kD#AnRY68$u6QUTEU#QMdBq+|~N93K2qgNM@MDgomS} z;~Yg3q2P~o6Wl(`VQ!hP_DV6ym{{6&RwNe>I=Wt8G8YF%0*z?VLpl*FTLZ<3R(7*F ze=rNQf5H(CmyCpP{)HjBn>WBNn;tlrFRnqNKmC)ohNX^GXIxlUribc7V(wOT4bK(= zH_walE_WPyy`HDph6dROgSQDIj9DkIZvRT(p5v~%gR)+l@+hL_zzL-(bm}?T&-no2v4!GHhN?VRbzUFHD9o`Wbs?oU;O>0 zVqlsqAWnspABpYu1yZYuM9~Z?^5NtPw>(LkcE*|ml+9YZ7})X+kinPLxn>yz;H%G{ zn9qV31UoI3?|+#_nV4#mTz~(2@d-p!B4#4LDN@^2fPuxGhk@!f1Mfs^9kY~c@rFNe zMr5D7kBBL?l{(G5uu`3kV zENItVJRHM*+zHEp7%z!Z319Hip51bS;E%(=tGaKR%{&FNPz0T8-TY_bl)>iU^C~Ax z7dI}MJ3D8kEk%EG z`;6*QlYt-9;AbT_Xm@3G7`#}ou=hwW7R7M~x-Y(WJW}t#_^R>q1c*E_U2`7Nbwjv3 z%=668ym?=JPdJC0w;6FB>c2#TUd5*Mddyd@2|t;%X9DTi-=VI3TILttWs7~us%G z(dL0xLdhmCIW1^R=jx}QRcl$zl-7ayQy&|vS1`K*_R2SCyOR96IseSsE3v74xp-?I z^d79$d^J3yIg(%IrtOYi)S{jK=rkI@bkBpWPo!V{e*ku4=a}m!##k_Emec z(sJdB<>Ty%rTButhQyImhYz1RvT-#%$nId?40kYe)82bGQM%^A+4$^(Ybo7)&xh1Y zme%$yuRD42wOj1`>P7JocvlAg?<4E0_uTI1@Y3v$!nhqV{p?J?Pd~V%M`);o4ceW(9s#{SH^}zLEZY;~w8jAEI# zPNTQ9^o{6~4rZ^*VZ1weuHh5`ym(H) zV;tAFPa{4f;C%{CB=yZMn>Qk4u<@(i>eHy|SG?mwlve*u?;}D~wsbc7Fu9t|AB4H8 z0UKeOLN>=3o1_Ugd{oyUag92P>r2POewoYN1uuujO-PO#ZKbQJ6c=?n==!8iR_9T1 zb~(nb#|$_2_gXxDLL2nP18luRTik2f7DzECg!!QB}Ui5w-HxdsoceZa?C{tTM zyY-T1cCDF=_yS(9v(q(oHlK=*J1DKiYN8b=AHOeR>kkJ*?fq^~WyYB|ImYAS(O)fF zeMNWTSKm~B6LOC@n+0=Y98dgfu=oWJYU>a3ZhpqW<^EYp5EsnH1N3!-l<_7B@lnLZ z_Co^xJ;a9*hu%j#O>ft1@9rPC9zyP}=J;OvIB;wRtqBJd4haSdZJvveN%P_{0wQ^LYvo~16B z<(6iaV;227TKfN67yTJYU0rO#l51Xqs?Ve&ffsHzw96TvSGtH(U3^9h;D$Nn*9V9-BROg^md z86z&&Rrd;K!#&iH3-{0}(R3eoP9u@jp*ki?x(xI-mK3k2DIMk8XG3`>w0F|&Y>hbq ztGSP_F%yKC_JFv~6RX+0Nc2KO7tpO2T>kTsSC%elc+E3jxjMXz6XdHH-eo+k8j-!Z z=8OvUkC??eNKjt^iHZY7UlFPJ7Ga!J3MA>DIir*XCdHwb!b3>?$8T1{$I4gvi<`>V zE@NNw>c6Hvw9$R?JohjS(J!D+@solu_>`afR5#Jq!n8m{91|a^4afB_)ncPiS@Gc; zDzDUTD85SjPHo#ZiH^+PItfqIZpr=ZmEgBp?Tl7p^GBn^v$aeym;r(?qicj?^{EA^E1+7^A_s#W$icLn24rw zBRgMveBXT+^=^CMHTOQ0%pSbBR8lK?$*rvS1JL^&w26=!c$XHJ77@1!_-VxL0{$Ju z{Q~|N;!XiSi@00hb1mZ2h=+OmKXUJFuGxN-@SR%_UnAg$5uX+Kln{>!?Rya)6Zk0h z`K^{u>F>Js}Voga8g$9Emf)awq}U- z4)x`xckp^|uD}XsJmmK)hY9owP3booH2xRVE1M=;#foJO^>gdWnPJ^Jwk1%MlVauK zW^1nM&h8mrwS_5YNjbX*S~^;rB(7j~)-|VeI6!BgZbB8;V8$YD@>N z&>#$wNNzY0X<5;{`MTAbLV#n*aaYVX5DW!^9>2ZIJyjkL=MUvmiAe{gtn+s*Oy>_x z1=$b?dIR0P4rhv=99Gz$MfUEBR#HOlMSKkLuxd?Oey`&PydA7xX+N&{PQQFP;sv3% z<`7@0{XTsbari#Aw;-MotbZDDJIA30A?Vf3^;)69&mitqaMGmWatp6nIQO5cS}2dG zoeE9a+?Yr_mpX>8-Z<3d47Rf%C=~HF%g?o}A^q0GOjokiwxT2E3?y9^4_c&z7KsX$ zT14C`;Ey5h6!6oC+ZhhGki3p!4y*iW=MfX-6j!fS3M#(rWvQ*%nk5wrg#l$|d!X>Z zK+m3imsF}MUZ7M}ycufJF@DaHP2s`##rO-kaTupi=TSaIvdGY6rAPiE#jxPxpt}1t zS@%&srS64+X;@&IR+utesVtUMW;i+kcn5hDa3{mF8oUc|_CJQNl@<}VDmal#=NZ01 z`VM4%_nN3MIb6HixJ9wOTSTK2vQ;d%>1To+V=Rm9Wun}9y_A*{Pr&LHqJVpze_Gb|HYQFPt=_!(+us>%1^(|%o!gtcN!0{OY@8dXB zM+Kf4&eLBL@6zJZS;XA}zKFP0z)vG?7x3>O?icXK5O)fE?1+bj_9eul8ayNSB0h$A zSmjAK3o%_6e819uT=Sird^zF;fzKS`E4AOJ&mx`{+FKCMXz(8CTEu(lD@v~^}&MWZ;#G=U- z7cKQh^pKvB)ofg)qd>`e#bSdf;-1}wcpAXe)YmOR>nOYPoy+k_D$W%k;BK19Z`PNF-X4+ zW2BGwk*z$ImAbfy$H-d&hxSql@o2eyDJ-;4Lwk-xWN-v+F;*3Ay!2idZ?<^v26~2E4aj(Jm)5>=URqhh#m!z|m^>B0q zYr#9zTJW8cvofjM6aLVAe`dB#DFN?jbK50Kw+(b8w#2`><-m+D+!IR&60uaLcgvNt zUyW~0bPj+N=HU-8DQhcIgq0T3{lUBSS%-;)+ElGX4OH9;k9a(F!_<}6qzC)GE7F-& zTGxToYAc- zH|+1U-hPzQXgHK`c_t?^`R>3-cwowB8M|cTkFL6kNU(!_x%4l1cU`CAux2%{Ef-lW zoTc~bW9k~*(+WqxX9T>D<4}7U#>gO_CkJcdU0PgPMBFOi-$C3j;Ey5h6u#eycu>IY zh=&y%@@2zNBYLn=jcCmY4L<|T8N#qn^yo+3jcu~trkIvEJk2=LUR)e?M2j zrSBl_7w|>Itpa`qajzDqKS%ukX!{EQH;$_T9N(Fhv|^T4Oe<-{I`NTo%-}o2ozG{E znF6-s#11p3Y1%Z@Bww%%mK#pKd`a72nSX84_A67cZNR$U+tKPy=X2ougOigqZ)YCO zo0+#mFN!Xod;2(aHI4ac{X9Ij2>;LK;iekAcJDXAQxHeizc0Y?+&tXB2>$bVxV;Xa z^9uKe&%>kCTNEYEd#mwpNDPdIJF8gn&=y~^l1u!L6SF|wx^JNG#EQ?!2Cj4-wwC;k z^vclZ9p?Iw@~ZK@E$Y^Icd5nb(-*W6`*5k;dH>d}=U4LEwyrzj zge@Dl2z==0+_*xbV8lNnx=v$6198l>ln|=C0x@Zs7qoD=yiTmqNP-e zXn+rsFgsUtw4My{3_6Oj;6yE+fx7ydM!RbD%w(;dny?SNztV@qiZCo(%K~Wu3T%dt zA2tG}>AEH~9(!meoGHn*9eIz2mS7p8o$g5LctIqpueUF6wTIj=+0e>L)e8H_O!ALS zeCVcnGzmY9eQyJIN{XwU9xRFTu%yx!FY6M0A#4e2?>VbCsPPT)X2WH!X%=N=1uG@6bQi4cSmyx2$@5areaZ;ZCQg1wuT$T?@Jt z^@h0`braSR>ZK2%PKYmAK(}TEc1UkpIEI-Wo&7oB1uNWcZu`*c-BJ~2cYF0psah7y zn=E?N`md>B8}jSMs}B`+jITJgv$Yi%`}e@QZa3!}?{V4EZNhOy+gP*8uIUn^3*mLp zdRjgvx{!>?0k_A@q4FFt=X$uI1n1w}*}qDT0zP}fVz%*GkL3Av!sJ%ImpaBrsD0&I+zR=oOv`ZfJ*D0K6J(tB6>LIGdM z74*ay_v}Q^hsM^b6?hpY)pT`QjjAB2 z;LsKu+}HqtH!NR6dSSkRf!w4(ZCyr204#jpx~w%HhB=`?(qOghVst9b!@;bI4y{h~ za#EGlwRW&)Ha#$jFb+6&tXi>VU`!jdxsqn9OF8Eg?LiBR6=>e^FD zOn4Kag5A}MDM-hF-=ie`s6t3v=ib3IJ{QZ-WA6#+2v`}$hv50+ zCNUWy{=r{{#ZEe@W4Kx&Sok{?xbw7Fhe zCZaW=3Q4`i!+BC!3E^kK0Y9&&?@`9w&WLr!8DZ&rR8gVUY|A1i4}%Vc3KV{VBGGU$ zhN!-5>a^#j10C848O$eeyaZwbdbfcGT*O<*inJah(BvvCd8hF%h|U?VJy* zGv6k(_ARKhwP`aq5I`e}){^q7>hA*soLT7Mg-U-5_zMYTp^;W_;|{zqPi`EkuW$M- zS+2*^)Zr_oWg3}=Nw5}9fjf6phGyd@pJ`68XvIvR+uJlbo^0zt1G#|JR2m7V#xsK# ztkQZ6M}VGRtiv3M1XrsUGJ7kK<;WqW2Kt0NpzP9|3vRi(bp7JJg>vY>s{=M{;< z{tNmK>1IY*YdGCY(Mb#WZM6ONB^}yg)|`ty#fjgV2I` zJ(~#oQn9cpWX5>vz=a+AZ`&w4`CQiB6>b|3_wD+__BF%HEBz{+o~yol<+)=Q@9dUm zU8iqi&6$;jp%bzoV*&*IE6B)zb@0ev@LTA;O2k#~Mo;}!iQYUicJwFE?vkJhq1~%% zbIK-j!vG;}Q)@7Lu`c<#1Tb10V zVBgW#^5GNL=?#fhZt9!1M1_g|rRidyn+C-~YFeZl3#;`1}Xz#l74s`>xb<< zv8(IE-oAaEo%{O8xMj1Ep0Mrky7h% zrp@@A&Alr^;n_(eZ$`NpciEjAO{I&drx4&*uH?HSfy!`BX;U8|nmHFVWyLTqQlBE@ z-i25}H2)Y$d*S)Jn1S@;BrUdlNIyXlO@rqDN}fMSo{Q}d(od1+9?(1@_@AaeHSagv z2Ab!Nr+J~vPhl>g#TK&%BW=g-&d%K(or3q!Y4q7N8k^5(^jg(wt5-MhxzkR+esJ*m z(@*={K;Bk4WzFn?4x6oG|JpUDRBWI^fdV=c-+cVBh+B^~{0qjSnY1Z57(iQUW6?{2 z!N#%ZwpvWmj~I$%3>k|0JJQD;i3+|}<~XlzCpji#5ewc%)BpsTmk z(N}3l-Qb)T`+OS)GP4%_n%=_7%=~!t`Hvotez^Cms%vM_qt%&x*P{FGMeM?Obj|-? z#-oXWfkCOvjLJu@P;T8kxH&sN9{m^TUym7&8i%7}M-RX*WDFde8$@d8V;J-Y z=qaax&KS^9*XfuDZjMkB&83v9DPo>Zydcua;hXD(j;?A-)d{7V0P6r?y%^sKSmTSi zHwmoEYU~sA4oAnP*Vsuj38T;~ck$VwAVh_FPt zWL=sif-@-^S?X-%TjMr864|n|^K9We>wHynh0c%S3oI^zE~ownV#e$1`X<^)Vc_Fn zD5_A?j-rEBE2H@5(HPs3*Y4b@&9$X|#=K(0G~nXhrWAU>s0t-2yPQc^i`BrJeMu;9g7VLj@&ZpaCGhpe zuy>)n%bdc$7Rr}*FO&zqfIhm5?CAR&;p=bp9SZ=zabc$)eEy^cpF5FymbwiK5bEeN zH3+(qK>jH}$W9v%3Zq{NajrsS9gjtlzx*X|!wsG%yPga__NX9t1oGr-c}%Q@;Y<85 z$%1|<_;cqpb9*PK4-;K7s9&3!&(9lzkLzUb=LF1qNo)zQAQ zE)cZtg0f9w*?etpJ zZ4<9AyLDMnRXMBk^~%{Dsv?xv&26IoQ!8&0Z#Lr^4&nYsERXl#7mr&$0`zlGJ|Wb_ z!j=hv2f)?f-B^gjMpP^0igd)Bt{uw)&OWWSDU)f^YWtjlWjkEX*!x9I#2qMi@!cH- zTG8ujZE>di4f=t!qqWu5tDp-V-F#QY?~VX<4^WTRs3VK4PLTr%>YS9qB1I5}R4K`Y zq8%}pbNj?%@)O>{BP)^!=3u`mK)ifZoubcD5|gF9+Na(iR3#7)!7WT0vB>3rOcl z`YlM4=a?etw@I3Zw1%YLspUs96h|8&{Vysfrr#pzf7jErm!$tghcMkO*l13yQf#*4r#w6{5bd;oN z$_tbga~q+r|CT_RMLDEEs%_PGZlkw-aHC*_yXR!o%lIGUsUc_Bz4<-*PahEfUA|CG z%0a=y+pF(vhjP$kG?Zd$h6RIfm?>r$GSd#dFJ$I9)++o$%gwx2X;i7yN{d{>n=M#lF8Ct;jMidh zl}V-5MUAc?ix`RA z&)Rg1Dr5`!G8)$BV*~9Wo0*j`TAR%;S7Fw~sf>cfa&yn4H}FrW_WFoP*dz?sX8vn8 zZ8KboCOaX?tAZ#~T|A`pMT{z2+L~fR@Q+QhO;)R1rZK4_8k2^RTdk@3BjJbA6vaQ` zf^5#3wy6xf&l`in$)1wSRp{R_KE9*B=yVl(Qmo1t_4*_d%{O? zE0Y}qB*Uc0cIg-iQuzNMR?1{mD6FOw{1l}D35*e+H)>Lne03SkLOwJ6Sjcx=sY4mw zYKde*0GY><16d(o-jcSf44?tvfemMPi#41LE!7F8Qgfe1e=P4Y^XEEb3*m;dwre<=HV(-lOPN!?#dI9d!16(6j zG1+LLcWSbbcRSZDv-$NYV?Jm1>+Kd(0pHnIu$jGyNWkHX`68p`^-)VPR$kVZcbGhh zDChRYJUnd29xz)A;r7XDUZq!C)G{rJseqc<%>*HbikUwIMVN#+Z> zKK_<@{+Kv@HMQolwXn_T;Mmz?@c-yJV`Jxx_MNc-&QYJy*LP%NvAFR_wq;#&+s0C` z;J|6U$&l*nNn0$sG-fOQp$pfnxo~h$_#Db-)}FI$;+!>^%$jp1mYuUUb9H*Qr*B&{VQfe;rZN02!j4M-rdHvaXgpuFTJvVq#DNUSql zXSh%w2g$k_4~*s-7-vB5jmJmp(xKHFwaQ|{Qrf0qw^^;*f)Uo|U}?!)@xgd}K=>bi zz^YiOw5~FV1qg;LhfF*aC}_^j$sSrTozjbvlM|s@MG2zLCBGk zMFRH(BFuXU+JE{`=h+_5ZNBC1Nfg7a)6=Ej(>@>l`_lJ)vR7%}-FN%w-wJ?xU;fr@ zG9OtLgYoumd?Qfp0=nXMaH52dx>2|EVGLd6XkqD`!eX$n9!nzC(c;J%rCGUJXSAA( zwgg`pOwhj52fNN9T)LJE{(wr;Uy-qTr&eW6@zIQ0)!imB8}ufH+8XB~CB!YMR?lkK(H+jj)$QywpIvFPB}o7eT!9ouy^$!*-pq-o(7F!}p zi^|c=&oz}*zJW+nKi@N*aW@&-94WccKAvN zc>Q?y&R?XGdefg(^6curWx}cG;81?&>Vn1OGr(?)P;uMP*_U^nbmi!Vi~8(IlYPzS zx30eP{LxjPnwhMoG#B`m`}Xn~lVb_(J1DVp5M-d%fdgMaXK>#etvd3SUp zT0v(i9l`%G^U9A#`eU*FNTfd=?~mwgTCGi|6+Y38@iqMev+?-sK>wP!-!;_NKjd-_ z_xBAug>khD-GO?6hEnKJN@PmYz*@S-`@f(VMt67($fk($O!W%}FL^72+@p}&O>!@t zNft-uoF%?0k>orQnM5vi>D(GL)6-oZ8IQe)?r2#a>xl=$C>F3d3;B*jY9jBN5^x95 z=g=hJ&I0bmd-e+XkDs&ra{mC9v1*fDBBdG0stKzx7zuc=jFw59238wv3k>wf(#`2< z^ttAYUTyWq(W=o97vVS*wV6%9grzy|EvOXvSfMQF-U*Vfren3)N|UfzB4-h1D|seY zc>1nKhFe=N?B9#-m}z_K4}&vv>#wOxu#%2YfyELK&ba`?mjqjwp9;ITvmZ-sS`$l4 z)f!)7)ay2C|N3pI&Z8fmN{*q=wIuXf)*YvtVl#~P8!J0$+)+uid4M-R(3z!kz?(;) z#MEa(nc6!|eR7gedD3Y`Uc1>2Sl9HQwL&sFrSukxUC~~=lbz~~HYMXfSUujcr(fzf zOcgwpmPES;BxwTamw_Y<;O9-8FekZ&`TEb0_d0Zk3`M6h)%(Hfqrk@m)R?MvO4?*T zW=gWuuvg;P>BvjnDTC6%TD`HpzU8o3*WKZduUT=X-|ltt$!qF!ct#iqwYz`gLfcGuICcpkb`?>8dMqJ^?@Ed0Na}@19Fh6c z#uEr-jf+#*!XB5?ES2=2qF3dys?7n`XVTcT<$h>EBCS6HEp{KaeNnF8DlJ0dr~$ z=3qYRMu2q9l~FH&1Vu;$Afp5lA`qce22B!3ScEts&uZ#ffbb1@R#MLZBqBom0GXv; z21rzdG(o9lBu`9)L?O=v!5kMMZh%Y?NJ4}(SAPog-tPk>S?3TSuMtQ}gv?a`mwJQx zCqUBmJOFu`K$=8I%Uqs%Xzm_>Wa|7>zen9qAlZ2-{*6|kt84nHt^`l&&HQ?!iaiHVRX+&F8(|jhNunQ-Lx8+SASn?tGj|X52KoxokC+D_PZLO!2x*!7H}w#; zi|9w>XYN|+egetXr9d=Vfp4nmXKtsUAEZXT1QHY>5rB*mNJxYP5QQcQBrHOlkY_c% zmgr|8&q{m^(N7KH2goeGndqkmX@XMANS>Goi9((Uf;lci+yI#(kc0?nrtYR*$1f25 zh#UgsH3CVAkQwT$)EijPSh}7EAWsuWlL%=+H1!ZVmFP$0hq{%zpFpxA#ENb}Tks#T z44+?%0RZV8Bz+B;omIft@+jR0{h*QbRHmGXc&R)GJ}RH%6~&8tE{VRBb6#j~QtmFG zJ2*KyRJ}mz_cP-oa_;lDK$~^|jynK{iE`Cq7&p2CWY*2V*58JB;YT6w`0>jArtabH zz|8W;n=Z7lsaz&)Gp?Zh!RDAhuVP9`M=``n(d3uzj78%7S3fn{TbqBs4qZu4lKW?u zz75u12aDqSAl12}+_k$B>TuB+6KfB)hsFw8m)4lY&OUTq`h?N(O(}zJ%PM7fvU~Fs zBU`>%C%BMAnx{b;HDy_lg$PmN3^gGf&+RzV1D>tb0*w1+s6_ zBAeTG))^=Hdt7wRq_(L`<6|X8BP&18b)oAH?%H}tr`@_zDp|c@;~Ipnk_Us*YeSUC z-W-^rM}zL^xf2D>F+hsekgzS)l&GZJ|qQZZ@NiJSQar- z{{W0C5u-uG@S{xTM_DLYFGF(A{XeLW`ZwgZFY@+^d7dV0)HardoN=0Vn6!4Y4kJnF zmpPr@+>QE7tPy;3r6CqTBQn7Iz20TMNTM#)ON~;AmwvFdHp0wHmAxi*L)WSc!cY2E zaPj9eguRCzV1hyU34fDtoaCnH$%`aIhXAXlF4??A{JeC)SYWF65(Kj91FO%hm(im; za0isJK^dARWKAS=?}BFN_b&60$Q>1(3Zc9JlHHxfA)VyA8dxat=0bkHaY55(V^;lKUaW! z)e9(0?CVLeFCEd;e9K&V7VU4vjcx54U?!uzeM2c1kLR-SIJz#gd1QEVrU^bz$b`2~ zPVCq*F}c0o7Ow*S7*eld9}-$J*Yc8HmrhjQ{@V7L(A1DtXae3xit*Jr*xeo~2M>zP zfbi)fe5y#S{Ka7+_{Cf^^Y@$mP2}@aJ!8_&H8t+zLkZ0Lly;3)pFxk;S-!ciq~E=+ zCQ8SeqB0PcNWw~0O_CeYvqX}}Qb~Z87thbggy-e@iPM$|Rp0o@_{wZoA;M_#tb>hZ zWNN9)W6Avpq`W@u8NtEkjJHk2khP+)}ib4#*GtFna^%_Y7MS(rme>}JEHK~ zZEl^>+mb8v18oD;-VJ1IsmI6>O^jmT(EW) zxc&*0bcog@_D!Utnor2y&WK6DLNvS#FvqFx2UA4 zR7W7-csbLzEc30F@!|9p`Td>i*L9p)>!0Qj1^o##N6pED1f{3?TR@8_HE8DkhJJ-T zre7gnC7%6ZqO&J?b!Nl9_|H;<`|?9z-*rEOijo*8f%>G7-sBEGyu!bq$MAM(4L zzDTCI>l#+8wp%vaZEE#4T1Hz0?$qddbPj!pQq@L48DkL}0WDq;WFcIc35U#&bWV-U z?TLh6}`W5wcFq$^wuD)Cp<%Ev9Ga-~px-7QBaOPwCsm-!XT3!{-pltM%YJ)ncd z^FyrItOE-}Eh~FCF`Q_cXv+6Vlzx+omPiFX4oyc4iFPBWw4?&X@7crDd_6kRz;bx?PPQc})_{H8Anfj?=CjM9B zyn`|vVQ81h_sHXbMJu~QjD!8)g@O>eZ zRqxd!?u%iAMIX=w=9QjpZVxz`+wPM?HQvU%bXuu~A$59N$fMJI2bdwepsRrw_X00V z`B)(9%zF~~&;vlp8{`%Uc^j<7B_O77{jITf`@E^%4=iaIPmZonjiu9LsSP8(K)~mR zYP@0XXl^7D8P1Q*20HtCySjS&IsqeTmuHjtsKD`iWVWG429|%IbEs`D=#yWIrp{E! zVl9QSNM|@3NJ6Kqc%s%R&v+DQmmotZPCDhl#Y)0G3$)HBw7m5mKt-fnhF9d^ACW0EIknDacd?wODK?I7@QjsJ5d*7Ksxw@oO`{$tf=i>b zs1&*^*VH0dv=rS;{gp0>^Mnmo_RJ4nvP&b`SlZi(hK5W!sYRpLG@+ZLsVBm+*|qVn z+N?6A$?5=1O5pz-{9DnBt91k-l6rT;@UklsIqpn_)nEwdxHFW&bEHXhL!t8?sZ+ze z5OA8bPs!{$ruuir!!)-6e{&z8ThT`ROTm|;8+;t_!z7O-x+{ruqbH_L$4|Q5iU%HI zpmA6Kglu9tY=CmMhH{O?c?K{%6m71={wv(t5Av<+;^nkONa_~}zR%I@Du7yfWxfu_<9mqurFgu6yR)N42nAEkMEAIr!6R?h6y z>#P=k>ZABDc7+{AoyO(Z`JsGZ%8MYr1=-{3T=FKl=sohzKr$H+{x~7p97jIUcao7v zIvt55Grn>(*6#PW$D(Dj%50~`FoW9w??|J!0;1&`H%*fXlrXU(mrn1`#f=n(H7Jj(jAqwQP0^7uDHi}VBZ5Z@MxzM-$VIRML3q96pw|XKS7^9!k?h^*awky`Hl@692 ztT&%Q2)z>6)<3#Swf!g;H9V@!peqA${nzBN+Ig!VVj5pb`Gq%kDOV78Dv7L$oN@+n zrBC3{Ad{h0<)ITR<$WXN;SExC(i2uF8J#@dW9QiE_8SY4ST4Cq+IiB*(23p5>S^g@ zTPBn#U|c;<5^{MnWjRt0tTUifbQ>x0yvpnNqT1cZ#o8=tA=mJNvG@%`@R`Zsp;S7D z(26dNyS%k^)pjXBToHvz!qB-kgY4eBP&A5$*19KSa*eFTUCFjCi%j%6to}>|m7C)O zTuW-yaYX2k-UBrR@gd=EToAhew0XWEo(~xt;IH9shSp0iIdFCXaU{21Go%O5qM!8DGNEI8m$U^~pcc9pHrgx(+G;iS0SGn`5PgxnvOC^n#RS-|35wrSO zU$+_tTQQ9yFD}(%9}mi^;2N(TA*yOwAfKx9GeE z+|n92LP;sf+#Gh|L&AzSm83EPZzeX!o5(aWF+Vc344~RPkZ66vgg6Uzz;itOvG8{# z4sz@MynGb?4gO(rh+h8N731*lv*Ro2ncHdX{Y|&2>8CN&g5KG;ud2$c?rUjpxl5LR z^)|3f^{tTj>tF9xPoETNZ*LdspB5r80bg=xhk4THmxRzn7Fw9ZBYM$d4j_#Ypao{3 zwU$WOq;U9XDl0kh_wP(>%S%&fS$_KpC0bK`dJwN%iO?4m2%RX&B5zxli8rTEFrOI9 zw16)inNBJ4d8X}9d(g-kTU;fV)Yazh$^lPv@61(k2zc^9?-Z~XQ64<=BR{5 zE2xJpss7e%io*n7(${iJj%)5J4z~=9B)eMN*DFk)*X!^|BB6Zw%U^y;l}M;wYN`GY z8mK;k$}O)PJ>i7)>p=?%Sdn}m-zl^RDlPQnehaGm)Z$zOn9PSo;jkniu-(g1ztW;N znB~62`7(FO**}|Ip0cIv-}z4eGa6hhrQpmY3Y0n-)eA~#+xscEWy`wCOq1R|*uqN_ zcKObh>do@B;91b+(~p|1GGh~Xs*BmC8^CSMc|k_vw$ zdboy0bMzp)9HI5_53Q_za|K!l|L`P>p8e`q&&aI{hsvQ5_;U?}<tGQl7a~frVhO?Fb&_~qrr@3 z=bzu%u-DR_LUdCnyLW>Op;a|oUbzAxJ3^vjQs%1uFOH+Bl zrbCJromuPU3=2u&hw1_k@TACQb+wdIPh=-1C;i}|zXDBBKixawjF zAD@n^ayce3o8+x_>Gm2AZ(=D}Sce!XiR>qX4}bCa7YK;E%>4Dm$OaQLtl#hGI3$_< z39=b=O<|=`DU(Lr84W6IsI1$i(N_-6yi$EzZ-8l91EY}#T*iP@xl6mOKh3w$gDsY* zHJ!(qcsR{>1Sbc~F>A|6iz(_(W)SM&VcZ(*r!Z9nKkEa~S-7S((vL6kt2jfQF;>u5 z-Dh!bKdXI5S7mUTmU#>|UZG&Lj9kYk6cKAwjb{e0NrfWu{oA#--MIC#G3AC?$xyS+ z?#TfCqd!EbDeG=34N115uO2?nj9JrRVTaD#o9M^*5Ltc5WyJx81MOKj(M@Ss`ViMX znoH?sCw}Z3=8fIx=JP_z70V>8ea%?~J7j6{_*x>2MHx@Eq7JUv+cMhH;!UenOqm;Hz#=Uwl6DC&enQ{g?1&{%0k<-kS*8^zO@-tL1)I@^h)@L&@wcz3ZWzL z588fWnMWy+#4J{qwEu`s!A!19bR<^AJK~jfywCvMZSKy_&Q+ZqoiFg=sLrkox>;S{ zDLoVx+y6O~lkzU~0OrNvI!LP*_#-WU!Z3+yjUG)H#?Ty^`N~($NUcw2z)l5XvFUg= zy*_ou-&qlxl`5~ zzVhXn>Jx)#YI=GabP^WC-Y6tnH_fvC;x9 zR|!_Aq%36Cbs>Tv4UCC=p?R5kpq~S1R`?Q^-^4EqSC9ob4!%AB=5+aTYqM7PPBc~j z+>3GVRh1IPsImY(K*GPG$K7AqzQQxwR{=lUQ$bDrr?>W%y4sPUd?4AG%a@Kml~c5x zUUroaw=1%{cJ11yo@n(nC)Ap$)=+;zb@%|0Hu>dz(5ljo1s;Pj~k-Ua2_2z>RT zawF(>^UueQ^L%IluULM~hn8P{obtnB`N;h9nWfLg@{`9YzpR1&q)7k6pI-~l*BOsF(S2u^yVD;e;x@GlhRQjLE&wOU$nT0Yr zD5DeUG}M|%>@`w(tNmY_e(0g;uL(6&q`ravivA-=A?!M0c&7N}6<;2__S!!oef9P1 zYp)SY@B-#-lnL_i;&yI-iLDQ^S7f@*dZ_Ph6q?L*o&BZ0cdEbey7o^WnZBBQk`tl- zLGPkR$!+rDED(vI$v57>io))Y-t3Z$p1Sr;`4XK!r7@@|AD@27>_mEQvofvD%rKCd--LTrE|-# zoMLjDUQJAO4DW0-(rO&+R zNOI_;5kBY;Kq0Td0rXX$#X~eh$stjDO){DA&`;N0aN_eDKSMJgT!qe`sy>c?CFFI( z{V5(26_;WQCc3s6%fvALQjT$d>wnO1<;$G^`(LN7M-kVg;>b$WhK6(heM$BAk9_*- z4}|hQDF0I^FGzb#KwENxYOxt5fm6y-# zxUCF7i$$h#M(3@SvpULW311baDAaO+_(Q(|FCn>TZ@3nlh^aMPU`E{7`PTAlhUv?C zY&sXKIVrO#Y~W0eUZ;29eI@6Pe9D|S4+F_UuHL(YVQoRoVTzllFX8OW-cKMV4T4U)*r)@bLz3L1|}S^NP( zAzwoe%arlGmClo5v{W8FxwH4wSUz*@)X=$`N~KNb4h^5PsdV%ii4={?9#$(8*+NpH zmVHh3+f=cfYah(7J>1`acx_(zmP;O%Daf1I-0$$kFczvHVc|k7g9?acLipl4s(1Y< zSbZ9G2LFU+(TZKR_kzgTg&e{6Y(hDRdX6Wsg^V!_FT7=!q!y_ZPmJvUy(Z^Kp?jH3Hg%J3CCn12>-ch~d&s_B>)W!W7ts|NQdJ{Ezpm`~1kv9nq zQ3@2^1zJ-?I2;_QNr&zQeafI*2~7J2yjt)8at6Plgg4{WN53FoG|#<&e}=CTo+xPi zv+6C?ThL~dAfKB7>ZJCe=dq2<-^Ul9?PnIB5~_aJ>O{txh?0Pg(; zKW!-a4a~)O^U+&Y-iN<_8i+E5zkmACb@xyR_%z}vtQJO=l3*@=6*7jA$#nFW8T89) z$O{-7^2qDC5WSEQneIlzwcO}H^;JPj{d0fBy*Ne2E5R@f+tIJ8oFAvE{|HrIH(-v! z4SD4CTqq=F1U$c4$XxyB-PNxy<`oGB;Kx(dzlW>;FyRpTdo_f9xrAFWA2Ky$t^VWA z>Nmvv)hm#ncznQ%tH!TXXru=8ew9PN^4pOT3LzID9{dZ$G+T@Z(5M`T`ur_@>_!*VC zckwnlN%ohKYfFtKR)!fS9IniUI~~yrSB|W|Hao%3pcR$&Bc1o6!T$<9Rz30^X6h?Y z+9vkRzJ)tnSVOKJc?L#Z@qjRIFv~uh8C^RZ_2-pMndTDb38)kvm&tFM)g?29J{9It zgQ4hjE;So5vvCubWA!e5_2o?`f|Sm=$8bOXe$CzxO`8Orqa6ClU3cG&EY+joY8Bxy z>O;|BS>?e1SkzxC32? zzYh?nn5P@~9T)ip2*FbVJih@5D?*kL>RN!fMMxj!(OI+!AYPIBe%y-O_~!tzi+Pp{ zaUUrOiQ{uWfs6wrOeshV$(MzCn%j$`6v#z(Z-OB=Uf9$XHZ>*O0nTjqn|%R1=+y=N zEN^wV-Tqv&P<9u*A+MoNI$qf|uFyCiw0dm@zs=Etf6W{GMtx9g_Uc)CQ7HROpnF-3 z?y+$Xhcp4NIbb&jU~w^R#)E7zA8@-J)`-;~)Cpzp2D;Y~x=YHgSrjM{|N5Ayh-hv- z_EWb*t;qztVT7HsXP)>YMa#lBX6;HBbwhO7E^kLxnu6 za2s_W)U2KGP!oC~@Pg>*+$V2|vO%5RZ7{o(F?n;u5;kbPMw3g42Z#IgDwW0O(hLn4 zlq!qYB~Tv0Pf_2X*M2nCugfb5TS%|-nOHAiEyu0A-rzG^eG2@&otRpfuUif=CWB1{%|X-t|yaRAW4zD&rz%Btsj>6xl}E03L5)d z5AL9z5F@)%9~Oz~WKSyP@gnA!TwLDwKYtJ#+?NXnA{$Z+vWATvI7HI_`_?Xtc~YwY&2H^hq=92 zY6na=;3ui=^!XyDhSGck)_8k+T=-*ME*AdqllfG#m`|tjNe|0*yvWNPB_$T;*D-<3Z|4}7NW(~UgtyFysVJ! z?XiUnD!0vPpIKK@COzRCBTFkRhPZ&?T);3xDF}vuxDTQsVwWSE>nKINcDK!L(OS#D zDMiu)W~5JhNbD`b!*ei7waq<6S}Sy1ZL(dm>RT_p1ap?_=Zw_tbB|+T#GpR-B|v)S zLevw`%fdJVkUs$AKA^v9?n!{y0rGpm_b5(KGqj#k13uCHC<$`;v;kWvsrpO@PNWr9 ztxhM~qS==yk`m8Ci7S?tPy|fDl;XM${A>)C($pHs7WGCxNg-hSchuF;Pa45C3yndw zh?DK~84Mnq&8FwO(C>T_w_A*n<@INVV!-p^xen^0x$A*v3-J6lMbGu(Fxb^zV(r}G zHdt!dDbv`BPH`ubZg(P)_Od){^aT>xQ|c`<9ICa-&|SUF;96LDK6z0c1jxnq{`zsL z@eAbGY(FD*09lw`H+5X)@ycI4Iaaw`wEfB|090W=jlBf zlh0tD37@~DudB;dCbXO%-fxCr1gZ=4Z4q0xB~n--0BWgGz~IAp zkd97JGNI+sf}g|ijV24;OfNV!H*pR_*l6-Q-Pprje?7O#7A!_RP5|mDg5@FPrSAqT zhT~wVBe~P-GDr1hcQ<}0cs+PX`f!rBxvX(Fg&~%)2Ye}EhTeFLmDRBQ$mQ~zjA4U= z!!>01OL|B-J<(!tFX4y+EWaimnaGFew}tq5WH;VOIH}&=((N%BA{HlpNO04x@3OfP zR+o)WP@+aydK=&{FUV5w!y0w+senD4RE-REw1_(CP*}8jopg(=qmU>ub-l>x-vBPt z5?qa_E)u)NR#7u$MlVVr*S$|2^s_8P{0tZgs$oBiMbrsbR|2y=)JjnMUO@Up^*O!k=FJ`(l*Atc}P0fi!i!mt= z_t1xqX&iUK8ji`wab9DfjT7F&6~Mx0g%xHBQ$pGg=>zy0NYiBQL`d_nf?%IN3x1rH z13#K$ma}&w_%~Di(g?m~tjd z$WO;#-TqqDi4vb)j=PRNwR{`8sm@C);YCJxGeg=-($0Bae?`(D1@IeyJJRkGcSy&{ z>@zE#TW8phnPGiDsopBY%h|4~wDozteQhoMUT=TP%x9)oUpuqrGt<+b`Qx{HdcNJ= z{q*ShE0&)>Hg^8<73Yt(j@@{0|Bd6L@Ojg?$Pqe$aHO2)@T(-PCfXFWO=$($OCUVa zqHwxeG5O;5m)ol^ja_l|SW%59kA8v4=auO3>Y%zP#_psy5KLNv*)>tI2Z*2X$@_I^v#y`HMfrfTwN?12?qblNnLbVR0nM{B zGtd6MTz;{&^~JwD^UU-#&=T}|GrkjO>E~_YC$&|j-2Y)!$xl|5zCMiL-!NHKdXcOu zkwvA@!lF`WVNogAaaIT1@fswHN}@hj5~&S@6E~#E`WWFvTpwe_^|5E3BI{$nx#iR; zu<}Htf=nhg zn=Q4D2!7DwPB3xXycK#ORq$u)$fg=t1c^_ zu>qlp-f1b<8wiER!jh>I0==Acx@T-k5+3D|s!&jFH89`{n&Wut{TOH=+i4k~ePQ`E;*~$pTlNPB=J~Y{Ewp%3%Wz$X&W~3=l8JD)(ehq3_R~)>0*W~Gwkpna68hf{<`YUB6 z=j|=!d;Iw}#nY>F*1?_qBj-(|C$<*1T*~QIJ$Qj9;gX+YVdMCN1 z#M9VX>-Ut3zPQD&fdaQQ8(J-;lmd`y?U3?dz>L` z`u%~H18w6!9q&7%eBl0umUh4U7(VEOz(<;D13r$^lDUT8jaHL`-;20vLG5A#f3_e0 z7+QDrIicC3wtj?ujE|l(&lz5OY-=y~oZiM18+ZgWIlZa%l-4U3Sgr9&b_0`lMbn4$ zI*mL%g1ScpmPV>if`Y2=FJU1lP+K5;#XLEop9N|==@rnf4hp@(+#K|Ue*)?ziX$=9 zj=5TMNwk*+KG1!YQ)cq{HK&v-C$GupXHKc)$}U$qm#w&5mFh+FY?85xbbJsfP8v!icpnjBkwQRhtczs@_j;!tOVYqF{~-{0FUp*bg?NoP_d zNwUU9Hy)X3Il(*tV?HR_giSjo+dRK6TBSk^Bj6#l{u=>ryt?^B!Rq zY_5X-1$u~*6D6X5NgUnzc!tMB%3xULahIcLF*}?(jn>o>@i#@ydXLH+(i=3fklC)5 z(%Dg7dG(jB-~0KNVpPJpc}r(c=7RC)+FWaijThBwz1`e=@l{=4^MD@Au)~=KJ@8a+ zA!-jXn8v+0waMZ-4~=&RBE_=3Erpq4p~bR$cIqTO4*0Bbdkf7a*>cNIF0(fg>p6XFXiwWKkM+fI6~7n>~=)i09UF2KkQr` zF$F0x)cS%gGHH$4cx>I;*25eAjSiyAFUa?dw+F+o1lk>DyG7$(HPm+I=Qg1;j3ZaQ zJP}E;_O5JXGDprcRInao4gd`p`~_PuF}!$SoD<)FMB^|qXoppbc~?3iz0P3Pvr@fO zYbu6P&5V6{I#7uq`RBg;+jlB_v3jq@@ai7Ug9093Q=ydej1N}bAO=lz{1>Qu4P~W# zKy%U6jC4SYg;OiE5V?u-U?kabxMO$Mj)QGGdd*&o`T~Z%y-6^-OCsR$i}X6cQ(^ zFfiJ%u6GEnbgOopJMQKk&}6&ClOBFpIc@eVLLWfiNKKtpqaNNpTG%|NY=NRaEwE9H_ zM3iA;ezP{6ZtEVcUX@7d884gmQi$|rgJ3riLXjN)WEtK>^ek@Ws_A@w(GdNN&nm)$ zNw?z)quX}1ULutsZP;o{8dO(9RY;M^s?ak!L$fZESeN^b$A~;=hg&s$=GutEVs@f_ zsGsvE+z~s}kC&rJPd11CUE_fjJ2Kfv^<===PYhA3i#IEEjLzO0@D&nzt%b4hdZRAp zvpY0W+Lx<%P|uOh$uf-tVIQ|@xV*bLx-OsXb0nHn8lA%&-@0#Kj-1oTqAx(}%q(f0 zyY571pSh*GSL@Xq!rH<0g`Q>YkpQ$_ zm&IY#ImWuVo`T9W5Xmev(`OntNs5I~3LQWwo##_lM^`p6nHEPl8R&z|A1#fBRvUVW zSEBCO)6sSEAVlixKDoHUn{iHhGP>4NR;<`xZaH!JibIvQ8>V(=Kfh{M6M1U|yyNK4 zWYiLlo%mV4aV?lg%Mp_&iBhd?m{s=XsUEa~IYWuPZk3tQ>6;6!J#ywC!WgyYVi}vM z=#(oZXk*0|Fq|R#amo)>>kf5wrw-2)4;5FACB0#%L@p_w)(q0+!Q!kSoraudAa*q$ zYf4;hSr{>2Fh|*R&Jy><;-6C>bjJRZ50y8!a?KX!?a2F-RX@4CxTZL8^wr(6PH4={FwSG?1L`)vH(6w28hC+H{E8%z-w|i?vCV*S5O%`^FqGLuJr%<>k82WOsTz#<_67#kI60w?!`)nN%3$ndQM)Or^~1 z>R7&~-A<9)^-K6?_zV(v2m1C>?c}L&mdjKuqEdKK*eP%-zS1$O92!NR9`052bXWhP zy5j0Ytjd139x@X)qUqg?58y&*kcuEY9JK(xz1F zlYv~n$$sDo9Xga9?w3ju?oe;r*5AnW)td^-dnG963id7A@)pr}3BQUDQca+7zI1$* zg937<#odrFFtBKwNprMN0Ko4mDOu}?8JqzpN8Zo8k6Nf3R?1=8mY_sULK zo$QO(wBJ^a?2MF#6fjBl->S)pft8L#+N^dJ*)M+Gd^>1^#2x-UdXq}m_jM6}cHVV5 zCPiFx(aZhI^zL07{h4?y=#R>zhxHOQ?@NSpQGaG_d((7V+j6~rQg_;}-JcEwQ|F8i zb+`5ECwolF(pI*kb-Zo!K|W~g-9O#EwKdn)nkT+g7JUuuF?ek6*x*bp@?gB+!9=5L zH?^KLQJ64=U3Ql-7Abdi4|c|UuLRnhW`{-X+Pib?P;bZ+3|LG_&Dyb^KGs&rr&cCl zB&hlKv<8Ri?ZWOa`g4e*1UT{P2z<8)HxM}SdKc08}*Lsrg~dK*7>#$rx)Goy zOtwtc;4R(tao$qaEO<+SHD^w*J6MW&&ssHcD62H8j9fVVe{h{nyrQf3;ILw4cT=lG zW+-g0J5i+XuaNOmCG`EFhVimttGd{CA-6bcdQ93?duv1K#xZN6K5YI&caQe$6Klii z*7Mjq#1`=yo}l<8{z6IkV}X{I7d|3GBoO@CDL3nlXsaD`Cxb?N7ei_^f>wxIZ0rm zLl!~lC5te9X<}O4EIQ*=T7q7BMSbm8Q5!W|D4*tcZS1y^cRELjDdAai1ubksY6iO3fXC zy@cNrc5asF#tQ*oHW_?oe>h-eEUIr;Us%{SDp0xy2hk91CT;yuiXpRdA#@ELB(30K z0W-|{xT&jYa&tP}Fl%92m^sNb%r?+-gE&O}oDLpu{{;JCyEWKgkhKMa`*UjS^qD!8 zdJP*2u>i#r9;dMP%IS$K?+(T6E}hS{vJP6ZiUWUM_*e_GzZw#c?EkIqJ>VNFuD)T- zz3RobtY*oQ)g{ZaRV~T3EV;;a-R*6*ch_wzTVWSiU>m!%kRDP93F!%W(i?f7@MO~i z>Ae@y2&9n^;7ME1erHCbcCG7@@_ygP4|{dT_C5cZIdkT;nM034=2j?Mh~iLgh9z0_ zn;|tqmad_$A-K}yX-2?K8s3SJ&pUT4YV0{Vm;K!cR^7TUbPo*n^&_N;J#;Z~IK;+x zL|j8jS6m9ddP~>&E^Zu&K6~*qJ46r)ArtPu0bv!n;{#tFQj8Z!Aep%|oDh{j*aE(O z1Ijz9WtdYk-@}8;RofW>aW$^6M;&fa7WQE8w|Wh80f^1D85I9pZe2-WXY=v_2A5bM<(kMx&+P&a&Frx|5XT2CO`Y$(^$i~i!beU>>aN#5 z)B-SaSlAPQWn{BxymTC4jHrF=DfqkAM|x&yg^@aq^>(W^Y_o;6R(rkCC1I8~)q?|l zofcz5y{k?tlS%7b^$kW#XCEG6@W(v}vz@B224cMI?ODa&=;KaV*yBW~A9sTpL7n{w z)i*S|)V5yV&Tv#!r;w;H^Um(7sUHL8?HnY`dkfd?-*&3Np4JwYQQ7sFKPSgeh$(-H zu0F-Q6?g(Bh2D0ML&hJ3q}HiO-sI5QY7`oY$t0dbSLqSAPXXLh5`CR{tj*s#W3Va} z+JJf2gU6M4@Xn>(=`&<>(`UL|AYg9z%$_5AgR7&moQO0}Gp8c!?U)UFd|sQmzP^Exivel&owt7j+l!W~e`0>lyp`CCzFdS=owFC! zU@yiJF{*UM2r(L8)fsdjA<@)V_w=Otv-eNDbMu+x@(7bTh zud`1dKx03&`S2Lb1546d{0i^7zcKN6TbTaug#OjZ0&P!eWVa>(t;d<{96V zH5}8jj1GroOM_toge`cX7;toPB^}>5@V7DFM6n$6K4;p(z@`@O#!vsnFx{xJ3x9kk z!*E3zY-XG>!vA!gPf2hK{2mNh`YdMjG&$*-5n2Il&t~UsO}s0@vHItZ@-vxj z6D?rKn)@=*(porLn$w-gp^8^h(wq`>8$xxdk<5@-AdS)Ruw4 zL4-s=y>)Lh89mo<%2fn_NL9v8*g3uUge<-2KAxZ{HvxudNQtsKh7PzNNZVA`G1<(# z5y$S|z&4L3LSFNj(6^FWxp({AYZp=r*4JH>O9R&*oci&^-s8htTf?!VZu~(Cfd$w zhQYuk60*4$eLE&m@XHM`XVNP9%H@ zaEA)F<&^P{q!_-I;4YLdNCV3ZurunL5i$hpckJ~WI}eU4&T-dwyZ zWv9;m!p+R%97CJ0n5RcMyBoO7L;cB|x;GMcP?uPqDjKN!Fd022`9PFxa?yBENVg$|AE9A@!y1L7_yL zRr*_3>y6b`_1y7@A${F^_J4=->LZaGFB=@p-WzN!QzI*hkaJx`lg!OE`)xp;!1tv^ zD`wg7Lw4p^pj`af3kt}?Oa`SV5ULAkXOBco-LOCWCW95oUett;t7|aTFVic^^zYc= zMC?cmuWYdH5sJ)&+{2yjIBaSeskHYzXq2R%!vj4%NPx&b_7Cp5$-yjK`$X1_WR;35 z(F&O%SU5K!6pKym@wI0E+>WaKaEJk+?(8RF)huers!1FSh+VT&cVbJyF%oG?)U#Hi z+mvj!m(asl1lGaR;xF%x{Mr;WGgrUll0vZjWGL7gjlgZeR9?!^{EWB>NSFLa67aWTrpXjt;=IYP{Mv9`H>0 z*}#ZDF&88AJZ4~KXJEI+#EDwZk9QXoAJMi1WXrB-@3NvGK zFWoxxvN`y^^<}dYeN6UyOdoUj?D_L&+lOC!6R0^`?mK<@wOgLQbo*U*-A*d^XPJ+X zj6Z>hGKr@2+8(ilMK#}OL%rM2@2u~OyMjp4?5ncX)HPhkFgwMus62ZNbu7TuMNY3= z*|tA>b0M>xH42OziHj4}inC2t_x*-xN%n7K6D{HOyFLXwrwb-e7B9_|x0Ytg!zNiK z^FT2y&6mINM!GMLjnSO>n>``x%Rwh7N$VLCSJd^<)*Tnip^7x5O75w8Rsi=B$R zR=TM&|I;~8g<-pJmhfjsu*o{Zq6Y^MGUt(pT8;YZDvWz~jS2SADp$H3Gv4`eQ;N&WOqSG{JS$O2yulLwtJO`M8ERj-FwnNpA{@2Ay5E(E&&G63I`gQo z@sI`?yGwX4XjRUqk81lNStg(*nh{az7#|9SQcj2PxX`pM5glv47) z$U)8$0FBS$`QNlh4Ir%PQ=@FLA-5Xg4!Tc#9D5imY5H-l+FY~B0;;lDj@#=NbfE=kXl5UZqC5U6;TB(cV*aL<;s^7LobNs~`if|VkF zql5#fUj+V5QQc+DlPGI}wWF+LrsBbrNBNcW_f$NivcDpHhUlC(g8Vd>_$Cte08_rn zlcN|3Ct2I5Z|T-v2J!(!S0HHJrLcj-G%+6>)Tq{KO@hkEUY`=f&gJo17~OG zd6eY(CsKIN_b;q*I%R}&jm+9dRG7DL?*b@`g|S}}6z#zX*bVk|>_I$$YuSC-Cy-|? z8}BX{DVEZ^73ehzBI{ACbVs=a#+IBgf!%y)BJRhld+7a6X^aXf-{N(FLp4B5pX^d;HA6$sUhC z;C6-e-s-MboH_K?#wM#=s1P!z++pL}LlgMBx^0OAMhH@-K`BGh4d7%d_3c7YHx<{62)-O}?PQ zwbj;T+v-*XdP45BQq~)>r@h~@?{GIYEj(hM^7uW2^yDY{D8T>{i|=N03wkx%Z`_Mr zNxucE=)u4zU+CUx@3PLgRKcLaJwqtrn&ekkn623NnW71v0XU6Y8%!Tx8YU$Fq^1tF$GgHt;FRv zqh$8kBr>~QVy!$CGzMxDwW{F}okhipSe2>T5wtr(Z3d;ztaYFyQYMi@SFcwZ5+SE8 zXg8Z!F{85RM}}3k38B;(-fb~@x4D$TpwhL?YqabRJEg*aY$%pgC}H4K5~0xJsP{@0 zor5ly$~o;)1_Da=R-4M@8tha^z4Z={6n@L@RVtFPAsNZB|1SL>iq!W{)3e6c0gw2o{4eDsqC|a_m!#16TpiBg&VW_j9U>5RwK0cW>-~_DHVZ0)!%ntGy>5aWm4%jvl-gp zMk|Oh7_s6VQ(|6JdsgO=I%aX|YCUajo?4yD9Irw18^wBlA{Dn=bPiQbjmn|3*yE`Q za)uuft`19T0Jqe3y*qk2HsdQ5%7Q>f~e>Y&_WX14|d7+JLBuqDf^uO@^9{5lsSPsZNLxvg)f6@Xd^j9s+AVC3i zsZ@S~JU0+j20RP}4u&M*kk-`TWr7NJ!3@lJ$x8d2cE2X8HIGfMZ271O>IB39X} z8m1Qg3TU(f4Ho2^1yqnP!!Ft(=qFrPUQ$`2D+?Zb3;Jd}7Ne(85^8##yF^XJ;7A1sks)RO!o19gw*~$$##8>v{uoPL=!r-TGyUTD$^&& z#;!}(C|)J^w|MKu!a+bKrZFzmK%;_Pe0bNiOJ zl5Bc>69eg4G&iTPquvao*8&gREwths7rf^aNE#zMsx3>{4ap)1y%^vX z*R^eP(R()hn0jR{r~4+h|8wh$3?!lMM&kVXt?vm;4xpC5Mv&F#u3yFD&T*@}YOLFo zsF%YJYFn($jgng1HaF#HHUsp#h@M%IkG&=B(KXtb;eX&!c|r}5BY_W3@9X6wG?nDs;w$$2r7D{(=l=Z9tb)Byw|VquDH+jF2%a8n;5&k8!(AMtFRKi zF$U{wwJ;(hk+VZfQe_NLz)sJ=qk1GH%<$I^RBx+OHpq=Wr{3SttF7v69UonJbsa*+ zmevsZRVg1R9phG)b=2A*7mI`PRC8RR=ni)d{np@^b-SVoU%?V#rHmL!1chhjoA9il z88LeqFPtk5<#%RvX>Gj{-jO)dOg=Y;?#>C6N~OP6BYe$kti!>?fWzHkU#hYhs_bTs zTZ@{=@=Wb!QZ-@; zI*j%)^b9?zSze$TA8sigJvQ8U>17vVLk`KLu3FR4EBwy4#oZmj_ByBiQ1!(#mu}VS zj?M`OXW1^{*r3H^ODA&YtXq|YGhGK0k z*}s>opVs~cSg;v)(}0hofHFkJB?;mT2eG6KW2umJ;@RfY7@0F%wURAQV-~j^;#@d?EWsGvDfnjIT{((lashQ2d(wtRh9k#;%FfSUC+5CN& z2P@@aur~;|{E>1?7ilL}6lwnhX;-0fJWn~D46LgLK^vz6Y%K2&DpbSP@S0Qy8&ixp zXwe3=;%4I`L1fM>hXcJIZ~v%!^0tab)sxLuyG`97YaT%8ds4q&nSJ_27nOd$JnLKB z%hpyfr3lB*GV_(RcPEWyt*ckH|5nql`CUc5$~FV0`vVWGrCBj#v=1-Du9xC45iUH*3USVAJ{=wT-odQx4bif(_}SO@ScrHwcF9=099` zFeqBy=Bd=qare05DpYMl`MNcpq3m{xKl@39+DkONyFZb$Fx<*u(HmBhd!VJc z2io%715YgP6PusUdBx)KoL|f_Wshl#jxlWvY&GJWT49HCzNzTH?0NzwUE8}Q`6t~^ z>Mg>4i-^yu_0PJX2IOCPc}1rd@l08XXKHY>o++Nh1BYXy{;C7B{??M%uUf~7*7sng zCZ)zcTQLS4XrMOQj(@>310CChXGT3Df;rlpYo<^2<(E6jS>tD!&jZr(oC6&<=U`n& z5_2TfDaSlwr7oJibzNW+#B+$-iiquoEyK#%w%Qh@GfeRoy$H8H7?3-+^171f$leX> zG0c(Ec*Hj9XW1d_w?548X@RAxdHDV{T`jpC!-~BcSoah;EAUNRAT+>NMyU}6UTW#zuvRQq=s=Rb$>#0;@Z)0my zEP^~!J-gjRy(zl}>y>Fqnf%*tKYgk6{V$9~CR~_+ zXCfLyr;8K>a+uu^mbR3Fq?oHflNIvS>Jw=9``b_50i17rB(TLC3199%eX$Lc_2GtQ zOhs}3cdNd5e^7F|X;cO?_||Vpo0}ykTktUq5|bFKu-9W!8}nl96!zOb&+Esa9K`R) zAUZGAtprY@(~?L9^91Y$=l-w6DiE)}^&g62WDizU*8cs$4fNN_8lDNh`5@oZz<;-) z3021t!cM9`#~FsXKNOOu&v!3&pHIt!L3!7??nTIo!a5R(D8g(t3kC!;L~<5pfsA)) zIcd5@74E)c`A43XUMI7J-UxQ3J=xkZY}-1f^=KR+NWTyvza^m*-f(zn+90ix*4MUw zq2j21#A&QHYvdYPz*FUcRH)vxD;d^_U>D4UP;)n&D|e>-^Vf#DUWe(=u4y-9DbHm2_+S;=ff<9^n)k5lk?%G9+y?O@{$>oTWnV* zN8wgjVauRrcA@jsTf;72v)1qO*sCKeL+Nda+FEp*E4?db_f=N~M&tQiWEh zvYnjI97;X9I6S$tV>D9hTq!vd-nc4aP{l}4l)G%e=fv9c*%l095PGzbjDc9@*ga+W z6}}ViJd3WBC1Nxkf9IL+XMa-6zX!^F8>g*VBV%SwTzB#$&1?`a^AJxCO|chko9G4S z{J@&Xe^GXHV1sx$wYkb}wqPd(IhpoZR?mDBR)z=fjGE%fU@;AY=IZui>m9SFx{48D zu2iR)=TUO|%!{^dd(q7H?B};{ebH9<^s@S{c)Y6~y{|qUkEiRI*Fkckhs~Vdv+G>1 z&?|!{udwIb?%n76SWouwrsVU`)-;{?uvB`&umGae6PO6)*Q9F zWE%Mn^oyM`#o$z1+PUNT%XL=kvEdW9zJ0>KCDguT(I3gQFSLI>oiX-L4{ohzSVjda z#Rc{7KUVO>#yoM1t=ufp6G>jYgY3sMD=0P58$c`a8mV?l?Aw{%Kab1<>7WhyEWUn^ z#eH2>cW-2{!PsmaLFmXit!}W*77dzoZop(VH??5@nGCV{ z_5rFtFpeD_?3s0MZIBTSg51=7RfDi?6Xp8KynSPEZb1`fY}_O_wr%6awr$(CZQJIJ z`Np>GIa772r>DECXL|a1pxvsCBqMve4uZw^7}!`ADU6%v zTZ$>?aNx+jkOlr4u`ny{cpvVL(Hi{;I(mp8C-$0))CRY{Salkk)+-Zo0W0{NJv;t^lBrr8{e!n_F?Z8!JhtpDObIa2+KQ z#mHs1YT5#Vi@Xk7b9io%+kO7lbA@;FdHsa}Xg1p)?)r*6<$JS7$3j$>pqxkqxZom$ zpbm~iH0qb!I&RgminLVZi5y^#f z3zl(=9Neb(a{}%>e^A0isDO-GvR|v0$_bP(wY_+oP(Ykx4KY;5_WH>Iqe-^!s~v7B zxT+-5(jZ8}(qk2`zE2sCD0q{|GyN6at~Lud$^|CWOCF9h=#rW}1X0Z~0UZas#(EcB ztVGUVe}7b4&}(U)p@siR@SZ)Uc-<&mY-^TMuS#Ww@ik^dmNaArE15r3oFa}`xXr#{ zy|u-*F)FCf^9u*opZm+`n$ve$aR*~|orG$^9`3Yo-u&q$sv=E>y1w5?A+lBD<<~ETT64~=vH=Xq76JxKerdpi}jjU&4Jly6Sc;t9Pso@Ifh%H zO8IsjiboYF&Xb;>prD6#xd_es84GVzbPm7g4||$bT7~3#Nzd>l4d>;z$!J9@l%_pf zIJRBnTt6k(G%Z?HWr`Ei^jt&PL~n4VONV|bU-|MPn1)hSl?`FW>LqR`1H^aS{&mr3 zE6wmhRO`cYo`yIH+H`h>$|Yv9jEwA*cq@&n8l>B^*-_B_KA{@8 zGGRnY2ad>OoKm#+BnP*a8Y+)6a9L>M;uDV_nyrbz~HUu^9^d7V-TL?)`R)bze*cxiiqD^m-x3s&gI?u z*I8h<>2C7#3_9^Y;aHC?8HBv}?mf-@qMP_a*Tvrn#8FwhKY{-UtmpB&9dBf~rTu*0 zmUo|llz2CKc+PTUw0~inQNI~WlRVb#YM2W{`{GXhy!1cl$?>U7gBLbAL0{uyY^z6e zn<(6I2a6*lFbM?)KpR_zvv1%aQ>dE}E{i)pI^t)&|2h-eK2Pm%z1p&s#@`@oBye)` zlWT=vav3C6a4;rSL|?;46$?Z8+O~Yv@5iuXBo;6v-NcFw!?Vk^f(Fy_c2{ZUr_aLV z1GH`@9eCt2d%nAM8CyAD8Lx~dy9-;nftMB)MEKWARIL#?(yO@T=wWa%?OOA6<|AC@ zWvt^TPPpb(utH(XZ=lR-)%1>CQm6d0W-N^K$~f11+=p$I1{kh|RvU4<#jeXM^(} zHiZb^L;P@0*NxWVBO@E*IVPk?-eL7&pXt;!(>rLaJ?dx1Us_P%Mb68!zX=#_Ove=^uY7~wV6W-C zh_~H*Js&|dr>9~|Z&n^6y9B?4rgP9m`hXXA>zyG#Br--->%u6IgD@ZpcKWq~U<+zS zX56b?8#gq|mMm#=TxaTAbH<%kHS+hy#3WAU>6J(K`{nYzx|WxBe*uCHZ}qc5af0JbWQg7Ky~{ph0N>w(m*uSWq}I{s%?aSaoZ&R&=uT%tJGRa~Xsa#2t{B8=JfyVNMWHE=G~cU*~P=O!H0} zjKITOdGShxOvFT@LEUixTBj;3V7;wI8*R$>7-?kyGz!Bx{xX*F_mTQ{OfzmeLTD)h z**b!BNZiumFbRppfDW?0Qzhn2iqVn z@A>&1Obe^{#Rp6pG959|!c=!G8}nboCKVL}fKF@W(2l8k(TvsHn`!YvBBX;r6y@5R zt9*=mB@|&K-|?4IP6%zIW_8O^rA+cPx!6h0+wV=!L2AwTb1i9F1GyqI!>d%#1kNz$ z*6Lvd3qP3{nT-)yHLFMV>(tQ?)hs~AFfa38lPq1YON9DCtHus1OWdT>y)6$tk!;4g zG;X~aCN5Xe?!a01r>FxcoY<2VuWKFXYbzW76beFWY_2Xo5MDn=ysMBKS!^BBcCEud z*`&D}fpcMg43pYjEzk1gXCmE5i%U6^1P!Lb-)*12v;S=1YD4X(V5mctK1EAkym5=x z1iNq`{;rg~!W=X4B|K7cIK*q;vp%}_L1a8}P+*~%^2K=^A5hR}3HYLoD$&tlloMBa zf+3&ydXu>vUF3Fa!>$-X#1Z$gJb}MIo=I#K8CsJoVsTc_`~*8o_?P-LM^lRy=i*|@ z!=5^4Xr6(WGy_keO0ZU-1}Md~=;uDxd%TX;4b7f!TpRD*i+u-z zA5-fMh@Q58VF*Z@kZL`dGHJBN6?yHCE_624-5&s2i*CyY*>HrLfzS?ra9dd+owiI;s!-?gL^n*lDY4(AL*eom()L-2N*wUCP`njZ3I1~`8205` z``IGsRa*V&TmZmtJ@y)hS>9D(Q-jFe7{@~B@mbmhb$IuK!_SYMD0jKX! z5R!q+5=k%M4`)-i%%o%R**e=D>^KQc-q2+B(Wpjb1S$~O^;Nx8BOu#aGLNjy4dj)_#Qe0B3Zk{|quWe-mc(PbJ(nVTMu#P2R~>0SN-Yt+JrQMJ z_J8EdVh`vyIIOmVZo=)^Ga(OiIDYp?#$ST3S@R~~*d#lTN} zLA-r~QW>~Y${mry=`7$ixVp`4-ByuWJwx}RZqHIAQ(Jd|Iz|+=-x_|5AWChj-sgQY9gWyupSh?%2(I^EQ>O5r;e(OLPYOQ8kxK0rYV2K72kr!-u%? zeSJ1KNZFcix=%rE6Y`AN$=&>ruUZZS7WnFU!-~F}^7P;=dFzPX$Z;@t*BYgJR2!ec za^!(z*URkDXi%O9O3#uu^0tK}HZLUlpv4=|+9K`&llP}wQy8iOg$rc~NV{FR^!a91 z%AFg~t`q^C>aoRzU$CAN%`22x{t*VhgxQ1q;oo_5}aM&W*E<`08MggX^k6j;I&p%3I=|Bw$)*UG3`Pz{e&2f*K z22@I}vK$dZEFak~ghm(i?N=;pBt})|8mnvQ9XLEot2i9f3=TEfSRHR1whZ2>?y6_( z$qlk7v}!VB_I6X~&kNsC>asQPA6QX&Fr$0HcX;`Ex;{aGe;B-}5spdj%v_vrdLtf_ zJvdGyIycwwYQX$NBPY^k2&^Dt;)&Q&ZfV*5MyErc#Q|*Mv2f?xU80H!wMBX z3S=%Tr@{igwLZUUy1j2ezkhY#5Pu+ekDs@zP3QsB@emoP;Xoe}+gW4$2SU>sBk3LjfT_IZ^YrF(`Hz#%q7QUuh#F z9LqWCgpLop`$2YmGj04y&bwvS%p|!uuUpnOOY~-X089j2-3yZ@{0cKWa$s_#Ig?)) z9`2rPY2r9o*gi1ZXNP{&YWO8~e&Abj9zQ_G^5b>pkvHdtvY@Em0{m64`2*GZmuu9` zlIA0LMWNy%^NVm5!Ykx2#=4C{O4S9kSLoh}=B|$BJ-HqrH^HyB)kQN3;rIurH9Vkf zdJ?&b<@X}Hc2&KNzMC22INLY(b2uw?s3D^3$dsTRGa5{u6UxtP3h_}(#x?J39n1B2 z-hZu|uW6zv>NIb72#-J>vuh0BQXuPe&|-8gV4$(7lJspWS56^nGV&@< zp_G%5)C-7b)&IhM47oaklh%DPjM$m3^D;R_u|%EJOD)`|`y4Zhcg*F;WF3 zy~cZNifO5GR2rP6@u%K>j=awsbg|U3x+FouTmTDopSPqNxd0=lZi>= zmg+FS{z@Zlhbd%(hsoYwPu7syfZBrB&=8`^|1>C?;Lt^21;Rb`=wA(g=~HqQ2f~DN zOvVWG%(d3ykEY|e4=&<^OP;Uu3HQDIo-EJ|AMJ-MM@YKAzY+ZO4Zj&H72jSK#L zU-bPZvu$OVd-#&MBCy{7$bl~Q%p`EO1thx~x-!^=Uo-Mmv9|UBRWB*XPGG(P^iOid zy$;$0@)_&e#b2b2-2;6%4At5jJRaU+3iT#qbGd06ro1$PAri7BD@NB6~N)30N5uiTplS(2MzPW9b@7 zeLc4MPE}w>lenBc9)ETKeaP6pmZX-a?Q(@>xoQdC#l?k{Fm4Uv;3JZ$K-;5DCl@QN z&wL)+T1C~%Q2JmsWpFB6o&`5X`x=incDSd=Z4=kN2tZwT+%mSEavAg5ZUo=t<}3>f z@Ctme{m47T?P1wA=gT`poyXjn+Vy+_fK2Why+4NOlhz2 zi_)j)Nu!h7hvFUdBzC*ZWBI6*SIrg5dr=dIaBkL~k9FFSLs*xbHF)$Ntw^1$>M;xm1hFBUV$nxsZxaSR$0b z+-T^_9*5wV(DUIw2Qr0zeUmpGX~O(Xtbd6{WBPMaps#O~*VctbOT7L2{he}`OM?Y2 z$*C)C9*&=-4KIpX{59mLJD;!zS0B?R&z0c*fGE&6CHXfyI7&ujcM(lKY36f5;B(Mh z^7y*XAT?3(Wm=BicYNO1e!?>f6`}NLpCF_&Bu{pEo=4QgKHJ|Ur!-RMe+xvo?{!sJ(y4P#1EHT6LcR`;zRB=v?A*d%L*3kD1@&H1*iL ztJAZtD&{{eDT_LE=N3*rXa$EmBr7R8&wVhPMXV4fq*6Aioivgv3)~_Bw28#XqJDP9 zx)i!dk1Ugm054eOFEjnE6U=zcV_buvK?@)0Ur^gCBxh~k+{t+b7%zGRjWx2X>3eg^ zP>b6)0LRw8TpXDWI>78WuWsI)dd&$_>;^x)M$eTYGfCduj{G`=!etEeP4knkg}93Zqoi7m&eutba#KIf58HD0ZuB*;Xo~ z9W#ol2ehkeS#S!=1@&s?tXN#@o7R<4E>leNx<7wU!iqS7&pue=%~;mB`gqsTZ!ob1 zq!w+=Cxj&!^AKq`9DYCYIsk~zpDSvuwYHV>+H{cub69726>2FTPN7d0M)?-Vee*`& z0Poa2S)K=fYIb2MlN52W6BN60c9DMT?TU1#UbNMND0=eV!(_W!YaaxYt>7x$4jw75 z!KmMVkU6zQAH#BdfpAn??TuPUp^o{nmeJJ6JllcWL@0Xyrsx1GXg0qymp~N&HZURXuvyWq6)uXFGSxi1EP;oWn z2kw-PzPKhop<5tW9jtbGiHj1}8}{gGoCd70h~==#D=&KK@;`#*M^*7{17y{khY>qGMhw+b0l?tg$-b~w(0W}I~ zJz_qBNzV&x#ca2uHldrQ{^s|n0yEe6%7gA=^dtRnw%HS=yd|E?@_HD;#v=S~{kYKT z*YJIzg^``>>)Y>Z?E`%{#FhZpL}-C9)w(m=t{qGbdKuN4@Qyc)Z3bzkazqJ5(-ql) z!RNHFnpJcJ4nt@Yvy^=*@tWi##M9U*2d&-Z@Db+oRJmR$8<=A=8chCFSp%nb1Q?o< zaI9;a)FvL<(zK(RInJgeO%U7;Lj_d^AdnZ(3ny|B%f5zYvB{a%j z&zsYZU!);%#mkYuUP#rY7qF{2(U^C2!hPzx*_e~$**QBSakTS=80dbpxw@)a$ zO_6QK1IVkTg7@1{aE<r}upf^S zFrX53FfjkQe0bXcpMoBG6p)MzBi@zZ9euPgic~0XQpuD1^N@-mL`n4a2gOLo#2Di#y+yxfv$OC&X&ZB zPe74<1HbdBDkMK^qyrHF1}kvfxf8ifj=$n_*aGnBnU@)Z?N?g}QwT%@Z%^-bDBa^KEjGi&CVjo;xMd@+={$U=P@r2WgxF&GQN? z(gbKyD1bd#i+n0X6zvc~Pd&Y{Y6chX(b>6)64K_#RS+#~K^3AC)(r1(V<*OQ*D`2U zQ}y61+c?GQ6-59kd1koNrJfHN#aL0PGOkvT-$K7v+KSeX9WAa64K<#IU^+Xgo%TAuwJj=Cz!DUA)ELOW$}!E@0YyqA@O z?|tzp4@Sf@86?8>2z`Nm2jv$pLg}}fP5J0Bjbk!3-;r5I-($8xf0J5Qv*&IPy2CtD z9j2BCIhF|sCPHBI>-I=()6pT?yi76UO;}^wLUpdZ zGFp@C2F7jWB7@~6f9a7^tZ6E>oN+Pj*-Y=nZ)Hqc-8Z*-03V|j-?@>AB_8Tc3F{lD zW^?{Pk(qf|z!=w`KmRBt?2ZqsGc?D9KT2%1MoHNb;9z@(+)D4_O4r;<@8(L^dN3d+ zi~Cw@&DYrQtj*+Mdp(}<6z{c@JM@V+^ELG6T|8w4_2tQBm{uPBDlFx<9i=X3sOy&^ zsc_f_nbKl7&AxlogYq&4YsSZmo!9P$91uRIg1}-|LndJew&^X!h6^Zs&Qa}lIHGLh z7)cC+c)3x1joYx-p?!={5SEzC?c1TG7)gNP6q?xI2?&*d4!KxL_(-92RmkX}I)7E_ zXFO+Fks1&eCgmaO$GR&Gq;YG@C>f#vWTG)=CIj{%uKuZNVUmX)k|xHg4ic}E1KVkVe-AUZ0xOBWr1v`00gTMzJ>MY7l~c5cNejw z35%umtAqPg8eY$ofGz#`{JD!H#k%j^)7qkOTAg*xEc)@%LiTzhR%HAR(Jmh{&eNf8 z^!x{k15j&(4owQ^8n)wQ^3;Ihe8fM$oi#U&n&}=F`G%|<%N{j~HW_QCXA zDafVib|Z&&_l0u*&B?7=L`%1pZ3TQhW`8tUMT;izQp|2s`?!h?a#~U{-LmX%-EA~8 zt>4jkycpI`S4X~R#FYQM7(#>Q2Vgy!=m=xFYU*nu#lg6V9jPAkoDdeW?%8IGml)8zS>z+;K%iEpfr69yz>z5nI|Uvbh4eKaGy* zAm(T7-&%^~G}sjrX2b+zqme1AEEJudmNJXEb-AQ*>^G}+T0Wq`qH5vht3Z^&suUwC|&cPEBP}o=#yH`3! z=k|B1N`+DU+SR2#L^WH>>PbSb0hwLeF z5U-eQ+0@VyDKHykc~@AulMRr00;GU6Dax1>QZL?Ocvs*I(+acU19#uK)6B`z;p_8Z zJ03i2cmF2bj32=amirfuhcDB&(}U~X$H>RboX_E_T;PfkCBX}5Ly_`T?!R)n+fF`d z8EEtO=etW+9S{K0w|^6JTv`+J^-Ob}HUN^AaRhuR*w4U>oF`;}XUF^`HuM>ftBD=w zw1sHVWvbitdRIs+j+f=cX2TDD?qk>P^1<#lpi)>?F=+M+>TAOX67g!{`|^wJx>soA zW~b$v*w1TaX{AtSQo#F|Pj}EgAQjJ}JxU<_bsAYv3bKR#k$2Onf|~~RI*u1kkIAvK z`svIkaEBr6X2;5$Fk}9#xQFuNj}uf+{=1@_I@%h#4@S2!5)U5#4&(!)-|#+o9LI3} zLZa=iUHco0GxWeU$$Hmt$Cl7?M^k-;!@9Xuc_YGQEwiT|iUP}G1~H=+5tiu?<4F8e zPIZHN6?Z3D3RlSm~o7Bli(%Od0T3kL4>EJ=YHS@>COU4M_TwnQpVf#^b?7oMstq z0xAc13pZT5no33+nK9O)noM-o))I1wxF)rY&AREid3m!(%u+e} zDN}jJwpAUY+jSw{W@t$&XVFxxUINv$6YAu#%0Y5$6L7_GLY+*ikE!yFZHWlBPS4!&is3 zbKF&7OkB-?67T|HCJd=ba-zw38I`k$CdSQjW%w5OsbkvRxWg+cQPhiVVOFJ6JbelD zAl;B^PS7?)#s#-RgBSkT+<}8h++Bga%)W>})OJpih1%R6*W0aJU~oeY;P%nhXc2BP zTCXbt9?{3kUor)Hd!2ju$9cMjAc4~`UHAtkR&i+qOD8g}3Qf?`8fESn^brF`x;< z`aQ!mDeGNxTki{ZI8;{doa}$Sh|%K7GK{F_au#%J{ld?Q4{moizh^w{Yp1s2W7R=&)T=5Hz5v z4^v~&+;?rctki`0q9!qek7k3PUh`0{>aK-PKEub;0DGYn+nzVRm~=T@<}va3q5hum z`J9vKx7Gj3|B3R6LOa@VQZhhG#t}N{O~n4e73T}L)WZ7Xnk))`xb7O^)*wNGx9;>? zi6yjoPMuau2TVUA-s|_TBdMnW{>~`srI+`qmEp~>Xm_YwZW)OF)!118lna3hIf{#c*3=nZQ_blo=Bdc{N}U2%j>@G@AsH6<;-(vLOZks>mV>z zRRI5Rb#6aXOANj_QH#?|_rSM%P`K7$c$zt~+rP_O$e7l~x@2-Bzv&GCpM*Vf+(fR| zmU*2{&Tm&Xx0f!*XiKrLHd~0LrL9_3X|{7`3&*Ld(=L`y&pqE6K7{R2-8K6<4|w#~ zx!To}gV`35{juwZ13NySWnv;?`YZ0)H_enmv63UTGjKahOpa0PKINV7@@nW`xv_4W z4A?qQj&6Hvy)6e3(~Vxh1^xjYfqq7!W0xYk3PS2jq|-{Nl>@@|YHc?o3HOdhTl$-^ zJT~=t4<41E0TmA}Bk|}5<6ni4?dLMAl0AaQ4(lMJNLnzWK4A@Uq9xQZ1}0PbPCL$+ ze^X!mhfOqVt;&(nnqH_0dh`f?{m#V?F>6E4R$l%_zE8|vE|;ioaV6OfL`h6f`L{Br zR?pmUAb!3iP19^{1WR104|$U!8J)fpO~?{-o#xlKJdBAic$?v0LcTT%QJhrY?W?@x z)7^R4;ZeyNsa|?FMS#3*zJoYkxTQxC_sK{;F1Q_)LL4Bz3v62px^1cL(o8Gc)WR7W#tlN)%yEXk5+W%{P2`*xb`UduBa*ecN zu)~MzQU5uXGfTMzNUdGbj+fJl0K(3<#2l9#E542dWJan<@P*l$JpmY?Jr<&`cSzy) z(VuMYAC00y%Dv&G&X^^`1~HM+cl}(5m4yW+V)HQ@TUPHrbs8+JOM+r^dr_q8*Y0?N z>*f#)X${5s89&Y8m8gHM7veL8-MEiri*8=eYRaA1{7lvnVz_s|Gf{s_z0;ycx{Q=DJJ9LBx9ocU?Ac6KZKhDDCOmo&(IWuggjfAZWybx3k1c24UJA0MV# zgNb`$2!^7=j2gwj!ob`>Jo=lJo(}vwfj_3+QVLbl#4nkC%>J3}IylZ?*fh>y=`Wq3 z1X)6E_;(`dfP5BM-X(U(?LjrhRF7ea_&D0q+SD3NHct}Gz1%8;iK_8RX^pt8=-GN| zQL2}u@xjx6&c6szxMqY}pfHl<7R2Qy=U3~ng%38mIGOs^LV>8}7tEt(R3C8cr32=* zW7MR`3nx@o4<^ZLpKHwy9%6F>q<01NZ;92pi3fDHJn^6vv=1#!fd+zRLykTQnD0WX zgj%1!0JXxzkKYhy?-$08m^pIn9lxP=?5Fsc%xg^(KTlNDS?k$w?w3S}3`-O|EczEU z)k5T@ewzA7_-`JCMy>boOmZ4Xf`p{)T7ey<3Lh{8p@gmY7^6y z!X^Rkc_TuMNX};4H-?MgxwQ%&(8846B)O z$Y^w4Fy6)p`T$n|;&(Ign~R%mzN^tsa3xHFK9KbiL%~#+a5RaTfNOgUD$SqYgh?m% zD%VK(DK^DKLisgCKTZhe$P+AFK%=z`ePH+@s~WotwMO>)b9q$l&zbkOF4sgshW+Vr z@RKm$Nv@LuQ%FfW!K`I#T#qbIM zZpTz2MNPw!yc3$3;0&OcSkdWl-zpKryB^Y--dmSCY9jx#X4H9>bC4S+BGeG1nFN_G zs#mT>3JC)krj+CEio9Bca4CGlf=a`R7~rFKeX3pnwzA`3%kR9}Z=~zaPXg&rSFX#v zMs-#vR3j!%RI{b1iy~`<)u#1_%RThln~C3z5iR91X>q-?a@?gsuXXL8!l8^6%7ycLOH941E1aFIeO}gKvYLuIb#7 zkzMuIJ|JYKmJ_v4XJeBt1qr!GGcg+3F~l&AwMRZ+hXa+~HMzMm@L|@b&lc+if~t;Q zsxKCEnuog^xx?b%+6_mZme-p>Kf$?AnauCzrq(4^ecEGfk^zxCSqonJ4ixrgfdiP%h*RCB`5k`igk$I0VfS$F+| ztYwKYkSB`}Q&9Oegyr03TG8WILH1smIdn{{nAK$Cp|9T#&l@~YB8SxX4LWBiVhIEU zC=*h z#)&b9Ibl)xAIa>lYvRj`F(Jk^NczM=pe5uE!MH(=+ z!+D|p0s5wk| zjOy#p6G*MPNr8dNu7OtY%J4FSBj)m7ncD`F6EFU6O9+4g6Vmz6yw@&u+^Yd1ORUJX zrcnKR@G)1@sO0{`o(Vi2_XJkZ&Rz;_m3Za&r&6w?c=TT}PBE3dvIE)Sb@?Tj3n)!s zUy<(G+oOc)?v8DEK*F2EHB|L2-!+hUV*RsIxy7lM>?sr-<+9Vza=i1I%3L)J?@HFP zp;phW;PKy^$H49A8xQDzzi=DUPKH2DXav*XLO&9pL+^YLO5sjaOgs=cxd^^&uKuj? z$*FJ4s_S#vx+HOlZcsP8e}q~-ufezdlu}fY8&%_Xz~AXO8YHfaT{~7u!gdp==2L2t znRJ7GZrimGc}T>Lcc@qtp22&Hc%C82yaeKwPeV?!Cz0YvV{!s>HMxA?I|L1EnbEG& zy@Vbu4s0E3?{7Dol-q+1C>`qFnQdy>$0uAyvI^>1e$k=&sMS|FC7ke+9!K(&w5qDt zl{2`js0P`pagk0jCsxvF5FY%w(%eKH&0kWWg9IR%O5+mN9?{>_KrE)wIZ;(@+p_o! z_Ew}TbBa6|t0>i-WsrL7MiosrODwfPswQnglyv}0{ua~vwFppq=4TpGr#Ci$4A%xl z`8HA=XnjnmJ4Z`4c=3AUnj!0+ZtQKOZw@?y%C`P{Gn@9-@~Mw|hI8Y-KVv|7yK}=+ z18#hj`=)1ahga`%CW;rnCjm$kxkYykjv4*0KU()G1)>50@y~fduC*Mk;T`>K?=m(j ze2RNg;{icz37=b>a5pn`D~B&}dn3IBz=6R~D1?&H9MFly;z@*3u{_|B$rvWl4rJ-Z zkxA0b12j&_74jvbIS?|MO{cRZVtF2D>c$Z!s_Oqh(A#I2b8q~u5I9ca2WlN^&b6;0 z*gM9iY#pjL+OAx$?1S(>9K*P`{@FgarJ-*gR=m4k`69Z{3gJD4i~TurkmE4)pMikK zWHVe$cR(SNxeZP0+Hbb#&SbQj?gEcW#c`Q*AkTIlPx5|9F8gz!G2<|CFUx&EgYSNh zbL~EAGof0o*=RdZO1t5DvEF#y1xx3cCPvqO5m}}CBJ+!<91<8vAL!#+pwSdtV}h;a zLbKLH%cy0mOxq0tGaEe=!!mtO6vHBUZkR$oz5Ah<9X#?kwL+zIJ4{NYa+N}rEC3=V zlf`Pzvf5$z*r!99VU8q8hHi%Cao`=|)hw3H%*Qr1Fpl4%3SX^MFV1eUg86!l5Fme$-SdXq80!r-a@%}uW@mEE*-DvC zgq#lN^SLUy9^jzYu`0p=(ciyQlJ9E^GwVJoDy+=0SWP#BC6r31(q&rPe=AB;{!>lhEsJDQ4L^hkt>8ihkdc}6L!|A%OhJgH#_*)GDT5L*i*yl-Cd8vEYa@%U%H%TtV}ceQ=Rd`?j-^6X z)=G&1le8etNtLpFR+%6c^&}RN0vI#AdyQT}wEA>X8WT*yU}RAaB&-SsnPn$wz99-#kIe&KME6l*y!+rXo&!#L_c3bS`_R^|13;kn zE^*$X-k-O^nYVGX?wb@l@8hu0vz+aT3Avahj2NX@$CR21NwwfJl_DC{a^YqwWu%^$ zDg3XyYd(P+eR*IYaG;wdlZ_Uem6;Y!`KdV=o5XqvH^D^XV(}C*olt3whJT|e*>3%uOy7qlJP22f`LZ%TeXV@bWjzp#v zt>(BzCXq~}5vgQ3WilR5q!p{>d4>5+rC2Ro!Ss(xxl*x4w1(>ui^X!jTBM5YlFRvQ zzDBI>$1&lsn5+lO84t*$Gns6Lt2yt{XfzwFhbmdm*{s(aY({GTynnqN|3~k?e&z*4 zL-XGm*=$@ru780+{U*U66bykzCsa%}XEYp&NFz{4G^SK6kw_y{O10*6{5PhSFP~sY zDw#s5R-l+-$!fV&v68QlWJ;^qY_U?HlxF+K^YN5je>UELSTqKc-C#c1g4uK`qg8({ z(S%yHMx)hWA=QT4^>WQ^cQ(O@TsDW(ZErrsirsdr{dspT$&6kX;PJe-kY>l{`~9PQ z9LE1BU*H?i_@nm!JZ3e1AYd^6-&BQw!{vA}SiyWur~SWdg2(gjVyKG!n%Dd7?sBA# z?>}OK5&lO^i?#oXxY6SApU5##TO-B3^*F0U|FA5k_xZry%O3>CHYh&;$KEeq6wNlQ zeh|&xC!8eBHl(~D%|0OAILS7meLvaSD;P!7GN?E~)7mdtRoybId0ySxCz@s5GNig; z-8vxKdC@ZRKf^bU>!892j$6OP{}Hx_R93Wq@K9SfT}O1DH=lcj;&`40m1cOJ`=#o- zo`$u4NW=TY^1Pph)ONg|2jqG_o<{V(|Fib$;qnIkBH_PDHKWxX_DRK)Ni-srE#^%| zlS#E=wLR`oDU^%VBmTGlX}X-TnlBb>M5)@WyPSN`yN+xQ9u|J^u#FTKE;cAX&38!) zsfnpUT^d7_z~?t1C9?s~L4;1z$v=|GuVYGP30S~VTtfYKsME;T(^uD$t<{Oi|ANUz zHcO+>Ud38Cx}n>}PYgz)8b9IJ+VdYb+yRVas0cNwu8+5>T&G_s9|FG9&g_4-24;7Q z)t5J-l=U79Rdg%s6MPLx|K;b(P~M)T3bAv5TGp+I)1_MK#G=I-rdhuo8Uc z$swb&;+dJw{@5@V8SJ>_W&*a#!a9&HpLL*55r;qX@w0ik)xdF?pVw-31)e!0uX)9W zcxJ(+G80gaJyMFPFS|L4`OO&|bt_DCERIoSL6>hHmZ**+z=<6Nr$;exUZ$~&-Hl4r zrF;A06+j(@uRa}~X+7J%U6stNR2Dasmv}1L!%jT%vg3I<2{KqCN89dQlh82%%nVQM zv7_lv-S@z_-ha6;n2zm5MU5}KS?1uP;C<}&eR+I?M1AHV%j)mP)(sBtOPE7Nj5j}{ znNPjx60Lo{@A1j+Gg|MNZOIX+2u2Q*;l>EHaN~=nj|YH*Zq>nu9@pIo>ReL z8pmUTWxz?o!;Ba5B{LjG9OL99D>D}NG@kt#l(HJ7K@>6#ar>=gB1?w@-+1Ia7q-l@ z!)GIx296OU5eGL)cu;CAKJ9gWaEi=fC7t$I6R>B{5zU~(7IuoTKw{>^ob-= zc42@7D@loo1bvslo~d~BLV^W+V~p9Exp`uua?}l5W+Q!bgsy|LOwreis(E3AxXhRz zLBcfV=&&$JONkQf!2g`HJ%7sy#%nq{r@zBuAU-<@wydcL9fww_wTm@{hv}r)qlGSK zJXZo(Z}ek7nfn$NlRa*c(oY#QElVd~ZzMwZ1ai7z`5kK<03?kkIB zX68sDtIRStO7{MPozc%Pv!~)!>(SOZfsay2#r6s_LpNO{4VHYSDZe9mY0FZ{T*Hn2 zu7g3^7uzpGJEF%LffuD9>9I7?pN0{7TDqHxp8kprlaQn=9IqjgC#g$55z|4&b}-{2 zo{SH~1QIOs57t}?ZE!y+qP}nc9)GV zblJ9*Wp&v`mu>S^edoM$?|t{ji;)pA*IaYO-XljwjvbMa5d#Em6niNIN$nGzD%_(q z$>TyMXd&Z7Bn?obG$Lk-BQ!AS*w+I3w8~Ao`>A9*Gh0n`6(my+p_`)h)jzrtTM8$U zx-a4IYfedMlWekzU;0d5E1FPV;baubTRcs{XJ#Sp*_I|y`uMn#cnMm(kDa7v9^K2Q zSNPUI8?2aldFbbFQtjBi2VAio^kLh5n>3r`=F$&i1iLROjEAx)PjxBXA@bXQg}956 zT)?W_WH>rK5IL9=IKB`$nv3u*yMqt+H`7)=`ZfZ`S#tbp?I=$03877ScB^<`nqU^$ zPRsM0oL*DA^yU?>AzD7=^hS-)%loRmPy_V{XDTG_sLIb#V})xpw7dEY9$|iXqfY3F z)<3DH*cW+(pCF;3(IX8COJ3*8ToWnqkVK+K?0g*}+3!e!XITUCM1Cuo0D6YO^vRkq=H8~XUH{S4kHgmo;50;=ZOa6T6$U`~{cm@n75$fH@sII$6b~EN6W%^K<)Z zxm1lo`opN=(wkL{yH1>BPG%-%x6jl}P-ed-ezX|L*>2ueRisE&x+4a}UN}yF_utm+ zV8xs}SaH3a0k1Rgi)Ol{BB_SXS&pV2^5u z%fu8~2gxzE@9gxI-M+HpS9X>hLu)TIjncU>xE0?^%ZyiMB7-#P(NRw2*}D;9xH`%h zdFE+s9MA&r`AmxgfWHeUK8vx#mRCjm=T`i?1bdjTf<6FY^(JQZy)@2e9pPnU_&wJa z|1tQ$FH5t1t#nR7z5G_iwxt~V@-N9m!yJChF^S!H4qFVDZ#Mf)(dv2ft(5JQ`pM+! z%VfsOWJ}?zTgJ$zj{7DlIX;``p>h3Yd6Injg`Ze?l6%G;iB-0{=`8cBs%J{-V{4M; zdJMJ3lnL>Z==rC3`>^b`pb-t8Q(fHGr0EGOlS{JYh0Y&sY3Hopa?}e8HrHZWDCVYG zGKGWs#e*ocX7^bYg&D@DN%@x5EEB4-&a4@0tTD71C7NzdD_H8RH{K`H<;~g)uWCun z3j=nnE!tJ*YNrKix6KQ~ZV<-LVW{g^ifcYHa-;E?!F7o54f4pWR4KDTz41@Mt#xX)NE%Q4m*9cSixwxUjN6a z1}zD>p`So47#I};2dtJO7HnE=_?Tf|ko3CT-T&Pd#Q)t^fnXFo zFGO@2gK=*p95;Mst3%Xi6s9vug=icmwOgI$-LhlUM*eWLE)IMP2d&t+#^64q@gS|; zXY}~g@`jWA_Hw)Oj*~JkeB8{F zT&}Xo@~D&Y_Apu2__tsgn-6uI~9{=lWmea$(({A}g zbo0X;{F{ceeQi%(1k4|c+~;@u3t1mwL9GP91W-UgXcrs%o&E{NpvC{!IH)GKw6HS2 zd~uB>&URRpAX1L&QTEg~BHEM&ffUny(s%c0KePXnf3hu{_WmSdMF6;nigO`B&+cZd zfAbSb_9c#j>$vRAtB-Y8M*RIQ<_~vVWUTFv)LK@J`Ljr2Fl>f^s@m|iv*{pWj9&P& zUWj=_1h0h+R<-%dX!mp7l-}-FHgt^c#MgqF^}QQ_5d)o(L$nfIL)V1N;@D}~1Qgi> zdDxOlf5!4E@|>BtCElh=zjyTdMT8TjR(tfT!1^#0n*oq^imL%aEZ4tLmp;b7KC&86 zY-NlYl6S5dxO^dEV$2hK?w8Wd!}+O$%FTww3yM=XvdS?B4I%e44W6($i2de29>=7O{0{@8sc9pb2}R~Ojmt>PvX^xox0%_D=jF1dnn*FIXIi(rs=R2jdo9?owd zWI_5CN>(#%*lBDAA>O^P$Cg{R`DVB**tc4(&C3U~-zs#Mrg!J+*<;Nb0~u#~SqIUKh#C0A9(;J~vbCwagrYku&gc1iu#Y-51L*mO%HH zE6ecv9H7O)9hvy+*dc*tY!BFtl_NItAIeph0dyx*?Ne_(;is(O@iS8qCL3<$lRPJf zr_Pm8O+4W2dT}`du$^XtX3Xhl|FlPjh0fsN^qREzghkSwn(EWhckqQ9er=R`I{Imgy z--HC$szbC~QA%*CG#x(^6Wv)Ot0O$qYK4X6Kq?AoOCxH3J>l;HJe)4buhz`-uw1Eu zK00}dM(G+V@}q0|gv~o&cD>Jp?%F2(psRNmCF!R`MIC;Qs&`;>dFyxg|9n`ud?ru! zdaNh&S$iwT@x9kp!~7U+Xfp=pXh8~C(1?B+0;zpL3)uMB!;u79?6e*PS&CxT0GhOY zJ|{zu=eh4NRN~qH95B7utNFZ%*6zb9%`g*tp+R#^H&{8IE&D#YZ8)>b zgvu&+r=3UK_@|RuD&|eFY^8H$9^t=njyft7M$Gxti=HGq6ZJB2XQ?Z zdSENud<}DFr5YIYt7{Bo0f0f5gIk$d41kD7>g#|bE&;&W3_%>}Am84GV4JwM-rLW= zvuiWdie`4XhZ(b7`5_^*)zWJzZpy1q3{ghi+Vs@KzLsI1zz{HtUSESx;II7E`+>lK z;DJCaO-${b>}~CUz(mAkRDiIIJ)LZTu*{uIt%0y?3|;Jiuz(=GwBJ!6Us13?z@OUx zY2oX4719~dqclSlv1{+{L*GN%@n+kw^zZSkTbk{fSlUgB`PxC5f643VDE{~a4XC-K zwR9!6`og+a{2GCj4ON>hQ44M}a!vf2tdqBtUH5rh+gM0C5Awl{PTJJ1=FWZ>NJqK) zAloJcx2HMIS+HY}d`~(b^3scz&Ly^E(q+8}=E8I#--&TGFjhb?3sjf|RO~DTP5~o_ z-mYUk*{%@nz@Sz%b>nQIs@9-hjclu^wnLcPHr@G9*J>1`%g?wY3cMvro)TvdLG-IX zc3;U#+`H;jcV97tqa_tsT7X|8GKXe&Kg^%fZzxk@tP9 zS!=O&2mq4k%`gM9Ij?1Og`(GJ=|tpBq0yfY7>v19V>70u0cvcnFDCfGDG>~hi5Ev; zzV#Fjd4EEz!?9&+iWW9ta`5qB=v)9Ws6pZzbDhkm(&G}03RSk zpcNo4;1Q5`h#tsoV4nr=UUs+s5mCaIJTPGf7{|&%Ih=4}PV!~=MFq`#ydR5uks=$B z@vVP$hzqNmdC^C&;ujyZ@d1Y=&slHb__wc5qJF>m`*ODB?+;(3-_blSnEclD&uYS2 zX+9oAHnK`zJ6vo1DZ%*khJXZ?I-2f3JDnUqf9X&zja50d@KD5!HQdy9QeKXg+%&zF zmS-22lgC-7gt8LRTdR0m@YBx1R4piS36h`6WYtJFX{w)iZIpN13-Id1EhOE`@aoeq zRNRYo>0T~`-AnrF0o0~+Yfjd%91qow!g&5UzpME#R$a99$G~MfE-57$&B{O~**eLN z-_0^l0Cg=Tw<;fYJU$94n}(({lHqmwU-3cf89zj(^wz z#`hf`6xNQa3v}uGvn}LX4p;Ym=uGIF)!Uy>&#NBnUUPld`A#SORyLd;J+poQ?_~(^ z{vb-SWZe+8KBnNxyeQNLapdlb%knztNVm@)JHpWtzO~@wB~;*MWS>@Lk)hqHV7|vp zbq=OUWpX#U7&~)5C?wcr@tyR9;mydJ6*~oW{NWprMLFKWoFipEUB@COZDGC|V^?&01lbsEm21Z6 zFA6z_T_&!5q|+YoQ1l3~gM5H|%)u2U=1Mofy~v&3-OHRQz^1hRR}{930f_XXypJLJ zAFqIkGl8E8UCGKBk9dx`IrQz}_y$NwH5{jO|hocuMb9}23x z5~*|_QbOrnyq^*Ys#27>X|hcGD3kKRm{RJW4K2!3(~7ec(0vC^HMtaK-AkV~mFg7i zeK&UR8Xg+an?jz;$tbC+&J#JmHQw7ioTCGBhXd#5Mc&5-Ey`IG**W+>Rc&_VnqC$% z-p4?+GgP?6#w^v!uFYzrx9tk2O`__jVjC9+VQqe0IPkz){J%!{TzEFbtdFh)*2jE) zZuCu_yC|OuEon~r>3gAU2pod#$Q_6s3I?<+K{oLVPaEseE`dp=R`jWNJBtd}``LR=oG24?<(fz41xbY`) zMI+p+(SViB3I68hGu5%qmjK;-@md%jdS)8yVi`>952Riz$lun#B#Rz9u-U9_rlqN#=-g4@SvM$S8`&dzH@&fc ztI){H;3KL3F4)H#xHDJGY<1&oS%4>crLKFB>y=5ZoDW_l9Hqg=Gm(aTJ8q?UbHM!~ zOfA5LU!%JtUUl{Y%(@Y(a(}Its|&u;pBR9bOQOCA6zeak%5;?O_UPip>J4e_U1PhZ z^)=OhskgSc+HCt;W$tEn`%yC0@Gh65uioAckRmKoS*=77oxPB2c|t?h_0R;KwqITArt@mEqsRmELOMph-M zu-;FAKdsfB{q3M@5{dh|I=%0iC)%amW02erT0%i6+FB$(k&w|5;~xaG3tx^wmC z>5o%ay1UEu=W0&9+WEMjL)#PVDl?9X&(<0gE*>}LV`9=2!#+pqCFmZq z_KKITn_im;zN_x3_Gy>mTY6iDTasI>-4BrOjQ+Bpa36hAm~Z03@=6SIl=V$6fv*l}nvdX6zd)VRsmeGo64 z7tNb=k${c8nX8%EjmK?}F)LqA_7MJ%vLt(M;P?R6A(YcN({i$8QpdchVX18oWnjX? zX&oCODiQWE&1+~voqFAP=id^U*;Ms8Owo^M`Hg$AK=1HUIuT#XP*MXkC1J_OQoKDsS_o2lDK7I4 z5!|rwESYuA9e6D9bsjfJ$pJpuv#9|pqbWpffirob%Crb9m|x`K-f6515o+TFsB>jy zaX9Y&3CI^P!AN4&Pi6PkS`C?4_yt2PrHsF^y7Puy=b!Q{hybKUctyKnqAx{d_WX{X z1GYu$=_2X)lno;z`TCrRtm&hxe0aDQfW}ag{Cozm@({-5zde?h-rjK zED54#ngo4$SY>I0hgHpnW>o} z+kpYyfgvB70pZv3@Du~e6hlrm15!0Z)Rl*h2EVa8 zuJD@Z3F3J^N6)A}#{13lR^dC#e;!Gu)5Q7c*7)M>*9|IY1KA2}K4*F>J=$K>rWh8l8+8IX7uFkl%opzSi?A&Y!wEi8!F zJdmg@IaR7sYbt6YYpTZ8=Vu$+uG`v}+;fjO8rg~vE?LFjGs=vYGw?5Q44vzL#8SMav$0V2Oc$rEFKMU&ls z>j6x^L)sawenq9%e_9&$ViAC55us)g!)6iXW)TN}6fSoZO?MP&cO*CF9seLgeo-xvg3tg z-t7-UUexIr$@^kC%UoEk!URWA*dGSer!*HW<=KD{Dc!6Ik~-QQ#B*~~RPCusbu3P* z%}=%x@ya+@8cn5B;5TYevtPSJMgHgYd1>ztxXbR);&2VCQm2glKSt*74z)Ztjhjvs+fV+|^WDCixyi+jjb}LT&y06{MuBRTjriCtD@(=g zZNP?es*8*VSyc<*o5N6jim^{6iKnUZJ)LKQtCtpW9q=qq`gr8XO($aBr6`Z-wh@+= zQ9~?n%P%cd=hC~7{~pP9_HymdawUsT6UgtYtYpMyCs4hfG&tnQz`fDgxT7-_Z_|n^ zt0Jj!n}xPWXcrd;BzE!(vzxMwP>w_hx;2|z+^Imag0h0Jf{`k%oyeR6ox^Mt%%L5> zN+A)y{5cXw@-CNPPsmQbGiNwGB+6RB(4nzaYu8_m#}jLh)pOR$KoE*>cEqOG&7IFe zho-=!s3glJ(dG&8szQgh5J7fo4oD=(;&_kv?GrMmFJ6B^Vl7ckj=n_HH8dFDI%)Rm zQ?J`de!yIN%F{J|O5FZF9bi|=ANYZOWIwIuH85zUvf#3^T7Kn4)s}gf4HSKVQI!y- zJF%c1zKErTZGj_X47x_#X`jmovhoZRT2@YKR#j|NAwilL+%3F%bXmyn@<(Zi8)J%O zSi-2HtA|6??%l543Trrsk){=UlR|w?SH-5#uQ*C=*V7AmVQdbz9^&62Evu$re&7VQ zj7vP1*t?E;!b{ut`?!+Q@Q>z#?dhp?RI^>cb(Dq!+rceq7k3+Kyzqf#k2lX3o=?Z(<l+k4Z&^HU5h7<}y9g4zhtoc=d@VTtM z0ZWwK{9q);$;iUyB+ag zDH!^ZOmN<622(4!Bm}=COoyBcu_Rccc|BAd_2dVG=AVKez*g=@==viEo&vw%z%>92 z;6_8+zZPIl?c&n!&f+B(^!Ss87e^Y|C6>Uw?Ne++luy_twf0Hn4nKC#8`6IPSHoAV zmfj@*fRs_)TP(-3ykWL|PP^1rWvfP%>71sKPNO>AHa|$=+9r49-8TT!y?2IH%gp$*-tR>=>Ab)0aV#$fVlpe-zxKZj0;;?AABB{}g zHFlAoeKFAf^Yo8K6Ko^Xio^^fKL4Td3^)^Na=BoDF(ppR@?S6Z0dCI%^lIrr_us+? zc?d`aK>o=M zh+53SLz$l)c(R5L&u~-dU7@XE6;IuDhg~B~-wIj=dk5ii7l0#lxf6lIW0lD> z&qjveZ5^lM`KX{V;AwIjc`*|cwr#gC{ixnJUQ68~7Fqc{TTmi*iZyIlbBC8Feh#b9 zsHBC+gH37xVJ1N`-V=?vT-bu0y+Nyw@53G`??0sby8~%A9ZZ5ooTw2gdfGd8;jTL6 zv~sa|FcaLKo1)~;B^iNe)wmg53*giTj`_{^hV?n*jKce`pi?alQP^KYr&b(7aj7sJ zdiIeRr=)e7tXc5CNSah*CT*4Rzw4#c#;`Q0H)e^2Z|o^YxG+<+izrU_*(gULFzdD+ zWv(DDXgi%>H7@Miy4ToqOZFyrt+Vg|4V@vEE-%iYKK7a;AwG(VW47b6dw({0;<|>s zV;;2t9nZhrQ{0=~;q`g44|Pv;&vkcQuTV|9*|)3I^_BFMw{|jy@ym0{bFO1gJAxk}@!|Q9d{~|| zuCzCu>;}0faf7>pe1k!Qf;~GtT^wv2d>o7%tQ@o)+C7**$p9nc{pPU=!BwIzlH^`V zcuTUl$6qrQU9pR;ljCi=^3zsF^8ogdF&ZrgK~`L1)LV4IZcROD{of}(z;APeik92< zQa0gB&VL_<)5V97vYWsfesy1qi`d( zuU@bHWAGxgZXpfk^Xx^dxKGdeHGeoJM{qPHMXuMRq*%AU3Tkh;O0_JjS0`sJ-Bxo- z%bWdJ_Hj4rejw?%Y*W8jv$M1Jz#Z#w?wKj9qst}cwS{^0VVO0EcpPx^&ZA_e&e~0M zl*W2|5B@^rgrRkjUU?&GjM#b3B~(n=knQ|z)4a*c5aiXS_W_j02FV|wmdKXxo(t|tyOJq%@4_#}kMvATghBQD)AhFEX-zB+os^@9~2 zky>%2WZ#Qm^O^^WAwN*WldxKAM2>Vwap+_xhQG>rdklXYiYeMKinb|DoWO`QQAIsP zl;IhZ#cB2x5@7@>sZdNy8IlVk31W9Bf0Uyll{%2*gLtbJM&==@;`}aiP|4FGjvrU>%eX$q=0?@Zw6>$dpgsX zSNxIiu?XdzA({sV*&r?4b9{0biEFG^9?iNIHE%gI%ZI+BHtf=r9{#EeXMk`Krx;e8 zBCeoy!rfh5idg8c1W}~4XW1`@G8!N8M3PYpV#-7zx!)>Ie+rYBNrE#eHTP^r$qpsp zS0$_W@~ZZv`M6OefU|@=1Kx6Z1pTD4%_^zrovYRNWSx{PV;=f&f1o6}&0;3Zii#0R ziH&iHjCrJoVx-eGObeQg*~EHDZ|+cJv)`C0 z7L=L5Y?3`itpD>O=&xv7IQd?p4v~J!*dBEsu0R_lyP_Njl7J?;9L54=0jIF!Vb(A* z-9SjZur3AX_%%xW5BGnS5iSYQGjxCIlBq*P&<}SM`$${CobsvTNYqzM^AkIUc_U$} z+pGi8b)}bJ_BN~8 z+u}}xBdcppr7sR&k|0~ZI)Mx5Xz)70jRAYw3ZWg8XDPNE-aoN;@%99Z1F^Q5Jw`iN zbDUGMc=Gm$%741LX5<~Cdz5xC?`3veo}n3|lMU-MTn!sGi{p;YBlc}A>F-0n!A=+D z9ibfV8@l419sleIdN*9ykHK_+>RuZ8VsNU;7vd`xnz-6R7YUYTwW6DTv*R?zE|MeWkbhm|vO!vVP)Qz0QBV5%v)7gofZc_TrnGzqnrY7^eCO zmDtCJoPSI;Va-C*S+gE{JpYV5$8O0Bf~S7y&BJHvOi4XMrIHI4oZ%+exmS8{8&V>&?j#tUcz|4E#S-)znk^jm)S^h$xZ zMz{K7;^VO&(<340E+Ox)rMqxEQDxrh;p@=sX=IC1@_Q023VW|<{tEN!_UyUay&qnI ztmyYd&-Hp_`ZLs}73%j?C&#Q^Vu$T|=3&@g!L01}WG6?oU9x}zcMVL2+_DI0tTbkE zwp)*WAsR4xjna@==mrKZ(JG3~Mu#86r)Y+Vcf_=btcqx|v2_^p4H{9Tsf~%1^rl4$ zTT%cmvl zNu277wppc{SQbmPxrWU&$T-L9IlW`|uTT#(fwP;0s6~)FmM%;m_&VZn@oFKjJ9$kI z>ZXVvFoyZ;;+S85@d|!QdM7gTnaU?sXsH64t<++4Hp&|Sp$h~{b?p?U_my~38ot&6 zB;JeJqEc7(uw@UOym2WHL0uw#D|%$NY;e!4-f)&f+^i;><$~?34QAtPEe9@I8b6ps z?QE+O3_FSAWUS54<4tiZLF=oM;0|esZE2{7S6(aMdJYl~*Fc6sniD6fvV3iW5z7FHHNWn*X;V@Fku^cDzKQZf zpnQWR@yfnboEs&~W>2sx_vw65ndc4Z6W47X(}%AJBw z7c$-&bT>3*--284mETJ8!`})kcxqw1G2lIFr0 zf`R7m6oe8&;Px)q7|0oz8KB|kfU|);U0UiO$B@(SPHx@zaG4E(uU<2T`rBs@m|rUN zgD8I#sHHRnJL)m`AxC2eUk~|@#xAn^==}4#Me%nshm7voI(xX-c5hEV-Rd8=gT^7i zML5f=hLpSJ?iO&IiktduG@ly&*OMw?!ZURJiFbKjV!(qKt^VQH_4N4(k`eUU6!t_J zxOM3_v>({-uX&CqtVorNd4X~L9NI%UkkFh&59XT4HISo@`Pnn!3&ft_0*&L3Wl18f z#=<73u?I`UfsIXULL3b%7trGvEDGVwd6?-u$!Rmmc_^^Fy>aV{J@$(k+|{S0_r4Bt zVd(|EbpX>FSF)=7TI0_#-h{;Y_3Qm9bLM_VjfS`doBq1M(q$%>jLE0)LebOW@xJBP zu{~q3fQnDqsSuIUPnnfT(_PH^O}_jMc3DMT;?;I}yX$;_V#)pxCEY!BYQg*+K!p6* z*iSD7j#l(!eV>D~+bbg3dw>pQXXUb-@13LOv@ufEHzG^FC%Jn&J<6j&3{@wrTZuE2^hcYdZzVL zGFSS?L|1yGm;J9beEbajicLqJ2fllRdCwr~drG9}t$Ln*)>qK`6bI7<=z^$l!p$h+g7HLChjIi;_{8=%=L=7UpPAAr2q+2qsB za$ll8PQpt$-obkDdnkU*%M1Ve5I=o?Y2L4gdEci{b_vDq@k4bB^Ufb~RUuE5_vS_k zG|+c(+%`>sQsbbF=8aTwa3-=V^$Gr;!XP}EUTa)+$LH9C)sK?l@|R0A>0VoE*GKRA zD8k}U9i##@BSqFQQDxTJl<>O7flsbgq&thOHE1=}T{28AKf23lPY_(V(P-t}iRClm zOSJaNfIZ7av$6gI;lJTYLJ34{J({PLK(Un^X{Aok>ZEOXO8nHEBs7Gr6518Mhssq<1L?DF|o@~WOB zw11Lg*M$t(Ea>uog2`!nlNSF;He45mc+4X4Sh8g|g2-$ABBvcr>hqY@;jx6zZUmFp z3L~EwNjfQ-a=za4M47l~1 z)?Mm297zb~F#lvA9gBZX&POnZIDFM8ed%1^_FiAQ5JwW+w?B(R8OogN*O#9R{oC*J zZJ!K$`+u0f@MVsMG2{NnLNKr2mLbd>4f!vr3zRv`wv1pVC8YV^!Sv$YFKCH0i87Gx zSKX6gfWs9w6UaW zMj1$Psx7iyR{E*^cQB>c_?w0KUo2g7atPJ_jwCP-C8RvejwGkYtO}1MQ#MLp5>2y^ zb{>a95snHay6WGdq#zF^`0V5ua?^j3D;~2bJe1gyf5j5f2qYWg3*jVY&0xzwc~1l) zxUTZx*Z9`>BzJ_l8S`|#(3&q(H%6w-OiDqKPkMfF)#kvjX|ACs4*0q4@OF&rI2WIZ zd2z*Ot4d7a6`G^YHb5S)1mCF;^Lqb>(<>~&`X+2dydDU6u_s^}gc8lVRtR3NvfmHT zoTG3Ad>=B_#%-N|UKz*NCb$P9fYQxoWg?LwZ*~PX=V_dFM1o~*13U#X(-ewVEb)-Y znUW)5R}u(Yo`Vk%q#*eAmM}5-Y2=betUgMgjdunj&kp3%_$lQEMyx*?pXa>Z%_nk@ z$-PY2{d?cQ9gQT?59l+xiR4H|S^PKNTpf2L-EP?@wvfon_t^Z0-*6p`q|*=Z)BGvq zevQU4c)G%mryuZV zeA39hQ6l?0Ww@t5h9ieCjlYh+k_f|Ix+|mYXPmu4LytU0P-LYSPL?*D*uLNLt1MOV zCF<~2E|9YJSNy(iKfHel(^`%_KI~SQDtEu%C3aQmD*yPW6#W7IzJ`8+xIpWdPRBez ztk!kUAFf(s8m=3(qo^N#%k?*0^}e{JT2HtHP*keEr$%>-$X>%0H;_pnCX6Gyv4AhV zCIfcyOOLN~vTUwgo&Ru_%0a2CO7wvz&e`kIUM23NYjkQf!5*J}sspZ+@4oKELuXZH z0*Mymu#9>kaOS$Q$W#+Ytw!&i-?w^7d^aOF??Q2-%$lc|3r{%*N%&Kui_ZtW<38#| za-o1vS-0KZR}NRz{wFwTEViDX_W0!I1;LCHDrJ)`=G z^p3E34O$oB($1E0!RURHhuTI(``r!geY2jMyb4-EyEV$|TR%e!x9I$wBkls+erK}t zL%JRyBYUh^uGqX0n$!0E)Qft&Fdf<`+)MB;L966{y_AOL+L%Fq$RV5&}*t}%j_ly&|#f}V| zQwqIib~ZnPXXuVv98fi>ugse`rrURQNnd6zaDXU%&%3#DOf44S!(3>o-0>p8TZSiJ zgByXZuxvKXbW^o3(|DPu?#r~Cen2M*@fX?~UWs{Y`%}q$VC)kwM*%WDL>OlZTJJYu zbSPWdmUN7;nSMF>+=YQo=J_?{d?ki$PxMD$B?LOawPvpWHCd^f+SgjEUP7Q^gN4(u zjha>aSCiQAxn3Q>lG}pYWRk5r#}ng24ECD&HB-3wI80gYC`@&V-!awWUaw)me4NcJ zO8-)q7>~#wjmWt;n|McdbiN5U8Fr0ujnMH}%RDN^BiIlLdYbmFy0xkMjrK$7S9kI@ zz3G!Q^oLUDH!S*w^;rIt{rXZ@sZ4K0VE!vX-O0Q3)>o-8Z>F>#NWJ=t|LA`|NuxgV zE25ZT!zf4ek&Jw<1P-bgG0JMlprR><46+z9PH4#dc;>GPm%%2Qllz#mZIwZ!Qw|+V z-exjwm4T*Hj{Jrdj_FJ~#bBu`L1W3gOx6zRFgj+mbjZD?QV!`0tumN&4e+UDeWuO- zn7%e)21#9s9V2l_KmR`0~a&FjgP|VOQolu%LgSKKuZfXNSs|mXbOLAIjLwP~p(#CXbwD8l!wOm0_8^zdSuumNbV6s|4DXvTDwTz8(u`gm z7qCSuU;{6mkeWBcv`PwF{iT?}Gfx)1x|hdhIB$k(g)C-!qmaSyKQ1%yZ&)c{+gCaP z^FKl|geK?$wlT#oVFS!J^emlln*T5M3;st)BmNa5i)Y1*-=rDv-#7e2A>*f2!;hw8 z5nH!BwyaWFa;paH|F*&uGB*B0Kza6wB2t~h72vKaQM;Si!a9e_WxIW-M7E@ zI|w1lvgf-IT(qQtulm0(`d^~jv={7QqmgGz94(WtGLs{f@UUbibTa;Sj>D!v(uhSa zdWd`4V&u&d2QVN1JePLBdi!;5k%ug>p0dn=Jgb$m@K@>fpE8{vd-Sc0?3O(Cc%EUk z0Bfa;@U{eNYbEk>UGig!?8cwXn72to9&%AR`hGqhTqWjdo`8?l1Xwi*yfJ|$*Q!2X zM?wKkQ((bkT8-yO&MA;B;YTATcKKi^*9cTO88JmH@`3@E_UOMdF*lqMIf&wxWTojwJdqX;-&Mn`0HJ0n!$Tzyn%AMy(2Vo7Gl?zxjTX|b!2r-d-D z81uVTOw0Wi`a3oGQg2T+{sC(Keyy5K@kd~zL%h}~ns~c=ffGWvu7`=H>{qe-SlYjd zXqp(G8jIos zDS<1>Z;)A9awas^%T4AL%o2ZBfM>=7L)tu);-I-M0ChIQXYax2!yJQA9FR;yLjL`~ zvA8CM5nMo%@7ycBARn+#c0Bg0Et>`}MKogF9w=fX{B#eY6dQ!Wc==KvUJlFSR44h; zQP5o~&>0TARpKfoOrLzEy}iiXZhA&2RB~cPcP*tG_4upc5sXjmT)o1f<{rgfNB>20 zrXf~{yO#B*RtM4YUi4SY)0bkdI3GIl@hu#;!H-{fTv%<9)weW)N^YRixfr5|>&^O~ zkuOM}tbAN=n3mfY`cv0TwO(P{vv8@qwALN1_X6rpqVDb!2AdH}O+lxU{W7!SpJVkf zt_rgx9tke3-X?s`qbvm!TD!*R4r$XnHq(;QqLyf16OWp~6cm4_L)gs*Bk#iLI61~fJ zRqH8sVW>9CV2a}U7ke=-C?jp(qW?tTMZd2YR{XB(H5aKJ z@8KIbql>RUJ-qJW*JIVv>(tJID?g30>$|vVq~kaTS&|F4_dx#IDmmFR9B2E)W$LI` z@pBFmw&R@2tK297$e*e><4BWZW6G3(sy?+|n!tSxLqau;FjO4ti`6b=re(sz*Oo z4ZKQS0aQJJHBIAfFh4ArZIQg zPh!J)d*BoGkQZ8k_i}~q5X&~LqEdaz6ZOddX247JQBPWa-cyUdODT3M&D-;Cw%}b> z^uCr~128txhhLFA^l>hww|yNu=>s2a2mVic@EQR3?OzLcB)$5EAeT|QzR;cYvEMe? z{~lu9_qy}ne(Wm%*yhr&Z%ONQ<8?U;Rt;v&nA$GfF5HSyr)6i^(BCfjC;?U3Pa zt=~boqe%Bl_I0-3f$y&GyG-g#(GoucUwl>gKcoQ%N~2a-Mx7vxNm1AzwS6Ey49J)? z0uZ_*24rMMVxSuqxsY&oiT$c#4{DrbM}uIzX}OTdcZNZDGSgwuUL(s?#Of6|_&UJ| zURQ$nd`G>IOWVO;e?YXEHLRN$j3kuNI7mX?b> zWcA_pr7~asp}<{!_$C((J^tWW&n3>=y%Ul9?~x7oaXVVALxIyw3tdtz^}zp!tgjAh ztJ%J;0i`$;C|=y%iiP6E8{FO9DPCIK-GjSBa4il6g1Z$d?rtGpc<;SG`<`dcnmudp zwR6rt$;p{HduIRUxh7iZ0<_F?UC}cj{!^xZT!0xYKc@b!yQDkvBPpndPAxdLcn3iI z#}}|#-UUFS#w#Rt58vtnM9rmk@r<0gjULHd)pLk=F~w;|Mnc)3{&B@j3~w3tX;p}U zo!MFAA;Tj&z|>|#vuf3>mN3d9%vwG3Ij^{r?u9>5W^RWUkYk|TqZv>9S{{W!AOd_n zY!t%73b$QK|73F9P&bwJD**rd7GBZjZ=u4Nb*mKt^t)FR-k->DfBh`-N=gWqp7oYd z8nbtDb=04)E&HdBC9T*s812S+{JbK{_g&m+MUHeTq}G_daSCtVWc89k zy;I~D`yi<<(jjJSVw$Ybi3)vcJXg@co)50rS(UJk>tFM>h>c#)dMWDJN@2s7GIg8@ zeJm;aR6%bP^@=q1Ax^bKjtWDKCiCNUo>yQ0h%){4#clAsTFpiF9cl8xbSC%1)-)j% zl{!Vvbc}9`RIBOI)?>Nw^c@=)NiWPnrwI7ovd(lFm@aCx;^7R^{gyD?o7Qh}_coag z@g>TpxQcv9lQgvfS&-7sodQ)LB`Q<<$NT;~k_M0O9+E#fAI#sP-=lK$@oEjfU2l|} zzub?IY&-^io;s(xcvyI9BsdQ6@=18F6Uu-4J1#GOI%}_Zj5q}xA<->Krd&1h$FLLy zV$E8Bx_0^ChhQT9^PTz5zpPvG2HhXsDW^VO7$+OtrM*Z)41w$B>!evk)0>|765?<5@QPxLj@RcSkzWlu$9A3*vqC;94hJ2X6lQ4Iu zo=lJsjU=c0I~&5E7zf+f-LgaiID&M{6z{vmm;Fqm)`SuRI`?sXSleklf^%aZg`F}W zRW(M=VXug)C$L*Lu`)@GS=$sY7Tv2|Ky0kniCtBJepyD817Ja=0_Yc{>x_r3jTY{r8fHRrx%sZvS1$nt=69j1eYLgH8~EE$8}%Ei9#jtm$~ zQP${VD;~2c8dRhLZ7M=*=T{YFOw-W|YF6IPb>853GnhRDCJZ~PD8CwWPCfUilu8)7 z;Qs1lWNt)jdfLXV^2<3ZyY_|f7WaGD&Jhb95$~%PsL}nzW?y?oid9pO1YQ> zMP-b~D)V#5N^S2B5|HraQVzJ7q(x;+#p02q7E#Kxh>H7yG2dZlUILSuOdU@Ty)r>40KV2XV+qg`R||B#6+ z!z;2tLC5>XG(3A5Gof-GOQ4%mYA;H+hEZ@T;dma$tD94K&x}Dp&NR3rf-TXokmHw% zOra86VqD34xdIag1m(M5D(?!FI1+!9B*+yQFi&e@R51br}B+ zGJyxtr^pPc1f{_Ji2n+z9a3pXm7!H$Fk=wnGEFaZaZ0fLQ7iw|6Iq5#WRI4v{Y}Bo z>EfWh2BP{qdPEW0NmaQz)OEE=HZ5Qhp?qdgB z$0KMg-b=u4pNDfnHC4(oRGXiR623|HbLJ}010y5M1?dv7XF}c;^ztygD-i$0(G66k zqlN%CiILz#fooiuP!E%lyx)RWBgWAl;@d#5YWT=zriTgK3*a~h=8)uNP;L@)Lu$JD za!KhYq9WYN$D@Q6YeWUEEeGBmh13}by17h5#bO%Iu`Xf_Y;-WUI!cN{VPD@ZO;@sA zg9W{b2%pHWTeHIbs|@)^g8SGu8!j&%&UfY>vvjF1aID=U=Or-_4P4X(D7RycYJQlp z_@rd~8u%?V8GQfeWw-4Iy%fh4f|+*zlVn^k{bP<}pBq24QM7eAG3wZ;(^Y ztQm9?Pxrl*Jon^PA)}KT&l7OyHcx@Jw_R*=- z^na;B+Qr~W(EmwdlU_iQrRfg-YM; ztJ-(v9hM{Z!uoQT}RNt?;$8B%kMYMn>VTiA5R#~i5^BXmH!_PuO z0(eKJ@>O#E-S3f+x)H^95!sh%$<*rh?%)S(DMBCBD8bdU(?ZTv)M)9Bnkv_^<{c8) z;Ey@}_51i^Hrn(DT+p{DRc~qf4jYgq&p8dZ*_}>EmN|Es21~-&W-9vJ+G0Qd>b5*! zTe_c4qd#46kh1ObkaL*xw5DXF-(A3uzg9j%eAJ`^?%%><`yE$fWwH#ti$95N8D99P z^IT&cQso&imkkCL=?|bT1)ROd;w~@d6bqWVG46gEmM}Bd4Ku1t7@=GAE;5QwW$*TZ z*o;kTEDESlWw@0<7-gFegA%31-(*qnHzk!&;cZdY;N%ZFd6$KW#`hg>Hr@1)fOOFODhK-?WhP*Hutx~o+1 zx2C?-_z}zPk)%W)Z`Qg)#;Ppl z!cr9r|MiYBVEbW~|8W9Kvv%4zwD~rD(Ug(puudQ-;1_7F@%m6{;|Hag+01+U!QvlC z6OEHvkTWK8Tz#7T+SEt2Tvpj>?mq6-VPy}{%~s#cYMabska@#TKc#Y6YrShbvD@DY z7lASiEYm@Eanb#vLZ`>^4kO18b-TVw1$~^{H?8SM`E&dyNKwa5&V>4ib)*;)8FOg8xtFL}~khRO4>fRft{Z{nFFG#`KBB z;iVKWW9nu+Xa54p@8#tg$_3IE)YkMn$o9AX6m$S%{V|qdMDRXH!Rhu_oieM9$-%4A zstkwl%`wU0X{6M>lt^7*+(5g~z~+!fW6U1C*O(ObCDD=@eWpgY#nCul-&Fgx5EMf@ z?D&B)s+3bUx%v1>h4%G8SRr`Y6VOZTvFmq+(Lp(PZr+Z!Qq>e~ttXJm6K-X#UjNm?B{_q8n9XOI!2_=WtkX$!+gng+~(;IY>JcwcY+s zgYNx&AFQ#?Ox}1>c_!*H(zol`U1VYUEW@rq{@)ZGnHvlfNfa?zHU#wY*gv(RTRv+XCb6mFLe}&%9MSgm!6rEHY}w16$AZTkra)G0XywHOAA9ojo7V z&fEL%fRChA-l{%d$guUvW`he#qj&R^W(O|W&pghC&t{YRW{KBWvrg1i^=Fd{va5C( zH!gH9?kW?nY<;wAU3Gtu+xsA_-V45m%+$a2yl?hp0kHZaKxI0Ui1F07SH`5aez!H> zc}LNV-Uyj;mr1|2wfU_I5(L>uEDc{L{kpF4$+vh|e8L_dQ>%G>^cndU+0?>}Gi@Pk zc^oJ(85Q>{sv%F}ZV17x4fGLLU_v1QUP031c$;f{DQVrDU_RBY@cj{!fb1*Z+?T== zVY(LhGOtPOsE;=jESwmf$fWk1hsU?n?sqsK^==h!E}L=poMji#-14?8UCSH@XtS3p zy5%#z+cmylv7^zmLib4av3OiT$+8%rRg2@b5Tn=n8upS-!Y{#yONRYj!EUe;swBN+ z-h1fRFt-FFYLA~h<+%uDAHJ(z4lqa>$xhtw9OEX!O;ANSg3c|sOQ>8MatX!0Mv@ozW1b_vu8Gux zBUY4NfH7t_`@st(r)bE+Q0An-LO9CIsYZE6vme?pM zrX+H_N(Cljqgc}qmKyA|fCL8^dn(gds}G16~=@r0=XZv^OLq`zP$aKKHeJuw<`X=^Q0=Ai&g z%{}tem>9XYmIxX>MJ%$r2Zt^!p!hv1yrg)IFEJ^k*eJ-P%H%aMF&XI+cI4s~rCWH| z8HGVpm*kBx+1#d1D9Fu$n9U^=yxd!b-h7<{Xoq;?gMNZch(r&If|$q1*T44qd+rL)i$loCcQE6e={Cd=oX{l_isc|V zA-GpD&U6%#KX-MH!inl9KevP+PWCM)X^Ud)8QBdp*IYFK@oG_aoD5ma@FB+d{fFHO zEF-p?-8ypWdxA@2*YQWosqjgqi)K!IF#gVzo>g5ki-8p4;h=(>iH^HDOX1LT6DPj2 zxgC-Fw$b%prE62Uv632Yh-9t#qL5J>T7G(2WM-HX*43?L|GL3LJoq~8D zYBPK1)&XMOY!bx>>kBlCHbycNfldE`ovE}m<2kok-JI}+deGrwv)j*=k3>xp_+ZB! zu%j{0vG<}1ezm*t^|8*i-ABCwl@v*uV%?A$tgIp)JhTs6Xce zqS0(hYHA58ePhY*7uG^WYnQH+9?ki_fYdPK^@J@10x3iY+9zS&U>~b~vTVS?&P;<;@ z-}F8BjS58l@h14OS3qTc_@h2&7fya#=^}AYKhpL)yp)R%T*(YScC7lti*1tXi2{jJ552KX;kU%fhTwLGmKk8{?LA8~77%$4ah-(v&m-vv-V4k?yTWSyi8zgXiW z-#QRTV*7!9FZrPDPP=S7E=w0P=YhEan#AFis>GBK)c3JPpQMW!l6C4x&J z8Lj4<;4UfJ=xBr%i(zR6HM@ALw$e4(RO9rSlkvTHrNy{c97!_aMGJXS_v)b-VI!-~ zI!D$`oDDk!9>C#{y_l9-&hv$uF&(NksrYfvCjlmQcPuP?K5orKvGM_KrK#x-1rflM zcl4x5a^wq#CO?NQzyPZR8=OJL&m~2mG3OL6a=2y)bJa zH7$uTv4iGTuL2E0-2))HI$E*YASrcv_P4MS`e6Yf}I{Wnr73o8sSZo z!%c?qLtDdcHnR1SmM3JfE+rygRtB~EY@BIHhE$51BAp)VL8G>s4Q0F(JDzfudq?>EVDUWs3pxfbDg$mbhZ^QIhWhE7r}pZ%RKj* zp`|6c7xHEE%kMAfJ&vbh6C2<~=vV+>*4^ZroxDV*i_lg6krzMP+xfDhobs!9@h1() z>_0>YHCGN8AuD#Sez^VQY0~uxWBBx zdci7I7B#P-hzb6Vy+A4(dLknK$dcgaZ>c_+6wz3|K_)mFfi(vx1goDNAh65}=$kXL z+(M|bN{yfE75`K4!R&^#+(xB}Y>`VStL4xaHK$x^Rs?!!)&0qYU-ic9lRNj-Wj!1l zE!Ab+9Q4YyTl#34F5oW6&@RPfy>ldIpifE>?m+&8+3!yDLFkbIl(M7$nB-850Ykw3e_1 zSSgG*7TX*D$~SAZY7Yu%*PnV&zI?hYS*@anO5gC)3wsv$s!PlG(L9+yD*g>8nvU@L zn^1W9knqG5DJ;LK2)uE2f!f`Km7+=rvuf3yE8_ZOB~=wLs3zjw3ylJ#!HUSEnOa%- zvpc4r5mk!3@Kw};Of@X|+ZBuEiuiq^6xOH{zU{ZNrq`Bu->{SjuINs!#2-VII*14T zWm??jP3ex)HjZ0w6saw?kki~F_ThyV2X=oW-`6}|`1ZH?%Gf@2ntP266j9!Z%Y#Vi!XESSeGSem#Yrh?#q z@naS=P2Aq6l8Bi}#V)X$xDls%+_4Kr{O0!<;8_=5anfUjrnb~`OynkPaKma`&pg}Nb>CRC zh^MyHZ*`zy`wNY2`TKXG@nN*4ezYe48Lj6tcQdY!Hm=8TB!5-j5ICdvSBtA=kw@*} zg_?B}!Ast}&>5cUMH;oGpEEqo#I`I_IAtUQR!B9A^(Zi$J;U1j>795k8tu(h6*kSt zp?>xST{$)5T7-W?lVYfHmUgLOEn$4*GvGe+{{Vodj9s(KgqueDmx=qc^w_x8@!9)h z$g0x#Rs2kf&AWJJ2iEwM@_rNRWytRmMF28fv+#(`R4# zDuZ`@H^m$cJZDDsFsf?xohldpt+Hy_Qsdj!>V+tkc# zH9EBhH7Bn1Yfyesy>lFz-Q$e5duK+YyRQ^*3ld>%4|;zIp(CWHJkYhQl)Sk)hLX|i z(oj1IrzX)3e)JnVE^;abT!`=$XP1s8v0@3F9!M|nBw-&}ZnuDJ;5TT>;F-)Vf@|Fd z*mA8TKr{X)%MQZP)#kMit5WLnK_m8}7rp0-Yt3BTXe&?E97&r1(QbXupi8oO+sj@L zfWI=^Pcp&8b_YnD}n5@6zyk;&+R382B#eV%L=bUP-@zT@CWHdY_+bkLQ5An2;*-K6h= zc(x7ID*BV^;`sHgx)+;XBr}V7rV$&ggi{xBy6=%zxU~|$S@C+ez=mnX-te8oLC7aP z3_fSFH2P0dOOO<)F%AzCPSOp)eQ1W~_}iekeDb-}_E`=;jFYu+!WU2Te3Fm_7QaK{ z&DR<%6V&~Xu8R-Mw739}G$*y>wudZiE&|&l8qWSBFz06Tb=eGyP4XgomV*6yTN@Vo?U|1;r>$U;}i zWgHBv2a;l!GvVXXT)hGy&(?e$_Zf(@AJzk5SbPLsM%P5H*^B(}ecIq`f@+EGy;w{3 zzV7Y<%Fd^?{JH#iw^-8c*DaE$l$Vn>k^zmFi*GNU#9CMIStjc|jq~BpktwLMr4}LgwDppn#gxLUcEnoRb6?>j8&W<`rOw=8274!zXQ!EyT?{7(BI5Fk^J{$*ca| z>J=nX>+YCm$F0K6z0uh(w-hv6_rP6YdPAhubL?JcwL)eg{unW3`i@Ia$JU4tg|w7? zaqsx6dy_yn$zGJ(K$G#x+3_3qT!EqX-?k1!D>UwDWw_#|{E60_mxJ4~cvtZLEq>TU zUWDwt@@t(9rdT#yTh7bk6aC+&mWDa;tR~9y$l4IZ z{yZZ1>DvE~iT14jFA?E?`{21hl!Fof9a-={t_JZSq0cmm zzHcX)6iqxVJ9`TTD(FS(r-b{SYqj+d?@!ouOC3sZ8obUlBCQv>$*uGz(ldUkXUqa$ z6LCfY2DK8KPJN4URY3- z5-5?}4jQk6U0>&!ONtm2i5gI1&YQipVL7bF+9&jHj0$X&{8PafGy68bp6{zH7gA*! zifrUBrS$A#EV_NJ!M$&TmXsrP$UKBy*1SDp&g40KY~yc9+xWg3*CF38ph9ha_?n3d zQ#y>jEqCTh;C!>z_O6z|--bg}y4EmF-eKe|@l=`gyMd7)t1fP2$oD@R+VSv32-pS+`+##WZ6XvSJEe)!pAhKW1@vc3;SK zPxfpEwGQhp>#8}pH}~7RrJIHdEP$BYTa=gSYezu)3W*0z2g?xM9l~?HMiG_9_?wp3 zl`WvQIg+h*yTk|!{|~Xd!nhW=b_@Mg?B^+m^mp$S#befjXuZQ0zT09r)J(;&&nF8N zbZ+UNF|4>vK)Q#bVp^w_E0(ro8vRVQk9_y}byrIpT9Kp^i2*s-}+QJ`K3NK&zSHTMyV;Q+D~#$*ne!EgLhuFRR= zhtNGkcREa3B_6L*HT2g+PI4yWs>XhjP@LYlT~m!0L*4^J_dElGj__TGNCRgJjxf0> zmv8Qko|I`l;;uoy!%df9yvc)?`4IdZMJa$F>B-JrY_nKpck2pxdJvp_Z*#vGK9q=` zqoblNC*j75L0>KWAnpZ)P_@rA4t5K$Vr_^G2v(j;x(gV{kHM+|irtw-{3rDdZ!WTV zPNi2tMv5&$n5`K7$4Lu$8}sTc+mJiom^Sy7$tPI2g%cEq{G^j`N%lKHP^T%p&q@-~#T6GxkKCxljsWfc3OOI;mc-4$or`hIUSgryJU?{S?slOcb zmsP`=Wm=q@ImW-7sXTJ6Ji1t1&Bf+X6Y2Vk zwOq?XiI9FU$waUB4(LX!KCC6uG(5T}?jKkJ0-?~6fsp`P=-axR?r7`Y1?35!{)WY! z=Eep`mO7^ZXw8n#G;a?4g^mU^*oFS%)8Ts~$m5e>mN@$PYxvF*tauxM*{rmTmFr3O ztX(#Yn^So+(9vhsb%EZUz<1+oPk(%VItH`4Xy1rZ6x#WTsVa0D!2H)>YYl!@Cpl?b zYv%&HRexf3Gyt(CP?Yw<27J%I{>9%7$4-fVmHB1T{TS$SznXdBVQRZrmPG?E`aJC9 z5+xoHKux8of?=1SpGbV?dPkzks6Wx5xjNB+K+;#yo77+_xCdBJxU`^+&CwPAd7a{F z20G*>8lhP*Z%EN~YHuF(*0kf)=Z+p!A2HtkE@-qU-+Jhd)bjf8cY%2lCZrWS_d?>y z%@igAE-~l&KugWKx1Pz(ySm%5l?|_krqtdbj7i9Ih;1y^jwf){igH=8TAM_h(3bLQ7104t*d)k- zrM)sMgw`nd%*qyMJj_}bSb*T3-6lKm)M0`VSoSEc$nDM+dU%quHUWdRZezG&_?bMZ z+?<+kJGX3KSk)8PFV491M`LayEpj z=?z~p1(cb!%dzg*+(t#Dx$qApf!L#cwG-b>FQ}5$J1R$|q`AW4ELdc6feGTyKaZ7Ve>9UzcRO?=GR}>V7&1N&S5X9+*b|f*ZS(J%ta|O-L zD%D9e<}zzh8rR878P*{NPE^oEu!u#M;RQ~-EOtT@Z*|35)cHA1pbJTi?MYvTzuJ-(zGwlk$^%YIIs=JTek@wNw91nxj!eqt(F$7J#fH;?jEMCUbXIw| z#gVgcHdJkXay%yH`u*s{KDod%9iE9)U6dMj$x4stfRTa$nlH8tAooW zw0`34nbAS4=oC2L)4mRydedk5eFOF925R7jiKrvZXUCw=@Z~*r6fx;GgYtM=G&p9Q zZ?vXRD~7($a*0?IW^?ysbBpD0r;eu~kEfBpjGSbvGh?ZvK`lysSw!%!7 zUZe>p|AlY^ttb_-Nb_wG0m6UU{|WdHuZdEW`mTroqlf_Y87%{*%KfL9zE9~O6lo$C zl>|>scUkVQbGbUCd47^7$uJ|$C`4CK#waTJIW^s5x&Mdj${|hq**Qw}j~_lE^uPT$ z|A;*t()d5g3uTy5WE7GrC?h>*mizIXoTmHVStcCP*d5Yp9MT;BG1zo^{XISu2c<(O z;XB=k*m$zl>`8iG%7ItQlU={nnpSy1Jho&ElUhN0kv+)+g+9#Ijlt<*ZY3R9m)6-4!n&In({%)%|m)Ud= zkM$0-_79IKvBLN?gZ;ALt1kon^n?BMtDd0Jx~uk?Q^pqDM=e(=d?nTjsTcR|0ukGr zX)NmP)!KjXWJ|O+)MT59oRJ1;uAa2a@lHCsNH)-8HIGr{@*&kvb*Fv5$69y48CHPA^#)nQS)bCc7XaXBXI|@$pX6~@6K=ot$ zt;vH?pCGJTID(V_x_TR7W3suMd+ijapq-4iJ^U^HCoY1B*_2SRUyXt_0 zeGe0wr5=9sWYu66OswMkf_x%v1Na*yqG`o{brz)!sFiea~gBbZH za@Jz1__d-1gxc#)yE*J~Um#XvXYTI&VOW#D&q?ZLQ84so-kog?(Fo0d%r%?luVO|z z&LYb<=ZqGJrSMLPE4F_k1Pi4DmiQQ_5D#!z2oHEG5yteO0d(sUg&5u~M<_ z(l2Fdy~Zs|u7vM=Vdlj7qpWYsZ0|YvgsfFch3`%R&=r4>pQ6nse^NR1NZMTj-+PKI zIX+$SZ`lg-&Iym_hCEhqAW>+INkr& zM-Ph2-7eW*s^u*{jgT3K27j^KLAlE(!4h7e9K@!+*c*yg7xMc#- zlJ0<$pf7UguB$x(nT_6rhZ*nD7-FrqjbIVX_FvaaaX_VGIji$_+E**DJ*)Tw*1l;p zE=w`5vd$wF50tyBf?&O?bbm3ws~@uF_+QtHR|sAat<^2f3+pp&BcDWmQOc-giIXX-7J#2&>Q|NOSIL{5zmQAaJpSF2KoZc)XkRt_#u@wTLc^ zG%0N5RY~SV=jkj&)(7!{F+n#IO98kOP`eR2;_=cQbx}f5AFAvZ1QB*+Rf<=k253Ot z4dt$ztmB~*k=g>z5JbFPrPu^%#EA~Mk~piOxV1!9S@Dii$6DaIv4=KcsQ(dL>nQ1h z<#j5N39sVN+}_1mg;P79#p0Hv^9adDzh6`PBAIG9z(4G;ffd~sjj^DY#4xvdBagls zgruJA@2SQ~@$n?rlJuOMXv(REyD4{e#qb)w%cOanrrV`iPkA$k#gS6Y8{7g>B4vS% zYk)oI>eS6wDI9yQGf5PC)IX8rZS370wh`?9?1j?@c6c~d;M0~DdiY9J54n{v>bsWx zWnPz119u*`~>lq5}HO+m{XX*F#AQprl36%zS8O;d}1{(XVoeVq(cse;N?&mYf_( z;gjX-4K#KKJ+|`8ZV}jZ4%)wgOur}ciJ=LbpZX^^V#^&*#Nsm;TGPr^yz(QGUI_ za+&Anl9}VuCp)i~cGjB>j>|j|OUGTd?i&q0O-JaV>iwz70b zcnJ+i1uLPG*Ew|pUl)()Y)PM=nQMPt^mukK=hUsx9nmB-5ETeTPC~Nlz;s81G6La~ zl{s|?2@N5WcwZMOWR}7w?IbO4a_XRTMg-nuu zw#3M*bEZ4uk`V}=WXY>DO>kqCX$_dPldxo@tN1yo_Eih1pdz~tU8WVS!1e3mJDG#* zI^2X=5xDz^LPlG}5+4YU&=t2NNoe>n$xmmC@EnHl9MPBqmpw=Pm&^_8znpNnS%Mp4 z0Z77f4!(;r{EEDe`t*uw=1dP=F}*5`s>J54alJ^o^~&ZC-d)2t$x<)z3x-#-u0O@B zcSzLwmZEk0w*C}&ctz!U#(sG9p8MR`beyL&2t6E)G{@$+*Y@Y&Du{j+t?Oq0Bp>#~S}~?^uF!eJX)kiaX}@&@HH6w`-q8&9 zLFV|iCphu@gPj1v<`EnGS!ZAiSjE9fmXC$`!hFS7@&OUBcn`+vdO5@d%$F6`Pgv)=bLU*(5nlCyM{_?i<%qb;vwv6G_ zQbbQ>rEM;JZSpAvH?!8hCypgOA)c<3_%@@`Y3^bzu`qQv?;Q2{Qf4I& zc#h@HCBb>pL_}^vLTer-AJA6zWXch}mSgH8RrWXPy7r?68j6iHPURrCvEMzYo|^?I z=}zSB$`iL8P_QgMs-Hl2OfyP~8(+MLwm)umrbO`&u(br#4tr zjwwkP`wNru*H5Auinv%2G6a zML(fO^+d*eNw?C@#5Q5YKKxiqkK=Mhy4?&z`8(^GXsH(rE_BU2^B%+ zsXEcUM8Ot{JWu{kIz-*pp)+KC=X!5-jkA0yb-z@wdfuA@8<#G8V@6=^#^Tf8>LS3D z*-_a#$Wn4e=IrEfHEn$o>w8ZCP}fk^$aPVZif|mKsp-oYGAQ4 zXBO((!srJ!8GpM;Qmd-G^rtdk%8rk3KZ<48T3_dYbv!D{W=uN=P{nU7S*M_O(wx!$ zEmrBd9@{DQe&s*!7x~RC@$dNE$=*a8aUPF#pY);4x;5V0-xswb>6jRc8FCC4(Rw_UlLD{8ia4HS(rXCpm==wL~FlYy=Hs* z?h$r72B-p$ws0Fj8!kqvzm(Vg{lYhpf!*o%R>>axWILVK2ozhU)Lbc~XQwZ<4{O3l+vq6a!=LC*K#lO#zuK)N#&V3m*=!L`>Wkj zf#RShCexBKStKjRb6{jx>AUKI&{Xv^#rmytP@~XZv`V{177DdjL#nGrpv&Ov#q)AGmnQ-NDcqTr1N8VeA`&?=X zl^#SKT<#o19=M+He&F4mwd1mzW?nN{&W~QTSuT%WHCoP%UM-ztf^ZKzjdJLKBT~*e zqsNjbJjek0{X0Il-UL~^XLlR`MU3FvQ+R*Uvon1A2=HF*-htjent21hk14KSh2)_l89L|saUQOk|=iTEzBYOedI)Z8%fZ(1SvF*4T#;fg&&egS5v#e zekU!r8a$ND?mbQ7bCWf)k5N;glLuju|^FZW0)xLxYEra|Zq7Eqo35L%`fFZiAM4Y&b3S zqeUvT6nEO^`~2e1MvOm4vYB^6=$l7*-yYtq0-_q-*N@oS+L7!}`j_y};HAjzN=Hr{ zGctIcBQi2gw=Ufz707zGyaqkMM5+2zJEQ2{Piz3;urb9y7n`@<_yDq=9k0_nJ8xgC zEI8HEdxHrOmV>0*(m`1g0FjgCU+3pyY6m$Q@FVR8Y%D~qf|A*vU4ldJx;vM&^_WI(ebt0FY^z0V_?{k~ih-31$tNF@d z(J97Gy_}m;$cs42QjntmMNcvUJ^G) zZF#JDA9-1rm|CJ#tZE;5R+!l8```$A^kyZ6II=!+qA;;SoM1UxbPsvr+LTY1BE5S) zyEvSD)JcPDivlRSJW;OEeuS~=HMp(7l+=>^d=}@FE@=@%I!@YH5FNZMS&#Ad4a-G) z-_*37Po?$^w@aKc*_t4Je0PVvpE+1_SjJet5CkquU6`<9wwzsr*>6AKAAPc~e7{>S z)g<-M+^+7|mo={Ml6c?xM8z<-)>=QntxoUAY$-dFHEE}9HVyyT@e9LZU6gT_ns6^Y z#NfIi>_mN%Ua|-CW~V1E9vnWXRxlOJ3|t#y&q2LDoijXiW~eO#iR*-?C_D3*(KmFU zVh?Yl257f#{MOagAoJDJ_p*!FCxTXf&2vLg#uy)YAar6OwK24RY~}I9G{a`?ae3-& zV?t+H>v;A|Y-_c-yQClxpYL@RGIQSN4Mb^Mp|N$17PT&A(NY1uq5?vB{oR^B%yp%o zy`Hw}2oE9`pa_3GEr#)zFAkh1%%g$oWAFIL-Ib=yJ*kcmE-91!zE#wDB z7ic@zWKSc0#CRzP08%59gi9So0qt41J8o8?nGXHhi9(s8-jeIiS!XqcicT%-PgOT8 zx|Bckh8oxW5TBT(Xr!!VytNN(>ZIjecRjE8mUY(6iS-+wC}VE+vt?8>oepS_b1z|& zD39Z0V^nVai7AU8(p=l8u$l8Sw9e|IWyXEnb<6@Fc>MoK`RfGaXRZq6Y_#uLg zlw2ovQ?TF8N?9Kd7U;D3=2mFuiFlG8_)U7==rykNi z1fM|7#)+ptrDq@bT7e&gN`X^;?5FZ2fH_q5%aIgTHQ-1qI*?JM@=LweJ@5Wnj#}}R zM3v*73ff5z{_&c7iaTe}_S0t22_5tBoi>K^mXjo!-$sqImIq5q=lEr6@6qOO_-61} zs+D{cx8^?fM0|*??crLmiMvdP%ux?1zGSOAZdN}%Vwu;$CIs{oc)%IlOwK@FL#|ZSk{xwCmTKw{3$Pr%b3A4N z&6;CML<^8G&+KK=&GlnA9GA`9^N;#`6e5vCcCB*Jm0YkCt>ev?P_eGgFcl*H}M}S#rs2z40@hl19rryCiry!v&Ld9kwslyCa#Q zSyR%jQA+I1Dznl!Dh@2go<#zvw4WHy+yT(M@jelJG8LtRRz6AaR5K5Av<%AM)P2gE%AnJ0GNlay11Od6k zic=7A!3Z)YZ>TxKun9y$BXY&Jb2ucw666&}V5#)eF&L9>dcXE;5Kc_VJY&S32K%aB zAdS2nJy?*%w55+et9ZFRtZk&y#hqrB2V)h5*+)KgzJ+#j-@_;_VQ>DyzFkCfa8vnsBzh2>W zy~68xrPcFnB>j4|2yb1l7JFXt|9X|w{oh{xu2(HRuUdY+YUzHZ*7Iui*Z+r~i)KaN zw1~WE;Q;tC>tr*ETQS31M7F?tE9U%cr2K5o{A}9%Z2bIe-u!Hg{A||zY=L|O2DrB^ zTc9nQv&~>d^YIt!|7+|mqv8mjy z^XPK<0r&y9GR4;KLYUIZDXv1xs}eqUf$M~^zQCBJAbnuCNU{wiMWHgDqe1Lu%a5`R zq(aFLL(dBnQAQ`1ME766MVjD!{DYLvHrlJGe?5%DWn}fy9NWxKOm>`l`6LFv;K5Q;Q;ICi`90`ngj9^nlajZZ`B-l?#VsxPtpFbh?VFZ7E zN3dZ9enSx>KoXM`$B-8Pzfg$mT_E}{kf%WWiYU$wYXbYfCjSeH`QJt^!k6saM)ECw zE>WRpv|Ch_vptUrKQh*CoTS|DosVt|SzNR38JVR$YF$_Tne*xSCu`3s!XpwV&|JE1 z?`Pph<1S8lw)wF&j`1XGkNZ0PYz|Vmqs@GMI^9{V^6{fu?qk(8!@11ASDoJT9Qpry zLI~dwNqKm2+Pa^h_IqQ3oT&W#Gap`DA~yU*E}yG@1l4`^d()Wwr5C>8&mH%?FD|Vs zE*%-Z`euwFgHAacP3ipRV|vF*q5CGDcgsrQJhm;iDil6r1g}9)nY`>rxhx26LQkpm zhLg9l`SMAs_pmcgmbZd}6~g5xXTHMq9vUG=(Nm(K2~(&_a%E~drcs(+O!Q6(h2%ez zk*uj*q+_+Ms(Cb@ca6LVLpaG}^sU`&N(=vAsV~r`cOo$<&xYE{NQP(hTlXR%Dc+HE zuh0-!Q&X{{)0@0LMByHNb1R#&-yZ}2-rLDZSuD1)x6c=y<&56+4Z+b#84Pv71?l)e z1+o<}UN|U=rOP?mD}#|R{x%DRaEfAlzzq~l+C;g)89$}BQb&4);&ig_B;3ElF@zS& zTv6kLhjl{nAQ}ij%swR~fyoXr)8T_3?PA{~6kOqafIsP}6@uCSb74Cn+S)JLT24Xs z!J}bcqJt?Dc5ibjyGxlO($bqIybKDW-3FK4RVx%^`7Gy=7BV4<0!i?AGTLot%$0pw zc44~#rAQoh{a5(iEP5}*AVmGAr8oSR1$f>tK+hZAJ@88twqQ`L0!^?CwEZdJVrGb* zH?$v|%LQZjmKH`&l`)zh9Q(hIl-~rA8}CqbfMt&3VyX@V0Y|~bAH`j0`pA`i^}i=CsV7fC7j$XStow+_&{Q6czsET(F1N{maD}#5)5fPHnRL z{qmIHKbol!06psVx83cGgXNd!IoaR{Bwfl-5 zqgg54Ixb$42Sjn5E88{P#indbWpdhqq~xXjt<(JjUV2tpsyc`I{IHmdRwH2d*nJw& zgjIj`ydhP*g}3xfhiW=pWqSR@1=mK(g(pmibjpJu<^v*A!6Xe-jSy&Ix#I%rG(GS z?$Uj{Fjf0B{x8^OYeA~gZ=%u^Fa8et5!-MxH|Y+Y>qT;-eqQn6)pl+|;Ha1EPv_7H zUd*_eTJbI~_=6r$ZwNQUZ91-Og7@^z6%qEWaNQE#qPhL+eusKD>3V%x>X0|AhF4k< zQLJi7#haQ;tiP*JI1{0iHfT%Y;?DAIPNI*PUnmzN}<{ zE~Bfee&P->mD{yYcdX?+-0yeZ*1k9>$^p}_UgCo9-a1o224k$zzCOaUU4^gHmC3=; zfz0hEb=zOGL@R>X-Ji!j^1M+xhVx&damAkT2zRHzP06S(p4ajnVs zr?Y>rxJXZh^gT!MH;+@7wk_9;=2fya0i>_jGxz)vO*ekTNpSyYDEIrr&2y9aoo$C+ zirNG}Om9pD!PJ++E|h%mp}g=fz4XJaj!6w*r?I+H{1H(`sb>`#%^9kfB%y&~#8Xv5 z>o|VV?mlg+hCGz$>Ru9Ny`U~;xV}3BrQ1`%IN;4L70j~Ev*q_ z<+195$6fsWM#Qz@18H?57^UWja~$ESgyQ)qxw6tKpP6xn*rtRiCGQ8RT4bUR$UG(Q z!w(5lWJM>u8tfhBT^4E)SJ4Id(cRSH1?2w54jaoLEvgWnfN)PhC~jPsZixY;NnNp6 z)%hG9#}!`_V7*`kT9Dkh2;E#ccRNN)p3Z-Ys*5CmGF{vZ2`Dva+lTT!0SK?^Vhk=BQj zDh86){~%QiC9Mx3Rs8Y35Ss2-tQgZPWk^4WlsSYH81Vl=fq|sJ;CBFo`7a8*>f1So z6*&4JV2v(t^ikjlUf>8#;0Rja=rC%?A9Ae;tTg`Kiz--duEHl){3lj?CsqU}Al4HQ z`iT|Yi52__i1);b;^e?~{>Un5lQ1 zz<+RXgs5Vsnvts?S#{x9TQV63jVp;HnyhUDjiUpN>jI1u#o2U4+2lSEH2#M^VnnMV zN+Too!y-xx!{+0-u@k$gK-H%r)i;qYfLDz13#+3(EJ~5MIq{z4VYoT5o|v+qB$y}MIc2aZDNe`ogn0gN_2=yd6>#*m`ZezN`VQ^ z@w>QB`yCM%sMI>SyC47}OY*qCpF7hTWUK{0ycb48m3f8a&(-1R6OL7yJ-6I69Y7y#vfEWzH zm}0hd2WknzR)zm%?C*gXf`FZn+Dt#SZSi~bnO{W0U3^3~WG6E;>0->g_{f-uNWEhM zl7h94L#VI*jmHk^qXdP()h{Bx_b@?HWV4j;^@~vT1nBkQV$A&#%;Mjo5NEpsbtQk} zset;#eNxT?4GK)~p%?r9ed9<>eEvj$i71T{h#6`e9cH|W&{a+GE+7c3fqs|S1{()| zBG~>!V1n2Wwb-{Usn!Z@c*)ncg_M`R236vLqIyYCu*L3^n9@T{_CsFq$PsCc1(`Jg z7d!`^bEcBqQhDg1x(GABKnT-rJG%&zg@pN$M${6;;8fIpV`QxP zvaX!7)5xz;fy#@t`T|gs2JOav*%(sO-_J z;+ZwioBm}}d*tTwd3xOQtO^6#Fz5JDQ(7gSaOHf=c9OpeF78Wk$N))P0GAW2!_HZX z__~l%h1MI-^Oi0r?#BX4iMF)#&;iTr5PuVL8Sr9<_E-mI^oh_=t#YQPdw5XM{s1i` zoZx$yD#-jD)mlULxO9ly{P8;eeD|M|^TR9GYL8*n_>d=NTpj*oAh%6tag!(K9aq@2 zN20J};!{thYC)W3oqF-h{&wgTemH^p#({#e%I^?=Nnf}1g?=sZeGyp);e)a&H*2C9 z?DN!7jSDYj1xhTlsLIp+EbOnxK7|fp7HAu%qPBCpLm3y3y3i5g&N5&Z5b-Cwwn^mH`Jn`9A z@zogE=6gg(e9X=4PrYm6zr2G2$o%67d}F9v+Iv<%h1RHss;GvttAy4l_j@X?Stv-O zP-US2GEwp~qOXrk2|CS2dB!OzXt*NS;|*Nrc7)wbS9B7Rby|lx4ry%6niUdorwzPh zb)OQv=oLN$&IYlQ8EJEvG4{?Xw%+}5>gR9UH*cw7aG<6x~>u$nu=9Vetq56aHVx4EX38r<8I$+vU2 z#`td-v}94oq*SEK-8e;*563kiMkKeGH}lIp0a+GobW0*C?mbBLhS$9+YOQsLv}M&DCjjoeH^qGs3dS-GXwyH06sGvxd5)FVnhYaXijd zbu*{@6%HdEE8i5jm5{Q_Td3>jc}^EMviYYfs`qV)e8bHyKHybxkq!L7Sdj_Q=}Wil zOa{vPwR|g@3rMTXPr`RZ`pv&*6O16?(dHtA` zII+(6{IY@&LHCc(ZvQK?r#9Z@>cICn<+4cEt^LM$cN-9oHVVUF#J~2zM*lM%sp~%?_Rx`j3;Ne^ZSHy!U7t&6d&pU#RiC z`{dlqXY_x6t2Nxl)8FEE_ZZ|fyzOA^TS?YaC#EZ>8$oB9o!f)wdA$y=?Gtw5AlY}t zXHcz>%0Y@^0k#VWo#<3O{?+>AU-q&E7waAxg;O?Fx=}!#(%fZ0R&xj>e|i#m#jDS? z&w#-q*@LwlR?Sn&fDU77U5z=r1MRngsWujsKuc%8CBp=!bp9ljF4#{d;%YSw36Wj5 z@%oGhq7mvJZC$Ll zzyDp_z9nSzFtpLO0Q2icmOS9n-yPlElJk1G!EU9YM$^Jt-66|&<2@}Fref%z~kw^j9jQXg!gtsl10&Or+Ek)Mrv)xcnGXVq2uE(6a^}8+B_h=?hrHlZCE6h*>cU)+oG|ND08B+ zANc6X9wh)KYa%DpPhQs~;m1<$ce!+K!#wYox%}b-BT`zzw1M{o?|+4A6a71g88Um{ zI$w4F*j#AXwsvMTr;{*C-&_-BBS1>=PZQ0FDV}?m?}f1-*3SX8_MmBS?WK4dNmXCQ zrBWL?d0+8GNI}Yl%>$ZWu+gUbLzKhk0Jzk@^Fyu?#E0Q)HLPg;aeQROTekY)BWkaN z^IH~7T?`5)WbR$<7ycerMbpetBr&vGhaN13(OO%#9*pZT=oZ#dYHUwlwEdL}Le zHbBO(*o!;~g#1j)xZc~MB(VS|j`7~dCLAqqw4e69r`kVQESzXpVeWf^E(aCty=lAz zvm-6HLp;71M)7WEd58$74;6Au6<=`wL+rd}Ml}8)U}{7Xp;o(|Z%~bqvaP!sO|2b5 zKf2A*w4hXYXx8<1@lB9Oxp(GLzm1@(_xMs1bBZ#Ls9Jhi9^r5iq$kI}u=E>8P9d^4 z&LiQ3{_DR1?Q4FUg0#9{$uTX31(rf5hUiq;%e8-bo>CZ)00%}qWnl)#CS_iW6=V%% zwYvPW#i6DAdWkq7wM!2{EcE^tNAy*s+5^)VOZ6nMrv6VxC-(8aLq1HI=lN@PL|Mk~ z%ytEK*ba<`s_5Rc8oLg3hg9wjWhKm4U6>(ku7McCFi&D@)aNPYdo;5v~NIKs?BO52qI~RxF(BZk250t(siz zI*Y7F_A7G@wRSQqcWwE=sqVZnEaQS`Otl;RDFi8z8dAr)nd!shXnajRHNv^^r17;p z0?)-enB2>7$5;cV;UB z)S?dfcdh!?&!M17-8vlE?%GL@(p;LeF`q)YoBSvGmq0(o&U}$+ql5G4)L%{tHZw~% zTrgvfoa+j_*JG-+%eGuAiXl#l^CvgNVi!>62vEIH7oGO;6_8Kg|I_viga9yhO)>RD zJTrSMs(N!LyT*E|Q_k%;6>d!Cn24vDKj$!Qq*k#uy}+>` zyP&Kfp`e!_iJ<%-?4X$-m!PN^zhL=bBnxe01V$2Gj`-QTt$z$xzyn4X)!N}fdq^q7 z2@Bzj$MT*}N?USsa^%?M>^;dXvevGAWh}{v*rV0`Xqt=NNuY^*3k4G9@hVD&ds*f| zeiGAMmLw-z6Lg!=>TYoZ$UoR6idjST=9-tDjgIi{d(_xDp42Mp1Ap^X#d0P1^!(Z7 zYjr;v|LvRV)I@0rM3>w<)dV?9S1!i)B)3PWKK{QZRNCT-1=vZR9>4-m`LB|`IPs~A zB*KzP^FeYrI_hIV))coK4=Vss{g2E}K9IX%vV;_gy&uQL77ziDmX3cC%QOnHo5Sl%B&9zMLYZT5D;ykP*b85(W3*@6^~}`V`-@Ar8!zFTU7z1@pXRm zC4ERw0P_9SuP{f+SnR`*ADzoC??=fpG&g)l^CUN6wH`PIG`IYH)cUGyz>GAVu&OKf zqyv;TbuCRGXeBU>6|$xLYJq@d8VyJ_jkRNP`q(Nxn`pVL_1~+~C5g>Gq>Gp`2|r25 zOd{}J>{Gc?r$4lu`w~$T<$Gchspxvtc2g5(_kP=C!`X`#`>|*pKMs7$(Y8B&_sY$? zSGsIlp`0z2E>5cYU#0QalfVNOIhxX0C#8LNU{Y)gD z(U00kbMlRj{W#Qt-V42_AoLrud93j$XwL9MetH>| zwjQxJ<*m|55 zvwAB(;~h40aN5%-8sQCǬo4eGH4D`T+wvKSl&vQ(IAe(SEgBDo2!Z;T6&0B*qr?tsA~aa3@8#<#a`f(q#Fbyjml24PADEw=~U zX4*M^F!1@aL3A2<>S@ln3>qbx`I-q9z$0#}XgAj2gx-OWCWn{1OTpam=XL)?t4nab zEVBQ1GQ*EQ6;ip(m!oxD_L#Nn%$6cGZ07A2>&#bT4ZQD2`CNAv#Y?-T0}-~tv9#G< zd(HTUUc2?Y>rXqi?(5H+fJA;&e4ooX-i@F|RQG=uYU!?o9OgsGR9bPSo>#bZ(W=M$ z921Cv2vqPNprDMyP;?+)@Xz;ll%JU>8E9BO(Ni;1G16B31{IX&l@?XzmK0XxmlZo0 zTbbFKT3gtgd^fiP*g$fn9PFHI9qpZg4|h+uk7*yUVbS@}prD}s2EK|2|K|tS!g9S* zBVRMi3zdlb`+S~8h8rnA@Nhm~s}njX6or`Gdb9~Cp-3Tv-DbQEE-INxuf}?;1vR6= zcBRI0p#vr?mPEkmXtWtQrBc7u>3F;y;b*p>_vO)8D|$|c&-3N6vgkKiZAo4)%cw(f$IW;2~RPJeQY(;KtTz5#H?0A1*I zT94fKc4h+#29;wGLjsj^6_F~2W0?Q|oRKGgiRSE;-Hxdrb!IHD8@9G7uOIg!wyhho z(6g-{a}zkJ8?pC3sh{veAaNZuks$$&I?-mj4u7{S$OMji;_JH(nQQ3-$AG-6t|NBe z-B*DVzUYECg8)JuWx?A~7glx1<1;T`)pjR+Mo!B^nTZx`3iyDOpvXSQH8aLG!&E!Q zz94wb{Htz~GK#r|%iT+x?a?T5ENv{pSC2iTta;OI_dG7c<@qeZnK%90pXXQJqb#dw zcVx0xq@L~Qx8vAajvU9#QuU;=uS)f(zz(Pr2m{9nu z1XOI4RO}r2Yz+DA`~Wr@0DIEd{J|{?OM@wK0|3Fz6yFVierHOq1m+swWEuwxvTRba zfd6@I7d&S7f z*E{$yr^QhleVXmBuV zj<{-5aT-^Qf(c%PkKg?9UREqsJp8-C8@z84trqlqQ##r&1N)oz&k{IAf8cUU!JWka z)VyoQUi;2g5AmO`j8>C+oEoiiQ4H!DH1Cel=5@gahmG!U=MEhHU=q?jqPrWO3R+D*7v7{?bZ$}19zTu1@6^} zxhMW_FC*-;zp~7z+>&FKqRA`bXR0($T>@zQ}8j z^7KgCe(TX*Q@&7SkGym_+wr5((Jj8%D38+gVcRaE(QYihAMzeW=?u0*>7&E(d=Voa zXDC|LxX+|cxGOu{wkZoW66=4JJh5AMm`{=$Yh>2D3_bCm3#8vpYl=>t8@rdH@=Ea{|A-IO4$RHM06qvRi}sWq4z?3wBGPnM4n zsPR}b4ScKo9W+Ynn&=rc&S5kuvxihPoGB)sCSpa63|nE|^*e?Mr!FBR=jcBSFen{VZA=0EX|(&LlXlm+twwTdH2clC*Ii4(m+bLK*Z z2f3@tXy?S@54a_zMU(jYzkF*>$~ef?ZaT>6RgpuwNH#+6EqAP(Y+~C z(F5L0H4&>RBybEMDVFf>XM>YS?Pnku(Z@5EzM1VOnYSQivJm3wRpl{JD>rlD8L)0J zlP@>1Y3S2!utegij@~y$nAn#3%(@#By<6cEpyLy+{O6bQHR=2`!0QL;O@y$CJL*}G{zMPmo%d93VGbKU+KNF{jBP)!@uiD@3Y?Jsx$cEN?VFB8{HL-8IR zg?cos)km6H_uCiXy2B5$x%_Y6Kb7Nj11X$uYAj#VIu<-C7U1n>E$pT=Cu~~XtWxf*I?;}*V-G;F zhfQ6X<^hi7-@ksUG>;LLB`ht_$LNz&(Y;yF!u9!zyUSn{!l22mp@ll9&g>Z`1)SSF zf6#Tn(0H{-YISed zRwqCtfUyZHLhvly48t|eQCM)n06qX3ZG0nVAId&}IQ%B(s0unSvFZydq7Xul*q{V* zfK#*#+VP*t34sgRdZcZJvwdi?V2M%XLgpH>FJfKvVqF#Uy}H%7Bm{gP&}#mLZb0de z04aDKsd~p&e-NDA1E@V;#dq5J!ybR2GKry$JV2lA4*VmieV`ZVvo(NJvXil?U`NxI zKOUL}O(@HiUjt~Jsdyzv1GbJClRl~K*N(eS$)j%biAI8_YX zu5LO>6hJxL=-*%7g)>4xS7e3sG54kM441-H$H;9WTVr6uwV!gVTq=!7izvqh|ygB*qMX& ab?Uk+hzxPzi}D9BiGnj^LkR`_PW}%h3&oXHg#bVVA^-r=3;;l$ z?uz$5BCpKA{KNB84xsY`1O2fKUt?QC2LJ#{0{}pl1OO;^($4|XL%|Cp&KOh8E1wyqmv^50)#(vrc5(NN2 z8*$nONITd&y8r-_rvLzg(T^O^yyfQX|Ls#yAaG-^&Q*N`o<{%($PfLeR~SKg{~I$r zF?}O{{ef%*xdi|NKz{H);YSysuwM;7ZP@#v_x;dM0ZZRQ|4aReKt(-(j15c-3>-~0 z#{0(Or~2Rzi9pQ2%>YCq*ZLFnUIH1hxWhkpmFMD=@W1y^yXaT6 zexs&bsXvG4?rk^rhI}g{CHh{b{1VGDnq+4_{tjr^p*}VdHuU?l?eN@eWgO}7+(tj{ zFQFN)2vlW&6S(4smVAS~eAhvi23OeziUDTvgEF7> z-uvFJwDH0CW3Eruh}DxeCEj9S(} zURflmr7sQ(`OGJbXRa{vK7P>qb)J>@tf{?sVVV7|7_+%@e%@r&8RB+f*RbW|>iXJh z<0~T-QA4${zKp!lL7{ScG1g z>84GlYjlZZ+~ekkH{frS3r~)3Q`c^2bsD-haqWQCF>qyljv0Nt$b>mnQATsrrNmdb z2|3;^+fkbA9p%JJ^_+xbiqXlwzVkT$f!RA}GhEDo{9LQ`ZkZXcqF5Kelz!wttK;7r z+8Bmz6maubV`>g~asYL*pK|gq@n!1zP|Fe&W&jAIj=crE*D3FQnbxV9MS;CQwsGDb z%Ab(9f53cw7%xnZ-PYEjBlWm5=Wy?k&vR7_X`Cz4myhrbZ7f*(?W|of8O|JRY6OVq;42lGIy=E)~ zBi0ypHCwxU%Z=zkD&X@yZndiJ$R|B}RifkO| zo@Lt>q@PS^1#F@9dTPi`gYw}ad-(c>XwNYUaQKHYmUIbWa_Qlrl)G(C9|hJnJ_4C8 zy~#2w0h8U>@ej)UweLvp!QqLlPBZJ4RdYPnIZ9i?CbBbdNWzRDbP9>3Q}V{WDjUTa zVlSOmH*T#_zUs9U^|cqw;%!x0^GdRuNggu7zOaGvB+tdYMQ(l(JTpckCj7Nw6;@UX z_5Hqj0y$T}1jkQi9l?S~gZiS4Hx%Ro~?1Z&BqTv61e<79q7EoeAb^e6a8-CtYr|^qB@?a`9 zWFj}hei9H~9O$vc^A*TaOMKcZu^oKBML!;H-t?vCi$rKcciv%qWZYREWMMt2^bkAd zIdj|pGKyz#uf;P%pUJEmRsL(gl|e8aaqH76)V<#}A%A|8r|dnQtp9d|ovkzQr7jyJ z>?>(on-=s@ElcdYp*QV2iT$10;sW;mZg_crbh#$I*3^W3uEunN^**)Ig2uEX`|(A0 zQioJI`F?woY=4le*h8Z%?a$QvX;Swp-QgGTCZ`@XD^|_1DCvuIB>Y8qOhUI^#~jt0 z6Dy9Dl#rR-qwY5HXxMGp@;QzDn&Cd?c&4+Ji!+grZ`Wx4*Mr$k|6R-~QKj*&FK^5q zW9{9MXTkBQx5RkNT@iO8Bl@U~I>z|5#P?ukp?)&YMz<8%(@y=y#C~5w=7`ffr!j0T ztDxqTdVGaMN&VM~{R>G&YT+J3{zD`-Lpe*<2B7tll^>zdtXXr%h$(YYJ6Kx z%4?oY%}tu$LTdc5yX~aD4E71Re_Up${hCH?ZYCL?3T8V(%B?(88^a#^_6b9xKiv)G zxR`$Fl{4OSBu;L^=Rxzkp4YUVQ1SID`ka66Qwj3tRt}p4-o-oqy_{;*s{T3L&id%! z*Ib)|{$y6m5{|F7Lr;{gg1v|~(x+i{r19aUIQ|z7=E~##x_8R+%5yS>eD$|X7kBop zFP!$+v%R-J{}rF<1WU@IQlt1k%MvLo)g$c|=o83q^n0z)jLQk(wKxRBPhT`w7ypz* zeNqm&dF;(-k~yrzFDR)qQiz{X+5;#$6~x8(3OnT4Z>J8=)#h+gvh-~Azr&<=>DAAT zw_jFw8`g%}b%&<$s@A?D?|Bwj(7zzJ~ZaY=jNdf*o z&?HpA5HZ+bP*7)3*oRaA5}6nYnFK147%PzkOox>1jBGNnszkOW;7OeG(u-IhG#U&XEY9&lJb@`XD}@Z5Ltk2Rmfy!z$dqh zZnw{Vy$`>=4|2c^f4~GJoDrcH+CW=X&s^02Ugb;(;eZGcMaE*%8XQGOZTFO{a2u|U zKZ?Q`h`mZ^ewdD%P=s7ib5yMpAGNMGEy-|Jv-B^Q?lu1TusJ(Tg0m##CH2MwLWBr) zh{wi+#xFl_=JmJytIX4cYUqKtCQZ~!rhR)V4rvjj{#}ZV5E84PA*(RS!w3LYgkQvn zJ^&JTz!BHf&XY3ksDdXc?M_E;491f#&R{;~yM!-k^^m31Sk-dELj*k5PTf_I{SfHN{=k zb;)JPamks@k?=J5#?-B1!H*P9x zwf6C0#>El!*Ye9Jz~)epDOuFHdB~yKgdW`>Enp;NvtQmLsE%~1j^{cR#7QJ}!n1>N zCrZAcKXyb08~xv}zT02@x4)!GTw?5&b-muy@eLExc}jE6%>PdLG|k(vZ%p|)uV%C6 zWz+ zHL$F?Qb@=c;j~5B9S1tNO0)q3$2UGsA7&GlEm;cl-q>UL)6` z!>HTUhV_olJF0&I4Zofwhz^aP=}=2yZ^q42&Y!n0sjMn_pdG`ogC3F|iXQQvupWq> z_a5&a?w*Z+o6eg|d;VRRr?V7=9VLAheGou6-_-<)@93I2cXgB=E-!1RtII+8hvIg* zj3QQ%j$%YW9{;=NsC?cR>t5ChU{ngQ0dxuE00@(8pG;E+q-3G1IhpsWl+08lUj)4Pw`Ic=x2CXS5W+xxtHjPM8G>vSl>AXlxyrkWY58Zk?n!cR?P5DtVnu?IHv zroSQ&@TGS7Di83i`s27r&y^Ii1bC^>7xFoUXCou#enZVAM$9JP&gEduW?0UKSk9%K z&4$@M7>Pw2(8C&`!y2l=n%PC0=tUdx9gkR`_i3R2#Y7+cg+5G*KBAKPS0;6UHPsAE z=Y*NoKz7nlmDYsrmu!TrO$?n)(3DLS-eoxNWu)$9bk1dP&}9tBWe5W&90ez+IVW)0 zFVr$lSo2@F`p)2f2B1A7{v7~5dLdSfMhLYACcb0P8+w21goqdh$6H1+3 z3!Otu7h^9ObF51<3|u1uENWxZM45yvCz4Wo{Rv}Fq5;!vnN*HDIX+62MT`33rA2Ig zVb+Aw`D8A+5o=ex61L{j<@ru6eF#h2nlj#&w5Mf0E)8!B@vGvTmMFI+yLH|7bHG*E zr)&N-$0CT>L%t%fNi;sYpw}Sig(8Z0Tt>Us=HLPfc~34Y)I&1V+yZ$)E>pxqwPf{) z3^H#WhKy2@3`6Fj*I4oF1bK;{iPG5!d5fRX{An3^ji1^4*$H{~L&_JkKBBUUhJdO_;4s+|^}3_hqQ> zW$eIZ7|CUvJtvI5BUjI!%*UvN&YqDu&Uul(L8kIihCaQ zzXo1?W}bol^7Ti{e1_8k{hjLu6Qc`DA#c*18YLUY5UB{kOpB`%(HiFuzX+lp0as#} zpb8#OJL`5kRsVNw{XZ-0ZeAA7lZlu#$zd`ViY-g``+VV-%H@vdo z+b6&0QOAc$sZus1l&Nm0WNZHHu*Tfw&Nh#O&AROB&u>UL6H>J0&FPHWmUX0Th}~1R z1s$ty<7CQr6tnVM^%ayl^;^;%8O^Vchvd5^ZwOydV+1cNU$fQ3;fIIhj)xR?C&LtX zr@)B5Q?|uTv)~`o+@R?K%#b)z>6PqQb*nc$Iz>7(Tq>MyPnnPSW{<|n@@bN-h1IEV zD0E9UfjYH3d(W_skmp*)eTy%WaYR>W+Oq8W#O%rnvy#1qIcR$6w+eN9I#oHv+o+yn z?9}PWwhDB#JC!|qPw5?GHlaJ!J?+o&G?5q_LQ6^GebBE+` zN|a|p%9$n-Ma4L>)`=uJiM6cVl2I~JUJH}typ5D+!cD|D%!FNuJ*;74!P!!83p(U5 zPBdrY_vw?PRVIKb^G4#{M55+^v54PNp$kIf2+%ZGvQg>4l$9o+bY^#j?Nq_YQuqsr zX6#Z_8B)?PGFW6NmYT}AN69ipN3vKd3XRcftgZ@@V@_IYi=t>`G?uE$2usP;`Af3C ziwcdY%d9bq(qm#;8?54ZWEYmY3#gCD)kTl8D69&NG3>0ia}r}}>#NOzEMyoK&Md%m z$(KcRvK-AyPT{TW-Lqn2e(TFF;@o5q7TyaWc*(dwT_EqGYp%5aC-LmzH&s-W6#Rm8DF;0br(9k7S9|3lWVhMdZf9cAL+DvlmQ?JV zb}2zFrKMnAX8KF13F)WZ*GvLavQ0kFxV0EaicJ|)%1W%6sveh?o~N^=>(NxfV+u!H zEsJhLzsrc&0)h4vq7BPHJxZ6zpE#E|&&cj$sMuY~?R`wSJ*?Uc`F6XW{m|FwtYdDw zjOTXSp530a2naI(er5r259M=^*Z60lTnGOm$8W-6qI9U=yX2TckTMb|cm<&3%}^vi zuh0T0VL?Qw2sw2kAty0mOvLX8a>Sfjtk2nzhhak4VE`->8PnoJKV!52RW$Pv<8bnb zhBDHD3`X>bkIA4AtvFFNqiMsuN*{H#sCD&EtMT6zp&(>va0eY(hoKhmDP$?K|602A zVJ%>(%W~*&Y&kAG^w}<;Jj*g95dQwRsV782NY@rN>ry^(b>AF#*ESnEEDUjEUxF7S zOmSpiloJ!@IKCq{l0}%F|AFUH2o*^+z9U(dX^>v}q3hBK6^k{#BWs?Cm|ph5>(T=i z0XDuPjghIKQSjmGQUVpjHohajlF6u1_5tG34HX49&M(1{>9AV(A?#8G6^A#@FXNsG zxeAebMo<7DBa+RQ;2`%pa_WhKm6q(Et;eqDAo@yis)~ZPlI)+T$1(R$;I-^j7zIy0 z**}wyjp?7vtNE!jN&v?=zw}O~fRDl#=iA%|O+UVe7*h}-^i7Yx?fv@y*z=#OTHTL{ zpIDGdq%d#fH}vO-%2pO)$y66|&O~@!qq8)Gvb9iz!n0t4%CUfg(zU>X(zVn~HhwNf zBYP-KB5lrJAZ;$iA$#D6x(m^udMkMed!T8Uf3UudvtVryW9{@X!IrM(jG@C1B1g2A zLWvYFvK;i9Z{9yEPk$^t8~U~fZ`fun@&L~it!9{_&W$)mybyPeG%xKK44vKF=d{Fc zC}6Ggu*;OU!JJ~q4O2tZ7NLn;$xj(XUl`wKvqWnkYp(R5(~`A8tD)ZxSVq*AwT|Q{ zju~X19p0z2Kxv3+uJDjvm%U`YqUQ^KLgW_ojzlQ#9+aEg-VZuMY`AwRe}SYnTRD@s zg>tF(aOM)Vfy*IJjg!Oh7B>$+Dq|ViUeGk+JhN#?bBWck<5It5%b`dOo5t`K#t1(u zff?GK7d7fQHEK|IiO?|XRJml*B~MME$MBX?4>v8M8OohgHCj8fYB+I;(LnE1yM)rE zP>ZU?_)f4xtdix3{1)MeSSrXG@-NjMtemge-FS~_#Py*Y(%z$aG12 zL2zl)VCxkB(C$>PCfTCMO~1yt5I_j0D1;a)ofqCOIWugqddDK zkq=MHrx+q%P~ImyvuvPxi1wiJQnMlErO?aH#mEw52u~}*7&4oa-bXt%ZCHDV^bqw@ zwSn&@*Nf1@$da@VPb=dXdRoxl=RLJ;0C|Y@koQu*MC_*6&f3P{79t3LEm5Nb`$G6s{Jo(6uPUQAzc-?{AOSJsGg1u6 zU%H5>Q!`x1SRy>X;V8(3HTK0fQ-yC-FiA39UYU^Wom@5!*6b_RED>RTK?m7v?$789 zFNiHU5s)o?0iJEh(zsgBZ*u-viYROu1xnfm?2znUh_e>=9@){JkfDXUggEDD{&$IKyL&99xxx$t|jeMUtvl4Sr*3Zk2ewt{a2U-j9Y{Lx{u zV{{K{djaJZG7xyTor2F}iiw%(&Naz1@z7eH*8DYX8{E z**jCZY++$xr`ku&{-QZ%P4&|ANfp8ow5)bver@lMBh)j2;6DH*2P^>K^0Vca#(u?S znOXcC^H90=|LlM3vz|;JOf*zB04o5XDgZJI{s0i}17(D$259#IIe>2hssX$HjoUA_1!Pb$fXYd*^=|QsB1osSGJyDT~QsOr3AcEFeoHZ!yrYAr1N~n14Yr8OJn*Urc6xf zn3!R`%)sLUGRop?^7-**K3mzY1?~s1&%cR{(X>tUclU9I8!S9n+iW#diOZn9kkTl3cz&&}#<6qh@(N6jwiobK5OwP$XwX&vI5H+sn{eOX7k zPkJw%JL?3e3{NZXU7rhIZO}v1ztFy%K@kA)0|Gy8@BipLhMd#%`BHlQ`2Q{J{LQ>J z%(YafDqoue*NtqupTyp!_7h->5vj!25eW_F10TqQ$9^?t+YpwGv1F#B7bA5>+7))4 z5_v`H6}Fv{yyg0t-)cIg=9-$nYI3S&wHVO1E+@`1uinjN4y})Q4XZ7e+E84wUBX@F zT;5-GT{7U3;ZEWD;%4EFcyMh8ba`;_Mb4aPzp{mcP!ZCg{+?F=I~QUh1Rw(NxP%EX zp$`nWXaiE}q1*j`v-$!j6E6oTK`L}FLM=Ay9kaKbLeRm1Y(~uJKEWS zs&?SY10cUo_Twtc9?Bs)Aw6+b=fZHubEa@zamu<@y@tu%&#gEAebUSk*cQxjj(5U) zBE9GQ9{YO#2KNpAohDG*7vC3UaF&m+gY_w4E zgB~6er;GNZ=($7xtbbAPMgi%B=;3ht0qunN;RwtTla$iZ^eLA_;uEh+6wRq&S7WfdnD{ah8h-xkn# z!0ThcfBs)sYqH(go@%w_){pMARLZKjn*NVUyT82=-k>T$*#h4LPzpK_VQhn^1?2M) z@=+~-xqjyw5MqLn2XPuu^#!7q2ZBKoLOU7Yt-`|xB<*s3Fz66mgTw`4^s#$z`+)X< z`U{K`#>8Kb;)(=Si_sVK7Rt`rojSNsSqZM>bI%E%T0TI(q0HnDgm`XM=V}{A-F4Pz075Q_T+8)^+>k;7*;t^DwZW296)j@Ad zFIr4>2BPVzNsyuHCZs3ECy1Yrr>3F=s}_!iHRNpSd?a+l{^Z^Y!5y5_H*HAdhSwFv zJFI7P(@?i+Us*vNbzXjsq#jW<#CE*ypxZvTiE2k*cIf5=@yh>VA6nCb7#*gL4^uQ(o zy8-tOHv)G8w-U1zZFgY0;Gn$uu)VoFndzRTuO+4Z)t24jR^M5jXR~E%m9^Ho@iewQ zCbwD=n+m@w$PNGN+X>!1)?LosE2l0ePd7+MZUxF6%N?z4!*|Jdg=NeI3Kt+C^u*q#5+V7#6m%y zkblT{uvIWm!OY&Aq40~!i*>Q}p-i);3PCrbHC~ZX*a6!?#-M)$bA-;mNTYD0_k8XH znetf5Sj<@WSkhQjg;<4JgG~*`Ty}rX@aG195*g8tfkUwldq*pre+IFjfk6%8U4ZzN7ADeYgre)X(; zMQ>SpO!C#Pm|P)Y;`Q@*w9};(``+Tn!2AcoAy!@USHcr>EEKGsG_)a6qkf|rdp;JQ zO%OAQPP$r5I5NbkLnRtC$Of@HlmS7>+PjSb-gcGQ$*c0U+O2lO@cx{0Yjf1b#L(d& zW3Rf|*c!pl(WkYp)q=_P;yQDB&?VpHTIZhsz3w^=fui!0@afvay&x2bw)F{`FP0xv z(coNwREb*6F+7+gs6>L%pwCvV3(qWtG-1&~!1UO}|E2(E#ApGlmWJZ#dMEL8ZE33H z@>WmYW~}`-GvtgrcKO$hY*}@RuDO^QeKO_ULR%IuCjEUk#2uS4u+aqrVIlYjh)7kt z%mX3Vq_cS#wz&P;rcZ&ay{U^Ssmq!a0V%tKmEDYP*F9eG+fz;@UN`1IKz14Qy~iP~ ziNfzn$-)m<=a;<+HL>)=UOeI#$Lm}H;vB;3{zo@Fg_0o)Wrng~OFr+`j{6Y2^*7ZR z8orJ3lEEF&18#nDzOfvHFJ(Q@-sw+4!UUmyyw)6*d$cPXdG3GOVa+GgXNK|t%+VW_ z190{5j+kw_K^DbDkclev(u!mDgNFWnN<(k(JM|^ZNe9$@nvTzPHW4cbE~bg7rlimD z0-~{{%-l3lC!vA1d)Fks>^rh$F6-m9O+`r~v&Z1U-N%)LA8oGSkKLCZl_834xbm*(;g2Z9#^K9dkk5k-2!sY`d>8 zp%sCZI-66I{TOFgybr4ux6)-LbRBr6^n74C*qqlGq}(F3*u2)PNxk3IlCVQ(F7&-T4+6@Kd7M{(qq zRc=UB>=0PAf=cUa#1aK2lWkeg<0A7oG$WnMRA-1I=7F}|Ox{qW`(uIBt@G)hY*d z?tT^B9de+BFh63=Mmr_Tsa)c>k0JhxW$*_2>I=8$#_V`!8x+BB34KIN(tso1?nDnH=-7oE0VUIfe`$UtCfZuu1<3cgy?hubc ztm0KODB&5@w8z?hKa5BpT6)4~V9Pfi zA!|rDnd(wDGJ3TAcW&^&GS$$<{Xhx5tdG@1=m5DG_2%@T3by`XuEyl5Vc0B!taV*L zSphvFf(~DHcL*i$LR#dJQy4FC$uEWn39P(`tN9V-EHSvVX38}hZ>!rg(3PSF=wY~| zGbQ!7?nZaQ?iKHevd17%dLr<`PhTNRE^F6qmq;ba6b+JG>`U~{6DRoa0vsu4#7ZO8 zKRu|VT$79vZeb3Y81_Lyt#MXg=&}UjJ2^lzzSqv`lx`5_wT`Br(3sZHPnR2vY6{mH zqk@Ucyh8NsTK9JfeF(6>C~ve27Qw@0pXO>*(KzYhW~5VlKo+ak*Fs(Ij1IQ1rW?(R zjF95$#|&%<9X%k*nJo^#-~O#ZD=~pxyrHEp*exFZ_F zaBGJvwtp}mj;A$_!7#aa7pWqN;5y*s&s2j!!-#9hj@|`zG`aVlAIh8{C1i_VJi;^A ziu}bJiLWZuI`B*8Zn(5*MQP7RPAT&Wq&Ock)aM&20EBp-K&$OVZc4bwF!wm3i+&-- z@2g$Q!!F7UCupi|l02bE5Wf&iZh&aLyE;b2q`Nk^P~&ObB`3SdehME0L~Y&*lUQIyb?4Be+xs8w zT-_A-)M1qeO^$86jq;BHUryusEveb?tty{eKIB`E%tiP2docc2PG=tK4ZYs=4i+mK z>n~uW{pTP|&Rw9G^wth6ivnRGKa-Es_d8RW=0^dul?E6MIcjj#g|4LSgP66!(^#Wg zjbGl`l;({=YI3XaJxI0k=6Kz{c5$<`4A+;uts0XhKE}phouH~n9Qjn6ouxoK!}^2y zw((caP+QV9{y}ViqDs>&8r+-D4qeVGB0&2yd`s@Y?XCW1K{G_^lIqRX3|mR#2t* z$}`cF_zvxl8|)0qX?Of8n6ET$@Fpa{J5W43lWJ^l(V#Ua$CFtdJi*&Dv@A%Le>P#| zTEAds{NuTjXz$0Pu7}Gv|6$6!lVj`)AA=4s2jWD(RHnI9Mv@aktzCbbB!VY3s(vW? z+h(jlG{D?FVYFG`6^=iJC(YrK*__#^C1nRevjhU)mMUXq5w*rk)?q;-s#lny<*o~q^BQ~6gYmSP2*O8JTq>Q6;bT#C8?w{h zyGI$zAa}L}_41ch3^0EB!tYvdX6n4Vt3So1EE}LlvDj08lsVe7UaZZwXS1f*Q&jA| zUEr7Xuy4S+j(l_n#EqGZ)VY!3J3cYbbNd(_b)V`tHA$hkqm#b1dqWjw2s_3WPV{uB=@ z<4S`{Zi0uD#uKO!Vy}W(aMxxrn0y&ZbB(_)RVvm*Y}R@yxMwU&WZmgar{0)(=$*I* z!YIK|B|AM9q>Gl>FSQIMhYRFkCD zGzXfz^Lwf&Sq=)^-hBt8%Z!UD)9SpcmPF?9KY#N!QQ;A6DPn6z#@IxKc_+a$<&eR46O~5Ne^k5*{B;jSsa|n9tc}d^Ywxwuwm}RkQw?M>Wyy|&#J4j!dOz{ z2$z1c^$%&VPApP$x`W@knZ%L~I0VX0>J!PF+%1=LGVk7j`$jkPpfZ8)!e%#GA)ALxHAP25~8S!nbSCNlCV703s5cI02xQ-*)Mq^JA^`ERKGh~1TDL98Tg*s4e zrf16s^8!sEjSJ8V1Vs5}e7ck0HSA}`-gS^r_*GoWg(d0va&&SUL4rp2W!+fnR@n#j z#xL~^rUK_Y2bHQ?HR7bc&0ux$>btE8u{v;L^%7+fEO2AJC zq#|TCpEec8%Y?Nu9kCi8+DOJna47-nPl;XZS!^dA3DOgi`T$X><^*UoB2EDLU<~Iy zgS8ilHYak&>{V~cTYx_+(`e2)tGTzzTQ6!g{T|S&Wu~Wa+UkMyooX>vy;mQ_5+X89 zbaF_Pf>t)wS_fxXY1uS<&Jiw|`{>~}TQqqp$2YSgMZ1Ml=TTD@e)3IT8$3B>LM*v58I-S(#JNISs7NUiEerwsh8vuJSESY3R7(|UC*i|S zuqpm0j@bAf08hl?fv01+I$|vm+3w&iBa0j|Wtg7%H-fQ@ql&dS1}1m&ZxXfC5$-DL z{eGIiAB+7%s7xAk!3$WL%Gas+`?qP2n+qnslwXZvQ)rEDPobmbtjlOQ z>99&6A#2t-MU0a(jF$kxf9e|EqlPioxMoEY`HGe*{hf&OoVGUoSFlrzK6fg9N(M3g z@k4(d)RZuC#y80wVv{?xA`WBGM}A>kIBjf3#}HGhx^TIYUk6WXWB;DK4!OQ3^*{=$ z5%LR{2ahxRcOR|LH-Oz!F8n39tg^TXM&3W4|(6tG> zCKmE|fSkpgBfX}14)u^X=2zC;(TV;O_Z6-+u@6+x%3_o4jX?LvestD(VoO!yWA5Ht zE}rhzmfG^@+n*joCjY|m72p!S@XweQ^S(N*g<&aV5r{Bpa8m1P+{UX7c4(aPC2gda z&OSKRxMwiZZqI5r)fR85`Vd)i5POykXPm;Z2%+jI=Fs5b$IqdwZm8W3ZRQZ&PcJSe zP5$Mi!$;N&=3hMRp!~b8qkP`;ac~Fvnr1BEUYU47>oU z=kISvCv=CHOBsNEKYYckTLqA90bMP`k=I|mlk4%@*ymG6`akz4*Z&*7I=WIAvV!Z^ z$h$U97~6VtzGcYANHZ=aqWwQbXuH`D5Jeu6)!fv<(S{U}ADYW42*14p`Op&luAIei zp9~_p7tbt-Ga>SiA(fk8z{o9yThF~Gx_%p=nW;-v72O-jEa`h^b=#R&6b+uZ1ZRu5 z6Yw0}GR=7Q+24M6{Px^za?5+}<7|~?miHa}=XaAxw*4t0%)dC>w-`W@{=hu@uU(%x z<=RoU{8^pL#;=6-`k^Zk?kj!@Um>}jCF$VpmW3xaQNg#Fk#j(IA96`F1XrdR6G(@n#uD*VH zEmTTGUh)n7(=zKJ&g93*2R@nwQ4nHS>I=1d5X{V6#8hJ?^MDFwi(+L>(LoK37|ucQ&~Wzq{GKY4~t-2MO84RDa2H z=Obg>uXr~gq9?5RM47N+xx=6KpPC?9yWLM zrBCz@-t`1emo>VIzDgj+77`xCYSd#t->&vo6o+|@9SsJ3^1vh|CJcOI^y+HA>z5D% z61NtQ^>bj!yGWd_xZG^N57%>z`;4-vrG=E~!u9viuzspyd0sehAI|t0D*Up$0%apc zZ1G@rn3KUqI}>(J4mTxX)^AkJH(p)^<62QCXon@OJs~9f-^y`Dc{4;eLcRenB{PM7 zJl5%_{E$-w;BRe(p24U3zz-anb9GovvV@)8XiJf8h2!~beyV5pBh()~ziQ3eb>#X{ zI?~r({eanmZkhb~tiXa6zIqc9AXm^OJpVoefB3dTeBq-w-9k2CPpB(8^-_L04{3~F;GE_sw6)xcoHU-qPrZ=2=WnfJrE={GgdY8kCS-b&cQ?TG7 zZCS$Y6&zSvzQMxS=CT@#F~E~Dwo@px)4jf9fF*~u(tvB&{%WvvXX}i@ngr6*86o4P zC14@tH3N6XGikS>vcrX{vFRF}^RZ;$F13Qb{q3ZfT;z)iLn}SbF%by#T_TeG?aPKR zmAt=@*~4W~Qm3?*jkVV8Vl)DZTjp-*XFOTh=`$P0R@Ar4rft6RgPHX?I z8|%xF?-kDSPi9Jjf&zvEHu-z!X&g=sA}pRy9d7Lie}@z zw(r`J7FS7$HRIZAwMPLD;2{L_ZNC#YwV*ygPTLiGjkC(5W)p%nwSiWIu1}#k@I|vM z@UVp0=NXMqm=<~5KyOeI*!fZGh7L|-vHHd-`?177uR{N=hVNpdjG}*8m#Pi;Vw2V% z7-*nblW}7K3tX8O8A-YiCy3VHa?+?fgVg0M?V^eE77#rwlsp9$7jN-LP|k6kTF%M4 zdmU2p#IojBnm8wNi6T;N2q$u*Tli@A-^buX&kln4#RiG!J7V5VGe7F$1Je`1`p8#u z#C|lP#p+nBkS0scdokpV%}TSW)m#2}ZXQ@)^=RiXU(z_(Q4k05+*(1iXEQU|J4|1H zasikED2M0R61K>Tf&d(@4D2DnlF>7oSe3;tmZir|7(BWwQc z@Al-RG2f2gDLBnc`KVjv@3GISWF?>9DE5v_@xqnQ3dJ2uz_F4`H4t~v@iS>BW0Uy zLDnlh*Y_VDW|q9N=%Ea%_+rPwAO-meEsobG@GM^Ge}(aHJ8cj@;vF_xBKJ#zE8aQ3j8Pw}jj1Ern$yCVz& z?!(=l17;tf$Sit!q%0X08upAqrc&ZEP-lHuJFMxwo99Rm`vNSk!~8JK&mrvW58npI zuA;?ihJGas7fTaacE>ZC9v$xM%!_vBXn^#nV^J)n*P-31X3UfQ^~r0gTIdRVLr9d| zkJC;4WLht}L&?nRKy^Oe7>~NL%W^(py6=-`kDKB&0X#0cwG|DT(KOXKCFO;yD=ib_ z5R5vKcmro{!V-I9Og|^+wPRfLc{g1B1|0EP$%EX%{G;sDL>#^Uk7;}HB=t`pwWfS6 z645L3?RB9@Sop7DJLZ)iKN7h{S@`QEID7}R+s0ln(r0g~P)kKMF;cq-R{)#m_NWFf zod4!2GnW2`YRXh^cNdZ^m-#~n#BTN_MImA%OF947@KYyo6}QUB#f(t`MZM`ttk-Xi zRyZy8BXfKQP&$qyA=Ek~?OiEWn(ZxQ6 zaxLTWnqS_HXPo`b#&z_st~0)RcyZ0ys?Q5qx;yHPN6%Jk6+PYHNl#{l5(X2Ivq9VErEB4jo|c_w4fv1*=TeG z)`VZx0(;QH77Xlov7+zrPGP_>F{Z0e*}*Owi`0g0Rr#GV#Hlryru>h#*T2enTz~T- zN2}EGx0?x;*H`^QzdD6iQU5;xVnCh0G)(SM8odW?DpTx%V$cD1o^~v_H>yml4c0YQ z)y-|5ztN+dbC`WnTUBRmWbxRp-io|}L-y>LcliR~U34#8P66rw=Vmw#SoQ_+D^Y+l z?um;BNIWKoebPqQ?>#sk8wDs&|C5qCa9)`l?xExgk*}iUepN0==sr5g%BqAmOE=Q> zS(xbs^)=cI%>1@Gop_BB4gkV-ON9Ci*c`Et8q~}gbxAK_>;sH-*1U*1zd71^)bGui zv}=1rvlP%Y3*)W%jJIeu1#Hx>p3S}YA4XLZW^M({acjij56tQ2z!kN*^YW5O;+BHT|)!x?y2dv>8+PZi)DllfuFBl0b=T zG(rb0kCgQ0p}A)}b-Re>PW?4qi-ZYNmPaAH?P88rjb4EEz@^iu84$IH>R;gZH%8lo*tZSt`TQLF=yW3+^LA+ykL;|wkjg=Zhp`ny z#5x#N#JYa8_mjPK{C)K-484=P1C(WxvTC$&f9eNg%0#Q#7sn*?VP-4W5-T}bCccEe zS_FERSEw=gZjpW|Z1^3cUr@cq@T*4Buc%%^c=`ZOr2!9K8X97VD^O-=2q145xoLuJ3cXlc|n&18hhpMto#r0Z3BF913KMsVC916Wm(W+DK-?%o zjQ5=={k043ccUJn0*3n)sonaMO2n{KP~fc|9tEelxHRYMnu^PFEVGp$Qy*X|=MhCw z@NxmfC< z(ez7o#@EuGr+Uxmx6^c0Ktzvv;^@}v!HF*8^ zT{zq{w4Z4!I{pA6Y&?vx0FE%wzct^+^$78dyK}Jg8T>C_dxK7H*Ik}#8!XrWN`)W2 zRMK3bYq^BFJy+5MDumM?6_N{d>0zup0(2L_=!Qx+j-DmutwX=Y39M=MCsoOJ{Sst{%CCe{TnsgZk?s-Rk&lE{juB^}P2R`!P z@?)lB^%yK;WoFPbGKre% z&WA^G9xdxJ{zsSG@D(+;{FL9R&w0qxcO=vCXd*FSMU^uo$`;-rf^@5wbAR$J6c=V6 zhQSNO5`Z7A&kox&kht$D&-c0UcQJm{p2|b=L*q|hdFE?s4}a=rz&UK8Rl-hX!@F_7* zWfpiv%BKn3C-B3H3OonA!Ozdp&G`uN1)-f$MF(CIcvOi29~IljHv^a2C&z$m(s@1& z+)X(m77uXm~1_X+%; zWCP+2fxnNeL%d2kQkaeMBjgmbQ8wS*9-I_bAlfIPC%71vgE&tfiz!&1>>o$3g|USnhk0KB}J6x&-4Vc`9mch{**OR8h6`#OwB$okq3HJ%HsK@5Y0QZ_c?%tbCLv?ml;YX&$d#yTs z_Orc-v}-6BPk8*U-Xr&c_!R&8`Nf1M;dc)Q!fBW4yI7V*sBpfTaK3!fdE9U~F(m$Z zh$j+X1CA&cOsmV(8wuYxg!dCSUT!IobeyY-syxp1c8qkvW#nLfsvKES|E*_IFPttGvY?@$<2_SWB4JLOJ!!(l;xf z;&0rK0)K+QF9`hUWCOTCIZ_yZ0lAFNg54!!ZS79&wYx%bHl_06fp~UsFgD!HV*BJs zIF@EJD*SgRqo-LJ^&^dD)a}T)OQxUT$9@ezwuw5XNM6u>?2A9>oTYR29zj0uoIQo0 zkMcVzz-+&4HHjvDifm3#mHMV)UGJy;Qqu1l8g9!qG#1X!rNXhOC!{ZOPw#2FD~d@h zx;f#fKA1T;nMitKzM%4WXWLK`ke&ebqxR zqt;_B@SfgnQ~3q39$z{-Y+WAa%w^8wFDW15PTTI*TFrH*QcD`EUi#N$bc z#gFp%L4h|NuK0k<@#iGI2Jy(@#u@681|GmAA$}dW%HyAF=ocyJB z!qCn`B_6Xl^kG?^WBe2Ed`B*iL$7wY(j$*UA>I)9ak2*SNZ{9z%YeJ2<9;4EX>sBr zHv#v^<6_`GA%0X*f#-lX>^$*aet!I|;|lQwp&g>=z)Qk$Z&qT!M}aq}e;c^eJ~;+l z6WULZM+1-IN10y+PJ0{=X*>T78qYbjFU7-k1b&S3_T#PrN0cMQ+%Qkzv-ozl7QejZ zTKqwcuY=d@#rRevKD+Afw`}6mBdgku<#1|EvV7uoh`U0 zeWpIOD2z7idulV~c~P6rp1w2qyXd5`-af|Gsrr`tH2vlJ7L<6uuF*Ed6$s(Eke3(4lVo9_j}G9o>si5}27BcXc$>zs4l-0d(9+9L66NPEL0w(nk=D&$kybl(4{ zy$j2|J%iq%aF5&ab5Ad6qlK}hYAHFH*|~QxlXQuV-ic0Msa@q!n&>Ltwk{!^>oBpTh?{4RD#x?A9Hhb~EXA3V7r z^+*C{l$z&B5l!)X@3-upnKI5uJV5VBq_B)Xtjw{Dr?<|z+bF1e{(-hJ*cMe>)jkxW zIhzeB=P-Yc6!W1Hk8#et`0P0?^Ik-zBflW=4d8~vFLSu!lKAI=6N#S&?w0sXz&(^R ze}91a`*+?&f4@9v%fS$@tJQx#E?NCUWAXHSA{d_>Y#PaI$8epH_4X& zNI4QepeK^vm@fo_zL+~6n^}SiuZ9YHq{^GXeIi#@fX5}i3;1xC_@u597;ueW3Cf>GK1e?!dtn~D+a=lbT|sG!1^jk<z~G|JC8R=cIOyLA)mLo5>n*#5vnXfVDHtdl3fk>qyh#ijQ)LUk9!NZ~ULN za{zKBi^6bjIv#W~NcT*f9>>nuHrKY_+O}<@T)U+$a|>$~*0yb>_O@Q9{cftuZysjO ze@@@~pL6=4zyS7JJ-T~^TVvW=HGmS*Yo@vW`5!TpTILWCZ`WEqZ@9R zqrn|=S%>I>PLY}M_}l8!R;LBqsp7?_V7=X$d4h-@-aoRKTs>?nCE)CMXw%yKnMNG0cJY{0pYW3l5 zUMu~Xgz-TiMFALPl443DwWyV=*~Z>q~5up~n6aW4B)s0|d# zt|NpP5SS}zV*@Fre@$@T>ZVu!J)(?w8{f^bw4`o$jXSP)`Y4z0$Wbg%Mu`}ip7CR!=*=CVm>`b~2p)1X%SZaT( z)E40h>g<2|;^(tOxA(jDi2;q8qo8KXs+#4C1$NFLfQg_2;t4#zq|lHh=%zuH?xhn( z%i}gz#2Y5-=MHQE;Jr9Iw5NtiZ*Bk%?J@hr^LRun_ybNaCjyc7K%@28)66z=gLt~n zv?gWC!QvR*Fvc157=;_9rr_R>H|*^@kiTo%>*iiSjjaEMHQ@pRX9{6)as3SAI#j>j zb?J&io!3z4!A#?#ZC~K@Xfqj|2g4~BX2X!`ob-e=A&!`rEApO=4A83b1XOB$kCc)F z*J?cg()c{Pnn*K4dWwWY{CS5P^;!3N0;25&x7X;|NGk`-MSKp7coX$5DV2nQfkcFw zu8enFvT;I`88m#T7q$3O0MbzdH-q5Mf7V-AFc|aYraO^uP-Kgtf3X6oyFt2Xu^Ma% zsqhV+=YP}uwb%~rne1pjM&o`4hl)HCSEJY;Fkg?su3bw=3hg)b^NjAGz}qUeMqhUl zDeJY`uD{iE7aW)T>-yP8G-q5^Eh8|i51~JUhPyN4j4x)0qtmYzgr~Ar2Z-RNi!hIu zBIgm&F&f{aAi7La!Oy*bnh*q6s;@ik$j?L89l^yKD>#DlHBN0Er>rBja8_BN)^{Om zZJ4t*{*bEOjT?VPA-Z?;6KV`*?@ILSp}T$KbA{d^7?Ky{jza$#!mfu|xVrW%pm!if z=K;NIF(4C2U5-v7*d5qY=EqIbjGJbM(E=-73`=Jhz7+T3JO2S+@O}{9WVeCj;;CaD zb0s2s!1({9eFvNy#r5#ctfWAX3r_z31kw}IL+@ben;q@xB-_CE{XhSFE6v-PH}Ac9@6FTHmT{#-PkT*z znVRaKP^e_FENjRlI#apTsfkV55;eG~+uR%2H}7*4cWBa^`r>N_^$|Wfn+eA>#%KVH z_R&F;nKRNc>&A3`B-ow`$0R8bnd@|}TBXry7=U&G2^j`g=6>YJQ2t#4^xf8T-rL_csl$E9mh%)iIed;5pUMWAS@|5Iy`89H%7HU+Xobuz9 z--M<^Iv>Ktp|XF0S0h}Hy-T2U6wM+04qgpq;Bi7o%d0Pezro8;`iZxeS5UnPFGKmC zlnUu~)XEb0DU|-NV?w%%ARvj~e@9!J)q4&6561u9cZ77Q`ZA*Z(Ps?#{>Xol9?k7ZFuD!rd_ERigzH zP``ZX#}lgs0w!0Z%9H+~qR$$&`36h=tm4d_LUp_M2vtP{^u6OARMqS$(?Xk(=rMNE zHY2ICPdy-iwAN-9;xnlBoxm?I6Xy2rFI)6G~AY%BJ~r&wPq0 zx5hn`)N0bR(6}_ccFy0s)P5!?=)11!Sm-I(izQQg+`;PRM%Q#lh6d*fJI4vItO-O0 zOCXrbb1cKK%NvCY=u7@&6)&6XuTm2UjXfMqbv^J<;nwgqg zJJ8kBy;I{J>$U<=8e=CX%Ux0LV6HW1=&^cC+QEsruHi+acB0g^N@x|GaQY(BEu|ne zX~9zf8B*A(K~fnSD1(*XtH71H)u*X<2RGjQk3QWuGT`%-_3hsPx7-H?1(~}LN3Wpr zffMGZ>U)1_50YAa0o&t~QzT{9n2jW$UZ1!A37o^?vZO)ZX{}!(4$bx&Gv~>(cS8A zE!exA5_0>hrH%vl?u1*e-e4M9)i)jN8b7*WZFm|DeP|g|}?b{yYh7%xJ+5OQ3=zdnPZ<5R_WxBb^Zpmv5E)? zrD$Yl%jD4wyN;S$mS5RUB$GYXQs_=5lKEcy_~PO~GL~B`4A1q?m(r~pZ!KinhUiSP zR0J=@+Wp>H)?2dWJyL0FTd*T=Dll{n^^UD=-(H?yx9#Cez+;`m z20fRw%x+AKS3>Kah;JP3-d;Mm<+QI|?8ED%g*EWdPRPL1Bq7T0%P8Gwn-sRqwEUXs zPg2jQ+QMTBq9~2^g~k5#SFZ@^Q1ue1!0&%;6w;m5SFu&15g_Ao`R6eHXR8DO zvDN+qr9aqn{rA|$*u>V>kqxo2Es02P(!xevd~e#(qS>~!|NJe*Qx^L#+E(WCYtLxw z>bIpA_I4}`3DVJ_$IMBkqmv(;K9BltO*-dNK0Ua(CLQmBARScJf*#*MW!<>!@@mlI zJqQALD2x0{nI2a>%7$pU;4`dHw=~l`pIz5+Ca~)g*T=d`{#ahF6g@>}UubwTy}8dUtc@K{DBGwV5*QpdWGlWh0N!;z6hYbefB(86i#q+w}Q zX28FBq}k@0m&ly~<7&S4_ITZHvXNzsdUaOm-d&a}Pp|RBl-E^rP`!Ee^f7HS! z_hEpqJf{K|<>n4)4)LpQ{Zr4m4`;xU%FgzO!Cm)*vcTJmh_~+}eej>iTeA-nMR{#t zAgz#E(dd|pG3dtE_Z93h+ByPS43)PMd~D59@7_x+DL-fOShM8f+P*=BoI)P#G40ZL z&-Rj_QR7G>eMlpm&}W*?)br5bKQPV##*L%B)gQhs2>j1BWhJuOdXsUJS*pG&b*|D59F%!*CMkY%gi+p^hWn|+eu|h}L9!Ypz zi%4d6)JlKFR_H&8|KjnF?`9WvTSwT_8J5ZlrBH|OJnAD41Y)Cs?wQh#?%B0_egHa) zBaD+vS;p2RXDW(d`0DKr^V*TFot0BF;9UDLb1uhrQYvBXA37E1e< zBbL9QTK@kdmX2<(A`lvkixG?HeWvEt4|R4oM=ag_(ZEPssemFDH;w$z>fW)9ChbgD zEn+dCh~-6i>w82j;mYq+;3K)k-Rj+;wYUCbQ1@5{e5*3m{uucDm%!X|#PSv@|Nj}W zObHRo3#k(#mQ8C%=V}ql!%}MJ{KP3)F=El+b`G2nvC!`su;j9?KDz?NE1d`L+lAtl zjqK3so(UAM{C4Zc=&FwKP92-9{N?bT#XBw<7vhx*rb^ppi;JCZvA=x>aoHTNoG->J zS1aK#idU{#j#vJKXj36yl=;AT<)i`2cVmS<9I&t`U>Qz^alqp2FO^!vh{c#nwwItX zH4yO4=2Pu`$G$w=)3w_fULD5~OUq!v8kucf4p}^zjK{Txz%k29;NMto9?|9-P5y+K z6#Ii#Hl!N_UV#u=nG4RWwRc?F9wQ6(A)UkgB*Zf!H)Y;x0<#V>}edJ04 zAg}j2@de^cBn5(Nyr|LQjoPj5u+nXD@?Or#3;o6O)fwV`;w*v|_Z2oASS6H!`c%trN31qi*kbiQI5@y4S+CvKP&`4>Rd*dAyc@_9;pcqNlu0&cN6^l z|C+jW|8La&{XM7)wPD#cQwNBTfG-oT!aoSN{Lo_S`3hM~#!pN})@|?rNJ>bl75>4> z&@(%-1DcjxO6#^%t3p|D11cK?FA3Iyo_7%f&Wpj{K?1G6H6onen)%{Uv6=xt>|p?$ z@7F~$dLv^%1Y6}QYIL{7OGkYQrG>To1sr=24y%YGT`Sn&4gTn1AXvcx|6`?8^3l_* zUOMJgsLTS6Y8BJ*I^OH}ia;NFeowGwjQdX*cK}s&B6i=2An@7d8o&5~1e}bb>VK-| zqm>mOh7@?Udfu^XYY?yzLtYmki1St=4cfp{!rl0_qaC<^d|B})_Q8wOU&?*Sb^jLy z>6lO+rk021gsn6D)>6+2oe6XWw?j&fG-L!FdV+y0Ef@k;00g?zXl5e zoJQ~hxE+|$3q-Y80?I(`%#s~|BK{68fr76t0s|`BMZAn?cvzsm(9}QO6w0_WRzB-a zznltrGmaGR%i3$}#Ge9p5){Hwss5t!oPeVm2e-l>2sk*QeT@aKw(;s$!;^R3!Ci4# zu5fhC!>8Q@=-sZ}uim=t-t|Jy^gUE6SSv*f3IZt}yFmV9!;^R1iArT#;SYpjmH+H^ zo&E|g1_-9Q1kQ#(#C4&0k(F}~nO%CP=3)7PC5=^ehWs-yKKYr+kftKL03YEPUm2E+^uI$%9b>oP-9z)_3$5FKo z0_936hDy4{9Xw^uw=ocOW&Iv4tqnyz^33@rtEmORkfI}F83;_x@&MZMaZ@I#&km~O zaW~UD(#P2?5|Ur*>FX_dJi9e<50T52{!b!v;O`xxl5CD%S zBncu7gpgK&kd!VrAQIBgI?RoPAWiBaHiBL>av=k6DdQ;ZL}?dJzm3xPJ=Eg#JN5Vf z#OZf&Iu0zr1lFMRF?B&q{|2Wk%V|=M(^YkW0L$rR9go9jfu*M7gViZ;7yJ*DK`G@! z`uS6oj^ngUNE7zz#oz+?JW5me{ZCLjh0}8Uz7?f!!D$74|5ubA#c3twLo&anx(R#| zepjfO0vWIiJlt97y^Y-d?u~+G?61m*&%x(~x11qk*x&Xx`S*9t!kZ1%O~i|}a-5IM zyx6v;4V5AY*ieS5l`{AYnf+~TZEu4oDjl#0z95ue1RH^{`Z|v|UXIwfm8if8ITi&Y zIHq0h?_|rt9gFPnZ#tuvCLswDtzNZ?b`Ex?igpMMDxEtKba*+H(GYSEPI!Sl!tFhCXhZ0CqQZDGQnNi@Z zF)9njL_`yGaCE;VE0sX09R9gaGowp#HJDR2wLZ@eiA%^BByp@ zRA?=h!&7kLbry*Ax*I$BURg2nz)zCP*I?KMf!=hFO5ybBR1!tDMd!6AgZ?$EgZA~K zg)W(dQ8S!GN!B*WCeak!Jm;M$I>-CjU~;m<13w>1*%Drm@v%-P6W# zM%6mb6ane5IpXj;%BjMl(v%7mrz>VwS`68vcE7YI;*1JT^QQaIdkXXpHoZITDyAuDtJbPR~6QFFJ3wlR#isEZytv)A!}@_z64)I5;71z zd>do)xXB6kSn?>na;;Jh<*Nsx8Ke#1K+nPT`Tn!Vdk${M_aB;G|H;{oU6+rn{{;HD zES;K&wQcRRCv6%OYbN{s!z~QM#q?a-+_HG#%>23C=wo{Ix!wHmRZHtWxh*$x<>qyt z*p|CCK9%p@Ue*{F$K>hR%-E1@Y`s!XNE&Fj5K+{|1Sr&xaTRw-6?_zKOY#Hw0$$l? zx(4|9ely)geT!-@t#f(orQ$X3!wz`a+mQ-%1-DQhj|}9=FK1gOD&hC#1kt<(v?CAq zJ=8bEh@v2Ix)bs>vZ;nk+JZsM0@ZxkVpFg}imW|A+B_C=wZl_1D0DVbsgdh-QjJ8e zQfSR2)iRx)D!0s}r#dIMw{I?>$C94a8#oT!p(F1ibrx$vNm-+$4g#ehb`GyNCHP^XNxaM%x1|; z#iM5F^Q8IcQM2TE0r2GS|MVTH8P(qh_Q2o4yHVubf$H~)w_`1DZ5K6j*~V)Y-btQ> zs$27ZDkL>&i+V@E)}A!C=;gdrrL%fX)}W(%^1Vm|d)S^fX;f{eEio>fQmHx%63(Qt z87yIIG$lVN(fB^cZDa|J+G>d@WMvKezqAlF>xt)|vYBR$T{%>uS#R4NW^*}~)Y!F_ za^Ck^(k11m{qCHvI5g(fTa;n_utINPJIbMseG_w6@9Vzdip02A72h7){OOsoi$AyN z)Jr=Hs}{c*4h56HlPml^Yo2V4#S5uI%cg~akVfT^SH8*H9qn5OCJ*-Zopbw!D?X*w zxLDKp$2Oh*z@@`;SIteHH6FloH20Gu@EItBylw#TYeP(j;FSa^oGeLa3O*8_gem-G zDEvqHgg>l3kKXIM_xjW({dV7yeg_(;x)=Q|>Nok;>X%Z9)V(Pny|{AlYtt7`e+m6V zA7A_0*94hvL_z;mWEYBV?Wm3><7hs1t)lO6SAu*rfroJ+-FsQqSWe> zt*Jb(vf|U{Pp+-dnqIvI97z{A#*&c569J#ArN!rxg+ojto#*+I#xS1m zK(ZbNw}1=DQf*Y1M(s#vC~;J`@CWV-is#eW9z_o~vi9;IxaEul0M+Cf0Bn9(pdD2J zK2GKcAEv!<;_OX9z*KL$Co=`0WK9|X)oiF3^wBmIoqSsJ4U5jLFSf@J^x#Z=TMQ|i4}k93V59s_3OnqF7ACE4Ree4UEg`#QuIg=*qy;p}ws zbjgcPs{twh9k@>g`pTioEd+`39RU|$ZSoNT~d^7$GRZv4#QM}dOXLmr2lcZR)o_?#tZWnvba*IT(Q69|@!=9ImqGv^K_S$oQxYTxMc`&`zb zi*6C@<`hKFC5Rq1woTLWL=7T`(onSWmjrQc0-(xq*^2W;Zn!IdGM=K zl$;K;8@eiw+FEv-OUXztKiu8BXRc z`SV@Y?$4|%Z^;OyI#DU7SgJmNB1qxkSWYZO?o90;T>1hkb=z98)R~|R){~oXJ0P_b zEcMJihh%*lyJesZ{m6$U50^8_l__H0Q=65pm)%D8b`Qjib%AuBTV+32O`nt%I=}0q6&Do6cub z$Qh&A#mZEQ;sOD2ZLh%RQEgmveT9?MZ9|`|$>v$1;qNxu;()pL)196^3nZ9^kq zKS7YF2>A(uyoDh#5%S;FB=H)C#6`$|Rb%Lkryn3lLWKOHngmMXzYwHFg#1Q;;8IBu z@?5nI7;&Cd9g-y8#(B~rkgrr8B1#z2R)Y|d>YE@5uEp}Xt1^!ukRZ_5(luB< z7*c%`iP(oBF)Zgcb zU`V0P#p}d&ViC&+L2wIxnAnCPZDO8IpaQ$#XR&<#P~C|j?SKYxc&{KI5t2cW4Hyy= zAtj&$ix?6YAz>f`o8X;-d_+ha%5w(1RgjMe=@uZkR8oYDAj}7Go>U#81RHUlvp?GkT9A(jaiNvz6%5IVkU8Qm&PN&macKbJaTwLB&m9hcq&;Bsq5?>e+e&b?^ zY(bvUA^OFprOJ(m`ur$S&d$U=ybLfZjY+{oi&2j)qBAnX;I^)E>!zZ^sxuhWPG(~+ z!aHb9Adk4(fUti9ait>S%d?k-ntWx==L0ng8nbz`+30KYn%H2Q>rpAGu?7sL4xfPo zz}e%l@WIYuze!{2AE2PNT+O5JrW61?1pL^3zzWj$gwqtQF5Su2)9&3M;{Dvw(I>Pzq^{ z&Z1PxG?a#>LVdD6)l921A(04Y>}cH%6z41h6i$v)uO&nE!8WTQmksH$kB}s zlUDCHX*;@=L9&t=wa`XkO$$(i&%?J+OLPgl;2SR;)8n4#8qc5NxulkyrgPK#fc3Zu2=nPIaT22*)2 zj}~S``cP?~HRvVfa+;%*jJmy3rPfe#15{8!r?2SodL1oVxmm;c47UHaIX!lxS*FlB zaGZD>c!InN|6V@sycB9h)0z+2-b>AOkcX*+cg&TLNn8|E*#bsWS0F%1tP+_<=^u!K zJ7wUAU^2gVhcgh>E8&twH?*YlGhL>!j0;$8)}1!H-;RC zB$7ZEd5$tElc4C^z_tbT=F<$UO>bmv;JZq@@k>%RDF3tFBveI%%Q@O)=V;m?)T9Rr zU_dpg2zzrJL-IAwBC?63v{og+co$d#r0=&ZwQG5d;Mpf$_Eg_s{-Fqn)j48`P!6lU;QyX96kGZiW0 z9!Cp4246xJ;t~5%vBxQpcx0-nqq!++NILxt6Da#$S!|PiSy~P{`|TEbvQTH4C6t?oMo-CvE`VHmZ8Fg#)saMU`Dbknhth-%zt)W_aHxVv>q zK{0xrL=L6U7c|=J{&I5IAmgkmh1Bb?*xgo0Mq9hB2BX`_>FqRwhPR9DR-fHtVjLze zi0a;n>h2;t3A4~r;%SOLs;Q5@Fxn#>^oHm;>3oQyl!z6!959$c^+^Y{X3_VE%OI$h ziDs64$j^~%!U$hu>>>tGoe+H$yW0BoL|-&Hd% zCIz7$n@1{_xLd3gv>6PPM8%qCGHyUhCD79q0QcJZ2g`bc!lN0t+6;Y@zV-th?T34U z0|^%^6{us>zF=%u4#;BVcCNGmkGz$^XTTG+b7BB5qfXppCW@;Oh`(W_6!!==-2wJe#1sPCCTbEX4>G^$+Q$@lB=;cFaqtATmc!E zS*d6BcDYJrrs;@7FN)e;+)%W5n7-JTn|2tS|Ek}A|eWzMs3ZJAk_l4mwL>_Q_Gv0gXsIIx^!eb!iD6N z$HBCgt>Fw~MLBh9jW1{8N`7-hrsB*@TZh%%9#C3V95sao_tAa!OFIW0=|U`w{|)t>AND zGhQ9aHOI}3t0e#IPo@0AUv_jfi~hjRay)7_p3nKwBG7?>QmJ3)6H~-4@NdW?TqDPg zon{->P;!F28*bDWbOD=OeF9wQJnIoTQjFWXVzDmauPqqxa*R%6rP)NOlweI(jgH~G zC@wG=#5X23UM|O3y7tCzFoEGzXJ;zi(UIz<>em{D{=(NI{JZdLz^`k%-TT3F(*GUkZpr_&hG)LE%LNsO&7oxMzp$ug0_+-Q! zjk-3}oTN#x1GIpZ8620YohB;^5j{CaE|=WUYYZBD`Xv&iSPs2IlhelYmh8rE=13x# z?CSeE6X24if&DuqJp(>lxTpd^YV?k^rDt;hr@5r^)1Njqwr-s(~CL%jbjjJWWLOI`%ZMZx2MmlQ|0c@yGJ3x5@0N+Y4Z zxhNB0(gPN4R3cT-s)<;cHrrOWY>K!i_cF~fLD=(qOieOk@jP2`7v(c0@HItc|ayfz{5Qe(^nX)6@ zwlh3U071iH5nd*YL1a3iIGrR+?X6q~TdTA74H+@8PoBoLEW3xl(Ce4|ldwS## z$p^pmQRNYdTyjKtn@ld*Eaz40)8lEtDtTU2K}%oJr@Hd*G#fOe?QxTe$G@4YH$xxd zJlC`;z2^GFTa=C)oSan4Z|;ahY8lZP6Mz1a!^zrS}Z)9Jaa4 zf=^0TKMLhY*X2Z)aOWcMQY2D?pcfQY^jsj4YtVO|Cu^QbB)=B=BK_hi+9c=@*l%I( zpq*cpC@bH|dfa_y4!ZqLxrUiV)Sy3qKlQQv0pCXI zm(;MYTiLDcQFf=29UlrVQTMBiZQnlKFmun4ax?UN^rOdq&#RtH_op9Jg#Ph0O(>-L z21>mB_Tw7<(nF#C{(ge2zKpEMgJ_fzN+N>$jDnA%5h=j{UWdS7>+$&-PMQ@J{JE)h z>IbYdwDn7p%Fh%JY~GkrB@CDB@+(b>Rq{6!v+WW}vRSnxQ_BE9SiA^iF1SD%+Bga` zV@rwcITg<C8E3nTkPs|7n|Kz{;Uc_50FRB-EEqjAE7nZ5DG<(1${ug5@Zy?|@g~mxvfqA`l>Ol3_pGfG6DJxV+J#kQ1+@ zAcdVA(#df~mpv9H9q{Q~I&XLQ z93{9zId8R4dQ~`&~&k;*r4v&+t-;>{hmtimbBLy5`Kzt{Dk3YYQ@K zo27TZ`(Mfzr84**<#P~uQ7z>`Httj*6W4X^9ZE;}^vG%DkwL+P`>9=P(sYPNh?&1I2xW1nYZJ z)c01R>jaI*F2ZCIf|!$Qe*MX1vpg!5f37sceqJ|Y(%xvRysUU&Vx4Y8*(xDZ%Chs| zykE&E=CL&Z2sWtJlN7mLwT_gL&w>C4_zCLNFJ)04JD>${8Y-im*qzXyK z;L&IFXiP??k`8i6er_>_NeJ;v0%DEKU>`1!*|H%O?_wqK|X*jtkLkxcV^&uoUx% z`lbMiTUm8QvgthNYN;MYMUgYq^uFoZyMMR>M z(mPY}(_7aU_U$xXwR!I2ySu3k>m(z+*hnPgv2TOAeSocC^VAj^=CnI*MiQQ?z7F1i zmtlV>5Q6(QpHDEG<%o*K>%=g@3Fz}J4t7qco>D$8Nu`FBV59P4k7QgmsGje0v1-?x z+}08b$ZeE~_qoB`U`sj?$z(i*bZWIu*_Qi=BB*pmKN1LN2)xex74S1ucLLj~4i@l# z>@4a71LBQ5g}S}&k^@S<)_O#J#DxA5a)Ug#DF7udy<3r**_`&oP0`)z)9795Q&l=C z+=#lQ^Jm&-mS&1Ge*hrDb3voqYHeL;cgq#eNvmS@C%s?LR+n%2Sl7I zgj#@)6eqO!!t(H6V-)FI>Amv>5a-IS-dVoy4eHU2o85hlO=`^<-_KQzJG(PnBvC5)qT{l0~9$Mo}Gpi?am20Tk z4l6q*-^cJwK&q55JX>m=>1gjdZNbcQ(hiR2fFply*HmAr8#rGcFC;sT-R;wY=y`{= z{vA8ODZ4czsq$*0eobL`gYv-s{rd?}oj|+(Ho+V5>Tn)#pYVd0JUR>fgtb~-eg|dn zPNKGV|0OaCKT8DR24PyGC zAdNVjk%-d~5mo~bKSUfIg+cf=;$}jIo?CH@u>^jIi- zO+WBJS{TJfxqe^E1sEwG2o%8YE7v%{VC9<*uq0+9AmKvqpM_>2G9(C(C+7*&aDrzm zec++WdT^Gb@^vuk$h{VSJbm|FDWOaTm3d*gOa@7S#1%+0;2}%pDhC*=e9ZyQ%H=@h zvD966rym!}pf*MFbfYr5T0MM2TY~3=%HDqBiPk5c$dw+;ef!(F$Amo=#M9tO@JE3M z)O!j2>xNHvemZ{XrLR2yyyxgqtQ#eSb%CJq{x5_O{drK^BBbcgbH01%yd&e!1LLTt z=fXS3U#k4Gq`$E1@~%ttXQ3x5-wq7mC^&*ou4ouZZ62-!7A`=Wys{QaYtE6evjG$B zleS0;Sw{x!W{iQ9ysOt{VT}GX`eGF7niBF*xJBs@Aw!=#QEh(W9`FZn1tG0z zs4s^+dK;L{{|TSgGDzG2{|es38ken~D}V_JAX=8Ug>xoMp|~-m>B4B1J=hsTuECxag!gnx~>WIWsLxq7zEHzw+q}xwL z+n~J#S66FvJe{3R4!3j{qT{Ijg4I{>Nl$7bTHiNb5SM6(M4+HCmu(ar9u7QM3a|NKxX3|X<3Cr zEr;~bJn!Ox%xZG78a}Qg&i^jww}NX@mD@?>yB{O) zp6>Hu8(v9Ha5zG9Snlg6JNcs^0~@a zF8#TnrKt3)sB}~)UC3v1ITW7rNP~oV9K14s@zmj-I;?#Ygqz?4O8@|{RQVf9RlbG4 ze<-Z#x~ThW-4}JK!nLpHPxvZA>k!oLN_;=e^MsyA3+--V#N!==TUdgEsQFraNuDtJ zdv|!MD`;h$xtQB9lISzgVaB)sNiNnk)skx+x@bX>^7_kY{Ac=S5=s)^x&Kf(;OX0Y z$t9Klr1LtLHqd7XFuhlQbbnt*Y3%O1C$cfG-tA1{^Ec2gT%?NzfhO9MMtq9~i+QKL z;xC7^6Ecj)i^WkRDQRZIyd~a#QAPpsd^tj%W=&*~>yXy83Up9xe#wq`n+Y@gM^zo(5|N z4R4|fSYSmJnC=7HUa*36q{X-ZH|4Cb`xm*$HE{`jF(MNQykFlLl`$)d1Nh z!J={jf`FGnyt_7I@E8JcGh8@!Z>>##0KW@ACcIIQ@Vk{;E4PBpAcmit5i~?x297{A zs?mmhVq;WL3$n3$T-k%O;uHVkO(eX&M8X&D<@w%lNO*>_t1_8Y+3b8KGyiJZ@5^L- z{&at2AR6tDMEaxAfk-I3CZAu(W*74LHCY0mUhqF;82%j5qCnJp3?9-@@EE8GxcS(v z;oIQWt%#Ki;5FNh-F+JYP@WhxgV%)Kry!_{M*)Ba0NJr)1@K6v2MG=~=(aML#{FN)fFoA#9SHT}^^hyOI zHK3Eadcngg0H7K`G;&M8hCK3mE~%IiBdTW>1acU+#Ix{!;CZz@p9S0!9>Xl0KXzXN zenkeyj$Hw7Kej=Lc5zN}I}F0#<0$u!#5Kf#5Xn^Eg*nn)+jAhyPz&3vAw>m);ZARt zC4b$<;EwA%BEC7WF5G+h&=Yu_MqDFk5@y+3Gvi+eO)<< z7z}vY$}rmQvpZ#6CO*a3HH=Da4(k2P*g!a2j+In!-Vx6Px;OdzT8&C`tIOZ#(K+;$ z-Lo6~!k&Zb_dyjtT+=u}k~EDR2%P~>U3dNUKmESud*9Q5eh{oYQ~4!`RxSpI!P$b$ z_ku41J^T~)1@y{v+TLM}S;zwgKg2f+KZ+qAf&0N%;WPNI=O1Cn-H76AMT(DN$X-5nTlNb`8r_I59g-wc<;LS_y3MwfU7_R*CPuEeL7yhrAJXVGI+o$0GeX&K zBhPl2+)ZdtD0|rG>U7yzRHVH9Dh#Nubu_QJv^kZCq~UwphHxgAN## z7QLQhoh2s>MCKwU&S>DQ{sBKKXNKP=UM9C-T93Pg-rRKAJpBD}H_C(RSD=@88nu=T zmE|d6=Hr1KSDJ2iZ-w5o&t|^#B_YpG;g5+5xn4YnLdbR5LGz(cXs;*NpKYF*F`td{ z+zmU47g38^2!gDIxF`8lvS@7OIfqJXrdglfOy|NVp|Q}c*8oRK117D(6%8nh12p;) z2?#ZR1O5WI$xZK%b%ZWQtuDRR%5uEHN*7~Rw^nCkS>6DDUm9Ta8aKvj(&*hatViKC z;z^`gB*H4hv6?@t;kNd6VFnStLA*_-YHvJLNCOxRe4|*bNvf0h3(`Ivwqbn3pm^$X zTe8hYdbFuTOP9%`iuJ+HXpc|Nx3z}U{=S${_80J3;vI53Zdq?*(S<^f%C0Sk!yU9! z8S8=1_O)t#v4mIcDDkLe9dIAAp68DL%{|RJy)0+z+8*jC_{1zBUMf_=NG91WQ12G5VOV~_)p_f%5yZ90LAwo@3kmz!yWR_!$GGS7L3xmze+>Y+wIL5Y<#PIx z{1$TS>ebAF145q7l{eAt;NKR`3!+ST_0WnB^PR4-yD7$Kv#a%#bkDw^U2WH?+ted&X!^jPfsqjq;9QAk>ndX>RRTiyKX)&2UQ*BR3&EtJB-+U)`j ztEzf@dW{L;5jO?qG7a|v&qNcxoK0Bb!C5V8I`Lw}?cK=yzdBNOR$hPdNz}J7RR{VV{4hj)Np;J+ze5mXwI7Z6eGWn7)tPsnMv%SL9<*cT z>j)yN&b|9HY>#2$2>d6Z7QCf694+uyl(}uenC`4B47;Q@Bgatf%9&srDp7(zAs!<4 z5}L*mLXp){yFC~-lyYtGCr+7OtJX<+q!DL8@D~IRo+TcI590l5x#REQmGQy2c)f14 zA3ST5C0zA;b0cGTS6HUHK=`WHAj)BN)4Q(_Bsq@F~l|v(1wfJHV+8I?jYJtb+{kqvPnH z8W#77beuj%Gqg@^p<6{dv>jTr&R{S)rUg2_0G}dWCqLDQr3J1a5$RZ$a_MM|iqix| zLTIajQK^k;V_uX9MJ5mq(~3lz+?Ytq7OBy>u1Jk0;tkS@@HkiaS_uvtV?&X+Qy4`m zz&SKpyD`Kt%9bGO)My+=9+CQykC?Y~C_`zjT&ZhOhmsnFQYX@?C%^fBQ-?_P1&lJy zn_U{6gN|?}Wio`mYg}|#WTI0UP6@bMRH2ku$2UKVA^s8A;8u&6C<9i5~{ zoe0Ox!;)s5TGkFb$FnMLON3YE#y8SiqDF(&f-wFPMVZHthtd+(b*GB7+(}mCW7wXaHp1QwnqSbsNt;^HSTr;uJ5u?V6L=bPHw%>?ct0}TX zi1fa5a(WxrvK~jT0((>1#!NQTTX&>&dS?;6wiD@XRNrQjhw6QDBh7p3-E-I#h}G%- z4WiqAJl)OMkE1+OLtoCeHBr8y3BO4F-^c=@K5!!SC)dJeK0a?!Bt?biSw@)%vM#Lf zja*%QqDCUVkk%hXd<9SB>*Vzw$Keg{Wd)7=UZV^x*Np8A#VbEY>aZK$3S~s??)YOU zox*8S_%)8x1vHOf5LX%Gd?a3EfT!F~k%Olk=^vxMW0Sn{l44cK%)qn44_#6D;YAmz zLm?%|Uvv@T?rns_ig4huF<$`)SLDd@ly$S_4O zpmYhRZ8%*)enE@V3Zk~I^Cfr~ukp6vG1Wqb$rLgIr4-k=2kL}VjUM+zZn8#%N6*OV z9h39J=rK67tDIhU!T8ATQhMD*Z+^L_=gZyQzua>FsoT%ldjGC1=caqlom+k5f!@Bu zbMrSG=oKXf4qf*wJyz+*8^+4r6tK}gz zJoVT$DkM6nJoc6*B;flSV)7P@PmA%tQGK11;j~WRU)XI97ZH96rENkT8Ag~R0zzx? z9`xy>eB!Axz)}XYd^u7%I{a3Tt6_;Ls6nyU;t`dAq5q4CAC?(P7be@&m$#SCosB7 z09AfeQnRXcazRCEQ%cGeo$0=~r}9+Shq_fEQJMwJtwE?=XmdD(YDctW3V_5a>7gk~ zU|FFA)V)&hb9=G!{HLxy6ZFN);Z|S*2|t<`d-JA)A37?GI293wQ!qw`5YjP}z67VO zSfAQZ`e}F<-n)>hokvo;t6sXicY#L?>mc?s^(8mhX$tv1J+Y3LYpDy)07gnnU3kX$ zhMVL-Az!P!=-e;g2BmP5AcVE53lD$gR+Ivz-Z}Y?!n0xNzD@i%FWa}aZ;m=699HGz zdsZF1Osa8ckx*1c`QEvMmrAu34IUjt6h49}wqTibAhO-?R)O-2K#9;X;IkgZO`nB& z8(|I#!pvu;b~U9;M91C0{#vNz@C;u(dOPMrW67eDb_}txb^#WRtU7lUY-kgm(WK zJGaa7i(yrW0D`B3pF(yUK~(d?vft+U4vNB7jA(7JU@9g{)0dJ1vooJqJG!T{cy<4YXHAYsc<&qrm z0Nb(uTCw5BAJK%sZ_$t;Yv8mR*68W+pc;En-G4%L+Xct2?!NFV zC#8n`3Zf<;ti}dShU^iQyKdw<=s{nk$5923ApLHz?@Z-Ufh3f8U9^Avz6ErtIOVZ{ zCK};cjh3%fVyka(3dcIn@BC;p$)W@uh-N+EuG3tn^aT2Vx<((OX)U4&_fnN-Pez7V zyU=SjS1Nk>o5@*Zb7x^M(Sy9=8~AiRm$1G-dR*Vqy!#d$PtuJ|-Aq@#`>DLpM3=6) zw@I(`L*QE{lL|S4q{0f81@H>-W#>d<>!;}xnr@5y_wvQxDNTxP^2(p(o1zCM1z9bu z{noLoP7si$@`cuYtwKZn70fD;i>mw{xUOoJlju#coPI?tQ>DRHUi^Qt^W!CU&j;Im zc78`oY2D@@4|K=3E=?o~gMHs| z%YS!D)aEjehLbZrBQ8O5pxOs@XdcUecjA)b5FW*gdPVXL^I{D<4!>JYE%eSV4J&>U zig(TaTv_fnU%q-|Y|E;?^~KE{i8;Fm9If2gzA(6|SJmRbJ(t_@?u&Ae1G_FbG+P=z z-L76g*t4xI7JjWZ^VtXf0RE2GR`Z4630pE5)J)A+2#D=PovtjCYL!H<)7TgdAGbOD zluDKx^+E}t0O_!3O%f?*3+ydhACf<~{|l22qg-zFT7u#JFD-T*?vfz>lq?nWC?raw zr9C}xQ_th#ilWz%OhV#KJ`ESTG%n}&E+1jqc-sS#o6uIjC`^P)TgoYZ&2-l)9kl3Z zyT&J>B*j);B38x?d9~D6fWODFEa?J;sa)A9@#XQ^b%Q%IYg%)Y8erpe zUZX2lEEkMgTB|Ur#uihl)JTBlPt|l3bK^?G8ou3U|YYby(QQCyyal+u#*;~#<6t~IIy!Lh#n+pny=YygAuotICzqowY& z_j@$k!m$ps#y->0a`{8&kL%JquHUl|jAl7YKHL~LS5xpk`rK#3%HOWQWKa!e7{99-J>k4?buedZJX$>>=Bu}!yM zKe{+1+$YmleT8@h@yaf@Z@v>Y9W8X3%P&!D;=0d|~g(%$s;{$MGTzd$b0iHke(>XXr>#V^CTRT8GA9 zD_Dz+K_7I;6OG~=?4A7;;0(0OdL~K5!dVB6i1LO8+gl?F_!l|yJpZh|gzd~d}2V z)rVg{@_O4T)Zx1H%DV6XcwDB zui<=rIG{5YTHAk%J>NUX^F5Dav=jXv^`3t37NA64Pv7A6D43u0LI@NqZZC4U-*e`d zrs_Vg?+a@>4s}2&%r5&pgS9t3aZev9TJrCZC8z3^%s2YIf)AN-SxwrhwHq>hv6$BNJ=zwrn}Y`X^boqiN=1)F zJ7(!IU7NozRJ~0-{YeJK4eP=DE7gu#3Sep$cCYI9E{Ue7*C-Eub6zYkm(M(KIn1w-@ zJru7c#g<>*c2@9dNosi?HExa$d#Wo5=9LExCI#u#y7l^EyC*2sxvY0;O**aIGh=pe zs$h(Z7{G`9G^ZSpY}!|LsH1v~c{t=%heyxb)U&oHXFrG>y_J%alebI?qh+rnoqPsy zt0tU?9!e1NN+(=D6b1Lb_eLV!$-z)M7VmpNy@5M>RsVXvcPq4Djp%ui{Yecxl&#WpX^;fa>?Q^R1d{+ zeBa_l89q4_;**(SUbA+7^;IbJ8q>0~xx(i0*h7>3y}QaiR3z1y&}vAk4pFL^ zlSwt^$PZ?Js61kz6>wRGJd&XeiOj?zk*(j`?rstp!t54quR#(@u4qFpTeld@0wc1J zYdQc@_MERXq%-LpDz{m1WFD{Hq;ClYhmuYv$Z{$PEN<7>N=a^DV#w^G6v%r;dDrxG zKf@=A2NprRWOi6-E*sl@=OVuAun(RCUMA$iSv-KOpWC^-#h1f$aCBq%2@WStJ9EyP z`hqgB{oWNa z23jhGE#n(n=!d9#;pz@s-%uy(!0j<%9T*$3$8!=mqEsIHx@2@;8A@TQo%NZOO3SQk z?)+785-kVO6YS@EntE zDaRbKuX9P(8K4cZkz#q*Y>S%JnVpQ*$z3oVD+G*OKIZC7SF5#O8L$F_SXF2b?i;QYHp zi7nJ6a4Tu5OW+bg0wSJc7`{VE84Abh$k$OGvM=hdkYnv8A?hQtfebPPJbZUfp};j+b8nw7}S zH~Nw>rz`Dd{4IWCEI^wrsCC{(+&zVQKx7RRO$R8RDxg2q#rF+>Ud_L9&#C`R6(+t0 z2ylhEDE*zZsBl((W)$e1sg6P!(s(P1kc0s$K2Wn~^hH=Lh9e;gxVn2)mHTC2BLFgK z<$egp9ao;F+I!cUjk|6hymMipr$^_~yNmYKy`^nengi+skDhbsOY4b-TkT}vA6UP3 zfmxhhx!>*%h`M)pD~23^5d;y}uOhnsf_3j-)&0bk#NBvBJh^iG%a!%@tVb$;Twcy9 z)bTfj@f=tYv|U^&`5~ADzadRnpZ^Ds`|{9Dd<#}iw)&879=>TgZnTK3-jA?JNfTa) z&Nt8Lb9^(hLc_bbk##Tz);{G_nUoTmHks54qyI`h=P)5CJj@vw2Wwy*W6IbXl$X`2 zYzA*%m@}B10+={{#)*JCQv*m4D)KQjqVtxMy)-q!U8m4L^M4zaWXagyK@MHZXepTvy{< z1DV5=J%;+#2N7kAU~iOgX28lYdWQ0$uK<1X;EnJySy!OHWBq__lN|iBHrlw$o0nAh zB2d}~;vg)Hgx+I{KlFU!RR&1o=GRAZ=oG2pmXm%@IQ19 ziZ{ZL>@#2eD)`Fax({VNuKROId;SYeczOl@6pWy)L+)-4zi7rg;Wjm=C8Ne)*^vnA>0r)nP?@O}1q$?9B87xA-j#7OMz5bS8T=-D){{)AW4kF$ zj$(a}rK7YEYSkIS?#H|ixin0DG(VtL<r)X~x@WcP)137qW|EgFWNNG(!t|jW=GDV*a6AxssV0?Czu# zm)@+ig+?-6Yew}_4uU2jQ)Yqu<7}!dl!gw|y=Q6@^0ic;k&mv@E}L%)D#6G;LPn2A}wg_UuEm4mIk3||Dn z*QaQ+$Ah?eH%IznH%gx<6bs2>S%O0QYR($;X$U`d)TB*7EpVkeSAA#3`OIc2rgW;A}UMQ60xJ12@mAHIeb zr!J5hIr4>pu_MFnndA1%`PP|T>`$*TvwM4cX7`(~E3*r!2}5e85H(WCraUe3UcZU` z1*FcwXE#7Y={2tm+$A)6{lTQaHgS`jKvEdka0d8sUWy_P-4``fP?$FDJR;LfwG)~PH zxnX#hdJTIP?i$LJiEUTQ0V69`1V2PX3AXF>2T1;ug}0ywRd{R|FVQKZH=LAkXEgw+ z_$d6UzeVftH@F6i{5356Jv&8kUuy=jBRu0T%y`wVMe+=}%dX9g*!#j#^yLk1dS0P) z&5nJ5QzG}wR^)^ceVOAbsTF>?qctIVG(+8VOTv| zS}8GcQ>2Ft@2<>TTPa_1r-pIfcGNI>!_(^zw1v`ll~G@4BuFZkySEeWw4&yxT>!*}l`uchAF&^y0g(twH+!6I$ro(Iomb zv==<~M2gQNNutPx5_#vnR7bQ(ZjdIevktOLm z^C)%$>Wy#SoYOo$VdiY}x+b5%=UskG;>d!#<2s*d=UT)wcxXa?@jm;=AXEo3wO#ck zazD@Lu!8EuFEK2=+8-XkrUI6THtf0W{0#_ID1JM3?wyLfxw)u2hRNGzI z+GN&Vdv{H1(-{zKtRyC?SP;!B6bew}Mn0Rs&n+y?AL;M8@V3eDTmo`-wsz%&<_T{s z8Nq)Hy7zZ6aWlu+%Nm|{8RzXsjl)OA_r7u=sV6zkCXU~uV;lW{&x4;M8*h|suAOVE zvVhNboH+vCj(%N<^Z-Ow_!80sy_@tCXop%`>njAeFkMq;LH$rCwm@Ick_RHj5U<33 zB>=Fr)wW}%MRnZYj>eiAqy>%%X#8u4`p!+%fa?73iWTuwkW^p014=^Z%{79fgOtU6LNu6hqb-<=9%v6x+MVFgpWh2Me_`i zun_!RQ@o@gQrktPx2tPDpmffX_1}?uoXU<-YuYNenATynNvpJw?y6*nFh#Y#CMnvmYt|Rm6K>gND{-Syt=>EMnPx0W{p*-?v&UA4ekHp)G z2G53nPdAb7ilTlhSWwkZDOw;fqXfN>N5sJIpZ=-2Pff7LRXw9hs5`L7p|oeWmUa)i z+jI*=)woX)^uW*UM}lsOny*0UMGvHwEdDnR7}Gm?$MuHA1x<|S?cJ{-ulJmze7)+h}G4uE; zsmW3_Yi?Zx2M!+F&c-&ZKn+=eaEldyK;~>HOKb|L3*jdI$2MinftDLzi!7(Q-xnofC+dazlKurbrfmjE0qlle;^_La^Z$mV2a=$i5G~K z$KRp21Rle8$+-)@yq9>1*!|QE(A3bmjAb^$4P-WQ?M-!3FoIa#5f`s$WJDL$^ciah1U&9Q|he)etPXHi!b z`glAv6DUsmG_D2s#oh3WqxNz{+JGj%g&fF#`!}Qle({4!xafQ5`lND3B;)NK79^vQ zO@f$hU2^?fo=@5m68`^4GSy$+1T5c@yc70xd*VWZH}acshcyyC$8o;4#u7soFK)Fj z$xY2AiLVAbHm#$ryTk+RA84lmp8CH)Le|l#k2m9IWk?f?I-0iZHsP6XOWH0tTgypZ zg+gne-zx7T?mKCO*RI&KTbLvPQRpnxhYl`VB5UxNr_gTKg_eq$FSD|ytZ~x`3Z&cZqnm=rH<;trNcX+GYSm3VN zVZ{&zUVyvEHg*j@PvUau=MX1-lkU*@-T6wjl8JX7xS=E9DtHIjK0k(o%d=G?Typx@Xnn;!+|zwD zp6|{^qoXz|=Lt>cKQ&qKlsrQkLW!$c&T=wmUILdux&qC9hUV6UniPpA&EAsltuE9u zK3k&KZE~zuGF^kCm7>=csRVTX1yxTXG1=iOz!I@kNS__f#X@5de~;74I^E`u&PI*X z@4=6;C!yDz5ZxIoYQjMl1izOq5_2j)Zx5=|J zJ-ahLb?76bx%u~8dyF>)e#xYIR5VU2)Yv+%v=1uH6BC4mrq; zP?6@$OL!FgjEgAC8Yj|dpbQlu^B@e-yk2(G2BGRHhA1|iYeFux4Q*^2c1^5@kgv-q zgR)4aS9O&!zsYX`q(NaZ1K{ZmdmL;?!&>@d@m?vus?<|ODt^$=JM7_ZLMBWKixC4Z z_}f@Epk=L9C8!KLN;ce*yD(3ZKgVl_`W#7{QR!uan&lHiospbR+c#JpHb;$E?))4{ z{ukD_zvM{R3^e>L>Xj3NU6H(3QyGFQS3};sZ=* zlu@fWGhI}s+~e`YszGaDsju4KJDQB;R@8$<9c{K%aIC)&iAQ>4?tnjJO{B}oz=(m$ zM53cfqzPZd^5{fTNT$&1Nm~to)*3DL7nyiQ@6g+stjz4z`Lc{#@3g6KrGX+zaIf5v zrH=1>99Xn8qrFR}Ncy|{Moj7?|D zihb){GP3@umK{?%T^|dM2gdeR_Qu0@&X@Zmq>$@K>k@IJFr1k&6wY?y1|+LEPiEfg zA$?|?V^pUO(e{ARjLX^KV)eQl zt*GC;^5s1=cg7Bdh+?-3*!O;I1@8Lc`Nghv4{JmxjCfZP6`gRgcvfnQM9T^PJx&>j zs(KjhWD1gpI8iFM{-acUzKggzxj&_9<2tL->|+P@74h@g05 z%Cyc2$HfC>g<%q$+aM=UyJN%HoFDd@N)9mSiCcRZr$3agrl$6#Lbl+V>{H5;qnk}v zxx#dxRcTc0B~BCb32zlF88Y@ESD5W%Y>v>!db>0f2Ih5sSNM{r%acPl9_+UNE#b(J z^=EYI^3=e|3wrFS^NJd;SN*u&48E#T)gRTx0-^OpxeKoH7jTzYwCXIf1*tPibeetV zsCSS@g|s6&^9^TeTb<*}VmMaI$}J8kF@Yd%h*}ydXnT#5m`LtOcG7mG!`Q)gM{u={ zS3ukf9B@SxTtQm6gBUHKX_3y(m~#0?A;t7==?7`8R%W&^{c(k!sM4eDQtnFa`Gh;- zoXT>nxnnY{GTQ>~*v{Bi?D;@Ai+1%z+y!YGE$pR z1|YK%VI!jLwpSB4fg3sDqPyWUTS<5*1KHevv>MuGqb-q?J0hi|(X>0#y6vn-=hp5? z?MoSj7vA@yrkw;`m--a{D#58CB>)@FYk8XeZ%=g zpfdZeVy0s{Q#Bcre^;&C^sxS<{H79NQYKxjV=;>RyMu}OJ_u)V)K%~o@I-7-_x16o zvLy=z#1uAX7ogK31kx}Sv=?&kChn=PCw;E2U@0)n5{goB*uc^Uq@SgW1M{UMB$h@d z?$evq_B%Tg+$vZbllVYiuY2vX3@1n5&GF!7Hbj0?S5783s7z)VB_(AedsLrMJPMeg#l6FA@{aeG7lH%( z=+2~$h93oo_Tf>S&=Q?}wm{IB$<6QWxoWj2_->D)l_t45m@?LWqmO{ZdArIqI}yQS zfu5Kp8%a)d6rG8&4*5K1FL&@}RX?X6InX(@93EN~cSM9?W1`oC>7l`FTGj=uy58C7 zRODg?PeMfe5_lF`xdDFW24Wjw#2x$@JvLjvAwO-QO2q?=Kh%-*d!>|)R5}=cU+C-d zqC071;_P@iy?4+a(fQZ~yP`}$L@8~u# z4kg|h3r%FSDxbXm{+L=|ExT381TR;}?Pj(=sIw3f!P~)phsgoawEI8B9*56LzV=cM z{t0^u;lfaJ@Ec+69uBgdjvW+E;N&^YE{)e!lF`@J8<l!=)%p17N-|L( zajRPEP{Vnvy3bIb!prG!uZeN4)2n;>u3XAQ+y<>lT|=83O)SV z#Rw}T1jGb_*wgUY-+aCb?Q9Sss7KF`fJMI^fYf3LfqxWIOQXu?4Y`KA{U3lEoex61(CaKqW?QDppv5JyPy*Xfg2K>p zbXaXu%fS{7sKevOqz;ogV3sDMYIr6}T0tt63fgXGoc%6?-5^&eabG&1)iGwZ&PZvr zJ_lQk7~<~qP7rPPN}uys&5S{dyQ6BSwtIDbN2ObDjc6-HV`pjUJ%g14dpompQw6*-u!4rqg&2|P0S3` zmy0WTtG&^6uYogXy^XsUn9#F4}CSIRIQ{TcF2#o90aAo*{*__ z@mZLFoY86RY8k|xu;eU8$gcg|v{PpfX|D@LdheU49Y0{V8LX_?Mwx%{{ZSclPE)QO(FekPN9^DN8f3 zS?(i(DqpvQ4{f5|RiX&ug>OLwF=b4vu{LMm&5bGQSsf5N2U6FY6k`O*YKjs22vVm6 zMIHSp>R1uy$%C&g{3ztj89r~mqqcoCGB%NSY$VWG7OTB_Y%(~IB!UT;Nk=G2iAf>N z-Di*Eq0?$Vs;vWiCID5u#r~2dUeNjEYL%wLVbMh#+$m(_j02NmJ|7NEx=S6`du%i& z4h8Ldq7mwQP^O3lhG|Vlz`zzuuI4sda{)|icJ2$iNGZu#Mo7H}>d1LWeFvhRAUOKZ zDH8c9YUR#ggvvddF>esvk=NNY4hxJ%dUW0_G?UMvuj!uZPefwe8&T2Y)0VNO57oT)bM6~Je^{BH1S zzQLp)vxa9Xk}EB*&IW^Ju`&AT>EiO&`{- z*tfpK3t|+ZDnU;yC2O@SAJZ6!74mtn`ui7u zbW~9EJ3hO!@5lg#gT{qkq>M08&TL2b14GovdPL*pD3l@!(J8~M^tn?goCHFSMBnY z3}(N@7?E3a8k<@U0kE&)@_@wY{+L9c-_Dm-QX2IqH$rD|;>o~T6e z#LBku#BIcNyZBzbLurEy?)dBK-eWWdZ-Y z-6MF@(t_A{o09xCY>t(GpRU0O@G-Jf~R=$6K~ zyQo6dnT3#!RVDP(3N>ZO+bo7c+1tKp_a@@e!XHVclMP(;6V~alq|2pry=7S4K+^z9 zOMwtAa*lUt(y-;kwB%$!1j6RgtiB%I~8lu{e zGPR5;e}z<^qK7rob4Qj{(t z>R3&_62tUdnksh-y2!~SFGNTz{_kwZqD zQcqJ>Ft9+4h85cHkHa|w#v%o(9yTsL;Td)g`wGS5cQl56^f5tFng?Mlx>vR8mv7#` zJDskcYvbC6bj)EFl?xBP``zB)LtN|*E3a^*-ED<9W_RDpj(W4&3F@!4k0FFq{#}M0 zW^%Zn@3wnCfy6~umG%N(E){r|&6)jy4U;ZExd$!vG$>34pR6}OuckDGuf;+1WquZl zEtQ5N{tkyG4>T9nS9O@-z6=cl0Bebh%uw>)EO48V&MGijst=-nXR{NCKy{V9Sy+|{ z>#cX4QG!zWf45C!hIE*rH5dcNc9Vo*;Ly34f7t8`(HgGv<52S8c)Y`ei6&fFU%%WU1fBA)c9>9L12w{yip z`u1Q+>E#5hXfNUJ^k4b^E-u~8TdZ9D=y!m*)vad3i{OL6^sovRjV|7@O#0%*!}{DY z7iJ%r4l78hDlL31+oi8UP{>jFmjUiOS&Sm_v9-H3UrB{XjK5+ejV9X&^gAl&lRiig zCfA(t^Vo(tF&Z-j5l5U0^nnN627eO(d@%ALM8Y5)Kg_ms@B%rJ4=ulM&oWY`HpWY> z+8=W~-%XBjP*Ld+qz%mLHi(L$T9R;O)4P~1kRC_y;Qmk!JlLAr*{gLb%Ai%DfA#uf zbZnU$+H?+at<&@|i+CiFe3R2!mZtvKlY(0FTu~k*s-hd2EA*W)%vR2wz|sbqH{24m z*US4WP!K)v;6WjbSG+i_mfm8qy}}4zP{=l~2uCX0O%sxZFI8IZxOO=x_D31SY3x{q zxO~*u{*tfjYVj=;d|R)6(SsQr>Sgv=hk~wRqz=^cz>gk0aRRNxVq~7H*O{wHdr}Gq ze>@6bHPl;wKx*u|uYlkDb!V&7RK-raN1)b78#R1 zw#!E$CHKZ*_z||L+wE$gfTTMK=-x{~sPISrXTKUZq2huYl^Ff*ZYh#b2Jc8A0=E0m zxb;q#a`3n=9ze*E&1UVTTs~ z4l6gf>tAj^L9&Q~vKyKd`X~E_UIuLoACSMi<2^c?{DpvIo*hqw_u=Q;9*1SAXS?;S zK66X2alS0AM$$A&tasw|shFn?M%hwh zd7y`ApQ%`gAeH~?hwal_(5Kb<2mY}HoC3CoUQmZ zP+B@Ah>Q0W0b}CVsJd)>-^uaEtkCvYr5}msEXm?7HFJtJ(HTN^cSWP{U)>BHOKYyZ4U8r{g^l%#hH@F$Qo09qv@XYZ*NvIV@1s2ch=hGAQ2JFF^$*EedR8JJDdFTtx*AEQp`pLY7&dj{a?jfAm)b`=3&jU+IgK$6FcOlXbCFFQ{_igFZdYv z9Zy%s0EheHcDsyLSlTg=XS*mEDt>T%eUr6lzbG>;oN1thqTS(>ctcLh1(CkFHrg>W zrA`kdeaT}BhHH*V6B~X~ei7;7z(kU+Ng9;)eg0G;fdbZYP3W0@mGAK-1Dhd5|~Wb zQsK~po3)-^*362xFf7(*HgbJ)&ukzI)1TjDfxq$aHY2_Y^fWeb#6zcS3%T-s)f0}a zhv?8|8eK>rda}UE;8CaIm{>gl1YuWaB!sDf zsPUVq_#K5XFXAN>urK5Yzl$}6(4Yb=t_I2H{HFcYY<(1JboldR%zQ^GtKY(00WVC$ zFIT8IfiC>}Oq|y&(EW1!rEKeu(#J@4Z#T7EosTqFGMgU^X)-K&)}@htHORE3Zr#iB zAn+zB)|9DFU53tEccm(02H@2Y@ET=VID6DFS3hGz`n~T;LeoGm54pP58ul~t@%H!0 zvzhGdhxiv|pJd+`$Tc_~?(>T+ekYa&zUex04H|kQ)B~Lo?pDTBKSDiohiQduN$!`l-*EA z;}XLLYMiBU(^cSz=>DVdob=pKr9OfXg5hdR5w(=&$n%>>2X7K!ymLHTQjfeyHECqkFIgm=#hJQ#-ohiEyv9nB3hF}! z(QyN&2^<4Lg;?Dwo^&f=9hzE0mkMk2!8VeF;rf>gUyeK9J9*zw`)IEXz9d?^!dzn6 zaZtm!xU*zi4pmD?rPAe?spwt$ro}zRDT6{99)aOKQzjD=Lmb{#;YqNDvQ5SBrE>kh zHJ(U*(50|PRbvr&mW}csT3H=^{L(~rWItQ+k;ov*!GO7yiFur8krkPX6e=C)K9puOzW9c_dF7kvvsYx+y9 zMB#P~bYT%WcN?j)OivrC2Ds%#^zmTnzuRjseM>H=qd#ACe6r0@^bWC)(tQ=K@Wc`k zzEAs<5$?b^7d6Znh5I2!hJz98ZZn2WADX~$7yWSR6t++4c)Ite43U0t1kn$lbJ02w z(hwa2LIAXuV&nDj5v6_G-Dam(dJ%6M?-O7jc*ZS&)c7wq7VInb2R!47Z(f{@$bDRp zN#J>0nEM49+b|9JYZUVkC#nqdAS=rR^RP#?L$(Kox^cLPs=7%u5pkbL7z(Lez%MGG zu{wox3~!6ah|k6Exo^(`@uwiP;Cm&~<|Z8^8L%yO?*!DziVhnm;*%P&ZtVZ-wt zTLuIk1BC>)trWb+RPtU!4LJ?jHLlARsT&W=R=MwpoFh&-S4n1w*Bb`n@SG=UyKp1eNeiNsU?y0ZD$b`)!3}Y%V7#eL$YbCgR&Rt z?7Qt6P6u>Xn+0U!s+F1zw*3cs0bBk|-=QENx7@(4&0U?=M&s4{n$xNoC;RCu-AZ|k z!q_AFuxM1O17K;TcnXdThvbl0_w2dQ%(zKI7Chg4G9^+LK z3b0C9z$A5xEx0SWQ+o)~RrvetagZ4G0& z@nvV~*X5}AO}aN3NGO1M!E(M_sYbAnd{VQ~GP38oQYTc7$^v`kiI{@0XIDi~K~h6B z)fV7+f6Spj6K6mw7LCn;j6hC`emo+=?ie2{gjR@VqEs@O#%8t|AS#_wrQT$^5hAPA ze7@Xd2J#mckICkAIam*tR;%7ECSqUwgQ?E=Ed)2$=QO44mZ z(oNHCV%iSU?fio=G_1pmQ#5RYlT|frqMH^q>;j|N6$JACOBnxOVn2%OkNICBcaV1n zD&>$zeKGwh_bol=y7G|s^1t+cUB1+Lfneu3zP5Qy|Gs(Kjg&U}OYgalgYac!nD4r5 zI&IpEZ|2-7r6CHvC{YmSRFWi!dQ6fm)0=vPcnP!nF1f~MSL;6{<$ITy`@W;r^PEk@ zNd)m7LZ9e~U4ZWSsPG2_6-4V=2;uqOd=YNL8_YN{sV&FBYoh`a(h@U?cj8Md7g6_7zdhnNDP|*!BK*>caIb+AKGkti|Yf zJ>YXX?=6QbnN8`mI-~3AbU5JhZL~dZ%_biD1#A(2`SQt(EE~j5eO^{Ixar4t*dLK$ z5#iDjQj+5%W1}>b)KnFJ%ge0HEiF!uPL6T0aIiDeGSaowH8s|jS66sAxw$%8+uOX{ zJw0BZUfzEMgr35F_NX6v)+1-*_c_>Za@+NGr_0_#ifP?W&)bXsQU;Lk+Y9PXG!zVE zbkx+iq=c0ClUFdxZK(3JiBp5)^^V^^P~N5mIB+<(4Nn8Jery?Vc~tA!0-1C8h@$DXNRT{Matd zd*q10U)d%YZ`b~wS4{sCJir^!TVIIA zW~J%Ix)OM%k#(mW zV?J%Pg2e`Xx=WL+)DIaYf@b3&T{~zQS{Z$4ILZ-9eLIWrmPHh1(n2g1WSOn)cKb~Q zB>7Dnij76n_S4fJiRIqq)x2rF5MqqPT%m^dwmewT6;M=P@ti0nw(DZ&d&MgPv8;xm z_I}sOJF$%oSZ|qKl+Ix$xibtQDDZBJNa*T2zDew zqxYd5)CMtWM(fwNt3&@{R`legCkhSFnZOOxnau7`lP>Miv*9+GuU@OGSe)li@^a!1 zk%?nA%&W# z3C&j`HO8Sa&LA^pzZ0WUp{7hPn1ekoNLfVN%&ngjP2dgYgExq3$4jZzY$-iPsZRkG z1K{9ufn@p4EA+>T?Q0D?PtzAymboXZX$F_hVVNMru)fiq=@9_oErF1I=P0D_W> zrG_g>@Y5nrv9sQ(>{4wGU*D!2$%j_YF9ld9bsTyfz%D`*n)nsqGZI+Vf3V;tMoc2a+9G|3x^*xlq*x! zDPbw=8`;GPNc}4ON3O$SJc&ZiQe+d7m^xY-sDin?@~k~MCrhr>f~{e9 z{5;5~X+s6EzS}Vzj{=$>=k|)f3r9s;tsbXhTl-4j^zLP%9oA&p8Tj_-RP3*&-W2;_ z>+$H7F`QPksYqYytDR+R)Lt$txsGqbPbsz?u2x$D3K}EEeOlJrv>7uXn?uFa0^W7o zns->eHkS^izxbBiV?JHRkgiHpmtd*Mw55?TX^QU@945frnm zGo?b(a#UQ*0TZ5FXC(Q8sz!IVS(dI(=#l!gLFb_ZU;C)6_N|>!xN;)7L5} zi(t)o)uJY%D#ohcG~AleRSWA{I!9I2)>WKUj5j??Yr)=Mo&!dNZ^C#<^nQ9^c}Ni8 z-wcu4UEI(+KWne-MUo$G zBwV`BUt@<4`hs;;N!Rhp1$*v)ywc?sIl3G%DOQofoZG#(aT%nt=+=oUK`2D`am9^y zWr~}{h-*4tG(pv1^blqI!DuEkv?tS>Bs2JCf+#b|I>F`CtIe!7!R8bgE$=2W@WMXA z1ZqZglRA{s#jqenT2#T_b!PKj+7PzqBTEprrZqcqL` zZ=XA0pen;`-n{FBx8k9oMFMx$kN8F#eo2L{q5kMywd_K(xaUG;-bvUifP5+=USyYzNSi;&hq=f;#6Pi#!O3;(I2kWa0wB&N?b_qu3kCf*ruoj z;e-$Vh4uBWr%7yheA(7A=kFWJ5f8g_9vtAPA0mV?fJtTxkA4fKdJBh-0$eA6*^Cni z0RgSnM+Tep@oIN>XQ*}uM@PlT%+yd@U*}}+czdZaIt z?lj!+YbFbb8 zqAkO#H%_ludNK`D;&SBK?Ay0t!&1&V7j&+7y;R# z9pQj=?Y)g_j}w|*Y=L6Q*-GDg>ezCuRnReQg4p1o^In`%85Ck?E-cN?@KYZr*&-@Jn5#p*rDM5MRJr|I@?gw>sSnJP4A76kx_s3^ak||6Pz8K9& zvMvTq%aDeEVo*|%mwa$~2ZMFPBD=n&dSF-IQEQ*NwDxA&ceL!vT@JkSg^ByX%fGVb+;Vju zMY^vnU4__f;e&d;x?_>vf95_>bzez)pSL`X=3Yhi1l3bUGRdcOsxwPVRwfmrsE#Tk zSecfEyVTDkh)3YP#lI0_+WSk;pBbvJlL^u9D^{kuZh%2=mpJdxlnwHS?qB8?q3rR7 zZ=kPgN+0#7>(h!UF`2MLL*ht`mh&)UCgAtAmnW=4)BlsQM9@u5O=r3`YpPG)3H!nM zB`-?=r-p_OCAW%Th_G#Zn-C7?CtG~V9A{%gc28Mpne^bY1`0f8O!0q^e~c5jLbQ{J zQLB9h(m2P4Vk}|{)lQTIk@gHum8Xdjp2JE#BXTJJv4hR%kd7%uxTLnv8$q?4C!tZt zVMbd79SG4z?!#$1yGIg}@Wha!elakIXkC+%-uf3>gowB>H%(Yey zx9`}dYMa8d@9Ux5JmPc{(Md))Vs;b#wzt(sFH7LE;#f-KY*Gze=&)XzZfZZ*?!dLM zqEFqoMbbL9UNUfcfK#>K-B7lQ6F(oZw~uOCp(l1*jUrt)YynoeiFcrG9AB&xt=%KK zVRq1L++V2bg7n>5yk-CwISvfVM^+d39hq{E@!7|4ZHudpT8BJ5(+nrtU1EW!4a-v} z&XWs<(N;|l^$mU{(Qjv59#c2>+`rvs^4sCQA>6b*q=HaCTuDL0ZuS8Xko4r^JNVcW0%R(oQC+blJo08>-?9JJ038B|V z`%o)~CUzIn9HR<;;Jwny9JMNs=Bp0TAkc@)pW01V5ea0Bzwcl#aJPaiwzT{8dHemGjApz z_4*P9kMPaPTkf)O7`X4hJ=dS=RAm|TMf-!o=$G73IwxVOW(N+(j;q$K0dF{cr|~_m zJ5ufz&6_?;`(R?4u~c`GRNMT=g5HN|7VUl+=p*>3zG(`nad*{Sq;#^0%bPsum0ctU&WJ=??Dk>+-Ok8#yDCwU#_D@^NfZ1M^yPNZ~#eRV(o-bDYz%l4c`Af9luBV@W0!0{x(#~u;EsE-fS-XkW2q7*@nPzX@8 z4raEF=4=+^qW&FDty~D*^j8>wGXvK(3*$43^gbI#&RPi7VL&z2E82?nxb4sxs&`fK zw@A9~F4-4I;x+CMq;fLxuS}ZTm*JA0T14Csf1HDKE|6Qa;FgY^hicd4I1<|^%DguR z=*rJ0-k||>re_-N@c{DEOK^9JUD|f@nRljL;+G2)_ZH{C!#fWjLB09Zdlw%i5YX+; z=Usq*QT~qQUAt$-?%qqD_pmJW;QlV6)3Ii%;t{8l?`N24IVUeL(V--<1ZtEaLje{ny6ECi&4W>Oz>Fv(W8kiU!7jC3WMQAESrbj0rXm ze}u8><`Y>E`Jjp!@b19A98W%!LFyGhoMT+%CC*6QA;`BJyvZ#T>4i;@j^o~qJAWBl zoK&&ivyVN_a6GAUX}irawTtRCWPeEXTme7t1dLr0$1G2u)@AnD#>uB_G_)Z9?zhEX zURG9T!=sCt!u;wP>3j|$!r<=j93h9nn4!~1ewb8I@Ub$nzeuD>D@aqtFQPh8U1r@I znYbC-h412yqG#6%AH_P}to;c6x_f5*#=-x<6JW9w0-C6%VX+~MVY!(16s`t{gbmI< z`&i9bG&y7UTC)cu)9=G)0gNo4De?0iZ=m;dQ67cMseWEqp1eZQPa4efT%vZW*@426 zeL`sY(qSg%(#}K5#n495=0De!*rQ7R8qJ)U*}0tRSUX*SCG#N4n%wjw>-t+XN;FAL1*Dh3blKnDKA&ha(R4cMCL9LAXrTj2K$xj-PXFfM3Ocw2poCE=j{g zx)g^CPCc>2`0}%TxE2W70YkzSf7j9zX$M$UHRc{zZG;njIxHb}c(H$!<^`$#80s*K zfe8Af%OY=+zB4x0fqU9wY`NlI0UGoA>}ik(0Ur8%>JS(KqWVlvSm{1^-e0{@ykWg@ zyrI1@{Bj|4&EBA{M2GYWz|2puPt;F1Pu!=VJTUna#uNJ!;uAe@H%#~R6U@Ggw#1jzCfUAL_6v{`>k+ z>OWNd7xZa1Tl~-S_Oh;1gUv}K1Ylji@dRdEp~KpW9?Xf#nxm&8g_^Tr)C!959FwId6F0}%heXuVXc5YrM5WENZyl}lR;Yj#PT0`lW zlI2KgVGm3B-&ExoGVG{i<1?MfV1#mPvKO^z5 zIO6*dd(Zo&d@e*cE8o@wSK%fHIgT6XI%on<&!s(OFFRy!|M)~0q;5a**RSUSm3LIA z3!}zHZ>x^}2h%H;PZ`hDNpMO}SX#yXSB)YyCOheJztja|#+8TK+F9ACE&S{Q+{JpF zt}zfs*N~hb+=`PID0E=jC79tl=hWA)s7ts@3Jo~!IJf75*Y?c@A1|q=^xvL=>_o>`O*h!f;gNW27SJkMhqD~FQD=){F zx+@WR;$)E!tqZ_+CuG57PL`Z^WYWesmM)UlBmOjes?`e{c!SWeX=mbttw1A~m^vBG z&e$}dnu{L(;@i=k^AVjQO^q7&86?ZS6U%~MG0mZ18M(+6R!DoCmV=7NE`6{v>yK=& z<f_7fwnM^YG@;%Q{l($34y;!qkpb;OGs91RG&uqjKRi!l= zykPG9j9jpd8u5O|cilY$d{;9qG036_!f|tjUhC27!gW8BcveMg0$-gO>v46A;%U&r zjB*rFr8gR9SEeG=E3l7F-Y}HflK0g44Rou;xRka!tq)!>*p47{Aak5#&^yt!OjWrB zcdTvfUPSMhJF>E65KM+`;&$#Jxdy#ly$po+&vMm`8)2!MasF3t#Z(kvGbVKj;=YV{!=}2j`x3(@AG~0yba#*#P2*Ytu$MXx+45GJK zCR|lS$)R|7Tb{#S^S%wtE!JHFAI5I3o?PrLRJDia#2+so8T81LO;TSbDux`YLE+gJhHRXzIeBZSaKj zT*43qZkk{Z@XKIRtu;IUbiD;;wpy@8{>J2NZ{bjtzb7snX%((EvmNTj+A6%e2@I~^0h_e0RV@1V*cH1LMJ(RSMB^?S2Nuony4-3J*zaMksAkPmg>4~WJw(JH#f z{8PKgb&w++qglI|J{GLvz8k&N_b$(VV$6^^?px#0dkwXenc^k5>KvjGvE#8mPn--m z`(`6_`lthHFgf|Nb1&`;Y*epOa%dKKrz#-tL<<=GRV8%E&N;NL3KJ8tgGhB|f^cKssUw;|bs3s{@Kye& zo%6D|GkC^U|1?F997|sRcx|e;nS=WLbOEkhuvybt{Gc$rY!j)K-z^gO;Ik0KsG%by z>0GV65s;&?T}@-zdxHplcvXtBR|-c=UMSP~Fcx+Fds@#1v~B&{;4lw9F!{KMr#)f} z8hdg_%aF;=dxd%b2vE92QcT1r{S&C6-t0HDi>`*tz35%`s@7>BHuL8sxx*&yGdfv* ztjuGq%{!AhqC$$g0@}u*&zj}uze~4iqs#_5=13bWv^7^|+m4EMZMKN2h6hcz^A~Wg zm+mBke+f%S!YGhYMYBXKmFg6sOK`5^fao$)e1HdY=4z9ysLP8B`%+J~7yop$%?z?v z2Y0mNl6dFBJ1D^`m*V6iHLMM+qUhU?tNa$@R`yCq7#HQei;4bYRfdto@T&qU%MUN$ zfJA(=nM@EZmsd`Jp9(9J6!~vf*ZdqGSC8LGJ47Te>!ms%jOuA^w~Rc zlgb3glaEt6K^MyAFqQmMSL(yW-@BF#<)KK2Rhl@KVKXU7r=F9I#x9Am1DG=ov!+{V zP8hKm((r`WMc)3<{%7(q-Ztgi6>bm7v0^ubIk7%|JK*lG_M>x%XTT#iR^p1uOR_#T zu!wU&64*E^7$VpH-8qvIKrY4rw&w;@|5gxjkW&*v@KWmM6z*q>=oA|V7Y!Y^t<~N7u|SYx$~Kb*o)7x8V{p z)s$N*{r5ysM@%mD6vwh%wMAj+ygf4HVo{j&zLub{c=*0mN&ZB#GzX~U3hK6R&sjJ% zz7OX!N#>g~gI_p&$&!2#(qk0VJCVjXqVXAY^r@=BF0{KtD7>%gHmU8NbAz9Cz;}BH zlH>GJq{y~W%4|5dbbCmW<66r{G~-z~woYx&I#+FJ0Gyb_z06Nr;LQAahj|~de=o|# z%Fn%LA-#|Etpk_qo%bBOfe(=0dxhT1_%(`p?o!|F-fh4XVS~g$-=&3k2e2``hqluZ zEv98gY8j1%Q$&d|9Ur_$*5LBbl-ZQuGd=%$u?x>RnPZLpWu%V!$Q5jB79#o+K>0F# z`qfSL$90&cz1w3zGm*3ZXT;+e^>9uHE>tuW4bp1kE@)^0eCo}(QUtQvZe0Ng9LZIXJMe*N!yp% zl0nFS`@zKuvjJbg7$)aPQ2HrT6|`Bi$(rw(Y>r(Wz0l2)M+KRi=Lw>-0*j#nwHm#B3EHz9u?)_2!lG%ShI@xB!(erwZ7Q0lpDv~Z~cX;+! z@m#jDfSfMhAd#kcug@mn7%X?9IS{U5PAQcuHRT~AiA&$1U^7Z2W?{*sE~u0iiTK|#z)wzx{KETrMP@(0{VO}+h_pE* zxN!W`hhX>3iRL_x)oB1wp8Jx@Pf>tgpwLD{(OzBjT$_><+oG6h)P7T`DcL;YSQ@)o zW^ovU(jyir>xEaQ*v(ipaco z!q_h+h85ls#bj!n)(g|R~=O*_bwq7hS5S&O2lZbG+N zKjqnJ5IE^RiJ^7FzLvpr_USFyF`+1n1f5Vakv)MJb$TSBsgJ-lck2K~z$KLQ= zNp6z+Pzanb{`3!BP0n$$DPGHV7XW%D$bBA_?*Q+le%Se1eQd|RrS_=44);7AZDWAb z8LT=H4Jp4*U--6md?w-G4ke%=IMGH{R(e|WuYvD2wDM~LZwqsw6A4K+GU{nSkO;?K ze5udP=n?=5?I=bFHd{%i&f^E!6m9WD`hL>sA6V)}akAw0f(U9g6(yUl5KX{u@vd83 z^Q%g+j7pBVo#U#;lLXgQ7ik#$sk5SSu8q5sG`^QcVg7e+!#F|lP%OtoWU+ORD5ghj zv-KDF22Fz)t}2%4fDp8$7}zp)HI5p3d`W7=9-`Z;deJ6kPgW$&=4KW{5Ag1`&s&iu z(+7C5QDL_$g_AmuazoI3IR;f5>0nYH2&U6534j$*8vNs&+s) zA(@lh@!9_KWDp&;(}w)PXs}-;_q|b$nvvCnzn7@YKl+vo6o$OJ*ze>pEo3)M9iuUt zp5%Y0)oiR4Qp#0z5dZj7eW4<_R5dMSRb^_l-RbM>4)wI~Mts)4r#A+#U57e0t3tB_ zGb8ao4$;5}x^dS1ZXKkjq;}o@AigO7%5eq*R#D#Z9mO=%irwJ>-ag$9wn0 zQ>&djbkzVU96BMj3JqqOZ5tE)Y{>{W2f#1WgY-v-;dPEUD% zZkpgQ^A7M8sUdq*#b+#LY~+u~fyI6H<-e(6asCc7dYX^dW#TD;`8Migh zYM#yuh{sFG9RnvPT_{H{yN0YGKP(nF<-+YiEtk@vL$`n2apr^_2}@>*>MW*FVrEL2 z_~@acZ(+)a)bKo4^NEx9+;M$;5}|Jz&wcmAPn;L;409=Jr@y_z{~xIAkwtg z18>)Qh*OJkDiQ1OM-r;u)#$i@B%ZkLTo+1r9-35Llt>qarGZ+<;C<7LX! zjpAkE^^%{~jq+JLLL}pfkgfe5RpqV63_lYfd5s(S0`K@U(7K;UYj#+7y$;e%TMRE1 zd6<5n4%gvK5U&Gym|(yG+d*3p@9|TyWxxT+!CD-T2YFa_zyZ}^T?9|<=P+Qv0m@-r z7;o+W-Ro96gkR}^Y^D7VN3Cv1r_ur6YJCvLtaiwy(gE5^dl<*cv_5Z2KDEBYJmyCQ z9$~wi9mZe!DNblbn->L@MP>~A5#d~JpB^SEgwSs|Lf_Ei zdo1=Cgg=<~7{orx<9dunK$JI_#D1c>3M6}WSkICF>G$(I$s-`n8xH^fT$#zET$oLp z&4wS;^rs&2@o+|D0IfbA;i^DBlBC28{)@^4e10Y6j{<%#GJY>Y;=JR0tjk{!Om%$>14% z9419iov-#y=sJ+ZLHUWUI%sX=}FnsBpC9)pIss6cW{5QLsZWnD0^+fyO zK0`l~Kg;dC%5_V2lRj5Z;7;%`*)iG~ZKiwR-a_A!-_lRKPPO%ZE}!n!*5s6V6wU>j zB%7iw6D`fk@ylF`SN$z!425RN`&$6Ms@x)VxK+e)BrbWo=bfZM0xP``2 zv@8Sg1_#T;UfGrS2b|+k!`|aRp)aqghD-6pb#*;F&W&F6d->F7e4fFpE=s$rU$8Mx z-pfn#%iAknWMwB`PrOVNUdcQet-zm=gijD^_8vdZN&RTKqBw%SJU!y<7v&J@0_*s~ zxoP}$gjQRmeJ{Qz>J9U7Vr1$qf!+4%;`!A!8I15rVNAlf052=dRETM-qf|&S(l1se z@;zraw1~BSW3pB-{29AGR6QXSExzjP=+I9(NnbjgDH&~lXu`JbM%o7>Iy7Tybr_wM zzAf$45vl4`_xB!FAxJ_m^DD0$4K`63X=5EWGO7utJKr7uoGZj4E|&e#NG)^J7zJ5f z<&tv)_y(vFgwoc$Ni2M`MjBo*WMIUBuXob+5Vf9QPQx@03uWmi7v5?pwPD(Gf}2~s zYYPX|qHa@Q#Iz@W{JH63$JYti>9_d6B7k8fOgOJ`s`0<0euTGzEELcrSq zS3p@!lHVksXsKP~@iD03t>)dUybYudZ{EATg?f`5Rx|Q*qw3bu6yJngnxz>`r7ok8 zPx$uxcg}n=$5FoAJKsw(^Q{Mvr~w3ZDQRGJ`~mO;Zhr0RlyfK~6Hl%Uu&I6Mtin52 zf6-Ho@hT|3i!`?}$d<^Iz8@Vf?11}-?Q5X`mmb?Vqh-|vGhaRsd1Jh^o}q*bvOuabewS5o!=tn%p7~2Kc*iUMyfneT zC6W8X6c{4|g6yKbtPH*_8muKxNqh^&yNN*xIs3I~ce)+1QVmeiP;wl$^2O1_c{0HwYhk_C zB*DxQJD;-NxT5|y7Y zc8WbidePseKiTiHMTZ!y^xUQV18}ZlU5z$=bs3_Td-as0ox_o&+pSf++P46DjV3`E zyFwW48J@oEYOzbgqPa9Zn@l6%7hs6$#QJ-CG=u=iM^;uxUB0B^UV-LzfLW^O2#-nRbp~)|WsSt9!wmV84b!8>~5hXthQNhPr zo2~HB@}dt#dK`qMQJ_KHV;xVyW% z`@w>{I~?5M=f3y5Rex1i@9gaCOxM)xRPR*x^Aws$uKUHr6BAmQ0va^ifAg=pEQDJa zPEOc(H)-OUwQERFKn`2MFSG62&Nt0bE_0tjV$$UE$(j`?96#C}D`|cAN#u&Nnt(50 zPa18Mvnr}^k&H|cJEkRgC5UHDc!XA{^*awF=jP7%3*P zO9g99Q59)4WF_LLez;v19*@Ni?67Y%Mp62H4L54S)ldRKEOsn0{&NNduoTgbch8d`8vQ&ghTG&G~()ac#^ z7Br{iL;jFNk$Yr ze+$gCRQ1%3)o80?_b8&QwaH~UstH55pqrO1fBQJ*hd3h zKi16%&9Ee=_}OWs)S)})O^9+*y1;wls!#4l_$@PvsgXh@>RT&+q!rIIDn(|ULYzF` ziEL$W>=GJT@!6ALCepiPVU~F2ojdFB92OZm8ZBNj%oko!}_(uGZI0c8^Tr zP|JX%HebYl>8~*R(}H-Q*v8DE4I!|@Cx+*NTCS?b6ciCCkht0IW7O*p4?%bumfAB?0*Cx5; z1*E`#m0{sjhm6J_XL=A>>+<#V_^PYCbMOJ-#nGjWL?p&Bo+Q_AM!JXF5e0aU(esd5}_?<`H~&@_P)CA7JDpR%Bo2qjVGsT>lsXs zXbi_%3)g4lm9n&?{R~0Yllyl80X6KgiV^$j_ISGN?1uxNEAO>`l{ax!1FlXany;H* zsn-8of?xzxlgSKp6J?Z&1oFhXTt8~K3K8_kElr3q&)Nn$*~o<=JQ&YKgN=F~_f@3Yoenl2OI-0QQ$s&4UN4(Dkibb?Ks)q*jTlqZe0Dt~{>#Y@(+yajgk; zYTCB~)=_ZJh`k0k>6os#mc4fZfc5Y@=R3Xv^zVyup6p$sUR8^Krtbc90)${L{Te^y zG#)PlxISzmgr!KWf}448)^bq_$RQ;xhV!N25$vfNPyB?Izc8ltzxTR~gN>+BPrx~s__Ow_9*e{X}t;?Nne&5g) z=xC?!XxH&-c5`)ibCm^OXl<=?^tO-pw_9xsaA+o`PQA1cS9r47njo1knr;l^Yz%+u zw;YM|9~UGrqAO5i4fsRnIIm~cLpGk!k55rKr(Ct+V*++|ws4`o2<*o=DJ|NDI~P#B z8>nz?n3NZcDJ^`4J2w3vpnkA@bKuLy7o1mGjn-Ae{R@cn6+}v3rnNO)J4e@^iB5p& z1%TP{GAP{>w_{hmf4Y+}hCe3HY%$*qEyqk7JYJ8FvKkNq6z{(nW|}fxAa?)Cc!|?- zV{LjKN4Ryjfl&QG>DI~Bf7%JFcd5pIXDv=f613Y68-2;h-Nm>4coDGMj_E6a)_=Q> zI`^QK($(C1+lgIt31s%R4L6k#RwN%V|6?y5_}%gQX{-*6x*NXE zHjiDfSv~3~DPBL)XG5HhZFg`8lPMs++yG5KgC~~9Kz(QZL@Q+=iaG3tIV{}(3~`*xzuCWM0g91$Rp0WtrM4rib$) z6v&S|^~0=>CoAGGhs}^U8@o{qC`I#LtJEZMzJiOS`I4zvEC7YuO2VXrnU6RF(@vnT zbFQfV&qTdnQLm?rlFg8osb_B5!5uMSA3|PNy+>CsU@=$PfSD<{cMUnvod)?}kU1sY zkeMmu|979Bq$jsGmp!X%vT@d*|9B;xMZ$g$ih0u^$UnXV^ zI?x@XoTk^fNwT7}A!NfHqw|K&fK5Kn^}>JBi@5WK;}%ryH^(2g@x5kEH$aa)WwcBjX(0Rk&kz83ElNIpc?|58VJZ9B<*A({d!CP@u z`pDUy(bb;ZHpT-h?Vf`JJl~OyN?e$o6VXVxR#wiOdGN)Q83yl-X<--pO(C;BbJylhq z>bhvjZN%Lo&R71AezH9g3Zk#swfqykg;k-_nZaVZF=j1t{P0o!LYcweb0c=2X6|C2`Mg41pB#YLw@CvAAIBQ5@y-zi+`;~lN^S%*Wt;Z>p7 znZelJIOXmW1Km>&5i8)!x%-9tk3s1Saj%MU&lLO9Z%qQ^CS0s&B0DW!Ol(iwd?U;K zR16+)ioSh?7N|lvfzEnP5GdZ z%ZTekNJLArzyy9K^}XH9ZTtkWo2u!5Ru-o}7duC~P1q$P(iHR@6&ShsO3|O?a|I*@ z1gNj&s||fK`bhDPo+0^_9Bq{7ReaQHKErI;Ma{raqy4O5HKOLfN-@PH{ z&}dV%SuJt5HR!RbSEV&k^kd&rEd*udxI{Ya@cKlRf{XlzQhCJ=SF{oHJ-kEZR<{om zgFJn?Hr<$|mL-evOJ=;hj)IUrNxxT*@HaCS#;;xxhzzkB)ulsZ9~L}I2(7|E40h{$ zB?n(8H>S!}P={BeUlZDL=8B#*?()K|=dA4VIu(TFYO)BV8HD9s4U~%i;k-rt767i>fO_O+1B*} zQ%j77rZwbeQ-RO^m!<-z@}^*`#MlIfz9l6@PEP7wbAEpAO6ofuNHn5trw&=KGOT79 z1j&JB2zMQyi@r;-xM6?rOKxWwcs0o9?NZT}er?EYvuW~?i+RUhJfCQ|YPT*Qn@l0S&)bk7# zu&FMBXrO4^lXucbx2{e0sGP-Of%!Pc4KBt37psAbYq#Wq zTk?pH%J7l>a!YZ$!nrHLxkG^>`@PweenPS^z9&$=Cvd(eknW$7_Pbg+;(oNiigwt@0sbJaRtHyzG z+q1?2i@@P->hPV4{O_!3-K+`z(p!0xET!jSHhH=?wp6pk_vMLtsSlk4oSk zj+ida{Az|HE4pW1oDL^^t<{hP5H!=IU$V>p4$J+2!-8i=w+hkSXwrZQGiRmdE+}pm z3@iL_z$(%7(_ZOMBgN(FyUjF<=Zuo_CuPlVG|g|M8d@QNdcmArIg{nn2XGDU*eh#( zoYf-fH|CE2V+eSb|9{Nkj)6Pul}?{t;n!M4*89Xf2SPFdVVM9(dMp1K0~B#x%x!mf zYDVl}N77596PCjDOJszi(M3>7^GgK5)0}^nQIy)?3Y>@p>!-{ZvTs=RN4$DL3_WtV zewmC=e7XoOX?~d?c)s(`GKxzZ+?f;6l7-OHu~yBTPt9C?uiRo_rW^!cCaMcB^qCXy z(lPRX4_s>IP;2J?SIgDRT^SUc`K8H0GiAal@uCzo016tQ|4(B^IuRTlvD?j9Y~@M! zigEcxWFa!PLFzb>o?-)`a5E7Yd2w}|SXz!S>}Hl{0?ccHk$=U;t;z5#nDCB?m}do< zXL$??*m{4x^!zdlh`aZX13{8yB8v0EM>e2EI-%kn)Bo2f)u6!JpujQDRpPSAQCMm? zFi{SICKFYO7rMX+>X(HOo(k2`oKCL%r3u4R?Ya7rh9@prQdIoFfo8xfISdrSn&IFZ z>fGZMa+sMuAofgc4SJ}Vkn)OnR4_VJIng17o4n}yo7w%5c}l*3TM*ns;*oM+TotPS z#~H5aW8SOtxz?Nz$v}$F<{s<5nM`=W~+<99%~~Fg~fQEof|9$|u*zHwqUg-5JY*06;18<4+VY zi@)TLqR=;T7S09v61-*h(-3XQ;B|hwID%KNpd2*!*tj`+3SDbngqQ5UV1{aON8wQ^ z9a(h$DZVoo+u)Vhj1JXh096OXa?jyqjc7usFfb%$>}lUXKCWLGN`0LT-dz_Y^o%4X z$ovrJJ94>faHgzv()hdjff$d)&CAXDe1wa9!b^lUO=!;wN*=lk-mLob%%tM5KQraHUPiC^55GSdMN_hwNoKG zV?MtACU~(Aym0f;JcdX0=+3nn5mql!#9M^ExhQIj5Y?;fGhZpff3b^gcAj+ROlRDI z;Ly5wOT0|7&%{R2EvzeT^%Hf5sDrAxw*GsrkNC?TS`)h?bP6JO+ZD2- zcZ^j@BCuG{p(QayvG|(4BXC$*9icVAXEfK5rmL-+*?SB5SduWSyea+Nx5Pnc^%lAs zn#svKQYuG9{gau%r+Tk8V1dYwOYqxFmeEL?ldwQzEHixz9F&~x?Q{*aZlr|MtSeoJH`={5R{Jr1p38HY*Lto8D+(|xD@ib2o#Wdh!6)hzVF zbnO^idY$W#7}@P-t-reh2aI$A2U}1huJ9@bI5fft-J-?MdN`K+PivrKdhfLZ&zm7v zZG+Ca0?)a|z!gi*WM^%6OV0I6&Zo7frnRRBHK&~YA*05NzyOql;kH#6Lduw^W<)~U z&%+6N&J7Ri4o&M0o+V~?`cByz!|Nr_bc6oA+GoxgaTegezOn^|CB^joO=ZvdSv>~J zYN3TLwU&kV?6Px9i*~gY#=fF7V?AGMd;k-MQSJIO7R9ky$hkKL0CUrbEjYD7Bk;UI zoGl%tiAS5I&ehzvDib!I6>Y5mWP0i-IC4ljD%-U5_ed~lTzBE{x96b9^OqYFsKX1S zU;55FNe?*k6Q;bWs!8kxvl`?QP*Wh<%=us4n65R*vS-_O^WHxo4Ka)fczC?b?Jb;zZaj+;Hwlbf_v#QS=Mzuxp=Ox5o<$y9(S=hDEv ziOoySE`h*Wx*+B>-D)==^QF@0DY^8yA=wgHxD~k-5THn79lS2jzd8zx=L05Hy3|rf zxdQ9)H~bdTk%&4a^S*W5WcUU3SwT7Q_qUF~?P6A#2L>_ZIl?Y-Nw$p5oF{@!%Q-u~ zQ`;t{>;UgQ?q_?@&7xUankyK7Ts}E{iCLkes8(ekEF}`Ke2}6SU~P}BokOKV$lwCW z)1{>HtOI$5Ihx#tsyKk?vv#mTD>__NLH&%Y;T^j6>8X4k!mB}V14CNvjmwo9oP>~gM z;jg_>$Q|+-DBS1kMYULM#HV?9h3lma;n^7PJ`Q358zxmcN=&I}eF4-{pCxXVg&5wftYw7Wh^yRqJ)W5E( zjYfh|pnMfBW@YQ5iPG))H3L(E_v($yM9KYI7Vj@KL`Gev7S;GoR%z#HdCjJ+mH1Lt zX|riNm82HfPengDDU7H?uwq&)NOm!(e(nr(IAsWB#D-!PA0wJA;{e@4IQc)f$3hf& zo+&waGr(u`^IoRAque0B8TS;v>2e>v_7dl!Vz417a*h)gdqNnXJgPe z2-CxE2hJ-4I|J-b_1ME82qq_S3rFLhgpvD%x}ap9f&sDkyHna_Ax_Nt@t`tGKpZS} z6TK`Jz1RKIPk$a)@&%q$%f9WGc5~jT=e)Ca=!agNvii8URm(o?A9wL=y8Xz;f1EW= zDk_~#R85Pw?cQ1C!b+zYEF#GsG~52+MVuX4ekJCGZj<2Cyi@*2s}o+mdukW=+>X9E z{IDJVVfy0`|Iu^EQeOF-rd)vHV=nxoH20OBM#y`=xa5_dR!HpR((9GDI~3_`v+@-I#r zZd&RfCyCuo$}}gQT|qLfg^Xt5S2)e=0J;U~pWg_ivS+c#d<9_y@ub1*aU!e*v6SM! zLeOW=PQINsZWKhVn8O0+I5G8pMdQZr2DiAFhu&EfyJ%IrSR`XNNO-nI|FKdC`lpzzGw(&5|oJ}QvUrng#9<{Z*&Qq(KxY?(~@YdAHz-)A;$%BTDewH z84DKa(cJN5(R;k*jtilDN&^6zlXyl=&1C1+)gjrkR?}$Ga`;q#0ee+ zCS6HG`HUKQ&)}Blr6k_!ZZZt9hTSR)F)T2>)eTHeVq9JkN3h62wT((WcaGs%zWt)& zU~=mY*}Disu22ZK-XE&r35hUy*Cbkv6HKb+U;{(ur#2-q!K>(vS8 zdXCS)VznlqRUOcHz5W*BNuPw|`yUhmws)d!4rc}dhhns5HTFr{NyZmr69+Sf0v+zx zyJYqODfJ_j!&Z@WNM*IN)|qwUyACd|J;Kz!vXl1k`3BBKtksi?GFq40Y|*x__N-Vu zlTTGD#p^j1<@f7*#4+x@>4Nvb9#m{5<=Q#jE!sO?^57TnH#%+0r9)S0g( zedHrbJIJ_gTKRJQrj>k75ik7P6t*w_9{LcmwlPfToQon<%x6soGEgLJoV%$y&j8s^ zKf1tUxhqB}^ST0q_bXbK;eZDx4%`<3H)@f1A`_59t<<{sEDD*qNuwcFyM53&*& z#klH4khF@$g7HKE!(!WdV3y07fc_(mfrMn-A-P$*O5}kBVqpM#D7XYTiJit^M$6)#?%gu=mQDxz~Z0D^6WrqI~1Ea3D58K(1Ihl_yLL~$Z=0jjSY-3{)nP`i2_S*K(x%>8axNV7G)sTcJn9WX4IdslO zBQV_#{-XZ_OrAAd?nX$$>B?nk(@%Jh zT4Bn^vz>EN2&z5(r@!CHE?p)?JWbR#RL+|6T~6K3Z=;w7}uE$R%vIXhIwK5Ryg zAms)=D!2i z8rW9GqSjR@%hsY?P5q2ZNbpUcF;Ec0&WN~yP6$mR~+{#wmaTl z0oCBZGO-9##ZRCtlX*+D2 zqv?tB2J8RpDw69;P_S2>G!GkH)()_23|sM|@0SK5)i#AliH-&Nj?je|sz&C|cxnue zpHuAd%m_nB0j6S=d3UQb*W-$0lf+f5X6xJ>;nxZdj1h9HCWznajyB5+aZGb z@wpL)x2QiYM7ZxKUP633>RVXCIxWZW4ETn}X5fq=nWI_pwzjJ3^i}6=QJP0H+n4J3nM_IGdb+i- zZBdl>u8P`a@lE@9{*DlVP*JwlcDKxdFFrW=dG!tR19X&qL-Lp%sL(`)U}Y9?+$+^i zv2?_L=w<8*Q{7j>ybWZOaWZo^(>60Z{CUW7NNBY*0?GhAgWA4)Xs!;S5AmVBxs%Z3 ziO=QVv+kc31Guo+v)|GfmFXf~B(H zt|7@~?gy{9*%8Kij^}NV-VFTnSa_;H^au;j_u{?Vj3h_LAB-TAR@TM6=e0y_M~MrN zw>xvp-W7k6*^P)E$jY7Va_`M6Nd5}8YsmExy?Y1kRab!@k!gmaiaeciwXXo%I1Mp54VO6${l*NF&kQ-o3?ESg zby@@4ZU-@J2bXLI{Q!ok219OcL2x~OLqPxY17i+-Vi1ach_zyXpkkQPdJy$&NRVg% zooJXQV-Qwnh+}O4ur^G_KZx|1v*k5_>ov^uDu(O9@<%b!IE@uyEZ2)RPpK@&vMgWR zGS}rKPmdtSkRV?&E!SNuPjw{+xRNi*o9oz?r|pqr=8-S|{GG~uME-lYQe^z?B5Nvr zGIouT+7PWKO1YVAMUr!k&B8F;G6JEQvh{*5@zL2z7)3~*U31f6>55sbr><$d0dkPn zFMk*}Dl8~}B=RkXR_eEl!SUisE$!j^;|jKMjhc`X`=~zm;@Aa=r-uF2f84SciAMEO z4?w5oYv62@q zMOI&Y${o^C!9GlZnj%vEJD7dZ1HoPY#+CDLtpQ4-_%_BRbMEdRZ^!ZZ=&5yWM6seL zP127=ehox-`MrXlpgm%E9a32v_;C%9$U4mdwnasTYLENVX6Uq-o%Eiwk4*kj? z2M5Xe}X1pxT zI<`1eLh0BuoWEGS#mTQeaXP0_y7CT~s<#Q{kGphD9CLBZud#mYRow|Z*GO!Xo&l~}yOy1v$8)7kpoK)1}y>+7BqQSrqX z54rzCvP$~ON_1^~p$97&(Pp*9x~&*19ygW$EzQHsX*P+;VOVZC_77rxIR_Teupi*e z$k3+lqa!*E>H3&9H8qrW&%c#=bRQ(WM}e~Ui_s2?ZbW8*QF>s{GAv^hc0r*gI9DON zKRvqPW;LSWm6V~pare5&QL@TqBu*wX)hb>GFu28fBNxoiyhzbXV23PGYUTjTcMuZ2 zO}!Ay`(iCM5VSl`@P)G`m;yQYnMnJ`%Vtcsx1k#Ro2=;n>!sOdr-^)`YGGt%Eosj( zDq|G;Od)KK5$7O_Tpe0%+Vmt0brPwgFJ0g20Pv(4H}-OQ6sitxXLE$8qqoQd^H7x+ zud~g~H32I>{RGqhe1#3bDyMI?z#|(iFYiKl_%kh=?SXf*o~hcd9xiW&x^~@-RHc(3 z=00JbSEi5M2EKPySjWWid)#6wkFCA$151RAD+u}AZb&{OZwXs5>%4CDuG3NSHkFu% z#X-w9G2fLhwnD-J5+k7l(wf$t3C}6 zyRpyt&6Mvx<(HL+=yvqKBWLj$O~j9(lAk4xjc-@X!Mb8JWGg{Fzl_7i4g4JqI@C4~ zH`fn+b+VmYIxG!l7X{TJa^%Ivi|wqk#UwxaAkM3yopMlTdwG9`o-hNd$k;W8PksRk z^PM9-QS7VF8v|Yb$*pL%o2#D}tv80=&-;85DOuQ_LsNDJSQ*&g@!$H0i#2rY-Q<6U zAVo{sww?zIrpN1v*2+zX@k&yCeo19>PHmv+R9cSD>EO0sxThGpW#dk* zRntjrQtGG3F--js93_gfmTD1N^F=PsCCXNo49=z60$Tl@s1nmFS`w$00@PPR#PwaA z(;+Lr2(2)IWs?o9P18*)a@v-3p9_%R)Emnl_0WO%&=C^X0Ug&7G5NatRi#u)xsCOo zJ~X>RDnS9g37tgim~v+3<&5sg&bU`_^)*Kqi0hGZb7$2nl#Dw*pF7Q%`|mDy7AE&h zr{mfuF_IkymE)IU2ZCZpI5P(vGtsckwg*qIY!a}j&p-@MkSI@Nzi+?if-V1O^%|s% z7x2#VkdT)|?yDr8-xv0r{!`E0$1KN7HzmNKs?XoWYm=4``96hcBSGv%2SLE1lpy9J ztsvo|r6BGifgs7ER@c`>H9-XTTTzgMAhP=&S?sXD7x#b0vBUfq75kVVHR{?gr>`BB z@79w+oRx10M5gzq=ke1vhaX4u^!IZ$1()o%bF5i^WGaNI;C9J%0<^&hdc9v|dNI64 zd+2d$1Dvf5aTgCl)-qNd%q~XX+^J&@5c#7H!K8YJJ4Q{Q(%gz5l^C>)a;$4 zrl60VVx3&_>SESED0;h+E1T^#KTg{>5voU$V@ser=m;DA&Fshz+kA2!%o8|oy`p#c z7tyYxfeYeU>oXab&%G;}3@b~H0wG8`LIdrss_AYA!w$Kpp&qu)7RsnsW7>Pqh8xG{ zD--2L{J8BtEiUSzoDT%4Jrq?WxdQ)689ELq9cUsGI{G$(JKpu|<+jT~rCyUfQPq6K zHz&#M=T+`=z~xY%j*cwUlP7y`#+BSp}bUf zDUNxI9@7TrK#o~X|YZGeUJ$uSEX zCo>CUE>C#p`5X;V4mk=0CpkfISaoVb=7nm6lk~k949iLk>(AO**qUKUn!&1?QS+LC z9GVf0niAAs0L0p%{vNOD@*5k<>ON3`UzHTk&wipcLDm3V#8F)aYpMILxHl_tpO>I; zca^Ne#;^Q51%ig{@UjNVxe2Ow$ugq9xFJuf`aLL z-Tv0XC1?(NOc;@AGl!m^^+37QB1J6q6Vo50=@3e{Fmm-e*bJ>-g)M$`k)v&~oDJ`~ zP#r?J1{BfddFrsU8C~vSVZ}hNgFtuuQX~%+DpDV?-)3T#nB2PC` z2KqBZ&n!Nn+BCGEnWUdB9CP-Yt`ccmX8V1$I$Ld72qFDiq>4k2__MWZ@ynutgS3!z z9hP)GGNA!9!yKIE->1!|zgDo_cTTy0pYOJ76c4U>K{DCF5aHffIsYWSk9lL|&PuRY zDnwx1x@9K1XVUjWvlCF(_`#-(*ti&D#O&JZp*?_!WoqSCVU^EW)BUR7CMpiaeJnX0 zcBe74I&ff~svICTr6DnPl|SY;jv(R)HaiN*;0vimVapUE)EfK+<>2x|6Ik?Xxgwcv z0Dj{wL^M(g7_-6(PqB`^07yT3gzKzTv}rOAENG8v5+vaq{blGGAl+ZD*W8-7NRi{#Z!L-D&B^ZYh~yZy6u%2^@EC~?5Hj0ihx{v>6d_g_9_l(`6- z)=u+cG^$e`()#UNjX%?~;CsLPBcS^bP3JqUCQaG=7bKUB7)$SX^_Rph%Llzb*i7Vk zWAHn3@t5|TO1lsGQ%O2eLn*;HmkFgu5Q-yd-CDi(zzRcu!LRiLAJAzrzh?gzlk`*n Ef5?p+(f|Me diff --git a/ch9-dev/SourceSerif4-Regular.ttf.woff b/ch9-dev/SourceSerif4-Regular.ttf.woff deleted file mode 100644 index 45a5521ab0c77a02ebf55a3f7305faccc02e2894..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103604 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 diff --git a/ch9-dev/ayu.css b/ch9-dev/ayu.css index 50d893e2..f98b3417 100644 --- a/ch9-dev/ayu.css +++ b/ch9-dev/ayu.css @@ -1 +1 @@ - body{background-color:#0f1419;color:#c5c5c5;}h1,h2,h3,h4{color:white;}h1.fqn{border-bottom-color:#5c6773;}h1.fqn a{color:#fff;}h2,h3,h4{border-bottom-color:#5c6773;}h4{border:none;}.in-band{background-color:#0f1419;}.invisible{background:rgba(0,0,0,0);}.docblock code{color:#ffb454;}.code-header{color:#e6e1cf;}.docblock pre>code,pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}.docblock code,.docblock-short code{background-color:#191f26;}pre,.rustdoc.source .example-wrap{color:#e6e1cf;background-color:#191f26;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#14191f;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);}*{scrollbar-color:#5c6773 #24292f;}.sidebar{scrollbar-color:#5c6773 #24292f;}::-webkit-scrollbar-track{background-color:transparent;}::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar::-webkit-scrollbar-track{background-color:transparent;}.sidebar::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar .current,.sidebar a:hover{background-color:transparent;color:#ffb44c;}.source .sidebar{background-color:#14191f;}.sidebar-elems .location{color:#ff7733;}.line-numbers span{color:#5c6773;}.line-numbers .line-highlighted{color:#708090;background-color:rgba(255,236,164,0.06);padding-right:4px;border-right:1px solid #ffb44c;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#5c6773;}.docblock table td,.docblock table th{border-color:#5c6773;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#c5c5c5;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#000 !important;background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.content .item-info::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ffa0a5;}.content span.union,.content a.union{color:#ffa0a5;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#39AFD7;}.content span.primitive,.content a.primitive{color:#ffa0a5;}.content span.traitalias,.content a.traitalias{color:#39AFD7;}.content span.keyword,.content a.keyword{color:#39AFD7;}.content span.externcrate,.content span.mod,.content a.mod{color:#39AFD7;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#ffa0a5;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#39AFD7;}.content span.type,.content a.type,.block a.current.type{color:#39AFD7;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#39AFD7;}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod,.content .fnname{color:#fdd687;}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:#a37acc;}.sidebar a{color:#53b1db;}.sidebar a.current.type{color:#53b1db;}.sidebar a.current.associatedtype{color:#53b1db;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#39AFD7;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#c5c5c5;}.sidebar h2 a,.sidebar h3 a{color:white;}.search-results a{color:#0096cf;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search,.search-input{background-color:#141920;border-color:#424c57;color:#c5c5c5;}.search-input{color:#ffffff;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable,.stab.deprecated,.stab.portability{color:#c5c5c5;background:#314559 !important;border-style:none !important;border-radius:4px;padding:3px 6px 3px 6px;}.stab.portability>code{color:#e6e1cf;background:none;}#help>div{background:#14191f;box-shadow:0px 6px 20px 0px black;border:none;border-radius:4px;}#help span.bottom,#help span.top{border-color:#5c6773;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}.line-numbers :target{background-color:transparent;}pre.rust .number,pre.rust .string{color:#b8cc52;}pre.rust .kw,pre.rust .kw-2,pre.rust .prelude-ty,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .op,pre.rust .lifetime{color:#ff7733;}pre.rust .macro,pre.rust .macro-nonterminal{color:#a37acc;}pre.rust .question-mark{color:#ff9011;}pre.rust .self{color:#36a3d9;font-style:italic;}pre.rust .attribute{color:#e6e1cf;}pre.rust .attribute .ident,pre.rust .attribute .op{color:#e6e1cf;}.example-wrap>pre.line-number{color:#5c67736e;border:none;}a.test-arrow{font-size:100%;color:#788797;border-radius:4px;background-color:rgba(57,175,215,0.09);}a.test-arrow:hover{background-color:rgba(57,175,215,0.368);color:#c5c5c5;}.toggle-label,.code-attribute{color:#999;}:target{background:rgba(255,236,164,0.06);border-right:3px solid rgba(255,180,76,0.85);}pre.compile_fail{border-left:2px solid rgba(255,0,0,.4);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.4);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#39AFD7;}.tooltip::after{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip::before{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}.notable-traits-tooltiptext .notable{border-bottom-color:#5c6773;}#titles>button.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>button:not(.selected){background-color:transparent !important;border:none;}#titles>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>button>div.count{color:#888;}.search-input:focus{}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>button:hover,#titles>button.selected{}.content span.typedef,.content a.typedef,.block a.current.typedef{}.content span.union,.content a.union,.block a.current.union{}pre.rust .lifetime{}.stab.unstable{}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){}.content span.enum,.content a.enum,.block a.current.enum{}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{}.content span.keyword,.content a.keyword,.block a.current.keyword{}pre.rust .comment{}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{}pre.rust .kw{}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{}pre.rust .doccomment{}.stab.deprecated{}.content a.attr,.content a.derive,.content a.macro{}.stab.portability{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}.search-results a:focus span{}a.result-trait:focus{}a.result-traitalias:focus{}a.result-mod:focus,a.result-externcrate:focus{}a.result-mod:focus{}a.result-externcrate:focus{}a.result-enum:focus{}a.result-struct:focus{}a.result-union:focus{}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{}a.result-type:focus{}a.result-associatedtype:focus{}a.result-foreigntype:focus{}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{}a.result-constant:focus,a.result-static:focus{}a.result-primitive:focus{}a.result-keyword:focus{}.sidebar a.current.enum{}.sidebar a.current.struct{}.sidebar a.current.foreigntype{}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{}.sidebar a.current.union{}.sidebar a.current.constant .sidebar a.current.static{}.sidebar a.current.primitive{}.sidebar a.current.externcrate .sidebar a.current.mod{}.sidebar a.current.trait{}.sidebar a.current.traitalias{}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{}.sidebar a.current.keyword{}@media (max-width:700px){.sidebar-menu{background-color:#14191f;border-bottom-color:#5c6773;border-right-color:#5c6773;}.sidebar-elems{background-color:#14191f;border-right-color:#5c6773;}#sidebar-filler{background-color:#14191f;border-bottom-color:#5c6773;}}kbd{color:#c5c5c5;background-color:#314559;border-color:#5c6773;border-bottom-color:#5c6773;box-shadow:inset 0 -1px 0 #5c6773;}#theme-picker,#settings-menu,#help-button{border-color:#5c6773;background-color:#0f1419;color:#fff;}#theme-picker>img,#settings-menu>img{filter:invert(100);}#copy-path{color:#fff;}#copy-path>img{filter:invert(70%);}#copy-path:hover>img{filter:invert(100%);}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#e0e0e0;}#theme-choices{border-color:#5c6773;background-color:#0f1419;}#theme-choices>button:not(:first-child){border-top-color:#5c6773;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(110,110,110,0.33);}@media (max-width:700px){#theme-picker{background:#0f1419;}}.search-results .result-name span.alias{color:#c5c5c5;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#14191f;}#sidebar-toggle:hover{background-color:rgba(70,70,70,0.33);}#source-sidebar{background-color:#14191f;}#source-sidebar>.title{color:#fff;border-bottom-color:#5c6773;}div.files>a:hover,div.name:hover{background-color:#14191f;color:#ffb44c;}div.files>.selected{background-color:#14191f;color:#ffb44c;}.setting-line>.title{border-bottom-color:#5c6773;}input:checked+.slider{background-color:#ffb454 !important;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(15,20,25,1),rgba(15,20,25,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(15,20,25,1),rgba(15,20,25,0));}.toggle-line-inner{background:#616161;}.toggle-line:hover .toggle-line-inner{background:#898989;} \ No newline at end of file + :root{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;}.slider{background-color:#ccc;}.slider:before{background-color:white;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}h1,h2,h3,h4{color:white;}h1.fqn a{color:#fff;}h4{border:none;}.in-band{background-color:#0f1419;}.docblock code{color:#ffb454;}.code-header{color:#e6e1cf;}.docblock pre>code,pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}pre,.rustdoc.source .example-wrap{color:#e6e1cf;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);}.sidebar .current,.sidebar a:hover{background-color:transparent;color:#ffb44c;}.sidebar-elems .location{color:#ff7733;}.line-numbers span{color:#5c6773;}.line-numbers .line-highlighted{color:#708090;background-color:rgba(255,236,164,0.06);padding-right:4px;border-right:1px solid #ffb44c;}.docblock table td,.docblock table th{border-color:#5c6773;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#000 !important;background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.content .item-info::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ffa0a5;}.content span.union,.content a.union{color:#ffa0a5;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#39AFD7;}.content span.primitive,.content a.primitive{color:#ffa0a5;}.content span.traitalias,.content a.traitalias{color:#39AFD7;}.content span.keyword,.content a.keyword{color:#39AFD7;}.content span.externcrate,.content span.mod,.content a.mod{color:#39AFD7;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#ffa0a5;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#39AFD7;}.content span.type,.content a.type,.block a.current.type{color:#39AFD7;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#39AFD7;}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod,.content .fnname{color:#fdd687;}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:#a37acc;}.sidebar a{color:#53b1db;}.sidebar a.current.type{color:#53b1db;}.sidebar a.current.associatedtype{color:#53b1db;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#39AFD7;}.sidebar h2 a,.sidebar h3 a{color:white;}.search-results a{color:#0096cf;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before{color:#999;}details.rustdoc-toggle>summary::before{filter:invert(100%);}#crate-search,.search-input{background-color:#141920;border-color:#424c57;}#crate-search{border-color:#424c57 !important;}.search-input{color:#ffffff;}.module-item .stab,.import-item .stab{color:#000;}.stab.empty-impl{}.stab.must_implement{}.stab.unstable,.stab.deprecated,.stab.portability,.stab.empty-impl,.stab.must_implement{color:#c5c5c5;background:#314559 !important;border-style:none !important;border-radius:4px;padding:3px 6px 3px 6px;}.stab.portability>code{color:#e6e1cf;background:none;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}.line-numbers :target{background-color:transparent;}pre.rust .number,pre.rust .string{color:#b8cc52;}pre.rust .kw,pre.rust .kw-2,pre.rust .prelude-ty,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .op,pre.rust .lifetime{color:#ff7733;}pre.rust .macro,pre.rust .macro-nonterminal{color:#a37acc;}pre.rust .question-mark{color:#ff9011;}pre.rust .self{color:#36a3d9;font-style:italic;}pre.rust .attribute{color:#e6e1cf;}pre.rust .attribute .ident,pre.rust .attribute .op{color:#e6e1cf;}.example-wrap>pre.line-number{color:#5c67736e;border:none;}a.test-arrow{font-size:100%;color:#788797;border-radius:4px;background-color:rgba(57,175,215,0.09);}a.test-arrow:hover{background-color:rgba(57,175,215,0.368);color:#c5c5c5;}.toggle-label,.code-attribute{color:#999;}:target{background:rgba(255,236,164,0.06);border-right:3px solid rgba(255,180,76,0.85);}pre.compile_fail{border-left:2px solid rgba(255,0,0,.4);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.4);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#39AFD7;}.tooltip::after{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip::before{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}.notable-traits-tooltiptext .notable{border-bottom-color:#5c6773;}#titles>button.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>button:not(.selected){background-color:transparent !important;border:none;}#titles>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>button>div.count{color:#888;}.search-input:focus{}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>button:hover,#titles>button.selected{}.content span.typedef,.content a.typedef,.block a.current.typedef{}.content span.union,.content a.union,.block a.current.union{}pre.rust .lifetime{}.stab.unstable{}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){}.content span.enum,.content a.enum,.block a.current.enum{}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{}.content span.keyword,.content a.keyword,.block a.current.keyword{}pre.rust .comment{}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{}pre.rust .kw{}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{}pre.rust .doccomment{}.stab.deprecated{}.content a.attr,.content a.derive,.content a.macro{}.stab.portability{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}.search-results a:focus span{}a.result-trait:focus{}a.result-traitalias:focus{}a.result-mod:focus,a.result-externcrate:focus{}a.result-mod:focus{}a.result-externcrate:focus{}a.result-enum:focus{}a.result-struct:focus{}a.result-union:focus{}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{}a.result-type:focus{}a.result-associatedtype:focus{}a.result-foreigntype:focus{}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{}a.result-constant:focus,a.result-static:focus{}a.result-primitive:focus{}a.result-keyword:focus{}.sidebar a.current.enum{}.sidebar a.current.struct{}.sidebar a.current.foreigntype{}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{}.sidebar a.current.union{}.sidebar a.current.constant .sidebar a.current.static{}.sidebar a.current.primitive{}.sidebar a.current.externcrate .sidebar a.current.mod{}.sidebar a.current.trait{}.sidebar a.current.traitalias{}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{}.sidebar a.current.keyword{}@media (max-width:700px){.sidebar-elems{border-right-color:#5c6773;}}kbd{color:#c5c5c5;background-color:#314559;border-color:#5c6773;border-bottom-color:#5c6773;box-shadow:inset 0 -1px 0 #5c6773;}#settings-menu>a,#help-button>button{border-color:#5c6773;background-color:#0f1419;color:#fff;}#settings-menu>a img{filter:invert(100);}.popover,.popover::before,#help-button span.top,#help-button span.bottom{border-color:#5c6773;}#copy-path{color:#fff;}#copy-path>img{filter:invert(70%);}#copy-path:hover>img{filter:invert(100%);}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>button:hover,#help-button>button:focus{border-color:#e0e0e0;}#theme-choices{border-color:#5c6773;background-color:#0f1419;}#theme-choices>button:not(:first-child){border-top-color:#5c6773;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(110,110,110,0.33);}.search-results .result-name span.alias{color:#c5c5c5;}.search-results .result-name span.grey{color:#999;}#source-sidebar>.title{color:#fff;border-bottom-color:#5c6773;}#source-sidebar div.files>a:hover,details.dir-entry summary:hover,#source-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:#14191f;color:#ffb44c;}#source-sidebar div.files>a.selected{background-color:#14191f;color:#ffb44c;}.scraped-example-list .scrape-help{border-color:#aaa;color:#eee;}.scraped-example-list .scrape-help:hover{border-color:white;color:white;}.more-examples-toggle summary,.more-examples-toggle .hide-more{color:#999;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(15,20,25,1),rgba(15,20,25,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(15,20,25,1),rgba(15,20,25,0));}.toggle-line-inner{background:#999;}.toggle-line:hover .toggle-line-inner{background:#c5c5c5;} \ No newline at end of file diff --git a/ch9-dev/brush.svg b/ch9-dev/brush.svg deleted file mode 100644 index ea266e85..00000000 --- a/ch9-dev/brush.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ch9-dev/dark.css b/ch9-dev/dark.css index a31f453f..242423d0 100644 --- a/ch9-dev/dark.css +++ b/ch9-dev/dark.css @@ -1 +1 @@ -body{background-color:#353535;color:#ddd;}h1,h2,h3,h4{color:#ddd;}h1.fqn{border-bottom-color:#d2d2d2;}h2,h3,h4{border-bottom-color:#d2d2d2;}.in-band{background-color:#353535;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#2A2A2A;}pre,.rustdoc.source .example-wrap{background-color:#2A2A2A;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#505050;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff)}*{scrollbar-color:rgb(64,65,67) #717171;}.sidebar{scrollbar-color:rgba(32,34,37,.6) #5a5a5a;}::-webkit-scrollbar-track{background-color:#717171;}::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar::-webkit-scrollbar-track{background-color:#717171;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar .current,.sidebar a:hover{background:#444;}.source .sidebar{background-color:#565656;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#DDD;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#ddd;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#eee !important;background-color:#616161;}.search-results a:focus span{color:#eee !important;}a.result-trait:focus{background-color:#013191;}a.result-traitalias:focus{background-color:#013191;}a.result-mod:focus,a.result-externcrate:focus{background-color:#884719;}a.result-enum:focus{background-color:#194e9f;}a.result-struct:focus{background-color:#194e9f;}a.result-union:focus{background-color:#194e9f;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#4950ed;}a.result-type:focus{background-color:#194e9f;}a.result-associatedtype:focus{background-color:#884719;}a.result-foreigntype:focus{background-color:#194e9f;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#217d1c;}a.result-constant:focus,a.result-static:focus{background-color:#884719;}a.result-primitive:focus{background-color:#194e9f;}a.result-keyword:focus{background-color:#884719;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#2dbfb8;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#2dbfb8;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#D2991D;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#2dbfb8;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#09bd00;}.content span.union,.content a.union,.block a.current.union{color:#2dbfb8;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#D2991D;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2dbfb8;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#D2991D;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b78cf2;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#2BAB63;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#D2991D;}.sidebar a{color:#fdbf35;}.sidebar a.current.enum{color:#12ece2;}.sidebar a.current.struct{color:#12ece2;}.sidebar a.current.type{color:#12ece2;}.sidebar a.current.associatedtype{color:#fdbf35;}.sidebar a.current.foreigntype{color:#12ece2;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#0be900;}.sidebar a.current.union{color:#12ece2;}.sidebar a.current.constant .sidebar a.current.static{color:#fdbf35;}.sidebar a.current.primitive{color:#12ece2;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#fdbf35;}.sidebar a.current.trait{color:#cca7ff;}.sidebar a.current.traitalias{color:#cca7ff;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#32d479;}.sidebar a.current.keyword{color:#fdbf35;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#D2991D;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#ddd;}.search-results a{color:#ddd;}a.test-arrow{color:#dedede;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search,.search-input{color:#111;background-color:#f0f0f0;border-color:#000;}.search-input{border-color:#e0e0e0;}.search-input:focus{border-color:#008dfd;}.module-item .stab,.import-item .stab{color:#ddd;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;color:#2f2f2f;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability>code{background:none;}#help>div{background:#4d4d4d;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}#help dt{border-color:#bfbfbf;background:rgba(0,0,0,0);}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#ddd;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#ab8ac1;}pre.rust .kw-2,pre.rust .prelude-ty{color:#769acb;}pre.rust .number,pre.rust .string{color:#83a300;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#ee6868;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#d97f26;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#4a4949;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background-color:#494a3d;border-right:3px solid #bb7410;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.8);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.8);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.8);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.8);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;border-color:#000;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}.notable-traits-tooltiptext .notable{border-bottom-color:#d2d2d2;}#titles>button:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>button:hover,#titles>button.selected{border-top-color:#0089ff;background-color:#353535;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#505050;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#505050;border-right-color:#000;}#sidebar-filler{background-color:#505050;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background:#f0f0f0;color:#000;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#ffb900;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(65%);}#theme-choices{border-color:#e0e0e0;background-color:#353535;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#4e4e4e;}@media (max-width:700px){#theme-picker{background:#f0f0f0;}}.search-results .result-name span.alias{color:#fff;}.search-results .result-name span.grey{color:#ccc;}#sidebar-toggle{background-color:#565656;}#sidebar-toggle:hover{background-color:#676767;}#source-sidebar{background-color:#565656;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#444;}div.files>.selected{background-color:#333;}.setting-line>.title{border-bottom-color:#ddd;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(53,53,53,1),rgba(53,53,53,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(53,53,53,1),rgba(53,53,53,0));}.toggle-line-inner{background:#616161;}.toggle-line:hover .toggle-line-inner{background:#898989;} \ No newline at end of file +:root{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;}.slider{background-color:#ccc;}.slider:before{background-color:white;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}.in-band{background-color:#353535;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff)}.sidebar .current,.sidebar a:hover{background:#444;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock table td,.docblock table th{border-color:#ddd;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#eee !important;background-color:#616161;}.search-results a:focus span{color:#eee !important;}a.result-trait:focus{background-color:#013191;}a.result-traitalias:focus{background-color:#013191;}a.result-mod:focus,a.result-externcrate:focus{background-color:#884719;}a.result-enum:focus{background-color:#194e9f;}a.result-struct:focus{background-color:#194e9f;}a.result-union:focus{background-color:#194e9f;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#4950ed;}a.result-type:focus{background-color:#194e9f;}a.result-associatedtype:focus{background-color:#884719;}a.result-foreigntype:focus{background-color:#194e9f;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#217d1c;}a.result-constant:focus,a.result-static:focus{background-color:#884719;}a.result-primitive:focus{background-color:#194e9f;}a.result-keyword:focus{background-color:#884719;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#2dbfb8;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#2dbfb8;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#D2991D;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#2dbfb8;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#09bd00;}.content span.union,.content a.union,.block a.current.union{color:#2dbfb8;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#D2991D;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2dbfb8;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#D2991D;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b78cf2;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#2BAB63;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#D2991D;}.sidebar a{color:#fdbf35;}.sidebar a.current.enum{color:#12ece2;}.sidebar a.current.struct{color:#12ece2;}.sidebar a.current.type{color:#12ece2;}.sidebar a.current.associatedtype{color:#fdbf35;}.sidebar a.current.foreigntype{color:#12ece2;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#0be900;}.sidebar a.current.union{color:#12ece2;}.sidebar a.current.constant .sidebar a.current.static{color:#fdbf35;}.sidebar a.current.primitive{color:#12ece2;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#fdbf35;}.sidebar a.current.trait{color:#cca7ff;}.sidebar a.current.traitalias{color:#cca7ff;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#32d479;}.sidebar a.current.keyword{color:#fdbf35;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#D2991D;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before{color:#999;}details.rustdoc-toggle>summary::before{filter:invert(100%);}#crate-search,.search-input{color:#111;background-color:#f0f0f0;border-color:#f0f0f0;}#crate-search{border-color:#f0f0f0 !important;}.search-input{border-color:#e0e0e0;}.search-input:focus{border-color:#008dfd;}.stab.empty-impl{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;color:#2f2f2f;}.stab.must_implement{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability>code{background:none;}.rightside,.out-of-band{color:grey;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#ab8ac1;}pre.rust .kw-2,pre.rust .prelude-ty{color:#769acb;}pre.rust .number,pre.rust .string{color:#83a300;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#ee6868;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#d97f26;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#4a4949;}a.test-arrow{color:#dedede;background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background-color:#494a3d;border-right:3px solid #bb7410;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.8);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.8);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.8);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.8);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;border-color:#000;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}.notable-traits-tooltiptext .notable{border-bottom-color:#d2d2d2;}#titles>button:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>button:hover,#titles>button.selected{border-top-color:#0089ff;background-color:#353535;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-elems{border-right-color:#000;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#settings-menu>a,#help-button>button{border-color:#e0e0e0;background:#f0f0f0;color:#000;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>button:hover,#help-button>button:focus{border-color:#ffb900;}.popover,.popover::before,#help-button span.top,#help-button span.bottom{border-color:#d2d2d2;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(65%);}#theme-choices{border-color:#e0e0e0;background-color:#353535;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#4e4e4e;}.search-results .result-name span.alias{color:#fff;}.search-results .result-name span.grey{color:#ccc;}#source-sidebar>.title{border-bottom-color:#ccc;}#source-sidebar div.files>a:hover,details.dir-entry summary:hover,#source-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:#444;}#source-sidebar div.files>a.selected{background-color:#333;}.scraped-example-list .scrape-help{border-color:#aaa;color:#eee;}.scraped-example-list .scrape-help:hover{border-color:white;color:white;}.more-examples-toggle summary,.more-examples-toggle .hide-more{color:#999;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(53,53,53,1),rgba(53,53,53,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(53,53,53,1),rgba(53,53,53,0));}.toggle-line-inner{background:#999;}.toggle-line:hover .toggle-line-inner{background:#c5c5c5;} \ No newline at end of file diff --git a/ch9-dev/implementors/core/clone/trait.Clone.js b/ch9-dev/implementors/core/clone/trait.Clone.js index 024c1fe4..cbe4f03e 100644 --- a/ch9-dev/implementors/core/clone/trait.Clone.js +++ b/ch9-dev/implementors/core/clone/trait.Clone.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Clone for CMD","synthetic":false,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl Clone for InitError","synthetic":false,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl Clone for SDCardCSD","synthetic":false,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl Clone for SDCardCID","synthetic":false,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl Clone for SDCardInfo","synthetic":false,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl Clone for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Clone for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Clone for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Clone for IntrTargetPriority","synthetic":false,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Clone for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Clone for RingBufferStatus","synthetic":false,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Clone for Graphics","synthetic":false,"types":["os::gui::graphic::Graphics"]},{"text":"impl Clone for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl Clone for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl Clone for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Clone for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T: Clone> Clone for SimpleRange<T> where
    T: StepByOne + Copy + PartialEq + PartialOrd + Debug
","synthetic":false,"types":["os::mm::address::SimpleRange"]},{"text":"impl Clone for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl Clone for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Clone for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Clone for PageTableEntry","synthetic":false,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Clone for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl Clone for TaskStatus","synthetic":false,"types":["os::task::task::TaskStatus"]}]; +implementors["os"] = [{"text":"impl Clone for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Clone for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Clone for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Clone for IntrTargetPriority","synthetic":false,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Clone for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Clone for RingBufferStatus","synthetic":false,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Clone for Graphics","synthetic":false,"types":["os::gui::graphic::Graphics"]},{"text":"impl Clone for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl Clone for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl Clone for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Clone for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T: Clone> Clone for SimpleRange<T> where
    T: StepByOne + Copy + PartialEq + PartialOrd + Debug
","synthetic":false,"types":["os::mm::address::SimpleRange"]},{"text":"impl Clone for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl Clone for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Clone for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Clone for PageTableEntry","synthetic":false,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Clone for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl Clone for TaskStatus","synthetic":false,"types":["os::task::task::TaskStatus"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/cmp/trait.Eq.js b/ch9-dev/implementors/core/cmp/trait.Eq.js index 93c3024b..3408ed40 100644 --- a/ch9-dev/implementors/core/cmp/trait.Eq.js +++ b/ch9-dev/implementors/core/cmp/trait.Eq.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Eq for CMD","synthetic":false,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl Eq for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Eq for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Eq for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Eq for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Eq for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl Eq for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl Eq for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Eq for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl Eq for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Eq for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Eq for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl Eq for TimerCondVar","synthetic":false,"types":["os::timer::TimerCondVar"]}]; +implementors["os"] = [{"text":"impl Eq for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Eq for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Eq for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Eq for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Eq for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl Eq for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl Eq for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Eq for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl Eq for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Eq for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Eq for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl Eq for TimerCondVar","synthetic":false,"types":["os::timer::TimerCondVar"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/cmp/trait.PartialEq.js b/ch9-dev/implementors/core/cmp/trait.PartialEq.js index c9cd0ccb..e7c60fab 100644 --- a/ch9-dev/implementors/core/cmp/trait.PartialEq.js +++ b/ch9-dev/implementors/core/cmp/trait.PartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl PartialEq<CMD> for CMD","synthetic":false,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl PartialEq<IER> for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl PartialEq<LSR> for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl PartialEq<MCR> for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl PartialEq<OpenFlags> for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl PartialEq<RingBufferStatus> for RingBufferStatus","synthetic":false,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl PartialEq<PhysAddr> for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl PartialEq<VirtAddr> for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl PartialEq<PhysPageNum> for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl PartialEq<VirtPageNum> for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl PartialEq<MapType> for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl PartialEq<MapPermission> for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl PartialEq<PTEFlags> for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl PartialEq<SignalFlags> for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl PartialEq<TaskStatus> for TaskStatus","synthetic":false,"types":["os::task::task::TaskStatus"]},{"text":"impl PartialEq<TimerCondVar> for TimerCondVar","synthetic":false,"types":["os::timer::TimerCondVar"]}]; +implementors["os"] = [{"text":"impl PartialEq<IER> for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl PartialEq<LSR> for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl PartialEq<MCR> for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl PartialEq<OpenFlags> for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl PartialEq<RingBufferStatus> for RingBufferStatus","synthetic":false,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl PartialEq<PhysAddr> for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl PartialEq<VirtAddr> for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl PartialEq<PhysPageNum> for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl PartialEq<VirtPageNum> for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl PartialEq<MapType> for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl PartialEq<MapPermission> for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl PartialEq<PTEFlags> for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl PartialEq<SignalFlags> for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl PartialEq<TaskStatus> for TaskStatus","synthetic":false,"types":["os::task::task::TaskStatus"]},{"text":"impl PartialEq<TimerCondVar> for TimerCondVar","synthetic":false,"types":["os::timer::TimerCondVar"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/fmt/trait.Debug.js b/ch9-dev/implementors/core/fmt/trait.Debug.js index 831d7356..2fa7be35 100644 --- a/ch9-dev/implementors/core/fmt/trait.Debug.js +++ b/ch9-dev/implementors/core/fmt/trait.Debug.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Debug for CMD","synthetic":false,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl Debug for InitError","synthetic":false,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl Debug for SDCardCSD","synthetic":false,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl Debug for SDCardCID","synthetic":false,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl Debug for SDCardInfo","synthetic":false,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl Debug for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Debug for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Debug for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Debug for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Debug for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl Debug for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl Debug for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl Debug for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Debug for FrameTracker","synthetic":false,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Debug for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl Debug for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Debug for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Debug for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl Debug for TrapContext","synthetic":false,"types":["os::trap::context::TrapContext"]}]; +implementors["os"] = [{"text":"impl Debug for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Debug for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Debug for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Debug for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Debug for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl Debug for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl Debug for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl Debug for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Debug for FrameTracker","synthetic":false,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Debug for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl Debug for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Debug for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Debug for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl Debug for TrapContext","synthetic":false,"types":["os::trap::context::TrapContext"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/marker/trait.Copy.js b/ch9-dev/implementors/core/marker/trait.Copy.js index 1149d3b0..fff81ba0 100644 --- a/ch9-dev/implementors/core/marker/trait.Copy.js +++ b/ch9-dev/implementors/core/marker/trait.Copy.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Copy for CMD","synthetic":false,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl Copy for InitError","synthetic":false,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl Copy for SDCardCSD","synthetic":false,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl Copy for SDCardCID","synthetic":false,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl Copy for SDCardInfo","synthetic":false,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl Copy for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Copy for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Copy for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Copy for IntrTargetPriority","synthetic":false,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Copy for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Copy for RingBufferStatus","synthetic":false,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Copy for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl Copy for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl Copy for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Copy for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T: Copy> Copy for SimpleRange<T> where
    T: StepByOne + Copy + PartialEq + PartialOrd + Debug
","synthetic":false,"types":["os::mm::address::SimpleRange"]},{"text":"impl Copy for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl Copy for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Copy for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Copy for PageTableEntry","synthetic":false,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Copy for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl Copy for TaskStatus","synthetic":false,"types":["os::task::task::TaskStatus"]}]; +implementors["os"] = [{"text":"impl Copy for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Copy for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Copy for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Copy for IntrTargetPriority","synthetic":false,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Copy for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Copy for RingBufferStatus","synthetic":false,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Copy for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl Copy for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl Copy for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Copy for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T: Copy> Copy for SimpleRange<T> where
    T: StepByOne + Copy + PartialEq + PartialOrd + Debug
","synthetic":false,"types":["os::mm::address::SimpleRange"]},{"text":"impl Copy for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl Copy for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Copy for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Copy for PageTableEntry","synthetic":false,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Copy for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl Copy for TaskStatus","synthetic":false,"types":["os::task::task::TaskStatus"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/marker/trait.Freeze.js b/ch9-dev/implementors/core/marker/trait.Freeze.js index 17bb0718..187d65d0 100644 --- a/ch9-dev/implementors/core/marker/trait.Freeze.js +++ b/ch9-dev/implementors/core/marker/trait.Freeze.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Freeze for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Freeze for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl<SPI> Freeze for SDCard<SPI> where
    SPI: Freeze
","synthetic":true,"types":["os::drivers::block::sdcard::SDCard"]},{"text":"impl Freeze for CMD","synthetic":true,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl Freeze for InitError","synthetic":true,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl Freeze for SDCardCSD","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl Freeze for SDCardCID","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl Freeze for SDCardInfo","synthetic":true,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl Freeze for PERIPHERALS","synthetic":true,"types":["os::drivers::block::sdcard::PERIPHERALS"]},{"text":"impl !Freeze for SDCardWrapper","synthetic":true,"types":["os::drivers::block::sdcard::SDCardWrapper"]},{"text":"impl !Freeze for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Freeze for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::block::virtio_blk::QUEUE_FRAMES"]},{"text":"impl Freeze for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Freeze for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Freeze for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Freeze for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Freeze for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Freeze for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Freeze for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Freeze for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !Freeze for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Freeze for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Freeze for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !Freeze for VirtIOGPU","synthetic":true,"types":["os::drivers::gpu::VirtIOGPU"]},{"text":"impl !Freeze for VirtIOINPUT","synthetic":true,"types":["os::drivers::input::VirtIOINPUT"]},{"text":"impl Freeze for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Freeze for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Freeze for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Freeze for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !Freeze for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Freeze for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Freeze for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Freeze for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Freeze for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Freeze for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Freeze for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Freeze for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Freeze for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl !Freeze for Button","synthetic":true,"types":["os::gui::button::Button"]},{"text":"impl Freeze for ButtonInner","synthetic":true,"types":["os::gui::button::ButtonInner"]},{"text":"impl Freeze for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl !Freeze for IconController","synthetic":true,"types":["os::gui::icon::IconController"]},{"text":"impl Freeze for IconControllerInner","synthetic":true,"types":["os::gui::icon::IconControllerInner"]},{"text":"impl !Freeze for ImageComp","synthetic":true,"types":["os::gui::image::ImageComp"]},{"text":"impl Freeze for ImageInner","synthetic":true,"types":["os::gui::image::ImageInner"]},{"text":"impl !Freeze for Panel","synthetic":true,"types":["os::gui::panel::Panel"]},{"text":"impl Freeze for PanelInner","synthetic":true,"types":["os::gui::panel::PanelInner"]},{"text":"impl !Freeze for Terminal","synthetic":true,"types":["os::gui::terminal::Terminal"]},{"text":"impl Freeze for TerminalInner","synthetic":true,"types":["os::gui::terminal::TerminalInner"]},{"text":"impl Freeze for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Freeze for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Freeze for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Freeze for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Freeze for SimpleRange<T> where
    T: Freeze
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Freeze for SimpleRangeIterator<T> where
    T: Freeze
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Freeze for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Freeze for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Freeze for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Freeze for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Freeze for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Freeze for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Freeze for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Freeze for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Freeze for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Freeze for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Freeze for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Freeze for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Freeze for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !Freeze for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Freeze for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl !Freeze for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !Freeze for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Freeze for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !Freeze for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Freeze for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> !Freeze for UPSafeCellRaw<T>","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Freeze for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Freeze for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> !Freeze for UPIntrFreeCell<T>","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> Freeze for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Freeze for DESKTOP","synthetic":true,"types":["os::syscall::gui::DESKTOP"]},{"text":"impl Freeze for PAD","synthetic":true,"types":["os::syscall::gui::PAD"]},{"text":"impl Freeze for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Freeze for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Freeze for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Freeze for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Freeze for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Freeze for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Freeze for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Freeze for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Freeze for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Freeze for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !Freeze for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Freeze for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Freeze for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Freeze for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Freeze for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !Freeze for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Freeze for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Freeze for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Freeze for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Freeze for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Freeze for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Freeze for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Freeze for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; +implementors["os"] = [{"text":"impl Freeze for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Freeze for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !Freeze for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Freeze for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Freeze for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Freeze for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Freeze for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Freeze for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Freeze for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Freeze for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Freeze for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Freeze for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Freeze for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !Freeze for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Freeze for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Freeze for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !Freeze for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl !Freeze for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Freeze for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Freeze for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Freeze for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Freeze for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !Freeze for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Freeze for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Freeze for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Freeze for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Freeze for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Freeze for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Freeze for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Freeze for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Freeze for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Freeze for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl Freeze for DrawingBoard","synthetic":true,"types":["os::gui::paint::DrawingBoard"]},{"text":"impl Freeze for DRAWING_BOARD","synthetic":true,"types":["os::gui::paint::DRAWING_BOARD"]},{"text":"impl Freeze for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Freeze for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Freeze for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Freeze for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Freeze for SimpleRange<T> where
    T: Freeze
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Freeze for SimpleRangeIterator<T> where
    T: Freeze
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Freeze for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Freeze for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Freeze for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Freeze for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Freeze for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Freeze for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Freeze for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Freeze for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Freeze for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Freeze for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Freeze for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Freeze for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Freeze for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !Freeze for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Freeze for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl !Freeze for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !Freeze for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Freeze for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !Freeze for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Freeze for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> !Freeze for UPSafeCellRaw<T>","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Freeze for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Freeze for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> !Freeze for UPIntrFreeCell<T>","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> Freeze for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Freeze for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Freeze for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Freeze for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Freeze for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Freeze for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Freeze for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Freeze for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Freeze for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Freeze for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Freeze for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !Freeze for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Freeze for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Freeze for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Freeze for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Freeze for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !Freeze for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Freeze for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Freeze for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Freeze for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Freeze for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Freeze for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Freeze for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Freeze for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/marker/trait.Send.js b/ch9-dev/implementors/core/marker/trait.Send.js index 549f7987..edae312c 100644 --- a/ch9-dev/implementors/core/marker/trait.Send.js +++ b/ch9-dev/implementors/core/marker/trait.Send.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Send for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Send for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl<SPI> Send for SDCard<SPI> where
    SPI: Send
","synthetic":true,"types":["os::drivers::block::sdcard::SDCard"]},{"text":"impl Send for CMD","synthetic":true,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl Send for InitError","synthetic":true,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl Send for SDCardCSD","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl Send for SDCardCID","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl Send for SDCardInfo","synthetic":true,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl Send for PERIPHERALS","synthetic":true,"types":["os::drivers::block::sdcard::PERIPHERALS"]},{"text":"impl Send for SDCardWrapper","synthetic":true,"types":["os::drivers::block::sdcard::SDCardWrapper"]},{"text":"impl Send for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Send for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::block::virtio_blk::QUEUE_FRAMES"]},{"text":"impl Send for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Send for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Send for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Send for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Send for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Send for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Send for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Send for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Send for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Send for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Send for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Send for VirtIOGPU","synthetic":true,"types":["os::drivers::gpu::VirtIOGPU"]},{"text":"impl Send for VirtIOINPUT","synthetic":true,"types":["os::drivers::input::VirtIOINPUT"]},{"text":"impl Send for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Send for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Send for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Send for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Send for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Send for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Send for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Send for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Send for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Send for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Send for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Send for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Send for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Send for Button","synthetic":true,"types":["os::gui::button::Button"]},{"text":"impl Send for ButtonInner","synthetic":true,"types":["os::gui::button::ButtonInner"]},{"text":"impl Send for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl Send for IconController","synthetic":true,"types":["os::gui::icon::IconController"]},{"text":"impl Send for IconControllerInner","synthetic":true,"types":["os::gui::icon::IconControllerInner"]},{"text":"impl Send for ImageComp","synthetic":true,"types":["os::gui::image::ImageComp"]},{"text":"impl Send for ImageInner","synthetic":true,"types":["os::gui::image::ImageInner"]},{"text":"impl Send for Panel","synthetic":true,"types":["os::gui::panel::Panel"]},{"text":"impl Send for PanelInner","synthetic":true,"types":["os::gui::panel::PanelInner"]},{"text":"impl Send for Terminal","synthetic":true,"types":["os::gui::terminal::Terminal"]},{"text":"impl Send for TerminalInner","synthetic":true,"types":["os::gui::terminal::TerminalInner"]},{"text":"impl Send for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Send for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Send for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Send for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Send for SimpleRange<T> where
    T: Send
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Send for SimpleRangeIterator<T> where
    T: Send
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Send for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Send for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Send for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Send for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Send for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Send for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Send for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Send for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Send for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Send for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Send for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Send for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Send for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Send for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Send for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Send for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Send for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Send for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Send for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Send for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> Send for UPSafeCellRaw<T> where
    T: Send
","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Send for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Send for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> Send for UPIntrFreeCell<T> where
    T: Send
","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !Send for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Send for DESKTOP","synthetic":true,"types":["os::syscall::gui::DESKTOP"]},{"text":"impl Send for PAD","synthetic":true,"types":["os::syscall::gui::PAD"]},{"text":"impl Send for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Send for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Send for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Send for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Send for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Send for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Send for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Send for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Send for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Send for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Send for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Send for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Send for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Send for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Send for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Send for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Send for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Send for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Send for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Send for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Send for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Send for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Send for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; +implementors["os"] = [{"text":"impl Send for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Send for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Send for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Send for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Send for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Send for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Send for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Send for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Send for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Send for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Send for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Send for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Send for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Send for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Send for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Send for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Send for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Send for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Send for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Send for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Send for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Send for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Send for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Send for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Send for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Send for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Send for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Send for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Send for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Send for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Send for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Send for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl Send for DrawingBoard","synthetic":true,"types":["os::gui::paint::DrawingBoard"]},{"text":"impl Send for DRAWING_BOARD","synthetic":true,"types":["os::gui::paint::DRAWING_BOARD"]},{"text":"impl Send for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Send for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Send for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Send for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Send for SimpleRange<T> where
    T: Send
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Send for SimpleRangeIterator<T> where
    T: Send
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Send for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Send for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Send for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Send for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Send for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Send for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Send for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Send for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Send for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Send for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Send for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Send for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Send for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Send for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Send for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Send for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Send for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Send for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Send for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Send for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> Send for UPSafeCellRaw<T> where
    T: Send
","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Send for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Send for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> Send for UPIntrFreeCell<T> where
    T: Send
","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !Send for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Send for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Send for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Send for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Send for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Send for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Send for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Send for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Send for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Send for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Send for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Send for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Send for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Send for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Send for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Send for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Send for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Send for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Send for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Send for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Send for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Send for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Send for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Send for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/marker/trait.StructuralEq.js b/ch9-dev/implementors/core/marker/trait.StructuralEq.js index 17308a03..57250fbc 100644 --- a/ch9-dev/implementors/core/marker/trait.StructuralEq.js +++ b/ch9-dev/implementors/core/marker/trait.StructuralEq.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl StructuralEq for CMD","synthetic":false,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl StructuralEq for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl StructuralEq for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl StructuralEq for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl StructuralEq for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl StructuralEq for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl StructuralEq for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl StructuralEq for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl StructuralEq for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl StructuralEq for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl StructuralEq for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl StructuralEq for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]}]; +implementors["os"] = [{"text":"impl StructuralEq for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl StructuralEq for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl StructuralEq for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl StructuralEq for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl StructuralEq for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl StructuralEq for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl StructuralEq for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl StructuralEq for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl StructuralEq for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl StructuralEq for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl StructuralEq for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/marker/trait.StructuralPartialEq.js b/ch9-dev/implementors/core/marker/trait.StructuralPartialEq.js index 2f84044e..aa165a9f 100644 --- a/ch9-dev/implementors/core/marker/trait.StructuralPartialEq.js +++ b/ch9-dev/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl StructuralPartialEq for CMD","synthetic":false,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl StructuralPartialEq for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl StructuralPartialEq for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl StructuralPartialEq for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl StructuralPartialEq for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl StructuralPartialEq for RingBufferStatus","synthetic":false,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl StructuralPartialEq for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl StructuralPartialEq for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl StructuralPartialEq for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl StructuralPartialEq for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl StructuralPartialEq for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl StructuralPartialEq for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl StructuralPartialEq for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl StructuralPartialEq for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl StructuralPartialEq for TaskStatus","synthetic":false,"types":["os::task::task::TaskStatus"]}]; +implementors["os"] = [{"text":"impl StructuralPartialEq for IER","synthetic":false,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl StructuralPartialEq for LSR","synthetic":false,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl StructuralPartialEq for MCR","synthetic":false,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl StructuralPartialEq for OpenFlags","synthetic":false,"types":["os::fs::inode::OpenFlags"]},{"text":"impl StructuralPartialEq for RingBufferStatus","synthetic":false,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl StructuralPartialEq for PhysAddr","synthetic":false,"types":["os::mm::address::PhysAddr"]},{"text":"impl StructuralPartialEq for VirtAddr","synthetic":false,"types":["os::mm::address::VirtAddr"]},{"text":"impl StructuralPartialEq for PhysPageNum","synthetic":false,"types":["os::mm::address::PhysPageNum"]},{"text":"impl StructuralPartialEq for VirtPageNum","synthetic":false,"types":["os::mm::address::VirtPageNum"]},{"text":"impl StructuralPartialEq for MapType","synthetic":false,"types":["os::mm::memory_set::MapType"]},{"text":"impl StructuralPartialEq for MapPermission","synthetic":false,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl StructuralPartialEq for PTEFlags","synthetic":false,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl StructuralPartialEq for SignalFlags","synthetic":false,"types":["os::task::signal::SignalFlags"]},{"text":"impl StructuralPartialEq for TaskStatus","synthetic":false,"types":["os::task::task::TaskStatus"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/marker/trait.Sync.js b/ch9-dev/implementors/core/marker/trait.Sync.js index e383f9d8..17e79fa7 100644 --- a/ch9-dev/implementors/core/marker/trait.Sync.js +++ b/ch9-dev/implementors/core/marker/trait.Sync.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Sync for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Sync for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl<SPI> Sync for SDCard<SPI> where
    SPI: Sync
","synthetic":true,"types":["os::drivers::block::sdcard::SDCard"]},{"text":"impl Sync for CMD","synthetic":true,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl Sync for InitError","synthetic":true,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl Sync for SDCardCSD","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl Sync for SDCardCID","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl Sync for SDCardInfo","synthetic":true,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl Sync for PERIPHERALS","synthetic":true,"types":["os::drivers::block::sdcard::PERIPHERALS"]},{"text":"impl Sync for SDCardWrapper","synthetic":true,"types":["os::drivers::block::sdcard::SDCardWrapper"]},{"text":"impl Sync for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Sync for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::block::virtio_blk::QUEUE_FRAMES"]},{"text":"impl Sync for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Sync for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Sync for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Sync for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Sync for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Sync for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Sync for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Sync for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Sync for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Sync for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Sync for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Sync for VirtIOGPU","synthetic":true,"types":["os::drivers::gpu::VirtIOGPU"]},{"text":"impl Sync for VirtIOINPUT","synthetic":true,"types":["os::drivers::input::VirtIOINPUT"]},{"text":"impl Sync for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Sync for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Sync for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Sync for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Sync for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Sync for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Sync for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Sync for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Sync for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Sync for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Sync for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Sync for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Sync for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Sync for Button","synthetic":true,"types":["os::gui::button::Button"]},{"text":"impl Sync for ButtonInner","synthetic":true,"types":["os::gui::button::ButtonInner"]},{"text":"impl Sync for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl Sync for IconController","synthetic":true,"types":["os::gui::icon::IconController"]},{"text":"impl Sync for IconControllerInner","synthetic":true,"types":["os::gui::icon::IconControllerInner"]},{"text":"impl Sync for ImageComp","synthetic":true,"types":["os::gui::image::ImageComp"]},{"text":"impl Sync for ImageInner","synthetic":true,"types":["os::gui::image::ImageInner"]},{"text":"impl Sync for Panel","synthetic":true,"types":["os::gui::panel::Panel"]},{"text":"impl Sync for PanelInner","synthetic":true,"types":["os::gui::panel::PanelInner"]},{"text":"impl Sync for Terminal","synthetic":true,"types":["os::gui::terminal::Terminal"]},{"text":"impl Sync for TerminalInner","synthetic":true,"types":["os::gui::terminal::TerminalInner"]},{"text":"impl Sync for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Sync for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Sync for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Sync for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Sync for SimpleRange<T> where
    T: Sync
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Sync for SimpleRangeIterator<T> where
    T: Sync
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Sync for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Sync for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Sync for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Sync for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Sync for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Sync for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Sync for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Sync for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Sync for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Sync for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Sync for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Sync for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Sync for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Sync for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Sync for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Sync for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Sync for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Sync for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Sync for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Sync for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl Sync for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Sync for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<'a, T> !Sync for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Sync for DESKTOP","synthetic":true,"types":["os::syscall::gui::DESKTOP"]},{"text":"impl Sync for PAD","synthetic":true,"types":["os::syscall::gui::PAD"]},{"text":"impl Sync for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Sync for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Sync for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Sync for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Sync for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Sync for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Sync for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Sync for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Sync for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Sync for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Sync for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Sync for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Sync for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Sync for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Sync for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Sync for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Sync for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Sync for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Sync for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Sync for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Sync for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Sync for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Sync for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]},{"text":"impl<T> Sync for UPSafeCellRaw<T>","synthetic":false,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl<T> Sync for UPIntrFreeCell<T>","synthetic":false,"types":["os::sync::up::UPIntrFreeCell"]}]; +implementors["os"] = [{"text":"impl Sync for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Sync for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Sync for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Sync for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Sync for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Sync for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Sync for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Sync for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Sync for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Sync for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Sync for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Sync for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Sync for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Sync for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Sync for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Sync for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Sync for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Sync for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Sync for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Sync for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Sync for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Sync for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Sync for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Sync for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Sync for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Sync for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Sync for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Sync for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Sync for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Sync for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Sync for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Sync for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl Sync for DrawingBoard","synthetic":true,"types":["os::gui::paint::DrawingBoard"]},{"text":"impl Sync for DRAWING_BOARD","synthetic":true,"types":["os::gui::paint::DRAWING_BOARD"]},{"text":"impl Sync for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Sync for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Sync for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Sync for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Sync for SimpleRange<T> where
    T: Sync
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Sync for SimpleRangeIterator<T> where
    T: Sync
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Sync for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Sync for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Sync for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Sync for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Sync for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Sync for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Sync for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Sync for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Sync for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Sync for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Sync for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Sync for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Sync for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Sync for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Sync for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Sync for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Sync for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Sync for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Sync for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Sync for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl Sync for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Sync for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<'a, T> !Sync for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Sync for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Sync for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Sync for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Sync for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Sync for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Sync for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Sync for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Sync for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Sync for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Sync for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Sync for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Sync for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Sync for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Sync for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Sync for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Sync for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Sync for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Sync for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Sync for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Sync for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Sync for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Sync for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Sync for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]},{"text":"impl<T> Sync for UPSafeCellRaw<T>","synthetic":false,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl<T> Sync for UPIntrFreeCell<T>","synthetic":false,"types":["os::sync::up::UPIntrFreeCell"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/marker/trait.Unpin.js b/ch9-dev/implementors/core/marker/trait.Unpin.js index 4aeedf0b..78597b51 100644 --- a/ch9-dev/implementors/core/marker/trait.Unpin.js +++ b/ch9-dev/implementors/core/marker/trait.Unpin.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Unpin for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Unpin for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl<SPI> Unpin for SDCard<SPI> where
    SPI: Unpin
","synthetic":true,"types":["os::drivers::block::sdcard::SDCard"]},{"text":"impl Unpin for CMD","synthetic":true,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl Unpin for InitError","synthetic":true,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl Unpin for SDCardCSD","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl Unpin for SDCardCID","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl Unpin for SDCardInfo","synthetic":true,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl Unpin for PERIPHERALS","synthetic":true,"types":["os::drivers::block::sdcard::PERIPHERALS"]},{"text":"impl Unpin for SDCardWrapper","synthetic":true,"types":["os::drivers::block::sdcard::SDCardWrapper"]},{"text":"impl Unpin for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Unpin for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::block::virtio_blk::QUEUE_FRAMES"]},{"text":"impl Unpin for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Unpin for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Unpin for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Unpin for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Unpin for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Unpin for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Unpin for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Unpin for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Unpin for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Unpin for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Unpin for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Unpin for VirtIOGPU","synthetic":true,"types":["os::drivers::gpu::VirtIOGPU"]},{"text":"impl Unpin for VirtIOINPUT","synthetic":true,"types":["os::drivers::input::VirtIOINPUT"]},{"text":"impl Unpin for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Unpin for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Unpin for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Unpin for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Unpin for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Unpin for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Unpin for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Unpin for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Unpin for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Unpin for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Unpin for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Unpin for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Unpin for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Unpin for Button","synthetic":true,"types":["os::gui::button::Button"]},{"text":"impl Unpin for ButtonInner","synthetic":true,"types":["os::gui::button::ButtonInner"]},{"text":"impl Unpin for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl Unpin for IconController","synthetic":true,"types":["os::gui::icon::IconController"]},{"text":"impl Unpin for IconControllerInner","synthetic":true,"types":["os::gui::icon::IconControllerInner"]},{"text":"impl Unpin for ImageComp","synthetic":true,"types":["os::gui::image::ImageComp"]},{"text":"impl Unpin for ImageInner","synthetic":true,"types":["os::gui::image::ImageInner"]},{"text":"impl Unpin for Panel","synthetic":true,"types":["os::gui::panel::Panel"]},{"text":"impl Unpin for PanelInner","synthetic":true,"types":["os::gui::panel::PanelInner"]},{"text":"impl Unpin for Terminal","synthetic":true,"types":["os::gui::terminal::Terminal"]},{"text":"impl Unpin for TerminalInner","synthetic":true,"types":["os::gui::terminal::TerminalInner"]},{"text":"impl Unpin for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Unpin for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Unpin for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Unpin for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Unpin for SimpleRange<T> where
    T: Unpin
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Unpin for SimpleRangeIterator<T> where
    T: Unpin
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Unpin for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Unpin for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Unpin for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Unpin for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Unpin for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Unpin for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Unpin for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Unpin for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Unpin for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Unpin for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Unpin for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Unpin for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Unpin for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Unpin for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Unpin for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Unpin for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Unpin for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Unpin for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Unpin for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Unpin for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> Unpin for UPSafeCellRaw<T> where
    T: Unpin
","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Unpin for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Unpin for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> Unpin for UPIntrFreeCell<T> where
    T: Unpin
","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> Unpin for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Unpin for DESKTOP","synthetic":true,"types":["os::syscall::gui::DESKTOP"]},{"text":"impl Unpin for PAD","synthetic":true,"types":["os::syscall::gui::PAD"]},{"text":"impl Unpin for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Unpin for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Unpin for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Unpin for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Unpin for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Unpin for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Unpin for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Unpin for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Unpin for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Unpin for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Unpin for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Unpin for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Unpin for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Unpin for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Unpin for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Unpin for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Unpin for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Unpin for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Unpin for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Unpin for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Unpin for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Unpin for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Unpin for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; +implementors["os"] = [{"text":"impl Unpin for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl Unpin for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl Unpin for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl Unpin for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Unpin for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Unpin for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl Unpin for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl Unpin for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl Unpin for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl Unpin for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl Unpin for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl Unpin for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl Unpin for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> Unpin for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl Unpin for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl Unpin for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Unpin for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl Unpin for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl Unpin for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Unpin for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Unpin for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl Unpin for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl Unpin for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl Unpin for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl Unpin for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Unpin for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl Unpin for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl Unpin for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl Unpin for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl Unpin for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl Unpin for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl Unpin for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl Unpin for DrawingBoard","synthetic":true,"types":["os::gui::paint::DrawingBoard"]},{"text":"impl Unpin for DRAWING_BOARD","synthetic":true,"types":["os::gui::paint::DRAWING_BOARD"]},{"text":"impl Unpin for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl Unpin for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl Unpin for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl Unpin for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> Unpin for SimpleRange<T> where
    T: Unpin
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> Unpin for SimpleRangeIterator<T> where
    T: Unpin
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl Unpin for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl Unpin for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl Unpin for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Unpin for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Unpin for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl Unpin for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl Unpin for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl Unpin for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl Unpin for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl Unpin for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl Unpin for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl Unpin for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl Unpin for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl Unpin for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl Unpin for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl Unpin for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl Unpin for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl Unpin for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl Unpin for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl Unpin for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> Unpin for UPSafeCellRaw<T> where
    T: Unpin
","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl Unpin for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl Unpin for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> Unpin for UPIntrFreeCell<T> where
    T: Unpin
","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> Unpin for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Unpin for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl Unpin for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl Unpin for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Unpin for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Unpin for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl Unpin for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl Unpin for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl Unpin for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl Unpin for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Unpin for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl Unpin for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl Unpin for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl Unpin for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl Unpin for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Unpin for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl Unpin for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl Unpin for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl Unpin for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl Unpin for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl Unpin for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl Unpin for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl Unpin for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl Unpin for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/ops/deref/trait.Deref.js b/ch9-dev/implementors/core/ops/deref/trait.Deref.js index 0022540c..f5de2b03 100644 --- a/ch9-dev/implementors/core/ops/deref/trait.Deref.js +++ b/ch9-dev/implementors/core/ops/deref/trait.Deref.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl Deref for PERIPHERALS","synthetic":false,"types":["os::drivers::block::sdcard::PERIPHERALS"]},{"text":"impl Deref for QUEUE_FRAMES","synthetic":false,"types":["os::drivers::block::virtio_blk::QUEUE_FRAMES"]},{"text":"impl Deref for BLOCK_DEVICE","synthetic":false,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Deref for UART","synthetic":false,"types":["os::drivers::chardev::UART"]},{"text":"impl Deref for GPU_DEVICE","synthetic":false,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Deref for KEYBOARD_DEVICE","synthetic":false,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Deref for MOUSE_DEVICE","synthetic":false,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Deref for ROOT_INODE","synthetic":false,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Deref for FRAME_ALLOCATOR","synthetic":false,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Deref for KERNEL_SPACE","synthetic":false,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Deref for INTR_MASKING_INFO","synthetic":false,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<'a, T> Deref for UPIntrRefMut<'a, T>","synthetic":false,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Deref for DESKTOP","synthetic":false,"types":["os::syscall::gui::DESKTOP"]},{"text":"impl Deref for PAD","synthetic":false,"types":["os::syscall::gui::PAD"]},{"text":"impl Deref for PID_ALLOCATOR","synthetic":false,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Deref for KSTACK_ALLOCATOR","synthetic":false,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Deref for TASK_MANAGER","synthetic":false,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Deref for PID2PCB","synthetic":false,"types":["os::task::manager::PID2PCB"]},{"text":"impl Deref for PROCESSOR","synthetic":false,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Deref for INITPROC","synthetic":false,"types":["os::task::INITPROC"]},{"text":"impl Deref for TIMERS","synthetic":false,"types":["os::timer::TIMERS"]},{"text":"impl Deref for DEV_NON_BLOCKING_ACCESS","synthetic":false,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; +implementors["os"] = [{"text":"impl Deref for BLOCK_DEVICE","synthetic":false,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl Deref for QUEUE_FRAMES","synthetic":false,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl Deref for UART","synthetic":false,"types":["os::drivers::chardev::UART"]},{"text":"impl Deref for GPU_DEVICE","synthetic":false,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl Deref for KEYBOARD_DEVICE","synthetic":false,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl Deref for MOUSE_DEVICE","synthetic":false,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl Deref for ROOT_INODE","synthetic":false,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl Deref for DRAWING_BOARD","synthetic":false,"types":["os::gui::paint::DRAWING_BOARD"]},{"text":"impl Deref for FRAME_ALLOCATOR","synthetic":false,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl Deref for KERNEL_SPACE","synthetic":false,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl Deref for INTR_MASKING_INFO","synthetic":false,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<'a, T> Deref for UPIntrRefMut<'a, T>","synthetic":false,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl Deref for PID_ALLOCATOR","synthetic":false,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl Deref for KSTACK_ALLOCATOR","synthetic":false,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl Deref for TASK_MANAGER","synthetic":false,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl Deref for PID2PCB","synthetic":false,"types":["os::task::manager::PID2PCB"]},{"text":"impl Deref for PROCESSOR","synthetic":false,"types":["os::task::processor::PROCESSOR"]},{"text":"impl Deref for INITPROC","synthetic":false,"types":["os::task::INITPROC"]},{"text":"impl Deref for TIMERS","synthetic":false,"types":["os::timer::TIMERS"]},{"text":"impl Deref for DEV_NON_BLOCKING_ACCESS","synthetic":false,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/ch9-dev/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index 2dd7db7c..f63d14c1 100644 --- a/ch9-dev/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/ch9-dev/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl RefUnwindSafe for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl RefUnwindSafe for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl<SPI> RefUnwindSafe for SDCard<SPI> where
    SPI: RefUnwindSafe
","synthetic":true,"types":["os::drivers::block::sdcard::SDCard"]},{"text":"impl RefUnwindSafe for CMD","synthetic":true,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl RefUnwindSafe for InitError","synthetic":true,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl RefUnwindSafe for SDCardCSD","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl RefUnwindSafe for SDCardCID","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl RefUnwindSafe for SDCardInfo","synthetic":true,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl RefUnwindSafe for PERIPHERALS","synthetic":true,"types":["os::drivers::block::sdcard::PERIPHERALS"]},{"text":"impl !RefUnwindSafe for SDCardWrapper","synthetic":true,"types":["os::drivers::block::sdcard::SDCardWrapper"]},{"text":"impl !RefUnwindSafe for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl RefUnwindSafe for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::block::virtio_blk::QUEUE_FRAMES"]},{"text":"impl RefUnwindSafe for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl RefUnwindSafe for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl RefUnwindSafe for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl RefUnwindSafe for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl RefUnwindSafe for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl RefUnwindSafe for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl RefUnwindSafe for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl RefUnwindSafe for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !RefUnwindSafe for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl RefUnwindSafe for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl RefUnwindSafe for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !RefUnwindSafe for VirtIOGPU","synthetic":true,"types":["os::drivers::gpu::VirtIOGPU"]},{"text":"impl !RefUnwindSafe for VirtIOINPUT","synthetic":true,"types":["os::drivers::input::VirtIOINPUT"]},{"text":"impl RefUnwindSafe for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl RefUnwindSafe for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl RefUnwindSafe for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl RefUnwindSafe for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !RefUnwindSafe for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl !RefUnwindSafe for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl RefUnwindSafe for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl RefUnwindSafe for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl !RefUnwindSafe for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl RefUnwindSafe for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl !RefUnwindSafe for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl RefUnwindSafe for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl RefUnwindSafe for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl !RefUnwindSafe for Button","synthetic":true,"types":["os::gui::button::Button"]},{"text":"impl !RefUnwindSafe for ButtonInner","synthetic":true,"types":["os::gui::button::ButtonInner"]},{"text":"impl !RefUnwindSafe for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl !RefUnwindSafe for IconController","synthetic":true,"types":["os::gui::icon::IconController"]},{"text":"impl !RefUnwindSafe for IconControllerInner","synthetic":true,"types":["os::gui::icon::IconControllerInner"]},{"text":"impl !RefUnwindSafe for ImageComp","synthetic":true,"types":["os::gui::image::ImageComp"]},{"text":"impl !RefUnwindSafe for ImageInner","synthetic":true,"types":["os::gui::image::ImageInner"]},{"text":"impl !RefUnwindSafe for Panel","synthetic":true,"types":["os::gui::panel::Panel"]},{"text":"impl !RefUnwindSafe for PanelInner","synthetic":true,"types":["os::gui::panel::PanelInner"]},{"text":"impl !RefUnwindSafe for Terminal","synthetic":true,"types":["os::gui::terminal::Terminal"]},{"text":"impl !RefUnwindSafe for TerminalInner","synthetic":true,"types":["os::gui::terminal::TerminalInner"]},{"text":"impl RefUnwindSafe for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl RefUnwindSafe for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl RefUnwindSafe for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl RefUnwindSafe for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> RefUnwindSafe for SimpleRange<T> where
    T: RefUnwindSafe
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> RefUnwindSafe for SimpleRangeIterator<T> where
    T: RefUnwindSafe
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl RefUnwindSafe for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl RefUnwindSafe for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl RefUnwindSafe for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl RefUnwindSafe for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl RefUnwindSafe for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl RefUnwindSafe for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl RefUnwindSafe for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl RefUnwindSafe for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl RefUnwindSafe for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl RefUnwindSafe for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl RefUnwindSafe for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl RefUnwindSafe for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl RefUnwindSafe for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !RefUnwindSafe for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl !RefUnwindSafe for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl !RefUnwindSafe for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !RefUnwindSafe for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl !RefUnwindSafe for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !RefUnwindSafe for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl !RefUnwindSafe for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> !RefUnwindSafe for UPSafeCellRaw<T>","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl RefUnwindSafe for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl RefUnwindSafe for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> !RefUnwindSafe for UPIntrFreeCell<T>","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !RefUnwindSafe for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl RefUnwindSafe for DESKTOP","synthetic":true,"types":["os::syscall::gui::DESKTOP"]},{"text":"impl RefUnwindSafe for PAD","synthetic":true,"types":["os::syscall::gui::PAD"]},{"text":"impl RefUnwindSafe for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl RefUnwindSafe for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl RefUnwindSafe for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl RefUnwindSafe for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl RefUnwindSafe for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl RefUnwindSafe for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl !RefUnwindSafe for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl !RefUnwindSafe for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl RefUnwindSafe for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl RefUnwindSafe for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !RefUnwindSafe for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl !RefUnwindSafe for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl !RefUnwindSafe for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl RefUnwindSafe for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl RefUnwindSafe for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !RefUnwindSafe for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl !RefUnwindSafe for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl RefUnwindSafe for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl RefUnwindSafe for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl !RefUnwindSafe for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl RefUnwindSafe for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl RefUnwindSafe for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl RefUnwindSafe for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; +implementors["os"] = [{"text":"impl RefUnwindSafe for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl RefUnwindSafe for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !RefUnwindSafe for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl RefUnwindSafe for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl RefUnwindSafe for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl RefUnwindSafe for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl RefUnwindSafe for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl RefUnwindSafe for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl RefUnwindSafe for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl RefUnwindSafe for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl RefUnwindSafe for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl RefUnwindSafe for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl RefUnwindSafe for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !RefUnwindSafe for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl RefUnwindSafe for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl RefUnwindSafe for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !RefUnwindSafe for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl !RefUnwindSafe for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl RefUnwindSafe for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl RefUnwindSafe for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl RefUnwindSafe for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl RefUnwindSafe for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !RefUnwindSafe for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl !RefUnwindSafe for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl RefUnwindSafe for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl RefUnwindSafe for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl !RefUnwindSafe for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl RefUnwindSafe for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl !RefUnwindSafe for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl RefUnwindSafe for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl RefUnwindSafe for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl !RefUnwindSafe for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl !RefUnwindSafe for DrawingBoard","synthetic":true,"types":["os::gui::paint::DrawingBoard"]},{"text":"impl RefUnwindSafe for DRAWING_BOARD","synthetic":true,"types":["os::gui::paint::DRAWING_BOARD"]},{"text":"impl RefUnwindSafe for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl RefUnwindSafe for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl RefUnwindSafe for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl RefUnwindSafe for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> RefUnwindSafe for SimpleRange<T> where
    T: RefUnwindSafe
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> RefUnwindSafe for SimpleRangeIterator<T> where
    T: RefUnwindSafe
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl RefUnwindSafe for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl RefUnwindSafe for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl RefUnwindSafe for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl RefUnwindSafe for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl RefUnwindSafe for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl RefUnwindSafe for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl RefUnwindSafe for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl RefUnwindSafe for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl RefUnwindSafe for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl RefUnwindSafe for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl RefUnwindSafe for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl RefUnwindSafe for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl RefUnwindSafe for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !RefUnwindSafe for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl !RefUnwindSafe for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl !RefUnwindSafe for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !RefUnwindSafe for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl !RefUnwindSafe for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !RefUnwindSafe for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl !RefUnwindSafe for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> !RefUnwindSafe for UPSafeCellRaw<T>","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl RefUnwindSafe for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl RefUnwindSafe for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> !RefUnwindSafe for UPIntrFreeCell<T>","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !RefUnwindSafe for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl RefUnwindSafe for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl RefUnwindSafe for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl RefUnwindSafe for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl RefUnwindSafe for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl RefUnwindSafe for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl RefUnwindSafe for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl !RefUnwindSafe for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl !RefUnwindSafe for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl RefUnwindSafe for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl RefUnwindSafe for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !RefUnwindSafe for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl !RefUnwindSafe for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl !RefUnwindSafe for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl RefUnwindSafe for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl RefUnwindSafe for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !RefUnwindSafe for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl !RefUnwindSafe for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl RefUnwindSafe for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl RefUnwindSafe for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl !RefUnwindSafe for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl RefUnwindSafe for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl RefUnwindSafe for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl RefUnwindSafe for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/ch9-dev/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index 7851ef9c..7200426b 100644 --- a/ch9-dev/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/ch9-dev/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl UnwindSafe for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl UnwindSafe for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl<SPI> UnwindSafe for SDCard<SPI> where
    SPI: UnwindSafe
","synthetic":true,"types":["os::drivers::block::sdcard::SDCard"]},{"text":"impl UnwindSafe for CMD","synthetic":true,"types":["os::drivers::block::sdcard::CMD"]},{"text":"impl UnwindSafe for InitError","synthetic":true,"types":["os::drivers::block::sdcard::InitError"]},{"text":"impl UnwindSafe for SDCardCSD","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCSD"]},{"text":"impl UnwindSafe for SDCardCID","synthetic":true,"types":["os::drivers::block::sdcard::SDCardCID"]},{"text":"impl UnwindSafe for SDCardInfo","synthetic":true,"types":["os::drivers::block::sdcard::SDCardInfo"]},{"text":"impl UnwindSafe for PERIPHERALS","synthetic":true,"types":["os::drivers::block::sdcard::PERIPHERALS"]},{"text":"impl UnwindSafe for SDCardWrapper","synthetic":true,"types":["os::drivers::block::sdcard::SDCardWrapper"]},{"text":"impl !UnwindSafe for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl UnwindSafe for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::block::virtio_blk::QUEUE_FRAMES"]},{"text":"impl UnwindSafe for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl UnwindSafe for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl UnwindSafe for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl UnwindSafe for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl UnwindSafe for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl UnwindSafe for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl UnwindSafe for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl UnwindSafe for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !UnwindSafe for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl UnwindSafe for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl UnwindSafe for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !UnwindSafe for VirtIOGPU","synthetic":true,"types":["os::drivers::gpu::VirtIOGPU"]},{"text":"impl !UnwindSafe for VirtIOINPUT","synthetic":true,"types":["os::drivers::input::VirtIOINPUT"]},{"text":"impl UnwindSafe for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl UnwindSafe for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl UnwindSafe for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl UnwindSafe for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !UnwindSafe for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl !UnwindSafe for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl UnwindSafe for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl UnwindSafe for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl !UnwindSafe for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl UnwindSafe for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl !UnwindSafe for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl UnwindSafe for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl UnwindSafe for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl !UnwindSafe for Button","synthetic":true,"types":["os::gui::button::Button"]},{"text":"impl !UnwindSafe for ButtonInner","synthetic":true,"types":["os::gui::button::ButtonInner"]},{"text":"impl !UnwindSafe for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl !UnwindSafe for IconController","synthetic":true,"types":["os::gui::icon::IconController"]},{"text":"impl !UnwindSafe for IconControllerInner","synthetic":true,"types":["os::gui::icon::IconControllerInner"]},{"text":"impl !UnwindSafe for ImageComp","synthetic":true,"types":["os::gui::image::ImageComp"]},{"text":"impl !UnwindSafe for ImageInner","synthetic":true,"types":["os::gui::image::ImageInner"]},{"text":"impl !UnwindSafe for Panel","synthetic":true,"types":["os::gui::panel::Panel"]},{"text":"impl !UnwindSafe for PanelInner","synthetic":true,"types":["os::gui::panel::PanelInner"]},{"text":"impl !UnwindSafe for Terminal","synthetic":true,"types":["os::gui::terminal::Terminal"]},{"text":"impl !UnwindSafe for TerminalInner","synthetic":true,"types":["os::gui::terminal::TerminalInner"]},{"text":"impl UnwindSafe for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl UnwindSafe for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl UnwindSafe for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl UnwindSafe for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> UnwindSafe for SimpleRange<T> where
    T: UnwindSafe
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> UnwindSafe for SimpleRangeIterator<T> where
    T: UnwindSafe
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl UnwindSafe for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl UnwindSafe for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl UnwindSafe for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl UnwindSafe for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl UnwindSafe for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl UnwindSafe for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl UnwindSafe for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl UnwindSafe for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl UnwindSafe for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl UnwindSafe for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl UnwindSafe for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl !UnwindSafe for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl !UnwindSafe for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !UnwindSafe for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl !UnwindSafe for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl UnwindSafe for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !UnwindSafe for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl !UnwindSafe for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !UnwindSafe for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl !UnwindSafe for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> UnwindSafe for UPSafeCellRaw<T> where
    T: UnwindSafe
","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl UnwindSafe for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl UnwindSafe for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> UnwindSafe for UPIntrFreeCell<T> where
    T: UnwindSafe
","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !UnwindSafe for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl UnwindSafe for DESKTOP","synthetic":true,"types":["os::syscall::gui::DESKTOP"]},{"text":"impl UnwindSafe for PAD","synthetic":true,"types":["os::syscall::gui::PAD"]},{"text":"impl UnwindSafe for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl UnwindSafe for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl UnwindSafe for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl UnwindSafe for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl UnwindSafe for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl UnwindSafe for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl !UnwindSafe for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl !UnwindSafe for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl UnwindSafe for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl UnwindSafe for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !UnwindSafe for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl !UnwindSafe for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl !UnwindSafe for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl UnwindSafe for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl UnwindSafe for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !UnwindSafe for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl !UnwindSafe for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl UnwindSafe for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl UnwindSafe for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl !UnwindSafe for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl UnwindSafe for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl UnwindSafe for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl UnwindSafe for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; +implementors["os"] = [{"text":"impl UnwindSafe for RISCV64","synthetic":true,"types":["os::board::RISCV64"]},{"text":"impl UnwindSafe for Stdout","synthetic":true,"types":["os::console::Stdout"]},{"text":"impl !UnwindSafe for VirtIOBlock","synthetic":true,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]},{"text":"impl UnwindSafe for BLOCK_DEVICE","synthetic":true,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl UnwindSafe for QUEUE_FRAMES","synthetic":true,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl UnwindSafe for VirtioHal","synthetic":true,"types":["os::drivers::bus::virtio::VirtioHal"]},{"text":"impl UnwindSafe for IER","synthetic":true,"types":["os::drivers::chardev::ns16550a::IER"]},{"text":"impl UnwindSafe for LSR","synthetic":true,"types":["os::drivers::chardev::ns16550a::LSR"]},{"text":"impl UnwindSafe for MCR","synthetic":true,"types":["os::drivers::chardev::ns16550a::MCR"]},{"text":"impl UnwindSafe for ReadWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::ReadWithoutDLAB"]},{"text":"impl UnwindSafe for WriteWithoutDLAB","synthetic":true,"types":["os::drivers::chardev::ns16550a::WriteWithoutDLAB"]},{"text":"impl UnwindSafe for NS16550aRaw","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aRaw"]},{"text":"impl UnwindSafe for NS16550aInner","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550aInner"]},{"text":"impl<const BASE_ADDR: usize> !UnwindSafe for NS16550a<BASE_ADDR>","synthetic":true,"types":["os::drivers::chardev::ns16550a::NS16550a"]},{"text":"impl UnwindSafe for UART","synthetic":true,"types":["os::drivers::chardev::UART"]},{"text":"impl UnwindSafe for GPU_DEVICE","synthetic":true,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl !UnwindSafe for VirtIOGpuWrapper","synthetic":true,"types":["os::drivers::gpu::VirtIOGpuWrapper"]},{"text":"impl !UnwindSafe for VirtIOInputWrapper","synthetic":true,"types":["os::drivers::input::VirtIOInputWrapper"]},{"text":"impl UnwindSafe for KEYBOARD_DEVICE","synthetic":true,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl UnwindSafe for MOUSE_DEVICE","synthetic":true,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl UnwindSafe for PLIC","synthetic":true,"types":["os::drivers::plic::PLIC"]},{"text":"impl UnwindSafe for IntrTargetPriority","synthetic":true,"types":["os::drivers::plic::IntrTargetPriority"]},{"text":"impl !UnwindSafe for OSInode","synthetic":true,"types":["os::fs::inode::OSInode"]},{"text":"impl !UnwindSafe for OSInodeInner","synthetic":true,"types":["os::fs::inode::OSInodeInner"]},{"text":"impl UnwindSafe for ROOT_INODE","synthetic":true,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl UnwindSafe for OpenFlags","synthetic":true,"types":["os::fs::inode::OpenFlags"]},{"text":"impl !UnwindSafe for Pipe","synthetic":true,"types":["os::fs::pipe::Pipe"]},{"text":"impl UnwindSafe for RingBufferStatus","synthetic":true,"types":["os::fs::pipe::RingBufferStatus"]},{"text":"impl !UnwindSafe for PipeRingBuffer","synthetic":true,"types":["os::fs::pipe::PipeRingBuffer"]},{"text":"impl UnwindSafe for Stdin","synthetic":true,"types":["os::fs::stdio::Stdin"]},{"text":"impl UnwindSafe for Stdout","synthetic":true,"types":["os::fs::stdio::Stdout"]},{"text":"impl !UnwindSafe for Graphics","synthetic":true,"types":["os::gui::graphic::Graphics"]},{"text":"impl !UnwindSafe for DrawingBoard","synthetic":true,"types":["os::gui::paint::DrawingBoard"]},{"text":"impl UnwindSafe for DRAWING_BOARD","synthetic":true,"types":["os::gui::paint::DRAWING_BOARD"]},{"text":"impl UnwindSafe for PhysAddr","synthetic":true,"types":["os::mm::address::PhysAddr"]},{"text":"impl UnwindSafe for VirtAddr","synthetic":true,"types":["os::mm::address::VirtAddr"]},{"text":"impl UnwindSafe for PhysPageNum","synthetic":true,"types":["os::mm::address::PhysPageNum"]},{"text":"impl UnwindSafe for VirtPageNum","synthetic":true,"types":["os::mm::address::VirtPageNum"]},{"text":"impl<T> UnwindSafe for SimpleRange<T> where
    T: UnwindSafe
","synthetic":true,"types":["os::mm::address::SimpleRange"]},{"text":"impl<T> UnwindSafe for SimpleRangeIterator<T> where
    T: UnwindSafe
","synthetic":true,"types":["os::mm::address::SimpleRangeIterator"]},{"text":"impl UnwindSafe for FrameTracker","synthetic":true,"types":["os::mm::frame_allocator::FrameTracker"]},{"text":"impl UnwindSafe for StackFrameAllocator","synthetic":true,"types":["os::mm::frame_allocator::StackFrameAllocator"]},{"text":"impl UnwindSafe for FRAME_ALLOCATOR","synthetic":true,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl UnwindSafe for KERNEL_SPACE","synthetic":true,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl UnwindSafe for MemorySet","synthetic":true,"types":["os::mm::memory_set::MemorySet"]},{"text":"impl UnwindSafe for MapArea","synthetic":true,"types":["os::mm::memory_set::MapArea"]},{"text":"impl UnwindSafe for MapType","synthetic":true,"types":["os::mm::memory_set::MapType"]},{"text":"impl UnwindSafe for MapPermission","synthetic":true,"types":["os::mm::memory_set::MapPermission"]},{"text":"impl UnwindSafe for PTEFlags","synthetic":true,"types":["os::mm::page_table::PTEFlags"]},{"text":"impl UnwindSafe for PageTableEntry","synthetic":true,"types":["os::mm::page_table::PageTableEntry"]},{"text":"impl UnwindSafe for PageTable","synthetic":true,"types":["os::mm::page_table::PageTable"]},{"text":"impl !UnwindSafe for UserBuffer","synthetic":true,"types":["os::mm::page_table::UserBuffer"]},{"text":"impl !UnwindSafe for UserBufferIterator","synthetic":true,"types":["os::mm::page_table::UserBufferIterator"]},{"text":"impl !UnwindSafe for Condvar","synthetic":true,"types":["os::sync::condvar::Condvar"]},{"text":"impl !UnwindSafe for CondvarInner","synthetic":true,"types":["os::sync::condvar::CondvarInner"]},{"text":"impl UnwindSafe for MutexSpin","synthetic":true,"types":["os::sync::mutex::MutexSpin"]},{"text":"impl !UnwindSafe for MutexBlocking","synthetic":true,"types":["os::sync::mutex::MutexBlocking"]},{"text":"impl !UnwindSafe for MutexBlockingInner","synthetic":true,"types":["os::sync::mutex::MutexBlockingInner"]},{"text":"impl !UnwindSafe for Semaphore","synthetic":true,"types":["os::sync::semaphore::Semaphore"]},{"text":"impl !UnwindSafe for SemaphoreInner","synthetic":true,"types":["os::sync::semaphore::SemaphoreInner"]},{"text":"impl<T> UnwindSafe for UPSafeCellRaw<T> where
    T: UnwindSafe
","synthetic":true,"types":["os::sync::up::UPSafeCellRaw"]},{"text":"impl UnwindSafe for IntrMaskingInfo","synthetic":true,"types":["os::sync::up::IntrMaskingInfo"]},{"text":"impl UnwindSafe for INTR_MASKING_INFO","synthetic":true,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl<T> UnwindSafe for UPIntrFreeCell<T> where
    T: UnwindSafe
","synthetic":true,"types":["os::sync::up::UPIntrFreeCell"]},{"text":"impl<'a, T> !UnwindSafe for UPIntrRefMut<'a, T>","synthetic":true,"types":["os::sync::up::UPIntrRefMut"]},{"text":"impl UnwindSafe for TaskContext","synthetic":true,"types":["os::task::context::TaskContext"]},{"text":"impl UnwindSafe for RecycleAllocator","synthetic":true,"types":["os::task::id::RecycleAllocator"]},{"text":"impl UnwindSafe for PID_ALLOCATOR","synthetic":true,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl UnwindSafe for KSTACK_ALLOCATOR","synthetic":true,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl UnwindSafe for PidHandle","synthetic":true,"types":["os::task::id::PidHandle"]},{"text":"impl UnwindSafe for KernelStack","synthetic":true,"types":["os::task::id::KernelStack"]},{"text":"impl !UnwindSafe for TaskUserRes","synthetic":true,"types":["os::task::id::TaskUserRes"]},{"text":"impl !UnwindSafe for TaskManager","synthetic":true,"types":["os::task::manager::TaskManager"]},{"text":"impl UnwindSafe for TASK_MANAGER","synthetic":true,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl UnwindSafe for PID2PCB","synthetic":true,"types":["os::task::manager::PID2PCB"]},{"text":"impl !UnwindSafe for ProcessControlBlock","synthetic":true,"types":["os::task::process::ProcessControlBlock"]},{"text":"impl !UnwindSafe for ProcessControlBlockInner","synthetic":true,"types":["os::task::process::ProcessControlBlockInner"]},{"text":"impl !UnwindSafe for Processor","synthetic":true,"types":["os::task::processor::Processor"]},{"text":"impl UnwindSafe for PROCESSOR","synthetic":true,"types":["os::task::processor::PROCESSOR"]},{"text":"impl UnwindSafe for SignalFlags","synthetic":true,"types":["os::task::signal::SignalFlags"]},{"text":"impl !UnwindSafe for TaskControlBlock","synthetic":true,"types":["os::task::task::TaskControlBlock"]},{"text":"impl !UnwindSafe for TaskControlBlockInner","synthetic":true,"types":["os::task::task::TaskControlBlockInner"]},{"text":"impl UnwindSafe for TaskStatus","synthetic":true,"types":["os::task::task::TaskStatus"]},{"text":"impl UnwindSafe for INITPROC","synthetic":true,"types":["os::task::INITPROC"]},{"text":"impl !UnwindSafe for TimerCondVar","synthetic":true,"types":["os::timer::TimerCondVar"]},{"text":"impl UnwindSafe for TIMERS","synthetic":true,"types":["os::timer::TIMERS"]},{"text":"impl UnwindSafe for TrapContext","synthetic":true,"types":["os::trap::context::TrapContext"]},{"text":"impl UnwindSafe for DEV_NON_BLOCKING_ACCESS","synthetic":true,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/easy_fs/block_dev/trait.BlockDevice.js b/ch9-dev/implementors/easy_fs/block_dev/trait.BlockDevice.js index 1a85f316..41803dde 100644 --- a/ch9-dev/implementors/easy_fs/block_dev/trait.BlockDevice.js +++ b/ch9-dev/implementors/easy_fs/block_dev/trait.BlockDevice.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl BlockDevice for SDCardWrapper","synthetic":false,"types":["os::drivers::block::sdcard::SDCardWrapper"]},{"text":"impl BlockDevice for VirtIOBlock","synthetic":false,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]}]; +implementors["os"] = [{"text":"impl BlockDevice for VirtIOBlock","synthetic":false,"types":["os::drivers::block::virtio_blk::VirtIOBlock"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/lazy_static/trait.LazyStatic.js b/ch9-dev/implementors/lazy_static/trait.LazyStatic.js index 2d84b666..a87f9a36 100644 --- a/ch9-dev/implementors/lazy_static/trait.LazyStatic.js +++ b/ch9-dev/implementors/lazy_static/trait.LazyStatic.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["os"] = [{"text":"impl LazyStatic for PERIPHERALS","synthetic":false,"types":["os::drivers::block::sdcard::PERIPHERALS"]},{"text":"impl LazyStatic for QUEUE_FRAMES","synthetic":false,"types":["os::drivers::block::virtio_blk::QUEUE_FRAMES"]},{"text":"impl LazyStatic for BLOCK_DEVICE","synthetic":false,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl LazyStatic for UART","synthetic":false,"types":["os::drivers::chardev::UART"]},{"text":"impl LazyStatic for GPU_DEVICE","synthetic":false,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl LazyStatic for KEYBOARD_DEVICE","synthetic":false,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl LazyStatic for MOUSE_DEVICE","synthetic":false,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl LazyStatic for ROOT_INODE","synthetic":false,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl LazyStatic for FRAME_ALLOCATOR","synthetic":false,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl LazyStatic for KERNEL_SPACE","synthetic":false,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl LazyStatic for INTR_MASKING_INFO","synthetic":false,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl LazyStatic for DESKTOP","synthetic":false,"types":["os::syscall::gui::DESKTOP"]},{"text":"impl LazyStatic for PAD","synthetic":false,"types":["os::syscall::gui::PAD"]},{"text":"impl LazyStatic for PID_ALLOCATOR","synthetic":false,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl LazyStatic for KSTACK_ALLOCATOR","synthetic":false,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl LazyStatic for TASK_MANAGER","synthetic":false,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl LazyStatic for PID2PCB","synthetic":false,"types":["os::task::manager::PID2PCB"]},{"text":"impl LazyStatic for PROCESSOR","synthetic":false,"types":["os::task::processor::PROCESSOR"]},{"text":"impl LazyStatic for INITPROC","synthetic":false,"types":["os::task::INITPROC"]},{"text":"impl LazyStatic for TIMERS","synthetic":false,"types":["os::timer::TIMERS"]},{"text":"impl LazyStatic for DEV_NON_BLOCKING_ACCESS","synthetic":false,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; +implementors["os"] = [{"text":"impl LazyStatic for BLOCK_DEVICE","synthetic":false,"types":["os::drivers::block::BLOCK_DEVICE"]},{"text":"impl LazyStatic for QUEUE_FRAMES","synthetic":false,"types":["os::drivers::bus::virtio::QUEUE_FRAMES"]},{"text":"impl LazyStatic for UART","synthetic":false,"types":["os::drivers::chardev::UART"]},{"text":"impl LazyStatic for GPU_DEVICE","synthetic":false,"types":["os::drivers::gpu::GPU_DEVICE"]},{"text":"impl LazyStatic for KEYBOARD_DEVICE","synthetic":false,"types":["os::drivers::input::KEYBOARD_DEVICE"]},{"text":"impl LazyStatic for MOUSE_DEVICE","synthetic":false,"types":["os::drivers::input::MOUSE_DEVICE"]},{"text":"impl LazyStatic for ROOT_INODE","synthetic":false,"types":["os::fs::inode::ROOT_INODE"]},{"text":"impl LazyStatic for DRAWING_BOARD","synthetic":false,"types":["os::gui::paint::DRAWING_BOARD"]},{"text":"impl LazyStatic for FRAME_ALLOCATOR","synthetic":false,"types":["os::mm::frame_allocator::FRAME_ALLOCATOR"]},{"text":"impl LazyStatic for KERNEL_SPACE","synthetic":false,"types":["os::mm::memory_set::KERNEL_SPACE"]},{"text":"impl LazyStatic for INTR_MASKING_INFO","synthetic":false,"types":["os::sync::up::INTR_MASKING_INFO"]},{"text":"impl LazyStatic for PID_ALLOCATOR","synthetic":false,"types":["os::task::id::PID_ALLOCATOR"]},{"text":"impl LazyStatic for KSTACK_ALLOCATOR","synthetic":false,"types":["os::task::id::KSTACK_ALLOCATOR"]},{"text":"impl LazyStatic for TASK_MANAGER","synthetic":false,"types":["os::task::manager::TASK_MANAGER"]},{"text":"impl LazyStatic for PID2PCB","synthetic":false,"types":["os::task::manager::PID2PCB"]},{"text":"impl LazyStatic for PROCESSOR","synthetic":false,"types":["os::task::processor::PROCESSOR"]},{"text":"impl LazyStatic for INITPROC","synthetic":false,"types":["os::task::INITPROC"]},{"text":"impl LazyStatic for TIMERS","synthetic":false,"types":["os::timer::TIMERS"]},{"text":"impl LazyStatic for DEV_NON_BLOCKING_ACCESS","synthetic":false,"types":["os::DEV_NON_BLOCKING_ACCESS"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/os/drivers/gpu/trait.GPUDevice.js b/ch9-dev/implementors/os/drivers/gpu/trait.GpuDevice.js similarity index 100% rename from ch9-dev/implementors/os/drivers/gpu/trait.GPUDevice.js rename to ch9-dev/implementors/os/drivers/gpu/trait.GpuDevice.js diff --git a/ch9-dev/implementors/os/drivers/input/trait.INPUTDevice.js b/ch9-dev/implementors/os/drivers/input/trait.InputDevice.js similarity index 100% rename from ch9-dev/implementors/os/drivers/input/trait.INPUTDevice.js rename to ch9-dev/implementors/os/drivers/input/trait.InputDevice.js diff --git a/ch9-dev/implementors/os/gui/trait.Component.js b/ch9-dev/implementors/os/gui/trait.Component.js deleted file mode 100644 index 34fffcbd..00000000 --- a/ch9-dev/implementors/os/gui/trait.Component.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["os"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/implementors/virtio_drivers/hal/trait.Hal.js b/ch9-dev/implementors/virtio_drivers/hal/trait.Hal.js new file mode 100644 index 00000000..bb1cd804 --- /dev/null +++ b/ch9-dev/implementors/virtio_drivers/hal/trait.Hal.js @@ -0,0 +1,3 @@ +(function() {var implementors = {}; +implementors["os"] = [{"text":"impl Hal for VirtioHal","synthetic":false,"types":["os::drivers::bus::virtio::VirtioHal"]}]; +if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/ch9-dev/light.css b/ch9-dev/light.css index 289f10cf..a71085b0 100644 --- a/ch9-dev/light.css +++ b/ch9-dev/light.css @@ -1 +1 @@ - body{background-color:white;color:black;}h1,h2,h3,h4{color:black;}h1.fqn{border-bottom-color:#DDDDDD;}h2,h3,h4{border-bottom-color:#DDDDDD;}.in-band{background-color:white;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#F5F5F5;}pre,.rustdoc.source .example-wrap{background-color:#F5F5F5;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#F5F5F5;}*{scrollbar-color:rgba(36,37,39,0.6) #e6e6e6;}.sidebar{scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;}.rust-logo{}::-webkit-scrollbar-track{background-color:#ecebeb;}::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar::-webkit-scrollbar-track{background-color:#dcdcdc;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar .current,.sidebar a:hover{background-color:#fff;}.source .sidebar{background-color:#f1f1f1;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#FDFFD3 !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#ddd;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#4E4C4C;}.search-results a:hover{background-color:#ddd;}.search-results a:focus{color:#000 !important;background-color:#ccc;}.search-results a:focus span{color:#000 !important;}a.result-trait:focus{background-color:#c7b6ff;}a.result-traitalias:focus{background-color:#c7b6ff;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-enum:focus{background-color:#e7b1a0;}a.result-struct:focus{background-color:#e7b1a0;}a.result-union:focus{background-color:#e7b1a0;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#c6afb3;}a.result-type:focus{background-color:#e7b1a0;}a.result-associatedtype:focus{background-color:#afc6e4;}a.result-foreigntype:focus{background-color:#e7b1a0;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#8ce488;}a.result-constant:focus,a.result-static:focus{background-color:#afc6e4;}a.result-primitive:focus{background-color:#e7b1a0;}a.result-keyword:focus{background-color:#afc6e4;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#AD378A;}.content span.struct,.content a.struct,.block a.current.struct{color:#AD378A;}.content span.type,.content a.type,.block a.current.type{color:#AD378A;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#3873AD;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#3873AD;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#068000;}.content span.union,.content a.union,.block a.current.union{color:#AD378A;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#3873AD;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#AD378A;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#3873AD;}.content span.trait,.content a.trait,.block a.current.trait{color:#6E4FC9;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#5137AD;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#AD7C37;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#3873AD;}.sidebar a{color:#356da4;}.sidebar a.current.enum{color:#a63283;}.sidebar a.current.struct{color:#a63283;}.sidebar a.current.type{color:#a63283;}.sidebar a.current.associatedtype{color:#356da4;}.sidebar a.current.foreigntype{color:#356da4;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#067901;}.sidebar a.current.union{color:#a63283;}.sidebar a.current.constant .sidebar a.current.static{color:#356da4;}.sidebar a.current.primitive{color:#a63283;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#356da4;}.sidebar a.current.trait{color:#6849c3;}.sidebar a.current.traitalias{color:#4b349e;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#a67736;}.sidebar a.current.keyword{color:#356da4;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#3873AD;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#000;}.search-results a{color:initial;}a.test-arrow{color:#f5f5f5;}body.source .example-wrap pre.rust a{background:#eee;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}#crate-search,.search-input{color:#555;background-color:white;border-color:#e0e0e0;}.search-input:focus{border-color:#66afe9;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;}.stab.portability>code{background:none;}#help>div{background:#e9e9e9;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:black;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#8959A8;}pre.rust .kw-2,pre.rust .prelude-ty{color:#4271AE;}pre.rust .number,pre.rust .string{color:#718C00;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#C82829;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#B76514;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#c7c7c7;}a.test-arrow{background-color:rgb(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background:#FDFFD3;border-right:3px solid #AD7C37;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.5);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.5);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#3873AD;}.tooltip::after{background-color:#000;color:#fff;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}.notable-traits-tooltiptext .notable{border-bottom-color:#DDDDDD;}#titles>button:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>button:hover,#titles>button.selected{background-color:#ffffff;border-top-color:#0089ff;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#F5F5F5;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#F5F5F5;border-right-color:#000;}#sidebar-filler{background-color:#F5F5F5;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background-color:#fff;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#717171;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(35%);}#theme-choices{border-color:#ccc;background-color:#fff;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#eee;}@media (max-width:700px){#theme-picker{background:#fff;}}.search-results .result-name span.alias{color:#000;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#F5F5F5;}#sidebar-toggle:hover{background-color:#E0E0E0;}#source-sidebar{background-color:#F5F5F5;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#E0E0E0;}div.files>.selected{background-color:#fff;}.setting-line>.title{border-bottom-color:#D5D5D5;} \ No newline at end of file +:root{--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--sidebar-background-color:#F5F5F5;--sidebar-background-color-hover:#E0E0E0;--code-block-background-color:#F5F5F5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;}.slider{background-color:#ccc;}.slider:before{background-color:white;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}.in-band{background-color:white;}.rust-logo{}.sidebar .current,.sidebar a:hover{background-color:#fff;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#FDFFD3 !important;}.docblock table td,.docblock table th{border-color:#ddd;}.search-results a:hover{background-color:#ddd;}.search-results a:focus{color:#000 !important;background-color:#ccc;}.search-results a:focus span{color:#000 !important;}a.result-trait:focus{background-color:#c7b6ff;}a.result-traitalias:focus{background-color:#c7b6ff;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-enum:focus{background-color:#e7b1a0;}a.result-struct:focus{background-color:#e7b1a0;}a.result-union:focus{background-color:#e7b1a0;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#c6afb3;}a.result-type:focus{background-color:#e7b1a0;}a.result-associatedtype:focus{background-color:#afc6e4;}a.result-foreigntype:focus{background-color:#e7b1a0;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#8ce488;}a.result-constant:focus,a.result-static:focus{background-color:#afc6e4;}a.result-primitive:focus{background-color:#e7b1a0;}a.result-keyword:focus{background-color:#afc6e4;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#AD378A;}.content span.struct,.content a.struct,.block a.current.struct{color:#AD378A;}.content span.type,.content a.type,.block a.current.type{color:#AD378A;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#3873AD;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#3873AD;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#068000;}.content span.union,.content a.union,.block a.current.union{color:#AD378A;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#3873AD;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#AD378A;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#3873AD;}.content span.trait,.content a.trait,.block a.current.trait{color:#6E4FC9;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#5137AD;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#AD7C37;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#3873AD;}.sidebar a{color:#356da4;}.sidebar a.current.enum{color:#a63283;}.sidebar a.current.struct{color:#a63283;}.sidebar a.current.type{color:#a63283;}.sidebar a.current.associatedtype{color:#356da4;}.sidebar a.current.foreigntype{color:#356da4;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#067901;}.sidebar a.current.union{color:#a63283;}.sidebar a.current.constant .sidebar a.current.static{color:#356da4;}.sidebar a.current.primitive{color:#a63283;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#356da4;}.sidebar a.current.trait{color:#6849c3;}.sidebar a.current.traitalias{color:#4b349e;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#a67736;}.sidebar a.current.keyword{color:#356da4;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#3873AD;}body.source .example-wrap pre.rust a{background:#eee;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before{color:#999;}#crate-search,.search-input{background-color:white;border-color:#e0e0e0;}#crate-search{border-color:#e0e0e0 !important;}.search-input:focus{border-color:#66afe9;}.stab.empty-impl{background:#FFF5D6;border-color:#FFC600;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;}.stab.must_implement{background:#F3DFFF;border-color:#b07bdb;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;}.stab.portability>code{background:none;}.rightside,.out-of-band{color:grey;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#8959A8;}pre.rust .kw-2,pre.rust .prelude-ty{color:#4271AE;}pre.rust .number,pre.rust .string{color:#718C00;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#C82829;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#B76514;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#c7c7c7;}a.test-arrow{color:#f5f5f5;background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background:#FDFFD3;border-right:3px solid #AD7C37;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.5);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.5);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#3873AD;}.tooltip::after{background-color:#000;color:#fff;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}.notable-traits-tooltiptext .notable{border-bottom-color:#DDDDDD;}#titles>button:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>button:hover,#titles>button.selected{background-color:#ffffff;border-top-color:#0089ff;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-elems{border-right-color:#000;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#settings-menu>a,#help-button>button{border-color:#e0e0e0;background-color:#fff;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>button:hover,#help-button>button:focus{border-color:#717171;}.popover,.popover::before,#help-button span.top,#help-button span.bottom{border-color:#DDDDDD;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(35%);}#theme-choices{border-color:#ccc;background-color:#fff;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#eee;}.search-results .result-name span.alias{color:#000;}.search-results .result-name span.grey{color:#999;}#source-sidebar>.title{border-bottom-color:#ccc;}#source-sidebar div.files>a:hover,details.dir-entry summary:hover,#source-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:#E0E0E0;}#source-sidebar div.files>a.selected{background-color:#fff;}.scraped-example-list .scrape-help{border-color:#555;color:#333;}.scraped-example-list .scrape-help:hover{border-color:black;color:black;}.more-examples-toggle summary,.more-examples-toggle .hide-more{color:#999;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.toggle-line-inner{background:#ccc;}.toggle-line:hover .toggle-line-inner{background:#999;} \ No newline at end of file diff --git a/ch9-dev/main.js b/ch9-dev/main.js index 5c0ce8ad..c2141ac5 100644 --- a/ch9-dev/main.js +++ b/ch9-dev/main.js @@ -1,8 +1,8 @@ -if(!String.prototype.startsWith){String.prototype.startsWith=function(searchString,position){position=position||0;return this.indexOf(searchString,position)===position}}if(!String.prototype.endsWith){String.prototype.endsWith=function(suffix,length){var l=length||this.length;return this.indexOf(suffix,l-suffix.length)!==-1}}if(!DOMTokenList.prototype.add){DOMTokenList.prototype.add=function(className){if(className&&!hasClass(this,className)){if(this.className&&this.className.length>0){this.className+=" "+className}else{this.className=className}}}}if(!DOMTokenList.prototype.remove){DOMTokenList.prototype.remove=function(className){if(className&&this.className){this.className=(" "+this.className+" ").replace(" "+className+" "," ").trim()}}}function getVar(name){var el=document.getElementById("rustdoc-vars");if(el){return el.attributes["data-"+name].value}else{return null}}function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}(function(){window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");window.searchJS=resourcePath("search",".js");window.searchIndexJS=resourcePath("search-index",".js");var sidebarVars=document.getElementById("sidebar-vars");if(sidebarVars){window.sidebarCurrent={name:sidebarVars.attributes["data-name"].value,ty:sidebarVars.attributes["data-ty"].value,relpath:sidebarVars.attributes["data-relpath"].value,};var mobileLocationTitle=document.querySelector(".mobile-topbar h2.location");var locationTitle=document.querySelector(".sidebar h2.location");if(mobileLocationTitle&&locationTitle){mobileLocationTitle.innerHTML=locationTitle.innerHTML}}}());function getVirtualKey(ev){if("key"in ev&&typeof ev.key!="undefined"){return ev.key}var c=ev.charCode||ev.keyCode;if(c==27){return"Escape"}return String.fromCharCode(c)}var THEME_PICKER_ELEMENT_ID="theme-picker";var THEMES_ELEMENT_ID="theme-choices";var MAIN_ID="main-content";function getThemesElement(){return document.getElementById(THEMES_ELEMENT_ID)}function getThemePickerElement(){return document.getElementById(THEME_PICKER_ELEMENT_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function showThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}(function(){if(!document.location.href.startsWith("file:///")){return}var themeChoices=getThemesElement();var themePicker=getThemePickerElement();var availableThemes=getVar("themes").split(",");removeClass(themeChoices.parentElement,"hidden");function switchThemeButtonState(){if(themeChoices.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}}function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!==THEME_PICKER_ELEMENT_ID&&(!active.parentNode||active.parentNode.id!==THEMES_ELEMENT_ID)&&(!related||(related.id!==THEME_PICKER_ELEMENT_ID&&(!related.parentNode||related.parentNode.id!==THEMES_ELEMENT_ID)))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;availableThemes.forEach(function(item){var but=document.createElement("button");but.textContent=item;but.onclick=function(){switchTheme(window.currentTheme,window.mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themeChoices.appendChild(but)})}());(function(){"use strict";window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:function(){return document.getElementById("search")},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:function(){if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},focus:function(){searchState.input.focus()},defocus:function(){searchState.input.blur()},showResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(main,"hidden");removeClass(search,"hidden");searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(search,"hidden");removeClass(main,"hidden");document.title=searchState.titleBeforeSearch;if(searchState.browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:function(){var params={};window.location.search.substring(1).split("&").map(function(s){var pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},browserSupportsHistoryApi:function(){return window.history&&typeof window.history.pushState==="function"},setup:function(){var search_input=searchState.input;if(!searchState.input){return}function loadScript(url){var script=document.createElement('script');script.src=url;document.head.append(script)}var searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(window.searchJS);loadScript(window.searchIndexJS)}}search_input.addEventListener("focus",function(){search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!=''){loadSearch()}var params=searchState.getQueryStringParams();if(params.search!==undefined){var search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search);loadSearch()}},};function getPageId(){if(window.location.hash){var tmp=window.location.hash.replace(/^#/,"");if(tmp.length>0){return tmp}}return null}var toggleAllDocsId="toggle-all-docs";var main=document.getElementById(MAIN_ID);var savedHash="";function handleHashes(ev){var elem;var search=searchState.outputElement();if(ev!==null&&search&&!hasClass(search,"hidden")&&ev.newURL){searchState.hideResults(search);var hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(searchState.browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}function onHashChange(ev){var sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown");handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function getHelpElement(build){if(build){buildHelperPopup()}return document.getElementById("help")}function displayHelp(display,ev,help){if(display){help=help?help:getHelpElement(true);if(hasClass(help,"hidden")){ev.preventDefault();removeClass(help,"hidden");addClass(document.body,"blur")}}else{help=help?help:getHelpElement(false);if(help&&!hasClass(help,"hidden")){ev.preventDefault();addClass(help,"hidden");removeClass(document.body,"blur")}}}function handleEscape(ev){var help=getHelpElement(false);var search=searchState.outputElement();if(help&&!hasClass(help,"hidden")){displayHelp(false,ev,help)}else if(search&&!hasClass(search,"hidden")){searchState.clearInputTimeout();ev.preventDefault();searchState.hideResults(search)}searchState.defocus();hideThemeButtonState()}var disableShortcuts=getSettingValue("disable-shortcuts")==="true";function handleShortcut(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":displayHelp(false,ev);ev.preventDefault();searchState.focus();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":displayHelp(true,ev);break;case"t":case"T":displayHelp(false,ev);ev.preventDefault();var themePicker=getThemePickerElement();themePicker.click();themePicker.focus();break;default:if(getThemePickerElement().parentNode.contains(ev.target)){handleThemeKeyDown(ev)}}}}function handleThemeKeyDown(ev){var active=document.activeElement;var themes=getThemesElement();switch(getVirtualKey(ev)){case"ArrowUp":ev.preventDefault();if(active.previousElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.previousElementSibling.focus()}else{showThemeButtonState();themes.lastElementChild.focus()}break;case"ArrowDown":ev.preventDefault();if(active.nextElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.nextElementSibling.focus()}else{showThemeButtonState();themes.firstElementChild.focus()}break;case"Enter":case"Return":case"Space":if(ev.target.id===THEME_PICKER_ELEMENT_ID&&themes.style.display==="none"){ev.preventDefault();showThemeButtonState();themes.firstElementChild.focus()}break;case"Home":ev.preventDefault();themes.firstElementChild.focus();break;case"End":ev.preventDefault();themes.lastElementChild.focus();break}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);(function(){var x=document.getElementsByClassName("version-selector");if(x.length>0){x[0].onchange=function(){var i,match,url=document.location.href,stripped="",len=window.rootPath.match(/\.\.\//g).length+1;for(i=0;i${longty}`;div.appendChild(h3);var ul=document.createElement("ul");for(var i=0,len=filtered.length;i .in-band > .trait").textContent;var baseIdName="impl-"+traitName+"-";var libs=Object.getOwnPropertyNames(imp);for(var i=0,llength=libs.length;i summary:not(.hideme)"),function(el){el.addEventListener("click",function(e){if(e.target.tagName!="SUMMARY"&&e.target.tagName!="A"){e.preventDefault()}})});onEachLazy(document.getElementsByClassName("notable-traits"),function(e){e.onclick=function(){this.getElementsByClassName('notable-traits-tooltiptext')[0].classList.toggle("force-tooltip")}});var sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",function(){var sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){addClass(sidebar,"shown")}else{removeClass(sidebar,"shown")}})}var buildHelperPopup=function(){var popup=document.createElement("aside");addClass(popup,"hidden");popup.id="help";popup.addEventListener("click",function(ev){if(ev.target===popup){displayHelp(false,ev)}});var book_info=document.createElement("span");book_info.className="top";book_info.innerHTML="You can find more information in \ - the rustdoc book.";var container=document.createElement("div");var shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["T","Focus the theme picker menu"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(function(x){return"
"+x[0].split(" ").map(function(y,index){return(index&1)===0?""+y+"":" "+y+" "}).join("")+"
"+x[1]+"
"}).join("");var div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";var infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \ +"use strict";function getVar(name){const el=document.getElementById("rustdoc-vars");if(el){return el.attributes["data-"+name].value}else{return null}}function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function elemIsInParent(elem,parent){while(elem&&elem!==document.body){if(elem===parent){return true}elem=elem.parentElement}return false}function blurHandler(event,parentElem,hideCallback){if(!elemIsInParent(document.activeElement,parentElem)&&!elemIsInParent(event.relatedTarget,parentElem)){hideCallback()}}(function(){window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate")}());function setMobileTopbar(){const mobileLocationTitle=document.querySelector(".mobile-topbar h2.location");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileLocationTitle&&locationTitle){mobileLocationTitle.innerHTML=locationTitle.innerHTML}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function loadCss(cssFileName){const link=document.createElement("link");link.href=resourcePath(cssFileName,".css");link.type="text/css";link.rel="stylesheet";document.getElementsByTagName("head")[0].appendChild(link)}(function(){function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{addClass(getSettingsButton(),"rotate");event.preventDefault();loadCss("settings");loadScript(resourcePath("settings",".js"))};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:()=>{switchDisplayedElement(null);document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(resourcePath("search",".js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search);loadSearch()}},};function getPageId(){if(window.location.hash){const tmp=window.location.hash.replace(/^#/,"");if(tmp.length>0){return tmp}}return null}const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}function onHashChange(ev){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown");handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();switchDisplayedElement(null);if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}ev.preventDefault();searchState.defocus();window.hidePopoverMenus()}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const div=document.createElement("div");div.className="block "+shortty;const h3=document.createElement("h3");h3.innerHTML=`${longty}`;div.appendChild(h3);const ul=document.createElement("ul");for(const item of filtered){const name=item[0];const desc=item[1];let klass=shortty;let path;if(shortty==="mod"){path=name+"/index.html"}else{path=shortty+"."+name+".html"}const current_page=document.location.href.split("/").pop();if(path===current_page){klass+=" current"}const link=document.createElement("a");link.href=path;link.title=desc;link.className=klass;link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}div.appendChild(ul);sidebar.appendChild(div)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("union","unions","Unions");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Definitions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector("h1.fqn > .in-band > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const ignoreExternCrates=document.querySelector("script[data-ignore-extern-crates]").getAttribute("data-ignore-extern-crates");for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.indexOf(lib)!==-1){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct.synthetic?synthetic_implementors:implementors;if(struct.synthetic){for(const struct_type of struct.types){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct.text;addClass(code,"code-header");addClass(code,"in-band");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&href.indexOf("http")!==0){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const div=document.createElement("div");div.className="block crate";div.innerHTML="

Crates

";const ul=document.createElement("ul");div.appendChild(ul);for(const crate of window.ALL_CRATES){let klass="crate";if(window.rootPath!=="./"&&crate===window.currentCrate){klass+=" current"}const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.className=klass;link.textContent=crate;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(div)}function labelForToggleButton(sectionIsCollapsed){if(sectionIsCollapsed){return"+"}return"\u2212"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}let sectionIsCollapsed=false;if(hasClass(innerToggle,"will-expand")){removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("rustdoc-toggle"),e=>{if(!hasClass(e,"type-contents-toggle")){e.open=true}});innerToggle.title="collapse all docs"}else{addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("rustdoc-toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});sectionIsCollapsed=true;innerToggle.title="expand all docs"}innerToggle.children[0].innerText=labelForToggleButton(sectionIsCollapsed)}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("rustdoc-toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}});const pageId=getPageId();if(pageId!==null){expandSection(pageId)}}());(function(){let lineNumbersFunc=()=>{};if(getSettingValue("line-numbers")==="true"){lineNumbersFunc=x=>{const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{if(hasClass(e,"compile_fail")){e.addEventListener("mouseover",function(){this.parentElement.previousElementSibling.childNodes[0].style.color="#f00"});e.addEventListener("mouseout",function(){this.parentElement.previousElementSibling.childNodes[0].style.color=""})}else if(hasClass(e,"ignore")){e.addEventListener("mouseover",function(){this.parentElement.previousElementSibling.childNodes[0].style.color="#ff9200"});e.addEventListener("mouseout",function(){this.parentElement.previousElementSibling.childNodes[0].style.color=""})}lineNumbersFunc(e)})}());function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}function handleClick(id,f){const elem=document.getElementById(id);if(elem){elem.addEventListener("click",f)}}handleClick(MAIN_ID,()=>{hideSidebar()});onEachLazy(document.getElementsByTagName("a"),el=>{if(el.hash){el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})}});onEachLazy(document.querySelectorAll(".rustdoc-toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});onEachLazy(document.getElementsByClassName("notable-traits"),e=>{e.onclick=function(){this.getElementsByClassName("notable-traits-tooltiptext")[0].classList.toggle("force-tooltip")}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){addClass(sidebar,"shown")}else{removeClass(sidebar,"shown")}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");book_info.className="top";book_info.innerHTML="You can find more information in \ + the rustdoc book.";const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \ restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ enum, trait, type, macro, \ and const.","Search functions by type signature (e.g., vec -> usize or \ - * -> vec)","Search multiple things at once by splitting your query with comma (e.g., \ + -> vec)","Search multiple things at once by splitting your query with comma (e.g., \ str,u8 or String,struct:Vec,test)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for items inside another one by searching for a path: vec::Vec",].map(function(x){return"

"+x+"

"}).join("");var div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;container.appendChild(book_info);container.appendChild(div_shortcuts);container.appendChild(div_infos);var rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";var rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);container.appendChild(rustdoc_version);popup.appendChild(container);insertAfter(popup,document.querySelector("main"));buildHelperPopup=function(){}};onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){var reset_button_timeout=null;window.copy_path=function(but){var parent=but.parentElement;var path=[];onEach(parent.childNodes,function(child){if(child.tagName==='A'){path.push(child.textContent)}});var el=document.createElement('textarea');el.value=path.join('::');el.setAttribute('readonly','');el.style.position='absolute';el.style.left='-9999px';document.body.appendChild(el);el.select();document.execCommand('copy');document.body.removeChild(el);but.children[0].style.display='none';var tmp;if(but.childNodes.length<2){tmp=document.createTextNode('✓');but.appendChild(tmp)}else{onEachLazy(but.childNodes,function(e){if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent='✓'}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent='';reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file + your request: \"string\"","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);const container=document.createElement("div");container.className="popover";container.style.display="none";const side_by_side=document.createElement("div");side_by_side.className="side-by-side";side_by_side.appendChild(div_shortcuts);side_by_side.appendChild(div_infos);container.appendChild(book_info);container.appendChild(side_by_side);container.appendChild(rustdoc_version);const help_button=getHelpButton();help_button.appendChild(container);container.onblur=helpBlurHandler;container.onclick=event=>{event.preventDefault()};help_button.onblur=helpBlurHandler;help_button.children[0].onblur=helpBlurHandler;return container}window.hidePopoverMenus=function(){onEachLazy(document.querySelectorAll(".search-container .popover"),elem=>{elem.style.display="none"})};function getHelpMenu(buildNeeded){let menu=getHelpButton().querySelector(".popover");if(!menu&&buildNeeded){menu=buildHelpMenu()}return menu}function showHelp(){const menu=getHelpMenu(true);if(menu.style.display==="none"){window.hidePopoverMenus();menu.style.display=""}}document.querySelector(`#${HELP_BUTTON_ID} > button`).addEventListener("click",event=>{const target=event.target;if(target.tagName!=="BUTTON"||target.parentElement.id!==HELP_BUTTON_ID){return}const menu=getHelpMenu(true);const shouldShowHelp=menu.style.display==="none";if(shouldShowHelp){showHelp()}else{window.hidePopoverMenus()}});setMobileTopbar();addSidebarItems();addSidebarCrates();onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){let reset_button_timeout=null;window.copy_path=but=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/ch9-dev/noscript.css b/ch9-dev/noscript.css index 8ad88640..d850bb38 100644 --- a/ch9-dev/noscript.css +++ b/ch9-dev/noscript.css @@ -1 +1 @@ - #main-content .attributes{margin-left:0 !important;}#copy-path{display:none;}.sub{display:none;}#theme-picker{display:none;} \ No newline at end of file + #main-content .attributes{margin-left:0 !important;}#copy-path{display:none;}.sub{display:none;} \ No newline at end of file diff --git a/ch9-dev/os/all.html b/ch9-dev/os/all.html index 4f455c88..444e0e83 100644 --- a/ch9-dev/os/all.html +++ b/ch9-dev/os/all.html @@ -1,7 +1 @@ -List of all items in this crate - -

List of all items

Structs

Enums

Traits

Macros

Functions

Typedefs

Statics

Constants

- \ No newline at end of file +List of all items in this crate

List of all items

Structs

Enums

Traits

Macros

Functions

Typedefs

Statics

Constants

\ No newline at end of file diff --git a/ch9-dev/os/board/constant.CLOCK_FREQ.html b/ch9-dev/os/board/constant.CLOCK_FREQ.html index 146b54a9..a68a583e 100644 --- a/ch9-dev/os/board/constant.CLOCK_FREQ.html +++ b/ch9-dev/os/board/constant.CLOCK_FREQ.html @@ -1,8 +1 @@ -CLOCK_FREQ in os::board - Rust - -
-

Constant os::board::CLOCK_FREQ

source · []
pub const CLOCK_FREQ: usize = 12500000;
- \ No newline at end of file +CLOCK_FREQ in os::board - Rust
pub const CLOCK_FREQ: usize = 12500000;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.EXIT_FAILURE.html b/ch9-dev/os/board/constant.EXIT_FAILURE.html index fe782cd9..7ffe5beb 100644 --- a/ch9-dev/os/board/constant.EXIT_FAILURE.html +++ b/ch9-dev/os/board/constant.EXIT_FAILURE.html @@ -1,8 +1 @@ -EXIT_FAILURE in os::board - Rust - -
-

Constant os::board::EXIT_FAILURE

source · []
const EXIT_FAILURE: u32 = exit_code_encode(1); // 78_643u32
- \ No newline at end of file +EXIT_FAILURE in os::board - Rust
const EXIT_FAILURE: u32 = _; // 78_643u32
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.EXIT_FAILURE_FLAG.html b/ch9-dev/os/board/constant.EXIT_FAILURE_FLAG.html index 03c84625..5a9821cf 100644 --- a/ch9-dev/os/board/constant.EXIT_FAILURE_FLAG.html +++ b/ch9-dev/os/board/constant.EXIT_FAILURE_FLAG.html @@ -1,8 +1 @@ -EXIT_FAILURE_FLAG in os::board - Rust - -
const EXIT_FAILURE_FLAG: u32 = 0x3333;
- \ No newline at end of file +EXIT_FAILURE_FLAG in os::board - Rust
const EXIT_FAILURE_FLAG: u32 = 0x3333;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.EXIT_RESET.html b/ch9-dev/os/board/constant.EXIT_RESET.html index f00e2bad..f4a2d499 100644 --- a/ch9-dev/os/board/constant.EXIT_RESET.html +++ b/ch9-dev/os/board/constant.EXIT_RESET.html @@ -1,8 +1 @@ -EXIT_RESET in os::board - Rust - -
-

Constant os::board::EXIT_RESET

source · []
const EXIT_RESET: u32 = 0x7777;
- \ No newline at end of file +EXIT_RESET in os::board - Rust
const EXIT_RESET: u32 = 0x7777;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.EXIT_SUCCESS.html b/ch9-dev/os/board/constant.EXIT_SUCCESS.html index 2692787c..4ff3206f 100644 --- a/ch9-dev/os/board/constant.EXIT_SUCCESS.html +++ b/ch9-dev/os/board/constant.EXIT_SUCCESS.html @@ -1,8 +1 @@ -EXIT_SUCCESS in os::board - Rust - -
-

Constant os::board::EXIT_SUCCESS

source · []
const EXIT_SUCCESS: u32 = 0x5555;
- \ No newline at end of file +EXIT_SUCCESS in os::board - Rust
const EXIT_SUCCESS: u32 = 0x5555;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.MMIO.html b/ch9-dev/os/board/constant.MMIO.html index b91d314c..362661b9 100644 --- a/ch9-dev/os/board/constant.MMIO.html +++ b/ch9-dev/os/board/constant.MMIO.html @@ -1,8 +1 @@ -MMIO in os::board - Rust - -
-

Constant os::board::MMIO

source · []
pub const MMIO: &[(usize, usize)];
- \ No newline at end of file +MMIO in os::board - Rust

Constant os::board::MMIO

source · []
pub const MMIO: &'static [(usize, usize)];
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.QEMU_EXIT_HANDLE.html b/ch9-dev/os/board/constant.QEMU_EXIT_HANDLE.html index eccde5ed..93dd4610 100644 --- a/ch9-dev/os/board/constant.QEMU_EXIT_HANDLE.html +++ b/ch9-dev/os/board/constant.QEMU_EXIT_HANDLE.html @@ -1,8 +1 @@ -QEMU_EXIT_HANDLE in os::board - Rust - -
pub const QEMU_EXIT_HANDLE: RISCV64;
- \ No newline at end of file +QEMU_EXIT_HANDLE in os::board - Rust
pub const QEMU_EXIT_HANDLE: RISCV64;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.VIRTGPU_XRES.html b/ch9-dev/os/board/constant.VIRTGPU_XRES.html index 45cd11d3..eb07afa0 100644 --- a/ch9-dev/os/board/constant.VIRTGPU_XRES.html +++ b/ch9-dev/os/board/constant.VIRTGPU_XRES.html @@ -1,8 +1 @@ -VIRTGPU_XRES in os::board - Rust - -
-

Constant os::board::VIRTGPU_XRES

source · []
pub const VIRTGPU_XRES: u32 = 1280;
- \ No newline at end of file +VIRTGPU_XRES in os::board - Rust
pub const VIRTGPU_XRES: u32 = 1280;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.VIRTGPU_YRES.html b/ch9-dev/os/board/constant.VIRTGPU_YRES.html index 72823c5e..5b20e024 100644 --- a/ch9-dev/os/board/constant.VIRTGPU_YRES.html +++ b/ch9-dev/os/board/constant.VIRTGPU_YRES.html @@ -1,8 +1 @@ -VIRTGPU_YRES in os::board - Rust - -
-

Constant os::board::VIRTGPU_YRES

source · []
pub const VIRTGPU_YRES: u32 = 800;
- \ No newline at end of file +VIRTGPU_YRES in os::board - Rust
pub const VIRTGPU_YRES: u32 = 800;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.VIRT_PLIC.html b/ch9-dev/os/board/constant.VIRT_PLIC.html index 91d0c75d..c80abcfd 100644 --- a/ch9-dev/os/board/constant.VIRT_PLIC.html +++ b/ch9-dev/os/board/constant.VIRT_PLIC.html @@ -1,8 +1 @@ -VIRT_PLIC in os::board - Rust - -
-

Constant os::board::VIRT_PLIC

source · []
pub const VIRT_PLIC: usize = 0xC00_0000;
- \ No newline at end of file +VIRT_PLIC in os::board - Rust
pub const VIRT_PLIC: usize = 0xC00_0000;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.VIRT_TEST.html b/ch9-dev/os/board/constant.VIRT_TEST.html index f848e46e..14c2756b 100644 --- a/ch9-dev/os/board/constant.VIRT_TEST.html +++ b/ch9-dev/os/board/constant.VIRT_TEST.html @@ -1,8 +1 @@ -VIRT_TEST in os::board - Rust - -
-

Constant os::board::VIRT_TEST

source · []
const VIRT_TEST: u64 = 0x100000;
- \ No newline at end of file +VIRT_TEST in os::board - Rust
const VIRT_TEST: u64 = 0x100000;
\ No newline at end of file diff --git a/ch9-dev/os/board/constant.VIRT_UART.html b/ch9-dev/os/board/constant.VIRT_UART.html index 4abb3d6f..16db01b9 100644 --- a/ch9-dev/os/board/constant.VIRT_UART.html +++ b/ch9-dev/os/board/constant.VIRT_UART.html @@ -1,8 +1 @@ -VIRT_UART in os::board - Rust - -
-

Constant os::board::VIRT_UART

source · []
pub const VIRT_UART: usize = 0x1000_0000;
- \ No newline at end of file +VIRT_UART in os::board - Rust
pub const VIRT_UART: usize = 0x1000_0000;
\ No newline at end of file diff --git a/ch9-dev/os/board/fn.device_init.html b/ch9-dev/os/board/fn.device_init.html index 838243d9..de22acf6 100644 --- a/ch9-dev/os/board/fn.device_init.html +++ b/ch9-dev/os/board/fn.device_init.html @@ -1,8 +1 @@ -device_init in os::board - Rust - -
-

Function os::board::device_init

source · []
pub fn device_init()
- \ No newline at end of file +device_init in os::board - Rust
pub fn device_init()
\ No newline at end of file diff --git a/ch9-dev/os/board/fn.exit_code_encode.html b/ch9-dev/os/board/fn.exit_code_encode.html index 72357a3d..b200152a 100644 --- a/ch9-dev/os/board/fn.exit_code_encode.html +++ b/ch9-dev/os/board/fn.exit_code_encode.html @@ -1,9 +1,2 @@ -exit_code_encode in os::board - Rust - -
const fn exit_code_encode(code: u32) -> u32
Expand description

Encode the exit code using EXIT_FAILURE_FLAG.

-
- \ No newline at end of file +exit_code_encode in os::board - Rust
const fn exit_code_encode(code: u32) -> u32
Expand description

Encode the exit code using EXIT_FAILURE_FLAG.

+
\ No newline at end of file diff --git a/ch9-dev/os/board/fn.irq_handler.html b/ch9-dev/os/board/fn.irq_handler.html index f9bb0dfe..9c417a4b 100644 --- a/ch9-dev/os/board/fn.irq_handler.html +++ b/ch9-dev/os/board/fn.irq_handler.html @@ -1,8 +1 @@ -irq_handler in os::board - Rust - -
-

Function os::board::irq_handler

source · []
pub fn irq_handler()
- \ No newline at end of file +irq_handler in os::board - Rust
pub fn irq_handler()
\ No newline at end of file diff --git a/ch9-dev/os/board/index.html b/ch9-dev/os/board/index.html index 0daace8d..5c68c784 100644 --- a/ch9-dev/os/board/index.html +++ b/ch9-dev/os/board/index.html @@ -1,15 +1,3 @@ -os::board - Rust - -
- \ No newline at end of file +os::board - Rust
\ No newline at end of file diff --git a/ch9-dev/os/board/sidebar-items.js b/ch9-dev/os/board/sidebar-items.js index 575e65b1..1b8ac768 100644 --- a/ch9-dev/os/board/sidebar-items.js +++ b/ch9-dev/os/board/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["CLOCK_FREQ",""],["EXIT_FAILURE",""],["EXIT_FAILURE_FLAG",""],["EXIT_RESET",""],["EXIT_SUCCESS",""],["MMIO",""],["QEMU_EXIT_HANDLE",""],["VIRTGPU_XRES",""],["VIRTGPU_YRES",""],["VIRT_PLIC",""],["VIRT_TEST",""],["VIRT_UART",""]],"fn":[["device_init",""],["exit_code_encode","Encode the exit code using EXIT_FAILURE_FLAG."],["irq_handler",""]],"struct":[["RISCV64","RISCV64 configuration"]],"trait":[["QEMUExit",""]],"type":[["BlockDeviceImpl",""],["CharDeviceImpl",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["CLOCK_FREQ",""],["EXIT_FAILURE",""],["EXIT_FAILURE_FLAG",""],["EXIT_RESET",""],["EXIT_SUCCESS",""],["MMIO",""],["QEMU_EXIT_HANDLE",""],["VIRTGPU_XRES",""],["VIRTGPU_YRES",""],["VIRT_PLIC",""],["VIRT_TEST",""],["VIRT_UART",""]],"fn":[["device_init",""],["exit_code_encode","Encode the exit code using EXIT_FAILURE_FLAG."],["irq_handler",""]],"struct":[["RISCV64","RISCV64 configuration"]],"trait":[["QEMUExit",""]],"type":[["BlockDeviceImpl",""],["CharDeviceImpl",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/board/struct.RISCV64.html b/ch9-dev/os/board/struct.RISCV64.html index 701476f5..2b97301e 100644 --- a/ch9-dev/os/board/struct.RISCV64.html +++ b/ch9-dev/os/board/struct.RISCV64.html @@ -1,39 +1,32 @@ -RISCV64 in os::board - Rust - -
-

Struct os::board::RISCV64

source · []
pub struct RISCV64 {
+RISCV64 in os::board - Rust
pub struct RISCV64 {
     addr: u64,
 }
Expand description

RISCV64 configuration

Fields

addr: u64

Address of the sifive_test mapped device.

-

Implementations

Create an instance.

-

Trait Implementations

Exit qemu with specified exit code.

-

Exit QEMU using EXIT_SUCCESS, aka 0, if possible. Read more

-

Exit QEMU using EXIT_FAILURE, aka 1.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Implementations

Create an instance.

+

Trait Implementations

Exit qemu with specified exit code.

+

Exit QEMU using EXIT_SUCCESS, aka 0, if possible. Read more

+

Exit QEMU using EXIT_FAILURE, aka 1.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/board/trait.QEMUExit.html b/ch9-dev/os/board/trait.QEMUExit.html index c9b38d3e..df57d840 100644 --- a/ch9-dev/os/board/trait.QEMUExit.html +++ b/ch9-dev/os/board/trait.QEMUExit.html @@ -1,17 +1,10 @@ -QEMUExit in os::board - Rust - -
pub trait QEMUExit {
+QEMUExit in os::board - Rust
pub trait QEMUExit {
     fn exit(&self, code: u32) -> !;
     fn exit_success(&self) -> !;
     fn exit_failure(&self) -> !;
-}

Required methods

Exit with specified return code.

+}

Required Methods

Exit with specified return code.

Note: For X86, code is binary-OR’ed with 0x1 inside QEMU.

-

Exit QEMU using EXIT_SUCCESS, aka 0, if possible.

+

Exit QEMU using EXIT_SUCCESS, aka 0, if possible.

Note: Not possible for X86.

-

Exit QEMU using EXIT_FAILURE, aka 1.

-

Implementors

- \ No newline at end of file +

Exit QEMU using EXIT_FAILURE, aka 1.

+

Implementors

\ No newline at end of file diff --git a/ch9-dev/os/board/type.BlockDeviceImpl.html b/ch9-dev/os/board/type.BlockDeviceImpl.html index f18f7b97..9d278a0b 100644 --- a/ch9-dev/os/board/type.BlockDeviceImpl.html +++ b/ch9-dev/os/board/type.BlockDeviceImpl.html @@ -1,8 +1 @@ -BlockDeviceImpl in os::board - Rust - -
-

Type Definition os::board::BlockDeviceImpl

source · []
pub type BlockDeviceImpl = VirtIOBlock;
- \ No newline at end of file +BlockDeviceImpl in os::board - Rust

Type Definition os::board::BlockDeviceImpl

source · []
pub type BlockDeviceImpl = VirtIOBlock;
\ No newline at end of file diff --git a/ch9-dev/os/board/type.CharDeviceImpl.html b/ch9-dev/os/board/type.CharDeviceImpl.html index fabf9366..eeb8d1ba 100644 --- a/ch9-dev/os/board/type.CharDeviceImpl.html +++ b/ch9-dev/os/board/type.CharDeviceImpl.html @@ -1,8 +1 @@ -CharDeviceImpl in os::board - Rust - -
-

Type Definition os::board::CharDeviceImpl

source · []
pub type CharDeviceImpl = NS16550a<VIRT_UART>;
- \ No newline at end of file +CharDeviceImpl in os::board - Rust

Type Definition os::board::CharDeviceImpl

source · []
pub type CharDeviceImpl = NS16550a<VIRT_UART>;
\ No newline at end of file diff --git a/ch9-dev/os/config/constant.KERNEL_HEAP_SIZE.html b/ch9-dev/os/config/constant.KERNEL_HEAP_SIZE.html index abeebe15..1464f8d0 100644 --- a/ch9-dev/os/config/constant.KERNEL_HEAP_SIZE.html +++ b/ch9-dev/os/config/constant.KERNEL_HEAP_SIZE.html @@ -1,8 +1 @@ -KERNEL_HEAP_SIZE in os::config - Rust - -
pub const KERNEL_HEAP_SIZE: usize = 0x100_0000;
- \ No newline at end of file +KERNEL_HEAP_SIZE in os::config - Rust
pub const KERNEL_HEAP_SIZE: usize = 0x100_0000;
\ No newline at end of file diff --git a/ch9-dev/os/config/constant.KERNEL_STACK_SIZE.html b/ch9-dev/os/config/constant.KERNEL_STACK_SIZE.html index 1e547346..1b904b59 100644 --- a/ch9-dev/os/config/constant.KERNEL_STACK_SIZE.html +++ b/ch9-dev/os/config/constant.KERNEL_STACK_SIZE.html @@ -1,8 +1 @@ -KERNEL_STACK_SIZE in os::config - Rust - -
pub const KERNEL_STACK_SIZE: usize = 4096 * 2; // 8_192usize
- \ No newline at end of file +KERNEL_STACK_SIZE in os::config - Rust
pub const KERNEL_STACK_SIZE: usize = _; // 8_192usize
\ No newline at end of file diff --git a/ch9-dev/os/config/constant.MEMORY_END.html b/ch9-dev/os/config/constant.MEMORY_END.html index 80ffcbd3..788d6b6f 100644 --- a/ch9-dev/os/config/constant.MEMORY_END.html +++ b/ch9-dev/os/config/constant.MEMORY_END.html @@ -1,8 +1 @@ -MEMORY_END in os::config - Rust - -
-

Constant os::config::MEMORY_END

source · []
pub const MEMORY_END: usize = 0x88000000;
- \ No newline at end of file +MEMORY_END in os::config - Rust
pub const MEMORY_END: usize = 0x88000000;
\ No newline at end of file diff --git a/ch9-dev/os/config/constant.PAGE_SIZE.html b/ch9-dev/os/config/constant.PAGE_SIZE.html index 91a51506..2cde57e7 100644 --- a/ch9-dev/os/config/constant.PAGE_SIZE.html +++ b/ch9-dev/os/config/constant.PAGE_SIZE.html @@ -1,8 +1 @@ -PAGE_SIZE in os::config - Rust - -
-

Constant os::config::PAGE_SIZE

source · []
pub const PAGE_SIZE: usize = 0x1000;
- \ No newline at end of file +PAGE_SIZE in os::config - Rust
pub const PAGE_SIZE: usize = 0x1000;
\ No newline at end of file diff --git a/ch9-dev/os/config/constant.PAGE_SIZE_BITS.html b/ch9-dev/os/config/constant.PAGE_SIZE_BITS.html index 0a0d83fd..344521b7 100644 --- a/ch9-dev/os/config/constant.PAGE_SIZE_BITS.html +++ b/ch9-dev/os/config/constant.PAGE_SIZE_BITS.html @@ -1,8 +1 @@ -PAGE_SIZE_BITS in os::config - Rust - -
pub const PAGE_SIZE_BITS: usize = 0xc;
- \ No newline at end of file +PAGE_SIZE_BITS in os::config - Rust
pub const PAGE_SIZE_BITS: usize = 0xc;
\ No newline at end of file diff --git a/ch9-dev/os/config/constant.TRAMPOLINE.html b/ch9-dev/os/config/constant.TRAMPOLINE.html index 420fd50c..e8ad9b28 100644 --- a/ch9-dev/os/config/constant.TRAMPOLINE.html +++ b/ch9-dev/os/config/constant.TRAMPOLINE.html @@ -1,8 +1 @@ -TRAMPOLINE in os::config - Rust - -
-

Constant os::config::TRAMPOLINE

source · []
pub const TRAMPOLINE: usize = usize::MAX - PAGE_SIZE + 1; // 18_446_744_073_709_547_520usize
- \ No newline at end of file +TRAMPOLINE in os::config - Rust
pub const TRAMPOLINE: usize = _; // 18_446_744_073_709_547_520usize
\ No newline at end of file diff --git a/ch9-dev/os/config/constant.TRAP_CONTEXT_BASE.html b/ch9-dev/os/config/constant.TRAP_CONTEXT_BASE.html index 9b319503..b1099f59 100644 --- a/ch9-dev/os/config/constant.TRAP_CONTEXT_BASE.html +++ b/ch9-dev/os/config/constant.TRAP_CONTEXT_BASE.html @@ -1,8 +1 @@ -TRAP_CONTEXT_BASE in os::config - Rust - -
pub const TRAP_CONTEXT_BASE: usize = TRAMPOLINE - PAGE_SIZE; // 18_446_744_073_709_543_424usize
- \ No newline at end of file +TRAP_CONTEXT_BASE in os::config - Rust
pub const TRAP_CONTEXT_BASE: usize = _; // 18_446_744_073_709_543_424usize
\ No newline at end of file diff --git a/ch9-dev/os/config/constant.USER_STACK_SIZE.html b/ch9-dev/os/config/constant.USER_STACK_SIZE.html index 2c8a959e..cc3a1f09 100644 --- a/ch9-dev/os/config/constant.USER_STACK_SIZE.html +++ b/ch9-dev/os/config/constant.USER_STACK_SIZE.html @@ -1,8 +1 @@ -USER_STACK_SIZE in os::config - Rust - -
pub const USER_STACK_SIZE: usize = 4096 * 2; // 8_192usize
- \ No newline at end of file +USER_STACK_SIZE in os::config - Rust
pub const USER_STACK_SIZE: usize = _; // 8_192usize
\ No newline at end of file diff --git a/ch9-dev/os/config/index.html b/ch9-dev/os/config/index.html index b29e1783..4867799f 100644 --- a/ch9-dev/os/config/index.html +++ b/ch9-dev/os/config/index.html @@ -1,10 +1 @@ -os::config - Rust - -
- \ No newline at end of file +os::config - Rust
\ No newline at end of file diff --git a/ch9-dev/os/config/sidebar-items.js b/ch9-dev/os/config/sidebar-items.js index 82162e6c..b049b220 100644 --- a/ch9-dev/os/config/sidebar-items.js +++ b/ch9-dev/os/config/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["KERNEL_HEAP_SIZE",""],["KERNEL_STACK_SIZE",""],["MEMORY_END",""],["PAGE_SIZE",""],["PAGE_SIZE_BITS",""],["TRAMPOLINE",""],["TRAP_CONTEXT_BASE",""],["USER_STACK_SIZE",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["KERNEL_HEAP_SIZE",""],["KERNEL_STACK_SIZE",""],["MEMORY_END",""],["PAGE_SIZE",""],["PAGE_SIZE_BITS",""],["TRAMPOLINE",""],["TRAP_CONTEXT_BASE",""],["USER_STACK_SIZE",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/console/fn.print.html b/ch9-dev/os/console/fn.print.html index bdbf357f..4229c073 100644 --- a/ch9-dev/os/console/fn.print.html +++ b/ch9-dev/os/console/fn.print.html @@ -1,8 +1 @@ -print in os::console - Rust - -
-

Function os::console::print

source · []
pub fn print(args: Arguments<'_>)
- \ No newline at end of file +print in os::console - Rust

Function os::console::print

source · []
pub fn print(args: Arguments<'_>)
\ No newline at end of file diff --git a/ch9-dev/os/console/index.html b/ch9-dev/os/console/index.html index e913f7d4..6c0bc3ad 100644 --- a/ch9-dev/os/console/index.html +++ b/ch9-dev/os/console/index.html @@ -1,10 +1 @@ -os::console - Rust - -
- \ No newline at end of file +os::console - Rust
\ No newline at end of file diff --git a/ch9-dev/os/console/sidebar-items.js b/ch9-dev/os/console/sidebar-items.js index 32906922..cf66d5eb 100644 --- a/ch9-dev/os/console/sidebar-items.js +++ b/ch9-dev/os/console/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["print",""]],"struct":[["Stdout",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["print",""]],"struct":[["Stdout",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/console/struct.Stdout.html b/ch9-dev/os/console/struct.Stdout.html index f9468971..06b45cfd 100644 --- a/ch9-dev/os/console/struct.Stdout.html +++ b/ch9-dev/os/console/struct.Stdout.html @@ -1,35 +1,28 @@ -Stdout in os::console - Rust - -
-

Struct os::console::Stdout

source · []
struct Stdout;

Trait Implementations

Writes a string slice into this writer, returning whether the write +Stdout in os::console - Rust

struct Stdout;

Trait Implementations

Writes a string slice into this writer, returning whether the write succeeded. Read more

-

Writes a char into this writer, returning whether the write succeeded. Read more

-

Glue for usage of the write! macro with implementors of this trait. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Writes a char into this writer, returning whether the write succeeded. Read more

+

Glue for usage of the write! macro with implementors of this trait. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/block/fn.block_device_test.html b/ch9-dev/os/drivers/block/fn.block_device_test.html index 0e374a0e..36801f89 100644 --- a/ch9-dev/os/drivers/block/fn.block_device_test.html +++ b/ch9-dev/os/drivers/block/fn.block_device_test.html @@ -1,8 +1 @@ -block_device_test in os::drivers::block - Rust - -
pub fn block_device_test()
- \ No newline at end of file +block_device_test in os::drivers::block - Rust
pub fn block_device_test()
\ No newline at end of file diff --git a/ch9-dev/os/drivers/block/index.html b/ch9-dev/os/drivers/block/index.html index a231a5d6..3b2d5f19 100644 --- a/ch9-dev/os/drivers/block/index.html +++ b/ch9-dev/os/drivers/block/index.html @@ -1,12 +1 @@ -os::drivers::block - Rust - -
- \ No newline at end of file +os::drivers::block - Rust
\ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/constant.SD_CS.html b/ch9-dev/os/drivers/block/sdcard/constant.SD_CS.html deleted file mode 100644 index 55b18129..00000000 --- a/ch9-dev/os/drivers/block/sdcard/constant.SD_CS.html +++ /dev/null @@ -1,10 +0,0 @@ -SD_CS in os::drivers::block::sdcard - Rust - -
-

Constant os::drivers::block::sdcard::SD_CS

source · []
const SD_CS: u32 = 3;
Expand description

CS value passed to SPI controller, this is a dummy value as SPI0_CS3 is not mapping to anything -in the FPIOA

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/constant.SD_CS_GPIONUM.html b/ch9-dev/os/drivers/block/sdcard/constant.SD_CS_GPIONUM.html deleted file mode 100644 index 20e23ef7..00000000 --- a/ch9-dev/os/drivers/block/sdcard/constant.SD_CS_GPIONUM.html +++ /dev/null @@ -1,9 +0,0 @@ -SD_CS_GPIONUM in os::drivers::block::sdcard - Rust - -
const SD_CS_GPIONUM: u8 = 7;
Expand description

GPIOHS GPIO number to use for controlling the SD card CS pin

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_READ.html b/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_READ.html deleted file mode 100644 index 661bff1f..00000000 --- a/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_READ.html +++ /dev/null @@ -1,9 +0,0 @@ -SD_START_DATA_MULTIPLE_BLOCK_READ in os::drivers::block::sdcard - Rust - -
pub const SD_START_DATA_MULTIPLE_BLOCK_READ: u8 = 0xFE;
Expand description

Data token start byte, Start Multiple Block Read

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html b/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html deleted file mode 100644 index 190cac5a..00000000 --- a/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_MULTIPLE_BLOCK_WRITE.html +++ /dev/null @@ -1,9 +0,0 @@ -SD_START_DATA_MULTIPLE_BLOCK_WRITE in os::drivers::block::sdcard - Rust - -
pub const SD_START_DATA_MULTIPLE_BLOCK_WRITE: u8 = 0xFC;
Expand description

Data token start byte, Start Multiple Block Write

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_READ.html b/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_READ.html deleted file mode 100644 index 8b50884e..00000000 --- a/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_READ.html +++ /dev/null @@ -1,9 +0,0 @@ -SD_START_DATA_SINGLE_BLOCK_READ in os::drivers::block::sdcard - Rust - -
pub const SD_START_DATA_SINGLE_BLOCK_READ: u8 = 0xFE;
Expand description

Data token start byte, Start Single Block Read

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_WRITE.html b/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_WRITE.html deleted file mode 100644 index 4d70d58b..00000000 --- a/ch9-dev/os/drivers/block/sdcard/constant.SD_START_DATA_SINGLE_BLOCK_WRITE.html +++ /dev/null @@ -1,9 +0,0 @@ -SD_START_DATA_SINGLE_BLOCK_WRITE in os::drivers::block::sdcard - Rust - -
pub const SD_START_DATA_SINGLE_BLOCK_WRITE: u8 = 0xFE;
Expand description

Data token start byte, Start Single Block Write

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/constant.SEC_LEN.html b/ch9-dev/os/drivers/block/sdcard/constant.SEC_LEN.html deleted file mode 100644 index c15a12a2..00000000 --- a/ch9-dev/os/drivers/block/sdcard/constant.SEC_LEN.html +++ /dev/null @@ -1,8 +0,0 @@ -SEC_LEN in os::drivers::block::sdcard - Rust - -
pub const SEC_LEN: usize = 512;
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/enum.CMD.html b/ch9-dev/os/drivers/block/sdcard/enum.CMD.html deleted file mode 100644 index 76da4309..00000000 --- a/ch9-dev/os/drivers/block/sdcard/enum.CMD.html +++ /dev/null @@ -1,73 +0,0 @@ -CMD in os::drivers::block::sdcard - Rust - -
#[repr(u8)]
-pub enum CMD {
-
Show 15 variants CMD0, - CMD8, - CMD9, - CMD10, - CMD12, - CMD16, - CMD17, - CMD18, - ACMD23, - CMD24, - CMD25, - ACMD41, - CMD55, - CMD58, - CMD59, -
}
Expand description

SD commands

-

Variants

CMD0

Software reset

-

CMD8

Check voltage range (SDC V2)

-

CMD9

Read CSD register

-

CMD10

Read CID register

-

CMD12

Stop to read data

-

CMD16

Change R/W block size

-

CMD17

Read block

-

CMD18

Read multiple blocks

-

ACMD23

Number of blocks to erase (SDC)

-

CMD24

Write a block

-

CMD25

Write multiple blocks

-

ACMD41

Initiate initialization process (SDC)

-

CMD55

Leading command for ACMD*

-

CMD58

Read OCR

-

CMD59

Enable/disable CRC check

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/enum.InitError.html b/ch9-dev/os/drivers/block/sdcard/enum.InitError.html deleted file mode 100644 index aa474c8e..00000000 --- a/ch9-dev/os/drivers/block/sdcard/enum.InitError.html +++ /dev/null @@ -1,41 +0,0 @@ -InitError in os::drivers::block::sdcard - Rust - -
pub enum InitError {
-    CMDFailed(CMDu8),
-    CardCapacityStatusNotSet([u8; 4]),
-    CannotGetCardInfo,
-}

Variants

CMDFailed(CMDu8)

CardCapacityStatusNotSet([u8; 4])

CannotGetCardInfo

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/fn.init_sdcard.html b/ch9-dev/os/drivers/block/sdcard/fn.init_sdcard.html deleted file mode 100644 index 01baf5c5..00000000 --- a/ch9-dev/os/drivers/block/sdcard/fn.init_sdcard.html +++ /dev/null @@ -1,8 +0,0 @@ -init_sdcard in os::drivers::block::sdcard - Rust - -
fn init_sdcard() -> SDCard<SPIImpl<SPI0>>
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/fn.io_init.html b/ch9-dev/os/drivers/block/sdcard/fn.io_init.html deleted file mode 100644 index de329858..00000000 --- a/ch9-dev/os/drivers/block/sdcard/fn.io_init.html +++ /dev/null @@ -1,9 +0,0 @@ -io_init in os::drivers::block::sdcard - Rust - -
fn io_init()
Expand description

Connect pins to internal functions

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/index.html b/ch9-dev/os/drivers/block/sdcard/index.html deleted file mode 100644 index 0dd06500..00000000 --- a/ch9-dev/os/drivers/block/sdcard/index.html +++ /dev/null @@ -1,24 +0,0 @@ -os::drivers::block::sdcard - Rust - -

Structs

-

Card Identification Data: CID Register

-

Card Specific Data: CSD Register

-

Card information

-

Enums

-

SD commands

-

Constants

-
SD_CS 🔒

CS value passed to SPI controller, this is a dummy value as SPI0_CS3 is not mapping to anything -in the FPIOA

-

GPIOHS GPIO number to use for controlling the SD card CS pin

-

Data token start byte, Start Multiple Block Read

-

Data token start byte, Start Multiple Block Write

-

Data token start byte, Start Single Block Read

-

Data token start byte, Start Single Block Write

-

Functions

-
io_init 🔒

Connect pins to internal functions

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/sidebar-items.js b/ch9-dev/os/drivers/block/sdcard/sidebar-items.js deleted file mode 100644 index e5a624de..00000000 --- a/ch9-dev/os/drivers/block/sdcard/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"constant":[["SD_CS","CS value passed to SPI controller, this is a dummy value as SPI0_CS3 is not mapping to anything in the FPIOA "],["SD_CS_GPIONUM","GPIOHS GPIO number to use for controlling the SD card CS pin "],["SD_START_DATA_MULTIPLE_BLOCK_READ","Data token start byte, Start Multiple Block Read "],["SD_START_DATA_MULTIPLE_BLOCK_WRITE","Data token start byte, Start Multiple Block Write "],["SD_START_DATA_SINGLE_BLOCK_READ","Data token start byte, Start Single Block Read "],["SD_START_DATA_SINGLE_BLOCK_WRITE","Data token start byte, Start Single Block Write "],["SEC_LEN",""]],"enum":[["CMD","SD commands "],["InitError",""]],"fn":[["init_sdcard",""],["io_init","Connect pins to internal functions "]],"struct":[["PERIPHERALS",""],["SDCard",""],["SDCardCID","Card Identification Data: CID Register"],["SDCardCSD","Card Specific Data: CSD Register"],["SDCardInfo","Card information"],["SDCardWrapper",""]]}); \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/struct.PERIPHERALS.html b/ch9-dev/os/drivers/block/sdcard/struct.PERIPHERALS.html deleted file mode 100644 index 55b91c0d..00000000 --- a/ch9-dev/os/drivers/block/sdcard/struct.PERIPHERALS.html +++ /dev/null @@ -1,36 +0,0 @@ -PERIPHERALS in os::drivers::block::sdcard - Rust - -
struct PERIPHERALS {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Peripherals>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/struct.SDCard.html b/ch9-dev/os/drivers/block/sdcard/struct.SDCard.html deleted file mode 100644 index b729213c..00000000 --- a/ch9-dev/os/drivers/block/sdcard/struct.SDCard.html +++ /dev/null @@ -1,35 +0,0 @@ -SDCard in os::drivers::block::sdcard - Rust - -
pub struct SDCard<SPI> {
-    spi: SPI,
-    spi_cs: u32,
-    cs_gpionum: u8,
-}

Fields

spi: SPIspi_cs: u32cs_gpionum: u8

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/struct.SDCardCID.html b/ch9-dev/os/drivers/block/sdcard/struct.SDCardCID.html deleted file mode 100644 index 0d3a7ae5..00000000 --- a/ch9-dev/os/drivers/block/sdcard/struct.SDCardCID.html +++ /dev/null @@ -1,49 +0,0 @@ -SDCardCID in os::drivers::block::sdcard - Rust - -
pub struct SDCardCID {
-    pub ManufacturerID: u8,
-    pub OEM_AppliID: u16,
-    pub ProdName1: u32,
-    pub ProdName2: u8,
-    pub ProdRev: u8,
-    pub ProdSN: u32,
-    pub Reserved1: u8,
-    pub ManufactDate: u16,
-    pub CID_CRC: u8,
-    pub Reserved2: u8,
-}
Expand description

Card Identification Data: CID Register

-

Fields

ManufacturerID: u8OEM_AppliID: u16ProdName1: u32ProdName2: u8ProdRev: u8ProdSN: u32Reserved1: u8ManufactDate: u16CID_CRC: u8Reserved2: u8

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/struct.SDCardCSD.html b/ch9-dev/os/drivers/block/sdcard/struct.SDCardCSD.html deleted file mode 100644 index bf3a724a..00000000 --- a/ch9-dev/os/drivers/block/sdcard/struct.SDCardCSD.html +++ /dev/null @@ -1,71 +0,0 @@ -SDCardCSD in os::drivers::block::sdcard - Rust - -
pub struct SDCardCSD {
Show 32 fields - pub CSDStruct: u8, - pub SysSpecVersion: u8, - pub Reserved1: u8, - pub TAAC: u8, - pub NSAC: u8, - pub MaxBusClkFrec: u8, - pub CardComdClasses: u16, - pub RdBlockLen: u8, - pub PartBlockRead: u8, - pub WrBlockMisalign: u8, - pub RdBlockMisalign: u8, - pub DSRImpl: u8, - pub Reserved2: u8, - pub DeviceSize: u32, - pub EraseGrSize: u8, - pub EraseGrMul: u8, - pub WrProtectGrSize: u8, - pub WrProtectGrEnable: u8, - pub ManDeflECC: u8, - pub WrSpeedFact: u8, - pub MaxWrBlockLen: u8, - pub WriteBlockPaPartial: u8, - pub Reserved3: u8, - pub ContentProtectAppli: u8, - pub FileFormatGroup: u8, - pub CopyFlag: u8, - pub PermWrProtect: u8, - pub TempWrProtect: u8, - pub FileFormat: u8, - pub ECC: u8, - pub CSD_CRC: u8, - pub Reserved4: u8, -
}
Expand description

Card Specific Data: CSD Register

-

Fields

CSDStruct: u8SysSpecVersion: u8Reserved1: u8TAAC: u8NSAC: u8MaxBusClkFrec: u8CardComdClasses: u16RdBlockLen: u8PartBlockRead: u8WrBlockMisalign: u8RdBlockMisalign: u8DSRImpl: u8Reserved2: u8DeviceSize: u32EraseGrSize: u8EraseGrMul: u8WrProtectGrSize: u8WrProtectGrEnable: u8ManDeflECC: u8WrSpeedFact: u8MaxWrBlockLen: u8WriteBlockPaPartial: u8Reserved3: u8ContentProtectAppli: u8FileFormatGroup: u8CopyFlag: u8PermWrProtect: u8TempWrProtect: u8FileFormat: u8ECC: u8CSD_CRC: u8Reserved4: u8

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/struct.SDCardInfo.html b/ch9-dev/os/drivers/block/sdcard/struct.SDCardInfo.html deleted file mode 100644 index bab902c5..00000000 --- a/ch9-dev/os/drivers/block/sdcard/struct.SDCardInfo.html +++ /dev/null @@ -1,43 +0,0 @@ -SDCardInfo in os::drivers::block::sdcard - Rust - -
pub struct SDCardInfo {
-    pub SD_csd: SDCardCSD,
-    pub SD_cid: SDCardCID,
-    pub CardCapacity: u64,
-    pub CardBlockSize: u64,
-}
Expand description

Card information

-

Fields

SD_csd: SDCardCSDSD_cid: SDCardCIDCardCapacity: u64CardBlockSize: u64

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sdcard/struct.SDCardWrapper.html b/ch9-dev/os/drivers/block/sdcard/struct.SDCardWrapper.html deleted file mode 100644 index 836581f4..00000000 --- a/ch9-dev/os/drivers/block/sdcard/struct.SDCardWrapper.html +++ /dev/null @@ -1,31 +0,0 @@ -SDCardWrapper in os::drivers::block::sdcard - Rust - -
pub struct SDCardWrapper(UPIntrFreeCell<SDCard<SPIImpl<SPI0>>>);

Tuple Fields

0: UPIntrFreeCell<SDCard<SPIImpl<SPI0>>>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/sidebar-items.js b/ch9-dev/os/drivers/block/sidebar-items.js index 11ff3e4d..f3e2f375 100644 --- a/ch9-dev/os/drivers/block/sidebar-items.js +++ b/ch9-dev/os/drivers/block/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["block_device_test",""]],"mod":[["sdcard",""],["virtio_blk",""]],"struct":[["BLOCK_DEVICE",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["block_device_test",""]],"mod":[["virtio_blk",""]],"struct":[["BLOCK_DEVICE",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/struct.BLOCK_DEVICE.html b/ch9-dev/os/drivers/block/struct.BLOCK_DEVICE.html index 5c965dd0..34a90e39 100644 --- a/ch9-dev/os/drivers/block/struct.BLOCK_DEVICE.html +++ b/ch9-dev/os/drivers/block/struct.BLOCK_DEVICE.html @@ -1,35 +1,28 @@ -BLOCK_DEVICE in os::drivers::block - Rust - -
pub struct BLOCK_DEVICE {
+BLOCK_DEVICE in os::drivers::block - Rust
pub struct BLOCK_DEVICE {
     __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/constant.VIRTIO0.html b/ch9-dev/os/drivers/block/virtio_blk/constant.VIRTIO0.html index a9855e43..0b8af443 100644 --- a/ch9-dev/os/drivers/block/virtio_blk/constant.VIRTIO0.html +++ b/ch9-dev/os/drivers/block/virtio_blk/constant.VIRTIO0.html @@ -1,8 +1 @@ -VIRTIO0 in os::drivers::block::virtio_blk - Rust - -
const VIRTIO0: usize = 0x10008000;
- \ No newline at end of file +VIRTIO0 in os::drivers::block::virtio_blk - Rust
const VIRTIO0: usize = 0x10008000;
\ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html b/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html deleted file mode 100644 index 785a6e27..00000000 --- a/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_dma_alloc.html +++ /dev/null @@ -1,9 +0,0 @@ -virtio_dma_alloc in os::drivers::block::virtio_blk - Rust - -
#[no_mangle]
-pub extern "C" fn virtio_dma_alloc(pages: usize) -> PhysAddr
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html b/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html deleted file mode 100644 index 7f979ce2..00000000 --- a/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_dma_dealloc.html +++ /dev/null @@ -1,9 +0,0 @@ -virtio_dma_dealloc in os::drivers::block::virtio_blk - Rust - -
#[no_mangle]
-pub extern "C" fn virtio_dma_dealloc(
    pa: PhysAddr,
    pages: usize
) -> i32
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html b/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html deleted file mode 100644 index 69f65364..00000000 --- a/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_phys_to_virt.html +++ /dev/null @@ -1,9 +0,0 @@ -virtio_phys_to_virt in os::drivers::block::virtio_blk - Rust - -
#[no_mangle]
-pub extern "C" fn virtio_phys_to_virt(paddr: PhysAddr) -> VirtAddr
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html b/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html deleted file mode 100644 index 19bb894c..00000000 --- a/ch9-dev/os/drivers/block/virtio_blk/fn.virtio_virt_to_phys.html +++ /dev/null @@ -1,9 +0,0 @@ -virtio_virt_to_phys in os::drivers::block::virtio_blk - Rust - -
#[no_mangle]
-pub extern "C" fn virtio_virt_to_phys(vaddr: VirtAddr) -> PhysAddr
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/index.html b/ch9-dev/os/drivers/block/virtio_blk/index.html index 3c65e571..64cc44eb 100644 --- a/ch9-dev/os/drivers/block/virtio_blk/index.html +++ b/ch9-dev/os/drivers/block/virtio_blk/index.html @@ -1,11 +1 @@ -os::drivers::block::virtio_blk - Rust - -
- \ No newline at end of file +os::drivers::block::virtio_blk - Rust
\ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/sidebar-items.js b/ch9-dev/os/drivers/block/virtio_blk/sidebar-items.js index 06229704..c4683407 100644 --- a/ch9-dev/os/drivers/block/virtio_blk/sidebar-items.js +++ b/ch9-dev/os/drivers/block/virtio_blk/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["VIRTIO0",""]],"fn":[["virtio_dma_alloc",""],["virtio_dma_dealloc",""],["virtio_phys_to_virt",""],["virtio_virt_to_phys",""]],"struct":[["QUEUE_FRAMES",""],["VirtIOBlock",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["VIRTIO0",""]],"struct":[["VirtIOBlock",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html b/ch9-dev/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html deleted file mode 100644 index 3687f830..00000000 --- a/ch9-dev/os/drivers/block/virtio_blk/struct.QUEUE_FRAMES.html +++ /dev/null @@ -1,36 +0,0 @@ -QUEUE_FRAMES in os::drivers::block::virtio_blk - Rust - -
struct QUEUE_FRAMES {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Vec<FrameTracker>>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/block/virtio_blk/struct.VirtIOBlock.html b/ch9-dev/os/drivers/block/virtio_blk/struct.VirtIOBlock.html index 6288dac4..e1735da4 100644 --- a/ch9-dev/os/drivers/block/virtio_blk/struct.VirtIOBlock.html +++ b/ch9-dev/os/drivers/block/virtio_blk/struct.VirtIOBlock.html @@ -1,34 +1,27 @@ -VirtIOBlock in os::drivers::block::virtio_blk - Rust - -
pub struct VirtIOBlock {
-    virtio_blk: UPIntrFreeCell<VirtIOBlk<'static>>,
+VirtIOBlock in os::drivers::block::virtio_blk - Rust
pub struct VirtIOBlock {
+    virtio_blk: UPIntrFreeCell<VirtIOBlk<'static, VirtioHal>>,
     condvars: BTreeMap<u16, Condvar>,
-}

Fields

virtio_blk: UPIntrFreeCell<VirtIOBlk<'static>>condvars: BTreeMap<u16, Condvar>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

virtio_blk: UPIntrFreeCell<VirtIOBlk<'static, VirtioHal>>condvars: BTreeMap<u16, Condvar>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/bus/index.html b/ch9-dev/os/drivers/bus/index.html new file mode 100644 index 00000000..88aeb662 --- /dev/null +++ b/ch9-dev/os/drivers/bus/index.html @@ -0,0 +1 @@ +os::drivers::bus - Rust
\ No newline at end of file diff --git a/ch9-dev/os/drivers/bus/sidebar-items.js b/ch9-dev/os/drivers/bus/sidebar-items.js new file mode 100644 index 00000000..85f51a2a --- /dev/null +++ b/ch9-dev/os/drivers/bus/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"mod":[["virtio",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/bus/virtio/index.html b/ch9-dev/os/drivers/bus/virtio/index.html new file mode 100644 index 00000000..c705b72c --- /dev/null +++ b/ch9-dev/os/drivers/bus/virtio/index.html @@ -0,0 +1 @@ +os::drivers::bus::virtio - Rust
\ No newline at end of file diff --git a/ch9-dev/os/drivers/bus/virtio/sidebar-items.js b/ch9-dev/os/drivers/bus/virtio/sidebar-items.js new file mode 100644 index 00000000..252dcdd2 --- /dev/null +++ b/ch9-dev/os/drivers/bus/virtio/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"struct":[["QUEUE_FRAMES",""],["VirtioHal",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/bus/virtio/struct.QUEUE_FRAMES.html b/ch9-dev/os/drivers/bus/virtio/struct.QUEUE_FRAMES.html new file mode 100644 index 00000000..1186ed44 --- /dev/null +++ b/ch9-dev/os/drivers/bus/virtio/struct.QUEUE_FRAMES.html @@ -0,0 +1,29 @@ +QUEUE_FRAMES in os::drivers::bus::virtio - Rust
struct QUEUE_FRAMES {
+    __private_field: (),
+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Vec<FrameTracker>>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/bus/virtio/struct.VirtioHal.html b/ch9-dev/os/drivers/bus/virtio/struct.VirtioHal.html new file mode 100644 index 00000000..2568154f --- /dev/null +++ b/ch9-dev/os/drivers/bus/virtio/struct.VirtioHal.html @@ -0,0 +1,30 @@ +VirtioHal in os::drivers::bus::virtio - Rust
pub struct VirtioHal;

Trait Implementations

Allocates the given number of contiguous physical pages of DMA memory for virtio use.

+

Deallocates the given contiguous physical DMA memory pages.

+

Converts a physical address used for virtio to a virtual address which the program can +access. Read more

+

Converts a virtual address which the program can access to the corresponding physical +address to use for virtio. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/index.html b/ch9-dev/os/drivers/chardev/index.html index 3f6b7712..6835836f 100644 --- a/ch9-dev/os/drivers/chardev/index.html +++ b/ch9-dev/os/drivers/chardev/index.html @@ -1,12 +1 @@ -os::drivers::chardev - Rust - -
- \ No newline at end of file +os::drivers::chardev - Rust
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/index.html b/ch9-dev/os/drivers/chardev/ns16550a/index.html index a85427b7..7206b7d5 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/index.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/index.html @@ -1,12 +1,4 @@ -os::drivers::chardev::ns16550a - Rust - -

Structs

-

InterruptEnableRegister

+os::drivers::chardev::ns16550a - Rust

Structs

InterruptEnableRegister

LineStatusRegister

Model Control Register

-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/sidebar-items.js b/ch9-dev/os/drivers/chardev/ns16550a/sidebar-items.js index ba696843..18808bc3 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/sidebar-items.js +++ b/ch9-dev/os/drivers/chardev/ns16550a/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["IER","InterruptEnableRegister"],["LSR","LineStatusRegister"],["MCR","Model Control Register"],["NS16550a",""],["NS16550aInner",""],["NS16550aRaw",""],["ReadWithoutDLAB",""],["WriteWithoutDLAB",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["IER","InterruptEnableRegister"],["LSR","LineStatusRegister"],["MCR","Model Control Register"],["NS16550a",""],["NS16550aInner",""],["NS16550aRaw",""],["ReadWithoutDLAB",""],["WriteWithoutDLAB",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/struct.IER.html b/ch9-dev/os/drivers/chardev/ns16550a/struct.IER.html index bc546efa..38740157 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/struct.IER.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/struct.IER.html @@ -1,20 +1,14 @@ -IER in os::drivers::chardev::ns16550a - Rust - -
pub struct IER {
+IER in os::drivers::chardev::ns16550a - Rust
pub struct IER {
     bits: u8,
 }
Expand description

InterruptEnableRegister

-

Fields

bits: u8

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +

Fields

bits: u8

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -22,35 +16,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -58,79 +52,78 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

-

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

-

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

-

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

-
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

-
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

-

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

+

The resulting type after applying the & operator.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

+

The resulting type after applying the | operator.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

+

The resulting type after applying the ^ operator.

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

+
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

+
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

+

The resulting type after applying the ! operator.

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

-

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Returns the set difference of the two sets of flags.

+

The resulting type after applying the - operator.

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/struct.LSR.html b/ch9-dev/os/drivers/chardev/ns16550a/struct.LSR.html index a0519e83..ddd46098 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/struct.LSR.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/struct.LSR.html @@ -1,20 +1,14 @@ -LSR in os::drivers::chardev::ns16550a - Rust - -
pub struct LSR {
+LSR in os::drivers::chardev::ns16550a - Rust
pub struct LSR {
     bits: u8,
 }
Expand description

LineStatusRegister

-

Fields

bits: u8

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +

Fields

bits: u8

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -22,35 +16,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -58,79 +52,78 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

-

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

-

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

-

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

-
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

-
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

-

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

+

The resulting type after applying the & operator.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

+

The resulting type after applying the | operator.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

+

The resulting type after applying the ^ operator.

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

+
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

+
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

+

The resulting type after applying the ! operator.

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

-

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Returns the set difference of the two sets of flags.

+

The resulting type after applying the - operator.

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/struct.MCR.html b/ch9-dev/os/drivers/chardev/ns16550a/struct.MCR.html index b4a6ff74..a826c15e 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/struct.MCR.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/struct.MCR.html @@ -1,20 +1,14 @@ -MCR in os::drivers::chardev::ns16550a - Rust - -
pub struct MCR {
+MCR in os::drivers::chardev::ns16550a - Rust
pub struct MCR {
     bits: u8,
 }
Expand description

Model Control Register

-

Fields

bits: u8

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +

Fields

bits: u8

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -22,35 +16,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -58,79 +52,78 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

-

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

-

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

-

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

-
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

-
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

-

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

+

The resulting type after applying the & operator.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

+

The resulting type after applying the | operator.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

+

The resulting type after applying the ^ operator.

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

+
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

+
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

+

The resulting type after applying the ! operator.

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

-

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Returns the set difference of the two sets of flags.

+

The resulting type after applying the - operator.

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550a.html b/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550a.html index 4c197fcf..f2cca249 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550a.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550a.html @@ -1,34 +1,27 @@ -NS16550a in os::drivers::chardev::ns16550a - Rust - -
pub struct NS16550a<const BASE_ADDR: usize> {
+NS16550a in os::drivers::chardev::ns16550a - Rust
pub struct NS16550a<const BASE_ADDR: usize> {
     inner: UPIntrFreeCell<NS16550aInner>,
     condvar: Condvar,
-}

Fields

inner: UPIntrFreeCell<NS16550aInner>condvar: Condvar

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

inner: UPIntrFreeCell<NS16550aInner>condvar: Condvar

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550aInner.html b/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550aInner.html index 7fbcffd8..999b4323 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550aInner.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550aInner.html @@ -1,34 +1,27 @@ -NS16550aInner in os::drivers::chardev::ns16550a - Rust - -
struct NS16550aInner {
+NS16550aInner in os::drivers::chardev::ns16550a - Rust
struct NS16550aInner {
     ns16550a: NS16550aRaw,
     read_buffer: VecDeque<u8>,
-}

Fields

ns16550a: NS16550aRawread_buffer: VecDeque<u8>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

ns16550a: NS16550aRawread_buffer: VecDeque<u8>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html b/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html index 169f3184..27a6df44 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/struct.NS16550aRaw.html @@ -1,33 +1,26 @@ -NS16550aRaw in os::drivers::chardev::ns16550a - Rust - -
pub struct NS16550aRaw {
+NS16550aRaw in os::drivers::chardev::ns16550a - Rust
pub struct NS16550aRaw {
     base_addr: usize,
-}

Fields

base_addr: usize

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

base_addr: usize

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html b/ch9-dev/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html index 791126e1..fbe62534 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/struct.ReadWithoutDLAB.html @@ -1,10 +1,4 @@ -ReadWithoutDLAB in os::drivers::chardev::ns16550a - Rust - -
#[repr(C)]
struct ReadWithoutDLAB { +ReadWithoutDLAB in os::drivers::chardev::ns16550a - Rust
#[repr(C)]
struct ReadWithoutDLAB { pub rbr: ReadOnly<u8>, pub ier: Volatile<IER>, pub iir: ReadOnly<u8>, @@ -21,28 +15,27 @@
lsr: ReadOnly<LSR>

line status register

_padding1: ReadOnly<u8>

ignore MSR

_padding2: ReadOnly<u8>

ignore SCR

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html b/ch9-dev/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html index 283cf513..745160ec 100644 --- a/ch9-dev/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html +++ b/ch9-dev/os/drivers/chardev/ns16550a/struct.WriteWithoutDLAB.html @@ -1,10 +1,4 @@ -WriteWithoutDLAB in os::drivers::chardev::ns16550a - Rust - -
#[repr(C)]
struct WriteWithoutDLAB { +WriteWithoutDLAB in os::drivers::chardev::ns16550a - Rust
#[repr(C)]
struct WriteWithoutDLAB { pub thr: WriteOnly<u8>, pub ier: Volatile<IER>, _padding0: ReadOnly<u8>, @@ -19,28 +13,27 @@
mcr: Volatile<MCR>

modem control register

lsr: ReadOnly<LSR>

line status register

_padding1: ReadOnly<u16>

ignore other registers

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/sidebar-items.js b/ch9-dev/os/drivers/chardev/sidebar-items.js index 8b19d02e..0d2ff6fa 100644 --- a/ch9-dev/os/drivers/chardev/sidebar-items.js +++ b/ch9-dev/os/drivers/chardev/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"mod":[["ns16550a",""]],"struct":[["UART",""]],"trait":[["CharDevice",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":[["ns16550a",""]],"struct":[["UART",""]],"trait":[["CharDevice",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/struct.UART.html b/ch9-dev/os/drivers/chardev/struct.UART.html index 54873838..3db43606 100644 --- a/ch9-dev/os/drivers/chardev/struct.UART.html +++ b/ch9-dev/os/drivers/chardev/struct.UART.html @@ -1,35 +1,28 @@ -UART in os::drivers::chardev - Rust - -
pub struct UART {
+UART in os::drivers::chardev - Rust
pub struct UART {
     __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/chardev/trait.CharDevice.html b/ch9-dev/os/drivers/chardev/trait.CharDevice.html index b7872958..5ed399df 100644 --- a/ch9-dev/os/drivers/chardev/trait.CharDevice.html +++ b/ch9-dev/os/drivers/chardev/trait.CharDevice.html @@ -1,12 +1,5 @@ -CharDevice in os::drivers::chardev - Rust - -
pub trait CharDevice {
+CharDevice in os::drivers::chardev - Rust
pub trait CharDevice {
     fn read(&self) -> u8;
     fn write(&self, ch: u8);
     fn handle_irq(&self);
-}

Required methods

Implementors

- \ No newline at end of file +}

Required Methods

Implementors

\ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/constant.VIRTIO7.html b/ch9-dev/os/drivers/gpu/constant.VIRTIO7.html index badb86b1..e94165de 100644 --- a/ch9-dev/os/drivers/gpu/constant.VIRTIO7.html +++ b/ch9-dev/os/drivers/gpu/constant.VIRTIO7.html @@ -1,8 +1 @@ -VIRTIO7 in os::drivers::gpu - Rust - -
-

Constant os::drivers::gpu::VIRTIO7

source · []
const VIRTIO7: usize = 0x10007000;
- \ No newline at end of file +VIRTIO7 in os::drivers::gpu - Rust
const VIRTIO7: usize = 0x10007000;
\ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/index.html b/ch9-dev/os/drivers/gpu/index.html index 56ff0ac2..cfd86822 100644 --- a/ch9-dev/os/drivers/gpu/index.html +++ b/ch9-dev/os/drivers/gpu/index.html @@ -1,12 +1 @@ -os::drivers::gpu - Rust - -
- \ No newline at end of file +os::drivers::gpu - Rust
\ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/sidebar-items.js b/ch9-dev/os/drivers/gpu/sidebar-items.js index ab0a30ca..54b6e6f6 100644 --- a/ch9-dev/os/drivers/gpu/sidebar-items.js +++ b/ch9-dev/os/drivers/gpu/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["VIRTIO7",""]],"static":[["BMP_DATA",""]],"struct":[["GPU_DEVICE",""],["VirtIOGPU",""]],"trait":[["GPUDevice",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["VIRTIO7",""]],"static":[["BMP_DATA",""]],"struct":[["GPU_DEVICE",""],["VirtIOGpuWrapper",""]],"trait":[["GpuDevice",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/static.BMP_DATA.html b/ch9-dev/os/drivers/gpu/static.BMP_DATA.html index 8f7989ae..66b3c23d 100644 --- a/ch9-dev/os/drivers/gpu/static.BMP_DATA.html +++ b/ch9-dev/os/drivers/gpu/static.BMP_DATA.html @@ -1,8 +1 @@ -BMP_DATA in os::drivers::gpu - Rust - -
static BMP_DATA: &[u8]
- \ No newline at end of file +BMP_DATA in os::drivers::gpu - Rust
static BMP_DATA: &'static [u8]
\ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/struct.GPU_DEVICE.html b/ch9-dev/os/drivers/gpu/struct.GPU_DEVICE.html index 8496afa0..a2ef2c29 100644 --- a/ch9-dev/os/drivers/gpu/struct.GPU_DEVICE.html +++ b/ch9-dev/os/drivers/gpu/struct.GPU_DEVICE.html @@ -1,35 +1,28 @@ -GPU_DEVICE in os::drivers::gpu - Rust - -
pub struct GPU_DEVICE {
+GPU_DEVICE in os::drivers::gpu - Rust
pub struct GPU_DEVICE {
     __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/struct.VirtIOGPU.html b/ch9-dev/os/drivers/gpu/struct.VirtIOGPU.html deleted file mode 100644 index f9e82384..00000000 --- a/ch9-dev/os/drivers/gpu/struct.VirtIOGPU.html +++ /dev/null @@ -1,34 +0,0 @@ -VirtIOGPU in os::drivers::gpu - Rust - -
pub struct VirtIOGPU {
-    gpu: UPIntrFreeCell<VirtIOGpu<'static>>,
-    fb: &'static [u8],
-}

Fields

gpu: UPIntrFreeCell<VirtIOGpu<'static>>fb: &'static [u8]

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/struct.VirtIOGpuWrapper.html b/ch9-dev/os/drivers/gpu/struct.VirtIOGpuWrapper.html new file mode 100644 index 00000000..e3123564 --- /dev/null +++ b/ch9-dev/os/drivers/gpu/struct.VirtIOGpuWrapper.html @@ -0,0 +1,27 @@ +VirtIOGpuWrapper in os::drivers::gpu - Rust
pub struct VirtIOGpuWrapper {
+    gpu: UPIntrFreeCell<VirtIOGpu<'static, VirtioHal>>,
+    fb: &'static [u8],
+}

Fields

gpu: UPIntrFreeCell<VirtIOGpu<'static, VirtioHal>>fb: &'static [u8]

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/trait.GPUDevice.html b/ch9-dev/os/drivers/gpu/trait.GPUDevice.html deleted file mode 100644 index 1909fa2d..00000000 --- a/ch9-dev/os/drivers/gpu/trait.GPUDevice.html +++ /dev/null @@ -1,12 +0,0 @@ -GPUDevice in os::drivers::gpu - Rust - -
pub trait GPUDevice: Send + Sync + Any {
-    fn update_cursor(&self);
-    fn getfreambuffer(&self) -> &mut [u8];
-    fn flush(&self);
-}

Required methods

Implementors

- \ No newline at end of file diff --git a/ch9-dev/os/drivers/gpu/trait.GpuDevice.html b/ch9-dev/os/drivers/gpu/trait.GpuDevice.html new file mode 100644 index 00000000..36599d0a --- /dev/null +++ b/ch9-dev/os/drivers/gpu/trait.GpuDevice.html @@ -0,0 +1,5 @@ +GpuDevice in os::drivers::gpu - Rust
pub trait GpuDevice: Send + Sync + Any {
+    fn update_cursor(&self);
+    fn get_framebuffer(&self) -> &mut [u8];
+    fn flush(&self);
+}

Required Methods

Implementors

\ No newline at end of file diff --git a/ch9-dev/os/drivers/index.html b/ch9-dev/os/drivers/index.html index 8296dbd4..26ecbb97 100644 --- a/ch9-dev/os/drivers/index.html +++ b/ch9-dev/os/drivers/index.html @@ -1,10 +1 @@ -os::drivers - Rust - -
-

Module os::drivers

source · []

Re-exports

-
pub use block::BLOCK_DEVICE;
pub use block::BLOCK_DEVICE;
pub use chardev::UART;
pub use chardev::UART;
pub use gpu::*;
pub use input::*;

Modules

-
- \ No newline at end of file +os::drivers - Rust

Re-exports

pub use block::BLOCK_DEVICE;
pub use block::BLOCK_DEVICE;
pub use bus::*;
pub use chardev::UART;
pub use chardev::UART;
pub use gpu::*;
pub use input::*;

Modules

\ No newline at end of file diff --git a/ch9-dev/os/drivers/input/constant.VIRTIO5.html b/ch9-dev/os/drivers/input/constant.VIRTIO5.html index 9a2fbdd0..5e6f0335 100644 --- a/ch9-dev/os/drivers/input/constant.VIRTIO5.html +++ b/ch9-dev/os/drivers/input/constant.VIRTIO5.html @@ -1,8 +1 @@ -VIRTIO5 in os::drivers::input - Rust - -
-

Constant os::drivers::input::VIRTIO5

source · []
const VIRTIO5: usize = 0x10005000;
- \ No newline at end of file +VIRTIO5 in os::drivers::input - Rust
const VIRTIO5: usize = 0x10005000;
\ No newline at end of file diff --git a/ch9-dev/os/drivers/input/constant.VIRTIO6.html b/ch9-dev/os/drivers/input/constant.VIRTIO6.html index f146ebd5..a15a779f 100644 --- a/ch9-dev/os/drivers/input/constant.VIRTIO6.html +++ b/ch9-dev/os/drivers/input/constant.VIRTIO6.html @@ -1,8 +1 @@ -VIRTIO6 in os::drivers::input - Rust - -
-

Constant os::drivers::input::VIRTIO6

source · []
const VIRTIO6: usize = 0x10006000;
- \ No newline at end of file +VIRTIO6 in os::drivers::input - Rust
const VIRTIO6: usize = 0x10006000;
\ No newline at end of file diff --git a/ch9-dev/os/drivers/input/index.html b/ch9-dev/os/drivers/input/index.html index 38fb937f..af8e45b6 100644 --- a/ch9-dev/os/drivers/input/index.html +++ b/ch9-dev/os/drivers/input/index.html @@ -1,11 +1 @@ -os::drivers::input - Rust - -
- \ No newline at end of file +os::drivers::input - Rust
\ No newline at end of file diff --git a/ch9-dev/os/drivers/input/sidebar-items.js b/ch9-dev/os/drivers/input/sidebar-items.js index cc25d37a..476b459a 100644 --- a/ch9-dev/os/drivers/input/sidebar-items.js +++ b/ch9-dev/os/drivers/input/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["VIRTIO5",""],["VIRTIO6",""]],"struct":[["KEYBOARD_DEVICE",""],["MOUSE_DEVICE",""],["VirtIOINPUT",""]],"trait":[["INPUTDevice",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["VIRTIO5",""],["VIRTIO6",""]],"struct":[["KEYBOARD_DEVICE",""],["MOUSE_DEVICE",""],["VirtIOInputWrapper",""]],"trait":[["InputDevice",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/input/struct.KEYBOARD_DEVICE.html b/ch9-dev/os/drivers/input/struct.KEYBOARD_DEVICE.html index 9295d6d2..0e87ec71 100644 --- a/ch9-dev/os/drivers/input/struct.KEYBOARD_DEVICE.html +++ b/ch9-dev/os/drivers/input/struct.KEYBOARD_DEVICE.html @@ -1,35 +1,28 @@ -KEYBOARD_DEVICE in os::drivers::input - Rust - -
pub struct KEYBOARD_DEVICE {
+KEYBOARD_DEVICE in os::drivers::input - Rust
pub struct KEYBOARD_DEVICE {
     __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/input/struct.MOUSE_DEVICE.html b/ch9-dev/os/drivers/input/struct.MOUSE_DEVICE.html index a1c3d197..60f97c51 100644 --- a/ch9-dev/os/drivers/input/struct.MOUSE_DEVICE.html +++ b/ch9-dev/os/drivers/input/struct.MOUSE_DEVICE.html @@ -1,35 +1,28 @@ -MOUSE_DEVICE in os::drivers::input - Rust - -
pub struct MOUSE_DEVICE {
+MOUSE_DEVICE in os::drivers::input - Rust
pub struct MOUSE_DEVICE {
     __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/input/struct.VirtIOINPUT.html b/ch9-dev/os/drivers/input/struct.VirtIOINPUT.html deleted file mode 100644 index 9b6b5043..00000000 --- a/ch9-dev/os/drivers/input/struct.VirtIOINPUT.html +++ /dev/null @@ -1,31 +0,0 @@ -VirtIOINPUT in os::drivers::input - Rust - -
struct VirtIOINPUT(UPIntrFreeCell<VirtIOInput<'static>>);

Tuple Fields

0: UPIntrFreeCell<VirtIOInput<'static>>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/drivers/input/struct.VirtIOInputWrapper.html b/ch9-dev/os/drivers/input/struct.VirtIOInputWrapper.html new file mode 100644 index 00000000..800d89e0 --- /dev/null +++ b/ch9-dev/os/drivers/input/struct.VirtIOInputWrapper.html @@ -0,0 +1,24 @@ +VirtIOInputWrapper in os::drivers::input - Rust
struct VirtIOInputWrapper(UPIntrFreeCell<VirtIOInput<'static, VirtioHal>>);

Tuple Fields

0: UPIntrFreeCell<VirtIOInput<'static, VirtioHal>>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/input/trait.INPUTDevice.html b/ch9-dev/os/drivers/input/trait.INPUTDevice.html deleted file mode 100644 index b084e152..00000000 --- a/ch9-dev/os/drivers/input/trait.INPUTDevice.html +++ /dev/null @@ -1,10 +0,0 @@ -INPUTDevice in os::drivers::input - Rust - -
pub trait INPUTDevice: Send + Sync + Any {
-    fn handle_irq(&self);
-}

Required methods

Implementors

- \ No newline at end of file diff --git a/ch9-dev/os/drivers/input/trait.InputDevice.html b/ch9-dev/os/drivers/input/trait.InputDevice.html new file mode 100644 index 00000000..cdd07883 --- /dev/null +++ b/ch9-dev/os/drivers/input/trait.InputDevice.html @@ -0,0 +1,3 @@ +InputDevice in os::drivers::input - Rust
pub trait InputDevice: Send + Sync + Any {
+    fn handle_irq(&self);
+}

Required Methods

Implementors

\ No newline at end of file diff --git a/ch9-dev/os/drivers/plic/enum.IntrTargetPriority.html b/ch9-dev/os/drivers/plic/enum.IntrTargetPriority.html index 0e2d6c57..471baaae 100644 --- a/ch9-dev/os/drivers/plic/enum.IntrTargetPriority.html +++ b/ch9-dev/os/drivers/plic/enum.IntrTargetPriority.html @@ -1,39 +1,32 @@ -IntrTargetPriority in os::drivers::plic - Rust - -
pub enum IntrTargetPriority {
+IntrTargetPriority in os::drivers::plic - Rust
pub enum IntrTargetPriority {
     Machine,
     Supervisor,
-}

Variants

Machine

Supervisor

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Variants

Machine

Supervisor

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/plic/index.html b/ch9-dev/os/drivers/plic/index.html index e25ba1dd..043ec326 100644 --- a/ch9-dev/os/drivers/plic/index.html +++ b/ch9-dev/os/drivers/plic/index.html @@ -1,10 +1 @@ -os::drivers::plic - Rust - -
- \ No newline at end of file +os::drivers::plic - Rust
\ No newline at end of file diff --git a/ch9-dev/os/drivers/plic/sidebar-items.js b/ch9-dev/os/drivers/plic/sidebar-items.js index 8d3772c7..42ac4a87 100644 --- a/ch9-dev/os/drivers/plic/sidebar-items.js +++ b/ch9-dev/os/drivers/plic/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"enum":[["IntrTargetPriority",""]],"struct":[["PLIC",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":[["IntrTargetPriority",""]],"struct":[["PLIC",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/drivers/plic/struct.PLIC.html b/ch9-dev/os/drivers/plic/struct.PLIC.html index 97564e59..aaf6cad3 100644 --- a/ch9-dev/os/drivers/plic/struct.PLIC.html +++ b/ch9-dev/os/drivers/plic/struct.PLIC.html @@ -1,33 +1,26 @@ -PLIC in os::drivers::plic - Rust - -
-

Struct os::drivers::plic::PLIC

source · []
pub struct PLIC {
+PLIC in os::drivers::plic - Rust
pub struct PLIC {
     base_addr: usize,
-}

Fields

base_addr: usize

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

base_addr: usize

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/drivers/sidebar-items.js b/ch9-dev/os/drivers/sidebar-items.js index 1abe046c..258af4cd 100644 --- a/ch9-dev/os/drivers/sidebar-items.js +++ b/ch9-dev/os/drivers/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"mod":[["block",""],["chardev",""],["gpu",""],["input",""],["plic",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":[["block",""],["bus",""],["chardev",""],["gpu",""],["input",""],["plic",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/fn.clear_bss.html b/ch9-dev/os/fn.clear_bss.html index c412ab00..43a3aae3 100644 --- a/ch9-dev/os/fn.clear_bss.html +++ b/ch9-dev/os/fn.clear_bss.html @@ -1,8 +1 @@ -clear_bss in os - Rust - -
-

Function os::clear_bss

source · []
pub(crate) fn clear_bss()
- \ No newline at end of file +clear_bss in os - Rust

Function os::clear_bss

source · []
pub(crate) fn clear_bss()
\ No newline at end of file diff --git a/ch9-dev/os/fn.rust_main.html b/ch9-dev/os/fn.rust_main.html index 149fa5c5..4f4ae075 100644 --- a/ch9-dev/os/fn.rust_main.html +++ b/ch9-dev/os/fn.rust_main.html @@ -1,9 +1,2 @@ -rust_main in os - Rust - -
-

Function os::rust_main

source · []
#[no_mangle]
-pub fn rust_main() -> !
- \ No newline at end of file +rust_main in os - Rust

Function os::rust_main

source · []
#[no_mangle]
+pub fn rust_main() -> !
\ No newline at end of file diff --git a/ch9-dev/os/fs/index.html b/ch9-dev/os/fs/index.html index ebffc8a0..6a7f90ad 100644 --- a/ch9-dev/os/fs/index.html +++ b/ch9-dev/os/fs/index.html @@ -1,11 +1 @@ -os::fs - Rust - -
-

Module os::fs

source · []

Re-exports

-
pub use inode::list_apps;
pub use inode::open_file;
pub use inode::OSInode;
pub use inode::OpenFlags;
pub use inode::ROOT_INODE;
pub use inode::ROOT_INODE;
pub use pipe::make_pipe;
pub use pipe::Pipe;
pub use stdio::Stdin;
pub use stdio::Stdout;

Modules

-
inode 🔒
pipe 🔒
stdio 🔒

Traits

-
- \ No newline at end of file +os::fs - Rust

Module os::fs

source · []

Re-exports

pub use inode::list_apps;
pub use inode::open_file;
pub use inode::OSInode;
pub use inode::OpenFlags;
pub use inode::ROOT_INODE;
pub use inode::ROOT_INODE;
pub use pipe::make_pipe;
pub use pipe::Pipe;
pub use stdio::Stdin;
pub use stdio::Stdout;

Modules

inode 🔒
pipe 🔒
stdio 🔒

Traits

\ No newline at end of file diff --git a/ch9-dev/os/fs/inode/fn.list_apps.html b/ch9-dev/os/fs/inode/fn.list_apps.html index 58d6c376..89335301 100644 --- a/ch9-dev/os/fs/inode/fn.list_apps.html +++ b/ch9-dev/os/fs/inode/fn.list_apps.html @@ -1,8 +1 @@ -list_apps in os::fs::inode - Rust - -
-

Function os::fs::inode::list_apps

source · []
pub fn list_apps()
- \ No newline at end of file +list_apps in os::fs::inode - Rust
pub fn list_apps()
\ No newline at end of file diff --git a/ch9-dev/os/fs/inode/fn.open_file.html b/ch9-dev/os/fs/inode/fn.open_file.html index 7f6647aa..920c58ae 100644 --- a/ch9-dev/os/fs/inode/fn.open_file.html +++ b/ch9-dev/os/fs/inode/fn.open_file.html @@ -1,8 +1 @@ -open_file in os::fs::inode - Rust - -
-

Function os::fs::inode::open_file

source · []
pub fn open_file(name: &str, flags: OpenFlags) -> Option<Arc<OSInode>>
- \ No newline at end of file +open_file in os::fs::inode - Rust
pub fn open_file(name: &str, flags: OpenFlags) -> Option<Arc<OSInode>>
\ No newline at end of file diff --git a/ch9-dev/os/fs/inode/index.html b/ch9-dev/os/fs/inode/index.html index 101d6c44..703da839 100644 --- a/ch9-dev/os/fs/inode/index.html +++ b/ch9-dev/os/fs/inode/index.html @@ -1,10 +1 @@ -os::fs::inode - Rust - -
- \ No newline at end of file +os::fs::inode - Rust
\ No newline at end of file diff --git a/ch9-dev/os/fs/inode/sidebar-items.js b/ch9-dev/os/fs/inode/sidebar-items.js index 6b53705a..53c2be6b 100644 --- a/ch9-dev/os/fs/inode/sidebar-items.js +++ b/ch9-dev/os/fs/inode/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["list_apps",""],["open_file",""]],"struct":[["OSInode",""],["OSInodeInner",""],["OpenFlags",""],["ROOT_INODE",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["list_apps",""],["open_file",""]],"struct":[["OSInode",""],["OSInodeInner",""],["OpenFlags",""],["ROOT_INODE",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/fs/inode/struct.OSInode.html b/ch9-dev/os/fs/inode/struct.OSInode.html index 6b4f658a..fa5c5b1b 100644 --- a/ch9-dev/os/fs/inode/struct.OSInode.html +++ b/ch9-dev/os/fs/inode/struct.OSInode.html @@ -1,35 +1,28 @@ -OSInode in os::fs::inode - Rust - -
-

Struct os::fs::inode::OSInode

source · []
pub struct OSInode {
+OSInode in os::fs::inode - Rust
pub struct OSInode {
     readable: bool,
     writable: bool,
     inner: UPIntrFreeCell<OSInodeInner>,
-}

Fields

readable: boolwritable: boolinner: UPIntrFreeCell<OSInodeInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

readable: boolwritable: boolinner: UPIntrFreeCell<OSInodeInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/inode/struct.OSInodeInner.html b/ch9-dev/os/fs/inode/struct.OSInodeInner.html index 5729d3c0..2ac8ee59 100644 --- a/ch9-dev/os/fs/inode/struct.OSInodeInner.html +++ b/ch9-dev/os/fs/inode/struct.OSInodeInner.html @@ -1,34 +1,27 @@ -OSInodeInner in os::fs::inode - Rust - -
pub struct OSInodeInner {
+OSInodeInner in os::fs::inode - Rust
pub struct OSInodeInner {
     offset: usize,
     inode: Arc<Inode>,
-}

Fields

offset: usizeinode: Arc<Inode>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

offset: usizeinode: Arc<Inode>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/inode/struct.OpenFlags.html b/ch9-dev/os/fs/inode/struct.OpenFlags.html index b009e54f..d0e059e8 100644 --- a/ch9-dev/os/fs/inode/struct.OpenFlags.html +++ b/ch9-dev/os/fs/inode/struct.OpenFlags.html @@ -1,19 +1,13 @@ -OpenFlags in os::fs::inode - Rust - -
-

Struct os::fs::inode::OpenFlags

source · []
pub struct OpenFlags {
+OpenFlags in os::fs::inode - Rust
pub struct OpenFlags {
     bits: u32,
-}

Fields

bits: u32

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +}

Fields

bits: u32

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -21,35 +15,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -57,81 +51,80 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Do not check validity for simplicity +

Do not check validity for simplicity Return (readable, writable)

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

-

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

-

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

-

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

-
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

-
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

-

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

+

The resulting type after applying the & operator.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

+

The resulting type after applying the | operator.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

+

The resulting type after applying the ^ operator.

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

+
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

+
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

+

The resulting type after applying the ! operator.

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

-

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Returns the set difference of the two sets of flags.

+

The resulting type after applying the - operator.

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/inode/struct.ROOT_INODE.html b/ch9-dev/os/fs/inode/struct.ROOT_INODE.html index 6ef7c7f6..5d71e3bb 100644 --- a/ch9-dev/os/fs/inode/struct.ROOT_INODE.html +++ b/ch9-dev/os/fs/inode/struct.ROOT_INODE.html @@ -1,35 +1,28 @@ -ROOT_INODE in os::fs::inode - Rust - -
-

Struct os::fs::inode::ROOT_INODE

source · []

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/pipe/constant.RING_BUFFER_SIZE.html b/ch9-dev/os/fs/pipe/constant.RING_BUFFER_SIZE.html index 31a764da..805b061d 100644 --- a/ch9-dev/os/fs/pipe/constant.RING_BUFFER_SIZE.html +++ b/ch9-dev/os/fs/pipe/constant.RING_BUFFER_SIZE.html @@ -1,8 +1 @@ -RING_BUFFER_SIZE in os::fs::pipe - Rust - -
const RING_BUFFER_SIZE: usize = 32;
- \ No newline at end of file +RING_BUFFER_SIZE in os::fs::pipe - Rust
const RING_BUFFER_SIZE: usize = 32;
\ No newline at end of file diff --git a/ch9-dev/os/fs/pipe/enum.RingBufferStatus.html b/ch9-dev/os/fs/pipe/enum.RingBufferStatus.html index f931e629..16170de3 100644 --- a/ch9-dev/os/fs/pipe/enum.RingBufferStatus.html +++ b/ch9-dev/os/fs/pipe/enum.RingBufferStatus.html @@ -1,43 +1,36 @@ -RingBufferStatus in os::fs::pipe - Rust - -

Variants

Full

Empty

Normal

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/pipe/fn.make_pipe.html b/ch9-dev/os/fs/pipe/fn.make_pipe.html index cbf68237..ecc081f0 100644 --- a/ch9-dev/os/fs/pipe/fn.make_pipe.html +++ b/ch9-dev/os/fs/pipe/fn.make_pipe.html @@ -1,9 +1,2 @@ -make_pipe in os::fs::pipe - Rust - -
-

Function os::fs::pipe::make_pipe

source · []
pub fn make_pipe() -> (Arc<Pipe>, Arc<Pipe>)
Expand description

Return (read_end, write_end)

-
- \ No newline at end of file +make_pipe in os::fs::pipe - Rust

Function os::fs::pipe::make_pipe

source · []
pub fn make_pipe() -> (Arc<Pipe>, Arc<Pipe>)
Expand description

Return (read_end, write_end)

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/pipe/index.html b/ch9-dev/os/fs/pipe/index.html index 660fcdfd..2552d620 100644 --- a/ch9-dev/os/fs/pipe/index.html +++ b/ch9-dev/os/fs/pipe/index.html @@ -1,13 +1,2 @@ -os::fs::pipe - Rust - -
- \ No newline at end of file +os::fs::pipe - Rust
\ No newline at end of file diff --git a/ch9-dev/os/fs/pipe/sidebar-items.js b/ch9-dev/os/fs/pipe/sidebar-items.js index 9c0d7ebc..b687c9c1 100644 --- a/ch9-dev/os/fs/pipe/sidebar-items.js +++ b/ch9-dev/os/fs/pipe/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["RING_BUFFER_SIZE",""]],"enum":[["RingBufferStatus",""]],"fn":[["make_pipe","Return (read_end, write_end)"]],"struct":[["Pipe",""],["PipeRingBuffer",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["RING_BUFFER_SIZE",""]],"enum":[["RingBufferStatus",""]],"fn":[["make_pipe","Return (read_end, write_end)"]],"struct":[["Pipe",""],["PipeRingBuffer",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/fs/pipe/struct.Pipe.html b/ch9-dev/os/fs/pipe/struct.Pipe.html index 2142080b..a8c661f9 100644 --- a/ch9-dev/os/fs/pipe/struct.Pipe.html +++ b/ch9-dev/os/fs/pipe/struct.Pipe.html @@ -1,35 +1,28 @@ -Pipe in os::fs::pipe - Rust - -
-

Struct os::fs::pipe::Pipe

source · []
pub struct Pipe {
+Pipe in os::fs::pipe - Rust

Struct os::fs::pipe::Pipe

source · []
pub struct Pipe {
     readable: bool,
     writable: bool,
     buffer: Arc<UPIntrFreeCell<PipeRingBuffer>>,
-}

Fields

readable: boolwritable: boolbuffer: Arc<UPIntrFreeCell<PipeRingBuffer>>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

readable: boolwritable: boolbuffer: Arc<UPIntrFreeCell<PipeRingBuffer>>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/pipe/struct.PipeRingBuffer.html b/ch9-dev/os/fs/pipe/struct.PipeRingBuffer.html index 7fd76b2e..986d7ab3 100644 --- a/ch9-dev/os/fs/pipe/struct.PipeRingBuffer.html +++ b/ch9-dev/os/fs/pipe/struct.PipeRingBuffer.html @@ -1,37 +1,30 @@ -PipeRingBuffer in os::fs::pipe - Rust - -
pub struct PipeRingBuffer {
+PipeRingBuffer in os::fs::pipe - Rust
pub struct PipeRingBuffer {
     arr: [u8; 32],
     head: usize,
     tail: usize,
     status: RingBufferStatus,
     write_end: Option<Weak<Pipe>>,
-}

Fields

arr: [u8; 32]head: usizetail: usizestatus: RingBufferStatuswrite_end: Option<Weak<Pipe>>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

arr: [u8; 32]head: usizetail: usizestatus: RingBufferStatuswrite_end: Option<Weak<Pipe>>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/sidebar-items.js b/ch9-dev/os/fs/sidebar-items.js index 835c949e..2cabee7d 100644 --- a/ch9-dev/os/fs/sidebar-items.js +++ b/ch9-dev/os/fs/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"mod":[["inode",""],["pipe",""],["stdio",""]],"trait":[["File",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":[["inode",""],["pipe",""],["stdio",""]],"trait":[["File",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/fs/stdio/index.html b/ch9-dev/os/fs/stdio/index.html index 6409e82d..d1fb7e4c 100644 --- a/ch9-dev/os/fs/stdio/index.html +++ b/ch9-dev/os/fs/stdio/index.html @@ -1,9 +1 @@ -os::fs::stdio - Rust - -
- \ No newline at end of file +os::fs::stdio - Rust
\ No newline at end of file diff --git a/ch9-dev/os/fs/stdio/sidebar-items.js b/ch9-dev/os/fs/stdio/sidebar-items.js index 9dbb449f..bb4987e8 100644 --- a/ch9-dev/os/fs/stdio/sidebar-items.js +++ b/ch9-dev/os/fs/stdio/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["Stdin",""],["Stdout",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["Stdin",""],["Stdout",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/fs/stdio/struct.Stdin.html b/ch9-dev/os/fs/stdio/struct.Stdin.html index e3f50487..72ef80c6 100644 --- a/ch9-dev/os/fs/stdio/struct.Stdin.html +++ b/ch9-dev/os/fs/stdio/struct.Stdin.html @@ -1,31 +1,24 @@ -Stdin in os::fs::stdio - Rust - -
-

Struct os::fs::stdio::Stdin

source · []
pub struct Stdin;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+Stdin in os::fs::stdio - Rust

Struct os::fs::stdio::Stdin

source · []
pub struct Stdin;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/stdio/struct.Stdout.html b/ch9-dev/os/fs/stdio/struct.Stdout.html index 9bac461a..269a3951 100644 --- a/ch9-dev/os/fs/stdio/struct.Stdout.html +++ b/ch9-dev/os/fs/stdio/struct.Stdout.html @@ -1,31 +1,24 @@ -Stdout in os::fs::stdio - Rust - -
-

Struct os::fs::stdio::Stdout

source · []
pub struct Stdout;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+Stdout in os::fs::stdio - Rust
pub struct Stdout;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/fs/trait.File.html b/ch9-dev/os/fs/trait.File.html index b83d267f..f68493a0 100644 --- a/ch9-dev/os/fs/trait.File.html +++ b/ch9-dev/os/fs/trait.File.html @@ -1,13 +1,6 @@ -File in os::fs - Rust - -
-

Trait os::fs::File

source · []
pub trait File: Send + Sync {
+File in os::fs - Rust

Trait os::fs::File

source · []
pub trait File: Send + Sync {
     fn readable(&self) -> bool;
     fn writable(&self) -> bool;
     fn read(&self, buf: UserBuffer) -> usize;
     fn write(&self, buf: UserBuffer) -> usize;
-}

Required methods

Implementors

- \ No newline at end of file +}

Required Methods

Implementors

\ No newline at end of file diff --git a/ch9-dev/os/gui/button/index.html b/ch9-dev/os/gui/button/index.html deleted file mode 100644 index a2c38b02..00000000 --- a/ch9-dev/os/gui/button/index.html +++ /dev/null @@ -1,9 +0,0 @@ -os::gui::button - Rust - -
- \ No newline at end of file diff --git a/ch9-dev/os/gui/button/sidebar-items.js b/ch9-dev/os/gui/button/sidebar-items.js deleted file mode 100644 index 90d331ca..00000000 --- a/ch9-dev/os/gui/button/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["Button",""],["ButtonInner",""]]}); \ No newline at end of file diff --git a/ch9-dev/os/gui/button/struct.Button.html b/ch9-dev/os/gui/button/struct.Button.html deleted file mode 100644 index 42453068..00000000 --- a/ch9-dev/os/gui/button/struct.Button.html +++ /dev/null @@ -1,33 +0,0 @@ -Button in os::gui::button - Rust - -
-

Struct os::gui::button::Button

source · []
pub struct Button {
-    inner: UPIntrFreeCell<ButtonInner>,
-}

Fields

inner: UPIntrFreeCell<ButtonInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/button/struct.ButtonInner.html b/ch9-dev/os/gui/button/struct.ButtonInner.html deleted file mode 100644 index ef55c859..00000000 --- a/ch9-dev/os/gui/button/struct.ButtonInner.html +++ /dev/null @@ -1,35 +0,0 @@ -ButtonInner in os::gui::button - Rust - -
pub struct ButtonInner {
-    graphic: Graphics,
-    text: String,
-    parent: Option<Arc<dyn Component>>,
-}

Fields

graphic: Graphicstext: Stringparent: Option<Arc<dyn Component>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/graphic/index.html b/ch9-dev/os/gui/graphic/index.html index 758f1cca..a304bf9b 100644 --- a/ch9-dev/os/gui/graphic/index.html +++ b/ch9-dev/os/gui/graphic/index.html @@ -1,9 +1 @@ -os::gui::graphic - Rust - -
- \ No newline at end of file +os::gui::graphic - Rust
\ No newline at end of file diff --git a/ch9-dev/os/gui/graphic/sidebar-items.js b/ch9-dev/os/gui/graphic/sidebar-items.js index 7798cf49..987266dc 100644 --- a/ch9-dev/os/gui/graphic/sidebar-items.js +++ b/ch9-dev/os/gui/graphic/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["Graphics",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["Graphics",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/gui/graphic/struct.Graphics.html b/ch9-dev/os/gui/graphic/struct.Graphics.html index c380bcd2..f10a7094 100644 --- a/ch9-dev/os/gui/graphic/struct.Graphics.html +++ b/ch9-dev/os/gui/graphic/struct.Graphics.html @@ -1,52 +1,45 @@ -Graphics in os::gui::graphic - Rust - -
pub struct Graphics {
+Graphics in os::gui::graphic - Rust
pub struct Graphics {
     pub size: Size,
     pub point: Point,
-    pub drv: Arc<dyn GPUDevice>,
-}

Fields

size: Sizepoint: Pointdrv: Arc<dyn GPUDevice>

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

The pixel color type the targetted display supports.

-

Error type to return when a drawing operation fails. Read more

-

Draw individual pixels to the display without a defined order. Read more

-

Fill a given area with an iterator providing a contiguous stream of pixel colors. Read more

-

Fill a given area with a solid color. Read more

-

Fill the entire display with a solid color. Read more

-

Returns the size of the bounding box.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the bounding box.

-

Creates a translated draw target based on this draw target. Read more

-

Creates a cropped draw target based on this draw target. Read more

-

Creates a clipped draw target based on this draw target. Read more

-

Creates a color conversion draw target. Read more

-

Returns the argument unchanged.

-

Calls U::from(self).

+ pub drv: Arc<dyn GpuDevice>, +}

Fields

size: Sizepoint: Pointdrv: Arc<dyn GpuDevice>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

The pixel color type the targetted display supports.

+

Error type to return when a drawing operation fails. Read more

+

Draw individual pixels to the display without a defined order. Read more

+

Fill a given area with an iterator providing a contiguous stream of pixel colors. Read more

+

Fill a given area with a solid color. Read more

+

Fill the entire display with a solid color. Read more

+

Returns the size of the bounding box.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the bounding box.

+

Creates a translated draw target based on this draw target. Read more

+

Creates a cropped draw target based on this draw target. Read more

+

Creates a clipped draw target based on this draw target. Read more

+

Creates a color conversion draw target. Read more

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/gui/icon/index.html b/ch9-dev/os/gui/icon/index.html deleted file mode 100644 index f7dc7ab8..00000000 --- a/ch9-dev/os/gui/icon/index.html +++ /dev/null @@ -1,10 +0,0 @@ -os::gui::icon - Rust - -
- \ No newline at end of file diff --git a/ch9-dev/os/gui/icon/sidebar-items.js b/ch9-dev/os/gui/icon/sidebar-items.js deleted file mode 100644 index 4a874606..00000000 --- a/ch9-dev/os/gui/icon/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"static":[["FILEICON",""]],"struct":[["IconController",""],["IconControllerInner",""]]}); \ No newline at end of file diff --git a/ch9-dev/os/gui/icon/static.FILEICON.html b/ch9-dev/os/gui/icon/static.FILEICON.html deleted file mode 100644 index d1f4741b..00000000 --- a/ch9-dev/os/gui/icon/static.FILEICON.html +++ /dev/null @@ -1,8 +0,0 @@ -FILEICON in os::gui::icon - Rust - -
-

Static os::gui::icon::FILEICON

source · []
static FILEICON: &[u8]
- \ No newline at end of file diff --git a/ch9-dev/os/gui/icon/struct.IconController.html b/ch9-dev/os/gui/icon/struct.IconController.html deleted file mode 100644 index c2a54734..00000000 --- a/ch9-dev/os/gui/icon/struct.IconController.html +++ /dev/null @@ -1,33 +0,0 @@ -IconController in os::gui::icon - Rust - -
pub struct IconController {
-    inner: UPIntrFreeCell<IconControllerInner>,
-}

Fields

inner: UPIntrFreeCell<IconControllerInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/icon/struct.IconControllerInner.html b/ch9-dev/os/gui/icon/struct.IconControllerInner.html deleted file mode 100644 index f9bdf057..00000000 --- a/ch9-dev/os/gui/icon/struct.IconControllerInner.html +++ /dev/null @@ -1,35 +0,0 @@ -IconControllerInner in os::gui::icon - Rust - -
pub struct IconControllerInner {
-    files: Vec<String>,
-    graphic: Graphics,
-    parent: Option<Arc<dyn Component>>,
-}

Fields

files: Vec<String>graphic: Graphicsparent: Option<Arc<dyn Component>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/image/index.html b/ch9-dev/os/gui/image/index.html deleted file mode 100644 index 9783cf1d..00000000 --- a/ch9-dev/os/gui/image/index.html +++ /dev/null @@ -1,9 +0,0 @@ -os::gui::image - Rust - -
- \ No newline at end of file diff --git a/ch9-dev/os/gui/image/sidebar-items.js b/ch9-dev/os/gui/image/sidebar-items.js deleted file mode 100644 index fe3553df..00000000 --- a/ch9-dev/os/gui/image/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["ImageComp",""],["ImageInner",""]]}); \ No newline at end of file diff --git a/ch9-dev/os/gui/image/struct.ImageComp.html b/ch9-dev/os/gui/image/struct.ImageComp.html deleted file mode 100644 index aaeb8968..00000000 --- a/ch9-dev/os/gui/image/struct.ImageComp.html +++ /dev/null @@ -1,33 +0,0 @@ -ImageComp in os::gui::image - Rust - -
-

Struct os::gui::image::ImageComp

source · []
pub struct ImageComp {
-    inner: UPIntrFreeCell<ImageInner>,
-}

Fields

inner: UPIntrFreeCell<ImageInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/image/struct.ImageInner.html b/ch9-dev/os/gui/image/struct.ImageInner.html deleted file mode 100644 index 5dae0185..00000000 --- a/ch9-dev/os/gui/image/struct.ImageInner.html +++ /dev/null @@ -1,35 +0,0 @@ -ImageInner in os::gui::image - Rust - -
pub struct ImageInner {
-    image: &'static [u8],
-    graphic: Graphics,
-    parent: Option<Arc<dyn Component>>,
-}

Fields

image: &'static [u8]graphic: Graphicsparent: Option<Arc<dyn Component>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/index.html b/ch9-dev/os/gui/index.html index 21a8b597..bd9e1816 100644 --- a/ch9-dev/os/gui/index.html +++ b/ch9-dev/os/gui/index.html @@ -1,11 +1 @@ -os::gui - Rust - -
-

Module os::gui

source · []

Re-exports

-
pub use button::*;
pub use graphic::*;
pub use icon::*;
pub use image::*;
pub use panel::*;
pub use terminal::*;

Modules

-
button 🔒
graphic 🔒
icon 🔒
image 🔒
panel 🔒
terminal 🔒

Traits

-
- \ No newline at end of file +os::gui - Rust

Module os::gui

source · []

Re-exports

pub use paint::init_paint;
pub use paint::move_rect;
pub use paint::reset;

Modules

graphic 🔒
paint 🔒
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/constant.INIT_X.html b/ch9-dev/os/gui/paint/constant.INIT_X.html new file mode 100644 index 00000000..8fc8ba60 --- /dev/null +++ b/ch9-dev/os/gui/paint/constant.INIT_X.html @@ -0,0 +1 @@ +INIT_X in os::gui::paint - Rust

Constant os::gui::paint::INIT_X

source · []
const INIT_X: i32 = 640;
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/constant.INIT_Y.html b/ch9-dev/os/gui/paint/constant.INIT_Y.html new file mode 100644 index 00000000..8cd2722b --- /dev/null +++ b/ch9-dev/os/gui/paint/constant.INIT_Y.html @@ -0,0 +1 @@ +INIT_Y in os::gui::paint - Rust

Constant os::gui::paint::INIT_Y

source · []
const INIT_Y: i32 = 400;
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/constant.RECT_SIZE.html b/ch9-dev/os/gui/paint/constant.RECT_SIZE.html new file mode 100644 index 00000000..2d8d8724 --- /dev/null +++ b/ch9-dev/os/gui/paint/constant.RECT_SIZE.html @@ -0,0 +1 @@ +RECT_SIZE in os::gui::paint - Rust
const RECT_SIZE: u32 = 40;
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/fn.init_paint.html b/ch9-dev/os/gui/paint/fn.init_paint.html new file mode 100644 index 00000000..74148fa3 --- /dev/null +++ b/ch9-dev/os/gui/paint/fn.init_paint.html @@ -0,0 +1 @@ +init_paint in os::gui::paint - Rust
pub fn init_paint()
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/fn.move_rect.html b/ch9-dev/os/gui/paint/fn.move_rect.html new file mode 100644 index 00000000..e901baa9 --- /dev/null +++ b/ch9-dev/os/gui/paint/fn.move_rect.html @@ -0,0 +1 @@ +move_rect in os::gui::paint - Rust
pub fn move_rect(dx: i32, dy: i32)
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/fn.reset.html b/ch9-dev/os/gui/paint/fn.reset.html new file mode 100644 index 00000000..d27b175d --- /dev/null +++ b/ch9-dev/os/gui/paint/fn.reset.html @@ -0,0 +1 @@ +reset in os::gui::paint - Rust

Function os::gui::paint::reset

source · []
pub fn reset()
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/index.html b/ch9-dev/os/gui/paint/index.html new file mode 100644 index 00000000..95f9e583 --- /dev/null +++ b/ch9-dev/os/gui/paint/index.html @@ -0,0 +1 @@ +os::gui::paint - Rust
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/sidebar-items.js b/ch9-dev/os/gui/paint/sidebar-items.js new file mode 100644 index 00000000..91628ecf --- /dev/null +++ b/ch9-dev/os/gui/paint/sidebar-items.js @@ -0,0 +1 @@ +window.SIDEBAR_ITEMS = {"constant":[["INIT_X",""],["INIT_Y",""],["RECT_SIZE",""]],"fn":[["init_paint",""],["move_rect",""],["reset",""]],"struct":[["DRAWING_BOARD",""],["DrawingBoard",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/gui/paint/struct.DRAWING_BOARD.html b/ch9-dev/os/gui/paint/struct.DRAWING_BOARD.html new file mode 100644 index 00000000..56753088 --- /dev/null +++ b/ch9-dev/os/gui/paint/struct.DRAWING_BOARD.html @@ -0,0 +1,29 @@ +DRAWING_BOARD in os::gui::paint - Rust
pub struct DRAWING_BOARD {
+    __private_field: (),
+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<DrawingBoard>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/gui/paint/struct.DrawingBoard.html b/ch9-dev/os/gui/paint/struct.DrawingBoard.html new file mode 100644 index 00000000..6551d626 --- /dev/null +++ b/ch9-dev/os/gui/paint/struct.DrawingBoard.html @@ -0,0 +1,27 @@ +DrawingBoard in os::gui::paint - Rust
pub struct DrawingBoard {
+    graphics: Graphics,
+    latest_pos: Point,
+}

Fields

graphics: Graphicslatest_pos: Point

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

+

That is, this conversion is whatever the implementation of +From<T> for U chooses to do.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/gui/panel/index.html b/ch9-dev/os/gui/panel/index.html deleted file mode 100644 index aa023089..00000000 --- a/ch9-dev/os/gui/panel/index.html +++ /dev/null @@ -1,9 +0,0 @@ -os::gui::panel - Rust - -
- \ No newline at end of file diff --git a/ch9-dev/os/gui/panel/sidebar-items.js b/ch9-dev/os/gui/panel/sidebar-items.js deleted file mode 100644 index 437f87c9..00000000 --- a/ch9-dev/os/gui/panel/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["Panel",""],["PanelInner",""]]}); \ No newline at end of file diff --git a/ch9-dev/os/gui/panel/struct.Panel.html b/ch9-dev/os/gui/panel/struct.Panel.html deleted file mode 100644 index 45fcae8e..00000000 --- a/ch9-dev/os/gui/panel/struct.Panel.html +++ /dev/null @@ -1,33 +0,0 @@ -Panel in os::gui::panel - Rust - -
-

Struct os::gui::panel::Panel

source · []
pub struct Panel {
-    inner: UPIntrFreeCell<PanelInner>,
-}

Fields

inner: UPIntrFreeCell<PanelInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/panel/struct.PanelInner.html b/ch9-dev/os/gui/panel/struct.PanelInner.html deleted file mode 100644 index c7ac3cf3..00000000 --- a/ch9-dev/os/gui/panel/struct.PanelInner.html +++ /dev/null @@ -1,34 +0,0 @@ -PanelInner in os::gui::panel - Rust - -
struct PanelInner {
-    graphic: Graphics,
-    comps: VecDeque<Arc<dyn Component>>,
-}

Fields

graphic: Graphicscomps: VecDeque<Arc<dyn Component>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/sidebar-items.js b/ch9-dev/os/gui/sidebar-items.js index 9ae977bc..e33d82cf 100644 --- a/ch9-dev/os/gui/sidebar-items.js +++ b/ch9-dev/os/gui/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"mod":[["button",""],["graphic",""],["icon",""],["image",""],["panel",""],["terminal",""]],"trait":[["Component",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":[["graphic",""],["paint",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/gui/terminal/index.html b/ch9-dev/os/gui/terminal/index.html deleted file mode 100644 index 9e18b82d..00000000 --- a/ch9-dev/os/gui/terminal/index.html +++ /dev/null @@ -1,9 +0,0 @@ -os::gui::terminal - Rust - -
- \ No newline at end of file diff --git a/ch9-dev/os/gui/terminal/sidebar-items.js b/ch9-dev/os/gui/terminal/sidebar-items.js deleted file mode 100644 index d7c93483..00000000 --- a/ch9-dev/os/gui/terminal/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"struct":[["Terminal",""],["TerminalInner",""]]}); \ No newline at end of file diff --git a/ch9-dev/os/gui/terminal/struct.Terminal.html b/ch9-dev/os/gui/terminal/struct.Terminal.html deleted file mode 100644 index 685fc7b0..00000000 --- a/ch9-dev/os/gui/terminal/struct.Terminal.html +++ /dev/null @@ -1,33 +0,0 @@ -Terminal in os::gui::terminal - Rust - -
pub struct Terminal {
-    inner: UPIntrFreeCell<TerminalInner>,
-}

Fields

inner: UPIntrFreeCell<TerminalInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/terminal/struct.TerminalInner.html b/ch9-dev/os/gui/terminal/struct.TerminalInner.html deleted file mode 100644 index 78e07423..00000000 --- a/ch9-dev/os/gui/terminal/struct.TerminalInner.html +++ /dev/null @@ -1,36 +0,0 @@ -TerminalInner in os::gui::terminal - Rust - -
pub struct TerminalInner {
-    pub text: String,
-    titel: Option<String>,
-    graphic: Graphics,
-    comps: VecDeque<Arc<dyn Component>>,
-}

Fields

text: Stringtitel: Option<String>graphic: Graphicscomps: VecDeque<Arc<dyn Component>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/gui/trait.Component.html b/ch9-dev/os/gui/trait.Component.html deleted file mode 100644 index 68ad2694..00000000 --- a/ch9-dev/os/gui/trait.Component.html +++ /dev/null @@ -1,12 +0,0 @@ -Component in os::gui - Rust - -
-

Trait os::gui::Component

source · []
pub trait Component: Send + Sync + Any {
-    fn paint(&self);
-    fn add(&self, comp: Arc<dyn Component>);
-    fn bound(&self) -> (Size, Point);
-}

Required methods

Implementors

- \ No newline at end of file diff --git a/ch9-dev/os/index.html b/ch9-dev/os/index.html index fa563c52..2f75c853 100644 --- a/ch9-dev/os/index.html +++ b/ch9-dev/os/index.html @@ -1,12 +1 @@ -os - Rust - -
-

Crate os

source · []

Modules

-
board 🔒
config 🔒
console 🔒
drivers 🔒
fs 🔒
gui 🔒
lang_items 🔒
mm 🔒
sbi 🔒
sync 🔒
syscall 🔒
task 🔒
timer 🔒
trap 🔒

Macros

-

Structs

-

Functions

-
- \ No newline at end of file +os - Rust

Crate os

source · []

Modules

board 🔒
config 🔒
console 🔒
drivers 🔒
fs 🔒
gui 🔒
lang_items 🔒
mm 🔒
sbi 🔒
sync 🔒
syscall 🔒
task 🔒
timer 🔒
trap 🔒

Macros

Structs

Functions

\ No newline at end of file diff --git a/ch9-dev/os/lang_items/fn.backtrace.html b/ch9-dev/os/lang_items/fn.backtrace.html index 1a725d71..541e422c 100644 --- a/ch9-dev/os/lang_items/fn.backtrace.html +++ b/ch9-dev/os/lang_items/fn.backtrace.html @@ -1,8 +1 @@ -backtrace in os::lang_items - Rust - -
unsafe fn backtrace()
- \ No newline at end of file +backtrace in os::lang_items - Rust
unsafe fn backtrace()
\ No newline at end of file diff --git a/ch9-dev/os/lang_items/fn.panic.html b/ch9-dev/os/lang_items/fn.panic.html index 1dea5955..4ef1f2d9 100644 --- a/ch9-dev/os/lang_items/fn.panic.html +++ b/ch9-dev/os/lang_items/fn.panic.html @@ -1,8 +1 @@ -panic in os::lang_items - Rust - -
-

Function os::lang_items::panic

source · []
fn panic(info: &PanicInfo<'_>) -> !
- \ No newline at end of file +panic in os::lang_items - Rust
fn panic(info: &PanicInfo<'_>) -> !
\ No newline at end of file diff --git a/ch9-dev/os/lang_items/index.html b/ch9-dev/os/lang_items/index.html index 87774e08..c86ba625 100644 --- a/ch9-dev/os/lang_items/index.html +++ b/ch9-dev/os/lang_items/index.html @@ -1,9 +1 @@ -os::lang_items - Rust - -
-

Module os::lang_items

source · []

Functions

-
panic 🔒
- \ No newline at end of file +os::lang_items - Rust
\ No newline at end of file diff --git a/ch9-dev/os/lang_items/sidebar-items.js b/ch9-dev/os/lang_items/sidebar-items.js index 02ef59cf..a9303c53 100644 --- a/ch9-dev/os/lang_items/sidebar-items.js +++ b/ch9-dev/os/lang_items/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["backtrace",""],["panic",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["backtrace",""],["panic",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/macro.print.html b/ch9-dev/os/macro.print.html index 758d205f..c1fb648c 100644 --- a/ch9-dev/os/macro.print.html +++ b/ch9-dev/os/macro.print.html @@ -1,11 +1,4 @@ -print in os - Rust - -
-

Macro os::print

source · []
macro_rules! print {
+print in os - Rust

Macro os::print

source · []
macro_rules! print {
     ($fmt: literal $(, $($arg: tt)+)?) => { ... };
 }
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/os/macro.println.html b/ch9-dev/os/macro.println.html index b4d6b8bc..a4b98193 100644 --- a/ch9-dev/os/macro.println.html +++ b/ch9-dev/os/macro.println.html @@ -1,11 +1,4 @@ -println in os - Rust - -
-

Macro os::println

source · []
macro_rules! println {
+println in os - Rust
macro_rules! println {
     ($fmt: literal $(, $($arg: tt)+)?) => { ... };
 }
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/constant.PA_WIDTH_SV39.html b/ch9-dev/os/mm/address/constant.PA_WIDTH_SV39.html index 581afc43..aed7ccb2 100644 --- a/ch9-dev/os/mm/address/constant.PA_WIDTH_SV39.html +++ b/ch9-dev/os/mm/address/constant.PA_WIDTH_SV39.html @@ -1,8 +1 @@ -PA_WIDTH_SV39 in os::mm::address - Rust - -
const PA_WIDTH_SV39: usize = 56;
- \ No newline at end of file +PA_WIDTH_SV39 in os::mm::address - Rust
const PA_WIDTH_SV39: usize = 56;
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/constant.PPN_WIDTH_SV39.html b/ch9-dev/os/mm/address/constant.PPN_WIDTH_SV39.html index 9d5254cb..1a19b733 100644 --- a/ch9-dev/os/mm/address/constant.PPN_WIDTH_SV39.html +++ b/ch9-dev/os/mm/address/constant.PPN_WIDTH_SV39.html @@ -1,8 +1 @@ -PPN_WIDTH_SV39 in os::mm::address - Rust - -
const PPN_WIDTH_SV39: usize = PA_WIDTH_SV39 - PAGE_SIZE_BITS; // 44usize
- \ No newline at end of file +PPN_WIDTH_SV39 in os::mm::address - Rust
const PPN_WIDTH_SV39: usize = _; // 44usize
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/constant.VA_WIDTH_SV39.html b/ch9-dev/os/mm/address/constant.VA_WIDTH_SV39.html index c8821bd0..245197a3 100644 --- a/ch9-dev/os/mm/address/constant.VA_WIDTH_SV39.html +++ b/ch9-dev/os/mm/address/constant.VA_WIDTH_SV39.html @@ -1,8 +1 @@ -VA_WIDTH_SV39 in os::mm::address - Rust - -
const VA_WIDTH_SV39: usize = 39;
- \ No newline at end of file +VA_WIDTH_SV39 in os::mm::address - Rust
const VA_WIDTH_SV39: usize = 39;
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/constant.VPN_WIDTH_SV39.html b/ch9-dev/os/mm/address/constant.VPN_WIDTH_SV39.html index c4e11101..bb1dfb22 100644 --- a/ch9-dev/os/mm/address/constant.VPN_WIDTH_SV39.html +++ b/ch9-dev/os/mm/address/constant.VPN_WIDTH_SV39.html @@ -1,8 +1 @@ -VPN_WIDTH_SV39 in os::mm::address - Rust - -
const VPN_WIDTH_SV39: usize = VA_WIDTH_SV39 - PAGE_SIZE_BITS; // 27usize
- \ No newline at end of file +VPN_WIDTH_SV39 in os::mm::address - Rust
const VPN_WIDTH_SV39: usize = _; // 27usize
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/index.html b/ch9-dev/os/mm/address/index.html index 0e952582..9acc10e0 100644 --- a/ch9-dev/os/mm/address/index.html +++ b/ch9-dev/os/mm/address/index.html @@ -1,13 +1,2 @@ -os::mm::address - Rust - -
- \ No newline at end of file +os::mm::address - Rust
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/sidebar-items.js b/ch9-dev/os/mm/address/sidebar-items.js index 354c1cc1..3b1a9062 100644 --- a/ch9-dev/os/mm/address/sidebar-items.js +++ b/ch9-dev/os/mm/address/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["PA_WIDTH_SV39",""],["PPN_WIDTH_SV39",""],["VA_WIDTH_SV39",""],["VPN_WIDTH_SV39",""]],"struct":[["PhysAddr","Definitions"],["PhysPageNum",""],["SimpleRange",""],["SimpleRangeIterator",""],["VirtAddr",""],["VirtPageNum",""]],"trait":[["StepByOne",""]],"type":[["VPNRange",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["PA_WIDTH_SV39",""],["PPN_WIDTH_SV39",""],["VA_WIDTH_SV39",""],["VPN_WIDTH_SV39",""]],"struct":[["PhysAddr","Definitions"],["PhysPageNum",""],["SimpleRange",""],["SimpleRangeIterator",""],["VirtAddr",""],["VirtPageNum",""]],"trait":[["StepByOne",""]],"type":[["VPNRange",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/mm/address/struct.PhysAddr.html b/ch9-dev/os/mm/address/struct.PhysAddr.html index 9ead78e8..0179afab 100644 --- a/ch9-dev/os/mm/address/struct.PhysAddr.html +++ b/ch9-dev/os/mm/address/struct.PhysAddr.html @@ -1,59 +1,52 @@ -PhysAddr in os::mm::address - Rust - -
-

Struct os::mm::address::PhysAddr

source · []
#[repr(C)]
pub struct PhysAddr(pub usize);
Expand description

Definitions

-

Tuple Fields

0: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

T: {PhysAddr, VirtAddr, PhysPageNum, VirtPageNum} +PhysAddr in os::mm::address - Rust

#[repr(C)]
pub struct PhysAddr(pub usize);
Expand description

Definitions

+

Tuple Fields

0: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

T: {PhysAddr, VirtAddr, PhysPageNum, VirtPageNum} T -> usize: T.0 usize -> T: usize.into()

Converts to this type from the input type.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/struct.PhysPageNum.html b/ch9-dev/os/mm/address/struct.PhysPageNum.html index 01d17af6..7f51a26b 100644 --- a/ch9-dev/os/mm/address/struct.PhysPageNum.html +++ b/ch9-dev/os/mm/address/struct.PhysPageNum.html @@ -1,55 +1,48 @@ -PhysPageNum in os::mm::address - Rust - -
#[repr(C)]
pub struct PhysPageNum(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +PhysPageNum in os::mm::address - Rust

#[repr(C)]
pub struct PhysPageNum(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/struct.SimpleRange.html b/ch9-dev/os/mm/address/struct.SimpleRange.html index 761ea5fa..a6c506fe 100644 --- a/ch9-dev/os/mm/address/struct.SimpleRange.html +++ b/ch9-dev/os/mm/address/struct.SimpleRange.html @@ -1,42 +1,35 @@ -SimpleRange in os::mm::address - Rust - -
pub struct SimpleRange<T> where
    T: StepByOne + Copy + PartialEq + PartialOrd + Debug
{ +SimpleRange in os::mm::address - Rust
pub struct SimpleRange<T> where
    T: StepByOne + Copy + PartialEq + PartialOrd + Debug
{ l: T, r: T, -}

Fields

l: Tr: T

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

The type of the elements being iterated over.

-

Which kind of iterator are we turning this into?

+}

Fields

l: Tr: T

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

The type of the elements being iterated over.

+

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/struct.SimpleRangeIterator.html b/ch9-dev/os/mm/address/struct.SimpleRangeIterator.html index fff10ad3..52cfcdd2 100644 --- a/ch9-dev/os/mm/address/struct.SimpleRangeIterator.html +++ b/ch9-dev/os/mm/address/struct.SimpleRangeIterator.html @@ -1,151 +1,145 @@ -SimpleRangeIterator in os::mm::address - Rust - -

Fields

current: Tend: T

Implementations

Trait Implementations

The type of the elements being iterated over.

Advances the iterator and returns the next value. Read more

-

Returns the bounds on the remaining length of the iterator. Read more

-

Consumes the iterator, counting the number of iterations and returning it. Read more

-

Consumes the iterator, returning the last element. Read more

-
🔬 This is a nightly-only experimental API. (iter_advance_by)

Advances the iterator by n elements. Read more

-

Returns the nth element of the iterator. Read more

-

Creates an iterator starting at the same point, but stepping by +

🔬 This is a nightly-only experimental API. (iter_next_chunk)

Advances the iterator and returns an array containing the next N values. Read more

+

Returns the bounds on the remaining length of the iterator. Read more

+

Consumes the iterator, counting the number of iterations and returning it. Read more

+

Consumes the iterator, returning the last element. Read more

+
🔬 This is a nightly-only experimental API. (iter_advance_by)

Advances the iterator by n elements. Read more

+

Returns the nth element of the iterator. Read more

+

Creates an iterator starting at the same point, but stepping by the given amount at each iteration. Read more

-

Takes two iterators and creates a new iterator over both in sequence. Read more

-

‘Zips up’ two iterators into a single iterator of pairs. Read more

-
🔬 This is a nightly-only experimental API. (iter_intersperse)

Creates a new iterator which places a copy of separator between adjacent +

Takes two iterators and creates a new iterator over both in sequence. Read more

+

‘Zips up’ two iterators into a single iterator of pairs. Read more

+
🔬 This is a nightly-only experimental API. (iter_intersperse)

Creates a new iterator which places a copy of separator between adjacent items of the original iterator. Read more

-
🔬 This is a nightly-only experimental API. (iter_intersperse)

Creates a new iterator which places an item generated by separator +

🔬 This is a nightly-only experimental API. (iter_intersperse)

Creates a new iterator which places an item generated by separator between adjacent items of the original iterator. Read more

-

Takes a closure and creates an iterator which calls that closure on each +

Takes a closure and creates an iterator which calls that closure on each element. Read more

-

Calls a closure on each element of an iterator. Read more

-

Creates an iterator which uses a closure to determine if an element +

Calls a closure on each element of an iterator. Read more

+

Creates an iterator which uses a closure to determine if an element should be yielded. Read more

-

Creates an iterator that both filters and maps. Read more

-

Creates an iterator which gives the current iteration count as well as +

Creates an iterator that both filters and maps. Read more

+

Creates an iterator which gives the current iteration count as well as the next value. Read more

-

Creates an iterator which can use the peek and peek_mut methods +

Creates an iterator which can use the peek and peek_mut methods to look at the next element of the iterator without consuming it. See their documentation for more information. Read more

-

Creates an iterator that skips elements based on a predicate. Read more

-

Creates an iterator that yields elements based on a predicate. Read more

-

Creates an iterator that both yields elements based on a predicate and maps. Read more

-

Creates an iterator that skips the first n elements. Read more

-

Creates an iterator that yields the first n elements, or fewer +

Creates an iterator that skips elements based on a predicate. Read more

+

Creates an iterator that yields elements based on a predicate. Read more

+

Creates an iterator that both yields elements based on a predicate and maps. Read more

+

Creates an iterator that skips the first n elements. Read more

+

Creates an iterator that yields the first n elements, or fewer if the underlying iterator ends sooner. Read more

-

An iterator adapter similar to fold that holds internal state and +

An iterator adapter similar to fold that holds internal state and produces a new iterator. Read more

-

Creates an iterator that works like map, but flattens nested structure. Read more

-

Creates an iterator that flattens nested structure. Read more

-

Creates an iterator which ends after the first None. Read more

-

Does something with each element of an iterator, passing the value on. Read more

-

Borrows an iterator, rather than consuming it. Read more

-

Transforms an iterator into a collection. Read more

-
🔬 This is a nightly-only experimental API. (iterator_try_collect)

Fallibly transforms an iterator into a collection, short circuiting if +

Creates an iterator that works like map, but flattens nested structure. Read more

+

Creates an iterator that flattens nested structure. Read more

+

Creates an iterator which ends after the first None. Read more

+

Does something with each element of an iterator, passing the value on. Read more

+

Borrows an iterator, rather than consuming it. Read more

+

Transforms an iterator into a collection. Read more

+
🔬 This is a nightly-only experimental API. (iterator_try_collect)

Fallibly transforms an iterator into a collection, short circuiting if a failure is encountered. Read more

-
🔬 This is a nightly-only experimental API. (iter_collect_into)

Collects all the items from an iterator into a collection. Read more

-

Consumes an iterator, creating two collections from it. Read more

-
🔬 This is a nightly-only experimental API. (iter_partition_in_place)

Reorders the elements of this iterator in-place according to the given predicate, +

🔬 This is a nightly-only experimental API. (iter_collect_into)

Collects all the items from an iterator into a collection. Read more

+

Consumes an iterator, creating two collections from it. Read more

+
🔬 This is a nightly-only experimental API. (iter_partition_in_place)

Reorders the elements of this iterator in-place according to the given predicate, such that all those that return true precede all those that return false. Returns the number of true elements found. Read more

-
🔬 This is a nightly-only experimental API. (iter_is_partitioned)

Checks if the elements of this iterator are partitioned according to the given predicate, +

🔬 This is a nightly-only experimental API. (iter_is_partitioned)

Checks if the elements of this iterator are partitioned according to the given predicate, such that all those that return true precede all those that return false. Read more

-

An iterator method that applies a function as long as it returns +

An iterator method that applies a function as long as it returns successfully, producing a single, final value. Read more

-

An iterator method that applies a fallible function to each item in the +

An iterator method that applies a fallible function to each item in the iterator, stopping at the first error and returning that error. Read more

-

Folds every element into an accumulator by applying an operation, +

Folds every element into an accumulator by applying an operation, returning the final result. Read more

-

Reduces the elements to a single one, by repeatedly applying a reducing +

Reduces the elements to a single one, by repeatedly applying a reducing operation. Read more

-
🔬 This is a nightly-only experimental API. (iterator_try_reduce)

Reduces the elements to a single one by repeatedly applying a reducing operation. If the +

🔬 This is a nightly-only experimental API. (iterator_try_reduce)

Reduces the elements to a single one by repeatedly applying a reducing operation. If the closure returns a failure, the failure is propagated back to the caller immediately. Read more

-

Tests if every element of the iterator matches a predicate. Read more

-

Tests if any element of the iterator matches a predicate. Read more

-

Searches for an element of an iterator that satisfies a predicate. Read more

-

Applies function to the elements of iterator and returns +

Tests if every element of the iterator matches a predicate. Read more

+

Tests if any element of the iterator matches a predicate. Read more

+

Searches for an element of an iterator that satisfies a predicate. Read more

+

Applies function to the elements of iterator and returns the first non-none result. Read more

-
🔬 This is a nightly-only experimental API. (try_find)

Applies function to the elements of iterator and returns +

🔬 This is a nightly-only experimental API. (try_find)

Applies function to the elements of iterator and returns the first true result or the first error. Read more

-

Searches for an element in an iterator, returning its index. Read more

-

Searches for an element in an iterator from the right, returning its +

Searches for an element in an iterator, returning its index. Read more

+

Searches for an element in an iterator from the right, returning its index. Read more

-

Returns the maximum element of an iterator. Read more

-

Returns the minimum element of an iterator. Read more

-

Returns the element that gives the maximum value from the +

Returns the maximum element of an iterator. Read more

+

Returns the minimum element of an iterator. Read more

+

Returns the element that gives the maximum value from the specified function. Read more

-

Returns the element that gives the maximum value with respect to the +

Returns the element that gives the maximum value with respect to the specified comparison function. Read more

-

Returns the element that gives the minimum value from the +

Returns the element that gives the minimum value from the specified function. Read more

-

Returns the element that gives the minimum value with respect to the +

Returns the element that gives the minimum value with respect to the specified comparison function. Read more

-

Reverses an iterator’s direction. Read more

-

Converts an iterator of pairs into a pair of containers. Read more

-

Creates an iterator which copies all of its elements. Read more

-

Creates an iterator which clones all of its elements. Read more

-

Repeats an iterator endlessly. Read more

-

Sums the elements of an iterator. Read more

-

Iterates over the entire iterator, multiplying all the elements Read more

-

Lexicographically compares the elements of this Iterator with those +

Reverses an iterator’s direction. Read more

+

Converts an iterator of pairs into a pair of containers. Read more

+

Creates an iterator which copies all of its elements. Read more

+

Creates an iterator which clones all of its elements. Read more

+

Repeats an iterator endlessly. Read more

+

Sums the elements of an iterator. Read more

+

Iterates over the entire iterator, multiplying all the elements Read more

+

Lexicographically compares the elements of this Iterator with those of another. Read more

-
🔬 This is a nightly-only experimental API. (iter_order_by)

Lexicographically compares the elements of this Iterator with those +

🔬 This is a nightly-only experimental API. (iter_order_by)

Lexicographically compares the elements of this Iterator with those of another with respect to the specified comparison function. Read more

-

Lexicographically compares the elements of this Iterator with those +

Lexicographically compares the elements of this Iterator with those of another. Read more

-
🔬 This is a nightly-only experimental API. (iter_order_by)

Lexicographically compares the elements of this Iterator with those +

🔬 This is a nightly-only experimental API. (iter_order_by)

Lexicographically compares the elements of this Iterator with those of another with respect to the specified comparison function. Read more

-

Determines if the elements of this Iterator are equal to those of +

Determines if the elements of this Iterator are equal to those of another. Read more

-
🔬 This is a nightly-only experimental API. (iter_order_by)

Determines if the elements of this Iterator are equal to those of +

🔬 This is a nightly-only experimental API. (iter_order_by)

Determines if the elements of this Iterator are equal to those of another with respect to the specified equality function. Read more

-

Determines if the elements of this Iterator are unequal to those of +

Determines if the elements of this Iterator are unequal to those of another. Read more

-

Determines if the elements of this Iterator are lexicographically +

Determines if the elements of this Iterator are lexicographically less than those of another. Read more

-

Determines if the elements of this Iterator are lexicographically +

Determines if the elements of this Iterator are lexicographically less or equal to those of another. Read more

-

Determines if the elements of this Iterator are lexicographically +

Determines if the elements of this Iterator are lexicographically greater than those of another. Read more

-

Determines if the elements of this Iterator are lexicographically +

Determines if the elements of this Iterator are lexicographically greater than or equal to those of another. Read more

-
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted. Read more

-
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted using the given comparator function. Read more

-
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted using the given key extraction +

🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted. Read more

+
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted using the given comparator function. Read more

+
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted using the given key extraction function. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

The type of the elements being iterated over.

-

Which kind of iterator are we turning this into?

-

Creates an iterator from a value. Read more

-

Casts the value.

-

OverflowingCasts the value.

-

Draws the pixel iterator to a draw target.

-

Returns a translated version of the iterator.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

The type of the elements being iterated over.

+

Which kind of iterator are we turning this into?

+

Creates an iterator from a value. Read more

+

Casts the value.

+

Casts the value.

+

Draws the pixel iterator to a draw target.

+

Returns a translated version of the iterator.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/struct.VirtAddr.html b/ch9-dev/os/mm/address/struct.VirtAddr.html index 5063972e..3af4c4b4 100644 --- a/ch9-dev/os/mm/address/struct.VirtAddr.html +++ b/ch9-dev/os/mm/address/struct.VirtAddr.html @@ -1,56 +1,49 @@ -VirtAddr in os::mm::address - Rust - -
-

Struct os::mm::address::VirtAddr

source · []
#[repr(C)]
pub struct VirtAddr(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Debugging

+VirtAddr in os::mm::address - Rust
#[repr(C)]
pub struct VirtAddr(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Debugging

Formats the value using the given formatter. Read more

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/struct.VirtPageNum.html b/ch9-dev/os/mm/address/struct.VirtPageNum.html index ae22b429..ca05b633 100644 --- a/ch9-dev/os/mm/address/struct.VirtPageNum.html +++ b/ch9-dev/os/mm/address/struct.VirtPageNum.html @@ -1,55 +1,48 @@ -VirtPageNum in os::mm::address - Rust - -
#[repr(C)]
pub struct VirtPageNum(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +VirtPageNum in os::mm::address - Rust

#[repr(C)]
pub struct VirtPageNum(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/address/trait.StepByOne.html b/ch9-dev/os/mm/address/trait.StepByOne.html index 91ad1511..cd507cea 100644 --- a/ch9-dev/os/mm/address/trait.StepByOne.html +++ b/ch9-dev/os/mm/address/trait.StepByOne.html @@ -1,10 +1,3 @@ -StepByOne in os::mm::address - Rust - -
pub trait StepByOne {
+StepByOne in os::mm::address - Rust
pub trait StepByOne {
     fn step(&mut self);
-}

Required methods

Implementors

- \ No newline at end of file +}

Required Methods

Implementors

\ No newline at end of file diff --git a/ch9-dev/os/mm/address/type.VPNRange.html b/ch9-dev/os/mm/address/type.VPNRange.html index 30f6164b..76019454 100644 --- a/ch9-dev/os/mm/address/type.VPNRange.html +++ b/ch9-dev/os/mm/address/type.VPNRange.html @@ -1,8 +1 @@ -VPNRange in os::mm::address - Rust - -
-

Type Definition os::mm::address::VPNRange

source · []
pub type VPNRange = SimpleRange<VirtPageNum>;
- \ No newline at end of file +VPNRange in os::mm::address - Rust

Type Definition os::mm::address::VPNRange

source · []
pub type VPNRange = SimpleRange<VirtPageNum>;
\ No newline at end of file diff --git a/ch9-dev/os/mm/fn.init.html b/ch9-dev/os/mm/fn.init.html index 5c7f8c41..dc3f5588 100644 --- a/ch9-dev/os/mm/fn.init.html +++ b/ch9-dev/os/mm/fn.init.html @@ -1,8 +1 @@ -init in os::mm - Rust - -
-

Function os::mm::init

source · []
pub fn init()
- \ No newline at end of file +init in os::mm - Rust

Function os::mm::init

source · []
pub fn init()
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/fn.frame_alloc.html b/ch9-dev/os/mm/frame_allocator/fn.frame_alloc.html index 84b63b35..a7a12fc3 100644 --- a/ch9-dev/os/mm/frame_allocator/fn.frame_alloc.html +++ b/ch9-dev/os/mm/frame_allocator/fn.frame_alloc.html @@ -1,8 +1 @@ -frame_alloc in os::mm::frame_allocator - Rust - -
pub fn frame_alloc() -> Option<FrameTracker>
- \ No newline at end of file +frame_alloc in os::mm::frame_allocator - Rust
pub fn frame_alloc() -> Option<FrameTracker>
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/fn.frame_allocator_test.html b/ch9-dev/os/mm/frame_allocator/fn.frame_allocator_test.html index 433ea4ff..f9f33889 100644 --- a/ch9-dev/os/mm/frame_allocator/fn.frame_allocator_test.html +++ b/ch9-dev/os/mm/frame_allocator/fn.frame_allocator_test.html @@ -1,8 +1 @@ -frame_allocator_test in os::mm::frame_allocator - Rust - -
pub fn frame_allocator_test()
- \ No newline at end of file +frame_allocator_test in os::mm::frame_allocator - Rust
pub fn frame_allocator_test()
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/fn.frame_dealloc.html b/ch9-dev/os/mm/frame_allocator/fn.frame_dealloc.html index 90d4f695..ec07923b 100644 --- a/ch9-dev/os/mm/frame_allocator/fn.frame_dealloc.html +++ b/ch9-dev/os/mm/frame_allocator/fn.frame_dealloc.html @@ -1,8 +1 @@ -frame_dealloc in os::mm::frame_allocator - Rust - -
pub fn frame_dealloc(ppn: PhysPageNum)
- \ No newline at end of file +frame_dealloc in os::mm::frame_allocator - Rust
pub fn frame_dealloc(ppn: PhysPageNum)
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/fn.init_frame_allocator.html b/ch9-dev/os/mm/frame_allocator/fn.init_frame_allocator.html index e64de651..fb716182 100644 --- a/ch9-dev/os/mm/frame_allocator/fn.init_frame_allocator.html +++ b/ch9-dev/os/mm/frame_allocator/fn.init_frame_allocator.html @@ -1,8 +1 @@ -init_frame_allocator in os::mm::frame_allocator - Rust - -
pub fn init_frame_allocator()
- \ No newline at end of file +init_frame_allocator in os::mm::frame_allocator - Rust
pub fn init_frame_allocator()
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/index.html b/ch9-dev/os/mm/frame_allocator/index.html index 22cc9235..4b34cdfa 100644 --- a/ch9-dev/os/mm/frame_allocator/index.html +++ b/ch9-dev/os/mm/frame_allocator/index.html @@ -1,12 +1 @@ -os::mm::frame_allocator - Rust - -
- \ No newline at end of file +os::mm::frame_allocator - Rust
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/sidebar-items.js b/ch9-dev/os/mm/frame_allocator/sidebar-items.js index d63ca944..82ea2c12 100644 --- a/ch9-dev/os/mm/frame_allocator/sidebar-items.js +++ b/ch9-dev/os/mm/frame_allocator/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["frame_alloc",""],["frame_allocator_test",""],["frame_dealloc",""],["init_frame_allocator",""]],"struct":[["FRAME_ALLOCATOR",""],["FrameTracker",""],["StackFrameAllocator",""]],"trait":[["FrameAllocator",""]],"type":[["FrameAllocatorImpl",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["frame_alloc",""],["frame_allocator_test",""],["frame_dealloc",""],["init_frame_allocator",""]],"struct":[["FRAME_ALLOCATOR",""],["FrameTracker",""],["StackFrameAllocator",""]],"trait":[["FrameAllocator",""]],"type":[["FrameAllocatorImpl",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html b/ch9-dev/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html index 71c9db25..ee35c585 100644 --- a/ch9-dev/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html +++ b/ch9-dev/os/mm/frame_allocator/struct.FRAME_ALLOCATOR.html @@ -1,36 +1,29 @@ -FRAME_ALLOCATOR in os::mm::frame_allocator - Rust - -

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<StackFrameAllocator>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/struct.FrameTracker.html b/ch9-dev/os/mm/frame_allocator/struct.FrameTracker.html index 6a791d34..3fbf8fe6 100644 --- a/ch9-dev/os/mm/frame_allocator/struct.FrameTracker.html +++ b/ch9-dev/os/mm/frame_allocator/struct.FrameTracker.html @@ -1,35 +1,28 @@ -FrameTracker in os::mm::frame_allocator - Rust - -
pub struct FrameTracker {
+FrameTracker in os::mm::frame_allocator - Rust
pub struct FrameTracker {
     pub ppn: PhysPageNum,
-}

Fields

ppn: PhysPageNum

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

-

Executes the destructor for this type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

ppn: PhysPageNum

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

+

Executes the destructor for this type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/struct.StackFrameAllocator.html b/ch9-dev/os/mm/frame_allocator/struct.StackFrameAllocator.html index 05bcc6fe..098a131d 100644 --- a/ch9-dev/os/mm/frame_allocator/struct.StackFrameAllocator.html +++ b/ch9-dev/os/mm/frame_allocator/struct.StackFrameAllocator.html @@ -1,35 +1,28 @@ -StackFrameAllocator in os::mm::frame_allocator - Rust - -
pub struct StackFrameAllocator {
+StackFrameAllocator in os::mm::frame_allocator - Rust
pub struct StackFrameAllocator {
     current: usize,
     end: usize,
     recycled: Vec<usize>,
-}

Fields

current: usizeend: usizerecycled: Vec<usize>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

current: usizeend: usizerecycled: Vec<usize>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/trait.FrameAllocator.html b/ch9-dev/os/mm/frame_allocator/trait.FrameAllocator.html index f7667df8..74737560 100644 --- a/ch9-dev/os/mm/frame_allocator/trait.FrameAllocator.html +++ b/ch9-dev/os/mm/frame_allocator/trait.FrameAllocator.html @@ -1,12 +1,5 @@ -FrameAllocator in os::mm::frame_allocator - Rust - -
trait FrameAllocator {
+FrameAllocator in os::mm::frame_allocator - Rust
trait FrameAllocator {
     fn new() -> Self;
     fn alloc(&mut self) -> Option<PhysPageNum>;
     fn dealloc(&mut self, ppn: PhysPageNum);
-}

Required methods

Implementors

- \ No newline at end of file +}

Required Methods

Implementors

\ No newline at end of file diff --git a/ch9-dev/os/mm/frame_allocator/type.FrameAllocatorImpl.html b/ch9-dev/os/mm/frame_allocator/type.FrameAllocatorImpl.html index 424c3b48..b0ba5905 100644 --- a/ch9-dev/os/mm/frame_allocator/type.FrameAllocatorImpl.html +++ b/ch9-dev/os/mm/frame_allocator/type.FrameAllocatorImpl.html @@ -1,8 +1 @@ -FrameAllocatorImpl in os::mm::frame_allocator - Rust - -
type FrameAllocatorImpl = StackFrameAllocator;
- \ No newline at end of file +FrameAllocatorImpl in os::mm::frame_allocator - Rust
type FrameAllocatorImpl = StackFrameAllocator;
\ No newline at end of file diff --git a/ch9-dev/os/mm/heap_allocator/fn.handle_alloc_error.html b/ch9-dev/os/mm/heap_allocator/fn.handle_alloc_error.html index 2530c916..3611a271 100644 --- a/ch9-dev/os/mm/heap_allocator/fn.handle_alloc_error.html +++ b/ch9-dev/os/mm/heap_allocator/fn.handle_alloc_error.html @@ -1,8 +1 @@ -handle_alloc_error in os::mm::heap_allocator - Rust - -
pub fn handle_alloc_error(layout: Layout) -> !
- \ No newline at end of file +handle_alloc_error in os::mm::heap_allocator - Rust
pub fn handle_alloc_error(layout: Layout) -> !
\ No newline at end of file diff --git a/ch9-dev/os/mm/heap_allocator/fn.heap_test.html b/ch9-dev/os/mm/heap_allocator/fn.heap_test.html index 6475c14f..f2bc5fb0 100644 --- a/ch9-dev/os/mm/heap_allocator/fn.heap_test.html +++ b/ch9-dev/os/mm/heap_allocator/fn.heap_test.html @@ -1,8 +1 @@ -heap_test in os::mm::heap_allocator - Rust - -
pub fn heap_test()
- \ No newline at end of file +heap_test in os::mm::heap_allocator - Rust
pub fn heap_test()
\ No newline at end of file diff --git a/ch9-dev/os/mm/heap_allocator/fn.init_heap.html b/ch9-dev/os/mm/heap_allocator/fn.init_heap.html index 6fafa7c1..9fc00184 100644 --- a/ch9-dev/os/mm/heap_allocator/fn.init_heap.html +++ b/ch9-dev/os/mm/heap_allocator/fn.init_heap.html @@ -1,8 +1 @@ -init_heap in os::mm::heap_allocator - Rust - -
pub fn init_heap()
- \ No newline at end of file +init_heap in os::mm::heap_allocator - Rust
pub fn init_heap()
\ No newline at end of file diff --git a/ch9-dev/os/mm/heap_allocator/index.html b/ch9-dev/os/mm/heap_allocator/index.html index a09e54a2..05d8dac7 100644 --- a/ch9-dev/os/mm/heap_allocator/index.html +++ b/ch9-dev/os/mm/heap_allocator/index.html @@ -1,10 +1 @@ -os::mm::heap_allocator - Rust - -
- \ No newline at end of file +os::mm::heap_allocator - Rust
\ No newline at end of file diff --git a/ch9-dev/os/mm/heap_allocator/sidebar-items.js b/ch9-dev/os/mm/heap_allocator/sidebar-items.js index d1f423dc..8ce5d1d6 100644 --- a/ch9-dev/os/mm/heap_allocator/sidebar-items.js +++ b/ch9-dev/os/mm/heap_allocator/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["handle_alloc_error",""],["heap_test",""],["init_heap",""]],"static":[["HEAP_ALLOCATOR",""],["HEAP_SPACE",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["handle_alloc_error",""],["heap_test",""],["init_heap",""]],"static":[["HEAP_ALLOCATOR",""],["HEAP_SPACE",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html b/ch9-dev/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html index bf4b1785..1ffb2174 100644 --- a/ch9-dev/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html +++ b/ch9-dev/os/mm/heap_allocator/static.HEAP_ALLOCATOR.html @@ -1,8 +1 @@ -HEAP_ALLOCATOR in os::mm::heap_allocator - Rust - -
static HEAP_ALLOCATOR: LockedHeap
- \ No newline at end of file +HEAP_ALLOCATOR in os::mm::heap_allocator - Rust
static HEAP_ALLOCATOR: LockedHeap
\ No newline at end of file diff --git a/ch9-dev/os/mm/heap_allocator/static.HEAP_SPACE.html b/ch9-dev/os/mm/heap_allocator/static.HEAP_SPACE.html index b81c54f6..22c5f5d6 100644 --- a/ch9-dev/os/mm/heap_allocator/static.HEAP_SPACE.html +++ b/ch9-dev/os/mm/heap_allocator/static.HEAP_SPACE.html @@ -1,8 +1 @@ -HEAP_SPACE in os::mm::heap_allocator - Rust - -
static mut HEAP_SPACE: [u8; 16777216]
- \ No newline at end of file +HEAP_SPACE in os::mm::heap_allocator - Rust
static mut HEAP_SPACE: [u8; 16777216]
\ No newline at end of file diff --git a/ch9-dev/os/mm/index.html b/ch9-dev/os/mm/index.html index acbc5993..b9833608 100644 --- a/ch9-dev/os/mm/index.html +++ b/ch9-dev/os/mm/index.html @@ -1,11 +1 @@ -os::mm - Rust - -
-

Module os::mm

source · []

Re-exports

-
pub use address::PhysAddr;
pub use address::PhysPageNum;
pub use address::StepByOne;
pub use address::VirtAddr;
pub use address::VirtPageNum;
pub use frame_allocator::frame_alloc;
pub use frame_allocator::frame_dealloc;
pub use frame_allocator::FrameTracker;
pub use memory_set::remap_test;
pub use memory_set::kernel_token;
pub use memory_set::MapPermission;
pub use memory_set::MemorySet;
pub use memory_set::KERNEL_SPACE;
pub use memory_set::KERNEL_SPACE;
pub use page_table::translated_byte_buffer;
pub use page_table::translated_ref;
pub use page_table::translated_refmut;
pub use page_table::translated_str;
pub use page_table::PageTable;
pub use page_table::PageTableEntry;
pub use page_table::UserBuffer;
pub use page_table::UserBufferIterator;

Modules

-

Functions

-
- \ No newline at end of file +os::mm - Rust

Module os::mm

source · []

Re-exports

pub use address::PhysAddr;
pub use address::PhysPageNum;
pub use address::StepByOne;
pub use address::VirtAddr;
pub use address::VirtPageNum;
pub use frame_allocator::frame_alloc;
pub use frame_allocator::frame_dealloc;
pub use frame_allocator::FrameTracker;
pub use memory_set::remap_test;
pub use memory_set::kernel_token;
pub use memory_set::MapPermission;
pub use memory_set::MemorySet;
pub use memory_set::KERNEL_SPACE;
pub use memory_set::KERNEL_SPACE;
pub use page_table::translated_byte_buffer;
pub use page_table::translated_ref;
pub use page_table::translated_refmut;
pub use page_table::translated_str;
pub use page_table::PageTable;
pub use page_table::PageTableEntry;
pub use page_table::UserBuffer;
pub use page_table::UserBufferIterator;

Modules

Functions

\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/enum.MapType.html b/ch9-dev/os/mm/memory_set/enum.MapType.html index e4fb9dac..2e3c5885 100644 --- a/ch9-dev/os/mm/memory_set/enum.MapType.html +++ b/ch9-dev/os/mm/memory_set/enum.MapType.html @@ -1,43 +1,36 @@ -MapType in os::mm::memory_set - Rust - -
pub enum MapType {
+MapType in os::mm::memory_set - Rust
pub enum MapType {
     Identical,
     Framed,
-}

Variants

Identical

Framed

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

This method tests for self and other values to be equal, and is used +}

Variants

Identical

Framed

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.ebss.html b/ch9-dev/os/mm/memory_set/fn.ebss.html index abf3a54a..b7236c8c 100644 --- a/ch9-dev/os/mm/memory_set/fn.ebss.html +++ b/ch9-dev/os/mm/memory_set/fn.ebss.html @@ -1,8 +1 @@ -ebss in os::mm::memory_set - Rust - -
-

Function os::mm::memory_set::ebss

source · []
unsafe extern "C" fn ebss()
- \ No newline at end of file +ebss in os::mm::memory_set - Rust
unsafe extern "C" fn ebss()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.edata.html b/ch9-dev/os/mm/memory_set/fn.edata.html index e300398a..b0e3fef3 100644 --- a/ch9-dev/os/mm/memory_set/fn.edata.html +++ b/ch9-dev/os/mm/memory_set/fn.edata.html @@ -1,8 +1 @@ -edata in os::mm::memory_set - Rust - -
-

Function os::mm::memory_set::edata

source · []
unsafe extern "C" fn edata()
- \ No newline at end of file +edata in os::mm::memory_set - Rust
unsafe extern "C" fn edata()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.ekernel.html b/ch9-dev/os/mm/memory_set/fn.ekernel.html index 4104c50a..c4ecd2dc 100644 --- a/ch9-dev/os/mm/memory_set/fn.ekernel.html +++ b/ch9-dev/os/mm/memory_set/fn.ekernel.html @@ -1,8 +1 @@ -ekernel in os::mm::memory_set - Rust - -
-

Function os::mm::memory_set::ekernel

source · []
unsafe extern "C" fn ekernel()
- \ No newline at end of file +ekernel in os::mm::memory_set - Rust
unsafe extern "C" fn ekernel()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.erodata.html b/ch9-dev/os/mm/memory_set/fn.erodata.html index ea14c701..a5a01963 100644 --- a/ch9-dev/os/mm/memory_set/fn.erodata.html +++ b/ch9-dev/os/mm/memory_set/fn.erodata.html @@ -1,8 +1 @@ -erodata in os::mm::memory_set - Rust - -
-

Function os::mm::memory_set::erodata

source · []
unsafe extern "C" fn erodata()
- \ No newline at end of file +erodata in os::mm::memory_set - Rust
unsafe extern "C" fn erodata()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.etext.html b/ch9-dev/os/mm/memory_set/fn.etext.html index 37af16a3..ab8b7882 100644 --- a/ch9-dev/os/mm/memory_set/fn.etext.html +++ b/ch9-dev/os/mm/memory_set/fn.etext.html @@ -1,8 +1 @@ -etext in os::mm::memory_set - Rust - -
-

Function os::mm::memory_set::etext

source · []
unsafe extern "C" fn etext()
- \ No newline at end of file +etext in os::mm::memory_set - Rust
unsafe extern "C" fn etext()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.kernel_token.html b/ch9-dev/os/mm/memory_set/fn.kernel_token.html index 9cd7a4b8..af7d0d5c 100644 --- a/ch9-dev/os/mm/memory_set/fn.kernel_token.html +++ b/ch9-dev/os/mm/memory_set/fn.kernel_token.html @@ -1,8 +1 @@ -kernel_token in os::mm::memory_set - Rust - -
pub fn kernel_token() -> usize
- \ No newline at end of file +kernel_token in os::mm::memory_set - Rust
pub fn kernel_token() -> usize
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.remap_test.html b/ch9-dev/os/mm/memory_set/fn.remap_test.html index 37ea1f17..1d54aefe 100644 --- a/ch9-dev/os/mm/memory_set/fn.remap_test.html +++ b/ch9-dev/os/mm/memory_set/fn.remap_test.html @@ -1,8 +1 @@ -remap_test in os::mm::memory_set - Rust - -
pub fn remap_test()
- \ No newline at end of file +remap_test in os::mm::memory_set - Rust
pub fn remap_test()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.sbss_with_stack.html b/ch9-dev/os/mm/memory_set/fn.sbss_with_stack.html index 6b2051e1..cfde46ad 100644 --- a/ch9-dev/os/mm/memory_set/fn.sbss_with_stack.html +++ b/ch9-dev/os/mm/memory_set/fn.sbss_with_stack.html @@ -1,8 +1 @@ -sbss_with_stack in os::mm::memory_set - Rust - -
unsafe extern "C" fn sbss_with_stack()
- \ No newline at end of file +sbss_with_stack in os::mm::memory_set - Rust
unsafe extern "C" fn sbss_with_stack()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.sdata.html b/ch9-dev/os/mm/memory_set/fn.sdata.html index f9c26016..6abcfb9c 100644 --- a/ch9-dev/os/mm/memory_set/fn.sdata.html +++ b/ch9-dev/os/mm/memory_set/fn.sdata.html @@ -1,8 +1 @@ -sdata in os::mm::memory_set - Rust - -
-

Function os::mm::memory_set::sdata

source · []
unsafe extern "C" fn sdata()
- \ No newline at end of file +sdata in os::mm::memory_set - Rust
unsafe extern "C" fn sdata()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.srodata.html b/ch9-dev/os/mm/memory_set/fn.srodata.html index 04e306e2..b63abec2 100644 --- a/ch9-dev/os/mm/memory_set/fn.srodata.html +++ b/ch9-dev/os/mm/memory_set/fn.srodata.html @@ -1,8 +1 @@ -srodata in os::mm::memory_set - Rust - -
-

Function os::mm::memory_set::srodata

source · []
unsafe extern "C" fn srodata()
- \ No newline at end of file +srodata in os::mm::memory_set - Rust
unsafe extern "C" fn srodata()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.stext.html b/ch9-dev/os/mm/memory_set/fn.stext.html index 054f5de6..f0bd6e3e 100644 --- a/ch9-dev/os/mm/memory_set/fn.stext.html +++ b/ch9-dev/os/mm/memory_set/fn.stext.html @@ -1,8 +1 @@ -stext in os::mm::memory_set - Rust - -
-

Function os::mm::memory_set::stext

source · []
unsafe extern "C" fn stext()
- \ No newline at end of file +stext in os::mm::memory_set - Rust
unsafe extern "C" fn stext()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/fn.strampoline.html b/ch9-dev/os/mm/memory_set/fn.strampoline.html index d4c09c0c..7bd50a46 100644 --- a/ch9-dev/os/mm/memory_set/fn.strampoline.html +++ b/ch9-dev/os/mm/memory_set/fn.strampoline.html @@ -1,8 +1 @@ -strampoline in os::mm::memory_set - Rust - -
unsafe extern "C" fn strampoline()
- \ No newline at end of file +strampoline in os::mm::memory_set - Rust
unsafe extern "C" fn strampoline()
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/index.html b/ch9-dev/os/mm/memory_set/index.html index 790a366c..4caa359b 100644 --- a/ch9-dev/os/mm/memory_set/index.html +++ b/ch9-dev/os/mm/memory_set/index.html @@ -1,11 +1 @@ -os::mm::memory_set - Rust - -
- \ No newline at end of file +os::mm::memory_set - Rust
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/sidebar-items.js b/ch9-dev/os/mm/memory_set/sidebar-items.js index 9883059c..78b4a7c7 100644 --- a/ch9-dev/os/mm/memory_set/sidebar-items.js +++ b/ch9-dev/os/mm/memory_set/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"enum":[["MapType",""]],"fn":[["ebss",""],["edata",""],["ekernel",""],["erodata",""],["etext",""],["kernel_token",""],["remap_test",""],["sbss_with_stack",""],["sdata",""],["srodata",""],["stext",""],["strampoline",""]],"struct":[["KERNEL_SPACE",""],["MapArea",""],["MapPermission",""],["MemorySet",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":[["MapType",""]],"fn":[["ebss",""],["edata",""],["ekernel",""],["erodata",""],["etext",""],["kernel_token",""],["remap_test",""],["sbss_with_stack",""],["sdata",""],["srodata",""],["stext",""],["strampoline",""]],"struct":[["KERNEL_SPACE",""],["MapArea",""],["MapPermission",""],["MemorySet",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/struct.KERNEL_SPACE.html b/ch9-dev/os/mm/memory_set/struct.KERNEL_SPACE.html index 4159b196..a7633226 100644 --- a/ch9-dev/os/mm/memory_set/struct.KERNEL_SPACE.html +++ b/ch9-dev/os/mm/memory_set/struct.KERNEL_SPACE.html @@ -1,35 +1,28 @@ -KERNEL_SPACE in os::mm::memory_set - Rust - -

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/struct.MapArea.html b/ch9-dev/os/mm/memory_set/struct.MapArea.html index 5735e844..9e357166 100644 --- a/ch9-dev/os/mm/memory_set/struct.MapArea.html +++ b/ch9-dev/os/mm/memory_set/struct.MapArea.html @@ -1,38 +1,31 @@ -MapArea in os::mm::memory_set - Rust - -
pub struct MapArea {
+MapArea in os::mm::memory_set - Rust
pub struct MapArea {
     vpn_range: SimpleRange<VirtPageNum>,
     data_frames: BTreeMap<VirtPageNum, FrameTracker>,
     map_type: MapType,
     map_perm: MapPermission,
-}

Fields

vpn_range: SimpleRange<VirtPageNum>data_frames: BTreeMap<VirtPageNum, FrameTracker>map_type: MapTypemap_perm: MapPermission

Implementations

data: start-aligned but maybe with shorter length +}

Fields

vpn_range: SimpleRange<VirtPageNum>data_frames: BTreeMap<VirtPageNum, FrameTracker>map_type: MapTypemap_perm: MapPermission

Implementations

data: start-aligned but maybe with shorter length assume that all frames were cleared before

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/struct.MapPermission.html b/ch9-dev/os/mm/memory_set/struct.MapPermission.html index a7af52df..a7f7b4cb 100644 --- a/ch9-dev/os/mm/memory_set/struct.MapPermission.html +++ b/ch9-dev/os/mm/memory_set/struct.MapPermission.html @@ -1,19 +1,13 @@ -MapPermission in os::mm::memory_set - Rust - -
pub struct MapPermission {
+MapPermission in os::mm::memory_set - Rust
pub struct MapPermission {
     bits: u8,
-}

Fields

bits: u8

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +}

Fields

bits: u8

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -21,35 +15,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -57,79 +51,78 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

-

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

-

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

-

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

-
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

-
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

-

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

+

The resulting type after applying the & operator.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

+

The resulting type after applying the | operator.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

+

The resulting type after applying the ^ operator.

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

+
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

+
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

+

The resulting type after applying the ! operator.

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

-

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Returns the set difference of the two sets of flags.

+

The resulting type after applying the - operator.

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/memory_set/struct.MemorySet.html b/ch9-dev/os/mm/memory_set/struct.MemorySet.html index be083e8d..cefcb759 100644 --- a/ch9-dev/os/mm/memory_set/struct.MemorySet.html +++ b/ch9-dev/os/mm/memory_set/struct.MemorySet.html @@ -1,39 +1,32 @@ -MemorySet in os::mm::memory_set - Rust - -
pub struct MemorySet {
+MemorySet in os::mm::memory_set - Rust
pub struct MemorySet {
     page_table: PageTable,
     areas: Vec<MapArea>,
-}

Fields

page_table: PageTableareas: Vec<MapArea>

Implementations

Assume that no conflicts.

-

Mention that trampoline is not collected by areas.

-

Without kernel stacks.

-

Include sections in elf and trampoline, +}

Fields

page_table: PageTableareas: Vec<MapArea>

Implementations

Assume that no conflicts.

+

Mention that trampoline is not collected by areas.

+

Without kernel stacks.

+

Include sections in elf and trampoline, also returns user_sp_base and entry point.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/fn.translated_byte_buffer.html b/ch9-dev/os/mm/page_table/fn.translated_byte_buffer.html index 8cd4e849..a35e2b62 100644 --- a/ch9-dev/os/mm/page_table/fn.translated_byte_buffer.html +++ b/ch9-dev/os/mm/page_table/fn.translated_byte_buffer.html @@ -1,8 +1 @@ -translated_byte_buffer in os::mm::page_table - Rust - -
pub fn translated_byte_buffer(
    token: usize,
    ptr: *const u8,
    len: usize
) -> Vec<&'static mut [u8]>
- \ No newline at end of file +translated_byte_buffer in os::mm::page_table - Rust
pub fn translated_byte_buffer(
    token: usize,
    ptr: *const u8,
    len: usize
) -> Vec<&'static mut [u8]>
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/fn.translated_ref.html b/ch9-dev/os/mm/page_table/fn.translated_ref.html index 9023b1e0..b97fd53c 100644 --- a/ch9-dev/os/mm/page_table/fn.translated_ref.html +++ b/ch9-dev/os/mm/page_table/fn.translated_ref.html @@ -1,8 +1 @@ -translated_ref in os::mm::page_table - Rust - -
pub fn translated_ref<T>(token: usize, ptr: *const T) -> &'static T
- \ No newline at end of file +translated_ref in os::mm::page_table - Rust
pub fn translated_ref<T>(token: usize, ptr: *const T) -> &'static T
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/fn.translated_refmut.html b/ch9-dev/os/mm/page_table/fn.translated_refmut.html index d4bf929c..49a64f43 100644 --- a/ch9-dev/os/mm/page_table/fn.translated_refmut.html +++ b/ch9-dev/os/mm/page_table/fn.translated_refmut.html @@ -1,8 +1 @@ -translated_refmut in os::mm::page_table - Rust - -
pub fn translated_refmut<T>(token: usize, ptr: *mut T) -> &'static mut T
- \ No newline at end of file +translated_refmut in os::mm::page_table - Rust
pub fn translated_refmut<T>(token: usize, ptr: *mut T) -> &'static mut T
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/fn.translated_str.html b/ch9-dev/os/mm/page_table/fn.translated_str.html index 052e1ab9..56e5692d 100644 --- a/ch9-dev/os/mm/page_table/fn.translated_str.html +++ b/ch9-dev/os/mm/page_table/fn.translated_str.html @@ -1,9 +1,2 @@ -translated_str in os::mm::page_table - Rust - -
pub fn translated_str(token: usize, ptr: *const u8) -> String
Expand description

Load a string from other address spaces into kernel space without an end \0.

-
- \ No newline at end of file +translated_str in os::mm::page_table - Rust
pub fn translated_str(token: usize, ptr: *const u8) -> String
Expand description

Load a string from other address spaces into kernel space without an end \0.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/index.html b/ch9-dev/os/mm/page_table/index.html index 7467ec2b..f335083f 100644 --- a/ch9-dev/os/mm/page_table/index.html +++ b/ch9-dev/os/mm/page_table/index.html @@ -1,11 +1,2 @@ -os::mm::page_table - Rust - -
- \ No newline at end of file +os::mm::page_table - Rust
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/sidebar-items.js b/ch9-dev/os/mm/page_table/sidebar-items.js index 2c9e8d24..8707dec1 100644 --- a/ch9-dev/os/mm/page_table/sidebar-items.js +++ b/ch9-dev/os/mm/page_table/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["translated_byte_buffer",""],["translated_ref",""],["translated_refmut",""],["translated_str","Load a string from other address spaces into kernel space without an end `\\0`."]],"struct":[["PTEFlags",""],["PageTable",""],["PageTableEntry",""],["UserBuffer",""],["UserBufferIterator",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["translated_byte_buffer",""],["translated_ref",""],["translated_refmut",""],["translated_str","Load a string from other address spaces into kernel space without an end `\\0`."]],"struct":[["PTEFlags",""],["PageTable",""],["PageTableEntry",""],["UserBuffer",""],["UserBufferIterator",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/struct.PTEFlags.html b/ch9-dev/os/mm/page_table/struct.PTEFlags.html index 10e4623b..b3a13c1a 100644 --- a/ch9-dev/os/mm/page_table/struct.PTEFlags.html +++ b/ch9-dev/os/mm/page_table/struct.PTEFlags.html @@ -1,19 +1,13 @@ -PTEFlags in os::mm::page_table - Rust - -
pub struct PTEFlags {
+PTEFlags in os::mm::page_table - Rust
pub struct PTEFlags {
     bits: u8,
-}

Fields

bits: u8

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +}

Fields

bits: u8

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -21,35 +15,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -57,79 +51,78 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

-

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

-

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

-

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

-
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

-
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

-

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

+

The resulting type after applying the & operator.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

+

The resulting type after applying the | operator.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

+

The resulting type after applying the ^ operator.

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

+
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

+
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

+

The resulting type after applying the ! operator.

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

-

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Returns the set difference of the two sets of flags.

+

The resulting type after applying the - operator.

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/struct.PageTable.html b/ch9-dev/os/mm/page_table/struct.PageTable.html index 17e6f3e7..1c582bd1 100644 --- a/ch9-dev/os/mm/page_table/struct.PageTable.html +++ b/ch9-dev/os/mm/page_table/struct.PageTable.html @@ -1,36 +1,29 @@ -PageTable in os::mm::page_table - Rust - -
pub struct PageTable {
+PageTable in os::mm::page_table - Rust
pub struct PageTable {
     root_ppn: PhysPageNum,
     frames: Vec<FrameTracker>,
-}

Fields

root_ppn: PhysPageNumframes: Vec<FrameTracker>

Implementations

Assume that it won’t oom when creating/mapping.

-

Temporarily used to get arguments from user space.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

root_ppn: PhysPageNumframes: Vec<FrameTracker>

Implementations

Assume that it won’t oom when creating/mapping.

+

Temporarily used to get arguments from user space.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/struct.PageTableEntry.html b/ch9-dev/os/mm/page_table/struct.PageTableEntry.html index 7f17c33d..6571de4d 100644 --- a/ch9-dev/os/mm/page_table/struct.PageTableEntry.html +++ b/ch9-dev/os/mm/page_table/struct.PageTableEntry.html @@ -1,38 +1,31 @@ -PageTableEntry in os::mm::page_table - Rust - -
#[repr(C)]
pub struct PageTableEntry { +PageTableEntry in os::mm::page_table - Rust
#[repr(C)]
pub struct PageTableEntry { pub bits: usize, -}

Fields

bits: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

bits: usize

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/struct.UserBuffer.html b/ch9-dev/os/mm/page_table/struct.UserBuffer.html index 7e07ac52..e6558c10 100644 --- a/ch9-dev/os/mm/page_table/struct.UserBuffer.html +++ b/ch9-dev/os/mm/page_table/struct.UserBuffer.html @@ -1,36 +1,29 @@ -UserBuffer in os::mm::page_table - Rust - -
pub struct UserBuffer {
-    pub buffers: Vec<&'static mut [u8]>,
-}

Fields

buffers: Vec<&'static mut [u8]>

Implementations

Trait Implementations

The type of the elements being iterated over.

-

Which kind of iterator are we turning this into?

+UserBuffer in os::mm::page_table - Rust
pub struct UserBuffer {
+    pub buffers: Vec<&'static mut [u8]>,
+}

Fields

buffers: Vec<&'static mut [u8]>

Implementations

Trait Implementations

The type of the elements being iterated over.

+

Which kind of iterator are we turning this into?

Creates an iterator from a value. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/page_table/struct.UserBufferIterator.html b/ch9-dev/os/mm/page_table/struct.UserBufferIterator.html index 531bf3b2..23b96630 100644 --- a/ch9-dev/os/mm/page_table/struct.UserBufferIterator.html +++ b/ch9-dev/os/mm/page_table/struct.UserBufferIterator.html @@ -1,150 +1,144 @@ -UserBufferIterator in os::mm::page_table - Rust - -

Fields

buffers: Vec<&'static mut [u8]>current_buffer: usizecurrent_idx: usize

Trait Implementations

The type of the elements being iterated over.

Advances the iterator and returns the next value. Read more

-

Returns the bounds on the remaining length of the iterator. Read more

-

Consumes the iterator, counting the number of iterations and returning it. Read more

-

Consumes the iterator, returning the last element. Read more

-
🔬 This is a nightly-only experimental API. (iter_advance_by)

Advances the iterator by n elements. Read more

-

Returns the nth element of the iterator. Read more

-

Creates an iterator starting at the same point, but stepping by +

🔬 This is a nightly-only experimental API. (iter_next_chunk)

Advances the iterator and returns an array containing the next N values. Read more

+

Returns the bounds on the remaining length of the iterator. Read more

+

Consumes the iterator, counting the number of iterations and returning it. Read more

+

Consumes the iterator, returning the last element. Read more

+
🔬 This is a nightly-only experimental API. (iter_advance_by)

Advances the iterator by n elements. Read more

+

Returns the nth element of the iterator. Read more

+

Creates an iterator starting at the same point, but stepping by the given amount at each iteration. Read more

-

Takes two iterators and creates a new iterator over both in sequence. Read more

-

‘Zips up’ two iterators into a single iterator of pairs. Read more

-
🔬 This is a nightly-only experimental API. (iter_intersperse)

Creates a new iterator which places a copy of separator between adjacent +

Takes two iterators and creates a new iterator over both in sequence. Read more

+

‘Zips up’ two iterators into a single iterator of pairs. Read more

+
🔬 This is a nightly-only experimental API. (iter_intersperse)

Creates a new iterator which places a copy of separator between adjacent items of the original iterator. Read more

-
🔬 This is a nightly-only experimental API. (iter_intersperse)

Creates a new iterator which places an item generated by separator +

🔬 This is a nightly-only experimental API. (iter_intersperse)

Creates a new iterator which places an item generated by separator between adjacent items of the original iterator. Read more

-

Takes a closure and creates an iterator which calls that closure on each +

Takes a closure and creates an iterator which calls that closure on each element. Read more

-

Calls a closure on each element of an iterator. Read more

-

Creates an iterator which uses a closure to determine if an element +

Calls a closure on each element of an iterator. Read more

+

Creates an iterator which uses a closure to determine if an element should be yielded. Read more

-

Creates an iterator that both filters and maps. Read more

-

Creates an iterator which gives the current iteration count as well as +

Creates an iterator that both filters and maps. Read more

+

Creates an iterator which gives the current iteration count as well as the next value. Read more

-

Creates an iterator which can use the peek and peek_mut methods +

Creates an iterator which can use the peek and peek_mut methods to look at the next element of the iterator without consuming it. See their documentation for more information. Read more

-

Creates an iterator that skips elements based on a predicate. Read more

-

Creates an iterator that yields elements based on a predicate. Read more

-

Creates an iterator that both yields elements based on a predicate and maps. Read more

-

Creates an iterator that skips the first n elements. Read more

-

Creates an iterator that yields the first n elements, or fewer +

Creates an iterator that skips elements based on a predicate. Read more

+

Creates an iterator that yields elements based on a predicate. Read more

+

Creates an iterator that both yields elements based on a predicate and maps. Read more

+

Creates an iterator that skips the first n elements. Read more

+

Creates an iterator that yields the first n elements, or fewer if the underlying iterator ends sooner. Read more

-

An iterator adapter similar to fold that holds internal state and +

An iterator adapter similar to fold that holds internal state and produces a new iterator. Read more

-

Creates an iterator that works like map, but flattens nested structure. Read more

-

Creates an iterator that flattens nested structure. Read more

-

Creates an iterator which ends after the first None. Read more

-

Does something with each element of an iterator, passing the value on. Read more

-

Borrows an iterator, rather than consuming it. Read more

-

Transforms an iterator into a collection. Read more

-
🔬 This is a nightly-only experimental API. (iterator_try_collect)

Fallibly transforms an iterator into a collection, short circuiting if +

Creates an iterator that works like map, but flattens nested structure. Read more

+

Creates an iterator that flattens nested structure. Read more

+

Creates an iterator which ends after the first None. Read more

+

Does something with each element of an iterator, passing the value on. Read more

+

Borrows an iterator, rather than consuming it. Read more

+

Transforms an iterator into a collection. Read more

+
🔬 This is a nightly-only experimental API. (iterator_try_collect)

Fallibly transforms an iterator into a collection, short circuiting if a failure is encountered. Read more

-
🔬 This is a nightly-only experimental API. (iter_collect_into)

Collects all the items from an iterator into a collection. Read more

-

Consumes an iterator, creating two collections from it. Read more

-
🔬 This is a nightly-only experimental API. (iter_partition_in_place)

Reorders the elements of this iterator in-place according to the given predicate, +

🔬 This is a nightly-only experimental API. (iter_collect_into)

Collects all the items from an iterator into a collection. Read more

+

Consumes an iterator, creating two collections from it. Read more

+
🔬 This is a nightly-only experimental API. (iter_partition_in_place)

Reorders the elements of this iterator in-place according to the given predicate, such that all those that return true precede all those that return false. Returns the number of true elements found. Read more

-
🔬 This is a nightly-only experimental API. (iter_is_partitioned)

Checks if the elements of this iterator are partitioned according to the given predicate, +

🔬 This is a nightly-only experimental API. (iter_is_partitioned)

Checks if the elements of this iterator are partitioned according to the given predicate, such that all those that return true precede all those that return false. Read more

-

An iterator method that applies a function as long as it returns +

An iterator method that applies a function as long as it returns successfully, producing a single, final value. Read more

-

An iterator method that applies a fallible function to each item in the +

An iterator method that applies a fallible function to each item in the iterator, stopping at the first error and returning that error. Read more

-

Folds every element into an accumulator by applying an operation, +

Folds every element into an accumulator by applying an operation, returning the final result. Read more

-

Reduces the elements to a single one, by repeatedly applying a reducing +

Reduces the elements to a single one, by repeatedly applying a reducing operation. Read more

-
🔬 This is a nightly-only experimental API. (iterator_try_reduce)

Reduces the elements to a single one by repeatedly applying a reducing operation. If the +

🔬 This is a nightly-only experimental API. (iterator_try_reduce)

Reduces the elements to a single one by repeatedly applying a reducing operation. If the closure returns a failure, the failure is propagated back to the caller immediately. Read more

-

Tests if every element of the iterator matches a predicate. Read more

-

Tests if any element of the iterator matches a predicate. Read more

-

Searches for an element of an iterator that satisfies a predicate. Read more

-

Applies function to the elements of iterator and returns +

Tests if every element of the iterator matches a predicate. Read more

+

Tests if any element of the iterator matches a predicate. Read more

+

Searches for an element of an iterator that satisfies a predicate. Read more

+

Applies function to the elements of iterator and returns the first non-none result. Read more

-
🔬 This is a nightly-only experimental API. (try_find)

Applies function to the elements of iterator and returns +

🔬 This is a nightly-only experimental API. (try_find)

Applies function to the elements of iterator and returns the first true result or the first error. Read more

-

Searches for an element in an iterator, returning its index. Read more

-

Searches for an element in an iterator from the right, returning its +

Searches for an element in an iterator, returning its index. Read more

+

Searches for an element in an iterator from the right, returning its index. Read more

-

Returns the maximum element of an iterator. Read more

-

Returns the minimum element of an iterator. Read more

-

Returns the element that gives the maximum value from the +

Returns the maximum element of an iterator. Read more

+

Returns the minimum element of an iterator. Read more

+

Returns the element that gives the maximum value from the specified function. Read more

-

Returns the element that gives the maximum value with respect to the +

Returns the element that gives the maximum value with respect to the specified comparison function. Read more

-

Returns the element that gives the minimum value from the +

Returns the element that gives the minimum value from the specified function. Read more

-

Returns the element that gives the minimum value with respect to the +

Returns the element that gives the minimum value with respect to the specified comparison function. Read more

-

Reverses an iterator’s direction. Read more

-

Converts an iterator of pairs into a pair of containers. Read more

-

Creates an iterator which copies all of its elements. Read more

-

Creates an iterator which clones all of its elements. Read more

-

Repeats an iterator endlessly. Read more

-

Sums the elements of an iterator. Read more

-

Iterates over the entire iterator, multiplying all the elements Read more

-

Lexicographically compares the elements of this Iterator with those +

Reverses an iterator’s direction. Read more

+

Converts an iterator of pairs into a pair of containers. Read more

+

Creates an iterator which copies all of its elements. Read more

+

Creates an iterator which clones all of its elements. Read more

+

Repeats an iterator endlessly. Read more

+

Sums the elements of an iterator. Read more

+

Iterates over the entire iterator, multiplying all the elements Read more

+

Lexicographically compares the elements of this Iterator with those of another. Read more

-
🔬 This is a nightly-only experimental API. (iter_order_by)

Lexicographically compares the elements of this Iterator with those +

🔬 This is a nightly-only experimental API. (iter_order_by)

Lexicographically compares the elements of this Iterator with those of another with respect to the specified comparison function. Read more

-

Lexicographically compares the elements of this Iterator with those +

Lexicographically compares the elements of this Iterator with those of another. Read more

-
🔬 This is a nightly-only experimental API. (iter_order_by)

Lexicographically compares the elements of this Iterator with those +

🔬 This is a nightly-only experimental API. (iter_order_by)

Lexicographically compares the elements of this Iterator with those of another with respect to the specified comparison function. Read more

-

Determines if the elements of this Iterator are equal to those of +

Determines if the elements of this Iterator are equal to those of another. Read more

-
🔬 This is a nightly-only experimental API. (iter_order_by)

Determines if the elements of this Iterator are equal to those of +

🔬 This is a nightly-only experimental API. (iter_order_by)

Determines if the elements of this Iterator are equal to those of another with respect to the specified equality function. Read more

-

Determines if the elements of this Iterator are unequal to those of +

Determines if the elements of this Iterator are unequal to those of another. Read more

-

Determines if the elements of this Iterator are lexicographically +

Determines if the elements of this Iterator are lexicographically less than those of another. Read more

-

Determines if the elements of this Iterator are lexicographically +

Determines if the elements of this Iterator are lexicographically less or equal to those of another. Read more

-

Determines if the elements of this Iterator are lexicographically +

Determines if the elements of this Iterator are lexicographically greater than those of another. Read more

-

Determines if the elements of this Iterator are lexicographically +

Determines if the elements of this Iterator are lexicographically greater than or equal to those of another. Read more

-
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted. Read more

-
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted using the given comparator function. Read more

-
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted using the given key extraction +

🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted. Read more

+
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted using the given comparator function. Read more

+
🔬 This is a nightly-only experimental API. (is_sorted)

Checks if the elements of this iterator are sorted using the given key extraction function. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

The type of the elements being iterated over.

-

Which kind of iterator are we turning this into?

-

Creates an iterator from a value. Read more

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

The type of the elements being iterated over.

+

Which kind of iterator are we turning this into?

+

Creates an iterator from a value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/mm/sidebar-items.js b/ch9-dev/os/mm/sidebar-items.js index 5e2f1aaa..e18dfe81 100644 --- a/ch9-dev/os/mm/sidebar-items.js +++ b/ch9-dev/os/mm/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["init",""]],"mod":[["address",""],["frame_allocator",""],["heap_allocator",""],["memory_set",""],["page_table",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["init",""]],"mod":[["address",""],["frame_allocator",""],["heap_allocator",""],["memory_set",""],["page_table",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_CLEAR_IPI.html b/ch9-dev/os/sbi/constant.SBI_CLEAR_IPI.html index f5d56dfa..7bd2b4d4 100644 --- a/ch9-dev/os/sbi/constant.SBI_CLEAR_IPI.html +++ b/ch9-dev/os/sbi/constant.SBI_CLEAR_IPI.html @@ -1,8 +1 @@ -SBI_CLEAR_IPI in os::sbi - Rust - -
-

Constant os::sbi::SBI_CLEAR_IPI

source · []
const SBI_CLEAR_IPI: usize = 3;
- \ No newline at end of file +SBI_CLEAR_IPI in os::sbi - Rust
const SBI_CLEAR_IPI: usize = 3;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_CONSOLE_GETCHAR.html b/ch9-dev/os/sbi/constant.SBI_CONSOLE_GETCHAR.html index 042f0251..82709775 100644 --- a/ch9-dev/os/sbi/constant.SBI_CONSOLE_GETCHAR.html +++ b/ch9-dev/os/sbi/constant.SBI_CONSOLE_GETCHAR.html @@ -1,8 +1 @@ -SBI_CONSOLE_GETCHAR in os::sbi - Rust - -
const SBI_CONSOLE_GETCHAR: usize = 2;
- \ No newline at end of file +SBI_CONSOLE_GETCHAR in os::sbi - Rust
const SBI_CONSOLE_GETCHAR: usize = 2;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html b/ch9-dev/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html index fca7335b..10915495 100644 --- a/ch9-dev/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html +++ b/ch9-dev/os/sbi/constant.SBI_CONSOLE_PUTCHAR.html @@ -1,8 +1 @@ -SBI_CONSOLE_PUTCHAR in os::sbi - Rust - -
const SBI_CONSOLE_PUTCHAR: usize = 1;
- \ No newline at end of file +SBI_CONSOLE_PUTCHAR in os::sbi - Rust
const SBI_CONSOLE_PUTCHAR: usize = 1;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_REMOTE_FENCE_I.html b/ch9-dev/os/sbi/constant.SBI_REMOTE_FENCE_I.html index cb9d263a..a397da74 100644 --- a/ch9-dev/os/sbi/constant.SBI_REMOTE_FENCE_I.html +++ b/ch9-dev/os/sbi/constant.SBI_REMOTE_FENCE_I.html @@ -1,8 +1 @@ -SBI_REMOTE_FENCE_I in os::sbi - Rust - -
const SBI_REMOTE_FENCE_I: usize = 5;
- \ No newline at end of file +SBI_REMOTE_FENCE_I in os::sbi - Rust
const SBI_REMOTE_FENCE_I: usize = 5;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html b/ch9-dev/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html index 4a7078eb..7e80705a 100644 --- a/ch9-dev/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html +++ b/ch9-dev/os/sbi/constant.SBI_REMOTE_SFENCE_VMA.html @@ -1,8 +1 @@ -SBI_REMOTE_SFENCE_VMA in os::sbi - Rust - -
const SBI_REMOTE_SFENCE_VMA: usize = 6;
- \ No newline at end of file +SBI_REMOTE_SFENCE_VMA in os::sbi - Rust
const SBI_REMOTE_SFENCE_VMA: usize = 6;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html b/ch9-dev/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html index 3c7e411b..b39b840b 100644 --- a/ch9-dev/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html +++ b/ch9-dev/os/sbi/constant.SBI_REMOTE_SFENCE_VMA_ASID.html @@ -1,8 +1 @@ -SBI_REMOTE_SFENCE_VMA_ASID in os::sbi - Rust - -
const SBI_REMOTE_SFENCE_VMA_ASID: usize = 7;
- \ No newline at end of file +SBI_REMOTE_SFENCE_VMA_ASID in os::sbi - Rust
const SBI_REMOTE_SFENCE_VMA_ASID: usize = 7;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_SEND_IPI.html b/ch9-dev/os/sbi/constant.SBI_SEND_IPI.html index 07195820..8048e517 100644 --- a/ch9-dev/os/sbi/constant.SBI_SEND_IPI.html +++ b/ch9-dev/os/sbi/constant.SBI_SEND_IPI.html @@ -1,8 +1 @@ -SBI_SEND_IPI in os::sbi - Rust - -
-

Constant os::sbi::SBI_SEND_IPI

source · []
const SBI_SEND_IPI: usize = 4;
- \ No newline at end of file +SBI_SEND_IPI in os::sbi - Rust
const SBI_SEND_IPI: usize = 4;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_SET_TIMER.html b/ch9-dev/os/sbi/constant.SBI_SET_TIMER.html index 5fcd7bc4..0d9f9f56 100644 --- a/ch9-dev/os/sbi/constant.SBI_SET_TIMER.html +++ b/ch9-dev/os/sbi/constant.SBI_SET_TIMER.html @@ -1,8 +1 @@ -SBI_SET_TIMER in os::sbi - Rust - -
-

Constant os::sbi::SBI_SET_TIMER

source · []
const SBI_SET_TIMER: usize = 0;
- \ No newline at end of file +SBI_SET_TIMER in os::sbi - Rust
const SBI_SET_TIMER: usize = 0;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/constant.SBI_SHUTDOWN.html b/ch9-dev/os/sbi/constant.SBI_SHUTDOWN.html index bfed6936..1b1a6f91 100644 --- a/ch9-dev/os/sbi/constant.SBI_SHUTDOWN.html +++ b/ch9-dev/os/sbi/constant.SBI_SHUTDOWN.html @@ -1,8 +1 @@ -SBI_SHUTDOWN in os::sbi - Rust - -
-

Constant os::sbi::SBI_SHUTDOWN

source · []
const SBI_SHUTDOWN: usize = 8;
- \ No newline at end of file +SBI_SHUTDOWN in os::sbi - Rust
const SBI_SHUTDOWN: usize = 8;
\ No newline at end of file diff --git a/ch9-dev/os/sbi/fn.console_getchar.html b/ch9-dev/os/sbi/fn.console_getchar.html index 3eaadfd0..1e39dfe2 100644 --- a/ch9-dev/os/sbi/fn.console_getchar.html +++ b/ch9-dev/os/sbi/fn.console_getchar.html @@ -1,8 +1 @@ -console_getchar in os::sbi - Rust - -
pub fn console_getchar() -> usize
- \ No newline at end of file +console_getchar in os::sbi - Rust
pub fn console_getchar() -> usize
\ No newline at end of file diff --git a/ch9-dev/os/sbi/fn.console_putchar.html b/ch9-dev/os/sbi/fn.console_putchar.html index d031e02d..4251a9ab 100644 --- a/ch9-dev/os/sbi/fn.console_putchar.html +++ b/ch9-dev/os/sbi/fn.console_putchar.html @@ -1,8 +1 @@ -console_putchar in os::sbi - Rust - -
pub fn console_putchar(c: usize)
- \ No newline at end of file +console_putchar in os::sbi - Rust
pub fn console_putchar(c: usize)
\ No newline at end of file diff --git a/ch9-dev/os/sbi/fn.sbi_call.html b/ch9-dev/os/sbi/fn.sbi_call.html index 9d5933ee..5615c4ea 100644 --- a/ch9-dev/os/sbi/fn.sbi_call.html +++ b/ch9-dev/os/sbi/fn.sbi_call.html @@ -1,8 +1 @@ -sbi_call in os::sbi - Rust - -
-

Function os::sbi::sbi_call

source · []
fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize
- \ No newline at end of file +sbi_call in os::sbi - Rust

Function os::sbi::sbi_call

source · []
fn sbi_call(which: usize, arg0: usize, arg1: usize, arg2: usize) -> usize
\ No newline at end of file diff --git a/ch9-dev/os/sbi/fn.set_timer.html b/ch9-dev/os/sbi/fn.set_timer.html index ca141899..9b902dfb 100644 --- a/ch9-dev/os/sbi/fn.set_timer.html +++ b/ch9-dev/os/sbi/fn.set_timer.html @@ -1,8 +1 @@ -set_timer in os::sbi - Rust - -
-

Function os::sbi::set_timer

source · []
pub fn set_timer(timer: usize)
- \ No newline at end of file +set_timer in os::sbi - Rust

Function os::sbi::set_timer

source · []
pub fn set_timer(timer: usize)
\ No newline at end of file diff --git a/ch9-dev/os/sbi/fn.shutdown.html b/ch9-dev/os/sbi/fn.shutdown.html index c37d9dfc..f021f742 100644 --- a/ch9-dev/os/sbi/fn.shutdown.html +++ b/ch9-dev/os/sbi/fn.shutdown.html @@ -1,8 +1 @@ -shutdown in os::sbi - Rust - -
-

Function os::sbi::shutdown

source · []
pub fn shutdown(exit_code: usize) -> !
- \ No newline at end of file +shutdown in os::sbi - Rust

Function os::sbi::shutdown

source · []
pub fn shutdown(exit_code: usize) -> !
\ No newline at end of file diff --git a/ch9-dev/os/sbi/index.html b/ch9-dev/os/sbi/index.html index f47abb98..b213183b 100644 --- a/ch9-dev/os/sbi/index.html +++ b/ch9-dev/os/sbi/index.html @@ -1,10 +1 @@ -os::sbi - Rust - -
- \ No newline at end of file +os::sbi - Rust
\ No newline at end of file diff --git a/ch9-dev/os/sbi/sidebar-items.js b/ch9-dev/os/sbi/sidebar-items.js index 025cc5ad..87cbb11a 100644 --- a/ch9-dev/os/sbi/sidebar-items.js +++ b/ch9-dev/os/sbi/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["SBI_CLEAR_IPI",""],["SBI_CONSOLE_GETCHAR",""],["SBI_CONSOLE_PUTCHAR",""],["SBI_REMOTE_FENCE_I",""],["SBI_REMOTE_SFENCE_VMA",""],["SBI_REMOTE_SFENCE_VMA_ASID",""],["SBI_SEND_IPI",""],["SBI_SET_TIMER",""],["SBI_SHUTDOWN",""]],"fn":[["console_getchar",""],["console_putchar",""],["sbi_call",""],["set_timer",""],["shutdown",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["SBI_CLEAR_IPI",""],["SBI_CONSOLE_GETCHAR",""],["SBI_CONSOLE_PUTCHAR",""],["SBI_REMOTE_FENCE_I",""],["SBI_REMOTE_SFENCE_VMA",""],["SBI_REMOTE_SFENCE_VMA_ASID",""],["SBI_SEND_IPI",""],["SBI_SET_TIMER",""],["SBI_SHUTDOWN",""]],"fn":[["console_getchar",""],["console_putchar",""],["sbi_call",""],["set_timer",""],["shutdown",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/sidebar-items.js b/ch9-dev/os/sidebar-items.js index c89d2209..983a33b0 100644 --- a/ch9-dev/os/sidebar-items.js +++ b/ch9-dev/os/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["clear_bss",""],["rust_main",""]],"macro":[["print",""],["println",""]],"mod":[["board",""],["config",""],["console",""],["drivers",""],["fs",""],["gui",""],["lang_items",""],["mm",""],["sbi",""],["sync",""],["syscall",""],["task",""],["timer",""],["trap",""]],"struct":[["DEV_NON_BLOCKING_ACCESS",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["clear_bss",""],["rust_main",""]],"macro":[["print",""],["println",""]],"mod":[["board",""],["config",""],["console",""],["drivers",""],["fs",""],["gui",""],["lang_items",""],["mm",""],["sbi",""],["sync",""],["syscall",""],["task",""],["timer",""],["trap",""]],"struct":[["DEV_NON_BLOCKING_ACCESS",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/struct.DEV_NON_BLOCKING_ACCESS.html b/ch9-dev/os/struct.DEV_NON_BLOCKING_ACCESS.html index e0d42add..c3a21419 100644 --- a/ch9-dev/os/struct.DEV_NON_BLOCKING_ACCESS.html +++ b/ch9-dev/os/struct.DEV_NON_BLOCKING_ACCESS.html @@ -1,36 +1,29 @@ -DEV_NON_BLOCKING_ACCESS in os - Rust - -
pub struct DEV_NON_BLOCKING_ACCESS {
+DEV_NON_BLOCKING_ACCESS in os - Rust
pub struct DEV_NON_BLOCKING_ACCESS {
     pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<bool>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<bool>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/condvar/index.html b/ch9-dev/os/sync/condvar/index.html index 97a47761..3d233868 100644 --- a/ch9-dev/os/sync/condvar/index.html +++ b/ch9-dev/os/sync/condvar/index.html @@ -1,9 +1 @@ -os::sync::condvar - Rust - -
- \ No newline at end of file +os::sync::condvar - Rust
\ No newline at end of file diff --git a/ch9-dev/os/sync/condvar/sidebar-items.js b/ch9-dev/os/sync/condvar/sidebar-items.js index 9c6e0531..9b8c6253 100644 --- a/ch9-dev/os/sync/condvar/sidebar-items.js +++ b/ch9-dev/os/sync/condvar/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["Condvar",""],["CondvarInner",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["Condvar",""],["CondvarInner",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/sync/condvar/struct.Condvar.html b/ch9-dev/os/sync/condvar/struct.Condvar.html index 15ee801e..762f845e 100644 --- a/ch9-dev/os/sync/condvar/struct.Condvar.html +++ b/ch9-dev/os/sync/condvar/struct.Condvar.html @@ -1,33 +1,26 @@ -Condvar in os::sync::condvar - Rust - -
pub struct Condvar {
+Condvar in os::sync::condvar - Rust
pub struct Condvar {
     pub inner: UPIntrFreeCell<CondvarInner>,
-}

Fields

inner: UPIntrFreeCell<CondvarInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

inner: UPIntrFreeCell<CondvarInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/condvar/struct.CondvarInner.html b/ch9-dev/os/sync/condvar/struct.CondvarInner.html index caee4cf4..174a610f 100644 --- a/ch9-dev/os/sync/condvar/struct.CondvarInner.html +++ b/ch9-dev/os/sync/condvar/struct.CondvarInner.html @@ -1,33 +1,26 @@ -CondvarInner in os::sync::condvar - Rust - -
pub struct CondvarInner {
+CondvarInner in os::sync::condvar - Rust
pub struct CondvarInner {
     pub wait_queue: VecDeque<Arc<TaskControlBlock>>,
-}

Fields

wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

wait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/index.html b/ch9-dev/os/sync/index.html index 446e5a11..4e3008f2 100644 --- a/ch9-dev/os/sync/index.html +++ b/ch9-dev/os/sync/index.html @@ -1,10 +1 @@ -os::sync - Rust - -
-

Module os::sync

source · []

Re-exports

-
pub use condvar::Condvar;
pub use mutex::Mutex;
pub use mutex::MutexBlocking;
pub use mutex::MutexSpin;
pub use semaphore::Semaphore;
pub use up::UPIntrFreeCell;
pub use up::UPIntrRefMut;

Modules

-
condvar 🔒
mutex 🔒
semaphore 🔒
up 🔒
- \ No newline at end of file +os::sync - Rust

Module os::sync

source · []

Re-exports

pub use condvar::Condvar;
pub use mutex::Mutex;
pub use mutex::MutexBlocking;
pub use mutex::MutexSpin;
pub use semaphore::Semaphore;
pub use up::UPIntrFreeCell;
pub use up::UPIntrRefMut;

Modules

condvar 🔒
mutex 🔒
semaphore 🔒
up 🔒
\ No newline at end of file diff --git a/ch9-dev/os/sync/mutex/index.html b/ch9-dev/os/sync/mutex/index.html index e23e91d4..d2e500db 100644 --- a/ch9-dev/os/sync/mutex/index.html +++ b/ch9-dev/os/sync/mutex/index.html @@ -1,10 +1 @@ -os::sync::mutex - Rust - -
- \ No newline at end of file +os::sync::mutex - Rust
\ No newline at end of file diff --git a/ch9-dev/os/sync/mutex/sidebar-items.js b/ch9-dev/os/sync/mutex/sidebar-items.js index bcf7fb56..678629d0 100644 --- a/ch9-dev/os/sync/mutex/sidebar-items.js +++ b/ch9-dev/os/sync/mutex/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["MutexBlocking",""],["MutexBlockingInner",""],["MutexSpin",""]],"trait":[["Mutex",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["MutexBlocking",""],["MutexBlockingInner",""],["MutexSpin",""]],"trait":[["Mutex",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/sync/mutex/struct.MutexBlocking.html b/ch9-dev/os/sync/mutex/struct.MutexBlocking.html index 5dde1089..21ab8fe3 100644 --- a/ch9-dev/os/sync/mutex/struct.MutexBlocking.html +++ b/ch9-dev/os/sync/mutex/struct.MutexBlocking.html @@ -1,33 +1,26 @@ -MutexBlocking in os::sync::mutex - Rust - -
pub struct MutexBlocking {
+MutexBlocking in os::sync::mutex - Rust
pub struct MutexBlocking {
     inner: UPIntrFreeCell<MutexBlockingInner>,
-}

Fields

inner: UPIntrFreeCell<MutexBlockingInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

inner: UPIntrFreeCell<MutexBlockingInner>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/mutex/struct.MutexBlockingInner.html b/ch9-dev/os/sync/mutex/struct.MutexBlockingInner.html index 83b9c4e1..51270e15 100644 --- a/ch9-dev/os/sync/mutex/struct.MutexBlockingInner.html +++ b/ch9-dev/os/sync/mutex/struct.MutexBlockingInner.html @@ -1,34 +1,27 @@ -MutexBlockingInner in os::sync::mutex - Rust - -
pub struct MutexBlockingInner {
+MutexBlockingInner in os::sync::mutex - Rust
pub struct MutexBlockingInner {
     locked: bool,
     wait_queue: VecDeque<Arc<TaskControlBlock>>,
-}

Fields

locked: boolwait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

locked: boolwait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/mutex/struct.MutexSpin.html b/ch9-dev/os/sync/mutex/struct.MutexSpin.html index 2436c1f3..c62b9a1d 100644 --- a/ch9-dev/os/sync/mutex/struct.MutexSpin.html +++ b/ch9-dev/os/sync/mutex/struct.MutexSpin.html @@ -1,33 +1,26 @@ -MutexSpin in os::sync::mutex - Rust - -
pub struct MutexSpin {
+MutexSpin in os::sync::mutex - Rust
pub struct MutexSpin {
     locked: UPIntrFreeCell<bool>,
-}

Fields

locked: UPIntrFreeCell<bool>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

locked: UPIntrFreeCell<bool>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/mutex/trait.Mutex.html b/ch9-dev/os/sync/mutex/trait.Mutex.html index e8e6685b..018cad08 100644 --- a/ch9-dev/os/sync/mutex/trait.Mutex.html +++ b/ch9-dev/os/sync/mutex/trait.Mutex.html @@ -1,11 +1,4 @@ -Mutex in os::sync::mutex - Rust - -
-

Trait os::sync::mutex::Mutex

source · []
pub trait Mutex: Sync + Send {
+Mutex in os::sync::mutex - Rust
pub trait Mutex: Sync + Send {
     fn lock(&self);
     fn unlock(&self);
-}

Required methods

Implementors

- \ No newline at end of file +}

Required Methods

Implementors

\ No newline at end of file diff --git a/ch9-dev/os/sync/semaphore/index.html b/ch9-dev/os/sync/semaphore/index.html index 51800f80..d2282eee 100644 --- a/ch9-dev/os/sync/semaphore/index.html +++ b/ch9-dev/os/sync/semaphore/index.html @@ -1,9 +1 @@ -os::sync::semaphore - Rust - -
- \ No newline at end of file +os::sync::semaphore - Rust
\ No newline at end of file diff --git a/ch9-dev/os/sync/semaphore/sidebar-items.js b/ch9-dev/os/sync/semaphore/sidebar-items.js index aab70692..eb712180 100644 --- a/ch9-dev/os/sync/semaphore/sidebar-items.js +++ b/ch9-dev/os/sync/semaphore/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["Semaphore",""],["SemaphoreInner",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["Semaphore",""],["SemaphoreInner",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/sync/semaphore/struct.Semaphore.html b/ch9-dev/os/sync/semaphore/struct.Semaphore.html index a0e9aca2..e1de2fb6 100644 --- a/ch9-dev/os/sync/semaphore/struct.Semaphore.html +++ b/ch9-dev/os/sync/semaphore/struct.Semaphore.html @@ -1,33 +1,26 @@ -Semaphore in os::sync::semaphore - Rust - -
pub struct Semaphore {
+Semaphore in os::sync::semaphore - Rust
pub struct Semaphore {
     pub inner: UPIntrFreeCell<SemaphoreInner>,
-}

Fields

inner: UPIntrFreeCell<SemaphoreInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

inner: UPIntrFreeCell<SemaphoreInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/semaphore/struct.SemaphoreInner.html b/ch9-dev/os/sync/semaphore/struct.SemaphoreInner.html index aa84b052..2b461a8d 100644 --- a/ch9-dev/os/sync/semaphore/struct.SemaphoreInner.html +++ b/ch9-dev/os/sync/semaphore/struct.SemaphoreInner.html @@ -1,34 +1,27 @@ -SemaphoreInner in os::sync::semaphore - Rust - -
pub struct SemaphoreInner {
+SemaphoreInner in os::sync::semaphore - Rust
pub struct SemaphoreInner {
     pub count: isize,
     pub wait_queue: VecDeque<Arc<TaskControlBlock>>,
-}

Fields

count: isizewait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

count: isizewait_queue: VecDeque<Arc<TaskControlBlock>>

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/sidebar-items.js b/ch9-dev/os/sync/sidebar-items.js index 246433bd..1ee8d463 100644 --- a/ch9-dev/os/sync/sidebar-items.js +++ b/ch9-dev/os/sync/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"mod":[["condvar",""],["mutex",""],["semaphore",""],["up",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"mod":[["condvar",""],["mutex",""],["semaphore",""],["up",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/sync/up/index.html b/ch9-dev/os/sync/up/index.html index c834f927..8f591d47 100644 --- a/ch9-dev/os/sync/up/index.html +++ b/ch9-dev/os/sync/up/index.html @@ -1,9 +1 @@ -os::sync::up - Rust - -
- \ No newline at end of file +os::sync::up - Rust
\ No newline at end of file diff --git a/ch9-dev/os/sync/up/sidebar-items.js b/ch9-dev/os/sync/up/sidebar-items.js index e903a9f6..6494946f 100644 --- a/ch9-dev/os/sync/up/sidebar-items.js +++ b/ch9-dev/os/sync/up/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["INTR_MASKING_INFO",""],["IntrMaskingInfo",""],["UPIntrFreeCell",""],["UPIntrRefMut",""],["UPSafeCellRaw",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["INTR_MASKING_INFO",""],["IntrMaskingInfo",""],["UPIntrFreeCell",""],["UPIntrRefMut",""],["UPSafeCellRaw",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/sync/up/struct.INTR_MASKING_INFO.html b/ch9-dev/os/sync/up/struct.INTR_MASKING_INFO.html index d84087e5..0b5024f1 100644 --- a/ch9-dev/os/sync/up/struct.INTR_MASKING_INFO.html +++ b/ch9-dev/os/sync/up/struct.INTR_MASKING_INFO.html @@ -1,35 +1,28 @@ -INTR_MASKING_INFO in os::sync::up - Rust - -

Fields

__private_field: ()

Methods from Deref<Target = UPSafeCellRaw<IntrMaskingInfo>>

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/up/struct.IntrMaskingInfo.html b/ch9-dev/os/sync/up/struct.IntrMaskingInfo.html index 24f2a462..569888ca 100644 --- a/ch9-dev/os/sync/up/struct.IntrMaskingInfo.html +++ b/ch9-dev/os/sync/up/struct.IntrMaskingInfo.html @@ -1,34 +1,27 @@ -IntrMaskingInfo in os::sync::up - Rust - -
pub struct IntrMaskingInfo {
+IntrMaskingInfo in os::sync::up - Rust
pub struct IntrMaskingInfo {
     nested_level: usize,
     sie_before_masking: bool,
-}

Fields

nested_level: usizesie_before_masking: bool

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

nested_level: usizesie_before_masking: bool

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/up/struct.UPIntrFreeCell.html b/ch9-dev/os/sync/up/struct.UPIntrFreeCell.html index 8570fdeb..dfbd9f3f 100644 --- a/ch9-dev/os/sync/up/struct.UPIntrFreeCell.html +++ b/ch9-dev/os/sync/up/struct.UPIntrFreeCell.html @@ -1,35 +1,28 @@ -UPIntrFreeCell in os::sync::up - Rust - -
pub struct UPIntrFreeCell<T> {
+UPIntrFreeCell in os::sync::up - Rust
pub struct UPIntrFreeCell<T> {
     inner: RefCell<T>,
 }

Fields

inner: RefCell<T>

inner data

-

Implementations

Panic if the data has been borrowed.

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Implementations

Panic if the data has been borrowed.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/up/struct.UPIntrRefMut.html b/ch9-dev/os/sync/up/struct.UPIntrRefMut.html index a0eb6c80..3879a42c 100644 --- a/ch9-dev/os/sync/up/struct.UPIntrRefMut.html +++ b/ch9-dev/os/sync/up/struct.UPIntrRefMut.html @@ -1,35 +1,28 @@ -UPIntrRefMut in os::sync::up - Rust - -
pub struct UPIntrRefMut<'a, T>(Option<RefMut<'a, T>>);

Tuple Fields

0: Option<RefMut<'a, T>>

Trait Implementations

The resulting type after dereferencing.

+UPIntrRefMut in os::sync::up - Rust
pub struct UPIntrRefMut<'a, T>(Option<RefMut<'a, T>>);

Tuple Fields

0: Option<RefMut<'a, T>>

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Mutably dereferences the value.

-

Executes the destructor for this type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Mutably dereferences the value.

+

Executes the destructor for this type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/sync/up/struct.UPSafeCellRaw.html b/ch9-dev/os/sync/up/struct.UPSafeCellRaw.html index e6f6d171..f53ef2c6 100644 --- a/ch9-dev/os/sync/up/struct.UPSafeCellRaw.html +++ b/ch9-dev/os/sync/up/struct.UPSafeCellRaw.html @@ -1,33 +1,26 @@ -UPSafeCellRaw in os::sync::up - Rust - -
pub struct UPSafeCellRaw<T> {
+UPSafeCellRaw in os::sync::up - Rust
pub struct UPSafeCellRaw<T> {
     inner: UnsafeCell<T>,
-}

Fields

inner: UnsafeCell<T>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

inner: UnsafeCell<T>

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_CLOSE.html b/ch9-dev/os/syscall/constant.SYSCALL_CLOSE.html index e0d288be..71982e73 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_CLOSE.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_CLOSE.html @@ -1,8 +1 @@ -SYSCALL_CLOSE in os::syscall - Rust - -
const SYSCALL_CLOSE: usize = 57;
- \ No newline at end of file +SYSCALL_CLOSE in os::syscall - Rust
const SYSCALL_CLOSE: usize = 57;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html b/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html index a43d1795..4b82d1f9 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_CREATE.html @@ -1,8 +1 @@ -SYSCALL_CONDVAR_CREATE in os::syscall - Rust - -
const SYSCALL_CONDVAR_CREATE: usize = 1030;
- \ No newline at end of file +SYSCALL_CONDVAR_CREATE in os::syscall - Rust
const SYSCALL_CONDVAR_CREATE: usize = 1030;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html b/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html index bd45f526..f8956fd8 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_SIGNAL.html @@ -1,8 +1 @@ -SYSCALL_CONDVAR_SIGNAL in os::syscall - Rust - -
const SYSCALL_CONDVAR_SIGNAL: usize = 1031;
- \ No newline at end of file +SYSCALL_CONDVAR_SIGNAL in os::syscall - Rust
const SYSCALL_CONDVAR_SIGNAL: usize = 1031;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html b/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html index 23bcbc75..a94489cc 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_CONDVAR_WAIT.html @@ -1,8 +1 @@ -SYSCALL_CONDVAR_WAIT in os::syscall - Rust - -
const SYSCALL_CONDVAR_WAIT: usize = 1032;
- \ No newline at end of file +SYSCALL_CONDVAR_WAIT in os::syscall - Rust
const SYSCALL_CONDVAR_WAIT: usize = 1032;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_CREATE_DESKTOP.html b/ch9-dev/os/syscall/constant.SYSCALL_CREATE_DESKTOP.html deleted file mode 100644 index f00d4777..00000000 --- a/ch9-dev/os/syscall/constant.SYSCALL_CREATE_DESKTOP.html +++ /dev/null @@ -1,8 +0,0 @@ -SYSCALL_CREATE_DESKTOP in os::syscall - Rust - -
const SYSCALL_CREATE_DESKTOP: usize = 2000;
- \ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_DUP.html b/ch9-dev/os/syscall/constant.SYSCALL_DUP.html index abb0e748..44810414 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_DUP.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_DUP.html @@ -1,8 +1 @@ -SYSCALL_DUP in os::syscall - Rust - -
const SYSCALL_DUP: usize = 24;
- \ No newline at end of file +SYSCALL_DUP in os::syscall - Rust
const SYSCALL_DUP: usize = 24;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_EXEC.html b/ch9-dev/os/syscall/constant.SYSCALL_EXEC.html index 20ddef91..35dc36ba 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_EXEC.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_EXEC.html @@ -1,8 +1 @@ -SYSCALL_EXEC in os::syscall - Rust - -
const SYSCALL_EXEC: usize = 221;
- \ No newline at end of file +SYSCALL_EXEC in os::syscall - Rust
const SYSCALL_EXEC: usize = 221;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_EXIT.html b/ch9-dev/os/syscall/constant.SYSCALL_EXIT.html index e4a6afb6..482c7d1d 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_EXIT.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_EXIT.html @@ -1,8 +1 @@ -SYSCALL_EXIT in os::syscall - Rust - -
const SYSCALL_EXIT: usize = 93;
- \ No newline at end of file +SYSCALL_EXIT in os::syscall - Rust
const SYSCALL_EXIT: usize = 93;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_FORK.html b/ch9-dev/os/syscall/constant.SYSCALL_FORK.html index af17f5eb..726ca8e3 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_FORK.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_FORK.html @@ -1,8 +1 @@ -SYSCALL_FORK in os::syscall - Rust - -
const SYSCALL_FORK: usize = 220;
- \ No newline at end of file +SYSCALL_FORK in os::syscall - Rust
const SYSCALL_FORK: usize = 220;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_GETPID.html b/ch9-dev/os/syscall/constant.SYSCALL_GETPID.html index 7792b40b..0df958d2 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_GETPID.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_GETPID.html @@ -1,8 +1 @@ -SYSCALL_GETPID in os::syscall - Rust - -
const SYSCALL_GETPID: usize = 172;
- \ No newline at end of file +SYSCALL_GETPID in os::syscall - Rust
const SYSCALL_GETPID: usize = 172;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_GETTID.html b/ch9-dev/os/syscall/constant.SYSCALL_GETTID.html index 5c8c3f51..f832c884 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_GETTID.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_GETTID.html @@ -1,8 +1 @@ -SYSCALL_GETTID in os::syscall - Rust - -
const SYSCALL_GETTID: usize = 1001;
- \ No newline at end of file +SYSCALL_GETTID in os::syscall - Rust
const SYSCALL_GETTID: usize = 1001;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_GET_TIME.html b/ch9-dev/os/syscall/constant.SYSCALL_GET_TIME.html index 7ef5f3a5..580e8032 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_GET_TIME.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_GET_TIME.html @@ -1,8 +1 @@ -SYSCALL_GET_TIME in os::syscall - Rust - -
const SYSCALL_GET_TIME: usize = 169;
- \ No newline at end of file +SYSCALL_GET_TIME in os::syscall - Rust
const SYSCALL_GET_TIME: usize = 169;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_KILL.html b/ch9-dev/os/syscall/constant.SYSCALL_KILL.html index ebe9dcd8..42154400 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_KILL.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_KILL.html @@ -1,8 +1 @@ -SYSCALL_KILL in os::syscall - Rust - -
const SYSCALL_KILL: usize = 129;
- \ No newline at end of file +SYSCALL_KILL in os::syscall - Rust
const SYSCALL_KILL: usize = 129;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_CREATE.html b/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_CREATE.html index 5839dacd..87e29d2c 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_CREATE.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_CREATE.html @@ -1,8 +1 @@ -SYSCALL_MUTEX_CREATE in os::syscall - Rust - -
const SYSCALL_MUTEX_CREATE: usize = 1010;
- \ No newline at end of file +SYSCALL_MUTEX_CREATE in os::syscall - Rust
const SYSCALL_MUTEX_CREATE: usize = 1010;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_LOCK.html b/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_LOCK.html index 5f5373a7..a4bda549 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_LOCK.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_LOCK.html @@ -1,8 +1 @@ -SYSCALL_MUTEX_LOCK in os::syscall - Rust - -
const SYSCALL_MUTEX_LOCK: usize = 1011;
- \ No newline at end of file +SYSCALL_MUTEX_LOCK in os::syscall - Rust
const SYSCALL_MUTEX_LOCK: usize = 1011;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html b/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html index f209704a..e2856686 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_MUTEX_UNLOCK.html @@ -1,8 +1 @@ -SYSCALL_MUTEX_UNLOCK in os::syscall - Rust - -
const SYSCALL_MUTEX_UNLOCK: usize = 1012;
- \ No newline at end of file +SYSCALL_MUTEX_UNLOCK in os::syscall - Rust
const SYSCALL_MUTEX_UNLOCK: usize = 1012;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_OPEN.html b/ch9-dev/os/syscall/constant.SYSCALL_OPEN.html index e10e6a42..7292a72e 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_OPEN.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_OPEN.html @@ -1,8 +1 @@ -SYSCALL_OPEN in os::syscall - Rust - -
const SYSCALL_OPEN: usize = 56;
- \ No newline at end of file +SYSCALL_OPEN in os::syscall - Rust
const SYSCALL_OPEN: usize = 56;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_PIPE.html b/ch9-dev/os/syscall/constant.SYSCALL_PIPE.html index 414cc34f..eed559de 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_PIPE.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_PIPE.html @@ -1,8 +1 @@ -SYSCALL_PIPE in os::syscall - Rust - -
const SYSCALL_PIPE: usize = 59;
- \ No newline at end of file +SYSCALL_PIPE in os::syscall - Rust
const SYSCALL_PIPE: usize = 59;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_READ.html b/ch9-dev/os/syscall/constant.SYSCALL_READ.html index cf445b3b..820a3d9a 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_READ.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_READ.html @@ -1,8 +1 @@ -SYSCALL_READ in os::syscall - Rust - -
const SYSCALL_READ: usize = 63;
- \ No newline at end of file +SYSCALL_READ in os::syscall - Rust
const SYSCALL_READ: usize = 63;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html b/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html index 90be423c..9f40f264 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_CREATE.html @@ -1,8 +1 @@ -SYSCALL_SEMAPHORE_CREATE in os::syscall - Rust - -
const SYSCALL_SEMAPHORE_CREATE: usize = 1020;
- \ No newline at end of file +SYSCALL_SEMAPHORE_CREATE in os::syscall - Rust
const SYSCALL_SEMAPHORE_CREATE: usize = 1020;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html b/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html index 9c178b9c..15ca1e88 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_DOWN.html @@ -1,8 +1 @@ -SYSCALL_SEMAPHORE_DOWN in os::syscall - Rust - -
const SYSCALL_SEMAPHORE_DOWN: usize = 1022;
- \ No newline at end of file +SYSCALL_SEMAPHORE_DOWN in os::syscall - Rust
const SYSCALL_SEMAPHORE_DOWN: usize = 1022;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html b/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html index be10fecd..930b6efe 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_SEMAPHORE_UP.html @@ -1,8 +1 @@ -SYSCALL_SEMAPHORE_UP in os::syscall - Rust - -
const SYSCALL_SEMAPHORE_UP: usize = 1021;
- \ No newline at end of file +SYSCALL_SEMAPHORE_UP in os::syscall - Rust
const SYSCALL_SEMAPHORE_UP: usize = 1021;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_SLEEP.html b/ch9-dev/os/syscall/constant.SYSCALL_SLEEP.html index 8f1480da..305886d9 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_SLEEP.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_SLEEP.html @@ -1,8 +1 @@ -SYSCALL_SLEEP in os::syscall - Rust - -
const SYSCALL_SLEEP: usize = 101;
- \ No newline at end of file +SYSCALL_SLEEP in os::syscall - Rust
const SYSCALL_SLEEP: usize = 101;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_THREAD_CREATE.html b/ch9-dev/os/syscall/constant.SYSCALL_THREAD_CREATE.html index f873b513..8ee32bc5 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_THREAD_CREATE.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_THREAD_CREATE.html @@ -1,8 +1 @@ -SYSCALL_THREAD_CREATE in os::syscall - Rust - -
const SYSCALL_THREAD_CREATE: usize = 1000;
- \ No newline at end of file +SYSCALL_THREAD_CREATE in os::syscall - Rust
const SYSCALL_THREAD_CREATE: usize = 1000;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_WAITPID.html b/ch9-dev/os/syscall/constant.SYSCALL_WAITPID.html index e4746848..09d7b21a 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_WAITPID.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_WAITPID.html @@ -1,8 +1 @@ -SYSCALL_WAITPID in os::syscall - Rust - -
const SYSCALL_WAITPID: usize = 260;
- \ No newline at end of file +SYSCALL_WAITPID in os::syscall - Rust
const SYSCALL_WAITPID: usize = 260;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_WAITTID.html b/ch9-dev/os/syscall/constant.SYSCALL_WAITTID.html index a6c07f23..b41c380c 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_WAITTID.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_WAITTID.html @@ -1,8 +1 @@ -SYSCALL_WAITTID in os::syscall - Rust - -
const SYSCALL_WAITTID: usize = 1002;
- \ No newline at end of file +SYSCALL_WAITTID in os::syscall - Rust
const SYSCALL_WAITTID: usize = 1002;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_WRITE.html b/ch9-dev/os/syscall/constant.SYSCALL_WRITE.html index ffce29df..a143c171 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_WRITE.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_WRITE.html @@ -1,8 +1 @@ -SYSCALL_WRITE in os::syscall - Rust - -
const SYSCALL_WRITE: usize = 64;
- \ No newline at end of file +SYSCALL_WRITE in os::syscall - Rust
const SYSCALL_WRITE: usize = 64;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/constant.SYSCALL_YIELD.html b/ch9-dev/os/syscall/constant.SYSCALL_YIELD.html index 0ab0ec57..c6ea904b 100644 --- a/ch9-dev/os/syscall/constant.SYSCALL_YIELD.html +++ b/ch9-dev/os/syscall/constant.SYSCALL_YIELD.html @@ -1,8 +1 @@ -SYSCALL_YIELD in os::syscall - Rust - -
const SYSCALL_YIELD: usize = 124;
- \ No newline at end of file +SYSCALL_YIELD in os::syscall - Rust
const SYSCALL_YIELD: usize = 124;
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fn.syscall.html b/ch9-dev/os/syscall/fn.syscall.html index 09a121d9..1df9d1d2 100644 --- a/ch9-dev/os/syscall/fn.syscall.html +++ b/ch9-dev/os/syscall/fn.syscall.html @@ -1,8 +1 @@ -syscall in os::syscall - Rust - -
-

Function os::syscall::syscall

source · []
pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize
- \ No newline at end of file +syscall in os::syscall - Rust
pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fs/fn.sys_close.html b/ch9-dev/os/syscall/fs/fn.sys_close.html index 3e3471a6..d50436e6 100644 --- a/ch9-dev/os/syscall/fs/fn.sys_close.html +++ b/ch9-dev/os/syscall/fs/fn.sys_close.html @@ -1,8 +1 @@ -sys_close in os::syscall::fs - Rust - -
-

Function os::syscall::fs::sys_close

source · []
pub fn sys_close(fd: usize) -> isize
- \ No newline at end of file +sys_close in os::syscall::fs - Rust
pub fn sys_close(fd: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fs/fn.sys_dup.html b/ch9-dev/os/syscall/fs/fn.sys_dup.html index 4e4ac120..a827e37f 100644 --- a/ch9-dev/os/syscall/fs/fn.sys_dup.html +++ b/ch9-dev/os/syscall/fs/fn.sys_dup.html @@ -1,8 +1 @@ -sys_dup in os::syscall::fs - Rust - -
-

Function os::syscall::fs::sys_dup

source · []
pub fn sys_dup(fd: usize) -> isize
- \ No newline at end of file +sys_dup in os::syscall::fs - Rust
pub fn sys_dup(fd: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fs/fn.sys_open.html b/ch9-dev/os/syscall/fs/fn.sys_open.html index 34f41857..d42090eb 100644 --- a/ch9-dev/os/syscall/fs/fn.sys_open.html +++ b/ch9-dev/os/syscall/fs/fn.sys_open.html @@ -1,8 +1 @@ -sys_open in os::syscall::fs - Rust - -
-

Function os::syscall::fs::sys_open

source · []
pub fn sys_open(path: *const u8, flags: u32) -> isize
- \ No newline at end of file +sys_open in os::syscall::fs - Rust
pub fn sys_open(path: *const u8, flags: u32) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fs/fn.sys_pipe.html b/ch9-dev/os/syscall/fs/fn.sys_pipe.html index 84cd0af0..1ef5ea2d 100644 --- a/ch9-dev/os/syscall/fs/fn.sys_pipe.html +++ b/ch9-dev/os/syscall/fs/fn.sys_pipe.html @@ -1,8 +1 @@ -sys_pipe in os::syscall::fs - Rust - -
-

Function os::syscall::fs::sys_pipe

source · []
pub fn sys_pipe(pipe: *mut usize) -> isize
- \ No newline at end of file +sys_pipe in os::syscall::fs - Rust
pub fn sys_pipe(pipe: *mut usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fs/fn.sys_read.html b/ch9-dev/os/syscall/fs/fn.sys_read.html index 17ff86fd..bf9eedc5 100644 --- a/ch9-dev/os/syscall/fs/fn.sys_read.html +++ b/ch9-dev/os/syscall/fs/fn.sys_read.html @@ -1,8 +1 @@ -sys_read in os::syscall::fs - Rust - -
-

Function os::syscall::fs::sys_read

source · []
pub fn sys_read(fd: usize, buf: *const u8, len: usize) -> isize
- \ No newline at end of file +sys_read in os::syscall::fs - Rust
pub fn sys_read(fd: usize, buf: *const u8, len: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fs/fn.sys_write.html b/ch9-dev/os/syscall/fs/fn.sys_write.html index 961b7436..47ea4762 100644 --- a/ch9-dev/os/syscall/fs/fn.sys_write.html +++ b/ch9-dev/os/syscall/fs/fn.sys_write.html @@ -1,8 +1 @@ -sys_write in os::syscall::fs - Rust - -
-

Function os::syscall::fs::sys_write

source · []
pub fn sys_write(fd: usize, buf: *const u8, len: usize) -> isize
- \ No newline at end of file +sys_write in os::syscall::fs - Rust
pub fn sys_write(fd: usize, buf: *const u8, len: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fs/index.html b/ch9-dev/os/syscall/fs/index.html index a7fbc7df..8ef27c25 100644 --- a/ch9-dev/os/syscall/fs/index.html +++ b/ch9-dev/os/syscall/fs/index.html @@ -1,9 +1 @@ -os::syscall::fs - Rust - -
- \ No newline at end of file +os::syscall::fs - Rust
\ No newline at end of file diff --git a/ch9-dev/os/syscall/fs/sidebar-items.js b/ch9-dev/os/syscall/fs/sidebar-items.js index ec5d581d..6c15f91e 100644 --- a/ch9-dev/os/syscall/fs/sidebar-items.js +++ b/ch9-dev/os/syscall/fs/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["sys_close",""],["sys_dup",""],["sys_open",""],["sys_pipe",""],["sys_read",""],["sys_write",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["sys_close",""],["sys_dup",""],["sys_open",""],["sys_pipe",""],["sys_read",""],["sys_write",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/syscall/gui/fn.create_desktop.html b/ch9-dev/os/syscall/gui/fn.create_desktop.html deleted file mode 100644 index 64165729..00000000 --- a/ch9-dev/os/syscall/gui/fn.create_desktop.html +++ /dev/null @@ -1,8 +0,0 @@ -create_desktop in os::syscall::gui - Rust - -
pub fn create_desktop() -> isize
- \ No newline at end of file diff --git a/ch9-dev/os/syscall/gui/fn.create_terminal.html b/ch9-dev/os/syscall/gui/fn.create_terminal.html deleted file mode 100644 index 465981ce..00000000 --- a/ch9-dev/os/syscall/gui/fn.create_terminal.html +++ /dev/null @@ -1,8 +0,0 @@ -create_terminal in os::syscall::gui - Rust - -
pub fn create_terminal()
- \ No newline at end of file diff --git a/ch9-dev/os/syscall/gui/index.html b/ch9-dev/os/syscall/gui/index.html deleted file mode 100644 index e3706f9e..00000000 --- a/ch9-dev/os/syscall/gui/index.html +++ /dev/null @@ -1,11 +0,0 @@ -os::syscall::gui - Rust - -
- \ No newline at end of file diff --git a/ch9-dev/os/syscall/gui/sidebar-items.js b/ch9-dev/os/syscall/gui/sidebar-items.js deleted file mode 100644 index 0c16a0c8..00000000 --- a/ch9-dev/os/syscall/gui/sidebar-items.js +++ /dev/null @@ -1 +0,0 @@ -initSidebarItems({"fn":[["create_desktop",""],["create_terminal",""]],"static":[["DT",""]],"struct":[["DESKTOP",""],["PAD",""]]}); \ No newline at end of file diff --git a/ch9-dev/os/syscall/gui/static.DT.html b/ch9-dev/os/syscall/gui/static.DT.html deleted file mode 100644 index de6e7e2f..00000000 --- a/ch9-dev/os/syscall/gui/static.DT.html +++ /dev/null @@ -1,8 +0,0 @@ -DT in os::syscall::gui - Rust - -
-

Static os::syscall::gui::DT

source · []
static DT: &[u8]
- \ No newline at end of file diff --git a/ch9-dev/os/syscall/gui/struct.DESKTOP.html b/ch9-dev/os/syscall/gui/struct.DESKTOP.html deleted file mode 100644 index 539e885a..00000000 --- a/ch9-dev/os/syscall/gui/struct.DESKTOP.html +++ /dev/null @@ -1,36 +0,0 @@ -DESKTOP in os::syscall::gui - Rust - -
-

Struct os::syscall::gui::DESKTOP

source · []
pub struct DESKTOP {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Arc<dyn Component>>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/syscall/gui/struct.PAD.html b/ch9-dev/os/syscall/gui/struct.PAD.html deleted file mode 100644 index 4f593c75..00000000 --- a/ch9-dev/os/syscall/gui/struct.PAD.html +++ /dev/null @@ -1,36 +0,0 @@ -PAD in os::syscall::gui - Rust - -
-

Struct os::syscall::gui::PAD

source · []
pub struct PAD {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Option<Arc<Terminal>>>>

Panic if the data has been borrowed.

-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

-

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file diff --git a/ch9-dev/os/syscall/index.html b/ch9-dev/os/syscall/index.html index 2ce4eec7..206f1c79 100644 --- a/ch9-dev/os/syscall/index.html +++ b/ch9-dev/os/syscall/index.html @@ -1,12 +1 @@ -os::syscall - Rust - -
- \ No newline at end of file +os::syscall - Rust
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/fn.sys_exec.html b/ch9-dev/os/syscall/process/fn.sys_exec.html index be527834..9fbc67be 100644 --- a/ch9-dev/os/syscall/process/fn.sys_exec.html +++ b/ch9-dev/os/syscall/process/fn.sys_exec.html @@ -1,8 +1 @@ -sys_exec in os::syscall::process - Rust - -
pub fn sys_exec(path: *const u8, args: *const usize) -> isize
- \ No newline at end of file +sys_exec in os::syscall::process - Rust
pub fn sys_exec(path: *const u8, args: *const usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/fn.sys_exit.html b/ch9-dev/os/syscall/process/fn.sys_exit.html index 52320f5f..2fb3783a 100644 --- a/ch9-dev/os/syscall/process/fn.sys_exit.html +++ b/ch9-dev/os/syscall/process/fn.sys_exit.html @@ -1,8 +1 @@ -sys_exit in os::syscall::process - Rust - -
pub fn sys_exit(exit_code: i32) -> !
- \ No newline at end of file +sys_exit in os::syscall::process - Rust
pub fn sys_exit(exit_code: i32) -> !
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/fn.sys_fork.html b/ch9-dev/os/syscall/process/fn.sys_fork.html index 330a5cc1..69c79947 100644 --- a/ch9-dev/os/syscall/process/fn.sys_fork.html +++ b/ch9-dev/os/syscall/process/fn.sys_fork.html @@ -1,8 +1 @@ -sys_fork in os::syscall::process - Rust - -
pub fn sys_fork() -> isize
- \ No newline at end of file +sys_fork in os::syscall::process - Rust
pub fn sys_fork() -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/fn.sys_get_time.html b/ch9-dev/os/syscall/process/fn.sys_get_time.html index 2803d48f..64d6d421 100644 --- a/ch9-dev/os/syscall/process/fn.sys_get_time.html +++ b/ch9-dev/os/syscall/process/fn.sys_get_time.html @@ -1,8 +1 @@ -sys_get_time in os::syscall::process - Rust - -
pub fn sys_get_time() -> isize
- \ No newline at end of file +sys_get_time in os::syscall::process - Rust
pub fn sys_get_time() -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/fn.sys_getpid.html b/ch9-dev/os/syscall/process/fn.sys_getpid.html index 4fc5f586..d0117492 100644 --- a/ch9-dev/os/syscall/process/fn.sys_getpid.html +++ b/ch9-dev/os/syscall/process/fn.sys_getpid.html @@ -1,8 +1 @@ -sys_getpid in os::syscall::process - Rust - -
pub fn sys_getpid() -> isize
- \ No newline at end of file +sys_getpid in os::syscall::process - Rust
pub fn sys_getpid() -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/fn.sys_kill.html b/ch9-dev/os/syscall/process/fn.sys_kill.html index 50f8c820..a4a096e2 100644 --- a/ch9-dev/os/syscall/process/fn.sys_kill.html +++ b/ch9-dev/os/syscall/process/fn.sys_kill.html @@ -1,8 +1 @@ -sys_kill in os::syscall::process - Rust - -
pub fn sys_kill(pid: usize, signal: u32) -> isize
- \ No newline at end of file +sys_kill in os::syscall::process - Rust
pub fn sys_kill(pid: usize, signal: u32) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/fn.sys_waitpid.html b/ch9-dev/os/syscall/process/fn.sys_waitpid.html index 237f1475..fa2f4357 100644 --- a/ch9-dev/os/syscall/process/fn.sys_waitpid.html +++ b/ch9-dev/os/syscall/process/fn.sys_waitpid.html @@ -1,10 +1,3 @@ -sys_waitpid in os::syscall::process - Rust - -
pub fn sys_waitpid(pid: isize, exit_code_ptr: *mut i32) -> isize
Expand description

If there is not a child process whose pid is same as given, return -1. +sys_waitpid in os::syscall::process - Rust

pub fn sys_waitpid(pid: isize, exit_code_ptr: *mut i32) -> isize
Expand description

If there is not a child process whose pid is same as given, return -1. Else if there is a child process but it is still running, return -2.

-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/fn.sys_yield.html b/ch9-dev/os/syscall/process/fn.sys_yield.html index 149022eb..f7b15e56 100644 --- a/ch9-dev/os/syscall/process/fn.sys_yield.html +++ b/ch9-dev/os/syscall/process/fn.sys_yield.html @@ -1,8 +1 @@ -sys_yield in os::syscall::process - Rust - -
pub fn sys_yield() -> isize
- \ No newline at end of file +sys_yield in os::syscall::process - Rust
pub fn sys_yield() -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/index.html b/ch9-dev/os/syscall/process/index.html index 91665be0..1595a357 100644 --- a/ch9-dev/os/syscall/process/index.html +++ b/ch9-dev/os/syscall/process/index.html @@ -1,11 +1,3 @@ -os::syscall::process - Rust - -
-

Module os::syscall::process

source · []

Functions

-

If there is not a child process whose pid is same as given, return -1. +os::syscall::process - Rust

Functions

If there is not a child process whose pid is same as given, return -1. Else if there is a child process but it is still running, return -2.

-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/os/syscall/process/sidebar-items.js b/ch9-dev/os/syscall/process/sidebar-items.js index df2652b3..dc9db2de 100644 --- a/ch9-dev/os/syscall/process/sidebar-items.js +++ b/ch9-dev/os/syscall/process/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["sys_exec",""],["sys_exit",""],["sys_fork",""],["sys_get_time",""],["sys_getpid",""],["sys_kill",""],["sys_waitpid","If there is not a child process whose pid is same as given, return -1. Else if there is a child process but it is still running, return -2."],["sys_yield",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["sys_exec",""],["sys_exit",""],["sys_fork",""],["sys_get_time",""],["sys_getpid",""],["sys_kill",""],["sys_waitpid","If there is not a child process whose pid is same as given, return -1. Else if there is a child process but it is still running, return -2."],["sys_yield",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/syscall/sidebar-items.js b/ch9-dev/os/syscall/sidebar-items.js index c3461ac3..87516f6c 100644 --- a/ch9-dev/os/syscall/sidebar-items.js +++ b/ch9-dev/os/syscall/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["SYSCALL_CLOSE",""],["SYSCALL_CONDVAR_CREATE",""],["SYSCALL_CONDVAR_SIGNAL",""],["SYSCALL_CONDVAR_WAIT",""],["SYSCALL_CREATE_DESKTOP",""],["SYSCALL_DUP",""],["SYSCALL_EXEC",""],["SYSCALL_EXIT",""],["SYSCALL_FORK",""],["SYSCALL_GETPID",""],["SYSCALL_GETTID",""],["SYSCALL_GET_TIME",""],["SYSCALL_KILL",""],["SYSCALL_MUTEX_CREATE",""],["SYSCALL_MUTEX_LOCK",""],["SYSCALL_MUTEX_UNLOCK",""],["SYSCALL_OPEN",""],["SYSCALL_PIPE",""],["SYSCALL_READ",""],["SYSCALL_SEMAPHORE_CREATE",""],["SYSCALL_SEMAPHORE_DOWN",""],["SYSCALL_SEMAPHORE_UP",""],["SYSCALL_SLEEP",""],["SYSCALL_THREAD_CREATE",""],["SYSCALL_WAITPID",""],["SYSCALL_WAITTID",""],["SYSCALL_WRITE",""],["SYSCALL_YIELD",""]],"fn":[["syscall",""]],"mod":[["fs",""],["gui",""],["process",""],["sync",""],["thread",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["SYSCALL_CLOSE",""],["SYSCALL_CONDVAR_CREATE",""],["SYSCALL_CONDVAR_SIGNAL",""],["SYSCALL_CONDVAR_WAIT",""],["SYSCALL_DUP",""],["SYSCALL_EXEC",""],["SYSCALL_EXIT",""],["SYSCALL_FORK",""],["SYSCALL_GETPID",""],["SYSCALL_GETTID",""],["SYSCALL_GET_TIME",""],["SYSCALL_KILL",""],["SYSCALL_MUTEX_CREATE",""],["SYSCALL_MUTEX_LOCK",""],["SYSCALL_MUTEX_UNLOCK",""],["SYSCALL_OPEN",""],["SYSCALL_PIPE",""],["SYSCALL_READ",""],["SYSCALL_SEMAPHORE_CREATE",""],["SYSCALL_SEMAPHORE_DOWN",""],["SYSCALL_SEMAPHORE_UP",""],["SYSCALL_SLEEP",""],["SYSCALL_THREAD_CREATE",""],["SYSCALL_WAITPID",""],["SYSCALL_WAITTID",""],["SYSCALL_WRITE",""],["SYSCALL_YIELD",""]],"fn":[["syscall",""]],"mod":[["fs",""],["process",""],["sync",""],["thread",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_condvar_create.html b/ch9-dev/os/syscall/sync/fn.sys_condvar_create.html index 86bcab39..28ef966c 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_condvar_create.html +++ b/ch9-dev/os/syscall/sync/fn.sys_condvar_create.html @@ -1,8 +1 @@ -sys_condvar_create in os::syscall::sync - Rust - -
pub fn sys_condvar_create(_arg: usize) -> isize
- \ No newline at end of file +sys_condvar_create in os::syscall::sync - Rust
pub fn sys_condvar_create(_arg: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_condvar_signal.html b/ch9-dev/os/syscall/sync/fn.sys_condvar_signal.html index 02a16101..66feaf3b 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_condvar_signal.html +++ b/ch9-dev/os/syscall/sync/fn.sys_condvar_signal.html @@ -1,8 +1 @@ -sys_condvar_signal in os::syscall::sync - Rust - -
pub fn sys_condvar_signal(condvar_id: usize) -> isize
- \ No newline at end of file +sys_condvar_signal in os::syscall::sync - Rust
pub fn sys_condvar_signal(condvar_id: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_condvar_wait.html b/ch9-dev/os/syscall/sync/fn.sys_condvar_wait.html index 3330d0df..cdcc882d 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_condvar_wait.html +++ b/ch9-dev/os/syscall/sync/fn.sys_condvar_wait.html @@ -1,8 +1 @@ -sys_condvar_wait in os::syscall::sync - Rust - -
pub fn sys_condvar_wait(condvar_id: usize, mutex_id: usize) -> isize
- \ No newline at end of file +sys_condvar_wait in os::syscall::sync - Rust
pub fn sys_condvar_wait(condvar_id: usize, mutex_id: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_mutex_create.html b/ch9-dev/os/syscall/sync/fn.sys_mutex_create.html index 5a136428..5f3511d1 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_mutex_create.html +++ b/ch9-dev/os/syscall/sync/fn.sys_mutex_create.html @@ -1,8 +1 @@ -sys_mutex_create in os::syscall::sync - Rust - -
pub fn sys_mutex_create(blocking: bool) -> isize
- \ No newline at end of file +sys_mutex_create in os::syscall::sync - Rust
pub fn sys_mutex_create(blocking: bool) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_mutex_lock.html b/ch9-dev/os/syscall/sync/fn.sys_mutex_lock.html index b1bdd2df..0326bfcd 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_mutex_lock.html +++ b/ch9-dev/os/syscall/sync/fn.sys_mutex_lock.html @@ -1,8 +1 @@ -sys_mutex_lock in os::syscall::sync - Rust - -
pub fn sys_mutex_lock(mutex_id: usize) -> isize
- \ No newline at end of file +sys_mutex_lock in os::syscall::sync - Rust
pub fn sys_mutex_lock(mutex_id: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_mutex_unlock.html b/ch9-dev/os/syscall/sync/fn.sys_mutex_unlock.html index 7f70a93a..ccf1ed10 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_mutex_unlock.html +++ b/ch9-dev/os/syscall/sync/fn.sys_mutex_unlock.html @@ -1,8 +1 @@ -sys_mutex_unlock in os::syscall::sync - Rust - -
pub fn sys_mutex_unlock(mutex_id: usize) -> isize
- \ No newline at end of file +sys_mutex_unlock in os::syscall::sync - Rust
pub fn sys_mutex_unlock(mutex_id: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_semaphore_create.html b/ch9-dev/os/syscall/sync/fn.sys_semaphore_create.html index bcfc382b..cb9eeb36 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_semaphore_create.html +++ b/ch9-dev/os/syscall/sync/fn.sys_semaphore_create.html @@ -1,8 +1 @@ -sys_semaphore_create in os::syscall::sync - Rust - -
pub fn sys_semaphore_create(res_count: usize) -> isize
- \ No newline at end of file +sys_semaphore_create in os::syscall::sync - Rust
pub fn sys_semaphore_create(res_count: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_semaphore_down.html b/ch9-dev/os/syscall/sync/fn.sys_semaphore_down.html index 9e403e41..0bfdab55 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_semaphore_down.html +++ b/ch9-dev/os/syscall/sync/fn.sys_semaphore_down.html @@ -1,8 +1 @@ -sys_semaphore_down in os::syscall::sync - Rust - -
pub fn sys_semaphore_down(sem_id: usize) -> isize
- \ No newline at end of file +sys_semaphore_down in os::syscall::sync - Rust
pub fn sys_semaphore_down(sem_id: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_semaphore_up.html b/ch9-dev/os/syscall/sync/fn.sys_semaphore_up.html index 645d3eca..5980490f 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_semaphore_up.html +++ b/ch9-dev/os/syscall/sync/fn.sys_semaphore_up.html @@ -1,8 +1 @@ -sys_semaphore_up in os::syscall::sync - Rust - -
pub fn sys_semaphore_up(sem_id: usize) -> isize
- \ No newline at end of file +sys_semaphore_up in os::syscall::sync - Rust
pub fn sys_semaphore_up(sem_id: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/fn.sys_sleep.html b/ch9-dev/os/syscall/sync/fn.sys_sleep.html index 7f3a339e..9c477e60 100644 --- a/ch9-dev/os/syscall/sync/fn.sys_sleep.html +++ b/ch9-dev/os/syscall/sync/fn.sys_sleep.html @@ -1,8 +1 @@ -sys_sleep in os::syscall::sync - Rust - -
-

Function os::syscall::sync::sys_sleep

source · []
pub fn sys_sleep(ms: usize) -> isize
- \ No newline at end of file +sys_sleep in os::syscall::sync - Rust
pub fn sys_sleep(ms: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/index.html b/ch9-dev/os/syscall/sync/index.html index 153de578..4254e121 100644 --- a/ch9-dev/os/syscall/sync/index.html +++ b/ch9-dev/os/syscall/sync/index.html @@ -1,9 +1 @@ -os::syscall::sync - Rust - -
- \ No newline at end of file +os::syscall::sync - Rust
\ No newline at end of file diff --git a/ch9-dev/os/syscall/sync/sidebar-items.js b/ch9-dev/os/syscall/sync/sidebar-items.js index 40eb130e..61767564 100644 --- a/ch9-dev/os/syscall/sync/sidebar-items.js +++ b/ch9-dev/os/syscall/sync/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["sys_condvar_create",""],["sys_condvar_signal",""],["sys_condvar_wait",""],["sys_mutex_create",""],["sys_mutex_lock",""],["sys_mutex_unlock",""],["sys_semaphore_create",""],["sys_semaphore_down",""],["sys_semaphore_up",""],["sys_sleep",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["sys_condvar_create",""],["sys_condvar_signal",""],["sys_condvar_wait",""],["sys_mutex_create",""],["sys_mutex_lock",""],["sys_mutex_unlock",""],["sys_semaphore_create",""],["sys_semaphore_down",""],["sys_semaphore_up",""],["sys_sleep",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/syscall/thread/fn.sys_gettid.html b/ch9-dev/os/syscall/thread/fn.sys_gettid.html index c00cd702..f0ff4922 100644 --- a/ch9-dev/os/syscall/thread/fn.sys_gettid.html +++ b/ch9-dev/os/syscall/thread/fn.sys_gettid.html @@ -1,8 +1 @@ -sys_gettid in os::syscall::thread - Rust - -
pub fn sys_gettid() -> isize
- \ No newline at end of file +sys_gettid in os::syscall::thread - Rust
pub fn sys_gettid() -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/thread/fn.sys_thread_create.html b/ch9-dev/os/syscall/thread/fn.sys_thread_create.html index 1de9c924..08d04a7f 100644 --- a/ch9-dev/os/syscall/thread/fn.sys_thread_create.html +++ b/ch9-dev/os/syscall/thread/fn.sys_thread_create.html @@ -1,8 +1 @@ -sys_thread_create in os::syscall::thread - Rust - -
pub fn sys_thread_create(entry: usize, arg: usize) -> isize
- \ No newline at end of file +sys_thread_create in os::syscall::thread - Rust
pub fn sys_thread_create(entry: usize, arg: usize) -> isize
\ No newline at end of file diff --git a/ch9-dev/os/syscall/thread/fn.sys_waittid.html b/ch9-dev/os/syscall/thread/fn.sys_waittid.html index 489c2e9b..ed833086 100644 --- a/ch9-dev/os/syscall/thread/fn.sys_waittid.html +++ b/ch9-dev/os/syscall/thread/fn.sys_waittid.html @@ -1,11 +1,4 @@ -sys_waittid in os::syscall::thread - Rust - -
pub fn sys_waittid(tid: usize) -> i32
Expand description

thread does not exist, return -1 +sys_waittid in os::syscall::thread - Rust

pub fn sys_waittid(tid: usize) -> i32
Expand description

thread does not exist, return -1 thread has not exited yet, return -2 otherwise, return thread’s exit code

-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/os/syscall/thread/index.html b/ch9-dev/os/syscall/thread/index.html index ae2d05e2..8b5500ea 100644 --- a/ch9-dev/os/syscall/thread/index.html +++ b/ch9-dev/os/syscall/thread/index.html @@ -1,12 +1,4 @@ -os::syscall::thread - Rust - -
-

Module os::syscall::thread

source · []

Functions

-

thread does not exist, return -1 +os::syscall::thread - Rust

Functions

thread does not exist, return -1 thread has not exited yet, return -2 otherwise, return thread’s exit code

-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/os/syscall/thread/sidebar-items.js b/ch9-dev/os/syscall/thread/sidebar-items.js index 0f0b3557..2f4d8706 100644 --- a/ch9-dev/os/syscall/thread/sidebar-items.js +++ b/ch9-dev/os/syscall/thread/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["sys_gettid",""],["sys_thread_create",""],["sys_waittid","thread does not exist, return -1 thread has not exited yet, return -2 otherwise, return thread’s exit code"]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["sys_gettid",""],["sys_thread_create",""],["sys_waittid","thread does not exist, return -1 thread has not exited yet, return -2 otherwise, return thread’s exit code"]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/context/index.html b/ch9-dev/os/task/context/index.html index 74b2c655..b89644c0 100644 --- a/ch9-dev/os/task/context/index.html +++ b/ch9-dev/os/task/context/index.html @@ -1,9 +1 @@ -os::task::context - Rust - -
- \ No newline at end of file +os::task::context - Rust
\ No newline at end of file diff --git a/ch9-dev/os/task/context/sidebar-items.js b/ch9-dev/os/task/context/sidebar-items.js index 86a68385..2833ef70 100644 --- a/ch9-dev/os/task/context/sidebar-items.js +++ b/ch9-dev/os/task/context/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["TaskContext",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["TaskContext",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/context/struct.TaskContext.html b/ch9-dev/os/task/context/struct.TaskContext.html index ef098497..cac98353 100644 --- a/ch9-dev/os/task/context/struct.TaskContext.html +++ b/ch9-dev/os/task/context/struct.TaskContext.html @@ -1,35 +1,28 @@ -TaskContext in os::task::context - Rust - -
#[repr(C)]
pub struct TaskContext { +TaskContext in os::task::context - Rust
#[repr(C)]
pub struct TaskContext { ra: usize, sp: usize, s: [usize; 12], -}

Fields

ra: usizesp: usizes: [usize; 12]

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

ra: usizesp: usizes: [usize; 12]

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/fn.add_initproc.html b/ch9-dev/os/task/fn.add_initproc.html index 13d7b7ca..50207671 100644 --- a/ch9-dev/os/task/fn.add_initproc.html +++ b/ch9-dev/os/task/fn.add_initproc.html @@ -1,8 +1 @@ -add_initproc in os::task - Rust - -
-

Function os::task::add_initproc

source · []
pub fn add_initproc()
- \ No newline at end of file +add_initproc in os::task - Rust
pub fn add_initproc()
\ No newline at end of file diff --git a/ch9-dev/os/task/fn.block_current_and_run_next.html b/ch9-dev/os/task/fn.block_current_and_run_next.html index 8a799dcc..bcb697ff 100644 --- a/ch9-dev/os/task/fn.block_current_and_run_next.html +++ b/ch9-dev/os/task/fn.block_current_and_run_next.html @@ -1,8 +1 @@ -block_current_and_run_next in os::task - Rust - -
pub fn block_current_and_run_next()
- \ No newline at end of file +block_current_and_run_next in os::task - Rust
pub fn block_current_and_run_next()
\ No newline at end of file diff --git a/ch9-dev/os/task/fn.block_current_task.html b/ch9-dev/os/task/fn.block_current_task.html index f597b64c..fa9f3fb8 100644 --- a/ch9-dev/os/task/fn.block_current_task.html +++ b/ch9-dev/os/task/fn.block_current_task.html @@ -1,9 +1,2 @@ -block_current_task in os::task - Rust - -
pub fn block_current_task() -> *mut TaskContext
Expand description

This function must be followed by a schedule

-
- \ No newline at end of file +block_current_task in os::task - Rust
pub fn block_current_task() -> *mut TaskContext
Expand description

This function must be followed by a schedule

+
\ No newline at end of file diff --git a/ch9-dev/os/task/fn.check_signals_of_current.html b/ch9-dev/os/task/fn.check_signals_of_current.html index 367ffbcc..1a6827c1 100644 --- a/ch9-dev/os/task/fn.check_signals_of_current.html +++ b/ch9-dev/os/task/fn.check_signals_of_current.html @@ -1,8 +1 @@ -check_signals_of_current in os::task - Rust - -
pub fn check_signals_of_current() -> Option<(i32, &'static str)>
- \ No newline at end of file +check_signals_of_current in os::task - Rust
pub fn check_signals_of_current() -> Option<(i32, &'static str)>
\ No newline at end of file diff --git a/ch9-dev/os/task/fn.current_add_signal.html b/ch9-dev/os/task/fn.current_add_signal.html index b3a11e4d..684b673a 100644 --- a/ch9-dev/os/task/fn.current_add_signal.html +++ b/ch9-dev/os/task/fn.current_add_signal.html @@ -1,8 +1 @@ -current_add_signal in os::task - Rust - -
pub fn current_add_signal(signal: SignalFlags)
- \ No newline at end of file +current_add_signal in os::task - Rust
pub fn current_add_signal(signal: SignalFlags)
\ No newline at end of file diff --git a/ch9-dev/os/task/fn.exit_current_and_run_next.html b/ch9-dev/os/task/fn.exit_current_and_run_next.html index d01f420f..1803d576 100644 --- a/ch9-dev/os/task/fn.exit_current_and_run_next.html +++ b/ch9-dev/os/task/fn.exit_current_and_run_next.html @@ -1,8 +1 @@ -exit_current_and_run_next in os::task - Rust - -
pub fn exit_current_and_run_next(exit_code: i32)
- \ No newline at end of file +exit_current_and_run_next in os::task - Rust
pub fn exit_current_and_run_next(exit_code: i32)
\ No newline at end of file diff --git a/ch9-dev/os/task/fn.suspend_current_and_run_next.html b/ch9-dev/os/task/fn.suspend_current_and_run_next.html index c30a3886..6cebceea 100644 --- a/ch9-dev/os/task/fn.suspend_current_and_run_next.html +++ b/ch9-dev/os/task/fn.suspend_current_and_run_next.html @@ -1,8 +1 @@ -suspend_current_and_run_next in os::task - Rust - -
pub fn suspend_current_and_run_next()
- \ No newline at end of file +suspend_current_and_run_next in os::task - Rust
pub fn suspend_current_and_run_next()
\ No newline at end of file diff --git a/ch9-dev/os/task/id/constant.IDLE_PID.html b/ch9-dev/os/task/id/constant.IDLE_PID.html index 996482b5..be64cf04 100644 --- a/ch9-dev/os/task/id/constant.IDLE_PID.html +++ b/ch9-dev/os/task/id/constant.IDLE_PID.html @@ -1,8 +1 @@ -IDLE_PID in os::task::id - Rust - -
-

Constant os::task::id::IDLE_PID

source · []
pub const IDLE_PID: usize = 0;
- \ No newline at end of file +IDLE_PID in os::task::id - Rust

Constant os::task::id::IDLE_PID

source · []
pub const IDLE_PID: usize = 0;
\ No newline at end of file diff --git a/ch9-dev/os/task/id/fn.kernel_stack_position.html b/ch9-dev/os/task/id/fn.kernel_stack_position.html index 8281e565..a4a471e3 100644 --- a/ch9-dev/os/task/id/fn.kernel_stack_position.html +++ b/ch9-dev/os/task/id/fn.kernel_stack_position.html @@ -1,9 +1,2 @@ -kernel_stack_position in os::task::id - Rust - -
pub fn kernel_stack_position(kstack_id: usize) -> (usize, usize)
Expand description

Return (bottom, top) of a kernel stack in kernel space.

-
- \ No newline at end of file +kernel_stack_position in os::task::id - Rust
pub fn kernel_stack_position(kstack_id: usize) -> (usize, usize)
Expand description

Return (bottom, top) of a kernel stack in kernel space.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/id/fn.kstack_alloc.html b/ch9-dev/os/task/id/fn.kstack_alloc.html index db3e7490..7b71aa0d 100644 --- a/ch9-dev/os/task/id/fn.kstack_alloc.html +++ b/ch9-dev/os/task/id/fn.kstack_alloc.html @@ -1,8 +1 @@ -kstack_alloc in os::task::id - Rust - -
-

Function os::task::id::kstack_alloc

source · []
pub fn kstack_alloc() -> KernelStack
- \ No newline at end of file +kstack_alloc in os::task::id - Rust
pub fn kstack_alloc() -> KernelStack
\ No newline at end of file diff --git a/ch9-dev/os/task/id/fn.pid_alloc.html b/ch9-dev/os/task/id/fn.pid_alloc.html index 6a8d8f2b..0910c6c0 100644 --- a/ch9-dev/os/task/id/fn.pid_alloc.html +++ b/ch9-dev/os/task/id/fn.pid_alloc.html @@ -1,8 +1 @@ -pid_alloc in os::task::id - Rust - -
-

Function os::task::id::pid_alloc

source · []
pub fn pid_alloc() -> PidHandle
- \ No newline at end of file +pid_alloc in os::task::id - Rust

Function os::task::id::pid_alloc

source · []
pub fn pid_alloc() -> PidHandle
\ No newline at end of file diff --git a/ch9-dev/os/task/id/fn.trap_cx_bottom_from_tid.html b/ch9-dev/os/task/id/fn.trap_cx_bottom_from_tid.html index f3af5048..9ba11c29 100644 --- a/ch9-dev/os/task/id/fn.trap_cx_bottom_from_tid.html +++ b/ch9-dev/os/task/id/fn.trap_cx_bottom_from_tid.html @@ -1,8 +1 @@ -trap_cx_bottom_from_tid in os::task::id - Rust - -
fn trap_cx_bottom_from_tid(tid: usize) -> usize
- \ No newline at end of file +trap_cx_bottom_from_tid in os::task::id - Rust
fn trap_cx_bottom_from_tid(tid: usize) -> usize
\ No newline at end of file diff --git a/ch9-dev/os/task/id/fn.ustack_bottom_from_tid.html b/ch9-dev/os/task/id/fn.ustack_bottom_from_tid.html index f8ced263..4df9810f 100644 --- a/ch9-dev/os/task/id/fn.ustack_bottom_from_tid.html +++ b/ch9-dev/os/task/id/fn.ustack_bottom_from_tid.html @@ -1,8 +1 @@ -ustack_bottom_from_tid in os::task::id - Rust - -
fn ustack_bottom_from_tid(ustack_base: usize, tid: usize) -> usize
- \ No newline at end of file +ustack_bottom_from_tid in os::task::id - Rust
fn ustack_bottom_from_tid(ustack_base: usize, tid: usize) -> usize
\ No newline at end of file diff --git a/ch9-dev/os/task/id/index.html b/ch9-dev/os/task/id/index.html index 1ebc8120..af42184d 100644 --- a/ch9-dev/os/task/id/index.html +++ b/ch9-dev/os/task/id/index.html @@ -1,12 +1,2 @@ -os::task::id - Rust - -
- \ No newline at end of file +os::task::id - Rust
\ No newline at end of file diff --git a/ch9-dev/os/task/id/sidebar-items.js b/ch9-dev/os/task/id/sidebar-items.js index 87951670..a2168483 100644 --- a/ch9-dev/os/task/id/sidebar-items.js +++ b/ch9-dev/os/task/id/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["IDLE_PID",""]],"fn":[["kernel_stack_position","Return (bottom, top) of a kernel stack in kernel space."],["kstack_alloc",""],["pid_alloc",""],["trap_cx_bottom_from_tid",""],["ustack_bottom_from_tid",""]],"struct":[["KSTACK_ALLOCATOR",""],["KernelStack",""],["PID_ALLOCATOR",""],["PidHandle",""],["RecycleAllocator",""],["TaskUserRes",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["IDLE_PID",""]],"fn":[["kernel_stack_position","Return (bottom, top) of a kernel stack in kernel space."],["kstack_alloc",""],["pid_alloc",""],["trap_cx_bottom_from_tid",""],["ustack_bottom_from_tid",""]],"struct":[["KSTACK_ALLOCATOR",""],["KernelStack",""],["PID_ALLOCATOR",""],["PidHandle",""],["RecycleAllocator",""],["TaskUserRes",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/id/struct.KSTACK_ALLOCATOR.html b/ch9-dev/os/task/id/struct.KSTACK_ALLOCATOR.html index bae3e197..c4920702 100644 --- a/ch9-dev/os/task/id/struct.KSTACK_ALLOCATOR.html +++ b/ch9-dev/os/task/id/struct.KSTACK_ALLOCATOR.html @@ -1,36 +1,29 @@ -KSTACK_ALLOCATOR in os::task::id - Rust - -

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<RecycleAllocator>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/id/struct.KernelStack.html b/ch9-dev/os/task/id/struct.KernelStack.html index a1923122..b8ccb25e 100644 --- a/ch9-dev/os/task/id/struct.KernelStack.html +++ b/ch9-dev/os/task/id/struct.KernelStack.html @@ -1,32 +1,25 @@ -KernelStack in os::task::id - Rust - -
-

Struct os::task::id::KernelStack

source · []
pub struct KernelStack(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Executes the destructor for this type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+KernelStack in os::task::id - Rust
pub struct KernelStack(pub usize);

Tuple Fields

0: usize

Implementations

Trait Implementations

Executes the destructor for this type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/id/struct.PID_ALLOCATOR.html b/ch9-dev/os/task/id/struct.PID_ALLOCATOR.html index cf8d856d..5ca7a2dd 100644 --- a/ch9-dev/os/task/id/struct.PID_ALLOCATOR.html +++ b/ch9-dev/os/task/id/struct.PID_ALLOCATOR.html @@ -1,36 +1,29 @@ -PID_ALLOCATOR in os::task::id - Rust - -

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<RecycleAllocator>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/id/struct.PidHandle.html b/ch9-dev/os/task/id/struct.PidHandle.html index 2e1b50a4..0a9632f7 100644 --- a/ch9-dev/os/task/id/struct.PidHandle.html +++ b/ch9-dev/os/task/id/struct.PidHandle.html @@ -1,32 +1,25 @@ -PidHandle in os::task::id - Rust - -
-

Struct os::task::id::PidHandle

source · []
pub struct PidHandle(pub usize);

Tuple Fields

0: usize

Trait Implementations

Executes the destructor for this type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+PidHandle in os::task::id - Rust
pub struct PidHandle(pub usize);

Tuple Fields

0: usize

Trait Implementations

Executes the destructor for this type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/id/struct.RecycleAllocator.html b/ch9-dev/os/task/id/struct.RecycleAllocator.html index 5cef412c..5cda311c 100644 --- a/ch9-dev/os/task/id/struct.RecycleAllocator.html +++ b/ch9-dev/os/task/id/struct.RecycleAllocator.html @@ -1,34 +1,27 @@ -RecycleAllocator in os::task::id - Rust - -
pub struct RecycleAllocator {
+RecycleAllocator in os::task::id - Rust
pub struct RecycleAllocator {
     current: usize,
     recycled: Vec<usize>,
-}

Fields

current: usizerecycled: Vec<usize>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

current: usizerecycled: Vec<usize>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/id/struct.TaskUserRes.html b/ch9-dev/os/task/id/struct.TaskUserRes.html index a8ca0061..895778ea 100644 --- a/ch9-dev/os/task/id/struct.TaskUserRes.html +++ b/ch9-dev/os/task/id/struct.TaskUserRes.html @@ -1,36 +1,29 @@ -TaskUserRes in os::task::id - Rust - -
-

Struct os::task::id::TaskUserRes

source · []
pub struct TaskUserRes {
+TaskUserRes in os::task::id - Rust
pub struct TaskUserRes {
     pub tid: usize,
     pub ustack_base: usize,
     pub process: Weak<ProcessControlBlock>,
-}

Fields

tid: usizeustack_base: usizeprocess: Weak<ProcessControlBlock>

Implementations

Trait Implementations

Executes the destructor for this type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

tid: usizeustack_base: usizeprocess: Weak<ProcessControlBlock>

Implementations

Trait Implementations

Executes the destructor for this type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/index.html b/ch9-dev/os/task/index.html index 6858dad5..cc015e76 100644 --- a/ch9-dev/os/task/index.html +++ b/ch9-dev/os/task/index.html @@ -1,13 +1,2 @@ -os::task - Rust - -
-

Module os::task

source · []

Re-exports

-
pub use context::TaskContext;
pub use id::kstack_alloc;
pub use id::pid_alloc;
pub use id::KernelStack;
pub use id::PidHandle;
pub use id::IDLE_PID;
pub use manager::add_task;
pub use manager::pid2process;
pub use manager::remove_from_pid2process;
pub use processor::current_kstack_top;
pub use processor::current_process;
pub use processor::current_task;
pub use processor::current_trap_cx;
pub use processor::current_trap_cx_user_va;
pub use processor::current_user_token;
pub use processor::run_tasks;
pub use processor::schedule;
pub use processor::take_current_task;
pub use signal::SignalFlags;
pub use task::TaskControlBlock;
pub use task::TaskStatus;

Modules

-
context 🔒
id 🔒
manager 🔒
process 🔒
processor 🔒
signal 🔒
switch 🔒
task 🔒

Structs

-

Functions

-
- \ No newline at end of file +os::task - Rust

Module os::task

source · []

Re-exports

pub use context::TaskContext;
pub use id::kstack_alloc;
pub use id::pid_alloc;
pub use id::KernelStack;
pub use id::PidHandle;
pub use id::IDLE_PID;
pub use manager::add_task;
pub use manager::pid2process;
pub use manager::remove_from_pid2process;
pub use processor::current_kstack_top;
pub use processor::current_process;
pub use processor::current_task;
pub use processor::current_trap_cx;
pub use processor::current_trap_cx_user_va;
pub use processor::current_user_token;
pub use processor::run_tasks;
pub use processor::schedule;
pub use processor::take_current_task;
pub use signal::SignalFlags;
pub use task::TaskControlBlock;
pub use task::TaskStatus;

Modules

context 🔒
id 🔒
manager 🔒
process 🔒
processor 🔒
signal 🔒
switch 🔒
task 🔒

Structs

Functions

\ No newline at end of file diff --git a/ch9-dev/os/task/manager/fn.add_task.html b/ch9-dev/os/task/manager/fn.add_task.html index 619e917f..62104001 100644 --- a/ch9-dev/os/task/manager/fn.add_task.html +++ b/ch9-dev/os/task/manager/fn.add_task.html @@ -1,8 +1 @@ -add_task in os::task::manager - Rust - -
-

Function os::task::manager::add_task

source · []
pub fn add_task(task: Arc<TaskControlBlock>)
- \ No newline at end of file +add_task in os::task::manager - Rust
pub fn add_task(task: Arc<TaskControlBlock>)
\ No newline at end of file diff --git a/ch9-dev/os/task/manager/fn.fetch_task.html b/ch9-dev/os/task/manager/fn.fetch_task.html index f01de50e..c8c221bf 100644 --- a/ch9-dev/os/task/manager/fn.fetch_task.html +++ b/ch9-dev/os/task/manager/fn.fetch_task.html @@ -1,8 +1 @@ -fetch_task in os::task::manager - Rust - -
pub fn fetch_task() -> Option<Arc<TaskControlBlock>>
- \ No newline at end of file +fetch_task in os::task::manager - Rust
pub fn fetch_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file diff --git a/ch9-dev/os/task/manager/fn.insert_into_pid2process.html b/ch9-dev/os/task/manager/fn.insert_into_pid2process.html index 0462649f..317a69c7 100644 --- a/ch9-dev/os/task/manager/fn.insert_into_pid2process.html +++ b/ch9-dev/os/task/manager/fn.insert_into_pid2process.html @@ -1,8 +1 @@ -insert_into_pid2process in os::task::manager - Rust - -
pub fn insert_into_pid2process(pid: usize, process: Arc<ProcessControlBlock>)
- \ No newline at end of file +insert_into_pid2process in os::task::manager - Rust
pub fn insert_into_pid2process(pid: usize, process: Arc<ProcessControlBlock>)
\ No newline at end of file diff --git a/ch9-dev/os/task/manager/fn.pid2process.html b/ch9-dev/os/task/manager/fn.pid2process.html index 50b50905..b974f541 100644 --- a/ch9-dev/os/task/manager/fn.pid2process.html +++ b/ch9-dev/os/task/manager/fn.pid2process.html @@ -1,8 +1 @@ -pid2process in os::task::manager - Rust - -
pub fn pid2process(pid: usize) -> Option<Arc<ProcessControlBlock>>
- \ No newline at end of file +pid2process in os::task::manager - Rust
pub fn pid2process(pid: usize) -> Option<Arc<ProcessControlBlock>>
\ No newline at end of file diff --git a/ch9-dev/os/task/manager/fn.remove_from_pid2process.html b/ch9-dev/os/task/manager/fn.remove_from_pid2process.html index 97514522..9bc8fc1d 100644 --- a/ch9-dev/os/task/manager/fn.remove_from_pid2process.html +++ b/ch9-dev/os/task/manager/fn.remove_from_pid2process.html @@ -1,8 +1 @@ -remove_from_pid2process in os::task::manager - Rust - -
pub fn remove_from_pid2process(pid: usize)
- \ No newline at end of file +remove_from_pid2process in os::task::manager - Rust
pub fn remove_from_pid2process(pid: usize)
\ No newline at end of file diff --git a/ch9-dev/os/task/manager/index.html b/ch9-dev/os/task/manager/index.html index 0516fa26..84bed36b 100644 --- a/ch9-dev/os/task/manager/index.html +++ b/ch9-dev/os/task/manager/index.html @@ -1,10 +1 @@ -os::task::manager - Rust - -
- \ No newline at end of file +os::task::manager - Rust
\ No newline at end of file diff --git a/ch9-dev/os/task/manager/sidebar-items.js b/ch9-dev/os/task/manager/sidebar-items.js index faed1787..2738ce2e 100644 --- a/ch9-dev/os/task/manager/sidebar-items.js +++ b/ch9-dev/os/task/manager/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["add_task",""],["fetch_task",""],["insert_into_pid2process",""],["pid2process",""],["remove_from_pid2process",""]],"struct":[["PID2PCB",""],["TASK_MANAGER",""],["TaskManager",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["add_task",""],["fetch_task",""],["insert_into_pid2process",""],["pid2process",""],["remove_from_pid2process",""]],"struct":[["PID2PCB",""],["TASK_MANAGER",""],["TaskManager",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/manager/struct.PID2PCB.html b/ch9-dev/os/task/manager/struct.PID2PCB.html index 859c50b9..8172d001 100644 --- a/ch9-dev/os/task/manager/struct.PID2PCB.html +++ b/ch9-dev/os/task/manager/struct.PID2PCB.html @@ -1,36 +1,29 @@ -PID2PCB in os::task::manager - Rust - -

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<BTreeMap<usize, Arc<ProcessControlBlock>>>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/manager/struct.TASK_MANAGER.html b/ch9-dev/os/task/manager/struct.TASK_MANAGER.html index 20d4a3ce..ca231d94 100644 --- a/ch9-dev/os/task/manager/struct.TASK_MANAGER.html +++ b/ch9-dev/os/task/manager/struct.TASK_MANAGER.html @@ -1,36 +1,29 @@ -TASK_MANAGER in os::task::manager - Rust - -

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<TaskManager>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/manager/struct.TaskManager.html b/ch9-dev/os/task/manager/struct.TaskManager.html index 2efb2473..1c9e5b39 100644 --- a/ch9-dev/os/task/manager/struct.TaskManager.html +++ b/ch9-dev/os/task/manager/struct.TaskManager.html @@ -1,34 +1,27 @@ -TaskManager in os::task::manager - Rust - -
pub struct TaskManager {
+TaskManager in os::task::manager - Rust
pub struct TaskManager {
     ready_queue: VecDeque<Arc<TaskControlBlock>>,
-}

Fields

ready_queue: VecDeque<Arc<TaskControlBlock>>

Implementations

A simple FIFO scheduler.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

ready_queue: VecDeque<Arc<TaskControlBlock>>

Implementations

A simple FIFO scheduler.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/process/index.html b/ch9-dev/os/task/process/index.html index 44eb594b..b9e5c9d4 100644 --- a/ch9-dev/os/task/process/index.html +++ b/ch9-dev/os/task/process/index.html @@ -1,9 +1 @@ -os::task::process - Rust - -
- \ No newline at end of file +os::task::process - Rust
\ No newline at end of file diff --git a/ch9-dev/os/task/process/sidebar-items.js b/ch9-dev/os/task/process/sidebar-items.js index bdfaf442..f5ab4a33 100644 --- a/ch9-dev/os/task/process/sidebar-items.js +++ b/ch9-dev/os/task/process/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["ProcessControlBlock",""],["ProcessControlBlockInner",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["ProcessControlBlock",""],["ProcessControlBlockInner",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/process/struct.ProcessControlBlock.html b/ch9-dev/os/task/process/struct.ProcessControlBlock.html index 84089a5b..8f3d20ce 100644 --- a/ch9-dev/os/task/process/struct.ProcessControlBlock.html +++ b/ch9-dev/os/task/process/struct.ProcessControlBlock.html @@ -1,36 +1,29 @@ -ProcessControlBlock in os::task::process - Rust - -
pub struct ProcessControlBlock {
+ProcessControlBlock in os::task::process - Rust
pub struct ProcessControlBlock {
     pub pid: PidHandle,
     inner: UPIntrFreeCell<ProcessControlBlockInner>,
-}

Fields

pid: PidHandleinner: UPIntrFreeCell<ProcessControlBlockInner>

Implementations

Only support processes with a single thread.

-

Only support processes with a single thread.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

pid: PidHandleinner: UPIntrFreeCell<ProcessControlBlockInner>

Implementations

Only support processes with a single thread.

+

Only support processes with a single thread.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/process/struct.ProcessControlBlockInner.html b/ch9-dev/os/task/process/struct.ProcessControlBlockInner.html index 9891c111..e6068197 100644 --- a/ch9-dev/os/task/process/struct.ProcessControlBlockInner.html +++ b/ch9-dev/os/task/process/struct.ProcessControlBlockInner.html @@ -1,10 +1,4 @@ -ProcessControlBlockInner in os::task::process - Rust - -
pub struct ProcessControlBlockInner {
+ProcessControlBlockInner in os::task::process - Rust
pub struct ProcessControlBlockInner {
     pub is_zombie: bool,
     pub memory_set: MemorySet,
     pub parent: Option<Weak<ProcessControlBlock>>,
@@ -17,28 +11,27 @@
     pub mutex_list: Vec<Option<Arc<dyn Mutex>>>,
     pub semaphore_list: Vec<Option<Arc<Semaphore>>>,
     pub condvar_list: Vec<Option<Arc<Condvar>>>,
-}

Fields

is_zombie: boolmemory_set: MemorySetparent: Option<Weak<ProcessControlBlock>>children: Vec<Arc<ProcessControlBlock>>exit_code: i32fd_table: Vec<Option<Arc<dyn File + Send + Sync>>>signals: SignalFlagstasks: Vec<Option<Arc<TaskControlBlock>>>task_res_allocator: RecycleAllocatormutex_list: Vec<Option<Arc<dyn Mutex>>>semaphore_list: Vec<Option<Arc<Semaphore>>>condvar_list: Vec<Option<Arc<Condvar>>>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

is_zombie: boolmemory_set: MemorySetparent: Option<Weak<ProcessControlBlock>>children: Vec<Arc<ProcessControlBlock>>exit_code: i32fd_table: Vec<Option<Arc<dyn File + Send + Sync>>>signals: SignalFlagstasks: Vec<Option<Arc<TaskControlBlock>>>task_res_allocator: RecycleAllocatormutex_list: Vec<Option<Arc<dyn Mutex>>>semaphore_list: Vec<Option<Arc<Semaphore>>>condvar_list: Vec<Option<Arc<Condvar>>>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.current_kstack_top.html b/ch9-dev/os/task/processor/fn.current_kstack_top.html index 64b5b3d0..e7380d53 100644 --- a/ch9-dev/os/task/processor/fn.current_kstack_top.html +++ b/ch9-dev/os/task/processor/fn.current_kstack_top.html @@ -1,8 +1 @@ -current_kstack_top in os::task::processor - Rust - -
pub fn current_kstack_top() -> usize
- \ No newline at end of file +current_kstack_top in os::task::processor - Rust
pub fn current_kstack_top() -> usize
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.current_process.html b/ch9-dev/os/task/processor/fn.current_process.html index bc4fd217..2810248e 100644 --- a/ch9-dev/os/task/processor/fn.current_process.html +++ b/ch9-dev/os/task/processor/fn.current_process.html @@ -1,8 +1 @@ -current_process in os::task::processor - Rust - -
pub fn current_process() -> Arc<ProcessControlBlock>
- \ No newline at end of file +current_process in os::task::processor - Rust
pub fn current_process() -> Arc<ProcessControlBlock>
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.current_task.html b/ch9-dev/os/task/processor/fn.current_task.html index ab638a6e..ab9cf8a1 100644 --- a/ch9-dev/os/task/processor/fn.current_task.html +++ b/ch9-dev/os/task/processor/fn.current_task.html @@ -1,8 +1 @@ -current_task in os::task::processor - Rust - -
pub fn current_task() -> Option<Arc<TaskControlBlock>>
- \ No newline at end of file +current_task in os::task::processor - Rust
pub fn current_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.current_trap_cx.html b/ch9-dev/os/task/processor/fn.current_trap_cx.html index 1a718a17..da20aaa2 100644 --- a/ch9-dev/os/task/processor/fn.current_trap_cx.html +++ b/ch9-dev/os/task/processor/fn.current_trap_cx.html @@ -1,8 +1 @@ -current_trap_cx in os::task::processor - Rust - -
pub fn current_trap_cx() -> &'static mut TrapContext
- \ No newline at end of file +current_trap_cx in os::task::processor - Rust
pub fn current_trap_cx() -> &'static mut TrapContext
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.current_trap_cx_user_va.html b/ch9-dev/os/task/processor/fn.current_trap_cx_user_va.html index 27324e8e..b3218706 100644 --- a/ch9-dev/os/task/processor/fn.current_trap_cx_user_va.html +++ b/ch9-dev/os/task/processor/fn.current_trap_cx_user_va.html @@ -1,8 +1 @@ -current_trap_cx_user_va in os::task::processor - Rust - -
pub fn current_trap_cx_user_va() -> usize
- \ No newline at end of file +current_trap_cx_user_va in os::task::processor - Rust
pub fn current_trap_cx_user_va() -> usize
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.current_user_token.html b/ch9-dev/os/task/processor/fn.current_user_token.html index 1b0a3b9b..9c8d851d 100644 --- a/ch9-dev/os/task/processor/fn.current_user_token.html +++ b/ch9-dev/os/task/processor/fn.current_user_token.html @@ -1,8 +1 @@ -current_user_token in os::task::processor - Rust - -
pub fn current_user_token() -> usize
- \ No newline at end of file +current_user_token in os::task::processor - Rust
pub fn current_user_token() -> usize
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.run_tasks.html b/ch9-dev/os/task/processor/fn.run_tasks.html index 8c8212d5..58db02c5 100644 --- a/ch9-dev/os/task/processor/fn.run_tasks.html +++ b/ch9-dev/os/task/processor/fn.run_tasks.html @@ -1,8 +1 @@ -run_tasks in os::task::processor - Rust - -
pub fn run_tasks()
- \ No newline at end of file +run_tasks in os::task::processor - Rust
pub fn run_tasks()
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.schedule.html b/ch9-dev/os/task/processor/fn.schedule.html index 6a06be98..46cf8d4a 100644 --- a/ch9-dev/os/task/processor/fn.schedule.html +++ b/ch9-dev/os/task/processor/fn.schedule.html @@ -1,8 +1 @@ -schedule in os::task::processor - Rust - -
pub fn schedule(switched_task_cx_ptr: *mut TaskContext)
- \ No newline at end of file +schedule in os::task::processor - Rust
pub fn schedule(switched_task_cx_ptr: *mut TaskContext)
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/fn.take_current_task.html b/ch9-dev/os/task/processor/fn.take_current_task.html index 5393a0d8..62ba5349 100644 --- a/ch9-dev/os/task/processor/fn.take_current_task.html +++ b/ch9-dev/os/task/processor/fn.take_current_task.html @@ -1,8 +1 @@ -take_current_task in os::task::processor - Rust - -
pub fn take_current_task() -> Option<Arc<TaskControlBlock>>
- \ No newline at end of file +take_current_task in os::task::processor - Rust
pub fn take_current_task() -> Option<Arc<TaskControlBlock>>
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/index.html b/ch9-dev/os/task/processor/index.html index ada623e5..79ae5004 100644 --- a/ch9-dev/os/task/processor/index.html +++ b/ch9-dev/os/task/processor/index.html @@ -1,10 +1 @@ -os::task::processor - Rust - -
- \ No newline at end of file +os::task::processor - Rust
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/sidebar-items.js b/ch9-dev/os/task/processor/sidebar-items.js index b4f831f3..85a8f68a 100644 --- a/ch9-dev/os/task/processor/sidebar-items.js +++ b/ch9-dev/os/task/processor/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["current_kstack_top",""],["current_process",""],["current_task",""],["current_trap_cx",""],["current_trap_cx_user_va",""],["current_user_token",""],["run_tasks",""],["schedule",""],["take_current_task",""]],"struct":[["PROCESSOR",""],["Processor",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["current_kstack_top",""],["current_process",""],["current_task",""],["current_trap_cx",""],["current_trap_cx_user_va",""],["current_user_token",""],["run_tasks",""],["schedule",""],["take_current_task",""]],"struct":[["PROCESSOR",""],["Processor",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/processor/struct.PROCESSOR.html b/ch9-dev/os/task/processor/struct.PROCESSOR.html index f03429ca..f5e72b0e 100644 --- a/ch9-dev/os/task/processor/struct.PROCESSOR.html +++ b/ch9-dev/os/task/processor/struct.PROCESSOR.html @@ -1,36 +1,29 @@ -PROCESSOR in os::task::processor - Rust - -

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<Processor>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/processor/struct.Processor.html b/ch9-dev/os/task/processor/struct.Processor.html index c0adcf70..16366828 100644 --- a/ch9-dev/os/task/processor/struct.Processor.html +++ b/ch9-dev/os/task/processor/struct.Processor.html @@ -1,34 +1,27 @@ -Processor in os::task::processor - Rust - -
pub struct Processor {
+Processor in os::task::processor - Rust
pub struct Processor {
     current: Option<Arc<TaskControlBlock>>,
     idle_task_cx: TaskContext,
-}

Fields

current: Option<Arc<TaskControlBlock>>idle_task_cx: TaskContext

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

current: Option<Arc<TaskControlBlock>>idle_task_cx: TaskContext

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/sidebar-items.js b/ch9-dev/os/task/sidebar-items.js index b0eaa08b..7241fe19 100644 --- a/ch9-dev/os/task/sidebar-items.js +++ b/ch9-dev/os/task/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["add_initproc",""],["block_current_and_run_next",""],["block_current_task","This function must be followed by a schedule"],["check_signals_of_current",""],["current_add_signal",""],["exit_current_and_run_next",""],["suspend_current_and_run_next",""]],"mod":[["context",""],["id",""],["manager",""],["process",""],["processor",""],["signal",""],["switch",""],["task",""]],"struct":[["INITPROC",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["add_initproc",""],["block_current_and_run_next",""],["block_current_task","This function must be followed by a schedule"],["check_signals_of_current",""],["current_add_signal",""],["exit_current_and_run_next",""],["suspend_current_and_run_next",""]],"mod":[["context",""],["id",""],["manager",""],["process",""],["processor",""],["signal",""],["switch",""],["task",""]],"struct":[["INITPROC",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/signal/index.html b/ch9-dev/os/task/signal/index.html index 318bb245..4ef7b2fa 100644 --- a/ch9-dev/os/task/signal/index.html +++ b/ch9-dev/os/task/signal/index.html @@ -1,9 +1 @@ -os::task::signal - Rust - -
- \ No newline at end of file +os::task::signal - Rust
\ No newline at end of file diff --git a/ch9-dev/os/task/signal/sidebar-items.js b/ch9-dev/os/task/signal/sidebar-items.js index e012b489..e74f4eca 100644 --- a/ch9-dev/os/task/signal/sidebar-items.js +++ b/ch9-dev/os/task/signal/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["SignalFlags",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["SignalFlags",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/signal/struct.SignalFlags.html b/ch9-dev/os/task/signal/struct.SignalFlags.html index 73d953ed..b506a326 100644 --- a/ch9-dev/os/task/signal/struct.SignalFlags.html +++ b/ch9-dev/os/task/signal/struct.SignalFlags.html @@ -1,19 +1,13 @@ -SignalFlags in os::task::signal - Rust - -
pub struct SignalFlags {
+SignalFlags in os::task::signal - Rust
pub struct SignalFlags {
     bits: u32,
-}

Fields

bits: u32

Implementations

Returns an empty set of flags.

-

Returns the set containing all flags.

-

Returns the raw value of the flags currently stored.

-

Convert from underlying bit representation, unless that +}

Fields

bits: u32

Implementations

Returns an empty set of flags.

+

Returns the set containing all flags.

+

Returns the raw value of the flags currently stored.

+

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

-

Convert from underlying bit representation, dropping any bits +

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

-

Convert from underlying bit representation, preserving all +

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

Safety

The caller of the bitflags! macro can chose to allow or @@ -21,35 +15,35 @@ disallow extra bits for their bitflags type.

The caller of from_bits_unchecked() has to ensure that all bits correspond to a defined flag or that extra bits are valid for this bitflags type.

-

Returns true if no flags are currently stored.

-

Returns true if all flags are currently set.

-

Returns true if there are flags common to both self and other.

-

Returns true if all of the flags in other are contained within self.

-

Inserts the specified flags in-place.

-

Removes the specified flags in-place.

-

Toggles the specified flags in-place.

-

Inserts or removes the specified flags depending on the passed value.

-

Returns the intersection between the flags in self and +

Returns true if no flags are currently stored.

+

Returns true if all flags are currently set.

+

Returns true if there are flags common to both self and other.

+

Returns true if all of the flags in other are contained within self.

+

Inserts the specified flags in-place.

+

Removes the specified flags in-place.

+

Toggles the specified flags in-place.

+

Inserts or removes the specified flags depending on the passed value.

+

Returns the intersection between the flags in self and other.

Specifically, the returned set contains only the flags which are present in both self and other.

This is equivalent to using the & operator (e.g. ops::BitAnd), as in flags & other.

-

Returns the union of between the flags in self and other.

+

Returns the union of between the flags in self and other.

Specifically, the returned set contains all flags which are present in either self or other, including any which are present in both (see Self::symmetric_difference if that is undesirable).

This is equivalent to using the | operator (e.g. ops::BitOr), as in flags | other.

-

Returns the difference between the flags in self and other.

+

Returns the difference between the flags in self and other.

Specifically, the returned set contains all flags present in self, except for the ones present in other.

It is also conceptually equivalent to the “bit-clear” operation: flags & !other (and this syntax is also supported).

This is equivalent to using the - operator (e.g. ops::Sub), as in flags - other.

-

Returns the symmetric difference between the flags +

Returns the symmetric difference between the flags in self and other.

Specifically, the returned set contains the flags present which are present in self or other, but that are not present in @@ -57,79 +51,78 @@ both. Equivalently, it contains the flags present in exactly one of the sets self and other.

This is equivalent to using the ^ operator (e.g. ops::BitXor), as in flags ^ other.

-

Returns the complement of this set of flags.

+

Returns the complement of this set of flags.

Specifically, the returned set contains all the flags which are not set in self, but which are allowed for this type.

Alternatively, it can be thought of as the set difference between Self::all() and self (e.g. Self::all() - self)

This is equivalent to using the ! operator (e.g. ops::Not), as in !flags.

-

Trait Implementations

Formats the value using the given formatter.

-

Returns the intersection between the two sets of flags.

-

The resulting type after applying the & operator.

-

Disables all flags disabled in the set.

-

Returns the union of the two sets of flags.

-

The resulting type after applying the | operator.

-

Adds the set of flags.

-

Returns the left flags, but with all the right flags toggled.

-

The resulting type after applying the ^ operator.

-

Toggles the set of flags.

-

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Extends a collection with the contents of an iterator. Read more

-
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

-
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

-

Creates a value from an iterator. Read more

-

Feeds this value into the given Hasher. Read more

-

Feeds a slice of this type into the given Hasher. Read more

-

Formats the value using the given formatter.

-

Returns the complement of this set of flags.

-

The resulting type after applying the ! operator.

-

Formats the value using the given formatter.

-

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +

Trait Implementations

Formats the value using the given formatter.

+

Returns the intersection between the two sets of flags.

+

The resulting type after applying the & operator.

+

Disables all flags disabled in the set.

+

Returns the union of the two sets of flags.

+

The resulting type after applying the | operator.

+

Adds the set of flags.

+

Returns the left flags, but with all the right flags toggled.

+

The resulting type after applying the ^ operator.

+

Toggles the set of flags.

+

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Extends a collection with the contents of an iterator. Read more

+
🔬 This is a nightly-only experimental API. (extend_one)

Extends a collection with exactly one element.

+
🔬 This is a nightly-only experimental API. (extend_one)

Reserves capacity in a collection for the given number of additional elements. Read more

+

Creates a value from an iterator. Read more

+

Feeds this value into the given Hasher. Read more

+

Feeds a slice of this type into the given Hasher. Read more

+

Formats the value using the given formatter.

+

Returns the complement of this set of flags.

+

The resulting type after applying the ! operator.

+

Formats the value using the given formatter.

+

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Returns the set difference of the two sets of flags.

-

The resulting type after applying the - operator.

-

Disables all flags enabled in the set.

-

Formats the value using the given formatter.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Returns the set difference of the two sets of flags.

+

The resulting type after applying the - operator.

+

Disables all flags enabled in the set.

+

Formats the value using the given formatter.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/struct.INITPROC.html b/ch9-dev/os/task/struct.INITPROC.html index fab46440..01056560 100644 --- a/ch9-dev/os/task/struct.INITPROC.html +++ b/ch9-dev/os/task/struct.INITPROC.html @@ -1,35 +1,28 @@ -INITPROC in os::task - Rust - -
-

Struct os::task::INITPROC

source · []
pub struct INITPROC {
+INITPROC in os::task - Rust
pub struct INITPROC {
     __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/switch/fn.__switch.html b/ch9-dev/os/task/switch/fn.__switch.html index 71540423..66123082 100644 --- a/ch9-dev/os/task/switch/fn.__switch.html +++ b/ch9-dev/os/task/switch/fn.__switch.html @@ -1,8 +1 @@ -__switch in os::task::switch - Rust - -
-

Function os::task::switch::__switch

source · []
pub unsafe extern "C" fn __switch(
    current_task_cx_ptr: *mut TaskContext,
    next_task_cx_ptr: *const TaskContext
)
- \ No newline at end of file +__switch in os::task::switch - Rust
pub unsafe extern "C" fn __switch(
    current_task_cx_ptr: *mut TaskContext,
    next_task_cx_ptr: *const TaskContext
)
\ No newline at end of file diff --git a/ch9-dev/os/task/switch/index.html b/ch9-dev/os/task/switch/index.html index 108eea14..4f68c613 100644 --- a/ch9-dev/os/task/switch/index.html +++ b/ch9-dev/os/task/switch/index.html @@ -1,9 +1 @@ -os::task::switch - Rust - -
- \ No newline at end of file +os::task::switch - Rust
\ No newline at end of file diff --git a/ch9-dev/os/task/switch/sidebar-items.js b/ch9-dev/os/task/switch/sidebar-items.js index 59e64029..28ba182b 100644 --- a/ch9-dev/os/task/switch/sidebar-items.js +++ b/ch9-dev/os/task/switch/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["__switch",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["__switch",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/task/enum.TaskStatus.html b/ch9-dev/os/task/task/enum.TaskStatus.html index 234fc6a3..611f1367 100644 --- a/ch9-dev/os/task/task/enum.TaskStatus.html +++ b/ch9-dev/os/task/task/enum.TaskStatus.html @@ -1,43 +1,36 @@ -TaskStatus in os::task::task - Rust - -
pub enum TaskStatus {
+TaskStatus in os::task::task - Rust
pub enum TaskStatus {
     Ready,
     Running,
     Blocking,
-}

Variants

Ready

Running

Blocking

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

This method tests for self and other values to be equal, and is used +}

Variants

Ready

Running

Blocking

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/task/index.html b/ch9-dev/os/task/task/index.html index 10045566..b0287c6b 100644 --- a/ch9-dev/os/task/task/index.html +++ b/ch9-dev/os/task/task/index.html @@ -1,10 +1 @@ -os::task::task - Rust - -
- \ No newline at end of file +os::task::task - Rust
\ No newline at end of file diff --git a/ch9-dev/os/task/task/sidebar-items.js b/ch9-dev/os/task/task/sidebar-items.js index dd3e5786..272090ba 100644 --- a/ch9-dev/os/task/task/sidebar-items.js +++ b/ch9-dev/os/task/task/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"enum":[["TaskStatus",""]],"struct":[["TaskControlBlock",""],["TaskControlBlockInner",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"enum":[["TaskStatus",""]],"struct":[["TaskControlBlock",""],["TaskControlBlockInner",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/task/task/struct.TaskControlBlock.html b/ch9-dev/os/task/task/struct.TaskControlBlock.html index 84e92e95..e3dbce7f 100644 --- a/ch9-dev/os/task/task/struct.TaskControlBlock.html +++ b/ch9-dev/os/task/task/struct.TaskControlBlock.html @@ -1,35 +1,28 @@ -TaskControlBlock in os::task::task - Rust - -
pub struct TaskControlBlock {
+TaskControlBlock in os::task::task - Rust
pub struct TaskControlBlock {
     pub process: Weak<ProcessControlBlock>,
     pub kstack: KernelStack,
     pub inner: UPIntrFreeCell<TaskControlBlockInner>,
-}

Fields

process: Weak<ProcessControlBlock>kstack: KernelStackinner: UPIntrFreeCell<TaskControlBlockInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

process: Weak<ProcessControlBlock>kstack: KernelStackinner: UPIntrFreeCell<TaskControlBlockInner>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/task/task/struct.TaskControlBlockInner.html b/ch9-dev/os/task/task/struct.TaskControlBlockInner.html index 573ee440..4d6adecd 100644 --- a/ch9-dev/os/task/task/struct.TaskControlBlockInner.html +++ b/ch9-dev/os/task/task/struct.TaskControlBlockInner.html @@ -1,37 +1,30 @@ -TaskControlBlockInner in os::task::task - Rust - -
pub struct TaskControlBlockInner {
+TaskControlBlockInner in os::task::task - Rust
pub struct TaskControlBlockInner {
     pub res: Option<TaskUserRes>,
     pub trap_cx_ppn: PhysPageNum,
     pub task_cx: TaskContext,
     pub task_status: TaskStatus,
     pub exit_code: Option<i32>,
-}

Fields

res: Option<TaskUserRes>trap_cx_ppn: PhysPageNumtask_cx: TaskContexttask_status: TaskStatusexit_code: Option<i32>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

res: Option<TaskUserRes>trap_cx_ppn: PhysPageNumtask_cx: TaskContexttask_status: TaskStatusexit_code: Option<i32>

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/timer/constant.MSEC_PER_SEC.html b/ch9-dev/os/timer/constant.MSEC_PER_SEC.html index 819371c1..2ee269d2 100644 --- a/ch9-dev/os/timer/constant.MSEC_PER_SEC.html +++ b/ch9-dev/os/timer/constant.MSEC_PER_SEC.html @@ -1,8 +1 @@ -MSEC_PER_SEC in os::timer - Rust - -
-

Constant os::timer::MSEC_PER_SEC

source · []
const MSEC_PER_SEC: usize = 1000;
- \ No newline at end of file +MSEC_PER_SEC in os::timer - Rust
const MSEC_PER_SEC: usize = 1000;
\ No newline at end of file diff --git a/ch9-dev/os/timer/constant.TICKS_PER_SEC.html b/ch9-dev/os/timer/constant.TICKS_PER_SEC.html index 65ff446c..ca881576 100644 --- a/ch9-dev/os/timer/constant.TICKS_PER_SEC.html +++ b/ch9-dev/os/timer/constant.TICKS_PER_SEC.html @@ -1,8 +1 @@ -TICKS_PER_SEC in os::timer - Rust - -
const TICKS_PER_SEC: usize = 100;
- \ No newline at end of file +TICKS_PER_SEC in os::timer - Rust
const TICKS_PER_SEC: usize = 100;
\ No newline at end of file diff --git a/ch9-dev/os/timer/fn.add_timer.html b/ch9-dev/os/timer/fn.add_timer.html index 062214c0..45e23a0b 100644 --- a/ch9-dev/os/timer/fn.add_timer.html +++ b/ch9-dev/os/timer/fn.add_timer.html @@ -1,8 +1 @@ -add_timer in os::timer - Rust - -
-

Function os::timer::add_timer

source · []
pub fn add_timer(expire_ms: usize, task: Arc<TaskControlBlock>)
- \ No newline at end of file +add_timer in os::timer - Rust
pub fn add_timer(expire_ms: usize, task: Arc<TaskControlBlock>)
\ No newline at end of file diff --git a/ch9-dev/os/timer/fn.check_timer.html b/ch9-dev/os/timer/fn.check_timer.html index 1597850d..51890d47 100644 --- a/ch9-dev/os/timer/fn.check_timer.html +++ b/ch9-dev/os/timer/fn.check_timer.html @@ -1,8 +1 @@ -check_timer in os::timer - Rust - -
-

Function os::timer::check_timer

source · []
pub fn check_timer()
- \ No newline at end of file +check_timer in os::timer - Rust
pub fn check_timer()
\ No newline at end of file diff --git a/ch9-dev/os/timer/fn.get_time.html b/ch9-dev/os/timer/fn.get_time.html index 052a1cfd..f513fe44 100644 --- a/ch9-dev/os/timer/fn.get_time.html +++ b/ch9-dev/os/timer/fn.get_time.html @@ -1,8 +1 @@ -get_time in os::timer - Rust - -
-

Function os::timer::get_time

source · []
pub fn get_time() -> usize
- \ No newline at end of file +get_time in os::timer - Rust
pub fn get_time() -> usize
\ No newline at end of file diff --git a/ch9-dev/os/timer/fn.get_time_ms.html b/ch9-dev/os/timer/fn.get_time_ms.html index 24cd029c..f78192ad 100644 --- a/ch9-dev/os/timer/fn.get_time_ms.html +++ b/ch9-dev/os/timer/fn.get_time_ms.html @@ -1,8 +1 @@ -get_time_ms in os::timer - Rust - -
-

Function os::timer::get_time_ms

source · []
pub fn get_time_ms() -> usize
- \ No newline at end of file +get_time_ms in os::timer - Rust
pub fn get_time_ms() -> usize
\ No newline at end of file diff --git a/ch9-dev/os/timer/fn.set_next_trigger.html b/ch9-dev/os/timer/fn.set_next_trigger.html index a39e0225..e95229b4 100644 --- a/ch9-dev/os/timer/fn.set_next_trigger.html +++ b/ch9-dev/os/timer/fn.set_next_trigger.html @@ -1,8 +1 @@ -set_next_trigger in os::timer - Rust - -
pub fn set_next_trigger()
- \ No newline at end of file +set_next_trigger in os::timer - Rust
pub fn set_next_trigger()
\ No newline at end of file diff --git a/ch9-dev/os/timer/index.html b/ch9-dev/os/timer/index.html index b6813279..ce43651f 100644 --- a/ch9-dev/os/timer/index.html +++ b/ch9-dev/os/timer/index.html @@ -1,11 +1 @@ -os::timer - Rust - -
- \ No newline at end of file +os::timer - Rust
\ No newline at end of file diff --git a/ch9-dev/os/timer/sidebar-items.js b/ch9-dev/os/timer/sidebar-items.js index 0e6557e4..717ceb7b 100644 --- a/ch9-dev/os/timer/sidebar-items.js +++ b/ch9-dev/os/timer/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"constant":[["MSEC_PER_SEC",""],["TICKS_PER_SEC",""]],"fn":[["add_timer",""],["check_timer",""],["get_time",""],["get_time_ms",""],["set_next_trigger",""]],"struct":[["TIMERS",""],["TimerCondVar",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"constant":[["MSEC_PER_SEC",""],["TICKS_PER_SEC",""]],"fn":[["add_timer",""],["check_timer",""],["get_time",""],["get_time_ms",""],["set_next_trigger",""]],"struct":[["TIMERS",""],["TimerCondVar",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/timer/struct.TIMERS.html b/ch9-dev/os/timer/struct.TIMERS.html index 7afdbfbd..473a276e 100644 --- a/ch9-dev/os/timer/struct.TIMERS.html +++ b/ch9-dev/os/timer/struct.TIMERS.html @@ -1,36 +1,29 @@ -TIMERS in os::timer - Rust - -
-

Struct os::timer::TIMERS

source · []

Fields

__private_field: ()

Methods from Deref<Target = UPIntrFreeCell<BinaryHeap<TimerCondVar>>>

Panic if the data has been borrowed.

+

Trait Implementations

The resulting type after dereferencing.

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/timer/struct.TimerCondVar.html b/ch9-dev/os/timer/struct.TimerCondVar.html index f1d1cd3e..aec08413 100644 --- a/ch9-dev/os/timer/struct.TimerCondVar.html +++ b/ch9-dev/os/timer/struct.TimerCondVar.html @@ -1,48 +1,41 @@ -TimerCondVar in os::timer - Rust - -
pub struct TimerCondVar {
+TimerCondVar in os::timer - Rust
pub struct TimerCondVar {
     pub expire_ms: usize,
     pub task: Arc<TaskControlBlock>,
-}

Fields

expire_ms: usizetask: Arc<TaskControlBlock>

Trait Implementations

This method returns an Ordering between self and other. Read more

-

Compares and returns the maximum of two values. Read more

-

Compares and returns the minimum of two values. Read more

-

Restrict a value to a certain interval. Read more

-

This method tests for self and other values to be equal, and is used +}

Fields

expire_ms: usizetask: Arc<TaskControlBlock>

Trait Implementations

This method returns an Ordering between self and other. Read more

+

Compares and returns the maximum of two values. Read more

+

Compares and returns the minimum of two values. Read more

+

Restrict a value to a certain interval. Read more

+

This method tests for self and other values to be equal, and is used by ==. Read more

-

This method tests for !=.

-

This method returns an ordering between self and other values if one exists. Read more

-

This method tests less than (for self and other) and is used by the < operator. Read more

-

This method tests less than or equal to (for self and other) and is used by the <= +

This method tests for !=.

+

This method returns an ordering between self and other values if one exists. Read more

+

This method tests less than (for self and other) and is used by the < operator. Read more

+

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

-

This method tests greater than (for self and other) and is used by the > operator. Read more

-

This method tests greater than or equal to (for self and other) and is used by the >= +

This method tests greater than (for self and other) and is used by the > operator. Read more

+

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/trap/context/index.html b/ch9-dev/os/trap/context/index.html index 2aa4e532..8713bccb 100644 --- a/ch9-dev/os/trap/context/index.html +++ b/ch9-dev/os/trap/context/index.html @@ -1,9 +1 @@ -os::trap::context - Rust - -
- \ No newline at end of file +os::trap::context - Rust
\ No newline at end of file diff --git a/ch9-dev/os/trap/context/sidebar-items.js b/ch9-dev/os/trap/context/sidebar-items.js index d7c5bfe2..1ab0eace 100644 --- a/ch9-dev/os/trap/context/sidebar-items.js +++ b/ch9-dev/os/trap/context/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"struct":[["TrapContext",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"struct":[["TrapContext",""]]}; \ No newline at end of file diff --git a/ch9-dev/os/trap/context/struct.TrapContext.html b/ch9-dev/os/trap/context/struct.TrapContext.html index 940662e2..f60db3d4 100644 --- a/ch9-dev/os/trap/context/struct.TrapContext.html +++ b/ch9-dev/os/trap/context/struct.TrapContext.html @@ -1,39 +1,32 @@ -TrapContext in os::trap::context - Rust - -
#[repr(C)]
pub struct TrapContext { +TrapContext in os::trap::context - Rust
#[repr(C)]
pub struct TrapContext { pub x: [usize; 32], pub sstatus: Sstatus, pub sepc: usize, pub kernel_satp: usize, pub kernel_sp: usize, pub trap_handler: usize, -}

Fields

x: [usize; 32]sstatus: Sstatussepc: usizekernel_satp: usizekernel_sp: usizetrap_handler: usize

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Casts the value.

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Casts the value.

-

Casts the value.

-

Casts the value.

-

Returns the argument unchanged.

-

Calls U::from(self).

+}

Fields

x: [usize; 32]sstatus: Sstatussepc: usizekernel_satp: usizekernel_sp: usizetrap_handler: usize

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Casts the value.

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Returns the argument unchanged.

+

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

-

Casts the value.

-

OverflowingCasts the value.

-

Casts the value.

-

Casts the value.

-

The type returned in the event of a conversion error.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

The type returned in the event of a conversion error.

+

The type returned in the event of a conversion error.

Performs the conversion.

-

Casts the value.

-

UnwrappedCasts the value.

-

Casts the value.

-

WrappingCasts the value.

-
- \ No newline at end of file +

Casts the value.

+

Casts the value.

+

Casts the value.

+

Casts the value.

+
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.disable_supervisor_interrupt.html b/ch9-dev/os/trap/fn.disable_supervisor_interrupt.html index 53aec0f5..231d51d3 100644 --- a/ch9-dev/os/trap/fn.disable_supervisor_interrupt.html +++ b/ch9-dev/os/trap/fn.disable_supervisor_interrupt.html @@ -1,8 +1 @@ -disable_supervisor_interrupt in os::trap - Rust - -
fn disable_supervisor_interrupt()
- \ No newline at end of file +disable_supervisor_interrupt in os::trap - Rust
fn disable_supervisor_interrupt()
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.enable_supervisor_interrupt.html b/ch9-dev/os/trap/fn.enable_supervisor_interrupt.html index 2129d4d2..bf3b1d35 100644 --- a/ch9-dev/os/trap/fn.enable_supervisor_interrupt.html +++ b/ch9-dev/os/trap/fn.enable_supervisor_interrupt.html @@ -1,8 +1 @@ -enable_supervisor_interrupt in os::trap - Rust - -
fn enable_supervisor_interrupt()
- \ No newline at end of file +enable_supervisor_interrupt in os::trap - Rust
fn enable_supervisor_interrupt()
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.enable_timer_interrupt.html b/ch9-dev/os/trap/fn.enable_timer_interrupt.html index 386e72e5..8b23c0fa 100644 --- a/ch9-dev/os/trap/fn.enable_timer_interrupt.html +++ b/ch9-dev/os/trap/fn.enable_timer_interrupt.html @@ -1,8 +1 @@ -enable_timer_interrupt in os::trap - Rust - -
pub fn enable_timer_interrupt()
- \ No newline at end of file +enable_timer_interrupt in os::trap - Rust
pub fn enable_timer_interrupt()
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.init.html b/ch9-dev/os/trap/fn.init.html index 84ca830f..e85abde8 100644 --- a/ch9-dev/os/trap/fn.init.html +++ b/ch9-dev/os/trap/fn.init.html @@ -1,8 +1 @@ -init in os::trap - Rust - -
-

Function os::trap::init

source · []
pub fn init()
- \ No newline at end of file +init in os::trap - Rust

Function os::trap::init

source · []
pub fn init()
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.set_kernel_trap_entry.html b/ch9-dev/os/trap/fn.set_kernel_trap_entry.html index 12ce2a0b..0c23b6a1 100644 --- a/ch9-dev/os/trap/fn.set_kernel_trap_entry.html +++ b/ch9-dev/os/trap/fn.set_kernel_trap_entry.html @@ -1,8 +1 @@ -set_kernel_trap_entry in os::trap - Rust - -
fn set_kernel_trap_entry()
- \ No newline at end of file +set_kernel_trap_entry in os::trap - Rust
fn set_kernel_trap_entry()
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.set_user_trap_entry.html b/ch9-dev/os/trap/fn.set_user_trap_entry.html index f4ca593c..994b857b 100644 --- a/ch9-dev/os/trap/fn.set_user_trap_entry.html +++ b/ch9-dev/os/trap/fn.set_user_trap_entry.html @@ -1,8 +1 @@ -set_user_trap_entry in os::trap - Rust - -
fn set_user_trap_entry()
- \ No newline at end of file +set_user_trap_entry in os::trap - Rust
fn set_user_trap_entry()
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.trap_from_kernel.html b/ch9-dev/os/trap/fn.trap_from_kernel.html index 7c0785ec..2fe47cad 100644 --- a/ch9-dev/os/trap/fn.trap_from_kernel.html +++ b/ch9-dev/os/trap/fn.trap_from_kernel.html @@ -1,9 +1,2 @@ -trap_from_kernel in os::trap - Rust - -
#[no_mangle]
-pub fn trap_from_kernel(_trap_cx: &TrapContext)
- \ No newline at end of file +trap_from_kernel in os::trap - Rust
#[no_mangle]
+pub fn trap_from_kernel(_trap_cx: &TrapContext)
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.trap_handler.html b/ch9-dev/os/trap/fn.trap_handler.html index fe15deaf..1e82d168 100644 --- a/ch9-dev/os/trap/fn.trap_handler.html +++ b/ch9-dev/os/trap/fn.trap_handler.html @@ -1,9 +1,2 @@ -trap_handler in os::trap - Rust - -
-

Function os::trap::trap_handler

source · []
#[no_mangle]
-pub fn trap_handler() -> !
- \ No newline at end of file +trap_handler in os::trap - Rust
#[no_mangle]
+pub fn trap_handler() -> !
\ No newline at end of file diff --git a/ch9-dev/os/trap/fn.trap_return.html b/ch9-dev/os/trap/fn.trap_return.html index 53c57ca0..75fddb93 100644 --- a/ch9-dev/os/trap/fn.trap_return.html +++ b/ch9-dev/os/trap/fn.trap_return.html @@ -1,9 +1,2 @@ -trap_return in os::trap - Rust - -
-

Function os::trap::trap_return

source · []
#[no_mangle]
-pub fn trap_return() -> !
- \ No newline at end of file +trap_return in os::trap - Rust
#[no_mangle]
+pub fn trap_return() -> !
\ No newline at end of file diff --git a/ch9-dev/os/trap/index.html b/ch9-dev/os/trap/index.html index ba4c802e..3c4e5e5a 100644 --- a/ch9-dev/os/trap/index.html +++ b/ch9-dev/os/trap/index.html @@ -1,11 +1 @@ -os::trap - Rust - -
- \ No newline at end of file +os::trap - Rust
\ No newline at end of file diff --git a/ch9-dev/os/trap/sidebar-items.js b/ch9-dev/os/trap/sidebar-items.js index 240dedf4..2d5908b8 100644 --- a/ch9-dev/os/trap/sidebar-items.js +++ b/ch9-dev/os/trap/sidebar-items.js @@ -1 +1 @@ -initSidebarItems({"fn":[["disable_supervisor_interrupt",""],["enable_supervisor_interrupt",""],["enable_timer_interrupt",""],["init",""],["set_kernel_trap_entry",""],["set_user_trap_entry",""],["trap_from_kernel",""],["trap_handler",""],["trap_return",""]],"mod":[["context",""]]}); \ No newline at end of file +window.SIDEBAR_ITEMS = {"fn":[["disable_supervisor_interrupt",""],["enable_supervisor_interrupt",""],["enable_timer_interrupt",""],["init",""],["set_kernel_trap_entry",""],["set_user_trap_entry",""],["trap_from_kernel",""],["trap_handler",""],["trap_return",""]],"mod":[["context",""]]}; \ No newline at end of file diff --git a/ch9-dev/rustdoc.css b/ch9-dev/rustdoc.css index 674a5af6..2e22b4cf 100644 --- a/ch9-dev/rustdoc.css +++ b/ch9-dev/rustdoc.css @@ -1 +1 @@ - @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;flex-wrap:wrap;justify-content:space-between;padding-bottom:6px;margin-bottom:15px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4{border-bottom:1px solid;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;border-bottom-style:none;margin:0;padding:0;margin-top:0.6em;margin-bottom:0.4em;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p{margin:0 0 .75em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{padding:1px 6px;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{font-size:0.875rem;width:250px;min-width:200px;overflow-y:scroll;position:sticky;height:100vh;top:0;left:0;}.sidebar-elems,.sidebar>.location{padding-left:24px;}.sidebar .location{overflow-wrap:anywhere;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(#sidebar-toggle){opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*:not(#sidebar-toggle){opacity:1;visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.hidden{display:none !important;}.sidebar .logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.block{padding:0;}.block ul,.block li{padding:0;margin:0;list-style:none;}.block a,h2.location a{display:block;padding:0.25rem;margin-left:-0.25rem;text-overflow:ellipsis;overflow:hidden;}.sidebar h2{border-bottom:none;font-weight:500;padding:0;margin:0;margin-top:0.7rem;margin-bottom:0.7rem;}.sidebar h3{font-size:1.125rem;font-weight:500;padding:0;margin:0;}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;}.mobile-topbar{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.line-numbers{text-align:right;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;font-size:1.125rem;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.125rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.875rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.item-info{display:block;}.content .item-info code{font-size:0.875rem;}.content .item-info{position:relative;margin-left:24px;}.sub-variant>div>.item-info{margin-top:initial;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;margin-left:0;}nav.sub{flex-grow:1;margin-bottom:25px;}.source nav.sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.block a.current.crate{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.25rem;}.search-container{position:relative;display:flex;height:34px;}.search-container>*{height:100%;}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.25em;padding-left:0.3125em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container{margin-top:4px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:1px solid;border-radius:2px;padding:8px;font-size:1rem;transition:border-color 300ms ease;width:100%;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:inline-block;}.stab{padding:3px;margin-bottom:5px;font-size:0.875rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.25rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.875rem;line-height:1.2;margin-bottom:0;margin-left:0.3125em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.rightside{float:right;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}a.test-arrow:hover{text-decoration:none;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;}h3.variant{font-weight:600;font-size:1.125rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;display:block;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#sidebar-toggle{position:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-38px;top:4px;}.theme-picker button{outline:none;}#settings-menu,#help-button{margin-left:4px;outline:none;}#theme-picker,#copy-path{height:34px;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:5px;width:33px;border:1px solid;border-radius:2px;cursor:pointer;}#help-button{font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:20px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.125rem;display:block;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.625rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{padding-top:0px;display:block;}main{padding-left:15px;padding-top:0px;}.rustdoc,.main-heading{flex-direction:column;}.content .out-of-band{text-align:left;margin-left:initial;padding:initial;}.content .out-of-band .since::before{content:"Since ";}#copy-path{display:none;}.sidebar .sidebar-logo,.sidebar .location{display:none;}.sidebar-elems{margin-top:1em;}.sidebar{position:fixed;top:45px;left:-1000px;margin-left:0;background-color:rgba(0,0,0,0);margin:0;padding:0;z-index:11;height:calc(100vh - 45px);}.source main,.source .sidebar{top:0;padding:0;}.sidebar.shown,.sidebar.expanded,.sidebar:focus-within{left:0;}.rustdoc.source>.sidebar{position:fixed;margin:0;z-index:11;width:0;}.mobile-topbar .location a{padding:0;margin:0;}.mobile-topbar .location{border:none;padding:0;margin:auto 0.5em auto auto;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:24px;}.mobile-topbar .logo-container{max-height:45px;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin-left:20px;margin-top:5px;margin-bottom:5px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.source .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;}.source nav:not(.sidebar).sub{margin-left:32px;}#theme-picker{display:none;width:0;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}#crate-search{border-radius:4px;border:0;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.method-toggle summary,.implementors-toggle summary,.impl{margin-bottom:0.75em;}.method-toggle[open]{margin-bottom:2em;}.implementors-toggle[open]{margin-bottom:2em;}#trait-implementations-list .method-toggle,#synthetic-implementations-list .method-toggle,#blanket-implementations-list .method-toggle{margin-bottom:1em;}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;} \ No newline at end of file + @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;border-bottom-color:var(--headings-border-bottom-color);}h2,h3,h4{border-bottom-color:var(--headings-border-bottom-color);}.main-heading{display:flex;flex-wrap:wrap;justify-content:space-between;padding-bottom:6px;margin-bottom:15px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;border-bottom-style:none;margin:0;padding:0;margin-top:0.6em;margin-bottom:0.4em;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>.since,#help-button>button,details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before,.scraped-example-title,.more-examples-toggle summary,.more-examples-toggle .hide-more,.example-links a,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}h1,h2,h3,h4,a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a,.search-results a,.module-item .stab,.import-item .stab,.result-name .primitive>i,.result-name .keyword>i,.content .method .where,.content .fn .where,.content .where.fmt-newline{color:var(--main-color);}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p{margin:0 0 .75em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{padding:1px 6px;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:var(--sidebar-background-color);}.sidebar{font-size:0.875rem;width:250px;min-width:200px;overflow-y:scroll;position:sticky;height:100vh;top:0;left:0;}.sidebar-elems,.sidebar>.location{padding-left:24px;}.sidebar .location{overflow-wrap:anywhere;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.rustdoc.source .sidebar .sidebar-logo{display:none;}.source .sidebar,#sidebar-toggle,#source-sidebar{background-color:var(--sidebar-background-color);}#sidebar-toggle>button:hover,#sidebar-toggle>button:focus{background-color:var(--sidebar-background-color-hover);}.source .sidebar>*:not(#sidebar-toggle){opacity:0;visibility:hidden;}.source-sidebar-expanded .source .sidebar{overflow-y:auto;}.source-sidebar-expanded .source .sidebar>*:not(#sidebar-toggle){opacity:1;visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.sidebar .logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.block{padding:0;}.block ul,.block li{padding:0;margin:0;list-style:none;}.block a,h2.location a{display:block;padding:0.25rem;margin-left:-0.25rem;text-overflow:ellipsis;overflow:hidden;}.sidebar h2{border-bottom:none;font-weight:500;padding:0;margin:0;margin-top:0.7rem;margin-bottom:0.7rem;}.sidebar h3{font-size:1.125rem;font-weight:500;padding:0;margin:0;}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;}.mobile-topbar{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.line-numbers{text-align:right;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:var(--headings-border-bottom-color);}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information):not(.more-examples-toggle){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;font-size:1.125rem;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header{max-width:calc(100% - 41px);display:block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}.docblock code,.docblock-short code,pre,.rustdoc.source .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}#main-content>.since{top:inherit;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.125rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.875rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.item-info{display:block;}.content .item-info code{font-size:0.875rem;}.content .item-info{position:relative;margin-left:24px;}.sub-variant>div>.item-info{margin-top:initial;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;margin-left:0;}nav.sub{flex-grow:1;margin-bottom:25px;}.source nav.sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):not(.scrape-help):hover,.docblock-short a:not(.srclink):not(.test-arrow):not(.scrape-help):hover,.item-info a{text-decoration:underline;}.block a.current.crate{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.25rem;}.search-container{position:relative;display:flex;height:34px;}.search-container>*{height:100%;}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;padding-left:0.15em;padding-right:23px;border:1px solid;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");max-width:100%;text-overflow:ellipsis;}.search-container{margin-top:4px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:1px solid;border-radius:2px;padding:8px;font-size:1rem;width:100%;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}.popover{font-size:1rem;position:absolute;right:0;z-index:2;display:block;margin-top:7px;border-radius:3px;border:1px solid;font-size:1rem;}.popover::before{content:'';position:absolute;right:11px;border:solid;border-width:1px 1px 0 0;display:inline-block;padding:4px;transform:rotate(-45deg);top:-5px;}.popover,.popover::before{background-color:var(--main-background-color);color:var(--main-color);}#help-button .popover{max-width:600px;}#help-button .popover::before{right:48px;}#help-button dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help-button span.top,#help-button span.bottom{text-align:center;display:block;font-size:1.125rem;}#help-button span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help-button span.bottom{clear:both;border-top:1px solid;}.side-by-side{text-align:initial;}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{width:fit-content;min-height:36px;display:flex;align-items:center;white-space:pre-wrap;}.stab{padding:3px;margin-bottom:5px;font-size:0.875rem;font-weight:normal;}.stab p{display:inline;margin:0;}.stab .emoji{font-size:1.25rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.875rem;line-height:1.2;margin-bottom:0;margin-left:0.3125em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.rightside{float:right;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}a.test-arrow:hover{text-decoration:none;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;}h3.variant{font-weight:600;font-size:1.125rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;display:block;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:first-child:last-child{margin-right:1px;width:calc(100% - 1px);}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#sidebar-toggle{position:sticky;top:0;left:0;font-weight:bold;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}#sidebar-toggle>button{background:none;color:inherit;cursor:pointer;text-align:center;border:none;outline:none;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;-webkit-appearance:none;opacity:1;}#settings-menu,#help-button{margin-left:4px;outline:none;}#copy-path{height:34px;}#settings-menu>a,#help-button>button,#copy-path{padding:5px;width:33px;border:1px solid;border-radius:2px;cursor:pointer;}#settings-menu{padding:0;}#settings-menu>a,#help-button>button{padding:5px;height:100%;display:block;}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}.setting-line .radio-line input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-line .radio-line input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-line .radio-line input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-line .radio-line input:hover{border-color:var(--settings-input-color) !important;}input:checked+.slider{background-color:var(--settings-input-color);}#help-button>button{text-align:center;font-size:20px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.125rem;display:block;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 13px;list-style-position:outside;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}.docblock summary>*{display:inline-block;}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.source-sidebar-expanded .source .sidebar+main .width-limiter .sub-logo-container.rust-logo{display:none;}.source-sidebar-expanded .source .sidebar{width:300px;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{padding-top:0px;display:block;}main{padding-left:15px;padding-top:0px;}.rustdoc,.main-heading{flex-direction:column;}.content .out-of-band{text-align:left;margin-left:initial;padding:initial;}.content .out-of-band .since::before{content:"Since ";}#copy-path{display:none;}.sidebar .sidebar-logo,.sidebar .location{display:none;}.sidebar-elems{margin-top:1em;}.sidebar{position:fixed;top:45px;left:-1000px;margin-left:0;margin:0;padding:0;z-index:11;height:calc(100vh - 45px);}.source main,.rustdoc.source .sidebar{top:0;padding:0;height:100vh;border:0;}.sidebar.shown,.source-sidebar-expanded .source .sidebar,.sidebar:focus-within{left:0;}.rustdoc.source>.sidebar{position:fixed;margin:0;z-index:11;width:0;}.mobile-topbar .location a{padding:0;margin:0;}.mobile-topbar .location{border:none;padding:0;margin:auto 0.5em auto auto;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:24px;}.mobile-topbar .logo-container{max-height:45px;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin-left:20px;margin-top:5px;margin-bottom:5px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.source .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;}.sidebar-elems{background-color:var(--sidebar-background-color);}.source nav:not(.sidebar).sub{margin-left:32px;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}#sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}.source-sidebar-expanded #sidebar-toggle{left:unset;top:unset;width:unset;border-top-right-radius:unset;border-bottom-right-radius:unset;position:sticky;border:0;border-bottom:1px solid;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source-sidebar-expanded .source .sidebar{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sidebar,nav.sub,.content .out-of-band,a.srclink,#copy-path,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle>summary::before,details.rustdoc-toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}#crate-search{border-radius:4px;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}#sidebar-toggle{top:10px;}.source-sidebar-expanded #sidebar-toggle{top:unset;}}.method-toggle summary,.implementors-toggle summary,.impl{margin-bottom:0.75em;}.method-toggle[open]{margin-bottom:2em;}.implementors-toggle[open]{margin-bottom:2em;}#trait-implementations-list .method-toggle,#synthetic-implementations-list .method-toggle,#blanket-implementations-list .method-toggle{margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;background:transparent;border-width:1px;border-style:solid;border-radius:50px;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:240px;}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow-x:hidden;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;margin-bottom:5px;cursor:pointer;}.more-scraped-examples{margin-left:5px;display:flex;flex-direction:row;}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;}.example-links ul{margin-bottom:0;} \ No newline at end of file diff --git a/ch9-dev/search-index.js b/ch9-dev/search-index.js index 607242a7..25557cad 100644 --- a/ch9-dev/search-index.js +++ b/ch9-dev/search-index.js @@ -1,4 +1,5 @@ var searchIndex = JSON.parse('{\ -"os":{"doc":"","t":[3,12,11,0,11,11,11,11,11,5,0,0,11,0,11,0,0,11,0,0,11,11,14,14,5,11,11,0,0,0,0,0,0,11,11,11,11,11,11,11,6,17,6,17,17,17,17,17,8,17,3,17,17,17,17,17,12,11,11,11,11,11,11,5,10,11,5,10,11,10,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,3,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,3,12,11,5,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,0,11,11,12,13,13,12,4,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,11,11,13,12,12,13,12,12,12,12,12,12,12,12,12,12,11,4,12,12,12,12,12,12,12,3,12,12,12,12,12,12,12,12,12,12,12,12,12,12,3,3,3,3,3,17,17,17,17,17,17,12,12,17,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,3,17,3,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,5,5,5,11,11,11,11,11,8,3,12,11,11,11,11,11,11,11,11,10,11,0,11,11,10,11,11,11,11,11,11,11,11,11,10,18,18,18,18,3,3,3,3,3,3,18,18,3,18,18,3,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,8,3,17,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,12,8,3,3,17,17,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,13,3,13,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,0,0,10,10,0,10,10,18,3,3,3,18,18,3,18,18,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,5,11,11,11,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,13,13,13,3,3,17,4,11,12,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,10,10,0,0,0,0,10,0,0,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,7,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,0,0,0,5,0,0,12,12,12,12,17,17,3,3,3,3,8,17,6,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,8,6,3,3,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,12,11,5,5,5,11,11,11,11,5,11,11,11,10,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,7,5,5,5,13,13,3,3,3,4,3,18,18,18,18,12,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,5,5,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,18,18,18,3,3,3,18,18,3,3,18,18,18,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,5,5,5,5,5,0,0,0,0,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,8,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,3,3,3,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,0,0,0,5,0,5,5,5,5,5,5,3,7,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,12,5,11,5,5,11,11,11,5,11,11,0,5,11,5,11,0,11,0,11,11,0,0,11,11,0,5,0,0,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,11,11,11,11,11,11,11,11,12,12,17,3,3,3,3,3,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,12,12,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,11,11,5,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,11,11,11,11,11,11,12,11,11,11,12,12,12,11,11,11,11,11,12,12,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,5,5,5,5,5,11,11,11,11,12,11,11,11,11,11,11,11,5,11,11,11,11,5,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,18,18,18,18,18,3,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,13,13,13,3,3,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,3,3,12,5,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,12,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,5,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,5,5,5,5,5,5,5,5,5,3,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,12],"n":["DEV_NON_BLOCKING_ACCESS","__private_field","az","board","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","clear_bss","config","console","deref","drivers","from","fs","gui","into","lang_items","mm","overflowing_as","overflowing_cast_from","print","println","rust_main","saturating_as","saturating_cast_from","sbi","sync","syscall","task","timer","trap","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","BlockDeviceImpl","CLOCK_FREQ","CharDeviceImpl","EXIT_FAILURE","EXIT_FAILURE_FLAG","EXIT_RESET","EXIT_SUCCESS","MMIO","QEMUExit","QEMU_EXIT_HANDLE","RISCV64","VIRTGPU_XRES","VIRTGPU_YRES","VIRT_PLIC","VIRT_TEST","VIRT_UART","addr","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","device_init","exit","exit","exit_code_encode","exit_failure","exit_failure","exit_success","exit_success","from","into","irq_handler","new","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","MEMORY_END","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT_BASE","USER_STACK_SIZE","Stdout","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","from","into","overflowing_as","overflowing_cast_from","print","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","write_str","block","chardev","gpu","input","plic","BLOCK_DEVICE","__private_field","az","block_device_test","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","deref","from","into","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","sdcard","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","virtio_blk","wrapping_as","wrapping_cast_from","0","ACMD23","ACMD41","CID_CRC","CMD","CMD0","CMD10","CMD12","CMD16","CMD17","CMD18","CMD24","CMD25","CMD55","CMD58","CMD59","CMD8","CMD9","CMDFailed","CSDStruct","CSD_CRC","CS_HIGH","CS_LOW","CannotGetCardInfo","CardBlockSize","CardCapacity","CardCapacityStatusNotSet","CardComdClasses","ContentProtectAppli","CopyFlag","DSRImpl","DeviceSize","ECC","EraseGrMul","EraseGrSize","FileFormat","FileFormatGroup","HIGH_SPEED_ENABLE","InitError","ManDeflECC","ManufactDate","ManufacturerID","MaxBusClkFrec","MaxWrBlockLen","NSAC","OEM_AppliID","PERIPHERALS","PartBlockRead","PermWrProtect","ProdName1","ProdName2","ProdRev","ProdSN","RdBlockLen","RdBlockMisalign","Reserved1","Reserved1","Reserved2","Reserved2","Reserved3","Reserved4","SDCard","SDCardCID","SDCardCSD","SDCardInfo","SDCardWrapper","SD_CS","SD_CS_GPIONUM","SD_START_DATA_MULTIPLE_BLOCK_READ","SD_START_DATA_MULTIPLE_BLOCK_WRITE","SD_START_DATA_SINGLE_BLOCK_READ","SD_START_DATA_SINGLE_BLOCK_WRITE","SD_cid","SD_csd","SEC_LEN","SysSpecVersion","TAAC","TempWrProtect","WrBlockMisalign","WrProtectGrEnable","WrProtectGrSize","WrSpeedFact","WriteBlockPaPartial","__private_field","az","az","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cs_gpionum","deref","end_cmd","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_cardinfo","get_cidregister","get_csdregister","get_dataresponse","get_response","handle_irq","init","init_sdcard","into","into","into","into","into","into","into","into","io_init","lowlevel_init","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","read_block","read_data","read_sector","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","send_cmd","spi","spi_cs","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","write_block","write_data","write_sector","0","0","1","QUEUE_FRAMES","VIRTIO0","VirtIOBlock","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","condvars","deref","from","from","handle_irq","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","read_block","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","virtio_blk","virtio_dma_alloc","virtio_dma_dealloc","virtio_phys_to_virt","virtio_virt_to_phys","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","write_block","CharDevice","UART","__private_field","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","deref","from","handle_irq","into","ns16550a","overflowing_as","overflowing_cast_from","read","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","write","AUX_OUTPUT1","AUX_OUTPUT2","DATA_AVAILABLE","DATA_TERMINAL_READY","IER","LSR","MCR","NS16550a","NS16550aInner","NS16550aRaw","REQUEST_TO_SEND","RX_AVAILABLE","ReadWithoutDLAB","THR_EMPTY","TX_EMPTY","WriteWithoutDLAB","_padding0","_padding1","_padding1","_padding2","all","all","all","az","az","az","az","az","az","az","az","base_addr","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","complement","complement","complement","condvar","contains","contains","contains","difference","difference","difference","empty","empty","empty","eq","eq","eq","extend","extend","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_iter","from_iter","from_iter","handle_irq","hash","hash","hash","ier","ier","iir","init","inner","insert","insert","insert","intersection","intersection","intersection","intersects","intersects","intersects","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_empty","is_empty","is_empty","lcr","lcr","lsr","lsr","mcr","mcr","ne","ne","ne","new","new","not","not","not","ns16550a","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","partial_cmp","partial_cmp","rbr","read","read","read_buffer","read_end","remove","remove","remove","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","set","set","sub","sub","sub","sub_assign","sub_assign","sub_assign","symmetric_difference","symmetric_difference","symmetric_difference","thr","to_owned","to_owned","to_owned","toggle","toggle","toggle","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","union","union","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","write","write","write_end","BMP_DATA","GPUDevice","GPU_DEVICE","VIRTIO7","VirtIOGPU","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","fb","flush","flush","from","from","getfreambuffer","getfreambuffer","gpu","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","update_cursor","update_cursor","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","0","INPUTDevice","KEYBOARD_DEVICE","MOUSE_DEVICE","VIRTIO5","VIRTIO6","VirtIOINPUT","__private_field","__private_field","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","from","from","from","handle_irq","handle_irq","into","into","into","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","IntrTargetPriority","Machine","PLIC","Supervisor","az","az","base_addr","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","claim","claim_comp_ptr_of_hart_with_priority","clone","clone_into","complete","disable","enable","enable_ptr","from","from","get_priority","get_threshold","hart_id_with_priority","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","priority_ptr","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","set_priority","set_threshold","supported_number","threshold_ptr_of_hart_with_priority","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","File","inode","pipe","read","readable","stdio","writable","write","CREATE","OSInode","OSInodeInner","OpenFlags","RDONLY","RDWR","ROOT_INODE","TRUNC","WRONLY","__private_field","all","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","cmp","complement","contains","deref","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","inner","inode","insert","intersection","intersects","into","into","into","into","is_all","is_empty","list_apps","ne","new","not","offset","open_file","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","read","read_all","read_write","readable","readable","remove","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","union","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","writable","write","Empty","Full","Normal","Pipe","PipeRingBuffer","RING_BUFFER_SIZE","RingBufferStatus","all_write_ends_closed","arr","available_read","available_write","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buffer","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","eq","from","from","from","head","into","into","into","make_pipe","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","read","read_byte","read_end_with_buffer","readable","readable","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","set_write_end","status","tail","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","writable","write","write_byte","write_end","write_end_with_buffer","Stdin","Stdout","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","read","read","readable","readable","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","writable","writable","write","write","Component","add","bound","button","graphic","icon","image","paint","panel","terminal","Button","ButtonInner","add","az","az","borrow","borrow","borrow_mut","borrow_mut","bound","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","graphic","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","paint","parent","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","text","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","Graphics","az","borrow","borrow_mut","bounding_box","cast_from","checked_as","checked_cast_from","clipped","clone","clone_into","color_converted","cropped","draw_iter","drv","from","into","new","overflowing_as","overflowing_cast_from","point","saturating_as","saturating_cast_from","size","size","to_owned","translated","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","FILEICON","IconController","IconControllerInner","add","az","az","borrow","borrow","borrow_mut","borrow_mut","bound","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","files","from","from","graphic","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","paint","parent","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","ImageComp","ImageInner","add","az","az","borrow","borrow","borrow_mut","borrow_mut","bound","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","graphic","image","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","paint","parent","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","Panel","PanelInner","add","az","az","borrow","borrow","borrow_mut","borrow_mut","bound","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","comps","from","from","graphic","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","paint","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","Terminal","TerminalInner","add","az","az","borrow","borrow","borrow_mut","borrow_mut","bound","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","comps","from","from","graphic","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","paint","repaint","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","text","titel","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","backtrace","panic","address","frame_allocator","heap_allocator","init","memory_set","page_table","0","0","0","0","PA_WIDTH_SV39","PPN_WIDTH_SV39","PhysAddr","PhysPageNum","SimpleRange","SimpleRangeIterator","StepByOne","VA_WIDTH_SV39","VPNRange","VPN_WIDTH_SV39","VirtAddr","VirtPageNum","aligned","aligned","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","ceil","ceil","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","current","draw","end","eq","eq","eq","eq","floor","floor","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bytes_array","get_end","get_mut","get_mut","get_pte_array","get_ref","get_start","indexes","into","into","into","into","into","into","into_iter","into_iter","l","ne","ne","ne","ne","new","new","next","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","page_offset","page_offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","step","step","step","to_owned","to_owned","to_owned","to_owned","to_owned","translated","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","FRAME_ALLOCATOR","FrameAllocator","FrameAllocatorImpl","FrameTracker","StackFrameAllocator","__private_field","alloc","alloc","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","current","dealloc","dealloc","deref","drop","end","fmt","frame_alloc","frame_allocator_test","frame_dealloc","from","from","from","init","init_frame_allocator","into","into","into","new","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","ppn","recycled","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","HEAP_ALLOCATOR","HEAP_SPACE","handle_alloc_error","heap_test","init_heap","Framed","Identical","KERNEL_SPACE","MapArea","MapPermission","MapType","MemorySet","R","U","W","X","__private_field","activate","all","areas","az","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone_into","clone_into","cmp","complement","contains","copy_data","data_frames","deref","difference","ebss","edata","ekernel","empty","eq","eq","erodata","etext","extend","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_another","from_bits","from_bits_truncate","from_bits_unchecked","from_elf","from_existed_user","from_iter","hash","insert","insert_framed_area","intersection","intersects","into","into","into","into","into","is_all","is_empty","kernel_token","map","map_one","map_perm","map_trampoline","map_type","ne","new","new_bare","new_kernel","not","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","page_table","partial_cmp","push","recycle_data_pages","remap_test","remove","remove_area_with_start_vpn","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","sbss_with_stack","sdata","set","srodata","stext","strampoline","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unmap_one","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","vpn_range","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","A","D","G","PTEFlags","PageTable","PageTableEntry","R","U","UserBuffer","UserBufferIterator","V","W","X","all","az","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffers","buffers","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone_into","clone_into","cmp","complement","contains","current_buffer","current_idx","difference","empty","empty","eq","executable","extend","find_pte","find_pte_create","flags","fmt","fmt","fmt","fmt","fmt","frames","from","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","from_token","hash","insert","intersection","intersects","into","into","into","into","into","into_iter","into_iter","is_all","is_empty","is_valid","len","map","ne","new","new","new","next","not","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","ppn","readable","remove","root_ppn","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","translate_va","translated_byte_buffer","translated_ref","translated_refmut","translated_str","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","SBI_CLEAR_IPI","SBI_CONSOLE_GETCHAR","SBI_CONSOLE_PUTCHAR","SBI_REMOTE_FENCE_I","SBI_REMOTE_SFENCE_VMA","SBI_REMOTE_SFENCE_VMA_ASID","SBI_SEND_IPI","SBI_SET_TIMER","SBI_SHUTDOWN","console_getchar","console_putchar","sbi_call","set_timer","shutdown","condvar","mutex","semaphore","up","Condvar","CondvarInner","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","signal","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wait_no_sched","wait_queue","wait_with_mutex","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","Mutex","MutexBlocking","MutexBlockingInner","MutexSpin","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","from","from","from","inner","into","into","into","lock","lock","lock","locked","locked","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unlock","unlock","unlock","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wait_queue","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","Semaphore","SemaphoreInner","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","count","down","from","from","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","up","wait_queue","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","0","INTR_MASKING_INFO","IntrMaskingInfo","UPIntrFreeCell","UPIntrRefMut","UPSafeCellRaw","__private_field","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","deref_mut","drop","enter","exclusive_access","exclusive_session","exit","from","from","from","from","from","get_mut","inner","inner","into","into","into","into","into","nested_level","new","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","sie_before_masking","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","SYSCALL_CLOSE","SYSCALL_CONDVAR_CREATE","SYSCALL_CONDVAR_SIGNAL","SYSCALL_CONDVAR_WAIT","SYSCALL_CREATE_DESKTOP","SYSCALL_DUP","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_GETPID","SYSCALL_GETTID","SYSCALL_GET_TIME","SYSCALL_KILL","SYSCALL_MUTEX_CREATE","SYSCALL_MUTEX_LOCK","SYSCALL_MUTEX_UNLOCK","SYSCALL_OPEN","SYSCALL_PIPE","SYSCALL_READ","SYSCALL_SEMAPHORE_CREATE","SYSCALL_SEMAPHORE_DOWN","SYSCALL_SEMAPHORE_UP","SYSCALL_SLEEP","SYSCALL_THREAD_CREATE","SYSCALL_WAITPID","SYSCALL_WAITTID","SYSCALL_WRITE","SYSCALL_YIELD","fs","gui","process","sync","syscall","thread","sys_close","sys_dup","sys_open","sys_pipe","sys_read","sys_write","DESKTOP","DT","PAD","__private_field","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","create_desktop","create_terminal","deref","deref","from","from","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_kill","sys_waitpid","sys_yield","sys_condvar_create","sys_condvar_signal","sys_condvar_wait","sys_mutex_create","sys_mutex_lock","sys_mutex_unlock","sys_semaphore_create","sys_semaphore_down","sys_semaphore_up","sys_sleep","sys_gettid","sys_thread_create","sys_waittid","INITPROC","__private_field","add_initproc","az","block_current_and_run_next","block_current_task","borrow","borrow_mut","cast_from","check_signals_of_current","checked_as","checked_cast_from","context","current_add_signal","deref","exit_current_and_run_next","from","id","into","manager","overflowing_as","overflowing_cast_from","process","processor","saturating_as","saturating_cast_from","signal","suspend_current_and_run_next","switch","task","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","TaskContext","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","from","goto_trap_return","into","overflowing_as","overflowing_cast_from","ra","s","saturating_as","saturating_cast_from","sp","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","zero_init","0","0","IDLE_PID","KSTACK_ALLOCATOR","KernelStack","PID_ALLOCATOR","PidHandle","RecycleAllocator","TaskUserRes","__private_field","__private_field","alloc","alloc_tid","alloc_user_res","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","current","dealloc","dealloc_tid","dealloc_user_res","deref","deref","drop","drop","drop","from","from","from","from","from","from","get_top","into","into","into","into","into","into","kernel_stack_position","kstack_alloc","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","pid_alloc","process","push_on_top","recycled","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","tid","trap_cx_bottom_from_tid","trap_cx_ppn","trap_cx_user_va","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","ustack_base","ustack_base","ustack_bottom_from_tid","ustack_top","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","PID2PCB","TASK_MANAGER","TaskManager","__private_field","__private_field","add","add_task","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","fetch","fetch_task","from","from","from","insert_into_pid2process","into","into","into","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","pid2process","ready_queue","remove_from_pid2process","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","ProcessControlBlock","ProcessControlBlockInner","alloc_fd","alloc_tid","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","children","condvar_list","dealloc_tid","exec","exit_code","fd_table","fork","from","from","get_task","get_user_token","getpid","inner","inner_exclusive_access","into","into","is_zombie","memory_set","mutex_list","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","parent","pid","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","semaphore_list","signals","task_res_allocator","tasks","thread_count","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","PROCESSOR","Processor","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","current","current","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","from","from","get_idle_task_cx_ptr","idle_task_cx","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","run_tasks","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","schedule","take_current","take_current_task","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","SIGABRT","SIGFPE","SIGILL","SIGINT","SIGSEGV","SignalFlags","all","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow_mut","cast_from","check_error","checked_as","checked_cast_from","clone","clone_into","cmp","complement","contains","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","insert","intersection","intersects","into","is_all","is_empty","ne","not","overflowing_as","overflowing_cast_from","partial_cmp","remove","saturating_as","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_into","type_id","union","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","__switch","Blocking","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","eq","exit_code","from","from","from","get_status","get_trap_cx","get_user_token","inner","inner_exclusive_access","into","into","into","kstack","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","process","res","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","task_cx","task_status","to_owned","trap_cx_ppn","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","MSEC_PER_SEC","TICKS_PER_SEC","TIMERS","TimerCondVar","__private_field","add_timer","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","check_timer","checked_as","checked_as","checked_cast_from","checked_cast_from","cmp","deref","eq","expire_ms","from","from","get_time","get_time_ms","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","partial_cmp","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","set_next_trigger","task","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","context","disable_supervisor_interrupt","enable_supervisor_interrupt","enable_timer_interrupt","init","set_kernel_trap_entry","set_user_trap_entry","trap_from_kernel","trap_handler","trap_return","TrapContext","app_init_context","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","fmt","from","into","kernel_satp","kernel_sp","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","sepc","set_sp","sstatus","trap_handler","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","x"],"q":["os","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::board","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::config","","","","","","","","os::console","","","","","","","","","","","","","","","","","","","","","","os::drivers","","","","","os::drivers::block","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::block::sdcard","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::block::sdcard::InitError","","","os::drivers::block::virtio_blk","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::chardev","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::chardev::ns16550a","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::gpu","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::input","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::plic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs","","","","","","","","os::fs::inode","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs::pipe","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs::stdio","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::gui","","","","","","","","","","os::gui::button","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::gui::graphic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::gui::icon","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::gui::image","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::gui::panel","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::gui::terminal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::lang_items","","os::mm","","","","","","os::mm::address","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::frame_allocator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::heap_allocator","","","","","os::mm::memory_set","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::page_table","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sbi","","","","","","","","","","","","","","os::sync","","","","os::sync::condvar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sync::mutex","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sync::semaphore","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sync::up","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall::fs","","","","","","os::syscall::gui","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall::process","","","","","","","","os::syscall::sync","","","","","","","","","","os::syscall::thread","","","os::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::context","","","","","","","","","","","","","","","","","","","","","","","","","os::task::id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::manager","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::process","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::signal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::switch","os::task::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::timer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::trap","","","","","","","","","","os::trap::context","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","RISCV64 configuration","","","","","","Address of the sifive_test mapped device.","","","","","","","","Exit with specified return code.","Exit qemu with specified exit code.","Encode the exit code using EXIT_FAILURE_FLAG.","Exit QEMU using EXIT_FAILURE, aka 1.","","Exit QEMU using EXIT_SUCCESS, aka 0, if possible.","","Returns the argument unchanged.","Calls U::from(self).","","Create an instance.","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","Number of blocks to erase (SDC) ","Initiate initialization process (SDC) ","","SD commands ","Software reset ","Read CID register ","Stop to read data ","Change R/W block size ","Read block ","Read multiple blocks ","Write a block ","Write multiple blocks ","Leading command for ACMD* ","Read OCR ","Enable/disable CRC check ","Check voltage range (SDC V2) ","Read CSD register ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Card Identification Data: CID Register","Card Specific Data: CSD Register","Card information","","CS value passed to SPI controller, this is a dummy value …","GPIOHS GPIO number to use for controlling the SD card CS …","Data token start byte, Start Multiple Block Read ","Data token start byte, Start Multiple Block Write ","Data token start byte, Start Single Block Read ","Data token start byte, Start Single Block Write ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Connect pins to internal functions ","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","InterruptEnableRegister","LineStatusRegister","Model Control Register","","","","","","","","","","ignore FCR","ignore MSR","ignore other registers","ignore SCR","Returns the set containing all flags.","Returns the set containing all flags.","Returns the set containing all flags.","","","","","","","","","","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Adds the set of flags.","Adds the set of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","","","","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Toggles the set of flags.","Toggles the set of flags.","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns an empty set of flags.","Returns an empty set of flags.","Returns an empty set of flags.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","","","","","","","","interrupt enable register","interrupt enable register","interrupt identification register","","","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","line control register","line control register","line status register","line status register","model control register","modem control register","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","","","","","","","","","","","","","","","","","","","","receiver buffer register","","","","","Removes the specified flags in-place.","Removes the specified flags in-place.","Removes the specified flags in-place.","","","","","","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","transmitter holding register","","","","Toggles the specified flags in-place.","Toggles the specified flags in-place.","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","Returns the complement of this set of flags.","","","","","","","","","","","","","","Do not check validity for simplicity Return (readable, …","","","Removes the specified flags in-place.","","","","","","","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (read_end, write_end)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Definitions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","data: start-aligned but maybe with shorter length assume …","","","Returns the difference between the flags in self and other.","","","","Returns an empty set of flags.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Include sections in elf and trampoline, also returns …","","","","Inserts the specified flags in-place.","Assume that no conflicts.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","Mention that trampoline is not collected by areas.","","","","","Without kernel stacks.","Returns the complement of this set of flags.","","","","","","","","","","","","","","","","Removes the specified flags in-place.","","","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","","","","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","Temporarily used to get arguments from user space.","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","","","","","Returns the complement of this set of flags.","","","","","","","","","","","","","","Removes the specified flags in-place.","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","Load a string from other address spaces into kernel space …","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Panic if the data has been borrowed.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","inner data","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","","","","","thread does not exist, return -1 thread has not exited …","","","","","","This function must be followed by a schedule","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (bottom, top) of a kernel stack in kernel space.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Only support processes with a single thread.","","","Only support processes with a single thread.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","Returns the complement of this set of flags.","","","","Removes the specified flags in-place.","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","",""],"i":[0,1,1,0,1,1,1,1,1,0,0,0,1,0,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,0,3,2,0,3,2,3,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,0,5,5,6,7,7,8,0,7,7,7,7,7,7,7,7,7,7,7,7,7,9,10,10,11,11,9,12,12,9,10,10,10,10,10,10,10,10,10,10,11,0,10,8,8,10,10,10,8,0,10,10,8,8,8,8,10,10,10,8,10,8,10,10,0,0,0,0,0,0,0,0,0,0,0,12,12,0,10,10,10,10,10,10,10,10,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,7,9,10,8,12,7,9,10,8,12,11,13,11,7,7,9,10,8,12,11,6,7,9,10,8,12,13,11,11,11,11,11,6,11,0,11,6,7,9,10,8,12,13,0,11,11,6,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,6,11,11,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,11,11,7,9,10,8,12,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,11,6,7,9,10,8,12,13,6,11,11,14,15,14,0,0,0,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,17,16,17,17,16,17,16,17,17,16,17,16,17,16,17,16,17,16,17,16,17,16,17,0,0,0,0,17,16,17,16,17,0,0,18,18,18,18,18,18,18,18,18,19,18,0,18,18,19,18,18,18,18,18,18,18,18,18,19,20,20,21,20,0,0,0,0,0,0,20,22,0,21,22,0,23,24,23,24,22,21,20,24,23,25,26,27,22,21,20,25,22,21,20,22,21,20,22,21,20,22,21,20,22,21,20,22,21,20,22,21,20,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,22,21,20,22,21,20,22,21,20,22,21,20,27,22,21,20,22,21,20,22,21,20,22,21,20,22,21,20,22,22,22,22,22,21,21,21,21,21,20,20,20,20,20,24,23,25,26,27,22,21,20,22,21,20,22,21,20,22,21,20,22,21,20,27,22,21,20,24,23,24,25,27,22,21,20,22,21,20,22,21,20,24,23,25,26,27,22,21,20,22,21,20,22,21,20,24,23,24,23,24,23,22,21,20,25,27,22,21,20,26,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,22,21,20,24,25,27,26,25,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,22,21,20,22,21,20,22,21,20,22,21,20,23,22,21,20,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,24,23,25,26,27,22,21,20,25,27,25,0,0,0,0,0,28,29,28,29,28,29,28,29,28,29,28,29,28,28,29,30,29,29,28,30,29,29,29,28,29,29,28,29,28,29,28,29,28,29,28,29,28,29,28,29,28,29,28,30,29,29,28,29,28,31,0,0,0,0,0,0,32,33,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,32,33,31,32,33,34,31,31,32,33,31,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,31,32,33,0,35,0,35,36,35,36,36,35,36,35,36,35,36,35,36,35,36,36,35,35,36,36,36,36,36,35,36,36,36,36,35,36,36,35,36,35,36,36,35,36,35,36,36,35,36,35,36,35,36,35,36,35,36,35,36,35,36,35,36,35,0,0,0,37,37,0,37,37,38,0,0,0,38,38,0,38,38,39,38,40,41,39,38,38,38,38,38,38,38,38,38,40,41,39,38,40,41,39,38,40,41,39,38,40,41,39,38,40,41,39,38,38,38,38,38,38,39,38,38,38,38,38,38,38,38,38,40,41,39,38,38,38,38,38,38,40,41,38,38,38,40,41,39,38,38,38,0,38,40,38,41,0,40,41,39,38,40,41,39,38,38,40,40,38,40,40,38,40,41,39,38,40,41,39,38,38,38,38,38,38,38,40,41,39,38,40,41,39,38,40,41,39,38,38,40,41,39,38,40,41,39,38,40,41,39,38,40,41,39,38,40,40,40,42,42,42,0,0,0,0,43,43,43,43,44,43,42,44,43,42,44,43,42,44,44,43,42,44,43,42,44,43,42,42,42,42,44,43,42,43,44,43,42,0,43,44,43,42,44,43,42,44,43,44,44,44,44,43,42,44,43,42,43,43,43,42,44,43,42,44,43,42,44,43,42,44,43,42,44,43,42,44,43,42,44,43,42,44,44,44,43,43,44,0,0,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,45,46,0,47,47,0,0,0,0,47,0,0,0,0,48,48,49,48,49,48,49,48,48,49,48,49,48,49,48,49,49,48,48,49,48,48,49,48,49,48,49,48,49,48,49,49,48,49,48,49,48,49,48,49,48,49,48,49,48,49,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,0,0,51,51,52,51,52,51,52,51,51,52,51,52,51,52,52,51,52,52,51,51,52,51,51,52,51,52,51,52,51,52,51,52,51,52,51,52,51,52,51,52,51,52,51,52,51,52,0,0,53,53,54,53,54,53,54,53,53,54,53,54,53,54,53,54,54,54,53,53,54,53,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,53,54,0,0,55,55,56,55,56,55,56,55,55,56,55,56,55,56,56,55,56,56,55,55,56,55,55,56,55,56,55,55,56,55,56,55,56,55,56,55,56,55,56,55,56,55,56,55,56,0,0,57,57,58,57,58,57,58,57,57,58,57,58,57,58,58,57,58,58,57,57,58,57,57,58,57,58,57,57,57,58,57,58,58,58,57,58,57,58,57,58,57,58,57,58,57,58,57,58,0,0,0,0,0,0,0,0,59,60,61,62,0,0,0,0,0,0,0,0,0,0,0,0,59,60,63,59,60,61,62,64,63,59,60,61,62,64,63,59,60,61,62,64,63,59,60,61,62,64,59,60,63,59,60,61,62,64,63,59,60,61,62,64,59,60,61,62,64,59,60,61,62,64,59,60,61,62,63,63,63,59,60,61,62,59,60,59,60,61,62,63,59,59,59,60,60,60,61,61,61,62,62,62,64,61,64,59,61,61,59,64,62,63,59,60,61,62,64,63,64,64,59,60,61,62,63,64,63,63,59,60,61,62,64,63,59,60,61,62,64,59,60,59,60,61,62,64,63,59,60,61,62,64,63,59,60,61,62,64,65,61,62,59,60,61,62,64,63,63,59,60,61,62,64,63,59,60,61,62,64,63,59,60,61,62,64,63,59,60,61,62,64,63,59,60,61,62,64,63,59,60,61,62,64,63,59,60,61,62,64,0,0,0,0,0,66,67,68,69,68,66,69,68,66,69,68,66,69,68,66,69,68,66,69,68,66,68,67,68,66,69,68,69,0,0,0,69,68,66,68,0,69,68,66,67,69,68,69,68,66,69,68,66,69,68,69,68,66,69,68,66,69,68,66,69,68,66,69,68,66,69,68,66,69,68,66,69,68,66,69,68,66,0,0,0,0,0,70,70,0,0,0,0,0,71,71,71,71,72,73,71,73,73,74,72,70,71,71,71,71,71,71,71,71,71,73,74,72,70,71,73,74,72,70,71,73,74,72,70,71,73,74,72,70,71,73,74,72,70,71,70,71,70,71,71,71,71,74,74,72,71,0,0,0,71,70,71,0,0,71,70,71,71,71,71,71,73,74,72,70,71,74,71,71,71,73,73,71,71,71,73,71,71,73,74,72,70,71,71,71,0,74,74,74,73,74,71,74,73,73,71,73,74,72,70,71,73,74,72,70,71,73,71,73,73,0,71,73,73,74,72,70,71,73,74,72,70,71,0,0,71,0,0,0,71,71,71,70,71,71,73,73,73,74,72,70,71,73,74,72,70,71,73,74,72,70,71,71,74,74,73,74,72,70,71,73,74,72,70,71,74,73,74,72,70,71,73,74,72,70,71,75,75,75,0,0,0,75,75,0,0,75,75,75,75,76,77,78,75,79,75,75,75,75,75,75,79,75,75,76,77,78,75,79,76,77,78,75,79,77,78,76,77,78,75,79,76,77,78,75,79,76,77,78,75,79,75,79,75,79,75,75,75,78,78,75,75,79,75,79,75,76,76,79,75,75,75,75,75,76,76,77,78,75,79,75,75,75,75,76,75,75,75,75,76,77,78,75,79,77,78,75,75,79,77,76,75,76,77,79,78,75,76,77,78,75,79,76,77,78,75,79,75,79,79,75,76,76,77,78,75,79,76,77,78,75,79,75,75,75,75,75,79,75,76,76,76,0,0,0,0,76,77,78,75,79,76,77,78,75,79,76,77,78,75,79,75,76,76,77,78,75,79,76,77,78,75,79,76,77,78,75,79,76,77,78,75,79,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,81,80,81,80,81,80,81,80,81,80,81,80,81,80,80,81,80,80,81,80,81,80,81,80,81,80,80,81,80,81,80,81,80,81,80,81,80,81,80,80,81,80,81,0,0,0,0,82,83,84,82,83,84,82,83,84,82,83,84,82,83,84,82,83,84,82,83,84,83,82,83,84,85,82,83,82,84,82,83,82,83,84,82,83,84,82,83,84,82,83,84,82,83,84,82,83,84,82,83,84,85,82,83,82,83,84,82,83,84,84,82,83,84,82,83,84,0,0,86,87,86,87,86,87,86,87,86,87,86,87,87,86,86,87,86,86,87,86,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,86,87,88,0,0,0,0,0,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,88,89,88,88,91,92,92,91,90,91,92,88,89,90,90,92,90,91,92,88,89,91,90,91,92,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,91,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,90,91,92,88,89,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,93,94,93,94,93,94,93,94,93,94,93,94,93,94,0,0,93,94,93,94,93,94,93,94,93,94,93,94,93,94,93,94,93,94,93,94,93,94,93,94,93,94,93,94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,95,0,95,0,0,95,95,95,0,95,95,0,0,95,0,95,0,95,0,95,95,0,0,95,95,0,0,0,0,95,95,95,95,95,95,95,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,97,98,0,0,0,0,0,0,0,99,100,101,102,102,101,97,98,102,99,100,101,97,98,102,99,100,101,97,98,102,99,100,101,97,98,102,99,100,101,97,98,102,99,100,101,97,98,102,99,100,101,101,102,102,99,100,97,98,102,101,97,98,102,99,100,98,101,97,98,102,99,100,0,0,101,102,101,97,98,102,99,100,101,97,98,102,99,100,0,102,98,101,101,97,98,102,99,100,101,97,98,102,99,100,102,0,102,102,101,97,98,102,99,100,101,97,98,102,99,100,101,97,98,102,99,100,101,97,98,102,99,100,101,97,98,102,99,100,102,102,0,102,101,97,98,102,99,100,101,97,98,102,99,100,0,0,0,103,104,105,0,105,103,104,105,103,104,105,103,104,105,103,104,105,103,104,105,103,104,103,104,105,0,105,103,104,0,105,103,104,105,105,103,104,105,103,104,0,105,0,105,103,104,105,103,104,105,103,104,105,103,104,105,103,104,105,103,104,105,103,104,105,103,104,105,103,104,0,0,106,106,107,106,107,106,107,106,107,106,107,106,107,106,106,106,106,107,106,106,107,107,106,106,106,107,107,107,107,106,106,106,106,107,107,106,107,106,106,107,107,106,107,106,106,106,106,106,106,107,106,107,106,107,106,107,106,107,106,107,106,107,106,0,0,108,109,108,109,108,109,108,109,108,109,108,109,108,109,109,0,0,0,0,0,0,108,109,108,109,109,109,108,109,109,108,109,108,0,109,108,109,108,0,109,0,109,108,109,108,109,108,109,108,109,108,109,108,109,108,110,110,110,110,110,0,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,0,111,111,111,0,0,0,112,113,111,112,113,111,112,113,111,112,113,111,112,113,111,112,113,111,111,111,111,113,112,113,111,113,113,112,112,112,112,113,111,112,112,112,113,111,112,113,111,112,113,112,113,111,112,113,111,113,113,111,113,112,113,111,112,113,111,112,113,111,112,113,111,112,113,111,112,113,111,112,113,111,0,0,0,0,114,0,115,114,115,114,115,114,115,114,0,115,114,115,114,115,114,115,115,115,114,0,0,115,114,115,114,115,114,115,115,114,115,114,0,115,115,114,115,114,115,114,115,114,115,114,115,114,115,114,0,0,0,0,0,0,0,0,0,0,0,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116,116],"f":[null,null,[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[],["option",4]],[[],["option",4]],[[]],null,null,[[["",0]],["upintrfreecell",3]],null,[[]],null,null,[[]],null,null,[[]],[[]],null,null,[[],["never",0]],[[]],[[]],null,null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[],["option",4]],[[],["option",4]],[[]],[[["",0],["u32",0]],["never",0]],[[["",0],["u32",0]],["never",0]],[[["u32",0]],["u32",0]],[[["",0]],["never",0]],[[["",0]],["never",0]],[[["",0]],["never",0]],[[["",0]],["never",0]],[[]],[[]],[[]],[[["u64",0]]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[]],[[["arguments",3]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[["",0],["str",0]],["result",6]],null,null,null,null,null,null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[],["option",4]],[[],["option",4]],[[["",0]],["arc",3]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],null,[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],[[["",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["cmd",4]],[[["",0]],["initerror",4]],[[["",0]],["sdcardcsd",3]],[[["",0]],["sdcardcid",3]],[[["",0]],["sdcardinfo",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[["",0]],["upintrfreecell",3]],[[["",0]]],[[["",0],["cmd",4]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["result",4,[["sdcardinfo",3]]]],[[["",0]],["result",4,[["sdcardcid",3]]]],[[["",0]],["result",4,[["sdcardcsd",3]]]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],[[["",0]]],[[["",0]],["result",4,[["sdcardinfo",3],["initerror",4]]]],[[],["sdcard",3,[["spiimpl",3,[["spi0",3]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["u32",0],["u8",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["usize",0]]],[[["",0]]],[[["",0],["u32",0]],["result",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["cmd",4],["u32",0],["u8",0]]],null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["usize",0]]],[[["",0]]],[[["",0],["u32",0]],["result",4]],null,null,null,null,null,null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,[[["",0]],["upintrfreecell",3]],[[]],[[]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["usize",0]]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,[[["usize",0]],["physaddr",3]],[[["physaddr",3],["usize",0]],["i32",0]],[[["physaddr",3]],["virtaddr",3]],[[["virtaddr",3]],["physaddr",3]],[[]],[[]],[[]],[[]],[[["",0],["usize",0]]],null,null,null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[],["option",4]],[[],["option",4]],[[["",0]],["arc",3]],[[]],[[["",0]]],[[]],null,[[]],[[]],[[["",0]],["u8",0]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[["",0],["u8",0]]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["ier",3]]],[[["lsr",3]]],[[["mcr",3]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],[[["",0]],["u8",0]],null,null,null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["ier",3]],[[["",0]],["lsr",3]],[[["",0]],["mcr",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["ier",3]],["ordering",4]],[[["",0],["lsr",3]],["ordering",4]],[[["",0],["mcr",3]],["ordering",4]],[[]],[[]],[[]],null,[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["ier",3]],["bool",0]],[[["",0],["lsr",3]],["bool",0]],[[["",0],["mcr",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["intoiterator",8]]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["u8",0]],["option",4]],[[["u8",0]],["option",4]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["u8",0]]],[[["intoiterator",8]]],[[["intoiterator",8]]],[[["intoiterator",8]]],[[["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[["",0]]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],null,null,null,null,null,null,[[["",0],["ier",3]],["bool",0]],[[["",0],["lsr",3]],["bool",0]],[[["",0],["mcr",3]],["bool",0]],[[["usize",0]]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["ier",3]],["option",4,[["ordering",4]]]],[[["",0],["lsr",3]],["option",4,[["ordering",4]]]],[[["",0],["mcr",3]],["option",4,[["ordering",4]]]],null,[[["",0]],["option",4,[["u8",0]]]],[[["",0]],["u8",0]],null,[[["",0]],["readwithoutdlab",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["bool",0]]],[[["",0],["bool",0]]],[[["",0],["bool",0]]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["u8",0]]],[[["",0],["u8",0]]],[[["",0]],["writewithoutdlab",3]],null,null,null,null,null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["arc",3]],null,[[["",0]]],[[["",0]]],[[]],[[]],[[["",0]]],[[["",0]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["arc",3]],[[["",0]],["arc",3]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[["usize",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0],["usize",0],["intrtargetpriority",4]],["u32",0]],[[["",0],["usize",0],["intrtargetpriority",4]]],[[["",0]],["intrtargetpriority",4]],[[["",0],["",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["u32",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["usize",0]]],[[]],[[]],[[["",0],["usize",0]],["u32",0]],[[["",0],["usize",0],["intrtargetpriority",4]],["u32",0]],[[["usize",0],["intrtargetpriority",4]],["usize",0]],[[]],[[]],[[["usize",0]]],[[]],[[]],[[]],[[]],[[["",0],["usize",0]]],[[]],[[]],[[]],[[]],[[["",0],["usize",0],["u32",0]]],[[["",0],["usize",0],["intrtargetpriority",4],["u32",0]]],[[],["usize",0]],[[["",0],["usize",0],["intrtargetpriority",4]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["bool",0]],null,[[["",0]],["bool",0]],[[["",0],["userbuffer",3]],["usize",0]],null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["openflags",3]]],[[["",0]]],[[["",0]],["u32",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["openflags",3]],[[["",0],["",0]]],[[["",0],["openflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[["",0]],["arc",3]],[[]],[[]],[[["",0],["openflags",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["u32",0]],["option",4]],[[["u32",0]]],[[["u32",0]]],[[["intoiterator",8]]],[[["",0],["",0]]],null,null,[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[["",0],["openflags",3]],["bool",0]],[[["bool",0],["bool",0],["arc",3,[["inode",3]]]]],[[]],null,[[["str",0],["openflags",3]],["option",4,[["arc",3,[["osinode",3]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["openflags",3]],["option",4,[["ordering",4]]]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["vec",3,[["u8",0]]]],[[["",0]]],[[["",0]],["bool",0]],null,[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],null,[[["",0],["userbuffer",3]],["usize",0]],null,null,null,null,null,null,null,[[["",0]],["bool",0]],null,[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["ringbufferstatus",4]],[[["",0],["",0]]],[[["",0],["ringbufferstatus",4]],["bool",0]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["u8",0]],[[["arc",3,[["upintrfreecell",3,[["piperingbuffer",3]]]]]]],[[["",0]],["bool",0]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["arc",3]]],null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],null,[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["u8",0]]],null,[[["arc",3,[["upintrfreecell",3,[["piperingbuffer",3]]]]]]],null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["userbuffer",3]],["usize",0]],[[["",0],["userbuffer",3]],["usize",0]],null,[[["",0],["arc",3,[["component",8]]]]],[[["",0]]],null,null,null,null,[[["",0]]],null,null,null,null,[[["",0],["arc",3,[["component",8]]]]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],null,null,[[]],[[]],[[["size",3],["point",3],["option",4,[["arc",3,[["component",8]]]]],["string",3]]],[[]],[[]],[[]],[[]],[[["",0]]],null,[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["rectangle",3]],[[]],[[],["option",4]],[[],["option",4]],[[["",0],["rectangle",3]],["clipped",3]],[[["",0]],["graphics",3]],[[["",0],["",0]]],[[["",0]],["colorconverted",3]],[[["",0],["rectangle",3]],["cropped",3]],[[["",0]],["result",4]],null,[[]],[[]],[[["size",3],["point",3]]],[[]],[[]],null,[[]],[[]],[[["",0]],["size",3]],null,[[["",0]]],[[["",0],["point",3]],["translated",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,[[["",0],["arc",3,[["component",8]]]]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,[[]],[[]],null,null,[[]],[[]],[[["vec",3,[["string",3]]],["option",4,[["arc",3,[["component",8]]]]]]],[[]],[[]],[[]],[[]],[[["",0]]],null,[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0],["arc",3,[["component",8]]]]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],null,null,null,[[]],[[]],[[["size",3],["point",3],["option",4,[["arc",3,[["component",8]]]]]]],[[]],[[]],[[]],[[]],[[["",0]]],null,[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0],["arc",3,[["component",8]]]]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,[[]],[[]],null,null,[[]],[[]],[[["size",3],["point",3]]],[[]],[[]],[[]],[[]],[[["",0]]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0],["arc",3,[["component",8]]]]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,[[]],[[]],null,null,[[]],[[]],[[["size",3],["point",3],["option",4,[["arc",3,[["component",8]]]]],["option",4,[["string",3]]],["string",3]]],[[]],[[]],[[]],[[]],[[["",0]]],[[["",0],["string",3]]],[[]],[[]],[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["panicinfo",3]],["never",0]],null,null,null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["physaddr",3]],[[["",0]],["virtaddr",3]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0]],["simplerange",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["physaddr",3]],["ordering",4]],[[["",0],["virtaddr",3]],["ordering",4]],[[["",0],["physpagenum",3]],["ordering",4]],[[["",0],["virtpagenum",3]],["ordering",4]],null,[[["",0]],["result",4]],null,[[["",0],["physaddr",3]],["bool",0]],[[["",0],["virtaddr",3]],["bool",0]],[[["",0],["physpagenum",3]],["bool",0]],[[["",0],["virtpagenum",3]],["bool",0]],[[["",0]],["physpagenum",3]],[[["",0]],["virtpagenum",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["usize",0]]],[[["physpagenum",3]]],[[["usize",0]]],[[]],[[["virtpagenum",3]]],[[["physaddr",3]]],[[["usize",0]]],[[]],[[]],[[["usize",0]]],[[["virtaddr",3]]],[[]],[[["",0]]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[["",0]],["",0]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["physaddr",3]],["bool",0]],[[["",0],["virtaddr",3]],["bool",0]],[[["",0],["physpagenum",3]],["bool",0]],[[["",0],["virtpagenum",3]],["bool",0]],[[]],[[]],[[["",0]],["option",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[["",0],["physaddr",3]],["option",4,[["ordering",4]]]],[[["",0],["virtaddr",3]],["option",4,[["ordering",4]]]],[[["",0],["physpagenum",3]],["option",4,[["ordering",4]]]],[[["",0],["virtpagenum",3]],["option",4,[["ordering",4]]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["point",3]],["translated",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,[[["",0]],["option",4,[["physpagenum",3]]]],[[["",0]],["option",4,[["physpagenum",3]]]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,[[["",0],["physpagenum",3]]],[[["",0],["physpagenum",3]]],[[["",0]],["upintrfreecell",3]],[[["",0]]],null,[[["",0],["formatter",3]],["result",6]],[[],["option",4,[["frametracker",3]]]],[[]],[[["physpagenum",3]]],[[]],[[]],[[]],[[["",0],["physpagenum",3],["physpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[["physpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["layout",3]],["never",0]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["mappermission",3]]],[[["",0]]],[[["",0]],["u8",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["maptype",4]],[[["",0]],["mappermission",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["mappermission",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[["",0],["pagetable",3]]],null,[[["",0]],["arc",3]],[[]],null,null,null,[[]],[[["",0],["maptype",4]],["bool",0]],[[["",0],["mappermission",3]],["bool",0]],null,null,[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["maparea",3]]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[]],[[["memoryset",3]],["memoryset",3]],[[["intoiterator",8]]],[[["",0],["",0]]],[[["",0]]],[[["",0],["virtaddr",3],["virtaddr",3],["mappermission",3]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[],["usize",0]],[[["",0],["pagetable",3]]],[[["",0],["pagetable",3],["virtpagenum",3]]],null,[[["",0]]],null,[[["",0],["mappermission",3]],["bool",0]],[[["virtaddr",3],["virtaddr",3],["maptype",4],["mappermission",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["mappermission",3]],["option",4,[["ordering",4]]]],[[["",0],["maparea",3],["option",4]]],[[["",0]]],[[]],[[["",0]]],[[["",0],["virtpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0],["bool",0]]],null,null,null,[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0],["pagetable",3]]],[[["",0],["pagetable",3],["virtpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[["pteflags",3]]],[[["",0]]],[[["",0]],["u8",0]],null,null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["pteflags",3]],[[["",0]],["pagetableentry",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["pteflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],null,null,[[]],[[]],[[]],[[["",0],["pteflags",3]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0]],["pteflags",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],null,[[]],[[]],[[]],[[]],[[]],[[["u8",0]],["option",4]],[[["u8",0]]],[[["u8",0]]],[[["intoiterator",8]]],[[["usize",0]]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3],["physpagenum",3],["pteflags",3]]],[[["",0],["pteflags",3]],["bool",0]],[[]],[[["vec",3]]],[[["physpagenum",3],["pteflags",3]]],[[["",0]],["option",4]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["pteflags",3]],["option",4,[["ordering",4]]]],[[["",0]],["physpagenum",3]],[[["",0]],["bool",0]],[[["",0]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["usize",0]],[[["",0],["virtpagenum",3]],["option",4,[["pagetableentry",3]]]],[[["",0],["virtaddr",3]],["option",4,[["physaddr",3]]]],[[["usize",0],["usize",0]],["vec",3]],[[["usize",0]],["",0]],[[["usize",0]],["",0]],[[["usize",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[["",0],["virtpagenum",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["bool",0]],null,null,null,null,null,null,null,null,null,[[],["usize",0]],[[["usize",0]]],[[["usize",0],["usize",0],["usize",0],["usize",0]],["usize",0]],[[["usize",0]]],[[["usize",0]],["never",0]],null,null,null,null,null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[["",0]]],null,[[["",0],["arc",3,[["mutex",8]]]]],[[]],[[]],[[]],[[]],null,null,null,null,[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[["",0]]],[[["",0]]],[[["",0]]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,[[["",0]]],[[]],[[]],null,[[]],[[]],[[["usize",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[["",0]]],null,[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]]],[[["",0]],["upsafecellraw",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["upintrrefmut",3]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],null,null,[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["usize",0]],["isize",0]],null,[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["u32",0]],["isize",0]],[[],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],null,null,null,null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["isize",0]],[[]],[[["",0]],["upintrfreecell",3]],[[["",0]],["upintrfreecell",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["isize",0]],[[["i32",0]],["never",0]],[[],["isize",0]],[[],["isize",0]],[[],["isize",0]],[[["usize",0],["u32",0]],["isize",0]],[[["isize",0]],["isize",0]],[[],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["bool",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[["usize",0]],["isize",0]],[[],["isize",0]],[[["usize",0],["usize",0]],["isize",0]],[[["usize",0]],["i32",0]],null,null,[[]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,[[["signalflags",3]]],[[["",0]],["arc",3]],[[["i32",0]]],[[]],null,[[]],null,[[]],[[]],null,null,[[]],[[]],null,[[]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[],["option",4]],[[],["option",4]],[[]],[[["usize",0]]],[[]],[[]],[[]],null,null,[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["usize",0]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,[[["",0],["usize",0]]],[[["",0]]],[[["",0]]],[[["",0]],["upintrfreecell",3]],[[["",0]],["upintrfreecell",3]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["usize",0]]],[[],["kernelstack",3]],[[]],[[["arc",3,[["processcontrolblock",3]]],["usize",0],["bool",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["pidhandle",3]],null,[[["",0]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["usize",0]],["usize",0]],[[["",0]],["physpagenum",3]],[[["",0]],["usize",0]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["usize",0]],null,[[["usize",0],["usize",0]],["usize",0]],[[["",0]],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["",0],["arc",3,[["taskcontrolblock",3]]]]],[[["arc",3,[["taskcontrolblock",3]]]]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["upintrfreecell",3]],[[["",0]],["upintrfreecell",3]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[]],[[]],[[]],[[["usize",0],["arc",3,[["processcontrolblock",3]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["usize",0]],["option",4,[["arc",3,[["processcontrolblock",3]]]]]],null,[[["usize",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0]],["usize",0]],[[["",0]],["usize",0]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],null,null,[[["",0],["usize",0]]],[[["arc",3],["vec",3,[["string",3]]]]],null,null,[[["arc",3]],["arc",3]],[[]],[[]],[[["",0],["usize",0]],["arc",3,[["taskcontrolblock",3]]]],[[["",0]],["usize",0]],[[["",0]],["usize",0]],null,[[["",0]],["upintrrefmut",3,[["processcontrolblockinner",3]]]],[[]],[[]],null,null,null,[[],["arc",3]],[[]],[[]],[[]],[[]],null,null,[[]],[[]],[[]],[[]],null,null,null,null,[[["",0]],["usize",0]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],null,[[],["usize",0]],[[],["arc",3,[["processcontrolblock",3]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["trapcontext",3]],[[],["usize",0]],[[],["usize",0]],[[["",0]],["upintrfreecell",3]],[[]],[[]],[[["",0]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["option",4,[["arc",3,[["taskcontrolblock",3]]]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,[[]],[[]],[[]],[[["",0]]],[[["signalflags",3]]],[[["",0]]],[[["",0]],["u32",0]],null,[[]],[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0]],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["signalflags",3]],[[["",0],["",0]]],[[["",0],["signalflags",3]],["ordering",4]],[[]],[[["",0]],["bool",0]],[[]],[[]],[[["",0],["signalflags",3]],["bool",0]],[[["",0],["intoiterator",8]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[["u32",0]],["option",4]],[[["u32",0]]],[[["u32",0]]],[[["intoiterator",8]]],[[["",0],["",0]]],[[["",0]]],[[]],[[["",0]],["bool",0]],[[]],[[["",0]],["bool",0]],[[["",0]],["bool",0]],[[["",0],["signalflags",3]],["bool",0]],[[]],[[]],[[]],[[["",0],["signalflags",3]],["option",4,[["ordering",4]]]],[[["",0]]],[[]],[[]],[[["",0],["bool",0]]],[[]],[[["",0]]],[[]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0]],["taskstatus",4]],[[["",0],["",0]]],[[["",0],["taskstatus",4]],["bool",0]],null,[[]],[[]],[[]],[[["",0]],["taskstatus",4]],[[["",0]],["trapcontext",3]],[[["",0]],["usize",0]],null,[[["",0]],["upintrrefmut",3,[["taskcontrolblockinner",3]]]],[[]],[[]],[[]],null,[[["arc",3,[["processcontrolblock",3]]],["usize",0],["bool",0]]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["usize",0],["arc",3,[["taskcontrolblock",3]]]]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[],["option",4]],[[["",0],["",0]],["ordering",4]],[[["",0]],["upintrfreecell",3]],[[["",0],["",0]],["bool",0]],null,[[]],[[]],[[],["usize",0]],[[],["usize",0]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["",0]],["option",4,[["ordering",4]]]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[["trapcontext",3]]],[[],["never",0]],[[],["never",0]],null,[[["usize",0],["usize",0],["usize",0],["usize",0],["usize",0]]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[],["option",4]],[[],["option",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,null,[[]],[[]],[[]],[[]],null,[[["",0],["usize",0]]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null],"p":[[3,"DEV_NON_BLOCKING_ACCESS"],[3,"RISCV64"],[8,"QEMUExit"],[3,"Stdout"],[3,"BLOCK_DEVICE"],[3,"SDCardWrapper"],[4,"CMD"],[3,"SDCardCID"],[4,"InitError"],[3,"SDCardCSD"],[3,"SDCard"],[3,"SDCardInfo"],[3,"PERIPHERALS"],[13,"CMDFailed"],[13,"CardCapacityStatusNotSet"],[3,"QUEUE_FRAMES"],[3,"VirtIOBlock"],[3,"UART"],[8,"CharDevice"],[3,"MCR"],[3,"LSR"],[3,"IER"],[3,"WriteWithoutDLAB"],[3,"ReadWithoutDLAB"],[3,"NS16550aRaw"],[3,"NS16550aInner"],[3,"NS16550a"],[3,"GPU_DEVICE"],[3,"VirtIOGPU"],[8,"GPUDevice"],[3,"VirtIOINPUT"],[3,"KEYBOARD_DEVICE"],[3,"MOUSE_DEVICE"],[8,"INPUTDevice"],[4,"IntrTargetPriority"],[3,"PLIC"],[8,"File"],[3,"OpenFlags"],[3,"ROOT_INODE"],[3,"OSInode"],[3,"OSInodeInner"],[4,"RingBufferStatus"],[3,"PipeRingBuffer"],[3,"Pipe"],[3,"Stdin"],[3,"Stdout"],[8,"Component"],[3,"Button"],[3,"ButtonInner"],[3,"Graphics"],[3,"IconController"],[3,"IconControllerInner"],[3,"ImageComp"],[3,"ImageInner"],[3,"Panel"],[3,"PanelInner"],[3,"Terminal"],[3,"TerminalInner"],[3,"PhysAddr"],[3,"VirtAddr"],[3,"PhysPageNum"],[3,"VirtPageNum"],[3,"SimpleRangeIterator"],[3,"SimpleRange"],[8,"StepByOne"],[3,"FRAME_ALLOCATOR"],[8,"FrameAllocator"],[3,"StackFrameAllocator"],[3,"FrameTracker"],[4,"MapType"],[3,"MapPermission"],[3,"KERNEL_SPACE"],[3,"MemorySet"],[3,"MapArea"],[3,"PTEFlags"],[3,"PageTable"],[3,"UserBuffer"],[3,"UserBufferIterator"],[3,"PageTableEntry"],[3,"Condvar"],[3,"CondvarInner"],[3,"MutexSpin"],[3,"MutexBlocking"],[3,"MutexBlockingInner"],[8,"Mutex"],[3,"Semaphore"],[3,"SemaphoreInner"],[3,"UPIntrRefMut"],[3,"INTR_MASKING_INFO"],[3,"UPSafeCellRaw"],[3,"IntrMaskingInfo"],[3,"UPIntrFreeCell"],[3,"DESKTOP"],[3,"PAD"],[3,"INITPROC"],[3,"TaskContext"],[3,"PidHandle"],[3,"KernelStack"],[3,"PID_ALLOCATOR"],[3,"KSTACK_ALLOCATOR"],[3,"RecycleAllocator"],[3,"TaskUserRes"],[3,"TASK_MANAGER"],[3,"PID2PCB"],[3,"TaskManager"],[3,"ProcessControlBlockInner"],[3,"ProcessControlBlock"],[3,"PROCESSOR"],[3,"Processor"],[3,"SignalFlags"],[4,"TaskStatus"],[3,"TaskControlBlock"],[3,"TaskControlBlockInner"],[3,"TIMERS"],[3,"TimerCondVar"],[3,"TrapContext"]]}\ +"os":{"doc":"","t":[3,12,11,0,11,11,11,11,11,5,0,0,11,0,11,0,0,11,0,0,11,11,14,14,5,11,11,0,0,0,0,0,0,11,11,11,11,11,11,11,6,17,6,17,17,17,17,17,8,17,3,17,17,17,17,17,12,11,11,11,11,11,11,5,10,11,5,10,11,10,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,2,17,17,17,2,17,17,17,17,17,3,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,2,2,2,2,0,0,0,0,0,0,3,2,12,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,11,11,17,3,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,0,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,2,3,12,11,11,11,11,11,11,11,11,10,11,0,11,11,10,11,11,11,11,11,11,11,11,11,10,18,18,18,18,3,3,3,3,3,3,18,18,3,18,18,3,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,3,8,17,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,10,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,12,8,3,3,17,17,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,13,3,13,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,8,2,2,2,2,2,2,2,0,2,2,2,0,10,10,0,10,10,18,3,3,3,18,18,3,18,18,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,5,11,11,11,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,13,13,13,3,3,17,4,11,12,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,12,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,2,2,0,2,3,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,11,11,3,3,17,17,17,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,11,11,12,5,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2,0,2,0,5,2,0,0,2,2,2,2,2,12,12,12,12,17,17,3,3,3,3,8,17,6,17,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,8,6,3,3,12,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,10,11,11,11,12,11,5,5,5,11,11,11,11,5,11,11,11,10,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,7,5,5,5,13,13,3,3,3,4,3,18,18,18,18,12,11,11,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,5,5,5,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,18,18,18,3,3,3,18,18,3,3,18,18,18,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,5,5,5,5,5,2,2,2,2,2,2,2,0,0,0,0,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,8,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,10,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,12,3,3,3,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,0,0,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,2,3,2,2,2,2,2,2,12,5,2,11,5,5,11,11,11,5,11,11,0,5,2,2,2,2,2,2,11,5,11,0,11,2,0,11,11,2,2,0,0,2,2,11,11,2,0,5,0,2,0,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,11,11,11,11,11,11,11,11,12,12,17,3,3,3,3,3,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,12,12,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,11,11,5,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,12,12,11,11,11,11,11,11,12,11,11,11,12,12,12,11,11,11,11,11,12,12,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,5,5,5,5,5,11,11,11,11,12,11,11,11,11,11,11,11,5,11,11,11,11,5,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,18,18,18,18,18,3,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,13,13,13,3,3,4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,12,11,11,11,11,12,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,3,3,12,5,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,12,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,5,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,2,0,5,5,5,5,5,5,5,5,5,3,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,12,11,12,12,11,11,11,11,11,11,11,12],"n":["DEV_NON_BLOCKING_ACCESS","__private_field","az","board","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","clear_bss","config","console","deref","drivers","from","fs","gui","into","lang_items","mm","overflowing_as","overflowing_cast_from","print","println","rust_main","saturating_as","saturating_cast_from","sbi","sync","syscall","task","timer","trap","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","BlockDeviceImpl","CLOCK_FREQ","CharDeviceImpl","EXIT_FAILURE","EXIT_FAILURE_FLAG","EXIT_RESET","EXIT_SUCCESS","MMIO","QEMUExit","QEMU_EXIT_HANDLE","RISCV64","VIRTGPU_XRES","VIRTGPU_YRES","VIRT_PLIC","VIRT_TEST","VIRT_UART","addr","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","device_init","exit","exit","exit_code_encode","exit_failure","exit_failure","exit_success","exit_success","from","into","irq_handler","new","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","CLOCK_FREQ","KERNEL_HEAP_SIZE","KERNEL_STACK_SIZE","MEMORY_END","MMIO","PAGE_SIZE","PAGE_SIZE_BITS","TRAMPOLINE","TRAP_CONTEXT_BASE","USER_STACK_SIZE","Stdout","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","from","into","overflowing_as","overflowing_cast_from","print","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","write_str","BLOCK_DEVICE","BLOCK_DEVICE","UART","UART","block","bus","chardev","gpu","input","plic","BLOCK_DEVICE","VirtIOBlock","__private_field","az","block_device_test","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","deref","from","into","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","virtio_blk","wrapping_as","wrapping_cast_from","VIRTIO0","VirtIOBlock","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","condvars","from","handle_irq","into","new","overflowing_as","overflowing_cast_from","read_block","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","virtio_blk","wrapping_as","wrapping_cast_from","write_block","virtio","QUEUE_FRAMES","VirtioHal","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","dma_alloc","dma_dealloc","from","from","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","phys_to_virt","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","virt_to_phys","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","CharDevice","NS16550a","UART","__private_field","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","deref","from","handle_irq","into","ns16550a","overflowing_as","overflowing_cast_from","read","saturating_as","saturating_cast_from","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","write","AUX_OUTPUT1","AUX_OUTPUT2","DATA_AVAILABLE","DATA_TERMINAL_READY","IER","LSR","MCR","NS16550a","NS16550aInner","NS16550aRaw","REQUEST_TO_SEND","RX_AVAILABLE","ReadWithoutDLAB","THR_EMPTY","TX_EMPTY","WriteWithoutDLAB","_padding0","_padding1","_padding1","_padding2","all","all","all","az","az","az","az","az","az","az","az","base_addr","bitand","bitand","bitand","bitand_assign","bitand_assign","bitand_assign","bitor","bitor","bitor","bitor_assign","bitor_assign","bitor_assign","bits","bits","bits","bits","bits","bits","bitxor","bitxor","bitxor","bitxor_assign","bitxor_assign","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone_into","clone_into","clone_into","cmp","cmp","cmp","complement","complement","complement","condvar","contains","contains","contains","difference","difference","difference","empty","empty","empty","eq","eq","eq","extend","extend","extend","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_bits","from_bits","from_bits","from_bits_truncate","from_bits_truncate","from_bits_truncate","from_bits_unchecked","from_bits_unchecked","from_bits_unchecked","from_iter","from_iter","from_iter","handle_irq","hash","hash","hash","ier","ier","iir","init","inner","insert","insert","insert","intersection","intersection","intersection","intersects","intersects","intersects","into","into","into","into","into","into","into","into","is_all","is_all","is_all","is_empty","is_empty","is_empty","lcr","lcr","lsr","lsr","mcr","mcr","ne","ne","ne","new","new","not","not","not","ns16550a","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","partial_cmp","partial_cmp","rbr","read","read","read_buffer","read_end","remove","remove","remove","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","set","set","sub","sub","sub","sub_assign","sub_assign","sub_assign","symmetric_difference","symmetric_difference","symmetric_difference","thr","to_owned","to_owned","to_owned","toggle","toggle","toggle","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","union","union","union","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","write","write","write_end","BMP_DATA","GPU_DEVICE","GpuDevice","VIRTIO7","VirtIOGpuWrapper","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","fb","flush","flush","from","from","get_framebuffer","get_framebuffer","gpu","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","update_cursor","update_cursor","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","0","InputDevice","KEYBOARD_DEVICE","MOUSE_DEVICE","VIRTIO5","VIRTIO6","VirtIOInputWrapper","__private_field","__private_field","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","from","from","from","handle_irq","handle_irq","into","into","into","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","IntrTargetPriority","Machine","PLIC","Supervisor","az","az","base_addr","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","claim","claim_comp_ptr_of_hart_with_priority","clone","clone_into","complete","disable","enable","enable_ptr","from","from","get_priority","get_threshold","hart_id_with_priority","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","priority_ptr","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","set_priority","set_threshold","supported_number","threshold_ptr_of_hart_with_priority","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","File","OSInode","OpenFlags","Pipe","ROOT_INODE","ROOT_INODE","Stdin","Stdout","inode","list_apps","make_pipe","open_file","pipe","read","readable","stdio","writable","write","CREATE","OSInode","OSInodeInner","OpenFlags","RDONLY","RDWR","ROOT_INODE","TRUNC","WRONLY","__private_field","all","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","cmp","complement","contains","deref","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","inner","inode","insert","intersection","intersects","into","into","into","into","is_all","is_empty","list_apps","ne","new","not","offset","open_file","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","read","read_all","read_write","readable","readable","remove","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","union","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","writable","write","Empty","Full","Normal","Pipe","PipeRingBuffer","RING_BUFFER_SIZE","RingBufferStatus","all_write_ends_closed","arr","available_read","available_write","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buffer","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","eq","from","from","from","head","into","into","into","make_pipe","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","read","read_byte","read_end_with_buffer","readable","readable","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","set_write_end","status","tail","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","writable","write","write_byte","write_end","write_end_with_buffer","Stdin","Stdout","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","read","read","readable","readable","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","writable","writable","write","write","graphic","init_paint","move_rect","paint","reset","Graphics","az","borrow","borrow_mut","bounding_box","cast_from","checked_as","checked_cast_from","clipped","clone","clone_into","color_converted","cropped","draw_iter","drv","from","into","new","overflowing_as","overflowing_cast_from","point","reset","saturating_as","saturating_cast_from","size","size","to_owned","translated","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","DRAWING_BOARD","DrawingBoard","INIT_X","INIT_Y","RECT_SIZE","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","deref","from","from","graphics","init_paint","into","into","latest_pos","move_rect","move_rect","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","paint","reset","reset","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","backtrace","panic","FrameTracker","KERNEL_SPACE","KERNEL_SPACE","MapPermission","MemorySet","PageTable","PageTableEntry","PhysAddr","PhysPageNum","StepByOne","UserBuffer","UserBufferIterator","VirtAddr","VirtPageNum","address","frame_alloc","frame_allocator","frame_dealloc","heap_allocator","init","kernel_token","memory_set","page_table","remap_test","translated_byte_buffer","translated_ref","translated_refmut","translated_str","0","0","0","0","PA_WIDTH_SV39","PPN_WIDTH_SV39","PhysAddr","PhysPageNum","SimpleRange","SimpleRangeIterator","StepByOne","VA_WIDTH_SV39","VPNRange","VPN_WIDTH_SV39","VirtAddr","VirtPageNum","aligned","aligned","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","ceil","ceil","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","current","draw","end","eq","eq","eq","eq","floor","floor","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_bytes_array","get_end","get_mut","get_mut","get_pte_array","get_ref","get_start","indexes","into","into","into","into","into","into","into_iter","into_iter","l","ne","ne","ne","ne","new","new","next","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","page_offset","page_offset","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","step","step","step","to_owned","to_owned","to_owned","to_owned","to_owned","translated","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","FRAME_ALLOCATOR","FrameAllocator","FrameAllocatorImpl","FrameTracker","StackFrameAllocator","__private_field","alloc","alloc","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","current","dealloc","dealloc","deref","drop","end","fmt","frame_alloc","frame_allocator_test","frame_dealloc","from","from","from","init","init_frame_allocator","into","into","into","new","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","ppn","recycled","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","HEAP_ALLOCATOR","HEAP_SPACE","handle_alloc_error","heap_test","init_heap","Framed","Identical","KERNEL_SPACE","MapArea","MapPermission","MapType","MemorySet","R","U","W","X","__private_field","activate","all","areas","az","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone_into","clone_into","cmp","complement","contains","copy_data","data_frames","deref","difference","ebss","edata","ekernel","empty","eq","eq","erodata","etext","extend","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_another","from_bits","from_bits_truncate","from_bits_unchecked","from_elf","from_existed_user","from_iter","hash","insert","insert_framed_area","intersection","intersects","into","into","into","into","into","is_all","is_empty","kernel_token","map","map_one","map_perm","map_trampoline","map_type","ne","new","new_bare","new_kernel","not","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","page_table","partial_cmp","push","recycle_data_pages","remap_test","remove","remove_area_with_start_vpn","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","sbss_with_stack","sdata","set","srodata","stext","strampoline","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unmap_one","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","vpn_range","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","A","D","G","PTEFlags","PageTable","PageTableEntry","R","U","UserBuffer","UserBufferIterator","V","W","X","all","az","az","az","az","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bits","bitxor","bitxor_assign","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","buffers","buffers","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone","clone_into","clone_into","cmp","complement","contains","current_buffer","current_idx","difference","empty","empty","eq","executable","extend","find_pte","find_pte_create","flags","fmt","fmt","fmt","fmt","fmt","frames","from","from","from","from","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","from_token","hash","insert","intersection","intersects","into","into","into","into","into","into_iter","into_iter","is_all","is_empty","is_valid","len","map","ne","new","new","new","next","not","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","partial_cmp","ppn","readable","remove","root_ppn","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","to_owned","toggle","token","translate","translate_va","translated_byte_buffer","translated_ref","translated_refmut","translated_str","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","union","unmap","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","writable","SBI_CLEAR_IPI","SBI_CONSOLE_GETCHAR","SBI_CONSOLE_PUTCHAR","SBI_REMOTE_FENCE_I","SBI_REMOTE_SFENCE_VMA","SBI_REMOTE_SFENCE_VMA_ASID","SBI_SEND_IPI","SBI_SET_TIMER","SBI_SHUTDOWN","console_getchar","console_putchar","sbi_call","set_timer","shutdown","Condvar","Mutex","MutexBlocking","MutexSpin","Semaphore","UPIntrFreeCell","UPIntrRefMut","condvar","mutex","semaphore","up","Condvar","CondvarInner","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","from","from","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","signal","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wait_no_sched","wait_queue","wait_with_mutex","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","Mutex","MutexBlocking","MutexBlockingInner","MutexSpin","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","from","from","from","inner","into","into","into","lock","lock","lock","locked","locked","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unlock","unlock","unlock","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wait_queue","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","Semaphore","SemaphoreInner","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","count","down","from","from","inner","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","up","wait_queue","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","0","INTR_MASKING_INFO","IntrMaskingInfo","UPIntrFreeCell","UPIntrRefMut","UPSafeCellRaw","__private_field","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","deref_mut","drop","enter","exclusive_access","exclusive_session","exit","from","from","from","from","from","get_mut","inner","inner","into","into","into","into","into","nested_level","new","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","sie_before_masking","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","SYSCALL_CLOSE","SYSCALL_CONDVAR_CREATE","SYSCALL_CONDVAR_SIGNAL","SYSCALL_CONDVAR_WAIT","SYSCALL_DUP","SYSCALL_EXEC","SYSCALL_EXIT","SYSCALL_FORK","SYSCALL_GETPID","SYSCALL_GETTID","SYSCALL_GET_TIME","SYSCALL_KILL","SYSCALL_MUTEX_CREATE","SYSCALL_MUTEX_LOCK","SYSCALL_MUTEX_UNLOCK","SYSCALL_OPEN","SYSCALL_PIPE","SYSCALL_READ","SYSCALL_SEMAPHORE_CREATE","SYSCALL_SEMAPHORE_DOWN","SYSCALL_SEMAPHORE_UP","SYSCALL_SLEEP","SYSCALL_THREAD_CREATE","SYSCALL_WAITPID","SYSCALL_WAITTID","SYSCALL_WRITE","SYSCALL_YIELD","fs","process","sync","syscall","thread","sys_close","sys_dup","sys_open","sys_pipe","sys_read","sys_write","sys_exec","sys_exit","sys_fork","sys_get_time","sys_getpid","sys_kill","sys_waitpid","sys_yield","sys_condvar_create","sys_condvar_signal","sys_condvar_wait","sys_mutex_create","sys_mutex_lock","sys_mutex_unlock","sys_semaphore_create","sys_semaphore_down","sys_semaphore_up","sys_sleep","sys_gettid","sys_thread_create","sys_waittid","IDLE_PID","INITPROC","KernelStack","PidHandle","SignalFlags","TaskContext","TaskControlBlock","TaskStatus","__private_field","add_initproc","add_task","az","block_current_and_run_next","block_current_task","borrow","borrow_mut","cast_from","check_signals_of_current","checked_as","checked_cast_from","context","current_add_signal","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","exit_current_and_run_next","from","id","into","kstack_alloc","manager","overflowing_as","overflowing_cast_from","pid2process","pid_alloc","process","processor","remove_from_pid2process","run_tasks","saturating_as","saturating_cast_from","schedule","signal","suspend_current_and_run_next","switch","take_current_task","task","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","TaskContext","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","from","goto_trap_return","into","overflowing_as","overflowing_cast_from","ra","s","saturating_as","saturating_cast_from","sp","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","zero_init","0","0","IDLE_PID","KSTACK_ALLOCATOR","KernelStack","PID_ALLOCATOR","PidHandle","RecycleAllocator","TaskUserRes","__private_field","__private_field","alloc","alloc_tid","alloc_user_res","az","az","az","az","az","az","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","checked_cast_from","current","dealloc","dealloc_tid","dealloc_user_res","deref","deref","drop","drop","drop","from","from","from","from","from","from","get_top","into","into","into","into","into","into","kernel_stack_position","kstack_alloc","new","new","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","pid_alloc","process","push_on_top","recycled","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","saturating_cast_from","tid","trap_cx_bottom_from_tid","trap_cx_ppn","trap_cx_user_va","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","ustack_base","ustack_base","ustack_bottom_from_tid","ustack_top","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","PID2PCB","TASK_MANAGER","TaskManager","__private_field","__private_field","add","add_task","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","deref","deref","fetch","fetch_task","from","from","from","insert_into_pid2process","into","into","into","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","pid2process","ready_queue","remove_from_pid2process","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","ProcessControlBlock","ProcessControlBlockInner","alloc_fd","alloc_tid","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","children","condvar_list","dealloc_tid","exec","exit_code","fd_table","fork","from","from","get_task","get_user_token","getpid","inner","inner_exclusive_access","into","into","is_zombie","memory_set","mutex_list","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","parent","pid","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","semaphore_list","signals","task_res_allocator","tasks","thread_count","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","PROCESSOR","Processor","__private_field","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","checked_as","checked_as","checked_cast_from","checked_cast_from","current","current","current_kstack_top","current_process","current_task","current_trap_cx","current_trap_cx_user_va","current_user_token","deref","from","from","get_idle_task_cx_ptr","idle_task_cx","into","into","new","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","run_tasks","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","schedule","take_current","take_current_task","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","SIGABRT","SIGFPE","SIGILL","SIGINT","SIGSEGV","SignalFlags","all","az","bitand","bitand_assign","bitor","bitor_assign","bits","bits","bitxor","bitxor_assign","borrow","borrow_mut","cast_from","check_error","checked_as","checked_cast_from","clone","clone_into","cmp","complement","contains","difference","empty","eq","extend","fmt","fmt","fmt","fmt","fmt","from","from_bits","from_bits_truncate","from_bits_unchecked","from_iter","hash","insert","intersection","intersects","into","is_all","is_empty","ne","not","overflowing_as","overflowing_cast_from","partial_cmp","remove","saturating_as","saturating_cast_from","set","sub","sub_assign","symmetric_difference","to_owned","toggle","try_from","try_into","type_id","union","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","__switch","Blocking","Ready","Running","TaskControlBlock","TaskControlBlockInner","TaskStatus","az","az","az","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cast_from","cast_from","cast_from","checked_as","checked_as","checked_as","checked_cast_from","checked_cast_from","checked_cast_from","clone","clone_into","eq","exit_code","from","from","from","get_status","get_trap_cx","get_user_token","inner","inner_exclusive_access","into","into","into","kstack","new","overflowing_as","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","overflowing_cast_from","process","res","saturating_as","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","saturating_cast_from","task_cx","task_status","to_owned","trap_cx_ppn","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","wrapping_cast_from","MSEC_PER_SEC","TICKS_PER_SEC","TIMERS","TimerCondVar","__private_field","add_timer","az","az","borrow","borrow","borrow_mut","borrow_mut","cast_from","cast_from","check_timer","checked_as","checked_as","checked_cast_from","checked_cast_from","cmp","deref","eq","expire_ms","from","from","get_time","get_time_ms","into","into","overflowing_as","overflowing_as","overflowing_cast_from","overflowing_cast_from","partial_cmp","saturating_as","saturating_as","saturating_cast_from","saturating_cast_from","set_next_trigger","task","try_from","try_from","try_into","try_into","type_id","type_id","unwrapped_as","unwrapped_as","unwrapped_cast_from","unwrapped_cast_from","wrapping_as","wrapping_as","wrapping_cast_from","wrapping_cast_from","TrapContext","context","disable_supervisor_interrupt","enable_supervisor_interrupt","enable_timer_interrupt","init","set_kernel_trap_entry","set_user_trap_entry","trap_from_kernel","trap_handler","trap_return","TrapContext","app_init_context","az","borrow","borrow_mut","cast_from","checked_as","checked_cast_from","fmt","from","into","kernel_satp","kernel_sp","overflowing_as","overflowing_cast_from","saturating_as","saturating_cast_from","sepc","set_sp","sstatus","trap_handler","try_from","try_into","type_id","unwrapped_as","unwrapped_cast_from","wrapping_as","wrapping_cast_from","x"],"q":["os","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::board","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::config","","","","","","","","","","os::console","","","","","","","","","","","","","","","","","","","","","","os::drivers","","","","","","","","","","os::drivers::block","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::block::virtio_blk","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::bus","os::drivers::bus::virtio","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::chardev","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::chardev::ns16550a","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::gpu","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::input","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::drivers::plic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs","","","","","","","","","","","","","","","","","","os::fs::inode","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs::pipe","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::fs::stdio","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::gui","","","","","os::gui::graphic","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::gui::paint","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::lang_items","","os::mm","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::address","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::frame_allocator","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::heap_allocator","","","","","os::mm::memory_set","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::mm::page_table","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sbi","","","","","","","","","","","","","","os::sync","","","","","","","","","","","os::sync::condvar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sync::mutex","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sync::semaphore","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::sync::up","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::syscall::fs","","","","","","os::syscall::process","","","","","","","","os::syscall::sync","","","","","","","","","","os::syscall::thread","","","os::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::context","","","","","","","","","","","","","","","","","","","","","","","","","os::task::id","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::manager","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::process","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::processor","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::signal","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::task::switch","os::task::task","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::timer","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","os::trap","","","","","","","","","","","os::trap::context","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","RISCV64 configuration","","","","","","Address of the sifive_test mapped device.","","","","","","","","Exit with specified return code.","Exit qemu with specified exit code.","Encode the exit code using EXIT_FAILURE_FLAG.","Exit QEMU using EXIT_FAILURE, aka 1.","","Exit QEMU using EXIT_SUCCESS, aka 0, if possible.","","Returns the argument unchanged.","Calls U::from(self).","","Create an instance.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","InterruptEnableRegister","LineStatusRegister","Model Control Register","","","","","","","","","","ignore FCR","ignore MSR","ignore other registers","ignore SCR","Returns the set containing all flags.","Returns the set containing all flags.","Returns the set containing all flags.","","","","","","","","","","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Returns the union of the two sets of flags.","Adds the set of flags.","Adds the set of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","Returns the raw value of the flags currently stored.","","","","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Returns the left flags, but with all the right flags …","Toggles the set of flags.","Toggles the set of flags.","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns the difference between the flags in self and other.","Returns an empty set of flags.","Returns an empty set of flags.","Returns an empty set of flags.","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","Convert from underlying bit representation, preserving all …","","","","","","","","interrupt enable register","interrupt enable register","interrupt identification register","","","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","Returns true if no flags are currently stored.","line control register","line control register","line status register","line status register","model control register","modem control register","","","","","","Returns the complement of this set of flags.","Returns the complement of this set of flags.","Returns the complement of this set of flags.","","","","","","","","","","","","","","","","","","","","","receiver buffer register","","","","","Removes the specified flags in-place.","Removes the specified flags in-place.","Removes the specified flags in-place.","","","","","","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","Returns the symmetric difference between the flags in self …","transmitter holding register","","","","Toggles the specified flags in-place.","Toggles the specified flags in-place.","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","Returns the complement of this set of flags.","","","","","","","","","","","","","","Do not check validity for simplicity Return (readable, …","","","Removes the specified flags in-place.","","","","","","","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (read_end, write_end)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Definitions","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","data: start-aligned but maybe with shorter length assume …","","","Returns the difference between the flags in self and other.","","","","Returns an empty set of flags.","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","Include sections in elf and trampoline, also returns …","","","","Inserts the specified flags in-place.","Assume that no conflicts.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","Mention that trampoline is not collected by areas.","","","","","Without kernel stacks.","Returns the complement of this set of flags.","","","","","","","","","","","","","","","","Removes the specified flags in-place.","","","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","","","","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","","","","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","","","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","Temporarily used to get arguments from user space.","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","","","","","","","","Returns the complement of this set of flags.","","","","","","","","","","","","","","Removes the specified flags in-place.","","","","","","","","","","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","","Toggles the specified flags in-place.","","","","","","","Load a string from other address spaces into kernel space …","","","","","","","","","","","","","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Panic if the data has been borrowed.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","inner data","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","If there is not a child process whose pid is same as …","","","","","","","","","","","","","","thread does not exist, return -1 thread has not exited …","","","","","","","","","","","","","","This function must be followed by a schedule","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Return (bottom, top) of a kernel stack in kernel space.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Only support processes with a single thread.","","","Only support processes with a single thread.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the set containing all flags.","","Returns the intersection between the two sets of flags.","Disables all flags disabled in the set.","Returns the union of the two sets of flags.","Adds the set of flags.","Returns the raw value of the flags currently stored.","","Returns the left flags, but with all the right flags …","Toggles the set of flags.","","","","","","","","","","Returns the complement of this set of flags.","Returns true if all of the flags in other are contained …","Returns the difference between the flags in self and other.","Returns an empty set of flags.","","","","","","","","Returns the argument unchanged.","Convert from underlying bit representation, unless that …","Convert from underlying bit representation, dropping any …","Convert from underlying bit representation, preserving all …","","","Inserts the specified flags in-place.","Returns the intersection between the flags in self and …","Returns true if there are flags common to both self and …","Calls U::from(self).","Returns true if all flags are currently set.","Returns true if no flags are currently stored.","","Returns the complement of this set of flags.","","","","Removes the specified flags in-place.","","","Inserts or removes the specified flags depending on the …","Returns the set difference of the two sets of flags.","Disables all flags enabled in the set.","Returns the symmetric difference between the flags in self …","","Toggles the specified flags in-place.","","","","Returns the union of between the flags in self and other.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","",""],"i":[0,2,2,0,2,2,2,2,2,0,0,0,2,0,2,0,0,2,0,0,2,2,0,0,0,2,2,0,0,0,0,0,0,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,0,116,8,0,116,8,116,8,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0,0,0,0,0,0,11,11,11,11,11,11,11,11,11,11,0,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,0,0,0,14,14,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,14,14,0,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,0,0,18,117,18,117,18,117,18,117,18,117,18,117,18,18,117,117,117,18,117,18,117,18,117,18,117,117,18,117,18,117,18,117,18,117,18,117,18,117,18,117,117,18,117,18,0,0,0,20,20,20,20,20,20,20,20,20,118,20,0,20,20,118,20,20,20,20,20,20,20,20,20,118,24,24,23,24,0,0,0,0,0,0,24,22,0,23,22,0,32,31,32,31,22,23,24,31,32,30,119,29,22,23,24,30,22,23,24,22,23,24,22,23,24,22,23,24,22,23,24,22,23,24,22,23,24,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,22,23,24,22,23,24,22,23,24,22,23,24,29,22,23,24,22,23,24,22,23,24,22,23,24,22,23,24,22,22,22,22,22,23,23,23,23,23,24,24,24,24,24,31,32,30,119,29,22,23,24,22,23,24,22,23,24,22,23,24,22,23,24,29,22,23,24,31,32,31,30,29,22,23,24,22,23,24,22,23,24,31,32,30,119,29,22,23,24,22,23,24,22,23,24,31,32,31,32,31,32,22,23,24,30,29,22,23,24,119,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,22,23,24,31,30,29,119,30,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,22,23,24,22,23,24,22,23,24,22,23,24,32,22,23,24,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,31,32,30,119,29,22,23,24,30,29,30,0,0,0,0,0,33,34,33,34,33,34,33,34,33,34,33,34,33,33,34,120,34,34,33,120,34,34,34,33,34,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,34,33,120,34,34,33,34,33,37,0,0,0,0,0,0,35,36,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,35,36,37,35,36,121,37,37,35,36,37,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,37,35,36,0,39,0,39,38,39,38,38,39,38,39,38,39,38,39,38,39,38,38,39,39,38,38,38,38,38,39,38,38,38,38,39,38,38,39,38,39,38,38,39,38,39,38,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,39,38,39,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122,0,122,122,41,0,0,0,41,41,0,41,41,42,41,44,123,42,41,41,41,41,41,41,41,41,41,44,123,42,41,44,123,42,41,44,123,42,41,44,123,42,41,44,123,42,41,41,41,41,41,41,42,41,41,41,41,41,41,41,41,41,44,123,42,41,41,41,41,41,41,44,123,41,41,41,44,123,42,41,41,41,0,41,44,41,123,0,44,123,42,41,44,123,42,41,41,44,44,41,44,44,41,44,123,42,41,44,123,42,41,41,41,41,41,41,41,44,123,42,41,44,123,42,41,44,123,42,41,41,44,123,42,41,44,123,42,41,44,123,42,41,44,123,42,41,44,44,44,47,47,47,0,0,0,0,46,46,46,46,48,46,47,48,46,47,48,46,47,48,48,46,47,48,46,47,48,46,47,47,47,47,48,46,47,46,48,46,47,0,46,48,46,47,48,46,47,48,46,48,48,48,48,46,47,48,46,47,46,46,46,47,48,46,47,48,46,47,48,46,47,48,46,47,48,46,47,48,46,47,48,46,47,48,48,48,46,46,48,0,0,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,49,50,0,0,0,0,0,0,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,0,0,0,0,0,59,60,59,60,59,60,59,60,59,60,59,60,59,59,60,59,60,0,60,59,60,0,60,60,60,59,60,59,60,0,60,60,59,60,59,60,59,60,59,60,59,60,59,60,59,60,59,60,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,63,64,65,0,0,0,0,0,0,0,0,0,0,0,0,62,63,68,62,63,64,65,67,68,62,63,64,65,67,68,62,63,64,65,67,68,62,63,64,65,67,62,63,68,62,63,64,65,67,68,62,63,64,65,67,62,63,64,65,67,62,63,64,65,67,62,63,64,65,68,68,68,62,63,64,65,62,63,62,63,64,65,68,62,62,62,63,63,63,64,64,64,65,65,65,67,64,67,62,64,64,62,67,65,68,62,63,64,65,67,68,67,67,62,63,64,65,68,67,68,68,62,63,64,65,67,68,62,63,64,65,67,62,63,62,63,64,65,67,68,62,63,64,65,67,68,62,63,64,65,67,124,64,65,62,63,64,65,67,68,68,62,63,64,65,67,68,62,63,64,65,67,68,62,63,64,65,67,68,62,63,64,65,67,68,62,63,64,65,67,68,62,63,64,65,67,68,62,63,64,65,67,0,0,0,0,0,71,125,70,72,70,71,72,70,71,72,70,71,72,70,71,72,70,71,72,70,71,70,125,70,71,72,70,72,0,0,0,72,70,71,70,0,72,70,71,125,72,70,72,70,71,72,70,71,72,70,72,70,71,72,70,71,72,70,71,72,70,71,72,70,71,72,70,71,72,70,71,72,70,71,72,70,71,0,0,0,0,0,76,76,0,0,0,0,0,75,75,75,75,79,74,75,74,74,77,79,76,75,75,75,75,75,75,75,75,75,74,77,79,76,75,74,77,79,76,75,74,77,79,76,75,74,77,79,76,75,74,77,79,76,75,76,75,76,75,75,75,75,77,77,79,75,0,0,0,75,76,75,0,0,75,76,75,75,75,75,75,74,77,79,76,75,77,75,75,75,74,74,75,75,75,74,75,75,74,77,79,76,75,75,75,0,77,77,77,74,77,75,77,74,74,75,74,77,79,76,75,74,77,79,76,75,74,75,74,74,0,75,74,74,77,79,76,75,74,77,79,76,75,0,0,75,0,0,0,75,75,75,76,75,75,74,74,74,77,79,76,75,74,77,79,76,75,74,77,79,76,75,75,77,77,74,77,79,76,75,74,77,79,76,75,77,74,77,79,76,75,74,77,79,76,75,81,81,81,0,0,0,81,81,0,0,81,81,81,81,78,40,82,81,80,81,81,81,81,81,81,80,81,81,78,40,82,81,80,78,40,82,81,80,40,82,78,40,82,81,80,78,40,82,81,80,78,40,82,81,80,81,80,81,80,81,81,81,82,82,81,81,80,81,80,81,78,78,80,81,81,81,81,81,78,78,40,82,81,80,81,81,81,81,78,81,81,81,81,78,40,82,81,80,40,82,81,81,80,40,78,81,78,40,80,82,81,78,40,82,81,80,78,40,82,81,80,81,80,80,81,78,78,40,82,81,80,78,40,82,81,80,81,81,81,81,81,80,81,78,78,78,0,0,0,0,78,40,82,81,80,78,40,82,81,80,78,40,82,81,80,81,78,78,40,82,81,80,78,40,82,81,80,78,40,82,81,80,78,40,82,81,80,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,84,126,84,126,84,126,84,126,84,126,84,126,84,126,84,84,126,84,84,126,84,126,84,126,84,126,84,84,126,84,126,84,126,84,126,84,126,84,126,84,84,126,84,126,0,0,0,0,87,88,127,87,88,127,87,88,127,87,88,127,87,88,127,87,88,127,87,88,127,88,87,88,127,86,87,88,87,127,87,88,87,88,127,87,88,127,87,88,127,87,88,127,87,88,127,87,88,127,87,88,127,86,87,88,87,88,127,87,88,127,127,87,88,127,87,88,127,0,0,89,128,89,128,89,128,89,128,89,128,89,128,128,89,89,128,89,89,128,89,89,128,89,128,89,128,89,128,89,128,89,128,89,128,89,128,89,128,89,128,89,128,89,128,90,0,0,0,0,0,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,90,91,90,90,93,3,3,93,92,93,3,90,91,92,92,3,92,93,3,90,91,93,92,93,3,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,93,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,92,93,3,90,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,96,0,0,96,96,96,0,96,96,0,0,0,0,0,0,0,0,96,0,96,0,96,0,0,96,96,0,0,0,0,0,0,96,96,0,0,0,0,0,0,96,96,96,96,96,96,96,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,101,102,0,0,0,0,0,0,0,99,100,97,98,98,97,101,102,98,99,100,97,101,102,98,99,100,97,101,102,98,99,100,97,101,102,98,99,100,97,101,102,98,99,100,97,101,102,98,99,100,97,97,98,98,99,100,101,102,98,97,101,102,98,99,100,102,97,101,102,98,99,100,0,0,97,98,97,101,102,98,99,100,97,101,102,98,99,100,0,98,102,97,97,101,102,98,99,100,97,101,102,98,99,100,98,0,98,98,97,101,102,98,99,100,97,101,102,98,99,100,97,101,102,98,99,100,97,101,102,98,99,100,97,101,102,98,99,100,98,98,0,98,97,101,102,98,99,100,97,101,102,98,99,100,0,0,0,106,107,104,0,104,106,107,104,106,107,104,106,107,104,106,107,104,106,107,104,106,107,106,107,104,0,104,106,107,0,104,106,107,104,104,106,107,104,106,107,0,104,0,104,106,107,104,106,107,104,106,107,104,106,107,104,106,107,104,106,107,104,106,107,104,106,107,104,106,107,0,0,108,108,103,108,103,108,103,108,103,108,103,108,103,108,108,108,108,103,108,108,103,103,108,108,108,103,103,103,103,108,108,108,108,103,103,108,103,108,108,103,103,108,103,108,108,108,108,108,108,103,108,103,108,103,108,103,108,103,108,103,108,103,108,0,0,111,109,111,109,111,109,111,109,111,109,111,109,111,109,109,0,0,0,0,0,0,111,109,111,109,109,109,111,109,109,111,109,111,0,109,111,109,111,0,109,0,109,111,109,111,109,111,109,111,109,111,109,111,109,111,95,95,95,95,95,0,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,0,112,112,112,0,0,0,105,113,112,105,113,112,105,113,112,105,113,112,105,113,112,105,113,112,112,112,112,113,105,113,112,113,113,105,105,105,105,113,112,105,105,105,113,112,105,113,112,105,113,105,113,112,105,113,112,113,113,112,113,105,113,112,105,113,112,105,113,112,105,113,112,105,113,112,105,113,112,105,113,112,0,0,0,0,115,0,114,115,114,115,114,115,114,115,0,114,115,114,115,114,115,114,114,114,115,0,0,114,115,114,115,114,115,114,114,115,114,115,0,114,114,115,114,115,114,115,114,115,114,115,114,115,114,115,0,0,0,0,0,0,0,0,0,0,0,0,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110],"f":[0,0,[[]],0,[[]],[[]],[[]],[[],1],[[],1],[[]],0,0,[2,3],0,[[]],0,0,[[]],0,0,[[]],[[]],0,0,[[],4],[[]],[[]],0,0,0,0,0,0,[[],5],[[],5],[[],6],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[],1],[[],1],[[]],[7,4],[[8,7],4],[7,7],[[],4],[8,4],[[],4],[8,4],[[]],[[]],[[]],[9,8],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],6],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[],1],[[],1],[[]],[[]],[[]],[[]],[10],[[]],[[]],[[],5],[[],5],[[],6],[[]],[[]],[[]],[[]],[[11,12],13],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[14,15],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],6],[[]],[[]],0,[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[],1],[[],1],0,[[]],[16],[[]],[[],16],[[]],[[]],[[16,17]],[[]],[[]],[[],5],[[],5],[[],6],[[]],[[]],0,[[]],[[]],[[16,17]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[18,3],[17,17],[[17,17],19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[17,17],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[17,17],[[]],[[]],[[]],[[]],0,0,0,0,[[]],[[]],[[]],[[]],[[],1],[[],1],[20,15],[[]],[[]],[[]],0,[[]],[[]],[[],21],[[]],[[]],[[],5],[[],5],[[],6],[[]],[[]],[[]],[[]],[21],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],22],[[],23],[[],24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[22,22],22],[[23,23],23],[[24,24],24],[[22,22]],[[23,23]],[[24,24]],[[22,22],22],[[23,23],23],[[24,24],24],[[22,22]],[[23,23]],[[24,24]],[22,21],[23,21],[24,21],0,0,0,[[22,22],22],[[23,23],23],[[24,24],24],[[22,22]],[[23,23]],[[24,24]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[22,22],[23,23],[24,24],[[]],[[]],[[]],[[22,22],25],[[23,23],25],[[24,24],25],[22,22],[23,23],[24,24],0,[[22,22],26],[[23,23],26],[[24,24],26],[[22,22],22],[[23,23],23],[[24,24],24],[[],22],[[],23],[[],24],[[22,22],26],[[23,23],26],[[24,24],26],[[22,27]],[[23,27]],[[24,27]],[[22,28],13],[[22,28],13],[[22,28],13],[[22,28],13],[[22,28],13],[[23,28],13],[[23,28],13],[[23,28],13],[[23,28],13],[[23,28],13],[[24,28],13],[[24,28],13],[[24,28],13],[[24,28],13],[[24,28],13],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[21,[[1,[22]]]],[21,[[1,[23]]]],[21,[[1,[24]]]],[21,22],[21,23],[21,24],[21,22],[21,23],[21,24],[27,22],[27,23],[27,24],[29],[22],[23],[24],0,0,0,[30],0,[[22,22]],[[23,23]],[[24,24]],[[22,22],22],[[23,23],23],[[24,24],24],[[22,22],26],[[23,23],26],[[24,24],26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[22,26],[23,26],[24,26],[22,26],[23,26],[24,26],0,0,0,0,0,0,[[22,22],26],[[23,23],26],[[24,24],26],[17,30],[[],29],[22,22],[23,23],[24,24],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[22,22],[[1,[25]]]],[[23,23],[[1,[25]]]],[[24,24],[[1,[25]]]],0,[30,[[1,[21]]]],[29,21],0,[30,31],[[22,22]],[[23,23]],[[24,24]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[22,22,26]],[[23,23,26]],[[24,24,26]],[[22,22],22],[[23,23],23],[[24,24],24],[[22,22]],[[23,23]],[[24,24]],[[22,22],22],[[23,23],23],[[24,24],24],0,[[]],[[]],[[]],[[22,22]],[[23,23]],[[24,24]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[22,22],22],[[23,23],23],[[24,24],24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[30,21]],[[29,21]],[30,32],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[33,15],0,[[]],[34],[[]],[[]],[[]],[34],0,[[]],[[]],[[],34],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[34],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[35,15],[36,15],[[]],[[]],[[]],[[]],[37],[[]],[[]],[[]],[17,37],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[38,17,39],7],[[38,17,39],7],[39,39],[[]],[[38,17,39,7]],[[38,17,39,17]],[[38,17,39,17]],[[38,17,39,17]],[[]],[[]],[[38,17],7],[[38,17,39],7],[[17,39],17],[[]],[[]],[17,38],[[]],[[]],[[]],[[]],[[38,17],7],[[]],[[]],[[]],[[]],[[38,17,7]],[[38,17,39,7]],[[],17],[[38,17,39],7],[[]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[40,17],[[],26],0,[[],26],[40,17],0,0,0,0,0,0,0,0,0,0,[[],41],[[]],[[]],[[]],[[]],[[41,41],41],[[41,41]],[[41,41],41],[[41,41]],[41,7],0,[[41,41],41],[[41,41]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[41,41],[[]],[[41,41],25],[41,41],[[41,41],26],[42,15],[[41,41],41],[[],41],[[41,41],26],[[41,27]],[[41,28],13],[[41,28],13],[[41,28],13],[[41,28],13],[[41,28],13],[[]],[[]],[[]],[[]],[7,[[1,[41]]]],[7,41],[7,41],[27,41],[41],0,0,[[41,41]],[[41,41],41],[[41,41],26],[[]],[[]],[[]],[[]],[41,26],[41,26],[[]],[[41,41],26],[[26,26,[15,[43]]],44],[41,41],0,[[12,41],[[1,[[15,[44]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[41,41],[[1,[25]]]],[[44,40],17],[44,[[45,[21]]]],[41],[44,26],0,[[41,41]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[41,41,26]],[[41,41],41],[[41,41]],[[41,41],41],[[]],[[41,41]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[41,41],41],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[44,26],0,[[44,40],17],0,0,0,0,0,0,0,[46,26],0,[46,17],[46,17],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[47,47],[[]],[[47,47],26],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[],46],[[]],[[]],[[]],[[]],[[]],[[]],[[48,40],17],[46,21],[[[15,[[3,[46]]]]],48],[48,26],0,[[]],[[]],[[]],[[]],[[]],[[]],[[46,15]],0,0,[[]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[48,26],0,[[48,40],17],[[46,21]],0,[[[15,[[3,[46]]]]],48],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[49,40],17],[[50,40],17],[49,26],[50,26],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[49,26],[50,26],[[49,40],17],[[50,40],17],0,0,0,0,0,0,[[]],[[]],[[]],[[],51],[[]],[[],1],[[],1],[51,52],[53,53],[[]],[[],54],[51,55],[53,5],0,[[]],[[]],[[56,57],53],[[]],[[]],0,[53],[[]],[[]],[53,56],0,[[]],[57,58],[[],5],[[],5],[[],6],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[59,3],[[]],[[]],0,[[]],[[]],[[]],0,[[19,19]],[[60,19,19]],[[],60],[[]],[[]],[[]],[[]],[60],[[]],[60],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[61,4],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[62,26],[63,26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[62,64],[63,65],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[62,62],[63,63],[64,64],[65,65],[[[67,[66]]],[[67,[66]]]],[[]],[[]],[[]],[[]],[[]],[[62,62],25],[[63,63],25],[[64,64],25],[[65,65],25],0,[[],5],0,[[62,62],26],[[63,63],26],[[64,64],26],[[65,65],26],[62,64],[63,65],[[62,28],13],[[63,28],13],[[64,28],13],[[65,28],13],[[]],[17,62],[64,62],[[]],[[]],[65,63],[17,63],[17,64],[62,64],[[]],[[]],[63,65],[17,65],[[]],[64],[67],[62],[64],[64],[62],[67],[65],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[67],0,[[62,62],26],[[63,63],26],[[64,64],26],[[65,65],26],[[],68],[[],67],[68,1],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[62,17],[63,17],[[62,62],[[1,[25]]]],[[63,63],[[1,[25]]]],[[64,64],[[1,[25]]]],[[65,65],[[1,[25]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[64],[65],[[]],[[]],[[]],[[]],[[]],[57,69],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[],[[1,[64]]]],[70,[[1,[64]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],0,[64],[[70,64]],[71,3],[72],0,[[72,28],13],[[],[[1,[72]]]],[[]],[64],[[]],[[]],[[]],[[70,64,64]],[[]],[[]],[[]],[[]],[[]],[64,72],[[],70],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[73,4],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,[74],[[],75],0,[[]],[[]],[[]],[[]],[[]],[[75,75],75],[[75,75]],[[75,75],75],[[75,75]],[75,21],0,[[75,75],75],[[75,75]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[76,76],[75,75],[[]],[[]],[[75,75],25],[75,75],[[75,75],26],[[77,78]],0,[79,15],[[75,75],75],0,0,0,[[],75],[[76,76],26],[[75,75],26],0,0,[[75,27]],[[76,28],13],[[75,28],13],[[75,28],13],[[75,28],13],[[75,28],13],[[75,28],13],[[]],[[]],[[]],[[]],[[]],[77,77],[21,[[1,[75]]]],[21,75],[21,75],[[]],[74,74],[27,75],[75],[[75,75]],[[74,63,63,75]],[[75,75],75],[[75,75],26],[[]],[[]],[[]],[[]],[[]],[75,26],[75,26],[[],17],[[77,78]],[[77,78,65]],0,[74],0,[[75,75],26],[[63,63,76,75],77],[[],74],[[],74],[75,75],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[75,75],[[1,[25]]]],[[74,77,1]],[74],[[]],[[75,75]],[[74,65]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[75,75,26]],0,0,0,[[75,75],75],[[75,75]],[[75,75],75],[[]],[[]],[[75,75]],[74,17],[[74,65],[[1,[80]]]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[75,75],75],[[77,78]],[[77,78,65]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[],81],[[]],[[]],[[]],[[]],[[]],[[81,81],81],[[81,81]],[[81,81],81],[[81,81]],[81,21],0,0,[[81,81],81],[[81,81]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[81,81],[80,80],[[]],[[]],[[81,81],25],[81,81],[[81,81],26],0,0,[[81,81],81],[[],81],[[],80],[[81,81],26],[80,26],[[81,27]],[[78,65],[[1,[80]]]],[[78,65],[[1,[80]]]],[80,81],[[81,28],13],[[81,28],13],[[81,28],13],[[81,28],13],[[81,28],13],0,[[]],[[]],[[]],[[]],[[]],[21,[[1,[81]]]],[21,81],[21,81],[27,81],[17,78],[81],[[81,81]],[[81,81],81],[[81,81],26],[[]],[[]],[[]],[[]],[[]],[40],[[]],[81,26],[81,26],[80,26],[40,17],[[78,65,64,81]],[[81,81],26],[[],78],[45,40],[[64,81],80],[82,1],[81,81],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[81,81],[[1,[25]]]],[80,64],[80,26],[[81,81]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[81,81,26]],[[81,81],81],[[81,81]],[[81,81],81],[[]],[[]],[[81,81]],[78,17],[[78,65],[[1,[80]]]],[[78,63],[[1,[62]]]],[[17,21,17],45],[17],[17],[[17,21],83],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[81,81],81],[[78,65]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[80,26],0,0,0,0,0,0,0,0,0,[[],17],[17],[[17,17,17,17],17],[17],[17,4],0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[]],[[]],0,[[]],[[]],[[],84],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[84],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[84,85],0,[[84,[15,[86]]]],[[]],[[]],[[]],[[]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[87],[88],0,0,[[],87],[[],88],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[]],[87],[88],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],0,[89],[[]],[[]],0,[[]],[[]],[17,89],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[89],0,[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[90],[91,92],[90],[90],[93],[3,90],[3],[93],[[]],[[]],[[]],[[]],[[]],[92],0,0,[[]],[[]],[[]],[[]],[[]],0,[[],92],[[],93],[[],3],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[17,94],0,[17,94],[17,94],[[21,7],94],[17,94],[[17,21,17],94],[[17,21,17],94],[[21,17],94],[19,4],[[],94],[[],94],[[],94],[[17,7],94],[[94,19],94],[[],94],[17,94],[17,94],[[17,17],94],[26,94],[17,94],[17,94],[17,94],[17,94],[17,94],[17,94],[[],94],[[17,17],94],[17,19],0,0,0,0,0,0,0,0,0,[[]],0,[[]],[[]],[[],85],[[]],[[]],[[]],[[],1],[[],1],[[],1],0,[95],0,0,0,0,0,0,[96,15],[19],[[]],0,[[]],0,0,[[]],[[]],0,0,0,0,0,0,[[]],[[]],0,0,[[]],0,0,0,[[],5],[[],5],[[],6],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[],1],[[],1],[[]],[17,85],[[]],[[]],[[]],0,0,[[]],[[]],0,[[],5],[[],5],[[],6],[[]],[[]],[[]],[[]],[[],85],0,0,0,0,0,0,0,0,0,0,0,[97,17],[98],[98],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],0,[[97,17]],[98],[98],[99,3],[100,3],[101],[102],[98],[[]],[[]],[[]],[[]],[[]],[[]],[102,17],[[]],[[]],[[]],[[]],[[]],[[]],[17],[[],102],[[],97],[[[15,[103]],17,26],98],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],101],0,[102],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[17,17],[98,64],[98,17],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[98,17],0,[[17,17],17],[98,17],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[[104,[15,[105]]]],[[[15,[105]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[106,3],[107,3],[104,[[1,[[15,[105]]]]]],[[],[[1,[[15,[105]]]]]],[[]],[[]],[[]],[[17,[15,[103]]]],[[]],[[]],[[]],[[],104],[[]],[[]],[[]],[[]],[[]],[[]],[17,[[1,[[15,[103]]]]]],0,[17],[[]],[[]],[[]],[[]],[[]],[[]],[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[108,17],[108,17],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],0,0,[[108,17]],[[15,[45,[83]]]],0,0,[15,[[15,[103]]]],[[]],[[]],[[108,17],[[15,[105]]]],[108,17],[103,17],0,[103,[[90,[108]]]],[[]],[[]],0,0,0,[[],[[15,[103]]]],[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[]],[[]],0,0,0,0,[108,17],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[109,[[1,[[15,[105]]]]]],0,[[],17],[[],[[15,[103]]]],[[],[[1,[[15,[105]]]]]],[[],110],[[],17],[[],17],[111,3],[[]],[[]],[109,85],0,[[]],[[]],[[],109],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[85],[109,[[1,[[15,[105]]]]]],[[],[[1,[[15,[105]]]]]],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,[[],95],[[]],[[95,95],95],[[95,95]],[[95,95],95],[[95,95]],[95,7],0,[[95,95],95],[[95,95]],[[]],[[]],[[]],[95,1],[[],1],[[],1],[95,95],[[]],[[95,95],25],[95,95],[[95,95],26],[[95,95],95],[[],95],[[95,95],26],[[95,27]],[[95,28],13],[[95,28],13],[[95,28],13],[[95,28],13],[[95,28],13],[[]],[7,[[1,[95]]]],[7,95],[7,95],[27,95],[95],[[95,95]],[[95,95],95],[[95,95],26],[[]],[95,26],[95,26],[[95,95],26],[95,95],[[]],[[]],[[95,95],[[1,[25]]]],[[95,95]],[[]],[[]],[[95,95,26]],[[95,95],95],[[95,95]],[[95,95],95],[[]],[[95,95]],[[],5],[[],5],[[],6],[[95,95],95],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[],1],[[],1],[112,112],[[]],[[112,112],26],0,[[]],[[]],[[]],[113,112],[113,110],[105,17],0,[105,[[90,[113]]]],[[]],[[]],[[]],0,[[[15,[103]],17,26],105],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[]],0,[[],5],[[],5],[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,[[17,[15,[105]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],1],[[],1],[[],1],[[],1],[[114,114],25],[115,3],[[114,114],26],0,[[]],[[]],[[],17],[[],17],[[]],[[]],[[]],[[]],[[]],[[]],[[114,114],[[1,[25]]]],[[]],[[]],[[]],[[]],[[]],0,[[],5],[[],5],[[],5],[[],5],[[],6],[[],6],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[110],[[],4],[[],4],0,[[17,17,17,17,17],110],[[]],[[]],[[]],[[]],[[],1],[[],1],[[110,28],13],[[]],[[]],0,0,[[]],[[]],[[]],[[]],0,[[110,17]],0,0,[[],5],[[],5],[[],6],[[]],[[]],[[]],[[]],0],"p":[[4,"Option"],[3,"DEV_NON_BLOCKING_ACCESS"],[3,"UPIntrFreeCell"],[15,"never"],[4,"Result"],[3,"TypeId"],[15,"u32"],[3,"RISCV64"],[15,"u64"],[3,"Arguments"],[3,"Stdout"],[15,"str"],[6,"Result"],[3,"BLOCK_DEVICE"],[3,"Arc"],[3,"VirtIOBlock"],[15,"usize"],[3,"QUEUE_FRAMES"],[15,"i32"],[3,"UART"],[15,"u8"],[3,"IER"],[3,"LSR"],[3,"MCR"],[4,"Ordering"],[15,"bool"],[8,"IntoIterator"],[3,"Formatter"],[3,"NS16550a"],[3,"NS16550aRaw"],[3,"ReadWithoutDLAB"],[3,"WriteWithoutDLAB"],[3,"GPU_DEVICE"],[3,"VirtIOGpuWrapper"],[3,"KEYBOARD_DEVICE"],[3,"MOUSE_DEVICE"],[3,"VirtIOInputWrapper"],[3,"PLIC"],[4,"IntrTargetPriority"],[3,"UserBuffer"],[3,"OpenFlags"],[3,"ROOT_INODE"],[3,"Inode"],[3,"OSInode"],[3,"Vec"],[3,"PipeRingBuffer"],[4,"RingBufferStatus"],[3,"Pipe"],[3,"Stdin"],[3,"Stdout"],[3,"Rectangle"],[3,"Clipped"],[3,"Graphics"],[3,"ColorConverted"],[3,"Cropped"],[3,"Size"],[3,"Point"],[3,"Translated"],[3,"DRAWING_BOARD"],[3,"DrawingBoard"],[3,"PanicInfo"],[3,"PhysAddr"],[3,"VirtAddr"],[3,"PhysPageNum"],[3,"VirtPageNum"],[8,"Clone"],[3,"SimpleRange"],[3,"SimpleRangeIterator"],[3,"Translated"],[3,"StackFrameAllocator"],[3,"FRAME_ALLOCATOR"],[3,"FrameTracker"],[3,"Layout"],[3,"MemorySet"],[3,"MapPermission"],[4,"MapType"],[3,"MapArea"],[3,"PageTable"],[3,"KERNEL_SPACE"],[3,"PageTableEntry"],[3,"PTEFlags"],[3,"UserBufferIterator"],[3,"String"],[3,"Condvar"],[3,"TaskContext"],[8,"Mutex"],[3,"MutexSpin"],[3,"MutexBlocking"],[3,"Semaphore"],[3,"UPIntrRefMut"],[3,"INTR_MASKING_INFO"],[3,"UPSafeCellRaw"],[3,"IntrMaskingInfo"],[15,"isize"],[3,"SignalFlags"],[3,"INITPROC"],[3,"RecycleAllocator"],[3,"TaskUserRes"],[3,"PID_ALLOCATOR"],[3,"KSTACK_ALLOCATOR"],[3,"PidHandle"],[3,"KernelStack"],[3,"ProcessControlBlock"],[3,"TaskManager"],[3,"TaskControlBlock"],[3,"TASK_MANAGER"],[3,"PID2PCB"],[3,"ProcessControlBlockInner"],[3,"Processor"],[3,"TrapContext"],[3,"PROCESSOR"],[4,"TaskStatus"],[3,"TaskControlBlockInner"],[3,"TimerCondVar"],[3,"TIMERS"],[8,"QEMUExit"],[3,"VirtioHal"],[8,"CharDevice"],[3,"NS16550aInner"],[8,"GpuDevice"],[8,"InputDevice"],[8,"File"],[3,"OSInodeInner"],[8,"StepByOne"],[8,"FrameAllocator"],[3,"CondvarInner"],[3,"MutexBlockingInner"],[3,"SemaphoreInner"]]}\ }'); -if (window.initSearch) {window.initSearch(searchIndex)}; \ No newline at end of file +if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)}; +if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex}; diff --git a/ch9-dev/search.js b/ch9-dev/search.js index a8026db5..d35a7db8 100644 --- a/ch9-dev/search.js +++ b/ch9-dev/search.js @@ -1,2 +1 @@ -(function(){var itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){if(nb===0||nb===1||nb===2){searchState.currentTab=nb}var nb_copy=nb;onEachLazy(document.getElementById("titles").childNodes,function(elem){if(nb_copy===0){addClass(elem,"selected")}else{removeClass(elem,"selected")}nb_copy-=1});onEachLazy(document.getElementById("results").childNodes,function(elem){if(nb===0){addClass(elem,"active")}else{removeClass(elem,"active")}nb-=1})}function removeEmptyStringsFromArray(x){for(var i=0,len=x.length;i-1){var obj=searchIndex[result.id];obj.lev=result.lev;var res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates[obj.fullPath]){continue}duplicates[obj.fullPath]=true;obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType){var ar=[];for(var entry in results){if(hasOwnPropertyRustdoc(results,entry)){var result=results[entry];result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};ar.push(result)}}results=ar;if(results.length===0){return[]}results.sort(function(aaa,bbb){var a,b;a=(aaa.word!==val);b=(bbb.word!==val);if(a!==b){return a-b}a=(aaa.lev);b=(bbb.lev);if(a!==b){return a-b}a=(aaa.item.crate!==window.currentCrate);b=(bbb.item.crate!==window.currentCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});for(var i=0,len=results.length;i"));return{name:val.substring(0,val.indexOf("<")),generics:values.split(/\s*,\s*/),}}return{name:val,generics:[],}}function checkGenerics(obj,val){var tmp_lev,elem_name;if(val.generics.length>0){if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>=val.generics.length){var elems=Object.create(null);var elength=obj[GENERICS_DATA].length;for(var x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length>0){var elems=Object.create(null);len=obj[GENERICS_DATA].length;for(x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length!==0){tmp_lev=checkGenerics(obj,val);if(tmp_lev<=MAX_LEV_DISTANCE){return tmp_lev}}}}else if(literalSearch){var found=false;if((!val.generics||val.generics.length===0)&&obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){found=obj[GENERICS_DATA].some(function(gen){return gen[NAME]===val.name})}return found?0:MAX_LEV_DISTANCE+1}lev_distance=Math.min(levenshtein(obj[NAME],val.name),lev_distance);if(lev_distance<=MAX_LEV_DISTANCE){lev_distance=Math.ceil((checkGenerics(obj,val)+lev_distance)/2)}if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){var olength=obj[GENERICS_DATA].length;for(x=0;x0){var length=obj.type[INPUTS_DATA].length;for(var i=0;iOUTPUT_DATA){var ret=obj.type[OUTPUT_DATA];if(typeof ret[0]==="string"){ret=[ret]}for(var x=0,len=ret.length;xlength){return MAX_LEV_DISTANCE+1}for(var i=0;ilength){break}var lev_total=0;var aborted=false;for(var x=0;xMAX_LEV_DISTANCE){aborted=true;break}lev_total+=lev}if(!aborted){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;var name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,}}function handleAliases(ret,query,filterCrates){var aliases=[];var crateAliases=[];if(filterCrates!==null){if(ALIASES[filterCrates]&&ALIASES[filterCrates][query.search]){var query_aliases=ALIASES[filterCrates][query.search];var len=query_aliases.length;for(var i=0;iMAX_RESULTS){ret.others.pop()}};onEach(aliases,pushFunc);onEach(crateAliases,pushFunc)}function addIntoResults(isExact,res,fullId,id,index,lev){if(lev===0||(!isExact&&lev<=MAX_LEV_DISTANCE)){if(res[fullId]!==undefined){var result=res[fullId];if(result.dontValidate||result.lev<=lev){return}}res[fullId]={id:id,index:index,dontValidate:isExact,lev:lev,}}}var nSearchWords=searchWords.length;var i,it;var ty;var fullId;var returned;var in_args;var len;if((val.charAt(0)==="\""||val.charAt(0)==="'")&&val.charAt(val.length-1)===val.charAt(0)){val=extractGenerics(val.substr(1,val.length-2));for(i=0;i")>-1){var trimmer=function(s){return s.trim()};var parts=val.split("->").map(trimmer);var input=parts[0];var inputs=input.split(",").map(trimmer).sort();for(i=0,len=inputs.length;i0){firstNonZeroDistance=distance;break}}in_args=firstNonZeroDistance}addIntoResults(true,results_in_args,fullId,i,-1,in_args);addIntoResults(true,results_returned,fullId,i,-1,returned);if(is_module){addIntoResults(true,results,fullId,i,-1,0)}}}query.inputs=inputs.map(function(input){return input.name});query.output=output.name}else{query.inputs=[val];query.output=val;query.search=val;val=val.replace(/_/g,"");var valGenerics=extractGenerics(val);var paths=valLower.split("::");removeEmptyStringsFromArray(paths);val=paths[paths.length-1];var contains=paths.slice(0,paths.length>1?paths.length-1:1);var lev,j;for(j=0;j1){lev=checkPath(contains,paths[paths.length-1],ty);if(lev>MAX_LEV_DISTANCE){continue}else if(lev>0){lev_add=lev/10}}returned=MAX_LEV_DISTANCE+1;in_args=MAX_LEV_DISTANCE+1;var index=-1;lev=MAX_LEV_DISTANCE+1;fullId=ty.id;if(searchWords[j].indexOf(split[i])>-1||searchWords[j].indexOf(val)>-1||ty.normalizedName.indexOf(val)>-1){if(typePassesFilter(typeFilter,ty.ty)&&results[fullId]===undefined){index=ty.normalizedName.indexOf(val)}}if((lev=levenshtein(searchWords[j],val))<=MAX_LEV_DISTANCE){if(typePassesFilter(typeFilter,ty.ty)){lev+=1}else{lev=MAX_LEV_DISTANCE+1}}in_args=findArg(ty,valGenerics,false,typeFilter);returned=checkReturned(ty,valGenerics,false,typeFilter);lev+=lev_add;if(lev>0&&val.length>3&&searchWords[j].indexOf(val)>-1){if(val.length<6){lev-=1}else{lev=0}}addIntoResults(false,results_in_args,fullId,j,index,in_args);addIntoResults(false,results_returned,fullId,j,index,returned);if(typePassesFilter(typeFilter,ty.ty)&&(index!==-1||lev<=MAX_LEV_DISTANCE)){if(index!==-1&&paths.length<2){lev=0}addIntoResults(false,results,fullId,j,index,lev)}}}var ret={"in_args":sortResults(results_in_args,true),"returned":sortResults(results_returned,true),"others":sortResults(results,false),};handleAliases(ret,query,filterCrates);return ret}function validateResult(name,path,keys,parent){for(var i=0,len=keys.length;i-1||path.indexOf(keys[i])>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(keys[i])>-1)||levenshtein(name,keys[i])<=MAX_LEV_DISTANCE)){return false}}return true}function getQuery(raw){var matches,type="",query;query=raw;matches=query.match(/^(fn|mod|struct|enum|trait|type|const|macro)\s*:\s*/i);if(matches){type=matches[1].replace(/^const$/,"constant");query=query.substring(matches[0].length)}return{raw:raw,query:query,type:type,id:query+type}}function nextTab(direction){var next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){var target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#titles > button").item(searchState.currentTab);if(target){target.focus()}}function buildHrefAndPath(item){var displayPath;var href;var type=itemTypes[item.ty];var name=item.name;var path=item.path;if(type==="mod"){displayPath=path+"::";href=window.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="primitive"||type==="keyword"){displayPath="";href=window.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=window.rootPath+name+"/index.html"}else if(item.parent!==undefined){var myparent=item.parent;var anchor="#"+type+"."+name;var parentType=itemTypes[myparent.ty];var pageType=parentType;var pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){var enumNameIdx=item.path.lastIndexOf("::");var enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=window.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=window.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function escape(content){var h1=document.createElement("h1");h1.textContent=content;return h1.innerHTML}function pathSplitter(path){var tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){var extraClass="";if(display===true){extraClass=" active"}var output=document.createElement("div");var length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(function(item){var name=item.name;var type=itemTypes[item.ty];length+=1;var extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}var link=document.createElement("a");link.className="result-"+type;link.href=item.href;var wrapper=document.createElement("div");var resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){var alias=document.createElement("span");alias.className="alias";var bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");wrapper.appendChild(resultName);var description=document.createElement("div");description.className="desc";var spanDesc=document.createElement("span");spanDesc.insertAdjacentHTML("beforeend",item.desc);description.appendChild(spanDesc);wrapper.appendChild(description);link.appendChild(wrapper);output.appendChild(link)})}else{output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){var search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true"&&(!search.firstChild||search.firstChild.innerText!==searchState.loadingText))){var elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}var query=getQuery(searchState.input.value);currentResults=query.id;var ret_others=addTab(results.others,query,true);var ret_in_args=addTab(results.in_args,query,false);var ret_returned=addTab(results.returned,query,false);var currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(window.ALL_CRATES.length>1){crates=` in `}var output=`
-

Results for ${escape(query.query)} `+(query.type?" (type: "+escape(query.type)+")":"")+"

"+crates+`
`+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
";var resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;let crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.focusedByTab=[null,null,null];searchState.showResults(search);var elems=document.getElementById("titles").childNodes;elems[0].onclick=function(){printTab(0)};elems[1].onclick=function(){printTab(1)};elems[2].onclick=function(){printTab(2)};printTab(currentTab)}function execSearch(query,searchWords,filterCrates){query=query.raw.trim();var results={"in_args":[],"returned":[],"others":[],};if(query.length!==0){var tmp=execQuery(getQuery(query),searchWords,filterCrates);results.in_args.push(tmp.in_args);results.returned.push(tmp.returned);results.others.push(tmp.others)}return{"in_args":results.in_args[0],"returned":results.returned[0],"others":results.others[0],}}function search(e,forced){var params=searchState.getQueryStringParams();var query=getQuery(searchState.input.value.trim());if(e){e.preventDefault()}if(query.query.length===0){return}if(!forced&&query.id===currentResults){if(query.query.length>0){putBackSearch()}return}var filterCrates=getFilterCrates();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.query+" - Rust";if(searchState.browserSupportsHistoryApi()){var newURL=buildUrl(query.raw,filterCrates);if(!history.state&&!params.search){history.pushState(null,"",newURL)}else{history.replaceState(null,"",newURL)}}showResults(execSearch(query,searchWords,filterCrates),params["go_to_first"],filterCrates)}function buildIndex(rawSearchIndex){searchIndex=[];var searchWords=[];var i,word;var currentIndex=0;var id=0;for(var crate in rawSearchIndex){if(!hasOwnPropertyRustdoc(rawSearchIndex,crate)){continue}var crateSize=0;var crateCorpus=rawSearchIndex[crate];searchWords.push(crate);var crateRow={crate:crate,ty:1,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),};id+=1;searchIndex.push(crateRow);currentIndex+=1;var itemTypes=crateCorpus.t;var itemNames=crateCorpus.n;var itemPaths=crateCorpus.q;var itemDescs=crateCorpus.d;var itemParentIdxs=crateCorpus.i;var itemFunctionSearchTypes=crateCorpus.f;var paths=crateCorpus.p;var aliases=crateCorpus.a;var len=paths.length;for(i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:itemFunctionSearchTypes[i],id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){ALIASES[crate]={};var j,local_aliases;for(var alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}if(!hasOwnPropertyRustdoc(ALIASES[crate],alias_name)){ALIASES[crate][alias_name]=[]}local_aliases=aliases[alias_name];for(j=0,len=local_aliases.length;j0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=function(){var qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="All crates"){var params=searchState.getQueryStringParams();var query=searchState.input.value.trim();if(!history.state&&!params.search){history.pushState(null,"",buildUrl(query,null))}else{history.replaceState(null,"",buildUrl(query,null))}}currentResults=null;search(undefined,true)}searchWords=buildIndex(rawSearchIndex);registerSearchEvents();function runSearchIfNeeded(){if(searchState.getQueryStringParams().search){search()}}runSearchIfNeeded()};if(window.searchIndex!==undefined){initSearch(window.searchIndex)}})() \ No newline at end of file +"use strict";(function(){const itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];const TY_PRIMITIVE=itemTypes.indexOf("primitive");const TY_KEYWORD=itemTypes.indexOf("keyword");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";function hasOwnPropertyRustdoc(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("titles").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb}else if(nb!==0){printTab(0)}}const levenshtein_row2=[];function levenshtein(s1,s2){if(s1===s2){return 0}const s1_len=s1.length,s2_len=s2.length;if(s1_len&&s2_len){let i1=0,i2=0,a,b,c,c2;const row=levenshtein_row2;while(i1-".indexOf(c)!==-1}function isStopCharacter(c){return isWhitespace(c)||isEndCharacter(c)}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){for(let i=0,len=itemTypes.length;i0){throw new Error("Cannot use literal search when there is more than one element")}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw new Error("Unclosed `\"`")}else if(parserState.userQuery[end]!=="\""){throw new Error(`Unexpected \`${parserState.userQuery[end]}\` in a string element`)}else if(start===end){throw new Error("Cannot have empty string element")}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","||isWhitespaceCharacter(c)}function isWhitespaceCharacter(c){return c===" "||c==="\t"}function createQueryElement(query,parserState,name,generics,isInGenerics){if(name==="*"||(name.length===0&&generics.length===0)){return}if(query.literalSearch&&parserState.totalElems-parserState.genericsElems>0){throw new Error("You cannot have more than one element if you use quotes")}const pathSegments=name.split("::");if(pathSegments.length>1){for(let i=0,len=pathSegments.length;i=end){throw new Error("Found generics without a path")}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(start>=end&&generics.length===0){return}elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;while(parserState.pos"){extra="`<`"}else if(endChar===""){extra="`->`"}throw new Error("Unexpected `"+c+"` after "+extra)}if(!foundStopChar){if(endChar!==""){throw new Error(`Expected \`,\`, \` \` or \`${endChar}\`, found \`${c}\``)}throw new Error(`Expected \`,\` or \` \`, found \`${c}\``)}const posBefore=parserState.pos;getNextElem(query,parserState,elems,endChar===">");if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}parserState.pos+=1}function checkExtraTypeFilterCharacters(parserState){const query=parserState.userQuery;for(let pos=0;pos"){if(isReturnArrow(parserState)){break}throw new Error(`Unexpected \`${c}\` (did you mean \`->\`?)`)}throw new Error(`Unexpected \`${c}\``)}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw new Error("Unexpected `:`")}if(query.elems.length===0){throw new Error("Expected type filter before `:`")}else if(query.elems.length!==1||parserState.totalElems!==1){throw new Error("Unexpected `:`")}else if(query.literalSearch){throw new Error("You cannot use quotes on type filter")}checkExtraTypeFilterCharacters(parserState);parserState.typeFilter=query.elems.pop().name;parserState.pos+=1;parserState.totalElems=0;query.literalSearch=false;foundStopChar=true;continue}if(!foundStopChar){if(parserState.typeFilter!==null){throw new Error(`Expected \`,\`, \` \` or \`->\`, found \`${c}\``)}throw new Error(`Expected \`,\`, \` \`, \`:\` or \`->\`, found \`${c}\``)}before=query.elems.length;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}while(parserState.pos`")}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),typeFilter:NO_TYPE_FILTER,elems:[],returned:[],foundElems:0,literalSearch:false,error:null,}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="All crates"&&hasOwnPropertyRustdoc(rawSearchIndex,elem.value)){return elem.value}return null}function parseQuery(userQuery){userQuery=userQuery.trim();const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);if(parserState.typeFilter!==null){let typeFilter=parserState.typeFilter;if(typeFilter==="const"){typeFilter="constant"}query.typeFilter=itemTypeFromName(typeFilter)}}catch(err){query=newParsedQuery(userQuery);query.error=err.message;query.typeFilter=-1;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,searchWords,filterCrates,currentCrate){const results_others={},results_in_args={},results_returned={};function transformResults(results){const duplicates={};const out=[];for(const result of results){if(result.id>-1){const obj=searchIndex[result.id];obj.lev=result.lev;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates[obj.fullPath]){continue}duplicates[obj.fullPath]=true;obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType,preferredCrate){const userQuery=parsedQuery.userQuery;const ar=[];for(const entry in results){if(hasOwnPropertyRustdoc(results,entry)){const result=results[entry];result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};ar.push(result)}}results=ar;if(results.length===0){return[]}results.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.lev);b=(bbb.lev);if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});let nameSplit=null;if(parsedQuery.elems.length===1){const hasPath=typeof parsedQuery.elems[0].path==="undefined";nameSplit=hasPath?null:parsedQuery.elems[0].path}for(const result of results){if(result.dontValidate){continue}const name=result.item.name.toLowerCase(),path=result.item.path.toLowerCase(),parent=result.item.parent;if(!isType&&!validateResult(name,path,nameSplit,parent)){result.id=-1}}return transformResults(results)}function checkGenerics(row,elem,defaultLev){if(row.generics.length===0){return elem.generics.length===0?defaultLev:MAX_LEV_DISTANCE+1}else if(row.generics.length>0&&row.generics[0].name===null){return checkGenerics(row.generics[0],elem,defaultLev)}let elem_name;if(elem.generics.length>0&&row.generics.length>=elem.generics.length){const elems=Object.create(null);for(const entry of row.generics){elem_name=entry.name;if(elem_name===""){if(checkGenerics(entry,elem,MAX_LEV_DISTANCE+1)!==0){return MAX_LEV_DISTANCE+1}continue}if(elems[elem_name]===undefined){elems[elem_name]=0}elems[elem_name]+=1}for(const generic of elem.generics){let match=null;if(elems[generic.name]){match=generic.name}else{for(elem_name in elems){if(!hasOwnPropertyRustdoc(elems,elem_name)){continue}if(elem_name===generic){match=elem_name;break}}}if(match===null){return MAX_LEV_DISTANCE+1}elems[match]-=1;if(elems[match]===0){delete elems[match]}}return 0}return MAX_LEV_DISTANCE+1}function checkIfInGenerics(row,elem){let lev=MAX_LEV_DISTANCE+1;for(const entry of row.generics){lev=Math.min(checkType(entry,elem,true),lev);if(lev===0){break}}return lev}function checkType(row,elem,literalSearch){if(row.name===null){if(row.generics.length>0){return checkIfInGenerics(row,elem)}return MAX_LEV_DISTANCE+1}let lev=levenshtein(row.name,elem.name);if(literalSearch){if(lev!==0){if(elem.generics.length===0){const checkGeneric=row.generics.length>0;if(checkGeneric&&row.generics.findIndex(tmp_elem=>tmp_elem.name===elem.name)!==-1){return 0}}return MAX_LEV_DISTANCE+1}else if(elem.generics.length>0){return checkGenerics(row,elem,MAX_LEV_DISTANCE+1)}return 0}else if(row.generics.length>0){if(elem.generics.length===0){if(lev===0){return 0}lev=checkIfInGenerics(row,elem);return lev+0.5}else if(lev>MAX_LEV_DISTANCE){return checkIfInGenerics(row,elem)}else{const tmp_lev=checkGenerics(row,elem,lev);if(tmp_lev>MAX_LEV_DISTANCE){return MAX_LEV_DISTANCE+1}return(tmp_lev+lev)/2}}else if(elem.generics.length>0){return MAX_LEV_DISTANCE+1}return lev}function findArg(row,elem,typeFilter){let lev=MAX_LEV_DISTANCE+1;if(row&&row.type&&row.type.inputs&&row.type.inputs.length>0){for(const input of row.type.inputs){if(!typePassesFilter(typeFilter,input.ty)){continue}lev=Math.min(lev,checkType(input,elem,parsedQuery.literalSearch));if(lev===0){return 0}}}return parsedQuery.literalSearch?MAX_LEV_DISTANCE+1:lev}function checkReturned(row,elem,typeFilter){let lev=MAX_LEV_DISTANCE+1;if(row&&row.type&&row.type.output.length>0){const ret=row.type.output;for(const ret_ty of ret){if(!typePassesFilter(typeFilter,ret_ty.ty)){continue}lev=Math.min(lev,checkType(ret_ty,elem,parsedQuery.literalSearch));if(lev===0){return 0}}}return parsedQuery.literalSearch?MAX_LEV_DISTANCE+1:lev}function checkPath(contains,ty){if(contains.length===0){return 0}let ret_lev=MAX_LEV_DISTANCE+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;if(clength>length){return MAX_LEV_DISTANCE+1}for(let i=0;ilength){break}let lev_total=0;let aborted=false;for(let x=0;xMAX_LEV_DISTANCE){aborted=true;break}lev_total+=lev}if(!aborted){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES[filterCrates]&&ALIASES[filterCrates][lowerQuery]){const query_aliases=ALIASES[filterCrates][lowerQuery];for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{Object.keys(ALIASES).forEach(crate=>{if(ALIASES[crate][lowerQuery]){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=ALIASES[crate][lowerQuery];for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}})}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,lev){if(lev===0||(!parsedQuery.literalSearch&&lev<=MAX_LEV_DISTANCE)){if(results[fullId]!==undefined){const result=results[fullId];if(result.dontValidate||result.lev<=lev){return}}results[fullId]={id:id,index:index,dontValidate:parsedQuery.literalSearch,lev:lev,}}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let lev,lev_add=0,index=-1;const fullId=row.id;const in_args=findArg(row,elem,parsedQuery.typeFilter);const returned=checkReturned(row,elem,parsedQuery.typeFilter);addIntoResults(results_in_args,fullId,pos,index,in_args);addIntoResults(results_returned,fullId,pos,index,returned);if(!typePassesFilter(parsedQuery.typeFilter,row.ty)){return}const searchWord=searchWords[pos];if(parsedQuery.literalSearch){if(searchWord===elem.name){addIntoResults(results_others,fullId,pos,-1,0)}return}if(elem.name.length===0){if(row.type!==null){lev=checkGenerics(row.type,elem,MAX_LEV_DISTANCE+1);addIntoResults(results_others,fullId,pos,index,lev)}return}if(elem.fullPath.length>1){lev=checkPath(elem.pathWithoutLast,row);if(lev>MAX_LEV_DISTANCE||(parsedQuery.literalSearch&&lev!==0)){return}else if(lev>0){lev_add=lev/10}}if(searchWord.indexOf(elem.pathLast)>-1||row.normalizedName.indexOf(elem.pathLast)>-1){index=row.normalizedName.indexOf(elem.pathLast)}lev=levenshtein(searchWord,elem.pathLast);if(lev>0&&elem.pathLast.length>2&&searchWord.indexOf(elem.pathLast)>-1){if(elem.pathLast.length<6){lev=1}else{lev=0}}lev+=lev_add;if(lev>MAX_LEV_DISTANCE){return}else if(index!==-1&&elem.fullPath.length<2){lev-=1}if(lev<0){lev=0}addIntoResults(results_others,fullId,pos,index,lev)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let totalLev=0;let nbLev=0;function checkArgs(elems,callback){for(const elem of elems){const lev=callback(row,elem,NO_TYPE_FILTER);if(lev<=1){nbLev+=1;totalLev+=lev}else{return false}}return true}if(!checkArgs(parsedQuery.elems,findArg)){return}if(!checkArgs(parsedQuery.returned,checkReturned)){return}if(nbLev===0){return}const lev=Math.round(totalLev/nbLev);addIntoResults(results,row.id,pos,0,lev)}function innerRunQuery(){let elem,i,nSearchWords,in_returned,row;if(parsedQuery.foundElems===1){if(parsedQuery.elems.length===1){elem=parsedQuery.elems[0];for(i=0,nSearchWords=searchWords.length;i0){for(i=0,nSearchWords=searchWords.length;i-1||path.indexOf(key)>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(key)>-1)||levenshtein(name,key)<=MAX_LEV_DISTANCE)){return false}}return true}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#titles > button").item(searchState.currentTab);if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;if(type==="mod"){displayPath=path+"::";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=ROOT_PATH+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=ROOT_PATH+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor="#"+type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=ROOT_PATH+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=ROOT_PATH+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function escape(content){const h1=document.createElement("h1");h1.textContent=content;return h1.innerHTML}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){let extraClass="";if(display===true){extraClass=" active"}const output=document.createElement("div");let length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];length+=1;let extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const wrapper=document.createElement("div");const resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){const alias=document.createElement("span");alias.className="alias";const bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");wrapper.appendChild(resultName);const description=document.createElement("div");description.className="desc";const spanDesc=document.createElement("span");spanDesc.insertAdjacentHTML("beforeend",item.desc);description.appendChild(spanDesc);wrapper.appendChild(description);link.appendChild(wrapper);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true"&&(!search.firstChild||search.firstChild.innerText!==searchState.loadingText))){const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";const crates_list=Object.keys(rawSearchIndex);if(crates_list.length>1){crates=" in "}let typeFilter="";if(results.query.typeFilter!==NO_TYPE_FILTER){typeFilter=" (type: "+escape(itemTypes[results.query.typeFilter])+")"}let output="
"+`

Results for ${escape(results.query.userQuery)}`+`${typeFilter}

${crates}
`;if(results.query.error!==null){output+=`

Query parser error: "${results.query.error}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("titles").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function search(e,forced){const params=searchState.getQueryStringParams();const query=parseQuery(searchState.input.value.trim());if(e){e.preventDefault()}if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}let filterCrates=getFilterCrates();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";if(browserSupportsHistoryApi()){const newURL=buildUrl(query.original,filterCrates);if(!history.state&&!params.search){history.pushState(null,"",newURL)}else{history.replaceState(null,"",newURL)}}showResults(execQuery(query,searchWords,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;return types.map(type=>{let pathIndex,generics;if(typeof type==="number"){pathIndex=type;generics=[]}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths)}return{name:pathIndex===0?null:lowercasePaths[pathIndex-1].name,ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:generics,}})}function buildFunctionSearchType(functionSearchType,lowercasePaths){const INPUTS_DATA=0;const OUTPUT_DATA=1;if(functionSearchType===0){return null}let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){const pathIndex=functionSearchType[INPUTS_DATA];inputs=[{name:pathIndex===0?null:lowercasePaths[pathIndex-1].name,ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:[],}]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){const pathIndex=functionSearchType[OUTPUT_DATA];output=[{name:pathIndex===0?null:lowercasePaths[pathIndex-1].name,ty:pathIndex===0?null:lowercasePaths[pathIndex-1].ty,generics:[],}]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths)}}else{output=[]}return{inputs,output,}}function buildIndex(rawSearchIndex){searchIndex=[];const searchWords=[];let i,word;let currentIndex=0;let id=0;for(const crate in rawSearchIndex){if(!hasOwnPropertyRustdoc(rawSearchIndex,crate)){continue}let crateSize=0;const crateCorpus=rawSearchIndex[crate];searchWords.push(crate);const crateRow={crate:crate,ty:1,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=crateCorpus.q;const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionSearchTypes=crateCorpus.f;const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];let len=paths.length;for(i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:buildFunctionSearchType(itemFunctionSearchTypes[i],lowercasePaths),id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){ALIASES[crate]=Object.create(null);for(const alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}if(!hasOwnPropertyRustdoc(ALIASES[crate],alias_name)){ALIASES[crate][alias_name]=[]}for(const local_alias of aliases[alias_name]){ALIASES[crate][alias_name].push(local_alias+currentIndex)}}}currentIndex+=crateSize}return searchWords}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="All crates"){const params=searchState.getQueryStringParams();const query=searchState.input.value.trim();if(!history.state&&!params.search){history.pushState(null,"",buildUrl(query,null))}else{history.replaceState(null,"",buildUrl(query,null))}}currentResults=null;search(undefined,true)}const searchWords=buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}return searchWords}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch({})}})() \ No newline at end of file diff --git a/ch9-dev/settings.css b/ch9-dev/settings.css index 35df7bce..a142e14f 100644 --- a/ch9-dev/settings.css +++ b/ch9-dev/settings.css @@ -1 +1 @@ -.setting-line{margin:0.6em 0 0.6em 0.3em;position:relative;}.setting-line>div{display:inline-block;vertical-align:top;font-size:17px;padding-top:2px;}.setting-line>.title{font-size:19px;width:100%;max-width:none;border-bottom:1px solid;}.setting-line .radio-line,.setting-line .choices{display:flex;flex-wrap:wrap;}.setting-line .radio-line .setting-name{flex-grow:1;margin-top:auto;margin-bottom:auto;}.setting-line .radio-line input{margin-right:0.3em;}.radio-line .choice{border-radius:0.1em;border:1px solid;margin-left:0.5em;margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;}.toggle{position:relative;display:inline-block;width:45px;height:27px;margin-right:20px;}.toggle input{opacity:0;position:absolute;}.select-wrapper{float:right;position:relative;height:27px;min-width:25%;}.select-wrapper select{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:none;border:2px solid #ccc;padding-right:28px;width:100%;}.select-wrapper img{pointer-events:none;position:absolute;right:0;bottom:0;background:#ccc;height:100%;width:28px;padding:0px 4px;}.select-wrapper select option{color:initial;}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.3s;transition:.3s;}.slider:before{position:absolute;content:"";height:19px;width:19px;left:4px;bottom:4px;background-color:white;-webkit-transition:.3s;transition:.3s;}input:checked+.slider{background-color:#2196F3;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}input:checked+.slider:before{-webkit-transform:translateX(19px);-ms-transform:translateX(19px);transform:translateX(19px);}.setting-line>.sub-settings{padding-left:42px;width:100%;display:block;} \ No newline at end of file +.setting-line{margin:0.6em 0 0.6em 0.3em;position:relative;}.setting-line .choices{display:flex;flex-wrap:wrap;}.setting-line .radio-line input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:1px solid;outline:none;-webkit-appearance:none;cursor:pointer;border-radius:50%;}.setting-line .radio-line input+span{padding-bottom:1px;}.radio-line .setting-name{width:100%;}.radio-line .choice{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:flex;align-items:center;cursor:pointer;}.radio-line .choice+.choice{margin-left:0.5em;}.toggle{position:relative;width:100%;margin-right:20px;display:flex;align-items:center;cursor:pointer;}.toggle input{opacity:0;position:absolute;}.slider{position:relative;width:45px;min-width:45px;display:block;height:28px;margin-right:20px;cursor:pointer;background-color:#ccc;transition:.3s;}.slider:before{position:absolute;content:"";height:19px;width:19px;left:4px;bottom:4px;transition:.3s;}input:checked+.slider:before{transform:translateX(19px);}.setting-line>.sub-settings{padding-left:42px;width:100%;display:block;}#settings .setting-line{margin:1.2em 0.6em;} \ No newline at end of file diff --git a/ch9-dev/settings.html b/ch9-dev/settings.html index a433d003..ecb27c50 100644 --- a/ch9-dev/settings.html +++ b/ch9-dev/settings.html @@ -1,17 +1 @@ -Rustdoc settings - -
-

Rustdoc settings

Back
Use system theme
Theme
Preferred light theme
Preferred dark theme
Auto-hide item contents for large items.
Auto-hide item methods' documentation
Auto-hide trait implementation documentation
Directly go to item in search if there is only one result
Show line numbers on code examples
Disable keyboard shortcuts
- \ No newline at end of file +Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/ch9-dev/settings.js b/ch9-dev/settings.js index 80471891..df27fca4 100644 --- a/ch9-dev/settings.js +++ b/ch9-dev/settings.js @@ -1 +1,11 @@ -(function(){function changeSetting(settingName,value){updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":case"use-system-theme":updateSystemTheme();updateLightAndDark();break}}function handleKey(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey){return}switch(getVirtualKey(ev)){case"Enter":case"Return":case"Space":ev.target.checked=!ev.target.checked;ev.preventDefault();break}}function showLightAndDark(){addClass(document.getElementById("theme").parentElement,"hidden");removeClass(document.getElementById("preferred-light-theme").parentElement,"hidden");removeClass(document.getElementById("preferred-dark-theme").parentElement,"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme").parentElement,"hidden");addClass(document.getElementById("preferred-dark-theme").parentElement,"hidden");removeClass(document.getElementById("theme").parentElement,"hidden")}function updateLightAndDark(){if(getSettingValue("use-system-theme")!=="false"){showLightAndDark()}else{hideLightAndDark()}}function setEvents(){updateLightAndDark();onEachLazy(document.getElementsByClassName("slider"),function(elem){var toggle=elem.previousElementSibling;var settingId=toggle.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=function(){changeSetting(this.id,this.checked)};toggle.onkeyup=handleKey;toggle.onkeyrelease=handleKey});onEachLazy(document.getElementsByClassName("select-wrapper"),function(elem){var select=elem.getElementsByTagName("select")[0];var settingId=select.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){select.value=settingValue}select.onchange=function(){changeSetting(this.id,this.value)}});onEachLazy(document.querySelectorAll("input[type=\"radio\"]"),function(elem){const settingId=elem.name;const settingValue=getSettingValue(settingId);if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",function(ev){changeSetting(ev.target.name,ev.target.value)})});document.getElementById("back").addEventListener("click",function(){history.back()})}window.addEventListener("DOMContentLoaded",setEvents)})() \ No newline at end of file +"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function changeSetting(settingName,value){updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":case"use-system-theme":updateSystemTheme();updateLightAndDark();break}}function handleKey(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey){return}switch(getVirtualKey(ev)){case"Enter":case"Return":case"Space":ev.target.checked=!ev.target.checked;ev.preventDefault();break}}function showLightAndDark(){addClass(document.getElementById("theme").parentElement,"hidden");removeClass(document.getElementById("preferred-light-theme").parentElement,"hidden");removeClass(document.getElementById("preferred-dark-theme").parentElement,"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme").parentElement,"hidden");addClass(document.getElementById("preferred-dark-theme").parentElement,"hidden");removeClass(document.getElementById("theme").parentElement,"hidden")}function updateLightAndDark(){if(getSettingValue("use-system-theme")!=="false"){showLightAndDark()}else{hideLightAndDark()}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.getElementsByClassName("slider"),elem=>{const toggle=elem.previousElementSibling;const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=function(){changeSetting(this.id,this.checked)};toggle.onkeyup=handleKey;toggle.onkeyrelease=handleKey});onEachLazy(settingsElement.getElementsByClassName("select-wrapper"),elem=>{const select=elem.getElementsByTagName("select")[0];const settingId=select.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){select.value=settingValue}select.onchange=function(){changeSetting(this.id,this.value)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;const settingValue=getSettingValue(settingId);if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",ev=>{changeSetting(ev.target.name,ev.target.value)})})}function buildSettingsPageSections(settings){let output="";for(const setting of settings){output+="
";const js_data_name=setting["js_name"];const setting_name=setting["name"];if(setting["options"]!==undefined){output+=`
\ + ${setting_name}\ +
`;onEach(setting["options"],option=>{const checked=option===setting["default"]?" checked":"";output+=``});output+="
"}else{const checked=setting["default"]===true?" checked":"";output+=``}output+="
"}return output}function buildSettingsPage(){const themes=getVar("themes").split(",");const settings=[{"name":"Use system theme","js_name":"use-system-theme","default":true,},{"name":"Theme","js_name":"theme","default":"light","options":themes,},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":themes,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":themes,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
${buildSettingsPageSections(settings)}
`;const el=document.createElement(elementKind);el.id="settings";el.className="popover";el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{el.setAttribute("tabindex","-1");getSettingsButton().appendChild(el)}return el}const settingsMenu=buildSettingsPage();function displaySettings(){settingsMenu.style.display=""}function settingsBlurHandler(event){blurHandler(event,getSettingsButton(),window.hidePopoverMenus)}if(isSettingsPage){getSettingsButton().onclick=function(event){event.preventDefault()}}else{const settingsButton=getSettingsButton();const settingsMenu=document.getElementById("settings");settingsButton.onclick=function(event){if(elemIsInParent(event.target,settingsMenu)){return}event.preventDefault();const shouldDisplaySettings=settingsMenu.style.display==="none";window.hidePopoverMenus();if(shouldDisplaySettings){displaySettings()}};settingsButton.onblur=settingsBlurHandler;settingsButton.querySelector("a").onblur=settingsBlurHandler;onEachLazy(settingsMenu.querySelectorAll("input"),el=>{el.onblur=settingsBlurHandler});settingsMenu.onblur=settingsBlurHandler}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){displaySettings()}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/ch9-dev/source-files.js b/ch9-dev/source-files.js index d15a9a16..5890a1ac 100644 --- a/ch9-dev/source-files.js +++ b/ch9-dev/source-files.js @@ -1,3 +1,4 @@ -var N = null;var sourcesIndex = {}; -sourcesIndex["os"] = {"name":"","dirs":[{"name":"boards","files":["qemu.rs"]},{"name":"drivers","dirs":[{"name":"block","files":["mod.rs","sdcard.rs","virtio_blk.rs"]},{"name":"chardev","files":["mod.rs","ns16550a.rs"]},{"name":"gpu","files":["mod.rs"]},{"name":"input","files":["mod.rs"]}],"files":["mod.rs","plic.rs"]},{"name":"fs","files":["inode.rs","mod.rs","pipe.rs","stdio.rs"]},{"name":"gui","files":["button.rs","graphic.rs","icon.rs","image.rs","mod.rs","panel.rs","terminal.rs"]},{"name":"mm","files":["address.rs","frame_allocator.rs","heap_allocator.rs","memory_set.rs","mod.rs","page_table.rs"]},{"name":"sync","files":["condvar.rs","mod.rs","mutex.rs","semaphore.rs","up.rs"]},{"name":"syscall","files":["fs.rs","gui.rs","mod.rs","process.rs","sync.rs","thread.rs"]},{"name":"task","files":["context.rs","id.rs","manager.rs","mod.rs","process.rs","processor.rs","signal.rs","switch.rs","task.rs"]},{"name":"trap","files":["context.rs","mod.rs"]}],"files":["config.rs","console.rs","lang_items.rs","main.rs","sbi.rs","timer.rs"]}; +var sourcesIndex = JSON.parse('{\ +"os":["",[["boards",[],["qemu.rs"]],["drivers",[["block",[],["mod.rs","virtio_blk.rs"]],["bus",[],["mod.rs","virtio.rs"]],["chardev",[],["mod.rs","ns16550a.rs"]],["gpu",[],["mod.rs"]],["input",[],["mod.rs"]]],["mod.rs","plic.rs"]],["fs",[],["inode.rs","mod.rs","pipe.rs","stdio.rs"]],["gui",[],["graphic.rs","mod.rs","paint.rs"]],["mm",[],["address.rs","frame_allocator.rs","heap_allocator.rs","memory_set.rs","mod.rs","page_table.rs"]],["sync",[],["condvar.rs","mod.rs","mutex.rs","semaphore.rs","up.rs"]],["syscall",[],["fs.rs","mod.rs","process.rs","sync.rs","thread.rs"]],["task",[],["context.rs","id.rs","manager.rs","mod.rs","process.rs","processor.rs","signal.rs","switch.rs","task.rs"]],["trap",[],["context.rs","mod.rs"]]],["config.rs","console.rs","lang_items.rs","main.rs","sbi.rs","timer.rs"]]\ +}'); createSourceSidebar(); diff --git a/ch9-dev/source-script.js b/ch9-dev/source-script.js index 9faf492c..e0fac073 100644 --- a/ch9-dev/source-script.js +++ b/ch9-dev/source-script.js @@ -1 +1 @@ -(function(){function getCurrentFilePath(){var parts=window.location.pathname.split("/");var rootPathParts=window.rootPath.split("/");for(var i=0,len=rootPathParts.length;i"){sidebar.classList.add("expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{sidebar.classList.remove("expanded");child.innerText=">";updateLocalStorage("source-sidebar-show","false")}}function createSidebarToggle(){var sidebarToggle=document.createElement("div");sidebarToggle.id="sidebar-toggle";sidebarToggle.onclick=toggleSidebar;var inner=document.createElement("div");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}sidebarToggle.appendChild(inner);return sidebarToggle}function createSourceSidebar(){if(!window.rootPath.endsWith("/")){window.rootPath+="/"}var container=document.querySelector("nav.sidebar");var sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);var sidebar=document.createElement("div");sidebar.id="source-sidebar";if(getCurrentValue("source-sidebar-show")!=="true"){container.classList.remove("expanded")}else{container.classList.add("expanded")}var currentFile=getCurrentFilePath();var hasFoundFile=false;var title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(function(key){sourcesIndex[key].name=key;hasFoundFile=createDirEntry(sourcesIndex[key],sidebar,"",currentFile,hasFoundFile)});container.appendChild(sidebar);var selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}var lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSourceLines(match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}var from=parseInt(match[1],10);var to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(tocur_line_id){var tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",function(){var match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSourceLines(match)}});onEachLazy(document.getElementsByClassName("line-numbers"),function(el){el.addEventListener("click",handleSourceHighlight)});highlightSourceLines();window.createSourceSidebar=createSourceSidebar})() \ No newline at end of file +"use strict";(function(){const rootPath=document.getElementById("rustdoc-vars").attributes["data-root-path"].value;let oldScrollPosition=0;const NAME_OFFSET=0;const DIRS_OFFSET=1;const FILES_OFFSET=2;function closeSidebarIfMobile(){if(window.innerWidth"){if(window.innerWidth";updateLocalStorage("source-sidebar-show","false")}}function createSidebarToggle(){const sidebarToggle=document.createElement("div");sidebarToggle.id="sidebar-toggle";const inner=document.createElement("button");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}inner.onclick=toggleSidebar;sidebarToggle.appendChild(inner);return sidebarToggle}function createSourceSidebar(){const container=document.querySelector("nav.sidebar");const sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);const sidebar=document.createElement("div");sidebar.id="source-sidebar";let hasFoundFile=false;const title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(key=>{sourcesIndex[key][NAME_OFFSET]=key;hasFoundFile=createDirEntry(sourcesIndex[key],sidebar,"",hasFoundFile)});container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}const lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSourceLines(match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to{onEachLazy(e.getElementsByTagName("span"),i_e=>{removeClass(i_e,"line-highlighted")})});for(let i=from;i<=to;++i){elem=document.getElementById(i);if(!elem){break}addClass(elem,"line-highlighted")}}const handleSourceHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSourceLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);if(isNaN(cur_line_id)){return}ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_line_id){const tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",()=>{const match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSourceLines(match)}});onEachLazy(document.getElementsByClassName("line-numbers"),el=>{el.addEventListener("click",handleSourceHighlight)});highlightSourceLines();window.createSourceSidebar=createSourceSidebar})() \ No newline at end of file diff --git a/ch9-dev/src/os/boards/qemu.rs.html b/ch9-dev/src/os/boards/qemu.rs.html index 1f8eda79..048f99d6 100644 --- a/ch9-dev/src/os/boards/qemu.rs.html +++ b/ch9-dev/src/os/boards/qemu.rs.html @@ -1,9 +1,4 @@ -qemu.rs - source - -
1
+qemu.rs - source
1
 2
 3
 4
@@ -136,6 +131,7 @@
 131
 132
 133
+134
 
pub const CLOCK_FREQ: usize = 12500000;
 
 pub const MMIO: &[(usize, usize)] = &[
@@ -152,6 +148,7 @@
 pub const VIRT_UART: usize = 0x1000_0000;
 
 pub const VIRTGPU_XRES: u32 = 1280;
+#[allow(unused)]
 pub const VIRTGPU_YRES: u32 = 800;
 
 use crate::drivers::block::BLOCK_DEVICE;
@@ -168,7 +165,7 @@
     plic.set_threshold(hart_id, supervisor, 0);
     plic.set_threshold(hart_id, machine, 1);
     //irq nums: 5 keyboard, 6 mouse, 8 block, 10 uart
-    for intr_src_id in [5usize, 6, 8 , 10] {
+    for intr_src_id in [5usize, 6, 8, 10] {
         plic.enable(hart_id, supervisor, intr_src_id);
         plic.set_priority(intr_src_id, 1);
     }
@@ -270,5 +267,4 @@
 
 pub const QEMU_EXIT_HANDLE: RISCV64 = RISCV64::new(VIRT_TEST);
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/config.rs.html b/ch9-dev/src/os/config.rs.html index 78ff80b1..54c7274d 100644 --- a/ch9-dev/src/os/config.rs.html +++ b/ch9-dev/src/os/config.rs.html @@ -1,9 +1,4 @@ -config.rs - source - -
1
+config.rs - source
1
 2
 3
 4
@@ -30,5 +25,4 @@
 
 pub use crate::board::{CLOCK_FREQ, MMIO};
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/console.rs.html b/ch9-dev/src/os/console.rs.html index eca856e1..96b7bdd4 100644 --- a/ch9-dev/src/os/console.rs.html +++ b/ch9-dev/src/os/console.rs.html @@ -1,9 +1,4 @@ -console.rs - source - -
1
+console.rs - source
1
 2
 3
 4
@@ -35,17 +30,8 @@
 30
 31
 32
-33
-34
-35
-36
-37
-38
 
use crate::drivers::chardev::CharDevice;
-#[cfg(feature = "board_qemu")]
 use crate::drivers::chardev::UART;
-#[cfg(feature = "board_k210")]
-use crate::sbi::console_putchar;
 use core::fmt::{self, Write};
 
 struct Stdout;
@@ -53,10 +39,7 @@
 impl Write for Stdout {
     fn write_str(&mut self, s: &str) -> fmt::Result {
         for c in s.chars() {
-            #[cfg(feature = "board_qemu")]
             UART.write(c as u8);
-            #[cfg(feature = "board_k210")]
-            console_putchar(c as usize);
         }
         Ok(())
     }
@@ -80,5 +63,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/block/mod.rs.html b/ch9-dev/src/os/drivers/block/mod.rs.html index bdff2da9..064b9795 100644 --- a/ch9-dev/src/os/drivers/block/mod.rs.html +++ b/ch9-dev/src/os/drivers/block/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -31,12 +26,8 @@
 26
 27
 28
-29
-30
-
mod sdcard;
-mod virtio_blk;
+
mod virtio_blk;
 
-pub use sdcard::SDCardWrapper;
 pub use virtio_blk::VirtIOBlock;
 
 use crate::board::BlockDeviceImpl;
@@ -64,5 +55,4 @@
     println!("block device test passed!");
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/block/sdcard.rs.html b/ch9-dev/src/os/drivers/block/sdcard.rs.html deleted file mode 100644 index 9508a214..00000000 --- a/ch9-dev/src/os/drivers/block/sdcard.rs.html +++ /dev/null @@ -1,1542 +0,0 @@ -sdcard.rs - source - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190
-191
-192
-193
-194
-195
-196
-197
-198
-199
-200
-201
-202
-203
-204
-205
-206
-207
-208
-209
-210
-211
-212
-213
-214
-215
-216
-217
-218
-219
-220
-221
-222
-223
-224
-225
-226
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236
-237
-238
-239
-240
-241
-242
-243
-244
-245
-246
-247
-248
-249
-250
-251
-252
-253
-254
-255
-256
-257
-258
-259
-260
-261
-262
-263
-264
-265
-266
-267
-268
-269
-270
-271
-272
-273
-274
-275
-276
-277
-278
-279
-280
-281
-282
-283
-284
-285
-286
-287
-288
-289
-290
-291
-292
-293
-294
-295
-296
-297
-298
-299
-300
-301
-302
-303
-304
-305
-306
-307
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321
-322
-323
-324
-325
-326
-327
-328
-329
-330
-331
-332
-333
-334
-335
-336
-337
-338
-339
-340
-341
-342
-343
-344
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361
-362
-363
-364
-365
-366
-367
-368
-369
-370
-371
-372
-373
-374
-375
-376
-377
-378
-379
-380
-381
-382
-383
-384
-385
-386
-387
-388
-389
-390
-391
-392
-393
-394
-395
-396
-397
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409
-410
-411
-412
-413
-414
-415
-416
-417
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433
-434
-435
-436
-437
-438
-439
-440
-441
-442
-443
-444
-445
-446
-447
-448
-449
-450
-451
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461
-462
-463
-464
-465
-466
-467
-468
-469
-470
-471
-472
-473
-474
-475
-476
-477
-478
-479
-480
-481
-482
-483
-484
-485
-486
-487
-488
-489
-490
-491
-492
-493
-494
-495
-496
-497
-498
-499
-500
-501
-502
-503
-504
-505
-506
-507
-508
-509
-510
-511
-512
-513
-514
-515
-516
-517
-518
-519
-520
-521
-522
-523
-524
-525
-526
-527
-528
-529
-530
-531
-532
-533
-534
-535
-536
-537
-538
-539
-540
-541
-542
-543
-544
-545
-546
-547
-548
-549
-550
-551
-552
-553
-554
-555
-556
-557
-558
-559
-560
-561
-562
-563
-564
-565
-566
-567
-568
-569
-570
-571
-572
-573
-574
-575
-576
-577
-578
-579
-580
-581
-582
-583
-584
-585
-586
-587
-588
-589
-590
-591
-592
-593
-594
-595
-596
-597
-598
-599
-600
-601
-602
-603
-604
-605
-606
-607
-608
-609
-610
-611
-612
-613
-614
-615
-616
-617
-618
-619
-620
-621
-622
-623
-624
-625
-626
-627
-628
-629
-630
-631
-632
-633
-634
-635
-636
-637
-638
-639
-640
-641
-642
-643
-644
-645
-646
-647
-648
-649
-650
-651
-652
-653
-654
-655
-656
-657
-658
-659
-660
-661
-662
-663
-664
-665
-666
-667
-668
-669
-670
-671
-672
-673
-674
-675
-676
-677
-678
-679
-680
-681
-682
-683
-684
-685
-686
-687
-688
-689
-690
-691
-692
-693
-694
-695
-696
-697
-698
-699
-700
-701
-702
-703
-704
-705
-706
-707
-708
-709
-710
-711
-712
-713
-714
-715
-716
-717
-718
-719
-720
-721
-722
-723
-724
-725
-726
-727
-728
-729
-730
-731
-732
-733
-734
-735
-736
-737
-738
-739
-740
-741
-742
-743
-744
-745
-746
-747
-748
-749
-750
-751
-752
-753
-754
-755
-756
-757
-758
-759
-760
-761
-762
-763
-764
-765
-766
-767
-
#![allow(non_snake_case)]
-#![allow(non_camel_case_types)]
-#![allow(unused)]
-
-use super::BlockDevice;
-use crate::sync::UPIntrFreeCell;
-use core::convert::TryInto;
-use k210_hal::prelude::*;
-use k210_pac::{Peripherals, SPI0};
-use k210_soc::{
-    fpioa::{self, io},
-    //dmac::{dma_channel, DMAC, DMACExt},
-    gpio,
-    gpiohs,
-    sleep::usleep,
-    spi::{aitm, frame_format, tmod, work_mode, SPIExt, SPIImpl, SPI},
-    sysctl,
-};
-use lazy_static::*;
-
-pub struct SDCard<SPI> {
-    spi: SPI,
-    spi_cs: u32,
-    cs_gpionum: u8,
-    //dmac: &'a DMAC,
-    //channel: dma_channel,
-}
-
-/*
- * Start Data tokens:
- *         Tokens (necessary because at nop/idle (and CS active) only 0xff is
- *         on the data/command line)
- */
-/** Data token start byte, Start Single Block Read */
-pub const SD_START_DATA_SINGLE_BLOCK_READ: u8 = 0xFE;
-/** Data token start byte, Start Multiple Block Read */
-pub const SD_START_DATA_MULTIPLE_BLOCK_READ: u8 = 0xFE;
-/** Data token start byte, Start Single Block Write */
-pub const SD_START_DATA_SINGLE_BLOCK_WRITE: u8 = 0xFE;
-/** Data token start byte, Start Multiple Block Write */
-pub const SD_START_DATA_MULTIPLE_BLOCK_WRITE: u8 = 0xFC;
-
-pub const SEC_LEN: usize = 512;
-
-/** SD commands */
-#[repr(u8)]
-#[derive(Debug, PartialEq, Eq, Copy, Clone)]
-#[allow(unused)]
-pub enum CMD {
-    /** Software reset */
-    CMD0 = 0,
-    /** Check voltage range (SDC V2) */
-    CMD8 = 8,
-    /** Read CSD register */
-    CMD9 = 9,
-    /** Read CID register */
-    CMD10 = 10,
-    /** Stop to read data */
-    CMD12 = 12,
-    /** Change R/W block size */
-    CMD16 = 16,
-    /** Read block */
-    CMD17 = 17,
-    /** Read multiple blocks */
-    CMD18 = 18,
-    /** Number of blocks to erase (SDC) */
-    ACMD23 = 23,
-    /** Write a block */
-    CMD24 = 24,
-    /** Write multiple blocks */
-    CMD25 = 25,
-    /** Initiate initialization process (SDC) */
-    ACMD41 = 41,
-    /** Leading command for ACMD* */
-    CMD55 = 55,
-    /** Read OCR */
-    CMD58 = 58,
-    /** Enable/disable CRC check */
-    CMD59 = 59,
-}
-
-#[allow(unused)]
-#[derive(Debug, Copy, Clone)]
-pub enum InitError {
-    CMDFailed(CMD, u8),
-    CardCapacityStatusNotSet([u8; 4]),
-    CannotGetCardInfo,
-}
-
-/**
- * Card Specific Data: CSD Register
- */
-#[derive(Debug, Copy, Clone)]
-pub struct SDCardCSD {
-    pub CSDStruct: u8,        /* CSD structure */
-    pub SysSpecVersion: u8,   /* System specification version */
-    pub Reserved1: u8,        /* Reserved */
-    pub TAAC: u8,             /* Data read access-time 1 */
-    pub NSAC: u8,             /* Data read access-time 2 in CLK cycles */
-    pub MaxBusClkFrec: u8,    /* Max. bus clock frequency */
-    pub CardComdClasses: u16, /* Card command classes */
-    pub RdBlockLen: u8,       /* Max. read data block length */
-    pub PartBlockRead: u8,    /* Partial blocks for read allowed */
-    pub WrBlockMisalign: u8,  /* Write block misalignment */
-    pub RdBlockMisalign: u8,  /* Read block misalignment */
-    pub DSRImpl: u8,          /* DSR implemented */
-    pub Reserved2: u8,        /* Reserved */
-    pub DeviceSize: u32,      /* Device Size */
-    //MaxRdCurrentVDDMin: u8,   /* Max. read current @ VDD min */
-    //MaxRdCurrentVDDMax: u8,   /* Max. read current @ VDD max */
-    //MaxWrCurrentVDDMin: u8,   /* Max. write current @ VDD min */
-    //MaxWrCurrentVDDMax: u8,   /* Max. write current @ VDD max */
-    //DeviceSizeMul: u8,        /* Device size multiplier */
-    pub EraseGrSize: u8,         /* Erase group size */
-    pub EraseGrMul: u8,          /* Erase group size multiplier */
-    pub WrProtectGrSize: u8,     /* Write protect group size */
-    pub WrProtectGrEnable: u8,   /* Write protect group enable */
-    pub ManDeflECC: u8,          /* Manufacturer default ECC */
-    pub WrSpeedFact: u8,         /* Write speed factor */
-    pub MaxWrBlockLen: u8,       /* Max. write data block length */
-    pub WriteBlockPaPartial: u8, /* Partial blocks for write allowed */
-    pub Reserved3: u8,           /* Reserded */
-    pub ContentProtectAppli: u8, /* Content protection application */
-    pub FileFormatGroup: u8,     /* File format group */
-    pub CopyFlag: u8,            /* Copy flag (OTP) */
-    pub PermWrProtect: u8,       /* Permanent write protection */
-    pub TempWrProtect: u8,       /* Temporary write protection */
-    pub FileFormat: u8,          /* File Format */
-    pub ECC: u8,                 /* ECC code */
-    pub CSD_CRC: u8,             /* CSD CRC */
-    pub Reserved4: u8,           /* always 1*/
-}
-
-/**
- * Card Identification Data: CID Register
- */
-#[derive(Debug, Copy, Clone)]
-pub struct SDCardCID {
-    pub ManufacturerID: u8, /* ManufacturerID */
-    pub OEM_AppliID: u16,   /* OEM/Application ID */
-    pub ProdName1: u32,     /* Product Name part1 */
-    pub ProdName2: u8,      /* Product Name part2*/
-    pub ProdRev: u8,        /* Product Revision */
-    pub ProdSN: u32,        /* Product Serial Number */
-    pub Reserved1: u8,      /* Reserved1 */
-    pub ManufactDate: u16,  /* Manufacturing Date */
-    pub CID_CRC: u8,        /* CID CRC */
-    pub Reserved2: u8,      /* always 1 */
-}
-
-/**
- * Card information
- */
-#[derive(Debug, Copy, Clone)]
-pub struct SDCardInfo {
-    pub SD_csd: SDCardCSD,
-    pub SD_cid: SDCardCID,
-    pub CardCapacity: u64,  /* Card Capacity */
-    pub CardBlockSize: u64, /* Card Block Size */
-}
-
-impl</*'a,*/ X: SPI> SDCard</*'a,*/ X> {
-    pub fn new(
-        spi: X,
-        spi_cs: u32,
-        cs_gpionum: u8, /*, dmac: &'a DMAC, channel: dma_channel*/
-    ) -> Self {
-        Self {
-            spi,
-            spi_cs,
-            cs_gpionum,
-            /*
-            dmac,
-            channel,
-             */
-        }
-    }
-
-    fn CS_HIGH(&self) {
-        gpiohs::set_pin(self.cs_gpionum, true);
-    }
-
-    fn CS_LOW(&self) {
-        gpiohs::set_pin(self.cs_gpionum, false);
-    }
-
-    fn HIGH_SPEED_ENABLE(&self) {
-        self.spi.set_clk_rate(10000000);
-    }
-
-    fn lowlevel_init(&self) {
-        gpiohs::set_direction(self.cs_gpionum, gpio::direction::OUTPUT);
-        self.spi.set_clk_rate(200000);
-    }
-
-    fn write_data(&self, data: &[u8]) {
-        self.spi.configure(
-            work_mode::MODE0,
-            frame_format::STANDARD,
-            8, /* data bits */
-            0, /* endian */
-            0, /*instruction length*/
-            0, /*address length*/
-            0, /*wait cycles*/
-            aitm::STANDARD,
-            tmod::TRANS,
-        );
-        self.spi.send_data(self.spi_cs, data);
-    }
-
-    /*
-    fn write_data_dma(&self, data: &[u32]) {
-        self.spi.configure(
-            work_mode::MODE0,
-            frame_format::STANDARD,
-            8, /* data bits */
-            0, /* endian */
-            0, /*instruction length*/
-            0, /*address length*/
-            0, /*wait cycles*/
-            aitm::STANDARD,
-            tmod::TRANS,
-        );
-        self.spi
-            .send_data_dma(self.dmac, self.channel, self.spi_cs, data);
-    }
-     */
-
-    fn read_data(&self, data: &mut [u8]) {
-        self.spi.configure(
-            work_mode::MODE0,
-            frame_format::STANDARD,
-            8, /* data bits */
-            0, /* endian */
-            0, /*instruction length*/
-            0, /*address length*/
-            0, /*wait cycles*/
-            aitm::STANDARD,
-            tmod::RECV,
-        );
-        self.spi.recv_data(self.spi_cs, data);
-    }
-
-    /*
-    fn read_data_dma(&self, data: &mut [u32]) {
-        self.spi.configure(
-            work_mode::MODE0,
-            frame_format::STANDARD,
-            8, /* data bits */
-            0, /* endian */
-            0, /*instruction length*/
-            0, /*address length*/
-            0, /*wait cycles*/
-            aitm::STANDARD,
-            tmod::RECV,
-        );
-        self.spi
-            .recv_data_dma(self.dmac, self.channel, self.spi_cs, data);
-    }
-     */
-
-    /*
-     * Send 5 bytes command to the SD card.
-     * @param  cmd: The user expected command to send to SD card.
-     * @param  arg: The command argument.
-     * @param  crc: The CRC.
-     * @retval None
-     */
-    fn send_cmd(&self, cmd: CMD, arg: u32, crc: u8) {
-        /* SD chip select low */
-        self.CS_LOW();
-        /* Send the Cmd bytes */
-        self.write_data(&[
-            /* Construct byte 1 */
-            ((cmd as u8) | 0x40),
-            /* Construct byte 2 */
-            (arg >> 24) as u8,
-            /* Construct byte 3 */
-            ((arg >> 16) & 0xff) as u8,
-            /* Construct byte 4 */
-            ((arg >> 8) & 0xff) as u8,
-            /* Construct byte 5 */
-            (arg & 0xff) as u8,
-            /* Construct CRC: byte 6 */
-            crc,
-        ]);
-    }
-
-    /* Send end-command sequence to SD card */
-    fn end_cmd(&self) {
-        /* SD chip select high */
-        self.CS_HIGH();
-        /* Send the cmd byte */
-        self.write_data(&[0xff]);
-    }
-
-    /*
-     * Returns the SD response.
-     * @param  None
-     * @retval The SD Response:
-     *         - 0xFF: Sequence failed
-     *         - 0: Sequence succeed
-     */
-    fn get_response(&self) -> u8 {
-        let result = &mut [0u8];
-        let mut timeout = 0x0FFF;
-        /* Check if response is got or a timeout is happen */
-        while timeout != 0 {
-            self.read_data(result);
-            /* Right response got */
-            if result[0] != 0xFF {
-                return result[0];
-            }
-            timeout -= 1;
-        }
-        /* After time out */
-        0xFF
-    }
-
-    /*
-     * Get SD card data response.
-     * @param  None
-     * @retval The SD status: Read data response xxx0<status>1
-     *         - status 010: Data accepted
-     *         - status 101: Data rejected due to a crc error
-     *         - status 110: Data rejected due to a Write error.
-     *         - status 111: Data rejected due to other error.
-     */
-    fn get_dataresponse(&self) -> u8 {
-        let response = &mut [0u8];
-        /* Read response */
-        self.read_data(response);
-        /* Mask unused bits */
-        response[0] &= 0x1F;
-        if response[0] != 0x05 {
-            return 0xFF;
-        }
-        /* Wait null data */
-        self.read_data(response);
-        while response[0] == 0 {
-            self.read_data(response);
-        }
-        /* Return response */
-        0
-    }
-
-    /*
-     * Read the CSD card register
-     *         Reading the contents of the CSD register in SPI mode is a simple
-     *         read-block transaction.
-     * @param  SD_csd: pointer on an SCD register structure
-     * @retval The SD Response:
-     *         - `Err()`: Sequence failed
-     *         - `Ok(info)`: Sequence succeed
-     */
-    fn get_csdregister(&self) -> Result<SDCardCSD, ()> {
-        let mut csd_tab = [0u8; 18];
-        /* Send CMD9 (CSD register) */
-        self.send_cmd(CMD::CMD9, 0, 0);
-        /* Wait for response in the R1 format (0x00 is no errors) */
-        if self.get_response() != 0x00 {
-            self.end_cmd();
-            return Err(());
-        }
-        if self.get_response() != SD_START_DATA_SINGLE_BLOCK_READ {
-            self.end_cmd();
-            return Err(());
-        }
-        /* Store CSD register value on csd_tab */
-        /* Get CRC bytes (not really needed by us, but required by SD) */
-        self.read_data(&mut csd_tab);
-        self.end_cmd();
-        /* see also: https://cdn-shop.adafruit.com/datasheets/TS16GUSDHC6.pdf */
-        Ok(SDCardCSD {
-            /* Byte 0 */
-            CSDStruct: (csd_tab[0] & 0xC0) >> 6,
-            SysSpecVersion: (csd_tab[0] & 0x3C) >> 2,
-            Reserved1: csd_tab[0] & 0x03,
-            /* Byte 1 */
-            TAAC: csd_tab[1],
-            /* Byte 2 */
-            NSAC: csd_tab[2],
-            /* Byte 3 */
-            MaxBusClkFrec: csd_tab[3],
-            /* Byte 4, 5 */
-            CardComdClasses: (u16::from(csd_tab[4]) << 4) | ((u16::from(csd_tab[5]) & 0xF0) >> 4),
-            /* Byte 5 */
-            RdBlockLen: csd_tab[5] & 0x0F,
-            /* Byte 6 */
-            PartBlockRead: (csd_tab[6] & 0x80) >> 7,
-            WrBlockMisalign: (csd_tab[6] & 0x40) >> 6,
-            RdBlockMisalign: (csd_tab[6] & 0x20) >> 5,
-            DSRImpl: (csd_tab[6] & 0x10) >> 4,
-            Reserved2: 0,
-            // DeviceSize: (csd_tab[6] & 0x03) << 10,
-            /* Byte 7, 8, 9 */
-            DeviceSize: ((u32::from(csd_tab[7]) & 0x3F) << 16)
-                | (u32::from(csd_tab[8]) << 8)
-                | u32::from(csd_tab[9]),
-            /* Byte 10 */
-            EraseGrSize: (csd_tab[10] & 0x40) >> 6,
-            /* Byte 10, 11 */
-            EraseGrMul: ((csd_tab[10] & 0x3F) << 1) | ((csd_tab[11] & 0x80) >> 7),
-            /* Byte 11 */
-            WrProtectGrSize: (csd_tab[11] & 0x7F),
-            /* Byte 12 */
-            WrProtectGrEnable: (csd_tab[12] & 0x80) >> 7,
-            ManDeflECC: (csd_tab[12] & 0x60) >> 5,
-            WrSpeedFact: (csd_tab[12] & 0x1C) >> 2,
-            /* Byte 12,13 */
-            MaxWrBlockLen: ((csd_tab[12] & 0x03) << 2) | ((csd_tab[13] & 0xC0) >> 6),
-            /* Byte 13 */
-            WriteBlockPaPartial: (csd_tab[13] & 0x20) >> 5,
-            Reserved3: 0,
-            ContentProtectAppli: (csd_tab[13] & 0x01),
-            /* Byte 14 */
-            FileFormatGroup: (csd_tab[14] & 0x80) >> 7,
-            CopyFlag: (csd_tab[14] & 0x40) >> 6,
-            PermWrProtect: (csd_tab[14] & 0x20) >> 5,
-            TempWrProtect: (csd_tab[14] & 0x10) >> 4,
-            FileFormat: (csd_tab[14] & 0x0C) >> 2,
-            ECC: (csd_tab[14] & 0x03),
-            /* Byte 15 */
-            CSD_CRC: (csd_tab[15] & 0xFE) >> 1,
-            Reserved4: 1,
-            /* Return the response */
-        })
-    }
-
-    /*
-     * Read the CID card register.
-     *         Reading the contents of the CID register in SPI mode is a simple
-     *         read-block transaction.
-     * @param  SD_cid: pointer on an CID register structure
-     * @retval The SD Response:
-     *         - `Err()`: Sequence failed
-     *         - `Ok(info)`: Sequence succeed
-     */
-    fn get_cidregister(&self) -> Result<SDCardCID, ()> {
-        let mut cid_tab = [0u8; 18];
-        /* Send CMD10 (CID register) */
-        self.send_cmd(CMD::CMD10, 0, 0);
-        /* Wait for response in the R1 format (0x00 is no errors) */
-        if self.get_response() != 0x00 {
-            self.end_cmd();
-            return Err(());
-        }
-        if self.get_response() != SD_START_DATA_SINGLE_BLOCK_READ {
-            self.end_cmd();
-            return Err(());
-        }
-        /* Store CID register value on cid_tab */
-        /* Get CRC bytes (not really needed by us, but required by SD) */
-        self.read_data(&mut cid_tab);
-        self.end_cmd();
-        Ok(SDCardCID {
-            /* Byte 0 */
-            ManufacturerID: cid_tab[0],
-            /* Byte 1, 2 */
-            OEM_AppliID: (u16::from(cid_tab[1]) << 8) | u16::from(cid_tab[2]),
-            /* Byte 3, 4, 5, 6 */
-            ProdName1: (u32::from(cid_tab[3]) << 24)
-                | (u32::from(cid_tab[4]) << 16)
-                | (u32::from(cid_tab[5]) << 8)
-                | u32::from(cid_tab[6]),
-            /* Byte 7 */
-            ProdName2: cid_tab[7],
-            /* Byte 8 */
-            ProdRev: cid_tab[8],
-            /* Byte 9, 10, 11, 12 */
-            ProdSN: (u32::from(cid_tab[9]) << 24)
-                | (u32::from(cid_tab[10]) << 16)
-                | (u32::from(cid_tab[11]) << 8)
-                | u32::from(cid_tab[12]),
-            /* Byte 13, 14 */
-            Reserved1: (cid_tab[13] & 0xF0) >> 4,
-            ManufactDate: ((u16::from(cid_tab[13]) & 0x0F) << 8) | u16::from(cid_tab[14]),
-            /* Byte 15 */
-            CID_CRC: (cid_tab[15] & 0xFE) >> 1,
-            Reserved2: 1,
-        })
-    }
-
-    /*
-     * Returns information about specific card.
-     * @param  cardinfo: pointer to a SD_CardInfo structure that contains all SD
-     *         card information.
-     * @retval The SD Response:
-     *         - `Err(())`: Sequence failed
-     *         - `Ok(info)`: Sequence succeed
-     */
-    fn get_cardinfo(&self) -> Result<SDCardInfo, ()> {
-        let mut info = SDCardInfo {
-            SD_csd: self.get_csdregister()?,
-            SD_cid: self.get_cidregister()?,
-            CardCapacity: 0,
-            CardBlockSize: 0,
-        };
-        info.CardBlockSize = 1 << u64::from(info.SD_csd.RdBlockLen);
-        info.CardCapacity = (u64::from(info.SD_csd.DeviceSize) + 1) * 1024 * info.CardBlockSize;
-
-        Ok(info)
-    }
-
-    /*
-     * Initializes the SD/SD communication in SPI mode.
-     * @param  None
-     * @retval The SD Response info if succeeeded, otherwise Err
-     */
-    pub fn init(&self) -> Result<SDCardInfo, InitError> {
-        /* Initialize SD_SPI */
-        self.lowlevel_init();
-        /* SD chip select high */
-        self.CS_HIGH();
-        /* NOTE: this reset doesn't always seem to work if the SD access was broken off in the
-         * middle of an operation: CMDFailed(CMD0, 127). */
-
-        /* Send dummy byte 0xFF, 10 times with CS high */
-        /* Rise CS and MOSI for 80 clocks cycles */
-        /* Send dummy byte 0xFF */
-        self.write_data(&[0xff; 10]);
-        /*------------Put SD in SPI mode--------------*/
-        /* SD initialized and set to SPI mode properly */
-
-        /* Send software reset */
-        self.send_cmd(CMD::CMD0, 0, 0x95);
-        let result = self.get_response();
-        self.end_cmd();
-        if result != 0x01 {
-            return Err(InitError::CMDFailed(CMD::CMD0, result));
-        }
-
-        /* Check voltage range */
-        self.send_cmd(CMD::CMD8, 0x01AA, 0x87);
-        /* 0x01 or 0x05 */
-        let result = self.get_response();
-        let mut frame = [0u8; 4];
-        self.read_data(&mut frame);
-        self.end_cmd();
-        if result != 0x01 {
-            return Err(InitError::CMDFailed(CMD::CMD8, result));
-        }
-        let mut index = 255;
-        while index != 0 {
-            /* <ACMD> */
-            self.send_cmd(CMD::CMD55, 0, 0);
-            let result = self.get_response();
-            self.end_cmd();
-            if result != 0x01 {
-                return Err(InitError::CMDFailed(CMD::CMD55, result));
-            }
-            /* Initiate SDC initialization process */
-            self.send_cmd(CMD::ACMD41, 0x40000000, 0);
-            let result = self.get_response();
-            self.end_cmd();
-            if result == 0x00 {
-                break;
-            }
-            index -= 1;
-        }
-        if index == 0 {
-            return Err(InitError::CMDFailed(CMD::ACMD41, result));
-        }
-        index = 255;
-        let mut frame = [0u8; 4];
-        while index != 0 {
-            /* Read OCR */
-            self.send_cmd(CMD::CMD58, 0, 1);
-            let result = self.get_response();
-            self.read_data(&mut frame);
-            self.end_cmd();
-            if result == 0 {
-                break;
-            }
-            index -= 1;
-        }
-        if index == 0 {
-            return Err(InitError::CMDFailed(CMD::CMD58, result));
-        }
-        if (frame[0] & 0x40) == 0 {
-            return Err(InitError::CardCapacityStatusNotSet(frame));
-        }
-        self.HIGH_SPEED_ENABLE();
-        self.get_cardinfo()
-            .map_err(|_| InitError::CannotGetCardInfo)
-    }
-
-    /*
-     * Reads a block of data from the SD.
-     * @param  data_buf: slice that receives the data read from the SD.
-     * @param  sector: SD's internal address to read from.
-     * @retval The SD Response:
-     *         - `Err(())`: Sequence failed
-     *         - `Ok(())`: Sequence succeed
-     */
-    pub fn read_sector(&self, data_buf: &mut [u8], sector: u32) -> Result<(), ()> {
-        assert!(data_buf.len() >= SEC_LEN && (data_buf.len() % SEC_LEN) == 0);
-        /* Send CMD17 to read one block, or CMD18 for multiple */
-        let flag = if data_buf.len() == SEC_LEN {
-            self.send_cmd(CMD::CMD17, sector, 0);
-            false
-        } else {
-            self.send_cmd(CMD::CMD18, sector, 0);
-            true
-        };
-        /* Check if the SD acknowledged the read block command: R1 response (0x00: no errors) */
-        if self.get_response() != 0x00 {
-            self.end_cmd();
-            return Err(());
-        }
-        let mut error = false;
-        //let mut dma_chunk = [0u32; SEC_LEN];
-        let mut tmp_chunk = [0u8; SEC_LEN];
-        for chunk in data_buf.chunks_mut(SEC_LEN) {
-            if self.get_response() != SD_START_DATA_SINGLE_BLOCK_READ {
-                error = true;
-                break;
-            }
-            /* Read the SD block data : read NumByteToRead data */
-            //self.read_data_dma(&mut dma_chunk);
-            self.read_data(&mut tmp_chunk);
-            /* Place the data received as u32 units from DMA into the u8 target buffer */
-            for (a, b) in chunk.iter_mut().zip(/*dma_chunk*/ tmp_chunk.iter()) {
-                //*a = (b & 0xff) as u8;
-                *a = *b;
-            }
-            /* Get CRC bytes (not really needed by us, but required by SD) */
-            let mut frame = [0u8; 2];
-            self.read_data(&mut frame);
-        }
-        self.end_cmd();
-        if flag {
-            self.send_cmd(CMD::CMD12, 0, 0);
-            self.get_response();
-            self.end_cmd();
-            self.end_cmd();
-        }
-        /* It is an error if not everything requested was read */
-        if error {
-            Err(())
-        } else {
-            Ok(())
-        }
-    }
-
-    /*
-     * Writes a block to the SD
-     * @param  data_buf: slice containing the data to be written to the SD.
-     * @param  sector: address to write on.
-     * @retval The SD Response:
-     *         - `Err(())`: Sequence failed
-     *         - `Ok(())`: Sequence succeed
-     */
-    pub fn write_sector(&self, data_buf: &[u8], sector: u32) -> Result<(), ()> {
-        assert!(data_buf.len() >= SEC_LEN && (data_buf.len() % SEC_LEN) == 0);
-        let mut frame = [0xff, 0x00];
-        if data_buf.len() == SEC_LEN {
-            frame[1] = SD_START_DATA_SINGLE_BLOCK_WRITE;
-            self.send_cmd(CMD::CMD24, sector, 0);
-        } else {
-            frame[1] = SD_START_DATA_MULTIPLE_BLOCK_WRITE;
-            self.send_cmd(
-                CMD::ACMD23,
-                (data_buf.len() / SEC_LEN).try_into().unwrap(),
-                0,
-            );
-            self.get_response();
-            self.end_cmd();
-            self.send_cmd(CMD::CMD25, sector, 0);
-        }
-        /* Check if the SD acknowledged the write block command: R1 response (0x00: no errors) */
-        if self.get_response() != 0x00 {
-            self.end_cmd();
-            return Err(());
-        }
-        //let mut dma_chunk = [0u32; SEC_LEN];
-        let mut tmp_chunk = [0u8; SEC_LEN];
-        for chunk in data_buf.chunks(SEC_LEN) {
-            /* Send the data token to signify the start of the data */
-            self.write_data(&frame);
-            /* Write the block data to SD : write count data by block */
-            for (a, &b) in /*dma_chunk*/ tmp_chunk.iter_mut().zip(chunk.iter()) {
-                //*a = b.into();
-                *a = b;
-            }
-            //self.write_data_dma(&mut dma_chunk);
-            self.write_data(&tmp_chunk);
-            /* Put dummy CRC bytes */
-            self.write_data(&[0xff, 0xff]);
-            /* Read data response */
-            if self.get_dataresponse() != 0x00 {
-                self.end_cmd();
-                return Err(());
-            }
-        }
-        self.end_cmd();
-        self.end_cmd();
-        Ok(())
-    }
-}
-
-/** GPIOHS GPIO number to use for controlling the SD card CS pin */
-const SD_CS_GPIONUM: u8 = 7;
-/** CS value passed to SPI controller, this is a dummy value as SPI0_CS3 is not mapping to anything
- * in the FPIOA */
-const SD_CS: u32 = 3;
-
-/** Connect pins to internal functions */
-fn io_init() {
-    fpioa::set_function(io::SPI0_SCLK, fpioa::function::SPI0_SCLK);
-    fpioa::set_function(io::SPI0_MOSI, fpioa::function::SPI0_D0);
-    fpioa::set_function(io::SPI0_MISO, fpioa::function::SPI0_D1);
-    fpioa::set_function(io::SPI0_CS0, fpioa::function::gpiohs(SD_CS_GPIONUM));
-    fpioa::set_io_pull(io::SPI0_CS0, fpioa::pull::DOWN); // GPIO output=pull down
-}
-
-lazy_static! {
-    static ref PERIPHERALS: UPIntrFreeCell<Peripherals> =
-        unsafe { UPIntrFreeCell::new(Peripherals::take().unwrap()) };
-}
-
-fn init_sdcard() -> SDCard<SPIImpl<SPI0>> {
-    // wait previous output
-    usleep(100000);
-    let peripherals = unsafe { Peripherals::steal() };
-    sysctl::pll_set_freq(sysctl::pll::PLL0, 800_000_000).unwrap();
-    sysctl::pll_set_freq(sysctl::pll::PLL1, 300_000_000).unwrap();
-    sysctl::pll_set_freq(sysctl::pll::PLL2, 45_158_400).unwrap();
-    let clocks = k210_hal::clock::Clocks::new();
-    peripherals.UARTHS.configure(115_200.bps(), &clocks);
-    io_init();
-
-    let spi = peripherals.SPI0.constrain();
-    let sd = SDCard::new(spi, SD_CS, SD_CS_GPIONUM);
-    let info = sd.init().unwrap();
-    let num_sectors = info.CardCapacity / 512;
-    assert!(num_sectors > 0);
-
-    println!("init sdcard!");
-    sd
-}
-
-pub struct SDCardWrapper(UPIntrFreeCell<SDCard<SPIImpl<SPI0>>>);
-
-impl SDCardWrapper {
-    pub fn new() -> Self {
-        unsafe { Self(UPIntrFreeCell::new(init_sdcard())) }
-    }
-}
-
-impl BlockDevice for SDCardWrapper {
-    fn read_block(&self, block_id: usize, buf: &mut [u8]) {
-        self.0
-            .exclusive_access()
-            .read_sector(buf, block_id as u32)
-            .unwrap();
-    }
-    fn write_block(&self, block_id: usize, buf: &[u8]) {
-        self.0
-            .exclusive_access()
-            .write_sector(buf, block_id as u32)
-            .unwrap();
-    }
-    fn handle_irq(&self) {
-        unimplemented!();
-    }
-}
-
-
- \ No newline at end of file diff --git a/ch9-dev/src/os/drivers/block/virtio_blk.rs.html b/ch9-dev/src/os/drivers/block/virtio_blk.rs.html index c994c940..02dfbf26 100644 --- a/ch9-dev/src/os/drivers/block/virtio_blk.rs.html +++ b/ch9-dev/src/os/drivers/block/virtio_blk.rs.html @@ -1,9 +1,4 @@ -virtio_blk.rs - source - -
1
+virtio_blk.rs - source
1
 2
 3
 4
@@ -90,76 +85,22 @@
 85
 86
 87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
 
use super::BlockDevice;
-use crate::mm::{
-    frame_alloc, frame_dealloc, kernel_token, FrameTracker, PageTable, PhysAddr, PhysPageNum,
-    StepByOne, VirtAddr,
-};
+use crate::drivers::bus::virtio::VirtioHal;
 use crate::sync::{Condvar, UPIntrFreeCell};
 use crate::task::schedule;
 use crate::DEV_NON_BLOCKING_ACCESS;
 use alloc::collections::BTreeMap;
-use alloc::vec::Vec;
-use lazy_static::*;
 use virtio_drivers::{BlkResp, RespStatus, VirtIOBlk, VirtIOHeader};
 
 #[allow(unused)]
 const VIRTIO0: usize = 0x10008000;
 
 pub struct VirtIOBlock {
-    virtio_blk: UPIntrFreeCell<VirtIOBlk<'static>>,
+    virtio_blk: UPIntrFreeCell<VirtIOBlk<'static, VirtioHal>>,
     condvars: BTreeMap<u16, Condvar>,
 }
 
-lazy_static! {
-    static ref QUEUE_FRAMES: UPIntrFreeCell<Vec<FrameTracker>> =
-        unsafe { UPIntrFreeCell::new(Vec::new()) };
-}
-
 impl BlockDevice for VirtIOBlock {
     fn read_block(&self, block_id: usize, buf: &mut [u8]) {
         let nb = *DEV_NON_BLOCKING_ACCESS.exclusive_access();
@@ -215,7 +156,9 @@
 impl VirtIOBlock {
     pub fn new() -> Self {
         let virtio_blk = unsafe {
-            UPIntrFreeCell::new(VirtIOBlk::new(&mut *(VIRTIO0 as *mut VirtIOHeader)).unwrap())
+            UPIntrFreeCell::new(
+                VirtIOBlk::<VirtioHal>::new(&mut *(VIRTIO0 as *mut VirtIOHeader)).unwrap(),
+            )
         };
         let mut condvars = BTreeMap::new();
         let channels = virtio_blk.exclusive_access().virt_queue_size();
@@ -229,42 +172,5 @@
         }
     }
 }
-
-#[no_mangle]
-pub extern "C" fn virtio_dma_alloc(pages: usize) -> PhysAddr {
-    let mut ppn_base = PhysPageNum(0);
-    for i in 0..pages {
-        let frame = frame_alloc().unwrap();
-        if i == 0 {
-            ppn_base = frame.ppn;
-        }
-        assert_eq!(frame.ppn.0, ppn_base.0 + i);
-        QUEUE_FRAMES.exclusive_access().push(frame);
-    }
-    ppn_base.into()
-}
-
-#[no_mangle]
-pub extern "C" fn virtio_dma_dealloc(pa: PhysAddr, pages: usize) -> i32 {
-    let mut ppn_base: PhysPageNum = pa.into();
-    for _ in 0..pages {
-        frame_dealloc(ppn_base);
-        ppn_base.step();
-    }
-    0
-}
-
-#[no_mangle]
-pub extern "C" fn virtio_phys_to_virt(paddr: PhysAddr) -> VirtAddr {
-    VirtAddr(paddr.0)
-}
-
-#[no_mangle]
-pub extern "C" fn virtio_virt_to_phys(vaddr: VirtAddr) -> PhysAddr {
-    PageTable::from_token(kernel_token())
-        .translate_va(vaddr)
-        .unwrap()
-}
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/bus/mod.rs.html b/ch9-dev/src/os/drivers/bus/mod.rs.html new file mode 100644 index 00000000..47d35b17 --- /dev/null +++ b/ch9-dev/src/os/drivers/bus/mod.rs.html @@ -0,0 +1,4 @@ +mod.rs - source
1
+
pub mod virtio;
+
+
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/bus/virtio.rs.html b/ch9-dev/src/os/drivers/bus/virtio.rs.html new file mode 100644 index 00000000..bd5adea6 --- /dev/null +++ b/ch9-dev/src/os/drivers/bus/virtio.rs.html @@ -0,0 +1,106 @@ +virtio.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+
use crate::mm::{
+    frame_alloc, frame_dealloc, kernel_token, FrameTracker, PageTable, PhysAddr, PhysPageNum,
+    StepByOne, VirtAddr,
+};
+use crate::sync::UPIntrFreeCell;
+use alloc::vec::Vec;
+use lazy_static::*;
+use virtio_drivers::Hal;
+
+lazy_static! {
+    static ref QUEUE_FRAMES: UPIntrFreeCell<Vec<FrameTracker>> =
+        unsafe { UPIntrFreeCell::new(Vec::new()) };
+}
+
+pub struct VirtioHal;
+
+impl Hal for VirtioHal {
+    fn dma_alloc(pages: usize) -> usize {
+        let mut ppn_base = PhysPageNum(0);
+        for i in 0..pages {
+            let frame = frame_alloc().unwrap();
+            if i == 0 {
+                ppn_base = frame.ppn;
+            }
+            assert_eq!(frame.ppn.0, ppn_base.0 + i);
+            QUEUE_FRAMES.exclusive_access().push(frame);
+        }
+        let pa: PhysAddr = ppn_base.into();
+        pa.0
+    }
+
+    fn dma_dealloc(pa: usize, pages: usize) -> i32 {
+        let pa = PhysAddr::from(pa);
+        let mut ppn_base: PhysPageNum = pa.into();
+        for _ in 0..pages {
+            frame_dealloc(ppn_base);
+            ppn_base.step();
+        }
+        0
+    }
+
+    fn phys_to_virt(addr: usize) -> usize {
+        addr
+    }
+
+    fn virt_to_phys(vaddr: usize) -> usize {
+        PageTable::from_token(kernel_token())
+            .translate_va(VirtAddr::from(vaddr))
+            .unwrap()
+            .0
+    }
+}
+
+
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/chardev/mod.rs.html b/ch9-dev/src/os/drivers/chardev/mod.rs.html index 3de9d69c..609f561b 100644 --- a/ch9-dev/src/os/drivers/chardev/mod.rs.html +++ b/ch9-dev/src/os/drivers/chardev/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -19,10 +14,8 @@
 14
 15
 16
-17
 
mod ns16550a;
 
-#[cfg(feature = "board_qemu")]
 use crate::board::CharDeviceImpl;
 use alloc::sync::Arc;
 use lazy_static::*;
@@ -33,10 +26,9 @@
     fn write(&self, ch: u8);
     fn handle_irq(&self);
 }
-#[cfg(feature = "board_qemu")]
+
 lazy_static! {
     pub static ref UART: Arc<CharDeviceImpl> = Arc::new(CharDeviceImpl::new());
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/chardev/ns16550a.rs.html b/ch9-dev/src/os/drivers/chardev/ns16550a.rs.html index 10178f76..9bcf901c 100644 --- a/ch9-dev/src/os/drivers/chardev/ns16550a.rs.html +++ b/ch9-dev/src/os/drivers/chardev/ns16550a.rs.html @@ -1,9 +1,4 @@ -ns16550a.rs - source - -
1
+ns16550a.rs - source
1
 2
 3
 4
@@ -354,5 +349,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/gpu/mod.rs.html b/ch9-dev/src/os/drivers/gpu/mod.rs.html index ff0edc95..56175a79 100644 --- a/ch9-dev/src/os/drivers/gpu/mod.rs.html +++ b/ch9-dev/src/os/drivers/gpu/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -69,32 +64,36 @@
 64
 65
 66
-
use crate::sync::UPIntrFreeCell;
+67
+68
+
use crate::drivers::bus::virtio::VirtioHal;
+use crate::sync::UPIntrFreeCell;
 use alloc::{sync::Arc, vec::Vec};
 use core::any::Any;
 use embedded_graphics::pixelcolor::Rgb888;
 use tinybmp::Bmp;
 use virtio_drivers::{VirtIOGpu, VirtIOHeader};
 const VIRTIO7: usize = 0x10007000;
-pub trait GPUDevice: Send + Sync + Any {
+pub trait GpuDevice: Send + Sync + Any {
     fn update_cursor(&self);
-    fn getfreambuffer(&self) -> &mut [u8];
+    fn get_framebuffer(&self) -> &mut [u8];
     fn flush(&self);
 }
 
 lazy_static::lazy_static!(
-    pub static ref GPU_DEVICE: Arc<dyn GPUDevice> = Arc::new(VirtIOGPU::new());
+    pub static ref GPU_DEVICE: Arc<dyn GpuDevice> = Arc::new(VirtIOGpuWrapper::new());
 );
 
-pub struct VirtIOGPU {
-    gpu: UPIntrFreeCell<VirtIOGpu<'static>>,
+pub struct VirtIOGpuWrapper {
+    gpu: UPIntrFreeCell<VirtIOGpu<'static, VirtioHal>>,
     fb: &'static [u8],
 }
 static BMP_DATA: &[u8] = include_bytes!("../../assert/mouse.bmp");
-impl VirtIOGPU {
+impl VirtIOGpuWrapper {
     pub fn new() -> Self {
         unsafe {
-            let mut virtio = VirtIOGpu::new(&mut *(VIRTIO7 as *mut VirtIOHeader)).unwrap();
+            let mut virtio =
+                VirtIOGpu::<VirtioHal>::new(&mut *(VIRTIO7 as *mut VirtIOHeader)).unwrap();
 
             let fbuffer = virtio.setup_framebuffer().unwrap();
             let len = fbuffer.len();
@@ -123,11 +122,11 @@
     }
 }
 
-impl GPUDevice for VirtIOGPU {
+impl GpuDevice for VirtIOGpuWrapper {
     fn flush(&self) {
         self.gpu.exclusive_access().flush().unwrap();
     }
-    fn getfreambuffer(&self) -> &mut [u8] {
+    fn get_framebuffer(&self) -> &mut [u8] {
         unsafe {
             let ptr = self.fb.as_ptr() as *const _ as *mut u8;
             core::slice::from_raw_parts_mut(ptr, self.fb.len())
@@ -136,5 +135,4 @@
     fn update_cursor(&self) {}
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/input/mod.rs.html b/ch9-dev/src/os/drivers/input/mod.rs.html index 3b793d76..0a1f6aa8 100644 --- a/ch9-dev/src/os/drivers/input/mod.rs.html +++ b/ch9-dev/src/os/drivers/input/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -77,80 +72,81 @@
 72
 73
 74
-
use crate::{
-    gui::{Button, Component},
+75
+
use crate::drivers::bus::virtio::VirtioHal;
+use crate::{
+    gui::{move_rect, reset},
     sync::UPIntrFreeCell,
-    syscall::PAD,
 };
-use alloc::{string::ToString, sync::Arc};
+use alloc::sync::Arc;
 use core::any::Any;
-use embedded_graphics::{
-    prelude::{Point, Size},
-    text::Text,
-};
-use k210_hal::cache::Uncache;
 use virtio_drivers::{VirtIOHeader, VirtIOInput};
 use virtio_input_decoder::{Decoder, Key, KeyType};
 
-use super::GPU_DEVICE;
-
 const VIRTIO5: usize = 0x10005000;
 const VIRTIO6: usize = 0x10006000;
 
-struct VirtIOINPUT(UPIntrFreeCell<VirtIOInput<'static>>);
+struct VirtIOInputWrapper(UPIntrFreeCell<VirtIOInput<'static, VirtioHal>>);
 
-pub trait INPUTDevice: Send + Sync + Any {
+pub trait InputDevice: Send + Sync + Any {
     fn handle_irq(&self);
 }
 
 lazy_static::lazy_static!(
-    pub static ref KEYBOARD_DEVICE: Arc<dyn INPUTDevice> = Arc::new(VirtIOINPUT::new(VIRTIO5));
-    pub static ref MOUSE_DEVICE: Arc<dyn INPUTDevice> = Arc::new(VirtIOINPUT::new(VIRTIO6));
+    pub static ref KEYBOARD_DEVICE: Arc<dyn InputDevice> = Arc::new(VirtIOInputWrapper::new(VIRTIO5));
+    pub static ref MOUSE_DEVICE: Arc<dyn InputDevice> = Arc::new(VirtIOInputWrapper::new(VIRTIO6));
 );
 
-impl VirtIOINPUT {
+impl VirtIOInputWrapper {
     pub fn new(addr: usize) -> Self {
         Self(unsafe {
-            UPIntrFreeCell::new(VirtIOInput::new(&mut *(addr as *mut VirtIOHeader)).unwrap())
+            UPIntrFreeCell::new(
+                VirtIOInput::<VirtioHal>::new(&mut *(addr as *mut VirtIOHeader)).unwrap(),
+            )
         })
     }
 }
 
-impl INPUTDevice for VirtIOINPUT {
+impl InputDevice for VirtIOInputWrapper {
     fn handle_irq(&self) {
         let mut input = self.0.exclusive_access();
         input.ack_interrupt();
-        let event = input.pop_pending_event().unwrap();
-        let dtype = match Decoder::decode(
-            event.event_type as usize,
-            event.code as usize,
-            event.value as usize,
-        ) {
-            Ok(dtype) => dtype,
-            Err(_) => return,
-        };
-        match dtype {
-            virtio_input_decoder::DecodeType::Key(key, r#type) => {
-                println!("{:?} {:?}", key, r#type);
-                if r#type == KeyType::Press {
-                    let mut inner = PAD.exclusive_access();
-                    let a = inner.as_ref().unwrap();
-                    match key.to_char() {
-                        Ok(mut k) => {
-                            if k == '\r' {
-                                a.repaint(k.to_string() + "\n")
-                            } else {
-                                a.repaint(k.to_string())
+        while let Some(event) = input.pop_pending_event() {
+            let dtype = match Decoder::decode(
+                event.event_type as usize,
+                event.code as usize,
+                event.value as usize,
+            ) {
+                Ok(dtype) => dtype,
+                Err(_) => break,
+            };
+            match dtype {
+                virtio_input_decoder::DecodeType::Key(key, r#type) => {
+                    if r#type == KeyType::Press {
+                        match key {
+                            Key::C | Key::MouseLeft => {
+                                reset();
                             }
+                            Key::W => {
+                                move_rect(0, -10);
+                            }
+                            Key::S => {
+                                move_rect(0, 10);
+                            }
+                            Key::A => {
+                                move_rect(-10, 0);
+                            }
+                            Key::D => {
+                                move_rect(10, 0);
+                            }
+                            _ => {}
                         }
-                        Err(_) => {}
                     }
                 }
+                _ => {}
             }
-            virtio_input_decoder::DecodeType::Mouse(mouse) => println!("{:?}", mouse),
         }
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/mod.rs.html b/ch9-dev/src/os/drivers/mod.rs.html index c95afa46..fc30aa13 100644 --- a/ch9-dev/src/os/drivers/mod.rs.html +++ b/ch9-dev/src/os/drivers/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -15,22 +10,17 @@
 10
 11
 12
-13
-14
 
pub mod block;
+pub mod bus;
 pub mod chardev;
-#[cfg(feature = "board_qemu")]
 pub mod gpu;
-#[cfg(feature = "board_qemu")]
 pub mod input;
 pub mod plic;
+
 pub use block::BLOCK_DEVICE;
-#[cfg(feature = "board_qemu")]
+pub use bus::*;
 pub use chardev::UART;
-#[cfg(feature = "board_qemu")]
 pub use gpu::*;
-#[cfg(feature = "board_qemu")]
 pub use input::*;
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/drivers/plic.rs.html b/ch9-dev/src/os/drivers/plic.rs.html index 55cc394b..4f3bfa2f 100644 --- a/ch9-dev/src/os/drivers/plic.rs.html +++ b/ch9-dev/src/os/drivers/plic.rs.html @@ -1,9 +1,4 @@ -plic.rs - source - -
1
+plic.rs - source
1
 2
 3
 4
@@ -252,5 +247,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/fs/inode.rs.html b/ch9-dev/src/os/fs/inode.rs.html index 457348c9..3d8fbdf9 100644 --- a/ch9-dev/src/os/fs/inode.rs.html +++ b/ch9-dev/src/os/fs/inode.rs.html @@ -1,9 +1,4 @@ -inode.rs - source - -
1
+inode.rs - source
1
 2
 3
 4
@@ -282,5 +277,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/fs/mod.rs.html b/ch9-dev/src/os/fs/mod.rs.html index 87f7669b..82d38fbc 100644 --- a/ch9-dev/src/os/fs/mod.rs.html +++ b/ch9-dev/src/os/fs/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -36,5 +31,4 @@
 pub use pipe::{make_pipe, Pipe};
 pub use stdio::{Stdin, Stdout};
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/fs/pipe.rs.html b/ch9-dev/src/os/fs/pipe.rs.html index 44687393..4c435aff 100644 --- a/ch9-dev/src/os/fs/pipe.rs.html +++ b/ch9-dev/src/os/fs/pipe.rs.html @@ -1,9 +1,4 @@ -pipe.rs - source - -
1
+pipe.rs - source
1
 2
 3
 4
@@ -169,6 +164,13 @@
 164
 165
 166
+167
+168
+169
+170
+171
+172
+173
 
use super::File;
 use crate::mm::UserBuffer;
 use crate::sync::UPIntrFreeCell;
@@ -285,36 +287,40 @@
     }
     fn read(&self, buf: UserBuffer) -> usize {
         assert!(self.readable());
+        let want_to_read = buf.len();
         let mut buf_iter = buf.into_iter();
-        let mut read_size = 0usize;
+        let mut already_read = 0usize;
         loop {
             let mut ring_buffer = self.buffer.exclusive_access();
             let loop_read = ring_buffer.available_read();
             if loop_read == 0 {
                 if ring_buffer.all_write_ends_closed() {
-                    return read_size;
+                    return already_read;
                 }
                 drop(ring_buffer);
                 suspend_current_and_run_next();
                 continue;
             }
-            // read at most loop_read bytes
             for _ in 0..loop_read {
                 if let Some(byte_ref) = buf_iter.next() {
                     unsafe {
                         *byte_ref = ring_buffer.read_byte();
                     }
-                    read_size += 1;
+                    already_read += 1;
+                    if already_read == want_to_read {
+                        return want_to_read;
+                    }
                 } else {
-                    return read_size;
+                    return already_read;
                 }
             }
         }
     }
     fn write(&self, buf: UserBuffer) -> usize {
         assert!(self.writable());
+        let want_to_write = buf.len();
         let mut buf_iter = buf.into_iter();
-        let mut write_size = 0usize;
+        let mut already_write = 0usize;
         loop {
             let mut ring_buffer = self.buffer.exclusive_access();
             let loop_write = ring_buffer.available_write();
@@ -327,14 +333,15 @@
             for _ in 0..loop_write {
                 if let Some(byte_ref) = buf_iter.next() {
                     ring_buffer.write_byte(unsafe { *byte_ref });
-                    write_size += 1;
+                    already_write += 1;
+                    if already_write == want_to_write {
+                        return want_to_write;
+                    }
                 } else {
-                    return write_size;
+                    return already_write;
                 }
             }
         }
     }
-}
-
-
- \ No newline at end of file +}
+
\ No newline at end of file diff --git a/ch9-dev/src/os/fs/stdio.rs.html b/ch9-dev/src/os/fs/stdio.rs.html index 9a74d1b7..2d27ebab 100644 --- a/ch9-dev/src/os/fs/stdio.rs.html +++ b/ch9-dev/src/os/fs/stdio.rs.html @@ -1,9 +1,4 @@ -stdio.rs - source - -
1
+stdio.rs - source
1
 2
 3
 4
@@ -49,42 +44,10 @@
 44
 45
 46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
 
use super::File;
 use crate::drivers::chardev::CharDevice;
-#[cfg(feature = "board_qemu")]
 use crate::drivers::chardev::UART;
 use crate::mm::UserBuffer;
-#[cfg(feature = "board_k210")]
-use crate::sbi::console_getchar;
-#[cfg(feature = "board_k210")]
-use crate::task::suspend_current_and_run_next;
 
 pub struct Stdin;
 pub struct Stdout;
@@ -96,7 +59,6 @@
     fn writable(&self) -> bool {
         false
     }
-    #[cfg(feature = "board_qemu")]
     fn read(&self, mut user_buf: UserBuffer) -> usize {
         assert_eq!(user_buf.len(), 1);
         //println!("before UART.read() in Stdin::read()");
@@ -106,27 +68,6 @@
         }
         1
     }
-    #[cfg(feature = "board_k210")]
-    fn read(&self, mut user_buf: UserBuffer) -> usize {
-        assert_eq!(user_buf.len(), 1);
-        // busy loop
-        let mut c: usize;
-        loop {
-            c = console_getchar();
-            if c == 0 {
-                suspend_current_and_run_next();
-                continue;
-            } else {
-                break;
-            }
-        }
-        let ch = c as u8;
-        unsafe {
-            user_buf.buffers[0].as_mut_ptr().write_volatile(ch);
-        }
-        1
-    }
-
     fn write(&self, _user_buf: UserBuffer) -> usize {
         panic!("Cannot write to stdin!");
     }
@@ -150,5 +91,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/gui/button.rs.html b/ch9-dev/src/os/gui/button.rs.html deleted file mode 100644 index 04a30835..00000000 --- a/ch9-dev/src/os/gui/button.rs.html +++ /dev/null @@ -1,166 +0,0 @@ -button.rs - source - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-
use alloc::{string::String, sync::Arc};
-use embedded_graphics::{
-    mono_font::{
-        ascii::{FONT_10X20, FONT_6X10},
-        MonoTextStyle,
-    },
-    pixelcolor::Rgb888,
-    prelude::{Dimensions, Point, Primitive, RgbColor, Size},
-    primitives::{PrimitiveStyle, Rectangle},
-    text::{Alignment, Text},
-    Drawable,
-};
-
-use crate::{drivers::GPU_DEVICE, sync::UPIntrFreeCell};
-
-use super::{Component, Graphics};
-
-pub struct Button {
-    inner: UPIntrFreeCell<ButtonInner>,
-}
-
-pub struct ButtonInner {
-    graphic: Graphics,
-    text: String,
-    parent: Option<Arc<dyn Component>>,
-}
-
-impl Button {
-    pub fn new(size: Size, point: Point, parent: Option<Arc<dyn Component>>, text: String) -> Self {
-        let point = match &parent {
-            Some(p) => {
-                let (_, p) = p.bound();
-                Point::new(p.x + point.x, p.y + point.y)
-            }
-            None => point,
-        };
-        Self {
-            inner: unsafe {
-                UPIntrFreeCell::new(ButtonInner {
-                    graphic: Graphics {
-                        size,
-                        point,
-                        drv: GPU_DEVICE.clone(),
-                    },
-                    text,
-                    parent,
-                })
-            },
-        }
-    }
-}
-
-impl Component for Button {
-    fn paint(&self) {
-        let mut inner = self.inner.exclusive_access();
-        let text = inner.text.clone();
-        Text::with_alignment(
-            text.as_str(),
-            inner.graphic.bounding_box().center(),
-            MonoTextStyle::new(&FONT_10X20, Rgb888::BLACK),
-            Alignment::Center,
-        )
-        .draw(&mut inner.graphic);
-    }
-
-    fn add(&self, comp: alloc::sync::Arc<dyn Component>) {
-        unreachable!()
-    }
-
-    fn bound(
-        &self,
-    ) -> (
-        embedded_graphics::prelude::Size,
-        embedded_graphics::prelude::Point,
-    ) {
-        let inner = self.inner.exclusive_access();
-        (inner.graphic.size, inner.graphic.point)
-    }
-}
-
-
- \ No newline at end of file diff --git a/ch9-dev/src/os/gui/graphic.rs.html b/ch9-dev/src/os/gui/graphic.rs.html index d484e1c5..30a078ba 100644 --- a/ch9-dev/src/os/gui/graphic.rs.html +++ b/ch9-dev/src/os/gui/graphic.rs.html @@ -1,9 +1,4 @@ -graphic.rs - source - -
1
+graphic.rs - source
1
 2
 3
 4
@@ -60,6 +55,12 @@
 55
 56
 57
+58
+59
+60
+61
+62
+63
 
use alloc::sync::Arc;
 use embedded_graphics::{
     draw_target::DrawTarget,
@@ -67,14 +68,14 @@
     prelude::{OriginDimensions, Point, RgbColor, Size},
 };
 
-use crate::drivers::{GPUDevice, GPU_DEVICE,};
-use crate::board::{VIRTGPU_XRES, VIRTGPU_YRES};
+use crate::board::VIRTGPU_XRES;
+use crate::drivers::{GpuDevice, GPU_DEVICE};
 
 #[derive(Clone)]
 pub struct Graphics {
     pub size: Size,
     pub point: Point,
-    pub drv: Arc<dyn GPUDevice>,
+    pub drv: Arc<dyn GpuDevice>,
 }
 
 impl Graphics {
@@ -85,6 +86,10 @@
             drv: GPU_DEVICE.clone(),
         }
     }
+    pub fn reset(&self) {
+        let fb = self.drv.get_framebuffer();
+        fb.fill(0u8);
+    }
 }
 
 impl OriginDimensions for Graphics {
@@ -102,10 +107,12 @@
     where
         I: IntoIterator<Item = embedded_graphics::Pixel<Self::Color>>,
     {
-        let fb = self.drv.getfreambuffer();
+        let fb = self.drv.get_framebuffer();
 
         pixels.into_iter().for_each(|px| {
-            let idx = ((self.point.y + px.0.y) * VIRTGPU_XRES as i32 + self.point.x + px.0.x) as usize * 4;
+            let idx = ((self.point.y + px.0.y) * VIRTGPU_XRES as i32 + self.point.x + px.0.x)
+                as usize
+                * 4;
             if idx + 2 >= fb.len() {
                 return;
             }
@@ -118,5 +125,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/gui/icon.rs.html b/ch9-dev/src/os/gui/icon.rs.html deleted file mode 100644 index 8fade5f3..00000000 --- a/ch9-dev/src/os/gui/icon.rs.html +++ /dev/null @@ -1,166 +0,0 @@ -icon.rs - source - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-
use alloc::{string::String, sync::Arc, vec::Vec};
-use embedded_graphics::{
-    image::Image,
-    mono_font::{ascii::FONT_10X20, iso_8859_13::FONT_6X12, MonoTextStyle},
-    pixelcolor::Rgb888,
-    prelude::{Point, RgbColor, Size},
-    text::Text,
-    Drawable,
-};
-use tinybmp::Bmp;
-
-use crate::{drivers::GPU_DEVICE, sync::UPIntrFreeCell};
-use crate::board::{VIRTGPU_XRES, VIRTGPU_YRES};
-use super::{Component, Graphics, ImageComp};
-
-static FILEICON: &[u8] = include_bytes!("../assert/file.bmp");
-
-pub struct IconController {
-    inner: UPIntrFreeCell<IconControllerInner>,
-}
-
-pub struct IconControllerInner {
-    files: Vec<String>,
-    graphic: Graphics,
-    parent: Option<Arc<dyn Component>>,
-}
-
-impl IconController {
-    pub fn new(files: Vec<String>, parent: Option<Arc<dyn Component>>) -> Self {
-        IconController {
-            inner: unsafe {
-                UPIntrFreeCell::new(IconControllerInner {
-                    files,
-                    graphic: Graphics {
-                        size: Size::new(VIRTGPU_XRES, VIRTGPU_YRES),
-                        point: Point::new(0, 0),
-                        drv: GPU_DEVICE.clone(),
-                    },
-                    parent,
-                })
-            },
-        }
-    }
-}
-
-impl Component for IconController {
-    fn paint(&self) {
-        println!("demo");
-        let mut inner = self.inner.exclusive_access();
-        let mut x = 10;
-        let mut y = 10;
-        let v = inner.files.clone();
-        for file in v {
-            println!("file");
-            let bmp = Bmp::<Rgb888>::from_slice(FILEICON).unwrap();
-            Image::new(&bmp, Point::new(x, y)).draw(&mut inner.graphic);
-            let text = Text::new(
-                file.as_str(),
-                Point::new(x + 20, y + 80),
-                MonoTextStyle::new(&FONT_10X20, Rgb888::BLACK),
-            );
-            text.draw(&mut inner.graphic);
-            if y >= 600 {
-                x = x + 70;
-                y = 10;
-            } else {
-                y = y + 90;
-            }
-        }
-    }
-
-    fn add(&self, comp: Arc<dyn Component>) {
-        todo!()
-    }
-
-    fn bound(&self) -> (Size, Point) {
-        todo!()
-    }
-}
-
-
- \ No newline at end of file diff --git a/ch9-dev/src/os/gui/image.rs.html b/ch9-dev/src/os/gui/image.rs.html deleted file mode 100644 index 437d717a..00000000 --- a/ch9-dev/src/os/gui/image.rs.html +++ /dev/null @@ -1,168 +0,0 @@ -image.rs - source - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-
use alloc::{sync::Arc, vec::Vec};
-use embedded_graphics::{
-    image::Image,
-    pixelcolor::Rgb888,
-    prelude::{Point, Size},
-    Drawable,
-};
-use tinybmp::Bmp;
-
-use crate::{
-    drivers::{BLOCK_DEVICE, GPU_DEVICE},
-    sync::UPIntrFreeCell,
-};
-
-use super::{Component, Graphics};
-
-pub struct ImageComp {
-    inner: UPIntrFreeCell<ImageInner>,
-}
-
-pub struct ImageInner {
-    image: &'static [u8],
-    graphic: Graphics,
-    parent: Option<Arc<dyn Component>>,
-}
-
-impl ImageComp {
-    pub fn new(
-        size: Size,
-        point: Point,
-        v: &'static [u8],
-        parent: Option<Arc<dyn Component>>,
-    ) -> Self {
-        unsafe {
-            ImageComp {
-                inner: UPIntrFreeCell::new(ImageInner {
-                    parent,
-                    image: v,
-                    graphic: Graphics {
-                        size,
-                        point,
-                        drv: GPU_DEVICE.clone(),
-                    },
-                }),
-            }
-        }
-    }
-}
-
-impl Component for ImageComp {
-    fn paint(&self) {
-        let mut inner = self.inner.exclusive_access();
-        let b = unsafe {
-            let len = inner.image.len();
-            let ptr = inner.image.as_ptr() as *const u8;
-            core::slice::from_raw_parts(ptr, len)
-        };
-        let bmp = Bmp::<Rgb888>::from_slice(b).unwrap();
-        let point = match &inner.parent {
-            Some(parent) => {
-                let (_, point) = parent.bound();
-                Point::new(
-                    point.x + inner.graphic.point.x,
-                    point.y + inner.graphic.point.y,
-                )
-            }
-            None => inner.graphic.point,
-        };
-        Image::new(&bmp, point).draw(&mut inner.graphic);
-    }
-
-    fn add(&self, comp: alloc::sync::Arc<dyn Component>) {
-        todo!()
-    }
-
-    fn bound(&self) -> (Size, Point) {
-        let inner = self.inner.exclusive_access();
-        (inner.graphic.size, inner.graphic.point)
-    }
-}
-
-
- \ No newline at end of file diff --git a/ch9-dev/src/os/gui/mod.rs.html b/ch9-dev/src/os/gui/mod.rs.html index fc3719db..4562ea0f 100644 --- a/ch9-dev/src/os/gui/mod.rs.html +++ b/ch9-dev/src/os/gui/mod.rs.html @@ -1,50 +1,12 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
 5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-
mod button;
-mod graphic;
-mod icon;
-mod image;
-mod panel;
-mod terminal;
-use alloc::sync::Arc;
-pub use button::*;
-use core::any::Any;
-use embedded_graphics::prelude::{Point, Size};
-pub use graphic::*;
-pub use icon::*;
-pub use image::*;
-pub use panel::*;
-pub use terminal::*;
+
mod graphic;
+mod paint;
 
-pub trait Component: Send + Sync + Any {
-    fn paint(&self);
-    fn add(&self, comp: Arc<dyn Component>);
-    fn bound(&self) -> (Size, Point);
-}
+use graphic::Graphics;
+pub use paint::{init_paint, move_rect, reset};
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/gui/paint.rs.html b/ch9-dev/src/os/gui/paint.rs.html new file mode 100644 index 00000000..ea1ba9ec --- /dev/null +++ b/ch9-dev/src/os/gui/paint.rs.html @@ -0,0 +1,126 @@ +paint.rs - source
1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+
use super::Graphics;
+use crate::sync::UPIntrFreeCell;
+use embedded_graphics::pixelcolor::Rgb888;
+use embedded_graphics::prelude::{Drawable, Point, RgbColor, Size};
+use embedded_graphics::primitives::Primitive;
+use embedded_graphics::primitives::{PrimitiveStyle, Rectangle};
+use lazy_static::*;
+
+const INIT_X: i32 = 640;
+const INIT_Y: i32 = 400;
+const RECT_SIZE: u32 = 40;
+
+pub struct DrawingBoard {
+    graphics: Graphics,
+    latest_pos: Point,
+}
+
+impl DrawingBoard {
+    pub fn new() -> Self {
+        Self {
+            graphics: Graphics::new(Size::new(1280, 800), Point::new(0, 0)),
+            latest_pos: Point::new(INIT_X, INIT_Y),
+        }
+    }
+    fn paint(&mut self) {
+        Rectangle::with_center(self.latest_pos, Size::new(RECT_SIZE, RECT_SIZE))
+            .into_styled(PrimitiveStyle::with_stroke(Rgb888::WHITE, 1))
+            .draw(&mut self.graphics)
+            .ok();
+    }
+    pub fn move_rect(&mut self, dx: i32, dy: i32) {
+        self.latest_pos.x += dx;
+        self.latest_pos.y += dy;
+        self.paint();
+    }
+    pub fn reset(&mut self) {
+        self.latest_pos = Point::new(INIT_X, INIT_Y);
+        self.graphics.reset();
+    }
+}
+
+lazy_static! {
+    pub static ref DRAWING_BOARD: UPIntrFreeCell<DrawingBoard> = unsafe { UPIntrFreeCell::new(DrawingBoard::new()) };
+}
+
+pub fn init_paint() {
+    DRAWING_BOARD.exclusive_session(|ripple| {
+        ripple.paint();
+    });
+}
+
+pub fn move_rect(dx: i32, dy: i32) {
+    DRAWING_BOARD.exclusive_session(|ripple| {
+        ripple.move_rect(dx, dy);
+    });
+}
+
+pub fn reset() {
+    DRAWING_BOARD.exclusive_session(|ripple| {
+        ripple.reset();
+    });
+}
+
+
\ No newline at end of file diff --git a/ch9-dev/src/os/gui/panel.rs.html b/ch9-dev/src/os/gui/panel.rs.html deleted file mode 100644 index 9e772b13..00000000 --- a/ch9-dev/src/os/gui/panel.rs.html +++ /dev/null @@ -1,140 +0,0 @@ -panel.rs - source - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-
use alloc::{collections::VecDeque, rc::Weak, sync::Arc};
-use embedded_graphics::{
-    pixelcolor::Rgb888,
-    prelude::{Point, Primitive, RgbColor, Size},
-    primitives::{PrimitiveStyle, Rectangle},
-    Drawable,
-};
-
-use crate::{drivers::GPU_DEVICE, sync::UPIntrFreeCell};
-
-use super::{Component, Graphics};
-
-pub struct Panel {
-    inner: UPIntrFreeCell<PanelInner>,
-}
-struct PanelInner {
-    graphic: Graphics,
-    comps: VecDeque<Arc<dyn Component>>,
-}
-
-impl Panel {
-    pub fn new(size: Size, point: Point) -> Self {
-        Self {
-            inner: unsafe {
-                UPIntrFreeCell::new(PanelInner {
-                    graphic: Graphics {
-                        size,
-                        point,
-                        drv: GPU_DEVICE.clone(),
-                    },
-                    comps: VecDeque::new(),
-                })
-            },
-        }
-    }
-}
-
-impl Component for Panel {
-    fn paint(&self) {
-        let mut inner = self.inner.exclusive_access();
-
-        Rectangle::new(Point::new(0, 0), inner.graphic.size)
-            .into_styled(PrimitiveStyle::with_fill(Rgb888::WHITE))
-            .draw(&mut inner.graphic)
-            .unwrap();
-
-        let len = inner.comps.len();
-        drop(inner);
-        for i in 0..len {
-            let mut inner = self.inner.exclusive_access();
-            let comp = Arc::downgrade(&inner.comps[i]);
-            drop(inner);
-            comp.upgrade().unwrap().paint();
-        }
-    }
-
-    fn add(&self, comp: alloc::sync::Arc<dyn Component>) {
-        let mut inner = self.inner.exclusive_access();
-        inner.comps.push_back(comp);
-    }
-
-    fn bound(&self) -> (Size, Point) {
-        let inner = self.inner.exclusive_access();
-        (inner.graphic.size, inner.graphic.point)
-    }
-}
-
-
- \ No newline at end of file diff --git a/ch9-dev/src/os/gui/terminal.rs.html b/ch9-dev/src/os/gui/terminal.rs.html deleted file mode 100644 index 9af54c7c..00000000 --- a/ch9-dev/src/os/gui/terminal.rs.html +++ /dev/null @@ -1,218 +0,0 @@ -terminal.rs - source - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-
use alloc::{
-    collections::VecDeque,
-    string::{String, ToString},
-    sync::Arc,
-};
-use embedded_graphics::{
-    mono_font::{ascii::FONT_10X20, MonoTextStyle},
-    pixelcolor::Rgb888,
-    prelude::{Dimensions, Point, Primitive, RgbColor, Size},
-    primitives::{PrimitiveStyle, Rectangle},
-    text::{Alignment, Text},
-    Drawable,
-};
-
-use crate::{drivers::GPU_DEVICE, sync::UPIntrFreeCell};
-
-use super::{button::Button, Component, Graphics, Panel};
-
-pub struct Terminal {
-    inner: UPIntrFreeCell<TerminalInner>,
-}
-
-pub struct TerminalInner {
-    pub text: String,
-    titel: Option<String>,
-    graphic: Graphics,
-    comps: VecDeque<Arc<dyn Component>>,
-}
-
-impl Terminal {
-    pub fn new(
-        size: Size,
-        point: Point,
-        parent: Option<Arc<dyn Component>>,
-        titel: Option<String>,
-        text: String,
-    ) -> Self {
-        Self {
-            inner: unsafe {
-                UPIntrFreeCell::new(TerminalInner {
-                    text,
-                    titel,
-                    graphic: Graphics {
-                        size,
-                        point,
-                        drv: GPU_DEVICE.clone(),
-                    },
-                    comps: VecDeque::new(),
-                })
-            },
-        }
-    }
-
-    pub fn repaint(&self, text: String) {
-        let mut inner = self.inner.exclusive_access();
-        inner.text += text.as_str();
-        Text::with_alignment(
-            inner.text.clone().as_str(),
-            Point::new(20, 50),
-            MonoTextStyle::new(&FONT_10X20, Rgb888::BLACK),
-            Alignment::Left,
-        )
-        .draw(&mut inner.graphic);
-    }
-}
-
-impl Component for Terminal {
-    fn paint(&self) {
-        let mut inner = self.inner.exclusive_access();
-        let len = inner.comps.len();
-        drop(inner);
-        for i in 0..len {
-            let mut inner = self.inner.exclusive_access();
-            let comp = Arc::downgrade(&inner.comps[i]);
-            drop(inner);
-            comp.upgrade().unwrap().paint();
-        }
-        let mut inner = self.inner.exclusive_access();
-        let titel = inner.titel.get_or_insert("No Titel".to_string()).clone();
-        let text = Text::new(
-            titel.as_str(),
-            Point::new(20, 20),
-            MonoTextStyle::new(&FONT_10X20, Rgb888::BLACK),
-        );
-        text.draw(&mut inner.graphic);
-
-        Text::with_alignment(
-            inner.text.clone().as_str(),
-            Point::new(20, 50),
-            MonoTextStyle::new(&FONT_10X20, Rgb888::BLACK),
-            Alignment::Left,
-        )
-        .draw(&mut inner.graphic);
-    }
-
-    fn add(&self, comp: Arc<dyn Component>) {
-        let mut inner = self.inner.exclusive_access();
-        inner.comps.push_back(comp);
-    }
-
-    fn bound(&self) -> (Size, Point) {
-        let inner = self.inner.exclusive_access();
-        (inner.graphic.size, inner.graphic.point)
-    }
-}
-
-
- \ No newline at end of file diff --git a/ch9-dev/src/os/lang_items.rs.html b/ch9-dev/src/os/lang_items.rs.html index f559c0d2..a9b8a860 100644 --- a/ch9-dev/src/os/lang_items.rs.html +++ b/ch9-dev/src/os/lang_items.rs.html @@ -1,9 +1,4 @@ -lang_items.rs - source - -
1
+lang_items.rs - source
1
 2
 3
 4
@@ -78,5 +73,4 @@
     println!("---END   BACKTRACE---");
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/main.rs.html b/ch9-dev/src/os/main.rs.html index dd685137..714d9151 100644 --- a/ch9-dev/src/os/main.rs.html +++ b/ch9-dev/src/os/main.rs.html @@ -1,9 +1,4 @@ -main.rs - source - -
1
+main.rs - source
1
 2
 3
 4
@@ -78,19 +73,11 @@
 73
 74
 75
-76
-77
-78
-79
-80
-81
-82
-83
 
#![no_std]
 #![no_main]
 #![feature(panic_info_message)]
 #![feature(alloc_error_handler)]
-#[cfg(feature = "board_qemu")]
+
 use crate::drivers::{GPU_DEVICE, KEYBOARD_DEVICE, MOUSE_DEVICE};
 
 extern crate alloc;
@@ -98,10 +85,6 @@
 #[macro_use]
 extern crate bitflags;
 
-#[cfg(feature = "board_k210")]
-#[path = "boards/k210.rs"]
-mod board;
-#[cfg(not(any(feature = "board_k210")))]
 #[path = "boards/qemu.rs"]
 mod board;
 
@@ -110,7 +93,6 @@
 mod config;
 mod drivers;
 mod fs;
-#[cfg(feature = "board_qemu")]
 mod gui;
 mod lang_items;
 mod mm;
@@ -121,7 +103,7 @@
 mod timer;
 mod trap;
 
-// use syscall::create_desktop; //for test
+//use syscall::create_desktop; //for test
 
 core::arch::global_asm!(include_str!("entry.asm"));
 
@@ -149,26 +131,22 @@
     clear_bss();
     mm::init();
     println!("KERN: init gpu");
-    #[cfg(feature = "board_qemu")]
-    GPU_DEVICE.clone();
+    let _gpu = GPU_DEVICE.clone();
     println!("KERN: init keyboard");
-    #[cfg(feature = "board_qemu")]
-    KEYBOARD_DEVICE.clone();
+    let _keyboard = KEYBOARD_DEVICE.clone();
     println!("KERN: init mouse");
-    #[cfg(feature = "board_qemu")]
-    MOUSE_DEVICE.clone();
+    let _mouse = MOUSE_DEVICE.clone();
     println!("KERN: init trap");
     trap::init();
     trap::enable_timer_interrupt();
     timer::set_next_trigger();
     board::device_init();
     fs::list_apps();
-    //syscall::create_desktop(); //for test
+    gui::init_paint();
     task::add_initproc();
     *DEV_NON_BLOCKING_ACCESS.exclusive_access() = true;
     task::run_tasks();
     panic!("Unreachable in rust_main!");
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/mm/address.rs.html b/ch9-dev/src/os/mm/address.rs.html index 441aea72..c39b1316 100644 --- a/ch9-dev/src/os/mm/address.rs.html +++ b/ch9-dev/src/os/mm/address.rs.html @@ -1,9 +1,4 @@ -address.rs - source - -
1
+address.rs - source
1
 2
 3
 4
@@ -528,5 +523,4 @@
 }
 pub type VPNRange = SimpleRange<VirtPageNum>;
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/mm/frame_allocator.rs.html b/ch9-dev/src/os/mm/frame_allocator.rs.html index 8ac6457e..c8ca55d7 100644 --- a/ch9-dev/src/os/mm/frame_allocator.rs.html +++ b/ch9-dev/src/os/mm/frame_allocator.rs.html @@ -1,9 +1,4 @@ -frame_allocator.rs - source - -
1
+frame_allocator.rs - source
1
 2
 3
 4
@@ -180,7 +175,7 @@
     pub fn init(&mut self, l: PhysPageNum, r: PhysPageNum) {
         self.current = l.0;
         self.end = r.0;
-        println!("last {} Physical Frames.", self.end - self.current);
+        // println!("last {} Physical Frames.", self.end - self.current);
     }
 }
 impl FrameAllocator for StackFrameAllocator {
@@ -258,5 +253,4 @@
     println!("frame_allocator_test passed!");
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/mm/heap_allocator.rs.html b/ch9-dev/src/os/mm/heap_allocator.rs.html index 532cbad3..0054936e 100644 --- a/ch9-dev/src/os/mm/heap_allocator.rs.html +++ b/ch9-dev/src/os/mm/heap_allocator.rs.html @@ -1,9 +1,4 @@ -heap_allocator.rs - source - -
1
+heap_allocator.rs - source
1
 2
 3
 4
@@ -94,5 +89,4 @@
     println!("heap_test passed!");
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/mm/memory_set.rs.html b/ch9-dev/src/os/mm/memory_set.rs.html index 3746c256..846da910 100644 --- a/ch9-dev/src/os/mm/memory_set.rs.html +++ b/ch9-dev/src/os/mm/memory_set.rs.html @@ -1,9 +1,4 @@ -memory_set.rs - source - -
1
+memory_set.rs - source
1
 2
 3
 4
@@ -467,14 +462,14 @@
         // map trampoline
         memory_set.map_trampoline();
         // map kernel sections
-        println!(".text [{:#x}, {:#x})", stext as usize, etext as usize);
-        println!(".rodata [{:#x}, {:#x})", srodata as usize, erodata as usize);
-        println!(".data [{:#x}, {:#x})", sdata as usize, edata as usize);
-        println!(
-            ".bss [{:#x}, {:#x})",
-            sbss_with_stack as usize, ebss as usize
-        );
-        println!("mapping .text section");
+        // println!(".text [{:#x}, {:#x})", stext as usize, etext as usize);
+        // println!(".rodata [{:#x}, {:#x})", srodata as usize, erodata as usize);
+        // println!(".data [{:#x}, {:#x})", sdata as usize, edata as usize);
+        // println!(
+        //     ".bss [{:#x}, {:#x})",
+        //     sbss_with_stack as usize, ebss as usize
+        // );
+        // println!("mapping .text section");
         memory_set.push(
             MapArea::new(
                 (stext as usize).into(),
@@ -484,7 +479,7 @@
             ),
             None,
         );
-        println!("mapping .rodata section");
+        // println!("mapping .rodata section");
         memory_set.push(
             MapArea::new(
                 (srodata as usize).into(),
@@ -494,7 +489,7 @@
             ),
             None,
         );
-        println!("mapping .data section");
+        // println!("mapping .data section");
         memory_set.push(
             MapArea::new(
                 (sdata as usize).into(),
@@ -504,7 +499,7 @@
             ),
             None,
         );
-        println!("mapping .bss section");
+        // println!("mapping .bss section");
         memory_set.push(
             MapArea::new(
                 (sbss_with_stack as usize).into(),
@@ -514,7 +509,7 @@
             ),
             None,
         );
-        println!("mapping physical memory");
+        // println!("mapping physical memory");
         memory_set.push(
             MapArea::new(
                 (ekernel as usize).into(),
@@ -524,7 +519,7 @@
             ),
             None,
         );
-        println!("mapping memory-mapped registers");
+        //println!("mapping memory-mapped registers");
         for pair in MMIO {
             memory_set.push(
                 MapArea::new(
@@ -744,5 +739,4 @@
     println!("remap_test passed!");
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/mm/mod.rs.html b/ch9-dev/src/os/mm/mod.rs.html index 783b1784..ea6cee3b 100644 --- a/ch9-dev/src/os/mm/mod.rs.html +++ b/ch9-dev/src/os/mm/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -48,5 +43,4 @@
     KERNEL_SPACE.exclusive_access().activate();
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/mm/page_table.rs.html b/ch9-dev/src/os/mm/page_table.rs.html index 5ac95682..0451e8e7 100644 --- a/ch9-dev/src/os/mm/page_table.rs.html +++ b/ch9-dev/src/os/mm/page_table.rs.html @@ -1,9 +1,4 @@ -page_table.rs - source - -
1
+page_table.rs - source
1
 2
 3
 4
@@ -502,5 +497,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/sbi.rs.html b/ch9-dev/src/os/sbi.rs.html index 88663670..73936429 100644 --- a/ch9-dev/src/os/sbi.rs.html +++ b/ch9-dev/src/os/sbi.rs.html @@ -1,9 +1,4 @@ -sbi.rs - source - -
1
+sbi.rs - source
1
 2
 3
 4
@@ -49,12 +44,6 @@
 44
 45
 46
-47
-48
-49
-50
-51
-52
 
#![allow(unused)]
 
 use core::arch::asm;
@@ -97,16 +86,9 @@
     sbi_call(SBI_CONSOLE_GETCHAR, 0, 0, 0)
 }
 
-#[cfg(feature = "board_qemu")]
 use crate::board::QEMUExit;
 pub fn shutdown(exit_code: usize) -> ! {
-    #[cfg(feature = "board_k210")]
-    sbi_call(SBI_SHUTDOWN, exit_code, 0, 0);
-    #[cfg(feature = "board_qemu")]
-    crate::board::QEMU_EXIT_HANDLE.exit_failure();
-    #[cfg(feature = "board_k210")]
-    panic!("It should shutdown!");
+    crate::board::QEMU_EXIT_HANDLE.exit_failure()
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/sync/condvar.rs.html b/ch9-dev/src/os/sync/condvar.rs.html index 50482e57..c7fcb946 100644 --- a/ch9-dev/src/os/sync/condvar.rs.html +++ b/ch9-dev/src/os/sync/condvar.rs.html @@ -1,9 +1,4 @@ -condvar.rs - source - -
1
+condvar.rs - source
1
 2
 3
 4
@@ -120,5 +115,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/sync/mod.rs.html b/ch9-dev/src/os/sync/mod.rs.html index 793930a8..adfa3523 100644 --- a/ch9-dev/src/os/sync/mod.rs.html +++ b/ch9-dev/src/os/sync/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -22,5 +17,4 @@
 pub use semaphore::Semaphore;
 pub use up::{UPIntrFreeCell, UPIntrRefMut};
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/sync/mutex.rs.html b/ch9-dev/src/os/sync/mutex.rs.html index d3c2900e..50c48536 100644 --- a/ch9-dev/src/os/sync/mutex.rs.html +++ b/ch9-dev/src/os/sync/mutex.rs.html @@ -1,9 +1,4 @@ -mutex.rs - source - -
1
+mutex.rs - source
1
 2
 3
 4
@@ -180,5 +175,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/sync/semaphore.rs.html b/ch9-dev/src/os/sync/semaphore.rs.html index c58f9aa7..ac7adb53 100644 --- a/ch9-dev/src/os/sync/semaphore.rs.html +++ b/ch9-dev/src/os/sync/semaphore.rs.html @@ -1,9 +1,4 @@ -semaphore.rs - source - -
1
+semaphore.rs - source
1
 2
 3
 4
@@ -94,5 +89,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/sync/up.rs.html b/ch9-dev/src/os/sync/up.rs.html index 2d55fd25..e6c94cb0 100644 --- a/ch9-dev/src/os/sync/up.rs.html +++ b/ch9-dev/src/os/sync/up.rs.html @@ -1,9 +1,4 @@ -up.rs - source - -
1
+up.rs - source
1
 2
 3
 4
@@ -284,5 +279,4 @@ impl<T> UPSafeCell<T> {
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/syscall/fs.rs.html b/ch9-dev/src/os/syscall/fs.rs.html index 85c7eab2..cdc43e57 100644 --- a/ch9-dev/src/os/syscall/fs.rs.html +++ b/ch9-dev/src/os/syscall/fs.rs.html @@ -1,9 +1,4 @@ -fs.rs - source - -
1
+fs.rs - source
1
 2
 3
 4
@@ -202,5 +197,4 @@
     new_fd as isize
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/syscall/gui.rs.html b/ch9-dev/src/os/syscall/gui.rs.html deleted file mode 100644 index 98e1fb56..00000000 --- a/ch9-dev/src/os/syscall/gui.rs.html +++ /dev/null @@ -1,134 +0,0 @@ -gui.rs - source - -
1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-
use alloc::{string::ToString, sync::Arc, vec::Vec};
-use embedded_graphics::{
-    prelude::{Point, Size},
-    primitives::arc,
-};
-
-use crate::{
-    fs::ROOT_INODE,
-    gui::{Button, Component, IconController, ImageComp, Panel, Terminal},
-    sync::UPIntrFreeCell,
-};
-
-use crate::board::{VIRTGPU_XRES, VIRTGPU_YRES};
-
-static DT: &[u8] = include_bytes!("../assert/desktop.bmp");
-
-lazy_static::lazy_static!(
-    pub static ref DESKTOP:UPIntrFreeCell<Arc<dyn Component>> = unsafe {
-        UPIntrFreeCell::new(Arc::new(Panel::new(Size::new(VIRTGPU_XRES, VIRTGPU_YRES), Point::new(0, 0))))
-    };
-    pub static ref PAD:UPIntrFreeCell<Option<Arc<Terminal>>> = unsafe {
-        UPIntrFreeCell::new(None)
-    };
-);
-
-pub fn create_desktop() -> isize {
-    let mut p: Arc<dyn Component + 'static> =
-        Arc::new(Panel::new(Size::new(VIRTGPU_XRES, VIRTGPU_YRES), Point::new(0, 0)));
-    let image = ImageComp::new(Size::new(VIRTGPU_XRES, VIRTGPU_YRES), Point::new(0, 0), DT, Some(p.clone()));
-    let icon = IconController::new(ROOT_INODE.ls(), Some(p.clone()));
-    p.add(Arc::new(image));
-    p.add(Arc::new(icon));
-    let mut desktop = DESKTOP.exclusive_access();
-    *desktop = p;
-    desktop.paint();
-    drop(desktop);
-    create_terminal();
-    1
-}
-
-pub fn create_terminal() {
-    let desktop = DESKTOP.exclusive_access();
-    let arc_t = Arc::new(Terminal::new(
-        Size::new(400, 400),
-        Point::new(200, 100),
-        Some(desktop.clone()),
-        Some("demo.txt".to_string()),
-        "".to_string(),
-    ));
-    let text = Panel::new(Size::new(400, 400), Point::new(200, 100));
-    let button = Button::new(
-        Size::new(20, 20),
-        Point::new(370, 10),
-        Some(arc_t.clone()),
-        "X".to_string(),
-    );
-    arc_t.add(Arc::new(text));
-    arc_t.add(Arc::new(button));
-    arc_t.paint();
-    desktop.add(arc_t.clone());
-    let mut pad = PAD.exclusive_access();
-    *pad = Some(arc_t);
-}
-
-
- \ No newline at end of file diff --git a/ch9-dev/src/os/syscall/mod.rs.html b/ch9-dev/src/os/syscall/mod.rs.html index 4970093a..af9455e6 100644 --- a/ch9-dev/src/os/syscall/mod.rs.html +++ b/ch9-dev/src/os/syscall/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -73,48 +68,6 @@
 68
 69
 70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
 
const SYSCALL_DUP: usize = 24;
 const SYSCALL_OPEN: usize = 56;
 const SYSCALL_CLOSE: usize = 57;
@@ -142,59 +95,17 @@
 const SYSCALL_CONDVAR_CREATE: usize = 1030;
 const SYSCALL_CONDVAR_SIGNAL: usize = 1031;
 const SYSCALL_CONDVAR_WAIT: usize = 1032;
-const SYSCALL_CREATE_DESKTOP: usize = 2000;
+
 mod fs;
-#[cfg(feature = "board_qemu")]
-mod gui;
 mod process;
 mod sync;
 mod thread;
-#[cfg(feature = "board_qemu")]
-pub use self::gui::create_desktop;
-use fs::*;
 
-#[cfg(feature = "board_qemu")]
-pub use gui::PAD;
+use fs::*;
 use process::*;
 use sync::*;
 use thread::*;
 
-#[cfg(feature = "board_qemu")]
-pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize {
-    match syscall_id {
-        SYSCALL_DUP => sys_dup(args[0]),
-        SYSCALL_OPEN => sys_open(args[0] as *const u8, args[1] as u32),
-        SYSCALL_CLOSE => sys_close(args[0]),
-        SYSCALL_PIPE => sys_pipe(args[0] as *mut usize),
-        SYSCALL_READ => sys_read(args[0], args[1] as *const u8, args[2]),
-        SYSCALL_WRITE => sys_write(args[0], args[1] as *const u8, args[2]),
-        SYSCALL_EXIT => sys_exit(args[0] as i32),
-        SYSCALL_SLEEP => sys_sleep(args[0]),
-        SYSCALL_YIELD => sys_yield(),
-        SYSCALL_KILL => sys_kill(args[0], args[1] as u32),
-        SYSCALL_GET_TIME => sys_get_time(),
-        SYSCALL_GETPID => sys_getpid(),
-        SYSCALL_FORK => sys_fork(),
-        SYSCALL_EXEC => sys_exec(args[0] as *const u8, args[1] as *const usize),
-        SYSCALL_WAITPID => sys_waitpid(args[0] as isize, args[1] as *mut i32),
-        SYSCALL_THREAD_CREATE => sys_thread_create(args[0], args[1]),
-        SYSCALL_GETTID => sys_gettid(),
-        SYSCALL_WAITTID => sys_waittid(args[0]) as isize,
-        SYSCALL_MUTEX_CREATE => sys_mutex_create(args[0] == 1),
-        SYSCALL_MUTEX_LOCK => sys_mutex_lock(args[0]),
-        SYSCALL_MUTEX_UNLOCK => sys_mutex_unlock(args[0]),
-        SYSCALL_SEMAPHORE_CREATE => sys_semaphore_create(args[0]),
-        SYSCALL_SEMAPHORE_UP => sys_semaphore_up(args[0]),
-        SYSCALL_SEMAPHORE_DOWN => sys_semaphore_down(args[0]),
-        SYSCALL_CONDVAR_CREATE => sys_condvar_create(args[0]),
-        SYSCALL_CONDVAR_SIGNAL => sys_condvar_signal(args[0]),
-        SYSCALL_CONDVAR_WAIT => sys_condvar_wait(args[0], args[1]),
-        SYSCALL_CREATE_DESKTOP => create_desktop(),
-        _ => panic!("Unsupported syscall_id: {}", syscall_id),
-    }
-}
-
-#[cfg(feature = "board_k210")]
 pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize {
     match syscall_id {
         SYSCALL_DUP => sys_dup(args[0]),
@@ -228,5 +139,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/syscall/process.rs.html b/ch9-dev/src/os/syscall/process.rs.html index 759da32e..651bbe77 100644 --- a/ch9-dev/src/os/syscall/process.rs.html +++ b/ch9-dev/src/os/syscall/process.rs.html @@ -1,9 +1,4 @@ -process.rs - source - -
1
+process.rs - source
1
 2
 3
 4
@@ -238,5 +233,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/syscall/sync.rs.html b/ch9-dev/src/os/syscall/sync.rs.html index 47381b86..ddaef287 100644 --- a/ch9-dev/src/os/syscall/sync.rs.html +++ b/ch9-dev/src/os/syscall/sync.rs.html @@ -1,9 +1,4 @@ -sync.rs - source - -
1
+sync.rs - source
1
 2
 3
 4
@@ -272,5 +267,4 @@
     0
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/syscall/thread.rs.html b/ch9-dev/src/os/syscall/thread.rs.html index 452fffaa..149974da 100644 --- a/ch9-dev/src/os/syscall/thread.rs.html +++ b/ch9-dev/src/os/syscall/thread.rs.html @@ -1,9 +1,4 @@ -thread.rs - source - -
1
+thread.rs - source
1
 2
 3
 4
@@ -174,5 +169,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/context.rs.html b/ch9-dev/src/os/task/context.rs.html index d9313a1d..42740875 100644 --- a/ch9-dev/src/os/task/context.rs.html +++ b/ch9-dev/src/os/task/context.rs.html @@ -1,9 +1,4 @@ -context.rs - source - -
1
+context.rs - source
1
 2
 3
 4
@@ -54,5 +49,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/id.rs.html b/ch9-dev/src/os/task/id.rs.html index c26504d7..3f101e3b 100644 --- a/ch9-dev/src/os/task/id.rs.html +++ b/ch9-dev/src/os/task/id.rs.html @@ -1,9 +1,4 @@ -id.rs - source - -
1
+id.rs - source
1
 2
 3
 4
@@ -454,5 +449,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/manager.rs.html b/ch9-dev/src/os/task/manager.rs.html index 8b3e9177..64714057 100644 --- a/ch9-dev/src/os/task/manager.rs.html +++ b/ch9-dev/src/os/task/manager.rs.html @@ -1,9 +1,4 @@ -manager.rs - source - -
1
+manager.rs - source
1
 2
 3
 4
@@ -114,5 +109,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/mod.rs.html b/ch9-dev/src/os/task/mod.rs.html index 0a5b8452..2a81c710 100644 --- a/ch9-dev/src/os/task/mod.rs.html +++ b/ch9-dev/src/os/task/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -161,8 +156,6 @@
 156
 157
 158
-159
-160
 
mod context;
 mod id;
 mod manager;
@@ -221,7 +214,6 @@
     let task_cx_ptr = block_current_task();
     schedule(task_cx_ptr);
 }
-#[cfg(feature = "board_qemu")]
 use crate::board::QEMUExit;
 
 pub fn exit_current_and_run_next(exit_code: i32) {
@@ -240,7 +232,6 @@
     // the process should terminate at once
     if tid == 0 {
         let pid = process.getpid();
-        #[cfg(feature = "board_qemu")]
         if pid == IDLE_PID {
             println!(
                 "[kernel] Idle process exit with exit_code {} ...",
@@ -324,5 +315,4 @@
     process_inner.signals |= signal;
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/process.rs.html b/ch9-dev/src/os/task/process.rs.html index 5df816f5..eb53f98d 100644 --- a/ch9-dev/src/os/task/process.rs.html +++ b/ch9-dev/src/os/task/process.rs.html @@ -1,9 +1,4 @@ -process.rs - source - -
1
+process.rs - source
1
 2
 3
 4
@@ -520,5 +515,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/processor.rs.html b/ch9-dev/src/os/task/processor.rs.html index e2a174c3..534e9751 100644 --- a/ch9-dev/src/os/task/processor.rs.html +++ b/ch9-dev/src/os/task/processor.rs.html @@ -1,9 +1,4 @@ -processor.rs - source - -
1
+processor.rs - source
1
 2
 3
 4
@@ -210,5 +205,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/signal.rs.html b/ch9-dev/src/os/task/signal.rs.html index a3cfd8d8..3c565841 100644 --- a/ch9-dev/src/os/task/signal.rs.html +++ b/ch9-dev/src/os/task/signal.rs.html @@ -1,9 +1,4 @@ -signal.rs - source - -
1
+signal.rs - source
1
 2
 3
 4
@@ -62,5 +57,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/switch.rs.html b/ch9-dev/src/os/task/switch.rs.html index 18b475c6..c4cb829b 100644 --- a/ch9-dev/src/os/task/switch.rs.html +++ b/ch9-dev/src/os/task/switch.rs.html @@ -1,9 +1,4 @@ -switch.rs - source - -
1
+switch.rs - source
1
 2
 3
 4
@@ -20,5 +15,4 @@
     pub fn __switch(current_task_cx_ptr: *mut TaskContext, next_task_cx_ptr: *const TaskContext);
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/task/task.rs.html b/ch9-dev/src/os/task/task.rs.html index 40e345cf..0111ca7d 100644 --- a/ch9-dev/src/os/task/task.rs.html +++ b/ch9-dev/src/os/task/task.rs.html @@ -1,9 +1,4 @@ -task.rs - source - -
1
+task.rs - source
1
 2
 3
 4
@@ -164,5 +159,4 @@
     Blocking,
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/timer.rs.html b/ch9-dev/src/os/timer.rs.html index d8f4a044..acec2b8b 100644 --- a/ch9-dev/src/os/timer.rs.html +++ b/ch9-dev/src/os/timer.rs.html @@ -1,9 +1,4 @@ -timer.rs - source - -
1
+timer.rs - source
1
 2
 3
 4
@@ -76,6 +71,7 @@
 71
 72
 73
+74
 
use core::cmp::Ordering;
 
 use crate::config::CLOCK_FREQ;
@@ -139,16 +135,16 @@
 
 pub fn check_timer() {
     let current_ms = get_time_ms();
-    let mut timers = TIMERS.exclusive_access();
-    while let Some(timer) = timers.peek() {
-        if timer.expire_ms <= current_ms {
-            add_task(Arc::clone(&timer.task));
-            timers.pop();
-        } else {
-            break;
+    TIMERS.exclusive_session(|timers| {
+        while let Some(timer) = timers.peek() {
+            if timer.expire_ms <= current_ms {
+                add_task(Arc::clone(&timer.task));
+                timers.pop();
+            } else {
+                break;
+            }
         }
-    }
+    });
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/trap/context.rs.html b/ch9-dev/src/os/trap/context.rs.html index abb9e647..72ae4b87 100644 --- a/ch9-dev/src/os/trap/context.rs.html +++ b/ch9-dev/src/os/trap/context.rs.html @@ -1,9 +1,4 @@ -context.rs - source - -
1
+context.rs - source
1
 2
 3
 4
@@ -82,5 +77,4 @@
     }
 }
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/src/os/trap/mod.rs.html b/ch9-dev/src/os/trap/mod.rs.html index d29ebdb7..061065e3 100644 --- a/ch9-dev/src/os/trap/mod.rs.html +++ b/ch9-dev/src/os/trap/mod.rs.html @@ -1,9 +1,4 @@ -mod.rs - source - -
1
+mod.rs - source
1
 2
 3
 4
@@ -235,7 +230,7 @@
     set_kernel_trap_entry();
     let scause = scause::read();
     let stval = stval::read();
-    //println!("into {:?}", scause.cause());
+    // println!("into {:?}", scause.cause());
     match scause.cause() {
         Trap::Exception(Exception::UserEnvCall) => {
             // jump to next instruction anyway
@@ -342,5 +337,4 @@
 
 pub use context::TrapContext;
 
-
- \ No newline at end of file +
\ No newline at end of file diff --git a/ch9-dev/storage.js b/ch9-dev/storage.js index c6d070de..07f8962f 100644 --- a/ch9-dev/storage.js +++ b/ch9-dev/storage.js @@ -1 +1 @@ -var darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");var settingsDataset=(function(){var settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}var dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){var current=getCurrentValue(settingName);if(current!==null){return current}if(settingsDataset!==null){var def=settingsDataset[settingName.replace(/-/g,'_')];if(def!==undefined){return def}}return null}var localStoredTheme=getSettingValue("theme");var savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){var length=arr.length;var i;if(reversed){for(i=length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(i=0;i=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchToSavedTheme()}window.addEventListener("pageshow",function(ev){if(ev.persisted){setTimeout(switchToSavedTheme,0)}}) \ No newline at end of file +"use strict";const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");window.RUSTDOC_MOBILE_BREAKPOINT=701;const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}const dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current!==null){return current}if(settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return null}const localStoredTheme=getSettingValue("theme");const savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){if(reversed){const length=arr.length;for(let i=length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(const elem of arr){if(func(elem)){return true}}}}return false}function onEachLazy(lazyArray,func,reversed){return onEach(Array.prototype.slice.call(lazyArray),func,reversed)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}function switchTheme(styleElem,mainStyleElem,newTheme,saveTheme){const newHref=mainStyleElem.href.replace(/\/rustdoc([^/]*)\.css/,"/"+newTheme+"$1"+".css");if(saveTheme){updateLocalStorage("theme",newTheme)}if(styleElem.href===newHref){return}let found=false;if(savedHref.length===0){onEachLazy(document.getElementsByTagName("link"),el=>{savedHref.push(el.href)})}onEach(savedHref,el=>{if(el===newHref){found=true;return true}});if(found){styleElem.href=newHref}}function useSystemTheme(value){if(value===undefined){value=true}updateLocalStorage("use-system-theme",value);const toggle=document.getElementById("use-system-theme");if(toggle&&toggle instanceof HTMLInputElement){toggle.checked=value}}const updateSystemTheme=(function(){if(!window.matchMedia){return()=>{const cssTheme=getComputedStyle(document.documentElement).getPropertyValue("content");switchTheme(window.currentTheme,window.mainTheme,JSON.parse(cssTheme)||"light",true)}}const mql=window.matchMedia("(prefers-color-scheme: dark)");function handlePreferenceChange(mql){const use=theme=>{switchTheme(window.currentTheme,window.mainTheme,theme,true)};if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";if(mql.matches){use(darkTheme)}else{use(lightTheme)}}else{use(getSettingValue("theme"))}}mql.addListener(handlePreferenceChange);return()=>{handlePreferenceChange(mql)}})();function switchToSavedTheme(){switchTheme(window.currentTheme,window.mainTheme,getSettingValue("theme")||"light",false)}if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchToSavedTheme()}if(getSettingValue("source-sidebar-show")==="true"){addClass(document.documentElement,"source-sidebar-expanded")}window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(switchToSavedTheme,0)}}) \ No newline at end of file