From 0ed4c19c5eed9a430147dbd396941b88b800b9e3 Mon Sep 17 00:00:00 2001 From: morris Date: Wed, 30 Oct 2024 15:25:16 +0800 Subject: [PATCH] feat(lcd): support color conversion for mipi dsi driver --- components/esp_hw_support/dma/Kconfig.dma | 11 + components/esp_hw_support/dma/dw_gdma.c | 2 +- components/esp_hw_support/dma/gdma_link.c | 1 + .../test_apps/dma/main/test_dw_gdma.c | 1 + components/esp_lcd/Kconfig | 5 +- components/esp_lcd/dsi/esp_lcd_mipi_dsi_bus.c | 2 +- components/esp_lcd/dsi/esp_lcd_panel_dpi.c | 49 ++++- .../esp_lcd/dsi/include/esp_lcd_mipi_dsi.h | 16 ++ components/esp_lcd/include/esp_lcd_types.h | 16 ++ .../interface/esp_lcd_panel_io_interface.h | 2 +- components/esp_lcd/linker.lf | 5 + components/esp_lcd/rgb/esp_lcd_panel_rgb.c | 3 +- .../test_apps/mipi_dsi_lcd/CMakeLists.txt | 3 + .../mipi_dsi_lcd/main/idf_component.yml | 2 +- .../mipi_dsi_lcd/main/test_mipi_dsi_board.h | 20 +- .../mipi_dsi_lcd/main/test_mipi_dsi_iram.c | 35 ++-- .../mipi_dsi_lcd/main/test_mipi_dsi_panel.c | 197 +++++++++++++----- .../mipi_dsi_lcd/resources/README.md | 13 ++ .../mipi_dsi_lcd/resources/pictures/hello.png | Bin 0 -> 16340 bytes .../mipi_dsi_lcd/resources/pictures/hello.yuv | 1 + .../mipi_dsi_lcd/resources/pictures/world.png | Bin 0 -> 15474 bytes .../mipi_dsi_lcd/resources/pictures/world.yuv | 1 + .../hal/esp32p4/include/hal/mipi_dsi_brg_ll.h | 46 +++- .../esp32p4/include/hal/mipi_dsi_host_ll.h | 9 +- components/hal/include/hal/color_types.h | 10 + components/hal/include/hal/lcd_types.h | 23 +- components/hal/include/hal/mipi_dsi_hal.h | 2 +- components/hal/mipi_dsi_hal.c | 2 +- .../api-reference/peripherals/lcd/dsi_lcd.rst | 4 +- .../api-reference/peripherals/lcd/dsi_lcd.rst | 4 +- .../components/dsi_init/example_dsi_init.c | 2 +- .../mipi_dsi/main/mipi_dsi_lcd_example_main.c | 2 +- 32 files changed, 376 insertions(+), 113 deletions(-) create mode 100644 components/esp_lcd/test_apps/mipi_dsi_lcd/resources/README.md create mode 100644 components/esp_lcd/test_apps/mipi_dsi_lcd/resources/pictures/hello.png create mode 100644 components/esp_lcd/test_apps/mipi_dsi_lcd/resources/pictures/hello.yuv create mode 100644 components/esp_lcd/test_apps/mipi_dsi_lcd/resources/pictures/world.png create mode 100644 components/esp_lcd/test_apps/mipi_dsi_lcd/resources/pictures/world.yuv diff --git a/components/esp_hw_support/dma/Kconfig.dma b/components/esp_hw_support/dma/Kconfig.dma index fa43dd6ea8..5620926e3e 100644 --- a/components/esp_hw_support/dma/Kconfig.dma +++ b/components/esp_hw_support/dma/Kconfig.dma @@ -29,6 +29,7 @@ menu "DW_GDMA Configurations" config DW_GDMA_CTRL_FUNC_IN_IRAM bool default n + select DW_GDMA_OBJ_DRAM_SAFE help Place DW_GDMA control functions (e.g. dw_gdma_channel_continue) into IRAM, so that these functions can be IRAM-safe and able to be called in the other IRAM interrupt context. @@ -36,6 +37,7 @@ menu "DW_GDMA Configurations" config DW_GDMA_SETTER_FUNC_IN_IRAM bool default n + select DW_GDMA_OBJ_DRAM_SAFE help Place DW_GDMA setter functions (e.g. dw_gdma_channel_set_block_markers) into IRAM, so that these functions can be IRAM-safe and able to be called in the other IRAM interrupt context. @@ -43,6 +45,7 @@ menu "DW_GDMA Configurations" config DW_GDMA_GETTER_FUNC_IN_IRAM bool default n + select DW_GDMA_OBJ_DRAM_SAFE help Place DW_GDMA getter functions (e.g. dw_gdma_link_list_get_item) into IRAM, so that these functions can be IRAM-safe and able to be called in the other IRAM interrupt context. @@ -50,11 +53,19 @@ menu "DW_GDMA Configurations" config DW_GDMA_ISR_IRAM_SAFE bool default n + select DW_GDMA_OBJ_DRAM_SAFE help This will ensure the DW_GDMA interrupt handler is IRAM-Safe, allow to avoid flash cache misses, and also be able to run whilst the cache is disabled. (e.g. SPI Flash write). + config DW_GDMA_OBJ_DRAM_SAFE + bool + default n + help + This will ensure the DW_GDMA object is DRAM-Safe, allow to avoid external memory + cache misses, and also be accessible whilst the cache is disabled. + config DW_GDMA_ENABLE_DEBUG_LOG bool "Enable debug log" default n diff --git a/components/esp_hw_support/dma/dw_gdma.c b/components/esp_hw_support/dma/dw_gdma.c index f76f1245eb..fc4aaf4078 100644 --- a/components/esp_hw_support/dma/dw_gdma.c +++ b/components/esp_hw_support/dma/dw_gdma.c @@ -48,7 +48,7 @@ static const char *TAG = "dw-gdma"; #define DW_GDMA_GET_CACHE_ADDRESS(nc_addr) (nc_addr) #endif -#if CONFIG_DW_GDMA_ISR_IRAM_SAFE || CONFIG_DW_GDMA_CTRL_FUNC_IN_IRAM || DW_GDMA_SETTER_FUNC_IN_IRAM +#if CONFIG_DW_GDMA_OBJ_DRAM_SAFE #define DW_GDMA_MEM_ALLOC_CAPS (MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT) #else #define DW_GDMA_MEM_ALLOC_CAPS MALLOC_CAP_DEFAULT diff --git a/components/esp_hw_support/dma/gdma_link.c b/components/esp_hw_support/dma/gdma_link.c index ae9d70326f..45923f57a9 100644 --- a/components/esp_hw_support/dma/gdma_link.c +++ b/components/esp_hw_support/dma/gdma_link.c @@ -13,6 +13,7 @@ #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "soc/soc_caps.h" +#include "soc/ext_mem_defs.h" #include "esp_log.h" #include "esp_check.h" #include "esp_memory_utils.h" diff --git a/components/esp_hw_support/test_apps/dma/main/test_dw_gdma.c b/components/esp_hw_support/test_apps/dma/main/test_dw_gdma.c index eb927a04b6..45eeb11c32 100644 --- a/components/esp_hw_support/test_apps/dma/main/test_dw_gdma.c +++ b/components/esp_hw_support/test_apps/dma/main/test_dw_gdma.c @@ -380,6 +380,7 @@ static bool test_dw_gdma_list_mode_invalid_block_cb(dw_gdma_channel_handle_t cha udata->count++; // clear the destination buffer memset(udata->dst_buffer_addr, 0, udata->dst_buffer_size); + esp_cache_msync(udata->dst_buffer_addr, udata->dst_buffer_size, ESP_CACHE_MSYNC_FLAG_DIR_C2M); dw_gdma_block_markers_t markers = { .is_last = true, // mark the next block as the last one .is_valid = true, // mark the block as valid so that the DMA can continue the transfer diff --git a/components/esp_lcd/Kconfig b/components/esp_lcd/Kconfig index f6b7ba985a..c247c58637 100644 --- a/components/esp_lcd/Kconfig +++ b/components/esp_lcd/Kconfig @@ -30,10 +30,7 @@ menu "ESP-Driver:LCD Controller Configurations" config LCD_DSI_ISR_IRAM_SAFE bool "DSI LCD ISR IRAM-Safe" default n - select DW_GDMA_ISR_IRAM_SAFE - select DW_GDMA_CTRL_FUNC_IN_IRAM - select DW_GDMA_SETTER_FUNC_IN_IRAM - select DW_GDMA_GETTER_FUNC_IN_IRAM + select DW_GDMA_ISR_IRAM_SAFE # relies on DW_GDMA Full trans done interrupt help Ensure the LCD interrupt is IRAM-Safe by allowing the interrupt handler to be executable when the cache is disabled (e.g. SPI Flash write). diff --git a/components/esp_lcd/dsi/esp_lcd_mipi_dsi_bus.c b/components/esp_lcd/dsi/esp_lcd_mipi_dsi_bus.c index 49933e0160..8fa35c55dc 100644 --- a/components/esp_lcd/dsi/esp_lcd_mipi_dsi_bus.c +++ b/components/esp_lcd/dsi/esp_lcd_mipi_dsi_bus.c @@ -16,7 +16,7 @@ static const char *TAG = "lcd.dsi.bus"; #define MIPI_DSI_DEFAULT_TIMEOUT_CLOCK_FREQ_MHZ 10 // TxClkEsc frequency must be configured between 2 and 20 MHz -#define MIPI_DSI_DEFAULT_ESCAPE_CLOCK_FREQ_MHZ 10 +#define MIPI_DSI_DEFAULT_ESCAPE_CLOCK_FREQ_MHZ 18 esp_err_t esp_lcd_new_dsi_bus(const esp_lcd_dsi_bus_config_t *bus_config, esp_lcd_dsi_bus_handle_t *ret_bus) { diff --git a/components/esp_lcd/dsi/esp_lcd_panel_dpi.c b/components/esp_lcd/dsi/esp_lcd_panel_dpi.c index 537c02a454..5a74f4376c 100644 --- a/components/esp_lcd/dsi/esp_lcd_panel_dpi.c +++ b/components/esp_lcd/dsi/esp_lcd_panel_dpi.c @@ -20,6 +20,7 @@ #include "esp_private/esp_clk_tree_common.h" #include "hal/cache_hal.h" #include "hal/cache_ll.h" +#include "hal/color_hal.h" static const char *TAG = "lcd.dsi.dpi"; @@ -40,7 +41,8 @@ struct esp_lcd_dpi_panel_t { uint32_t v_pixels; // Vertical pixels size_t fb_size; // Frame buffer size, in bytes size_t bits_per_pixel; // Bits per pixel - lcd_color_rgb_pixel_format_t pixel_format; // RGB Pixel format + lcd_color_format_t in_color_format; // Input color format + lcd_color_format_t out_color_format; // Output color format dw_gdma_channel_handle_t dma_chan; // DMA channel dw_gdma_link_list_handle_t link_lists[DPI_PANEL_MAX_FB_NUM]; // DMA link list esp_async_fbcpy_handle_t fbcpy_handle; // Use DMA2D to do frame buffer copy @@ -175,6 +177,19 @@ esp_err_t esp_lcd_new_panel_dpi(esp_lcd_dsi_bus_handle_t bus, const esp_lcd_dpi_ bits_per_pixel = 24; break; } + lcd_color_format_t in_color_format = COLOR_TYPE_ID(COLOR_SPACE_RGB, panel_config->pixel_format); + // if user sets the in_color_format, it can override the pixel format setting + if (panel_config->in_color_format) { + color_space_pixel_format_t in_color_id = { + .color_type_id = panel_config->in_color_format, + }; + bits_per_pixel = color_hal_pixel_format_get_bit_depth(in_color_id); + in_color_format = panel_config->in_color_format; + } + lcd_color_format_t out_color_format = in_color_format; + if (panel_config->out_color_format) { + out_color_format = panel_config->out_color_format; + } ESP_RETURN_ON_FALSE(panel_config->video_timing.h_size * panel_config->video_timing.v_size * bits_per_pixel % 8 == 0, ESP_ERR_INVALID_ARG, TAG, "frame buffer size not aligned to byte boundary"); @@ -184,7 +199,8 @@ esp_err_t esp_lcd_new_panel_dpi(esp_lcd_dsi_bus_handle_t bus, const esp_lcd_dpi_ dpi_panel = heap_caps_calloc(1, sizeof(esp_lcd_dpi_panel_t), DSI_MEM_ALLOC_CAPS); ESP_GOTO_ON_FALSE(dpi_panel, ESP_ERR_NO_MEM, err, TAG, "no memory for DPI panel"); dpi_panel->virtual_channel = panel_config->virtual_channel; - dpi_panel->pixel_format = panel_config->pixel_format; + dpi_panel->in_color_format = in_color_format; + dpi_panel->out_color_format = out_color_format; dpi_panel->bus = bus; dpi_panel->num_fbs = num_fbs; @@ -253,7 +269,7 @@ esp_err_t esp_lcd_new_panel_dpi(esp_lcd_dsi_bus_handle_t bus, const esp_lcd_dpi_ ESP_GOTO_ON_ERROR(dpi_panel_create_dma_link(dpi_panel), err, TAG, "initialize DMA link failed"); mipi_dsi_host_ll_dpi_set_vcid(hal->host, panel_config->virtual_channel); - mipi_dsi_hal_host_dpi_set_color_coding(hal, panel_config->pixel_format, 0); + mipi_dsi_hal_host_dpi_set_color_coding(hal, out_color_format, 0); // these signals define how the DPI interface interacts with the controller mipi_dsi_host_ll_dpi_set_timing_polarity(hal->host, false, false, false, false, false); @@ -291,6 +307,8 @@ esp_err_t esp_lcd_new_panel_dpi(esp_lcd_dsi_bus_handle_t bus, const esp_lcd_dpi_ panel_config->video_timing.vsync_front_porch); mipi_dsi_brg_ll_set_num_pixel_bits(hal->bridge, panel_config->video_timing.h_size * panel_config->video_timing.v_size * bits_per_pixel); mipi_dsi_brg_ll_set_underrun_discard_count(hal->bridge, panel_config->video_timing.h_size); + // set input color space + mipi_dsi_brg_ll_set_input_color_space(hal->bridge, COLOR_SPACE_TYPE(in_color_format)); // use the DW_GDMA as the flow controller mipi_dsi_brg_ll_set_flow_controller(hal->bridge, MIPI_DSI_LL_FLOW_CONTROLLER_DMA); mipi_dsi_brg_ll_set_multi_block_number(hal->bridge, DPI_PANEL_MIN_DMA_NODES_PER_LINK); @@ -343,7 +361,7 @@ static esp_err_t dpi_panel_del(esp_lcd_panel_t *panel) esp_async_fbcpy_uninstall(dpi_panel->fbcpy_handle); } if (dpi_panel->draw_sem) { - vSemaphoreDelete(dpi_panel->draw_sem); + vSemaphoreDeleteWithCaps(dpi_panel->draw_sem); } if (dpi_panel->pm_lock) { esp_pm_lock_release(dpi_panel->pm_lock); @@ -515,9 +533,8 @@ static esp_err_t dpi_panel_draw_bitmap(esp_lcd_panel_t *panel, int x_start, int .copy_size_x = x_end - x_start, .copy_size_y = y_end - y_start, .pixel_format_unique_id = { - .color_space = COLOR_SPACE_RGB, - .pixel_format = dpi_panel->pixel_format, - }, + .color_type_id = dpi_panel->in_color_format, + } }; ESP_RETURN_ON_ERROR(esp_async_fbcpy(dpi_panel->fbcpy_handle, &fbcpy_trans_config, async_fbcpy_done_cb, dpi_panel), TAG, "async memcpy failed"); } @@ -525,6 +542,24 @@ static esp_err_t dpi_panel_draw_bitmap(esp_lcd_panel_t *panel, int x_start, int return ESP_OK; } +esp_err_t esp_lcd_dpi_panel_set_color_conversion(esp_lcd_panel_handle_t panel, const esp_lcd_color_conv_config_t *config) +{ + ESP_RETURN_ON_FALSE(panel, ESP_ERR_INVALID_ARG, TAG, "invalid argument"); + esp_lcd_dpi_panel_t *dpi_panel = __containerof(panel, esp_lcd_dpi_panel_t, base); + esp_lcd_dsi_bus_handle_t bus = dpi_panel->bus; + mipi_dsi_hal_context_t *hal = &bus->hal; + + if (dpi_panel->in_color_format == COLOR_TYPE_ID(COLOR_SPACE_YUV, COLOR_PIXEL_YUV422) + && COLOR_SPACE_TYPE(dpi_panel->out_color_format) == LCD_COLOR_SPACE_RGB) { + // YUV422->RGB + mipi_dsi_brg_ll_set_yuv_convert_std(hal->bridge, config->spec.yuv.conv_std); + mipi_dsi_brg_ll_set_yuv422_pack_order(hal->bridge, config->spec.yuv.yuv422.in_pack_order); + } else { + ESP_RETURN_ON_FALSE(false, ESP_ERR_NOT_SUPPORTED, TAG, "unsupported conversion mode"); + } + return ESP_OK; +} + esp_err_t esp_lcd_dpi_panel_set_pattern(esp_lcd_panel_handle_t panel, mipi_dsi_pattern_type_t pattern) { ESP_RETURN_ON_FALSE(panel, ESP_ERR_INVALID_ARG, TAG, "invalid argument"); diff --git a/components/esp_lcd/dsi/include/esp_lcd_mipi_dsi.h b/components/esp_lcd/dsi/include/esp_lcd_mipi_dsi.h index f9ec6537ba..497b4329bb 100644 --- a/components/esp_lcd/dsi/include/esp_lcd_mipi_dsi.h +++ b/components/esp_lcd/dsi/include/esp_lcd_mipi_dsi.h @@ -84,6 +84,10 @@ typedef struct { mipi_dsi_dpi_clock_source_t dpi_clk_src; /*!< MIPI DSI DPI clock source */ uint32_t dpi_clock_freq_mhz; /*!< DPI clock frequency in MHz */ lcd_color_rgb_pixel_format_t pixel_format; /*!< Pixel format that used by the MIPI LCD device */ + lcd_color_format_t in_color_format; /*!< Format of the input data (color space and pixel format), + which is the format stored in the frame buffer */ + lcd_color_format_t out_color_format; /*!< Format of the output data (color space and pixel format), + which is the format that the panel can accept */ uint8_t num_fbs; /*!< Number of screen-sized frame buffers that allocated by the driver By default (set to either 0 or 1) only one frame buffer will be created */ esp_lcd_video_timing_t video_timing; /*!< Video timing */ @@ -134,6 +138,18 @@ esp_err_t esp_lcd_dpi_panel_get_frame_buffer(esp_lcd_panel_handle_t dpi_panel, u */ esp_err_t esp_lcd_dpi_panel_set_pattern(esp_lcd_panel_handle_t dpi_panel, mipi_dsi_pattern_type_t pattern); +/** + * @brief Set color conversion configuration for DPI panel + * + * @param[in] dpi_panel MIPI DPI panel handle, returned from esp_lcd_new_panel_dpi() + * @param[in] config Color conversion configuration + * @return + * - ESP_OK: Set color conversion configuration successfully + * - ESP_ERR_INVALID_ARG: Set color conversion configuration failed because of invalid argument + * - ESP_FAIL: Set color conversion configuration failed because of other error + */ +esp_err_t esp_lcd_dpi_panel_set_color_conversion(esp_lcd_panel_handle_t dpi_panel, const esp_lcd_color_conv_config_t *config); + /** * @brief Type of LCD DPI panel event data */ diff --git a/components/esp_lcd/include/esp_lcd_types.h b/components/esp_lcd/include/esp_lcd_types.h index ca15370b93..2de4306ba2 100644 --- a/components/esp_lcd/include/esp_lcd_types.h +++ b/components/esp_lcd/include/esp_lcd_types.h @@ -75,6 +75,22 @@ typedef struct { esp_lcd_panel_io_color_trans_done_cb_t on_color_trans_done; /*!< Callback invoked when color data transfer has finished */ } esp_lcd_panel_io_callbacks_t; +/** + * @brief Configuration of LCD color conversion + */ +typedef struct { + lcd_color_range_t in_color_range; /*!< Color range of the input color */ + lcd_color_range_t out_color_range; /*!< Color range of the output color */ + union { + struct { + lcd_yuv_conv_std_t conv_std; /*!< YUV conversion standard: BT601, BT709 */ + struct { + lcd_yuv422_pack_order_t in_pack_order; /*!< YUV422 packing order of the input color */ + } yuv422; /*!< YUV422 specific */ + } yuv; /*!< YUV specific */ + } spec; /*!< Extra configuration for specific color conversion */ +} esp_lcd_color_conv_config_t; + #ifdef __cplusplus } #endif diff --git a/components/esp_lcd/interface/esp_lcd_panel_io_interface.h b/components/esp_lcd/interface/esp_lcd_panel_io_interface.h index 781eb1dd3f..0a4334f6fa 100644 --- a/components/esp_lcd/interface/esp_lcd_panel_io_interface.h +++ b/components/esp_lcd/interface/esp_lcd_panel_io_interface.h @@ -7,7 +7,7 @@ #include #include "esp_err.h" -#include "esp_lcd_panel_io.h" +#include "esp_lcd_types.h" #ifdef __cplusplus extern "C" { diff --git a/components/esp_lcd/linker.lf b/components/esp_lcd/linker.lf index 123a258a92..f66d088f22 100644 --- a/components/esp_lcd/linker.lf +++ b/components/esp_lcd/linker.lf @@ -5,6 +5,11 @@ entries: gdma: gdma_reset (noflash) gdma: gdma_start (noflash) gdma_link: gdma_link_get_head_addr (noflash) + if LCD_DSI_ISR_IRAM_SAFE = y: + dw_gdma: dw_gdma_link_list_get_item (noflash) + dw_gdma: dw_gdma_lli_set_block_markers (noflash) + dw_gdma: dw_gdma_channel_use_link_list (noflash) + dw_gdma: dw_gdma_channel_enable_ctrl (noflash) [mapping:esp_lcd_hal] archive: libhal.a diff --git a/components/esp_lcd/rgb/esp_lcd_panel_rgb.c b/components/esp_lcd/rgb/esp_lcd_panel_rgb.c index 0f859f656e..25cb52db28 100644 --- a/components/esp_lcd/rgb/esp_lcd_panel_rgb.c +++ b/components/esp_lcd/rgb/esp_lcd_panel_rgb.c @@ -490,8 +490,7 @@ esp_err_t esp_lcd_rgb_panel_set_yuv_conversion(esp_lcd_panel_handle_t panel, con if (config->src.color_space == LCD_COLOR_SPACE_YUV && config->dst.color_space == LCD_COLOR_SPACE_RGB) { // YUV->RGB lcd_ll_set_convert_mode_yuv_to_rgb(hal->dev, config->src.yuv_sample); - // Note, the RGB->YUV conversion only support RGB565 - rgb_panel->output_bits_per_pixel = 16; + rgb_panel->output_bits_per_pixel = rgb_panel->fb_bits_per_pixel; } else if (config->src.color_space == LCD_COLOR_SPACE_RGB && config->dst.color_space == LCD_COLOR_SPACE_YUV) { // RGB->YUV lcd_ll_set_convert_mode_rgb_to_yuv(hal->dev, config->dst.yuv_sample); rgb_panel->output_bits_per_pixel = bpp_yuv[config->dst.yuv_sample]; diff --git a/components/esp_lcd/test_apps/mipi_dsi_lcd/CMakeLists.txt b/components/esp_lcd/test_apps/mipi_dsi_lcd/CMakeLists.txt index 30d912b096..e895a0deed 100644 --- a/components/esp_lcd/test_apps/mipi_dsi_lcd/CMakeLists.txt +++ b/components/esp_lcd/test_apps/mipi_dsi_lcd/CMakeLists.txt @@ -7,6 +7,9 @@ set(COMPONENTS main) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(mipi_dsi_lcd_panel_test) +target_add_binary_data(mipi_dsi_lcd_panel_test.elf "resources/pictures/hello.yuv" BINARY) +target_add_binary_data(mipi_dsi_lcd_panel_test.elf "resources/pictures/world.yuv" BINARY) + if(CONFIG_COMPILER_DUMP_RTL_FILES) add_custom_target(check_test_app_sections ALL COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py diff --git a/components/esp_lcd/test_apps/mipi_dsi_lcd/main/idf_component.yml b/components/esp_lcd/test_apps/mipi_dsi_lcd/main/idf_component.yml index 27d4953b96..2187eb1048 100644 --- a/components/esp_lcd/test_apps/mipi_dsi_lcd/main/idf_component.yml +++ b/components/esp_lcd/test_apps/mipi_dsi_lcd/main/idf_component.yml @@ -1,2 +1,2 @@ dependencies: - esp_lcd_ili9881c: "~0.2.0" + esp_lcd_ek79007: "^1.0.0" diff --git a/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_board.h b/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_board.h index d8c60eecc1..069e436984 100644 --- a/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_board.h +++ b/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_board.h @@ -9,16 +9,16 @@ extern "C" { #endif -// Refresh Rate = 80000000/(40+140+40+800)/(4+16+16+1280) = 60Hz -#define MIPI_DSI_DPI_CLK_MHZ 80 -#define MIPI_DSI_LCD_H_RES 800 -#define MIPI_DSI_LCD_V_RES 1280 -#define MIPI_DSI_LCD_HSYNC 40 -#define MIPI_DSI_LCD_HBP 140 -#define MIPI_DSI_LCD_HFP 40 -#define MIPI_DSI_LCD_VSYNC 4 -#define MIPI_DSI_LCD_VBP 16 -#define MIPI_DSI_LCD_VFP 16 +// Refresh Rate = 48000000/(10+120+120+1024)/(1+20+10+600) = 60Hz +#define MIPI_DSI_DPI_CLK_MHZ 48 +#define MIPI_DSI_LCD_H_RES 1024 +#define MIPI_DSI_LCD_V_RES 600 +#define MIPI_DSI_LCD_HSYNC 10 +#define MIPI_DSI_LCD_HBP 120 +#define MIPI_DSI_LCD_HFP 120 +#define MIPI_DSI_LCD_VSYNC 1 +#define MIPI_DSI_LCD_VBP 20 +#define MIPI_DSI_LCD_VFP 20 #define TEST_MIPI_DSI_PHY_PWR_LDO_CHAN 3 #define TEST_MIPI_DSI_PHY_PWR_LDO_VOLTAGE_MV 2500 diff --git a/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_iram.c b/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_iram.c index 85cef15288..51299acb8c 100644 --- a/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_iram.c +++ b/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_iram.c @@ -16,7 +16,7 @@ #include "esp_random.h" #include "esp_attr.h" #include "test_mipi_dsi_board.h" -#include "esp_lcd_ili9881c.h" +#include "esp_lcd_ek79007.h" IRAM_ATTR static bool test_rgb_panel_count_in_callback(esp_lcd_panel_handle_t panel, esp_lcd_dpi_panel_event_data_t *edata, void *user_ctx) { @@ -32,12 +32,11 @@ static void IRAM_ATTR test_delay_post_cache_disable(void *args) #define TEST_IMG_SIZE (100 * 100 * sizeof(uint16_t)) -TEST_CASE("MIPI DSI draw bitmap (ILI9881C) IRAM Safe", "[mipi_dsi]") +TEST_CASE("MIPI DSI draw bitmap (EK79007) IRAM Safe", "[mipi_dsi]") { esp_lcd_dsi_bus_handle_t mipi_dsi_bus; esp_lcd_panel_io_handle_t mipi_dbi_io; esp_lcd_panel_handle_t mipi_dpi_panel; - esp_lcd_panel_handle_t ili9881c_ctrl_panel; test_bsp_enable_dsi_phy_power(); @@ -59,22 +58,11 @@ TEST_CASE("MIPI DSI draw bitmap (ILI9881C) IRAM Safe", "[mipi_dsi]") }; TEST_ESP_OK(esp_lcd_new_panel_io_dbi(mipi_dsi_bus, &dbi_config, &mipi_dbi_io)); - esp_lcd_panel_dev_config_t lcd_dev_config = { - .bits_per_pixel = 16, - .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, - .reset_gpio_num = -1, - }; - TEST_ESP_OK(esp_lcd_new_panel_ili9881c(mipi_dbi_io, &lcd_dev_config, &ili9881c_ctrl_panel)); - TEST_ESP_OK(esp_lcd_panel_reset(ili9881c_ctrl_panel)); - TEST_ESP_OK(esp_lcd_panel_init(ili9881c_ctrl_panel)); - // turn on display - TEST_ESP_OK(esp_lcd_panel_disp_on_off(ili9881c_ctrl_panel, true)); - esp_lcd_dpi_panel_config_t dpi_config = { .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, .dpi_clock_freq_mhz = MIPI_DSI_DPI_CLK_MHZ, .virtual_channel = 0, - .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB565, + .in_color_format = LCD_COLOR_FMT_RGB565, .video_timing = { .h_size = MIPI_DSI_LCD_H_RES, .v_size = MIPI_DSI_LCD_V_RES, @@ -86,8 +74,22 @@ TEST_CASE("MIPI DSI draw bitmap (ILI9881C) IRAM Safe", "[mipi_dsi]") .vsync_front_porch = MIPI_DSI_LCD_VFP, }, }; - TEST_ESP_OK(esp_lcd_new_panel_dpi(mipi_dsi_bus, &dpi_config, &mipi_dpi_panel)); + ek79007_vendor_config_t vendor_config = { + .mipi_config = { + .dsi_bus = mipi_dsi_bus, + .dpi_config = &dpi_config, + }, + }; + esp_lcd_panel_dev_config_t lcd_dev_config = { + .reset_gpio_num = -1, + .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, + .bits_per_pixel = 16, + .vendor_config = &vendor_config, + }; + TEST_ESP_OK(esp_lcd_new_panel_ek79007(mipi_dbi_io, &lcd_dev_config, &mipi_dpi_panel)); + TEST_ESP_OK(esp_lcd_panel_reset(mipi_dpi_panel)); TEST_ESP_OK(esp_lcd_panel_init(mipi_dpi_panel)); + uint32_t callback_calls = 0; esp_lcd_dpi_panel_event_callbacks_t cbs = { .on_refresh_done = test_rgb_panel_count_in_callback, @@ -110,7 +112,6 @@ TEST_CASE("MIPI DSI draw bitmap (ILI9881C) IRAM Safe", "[mipi_dsi]") TEST_ASSERT(callback_calls > 2); TEST_ESP_OK(esp_lcd_panel_del(mipi_dpi_panel)); - TEST_ESP_OK(esp_lcd_panel_del(ili9881c_ctrl_panel)); TEST_ESP_OK(esp_lcd_panel_io_del(mipi_dbi_io)); TEST_ESP_OK(esp_lcd_del_dsi_bus(mipi_dsi_bus)); free(img); diff --git a/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_panel.c b/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_panel.c index a31d26e01f..aa5579c0d3 100644 --- a/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_panel.c +++ b/components/esp_lcd/test_apps/mipi_dsi_lcd/main/test_mipi_dsi_panel.c @@ -15,14 +15,13 @@ #include "esp_random.h" #include "esp_attr.h" #include "test_mipi_dsi_board.h" -#include "esp_lcd_ili9881c.h" +#include "esp_lcd_ek79007.h" -TEST_CASE("MIPI DSI Pattern Generator (ILI9881C)", "[mipi_dsi]") +TEST_CASE("MIPI DSI Pattern Generator (EK79007)", "[mipi_dsi]") { esp_lcd_dsi_bus_handle_t mipi_dsi_bus; esp_lcd_panel_io_handle_t mipi_dbi_io; esp_lcd_panel_handle_t mipi_dpi_panel; - esp_lcd_panel_handle_t ili9881c_ctrl_panel; test_bsp_enable_dsi_phy_power(); @@ -41,22 +40,11 @@ TEST_CASE("MIPI DSI Pattern Generator (ILI9881C)", "[mipi_dsi]") }; TEST_ESP_OK(esp_lcd_new_panel_io_dbi(mipi_dsi_bus, &dbi_config, &mipi_dbi_io)); - esp_lcd_panel_dev_config_t lcd_dev_config = { - .bits_per_pixel = 16, - .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, - .reset_gpio_num = -1, - }; - TEST_ESP_OK(esp_lcd_new_panel_ili9881c(mipi_dbi_io, &lcd_dev_config, &ili9881c_ctrl_panel)); - TEST_ESP_OK(esp_lcd_panel_reset(ili9881c_ctrl_panel)); - TEST_ESP_OK(esp_lcd_panel_init(ili9881c_ctrl_panel)); - // turn on display - TEST_ESP_OK(esp_lcd_panel_disp_on_off(ili9881c_ctrl_panel, true)); - esp_lcd_dpi_panel_config_t dpi_config = { .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, .dpi_clock_freq_mhz = MIPI_DSI_DPI_CLK_MHZ, .virtual_channel = 0, - .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB565, + .in_color_format = LCD_COLOR_FMT_RGB888, .video_timing = { .h_size = MIPI_DSI_LCD_H_RES, .v_size = MIPI_DSI_LCD_V_RES, @@ -68,7 +56,20 @@ TEST_CASE("MIPI DSI Pattern Generator (ILI9881C)", "[mipi_dsi]") .vsync_front_porch = MIPI_DSI_LCD_VFP, }, }; - TEST_ESP_OK(esp_lcd_new_panel_dpi(mipi_dsi_bus, &dpi_config, &mipi_dpi_panel)); + ek79007_vendor_config_t vendor_config = { + .mipi_config = { + .dsi_bus = mipi_dsi_bus, + .dpi_config = &dpi_config, + }, + }; + esp_lcd_panel_dev_config_t lcd_dev_config = { + .reset_gpio_num = -1, + .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, + .bits_per_pixel = 24, + .vendor_config = &vendor_config, + }; + TEST_ESP_OK(esp_lcd_new_panel_ek79007(mipi_dbi_io, &lcd_dev_config, &mipi_dpi_panel)); + TEST_ESP_OK(esp_lcd_panel_reset(mipi_dpi_panel)); TEST_ESP_OK(esp_lcd_panel_init(mipi_dpi_panel)); TEST_ESP_OK(esp_lcd_dpi_panel_set_pattern(mipi_dpi_panel, MIPI_DSI_PATTERN_BAR_HORIZONTAL)); @@ -80,7 +81,6 @@ TEST_CASE("MIPI DSI Pattern Generator (ILI9881C)", "[mipi_dsi]") TEST_ESP_OK(esp_lcd_dpi_panel_set_pattern(mipi_dpi_panel, MIPI_DSI_PATTERN_NONE)); TEST_ESP_OK(esp_lcd_panel_del(mipi_dpi_panel)); - TEST_ESP_OK(esp_lcd_panel_del(ili9881c_ctrl_panel)); TEST_ESP_OK(esp_lcd_panel_io_del(mipi_dbi_io)); TEST_ESP_OK(esp_lcd_del_dsi_bus(mipi_dsi_bus)); @@ -89,12 +89,11 @@ TEST_CASE("MIPI DSI Pattern Generator (ILI9881C)", "[mipi_dsi]") #define TEST_IMG_SIZE (100 * 100 * sizeof(uint16_t)) -TEST_CASE("MIPI DSI draw bitmap (ILI9881C)", "[mipi_dsi]") +TEST_CASE("MIPI DSI draw bitmap (EK79007)", "[mipi_dsi]") { esp_lcd_dsi_bus_handle_t mipi_dsi_bus; esp_lcd_panel_io_handle_t mipi_dbi_io; esp_lcd_panel_handle_t mipi_dpi_panel; - esp_lcd_panel_handle_t ili9881c_ctrl_panel; test_bsp_enable_dsi_phy_power(); @@ -116,22 +115,11 @@ TEST_CASE("MIPI DSI draw bitmap (ILI9881C)", "[mipi_dsi]") }; TEST_ESP_OK(esp_lcd_new_panel_io_dbi(mipi_dsi_bus, &dbi_config, &mipi_dbi_io)); - esp_lcd_panel_dev_config_t lcd_dev_config = { - .bits_per_pixel = 16, - .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, - .reset_gpio_num = -1, - }; - TEST_ESP_OK(esp_lcd_new_panel_ili9881c(mipi_dbi_io, &lcd_dev_config, &ili9881c_ctrl_panel)); - TEST_ESP_OK(esp_lcd_panel_reset(ili9881c_ctrl_panel)); - TEST_ESP_OK(esp_lcd_panel_init(ili9881c_ctrl_panel)); - // turn on display - TEST_ESP_OK(esp_lcd_panel_disp_on_off(ili9881c_ctrl_panel, true)); - esp_lcd_dpi_panel_config_t dpi_config = { .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, .dpi_clock_freq_mhz = MIPI_DSI_DPI_CLK_MHZ, .virtual_channel = 0, - .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB565, + .in_color_format = LCD_COLOR_FMT_RGB565, .video_timing = { .h_size = MIPI_DSI_LCD_H_RES, .v_size = MIPI_DSI_LCD_V_RES, @@ -143,7 +131,20 @@ TEST_CASE("MIPI DSI draw bitmap (ILI9881C)", "[mipi_dsi]") .vsync_front_porch = MIPI_DSI_LCD_VFP, }, }; - TEST_ESP_OK(esp_lcd_new_panel_dpi(mipi_dsi_bus, &dpi_config, &mipi_dpi_panel)); + ek79007_vendor_config_t vendor_config = { + .mipi_config = { + .dsi_bus = mipi_dsi_bus, + .dpi_config = &dpi_config, + }, + }; + esp_lcd_panel_dev_config_t lcd_dev_config = { + .reset_gpio_num = -1, + .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, + .bits_per_pixel = 16, + .vendor_config = &vendor_config, + }; + TEST_ESP_OK(esp_lcd_new_panel_ek79007(mipi_dbi_io, &lcd_dev_config, &mipi_dpi_panel)); + TEST_ESP_OK(esp_lcd_panel_reset(mipi_dpi_panel)); TEST_ESP_OK(esp_lcd_panel_init(mipi_dpi_panel)); for (int i = 0; i < 100; i++) { @@ -156,7 +157,6 @@ TEST_CASE("MIPI DSI draw bitmap (ILI9881C)", "[mipi_dsi]") } TEST_ESP_OK(esp_lcd_panel_del(mipi_dpi_panel)); - TEST_ESP_OK(esp_lcd_panel_del(ili9881c_ctrl_panel)); TEST_ESP_OK(esp_lcd_panel_io_del(mipi_dbi_io)); TEST_ESP_OK(esp_lcd_del_dsi_bus(mipi_dsi_bus)); free(img); @@ -164,12 +164,11 @@ TEST_CASE("MIPI DSI draw bitmap (ILI9881C)", "[mipi_dsi]") test_bsp_disable_dsi_phy_power(); } -TEST_CASE("MIPI DSI with multiple frame buffers (ILI9881C)", "[mipi_dsi]") +TEST_CASE("MIPI DSI with multiple frame buffers (EK79007)", "[mipi_dsi]") { esp_lcd_dsi_bus_handle_t mipi_dsi_bus; esp_lcd_panel_io_handle_t mipi_dbi_io; esp_lcd_panel_handle_t mipi_dpi_panel; - esp_lcd_panel_handle_t ili9881c_ctrl_panel; test_bsp_enable_dsi_phy_power(); @@ -188,22 +187,11 @@ TEST_CASE("MIPI DSI with multiple frame buffers (ILI9881C)", "[mipi_dsi]") }; TEST_ESP_OK(esp_lcd_new_panel_io_dbi(mipi_dsi_bus, &dbi_config, &mipi_dbi_io)); - esp_lcd_panel_dev_config_t lcd_dev_config = { - .bits_per_pixel = 16, - .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, - .reset_gpio_num = -1, - }; - TEST_ESP_OK(esp_lcd_new_panel_ili9881c(mipi_dbi_io, &lcd_dev_config, &ili9881c_ctrl_panel)); - TEST_ESP_OK(esp_lcd_panel_reset(ili9881c_ctrl_panel)); - TEST_ESP_OK(esp_lcd_panel_init(ili9881c_ctrl_panel)); - // turn on display - TEST_ESP_OK(esp_lcd_panel_disp_on_off(ili9881c_ctrl_panel, true)); - esp_lcd_dpi_panel_config_t dpi_config = { .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, .dpi_clock_freq_mhz = MIPI_DSI_DPI_CLK_MHZ, .virtual_channel = 0, - .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB565, + .in_color_format = LCD_COLOR_FMT_RGB565, .num_fbs = 3, // the driver will allocate and maintain 3 frame buffers .video_timing = { .h_size = MIPI_DSI_LCD_H_RES, @@ -216,7 +204,21 @@ TEST_CASE("MIPI DSI with multiple frame buffers (ILI9881C)", "[mipi_dsi]") .vsync_front_porch = MIPI_DSI_LCD_VFP, }, }; - TEST_ESP_OK(esp_lcd_new_panel_dpi(mipi_dsi_bus, &dpi_config, &mipi_dpi_panel)); + + ek79007_vendor_config_t vendor_config = { + .mipi_config = { + .dsi_bus = mipi_dsi_bus, + .dpi_config = &dpi_config, + }, + }; + esp_lcd_panel_dev_config_t lcd_dev_config = { + .reset_gpio_num = -1, + .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, + .bits_per_pixel = 16, + .vendor_config = &vendor_config, + }; + TEST_ESP_OK(esp_lcd_new_panel_ek79007(mipi_dbi_io, &lcd_dev_config, &mipi_dpi_panel)); + TEST_ESP_OK(esp_lcd_panel_reset(mipi_dpi_panel)); TEST_ESP_OK(esp_lcd_panel_init(mipi_dpi_panel)); uint16_t *fbs[3]; @@ -236,9 +238,106 @@ TEST_CASE("MIPI DSI with multiple frame buffers (ILI9881C)", "[mipi_dsi]") } TEST_ESP_OK(esp_lcd_panel_del(mipi_dpi_panel)); - TEST_ESP_OK(esp_lcd_panel_del(ili9881c_ctrl_panel)); TEST_ESP_OK(esp_lcd_panel_io_del(mipi_dbi_io)); TEST_ESP_OK(esp_lcd_del_dsi_bus(mipi_dsi_bus)); test_bsp_disable_dsi_phy_power(); } + +TEST_CASE("MIPI DSI draw YUV422 (EK79007)", "[mipi_dsi]") +{ + esp_lcd_dsi_bus_handle_t mipi_dsi_bus; + esp_lcd_panel_io_handle_t mipi_dbi_io; + esp_lcd_panel_handle_t mipi_dpi_panel; + + test_bsp_enable_dsi_phy_power(); + + uint8_t *img = malloc(TEST_IMG_SIZE); + TEST_ASSERT_NOT_NULL(img); + + esp_lcd_dsi_bus_config_t bus_config = { + .bus_id = 0, + .num_data_lanes = 2, + .phy_clk_src = MIPI_DSI_PHY_CLK_SRC_DEFAULT, + .lane_bit_rate_mbps = 1000, // 1000 Mbps + }; + TEST_ESP_OK(esp_lcd_new_dsi_bus(&bus_config, &mipi_dsi_bus)); + + esp_lcd_dbi_io_config_t dbi_config = { + .virtual_channel = 0, + .lcd_cmd_bits = 8, + .lcd_param_bits = 8, + }; + TEST_ESP_OK(esp_lcd_new_panel_io_dbi(mipi_dsi_bus, &dbi_config, &mipi_dbi_io)); + + esp_lcd_dpi_panel_config_t dpi_config = { + .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, + .dpi_clock_freq_mhz = MIPI_DSI_DPI_CLK_MHZ, + .virtual_channel = 0, + + // YUV422 -> RGB888 + .in_color_format = LCD_COLOR_FMT_YUV422, + .out_color_format = LCD_COLOR_FMT_RGB888, + + .video_timing = { + .h_size = MIPI_DSI_LCD_H_RES, + .v_size = MIPI_DSI_LCD_V_RES, + .hsync_back_porch = MIPI_DSI_LCD_HBP, + .hsync_pulse_width = MIPI_DSI_LCD_HSYNC, + .hsync_front_porch = MIPI_DSI_LCD_HFP, + .vsync_back_porch = MIPI_DSI_LCD_VBP, + .vsync_pulse_width = MIPI_DSI_LCD_VSYNC, + .vsync_front_porch = MIPI_DSI_LCD_VFP, + }, + + .flags = { + .use_dma2d = true, + } + }; + ek79007_vendor_config_t vendor_config = { + .mipi_config = { + .dsi_bus = mipi_dsi_bus, + .dpi_config = &dpi_config, + }, + }; + esp_lcd_panel_dev_config_t lcd_dev_config = { + .reset_gpio_num = -1, + .rgb_ele_order = LCD_RGB_ELEMENT_ORDER_RGB, + .bits_per_pixel = 24, + .vendor_config = &vendor_config, + }; + TEST_ESP_OK(esp_lcd_new_panel_ek79007(mipi_dbi_io, &lcd_dev_config, &mipi_dpi_panel)); + + // Set color conversion configuration + esp_lcd_color_conv_config_t convert_config = { + .in_color_range = LCD_COLOR_RANGE_FULL, + .out_color_range = LCD_COLOR_RANGE_FULL, + .spec.yuv = { + .conv_std = LCD_YUV_CONV_STD_BT601, + .yuv422.in_pack_order = LCD_YUV422_PACK_ORDER_YUYV, + } + }; + TEST_ESP_OK(esp_lcd_dpi_panel_set_color_conversion(mipi_dpi_panel, &convert_config)); + + TEST_ESP_OK(esp_lcd_panel_reset(mipi_dpi_panel)); + TEST_ESP_OK(esp_lcd_panel_init(mipi_dpi_panel)); + + // YUV images are embedded in the firmware binary + extern const uint8_t image_hello_yuv_start[] asm("_binary_hello_yuv_start"); + extern const uint8_t image_world_yuv_start[] asm("_binary_world_yuv_start"); + + printf("Draw YUV images\r\n"); + for (int i = 0; i < 4; i++) { + TEST_ESP_OK(esp_lcd_panel_draw_bitmap(mipi_dpi_panel, 0, 0, 320, 320, image_hello_yuv_start)); + vTaskDelay(pdMS_TO_TICKS(1000)); + TEST_ESP_OK(esp_lcd_panel_draw_bitmap(mipi_dpi_panel, 0, 0, 320, 320, image_world_yuv_start)); + vTaskDelay(pdMS_TO_TICKS(1000)); + } + + TEST_ESP_OK(esp_lcd_panel_del(mipi_dpi_panel)); + TEST_ESP_OK(esp_lcd_panel_io_del(mipi_dbi_io)); + TEST_ESP_OK(esp_lcd_del_dsi_bus(mipi_dsi_bus)); + free(img); + + test_bsp_disable_dsi_phy_power(); +} diff --git a/components/esp_lcd/test_apps/mipi_dsi_lcd/resources/README.md b/components/esp_lcd/test_apps/mipi_dsi_lcd/resources/README.md new file mode 100644 index 0000000000..5822bbd773 --- /dev/null +++ b/components/esp_lcd/test_apps/mipi_dsi_lcd/resources/README.md @@ -0,0 +1,13 @@ +# How to generate the YUV image from the PNG image + +```bash +ffmpeg -i hello.png -pix_fmt yuyv422 hello.yuv +``` + +## Supported YUV422 packing order + +| NAME | NB_COMPONENTS | BITS_PER_PIXEL | BIT_DEPTHS | +|----------|----------------|----------------|------------| +| yuyv422 | 3 | 16 | 8-8-8 | +| yvyu422 | 3 | 16 | 8-8-8 | +| uyvy422 | 3 | 16 | 8-8-8 | diff --git a/components/esp_lcd/test_apps/mipi_dsi_lcd/resources/pictures/hello.png b/components/esp_lcd/test_apps/mipi_dsi_lcd/resources/pictures/hello.png new file mode 100644 index 0000000000000000000000000000000000000000..b1172c410a8ec10ab95e859df1a10c9a9b61a23f GIT binary patch literal 16340 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Į™¼J³—Øfžˆ…cz›md|‰s’i³i@i³iAi³i@jƐJ–Ŗ’S“©“U“©’U™«ŽRi³i?i“i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?išfs{t†¾sƒ¾rpbÉgofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfpfÉfqeÉfqfĒepfČbt^Ź]xVĢbg™»½C½œ¼B¾æ@ĀžÅ>əŹB»˜Ølƒ“‚v€ŗq¦iYi³iAi³i@j°…G™«—S’Ŗ“U“Ŗ˜T—¬‚Pi³i?i“i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?išfsts„Ą‚t†½xqeĒgofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfpfŹfohŹioeŹn_›¼Ą@ĄŸæA柾A¾ž¾B½¼AĮĀR˜Ŗƒt…½€ˆq’h²iAi³i@i²pBŠ«˜Rš¬›R™«˜S‡®nJi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?išfsut„Ąƒsƒ½‚rsĀdogĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖgq_ĢzSĮ°æ@æŸæ@æŸæ@æŸæ@æŸæ@Įžŗ\‚®tƒ¼‡v¹u q_j³i@i³i?oƃIŽ«ŽRެOn²iBi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?išfsts„Ąƒs‚½†szædogĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfogŹcnoɝHĮ§æ@æŸæ@æŸæ@æŸæ@æŸĄ@柭`…³‚t„¾ƒt€¼’l”ƤkKi³i?i³i?i³i?i³i?i“i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?išgsir€Ā…sƒ½„s¾speČfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖgofĖgdĄÅ?¾æ@æŸæ@æŸæ@æŸæ@æŸĮ@½ŸŸe„¶‚t„¾„s„½ƒrˆ¾œd¢“nÆiFi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?išgsir€Ā…sƒ½ƒs…½~qgÅfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖiqaĖ‚Uø±Į@¾Ÿæ@æŸæ@æŸæ@æŸæ@æŸĀA¼Ÿ•kƒøuæ~t†¾”] ²³FĮ”Ærvi³j@j³i@i“i@i³i?i³i?i³i?i²j@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?išgserąsƒ½ƒs„½rrĀeofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfniŹ_nwɬGĀ£¾AæŸæ@æŸæ@æŸæ@æŸæ@¾ŸĆBøŸ}sм–[”±ÆK¶„øD»¢¾AĀžÄF¶˜’˜iWi²kAi³i?i³i?i³i?i³i?i³i?j²j@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?išgscrąsƒ½ƒsƒ¾„s~æhofŹfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖhoaĖx\©·Į@æžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĄA½Ÿ«O²§øC¼¢Ć=ĜĀ?ĮžĄ@柾@ŝ»\š‡o°iCk²i@i³i?i³h@i“i?ŽwUi³i?i²i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i›grdryŃsƒ½ƒsƒ¾…sƒ¾rpfČeofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfohŹdokŹ£HÄ„Ą@¾Ÿæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸĘ<ƛĀ?ĄžæA¾Ÿæ@æŸæ@æŸæA¾žĀ@¾ž¢†ufi²kAi³i?i³i@i«rDŽg“izžmLi³j@i³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i²qA‚¦”P¦˜·bɉŪsŒ¬iHi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?q­‚H”Ÿ¦Y·‘ÉkŪ•Œdi³i?i³i?i³i?i³i?i³i?i³i?i²qA‚¦”P¦˜·bɉŪsŒ¬iHi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i™fueqtĒ€s„¾ƒsƒ¾ƒsƒ¾~qhÅeofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖgpdĖl`š¼¾@Įž¾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柾A¾ ¾AæŸæ@æŸæ@æŸæ@æŸæ@柾AæŸĘR¤ŽvŖiGk²i@i³i@i„xHŠdžho†ex¦iHi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?„”¬W¾ŽĻnį‚ė}ė€ė€ė€ė€ė€ė€r²iBi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i®„F¬•¾eχįvė€ė€ė€ė€ė€ė€ė—sbi³i?i³i?i³i?i³i?„”¬W¾ŽĻnį‚ė}ė€ė€ė€ė€ė€ė€s±iBi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?igmerwʂs„½ƒsƒ¾ƒs„½„rpĮgoeĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖfofĖcnmŹ™JĄØĀ@¾žæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾Ÿ½@Ɯ¢ˆrdi³j@i³i@i£yIc’j^l’}w^n®iCi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?½‰ėtė€ė€ė€ė€ė€ė€ė€ė€ėƒŲ{i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i£½Tė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ųi[i³i?i³i?i³i?i³i?½‰ėtė€ė€ė€ė€ė€ė€ė€ė€ėƒŲ{i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¤i_ertÅt„¾ƒsƒ¾ƒsƒ¾ƒs}æioeŹfofĖfofĖfofĖfofĖfofĖfofĖfogĖfpcĢl`˜½Į?Įž¾@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柾AĄæZš‰n°iBi³i@iœLŽ`’l`l”^’m‚™iNi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?؃ė{ė€ė€ė€ė€ė€ė€ė€ė€ė‰½ti³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iŲ[ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€½£iTi³i?i³i?i³i?i³i?؃ė{ė€ė€ė€ė€ė€ė€ė€ė€ė‰½ti³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¢ibfqjĒ{s…æƒsƒ¾ƒsƒ¾ƒs„½ppfČfofĖfofĖfofĖfofĖfofĖfofĖfofĖcnlŹ—JĮØĄ@¾Ÿæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾žĀC»š’—iWi³i@i›L‘`‘l`m“aŽlƒ˜iNi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i²rBė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėŽ mi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?r˜ėbė€ė€ė€ė€ė€ė€ė€ė€ė€ė€”ØiMi³i?i³i?i³i?i²rBė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėŽ”mi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i£hbfqkĒ{s…¾ƒsƒ¾ƒsƒ¾ƒsƒ¾|qjÅeogĖfofĖfofĖfofĖfofĖfofĖgpcĖma—½Į@æžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柾AŜ¶p€xi³i?i’ˆRœ^k`l˜e‰ij³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¬ŽHė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė”„fi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?’ėhė€ė€ė€ė€ė€ė€ė€ė€ė€ė€†®iGi³i?i³i?i³i?i¬Hė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė”†gi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i£hbgqfČys†æƒsƒ¾ƒsƒ¾ƒsƒ¾…rpĀfofĖfofĖfofĖfofĖfofĖfogŹcnlʘJĮØæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæAæžÄG°—o®iEi‘‰Rš_l_™lŠ‹nVi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i§©Oė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ē™l`i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?؍ėoė€ė€ė€ė€ė€ė€ė€ė€ė€čm³i@i³i?i³i?i³i?i§ØOė€ė€ė€ė€ė€ė€ė€ė€ė€ė€č™m`i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i£iagqgČrrĮ„sƒ½ƒsƒ¾ƒsƒ¾„s{æjoeŹgofĖfofĖfofĖfofĖhodĖl`™½Į@Ąžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾ŸĀ@ĄžŸj^iŠS™_k•cŽjz¢iIi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i”ÅVė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ĻŸiYi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ćėvė€ė€ė€ė€ė€ė€ė€ė€ė…Šyi³i?i³i?i³i?i³i?i”ÄVė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ŠŸiYi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¢hcgqgČqr€Ā„sƒ½ƒsƒ¾ƒsƒ¾ƒs„¾qpeČgofĖfofĖfofĖfoiŹaok˚JĄØĮ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@Āž»nyxŒ\•_l”p€ck±iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i›ą]ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€³„iRi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?߂ė}ė€ė€ė€ė€ė€ė€ė€ė€ėеri³i?i³i?i³i?i³i?iœß]ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€µ¤iRi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iØjVgrhĘrrĮ„sƒ½ƒsƒ¾ƒsƒ¾ƒs…½zqjĘeogĖfofĖfofĖjp_Ģx]£ø½@Āž¾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸĄR„|‹^“`l€•nPi³j@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?z–ėdė€ė€ė€ė€ė€ė€ė€ė€ė€ė€˜ŖiKi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i°yDė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėški³i?i³i?i³i?i³i?y–ėdė€ė€ė€ė€ė€ė€ė€ė€ė€ė€šŖiKi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¬lOgrjĘkr|ąsƒ½ƒsƒ¾ƒsƒ¾ƒsƒ¾ƒrrĮdogĖfofĖgnhŹ^nuÉØHÄ£Į@¾ŸĄ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæB½žŽnˆg„h†fmÆiBj³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?–ėkė€ė€ė€ė€ė€ė€ė€ė€ė€ė€|°iDi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i«•Jė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė•~ei³i?i³i?i³i?i³i?•‘ėjė€ė€ė€ė€ė€ė€ė€ė€ė€ė€~ÆiEi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i«kQfrjĘfqxʆsƒ½ƒsƒ¾ƒsƒ¾ƒsƒ¾†szæipeŹgogŹeraĢ}Y«µĮ@Ąž¾@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸ—]—o’ˆrWi²j@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?²‹ėqė€ė€ė€ė€ė€ė€ė€ė€ėā}i³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i„°Qė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ä›j^i³i?i³i?i³i?i³i?°‹ėqė€ė€ė€ė€ė€ė€ė€ė€ėä~j³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i«lPfrjĘeqyŇsƒ½ƒsƒ¾ƒsƒ¾ƒsƒ¾ƒsƒ¾rpeČgoeĖhk~Ä·CĆ æA¾Ÿæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柖efr©iFi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?Ķ…ėxė€ė€ė€ė€ė€ė€ė€ė€ė‡Ēwi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i ĢXė€ė€ė€ė€ė€ė€ė€ė€ė€ė€É iWi³i?i³i?i³i?i³i?̆ėxė€ė€ė€ė€ė€ė€ė€ė€ė†Éwi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iŖlRfrkĘbptĒ…sƒ½ƒsƒ¾ƒsƒ¾ƒsƒ¾ƒs†½{qiÅcoiĖ‹Qø®Ą@¾Ÿæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柗i†ns¬jDj³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³k@ę€ėė€ė€ė€ė€ė€ė€ė€ė€ėŒŖpi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?jšå_ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€®¦iPi³i?i³i?i³i?i³j@åė~ė€ė€ė€ė€ė€ė€ė€ė€ėŒ®pi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¬kNgskÅdpoÉs„æƒsƒ¾ƒsƒ¾ƒsƒ¾ƒs„¾sqĀjdŒĄ½AĄ æ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸœI¶™ƒ£iLk²iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i®ƒFė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė’ii³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?•ėeė€ė€ė€ė€ė€ė€ė€ė€ė€ė€‘«iIi³i?i³i?i³i?iƁEė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‘‘ji³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ftlĆdpoÉs„æƒsƒ¾ƒsƒ¾ƒsƒ¾ƒsƒ¾ƒq„½›HĦ¾@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸĄ@ĄŸĄ@ĄŸĄ@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柾@ɚŒšiVj²i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i©ŸMė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė—tbi³i?i³i?i±vCØ‰N­tHi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?n¬I«“Égֆąxč‚ā}Ł‹Är„„wRi³i?i³i?i³i?i³i?i³i?ėlė€ė€ė€ė€ė€ė€ė€ė€ė€ė€v±iCi³i?i³i?i³i?i©Lė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė—vci³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?x§–N“’Äi͉×tŅ‹Ēq“Ž[l³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ftlĆdpoÉs„æƒsƒ¾ƒsƒ¾ƒsƒ¾…u~¾“Uø¬æ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸĄ@ĮžĮ@ĄžĄ@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柾@Ɲ©}zmi²k@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i£»Tė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Łi[i³i?~ “W؃ė{ė€ė€ė€ė€Ų¬kv±iCi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?{”±Vāė}ė€ė€ė€ė€ė€ė€ė€ė€ė€ē°„kRi³i?i³i?i³i?i³i?øŠėsė€ė€ė€ė€ė€ė€ė€ė€ė‚Ż|i³i?i³i?i³i?i³i?i£øSė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Żœi\i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³nAš–Ķdė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ż“—gi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@ftlĆfpgÉws†æƒsƒ¾ƒsƒ¾„r…½{n˜»¼AĄŸĄ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柽AæŸĆAĄœ§I”›„Pv˜pQ€—K—š±AƜĀ@Ąž¾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæAæŸŗj„}i²kAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ižÖZė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¾¢iTu”¶Ué€ėė€ė€ė€ė€ė€ė€ė€ė€ć’–ii³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?o¤°Rč€ėė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‡Ćvi³i@i³i?i³i?i³i?Ō„ėzė€ė€ė€ė€ė€ė€ė€ė€ėˆĮui³i?i³i?i³i?i³i?ižŌZė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Į¢iUi³i?i³i?i³i?i³i?i³i?i³i?i³i@—“Żhė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€µ¤iSi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?dtkÄgocŹsr‡Įƒsƒ¾„r…½‚s…½„L¾„Į?æžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柼AĮŸÅA°}Ua–\YV”R[N“L\P“TZX”\Wh•ŒH­œĆ@Ą¾@æŸæ@æŸæ@æŸæ@æŸæA½žŹ`Ž€i²kAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?q˜źaė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¢¢ˆU߂ė}ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ź•«iJi³i?i³i?i³i?i³i?i³i?i³i?i³i?i®„F܃ė|ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€©iLi³i?i³i?i²oAé€ėė€ė€ė€ė€ė€ė€ė€ė€ė¦oi³i?i³i?i³i?i³i?o™é`ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¦§iNi³i?i³i?i³i?i³i?i³i?i³i?vĖ[ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėŒÆqi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i§}IvnmĮfpcĖsr‡Ąƒs„¾‚v~æ[«°Į>Ɲ¾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA½ŸÅC®›~Sc—N_D’F_I’K]M“N\L“I^H’EaE’TYc•ŠG¼œĆ@¾žæ@æŸæ@æŸæ@æŸæA½žŹVˆoÆjCi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?Œ’ėhė€ė€ė€ė€ė€ė€ė€ė€ė€ė€©Žęnė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€å˜tai³i?i³i?i³i?i³i?i³i?i³i?i³i?˜‘ęjė€ė€ė€ė€ė€ė€ė€ė€ė…Īy  ”Xхėyė€ė€ė€ė€×iZi³i?i³i?i­‰Hė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė“Šhi³i?i³i?i³i?i³i?‰“ėhė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Š­iHi³i?i³i?i³i?i³i?i³i?i­‡GŽ‚ė|ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€éÆiFi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i›ŽS€jmæepdĖqq…Ā„u€¾ˆežµ²CĀ”Į@¾Ÿæ@æŸæ@æŸæ@æŸæ@æŸæ@柾@¾Ÿ½A½Ÿ½A½Ÿ½A¾Ÿæ@æŸæ@æŸæ@æŸæ@æŸæ?ĄŸ™Pg—J`C’L\P“Q[P“K^H’H^J’N[P“Q[O“I_E’PR—Ą@æžæ@æŸæ@æŸæ@æŸæA¾žÅOؐwŖiHj³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?§ėoė€ė€ė€ė€ė€ė€ė€ė€ė€ė€é€ėė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‹°qi³i?i³i?i³i?i³i?i³i?i³i?iŖšKź€ėė€ė€ė€ė€ė€ė€ė€ė€¬¦jPi³i?{–ėdė€ė€ė€ė€ė˜rbi³i?i³i?i§„Nė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ź˜pai³i?i³i?i³i?i³i?„ėnė€ė€ė€ė€ė€ė€ė€ė€ė€źp²iAi³i?i³i?i³i?i³i?i³i?Š”ęfė€ė€ė€ė€ė€ė€ė€ė€ė€ź¶ Xo¬†Hքėzė€ė€ė€ė€Å”iVi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iŸ\ikĮfohŹjssʀn»ŖHĄ¤Ć?æžæ@æŸæ@æŸæ@æŸæ@æŸæ@柽@æŸĮ@ƝÅ@śÅ@śÄ@ÜĄ@¾Ÿæ@æŸæ@æŸæ@æŸĮD˜V^C“N[P“N]I“DaF’UY_”cXX•J_D’D_K’P[R“FY€”¹AĮž¾@æŸæ@æŸæ@æŸæA¾ŸĀH³—ƒ¢iNk²i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?Ƈėvė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėƒŲ{i³i?i³i?i³i?i³i?i³i?i³i?’‘éiė€ė€ė€ė€ė€ė€ė€ė€ė‹±qi³i?i³i?iœŻ\ė€ė€ė€ė€ė”‚fi³i?i³i?i¢ĄUė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ÕžiZi³i?i³i?i³i?i³i?Ąˆėuė€ė€ė€ė€ė€ė€ė€ė€ė„Õzi³i?i³i?i³i?i³i?i³i?i­‡Gåė~ė€ė€ė€ė€ė€ė€ė€ė€ē’‘ii³i?i³i?•ėeė€ė€ė€ė€é—tbi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i†­d€igĆbr_Ķcm}ʝS±«Ä?松@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĮžÅ@œøC®ž¤F¦œ¦F¦œ«E°æ@ƞĄ@æŸæ@æŸæ@æŸÅL_—C^R’N]J“G\W“iSy˜JŸš¤I“›Qu˜dYQ•D`G‘IXŽ”¼AĄæ@æŸæ@æŸæ@æŸæA¾ŸæB»ŸœiSk²iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?Ž‚ė|ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€w±iCi³i?i³i?i³i?i³i?i±wCćė~ė€ė€ė€ė€ė€ė€ė€ė€Ź jXi³i?i³i?ižÕZė€ė€ė€ė€ė‘’ji³i?i³i?iŪ\ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ŗ£iTi³i?i³i?i³i?i³i?ۃė|ė€ė€ė€ė€ė€ė€ė€ė€ė‰ŗti³i?i³i?i³i?i³i?i³i?r›Ü^ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€•«iJi³i?i³i?ižÓZė€ė€ė€ė€ėli³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i‚³hŠghĮllrʂU­³Ē=Ąœ¾Aæ æ@æŸæ@æŸæ@æŸæ@æŸæ@ĮžĆA¹®G™›Rk—VYZ”YYY”dUp–G°æ@æŸæ@æŸæ@æŸÄJl™D`I’H^L“eQ‘˜ŗ?ʞÄ@œĀ@ƝĒ?ĚÆHƒœ`X[•tK³™ĀAæžæ@æŸæ@æŸæ@æŸæA柾AĮ‘™iVk²iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i°xCė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėä~¤„wQt§ŸPē€ėė€ė€ė€ė€ė€ė€ė€ė€ė€ė€„®iFi³i?i³i?i³i?i³i?i ČWė€ė€ė€ė€ė€ė€ė€ė€ė€ē}ÆiDi³i?i³i?iœŽ\ė€ė€ė€ė€ė’Œhi³i?i³i?u—ėcė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ž©iLi³i?i³i?i³i?i±uCė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėžli³i?i³i?i³i?i³i?i³i?æˆėuė€ė€ė€ė€ė€ė€ė€ė€ė‰»ti³i?i³i?i³i?i¢æUė€ė€ė€ė€ėŠ·si³i?i³i?i³i?i³i?i³i?i³i?Ч‡Oi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?izĮo®W†²˜Pø«Į@Įž½Aæ æ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸĮ@¼ž³J„šW]H“H^K’M\L“L\L“K]L“?\p”“AĄžæ@æŸæ@æŸĮE›œbZP”UWx•µAĀž¾A½Ÿ¾A¾Ÿ¾@¾Ÿ½A½ŸĮ@ĀŗC©ŸĮ@Įž¾AæŸæ@æŸæ@æŸæ@æŸæ@柽@͘š“i[l±iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i«”Jė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€å”ˆfi³i?i³i?ŖŒėpė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ž¬iIi³i?i³i?i³i?i³i?Ÿėmė€ė€ė€ė€ė€ė€ė€ė€ėŒ®qi³i?i³i?i³i?jšé`ė€ė€ė€ė€ė–}di³i?i³i?’ėiė€ė€ė€ė€ė€ė€ė€ė€ė€ė€‚®iFi³i?i³i?i³i?i¬Iė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė”‚fi³i?i³i?i³i?i³i?iŖ™Kė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ü›q^i³i?i³i?i³i?i£½Tė€ė€ė€ė€ė…Īyi³i?i³i?i³i?i³i?i³i?t”»V뉻ti³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?izæoĄ@ĮžĄ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@Ąž»Hˆ›X\J“L\M“M\L“L\L“L\L“L\N“HZg”§CĀ¾@æŸæ@æŸæ@Āž®H—›©EĄšæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柽@Ģ™™“iZl±iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i„°Qė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€éŒ¬iHi³i?i³i?}–ėdė€ė€ė€ė€ė€ė€ė€ė€ė€ė€‹­iHi³i?i³i?i³i?i°{Dåė~ė€ė€ė€ė€ė€ė€ė€ė€å™sai³i?i³i?i³i?•ėeė€ė€ė€ė€ė™nai³i?i³i?¬Œėpė€ė€ė€ė€ė€ė€ė€ė€ė€ęk³i@i³i?i³i?i³i?i¦¬Pė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ęšk_i³i?i³i?i³i?i³i?y˜ćbė€ė€ė€ė€ė€ė€ė€ė€ė€ė€–ŖiJi³i?i³i?i³j@æˆėuė€ė€ė€ė€ė‚Ż|i³i?i³i?i³i?i³i?s¤¬Sćė~ė†Źwi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?izæoæ@ĄŸĄ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĀC³œhXN•K]L“L\M“M\L“L]K“K]K’L\N“G[f”§CĀ¾@æŸæ@æŸæ@ĄŸæ@æŸæ@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柽@Ģ™™“iZl±iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i ĢXė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėеri³i?i³i?i³i?m™ė`ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€‚®iFi³i?i³i?i³i?i¢¾Tė€ė€ė€ė€ė€ė€ė€ė€ė€ė€²„iRi³i?i³i?i³i?§ėoė€ė€ė€ė€ÕžiZi³i?i³i?Ȇėwė€ė€ė€ė€ė€ė€ė€ė€ė…Ķxi³i?i³i?i³i?i³i?i ČWė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ĶŸiXi³i?i³i?i³i?i³i?¼‰ėtė€ė€ė€ė€ė€ė€ė€ė€ėƒŲ{j³i@i³i?i³i?i©žMė€ė€ė€ė€ė€ė€ėä~i³i?i³i?i³i?€ ²Wåė~ė€ė€Ā”nWi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?izæoæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柽AĀž²Mh™L]K’L\N“N]J“G]W“sQ~—}Q~˜bW\•fOœ˜ĮA¾æ@æŸæ@æŸæ@æŸĄ@ĄŸĄ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柽@Ģ™™“iZl±iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?jšå_ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ā™s`i³i?i³i?i³i?j™é_ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€w±iCi³i?i³i?i³i?y–écė€ė€ė€ė€ė€ė€ė€ė€ė€źz°iDi³i?i³i?i³i?Š…ėyė€ė€ė€ė€¦§iNi³i?i³i@ćė~ė€ė€ė€ė€ė€ė€ė€ė€ė‹²ri³i?i³i?i³i?i³i?i›ć^ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€²„iRi³i?i³i?i³i?i°zDč€ėė€ė€ė€ė€ė€ė€ė€ė€ėški³i?i³i?i³i?iŸŠYė€ė€ė€ė€ė€ė€ė€ė€k³j@yŖ‹L¬×kė€ė€ė€ė€éŒÆqj³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?izæoæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@½ŸÅB±œjYK”L]L“P]J“NWs•œG®œ“CøžøBøž°D®±B¾žĀ@æžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柾B¾ž¼A̘™“iZl±iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?•ėeė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Æ¦iQi³i?i³i?i³i?r˜ėbė€ė€ė€ė€ė€ė€ė€ė€ėå~i³i@i³i?i³i?i³i?²‹ėrė€ė€ė€ė€ė€ė€ė€ė€ė†Źxi³i?i³i?i³i?i¬ŒHė€ė€ė€ė€ė€źy°iCi³i?iÆ}Dė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė–ki³i?i³i?i³i?i³i?}–ėdė€ė€ė€ė€ė€ė€ė€ė€ė€ė€–ŖiJi³i?i³i?i³i?i¤µRė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Žœk]i³i?i³i?i³i?i›ć^ė€ė€ė€ė€ė€ė€ė€ė€ęē~ė€ė€ė€ė€ė€ė€ė†Ėw‚®iFi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?izæoæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柾@ĮžµJ|šH^M“M\P“E\a”–G“›Ā@ŜĀ@ĀĀ@ĀÄ@ěĆ@Ąæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾ž½BæžĄ=Įž½Aʘ˜”iYl±iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ėlė€ė€ė€ė€ė€ė€ė€ė€ė€ė€€ÆiEi³i?i³i?i³i?•ėeė€ė€ė€ė€ė€ė€ė€ė€ė…Šyi³i?i³i?i³i?i²rBäė~ė€ė€ė€ė€ė€ė€ė€ė€ė™ki³i?i³i?i³i?iŸĶXė€ė€ė€ė€ėˆĀvi³i?i³i?iŖ˜Kė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė–{di³i?i³i?i³i?i³i?˜ėkė€ė€ė€ė€ė€ė€ė€ė€ė€ė€{°iDi³i?i³i?i³i?u˜ęaė€ė€ė€ė€ė€ė€ė€ė€ė€ė€°„iQi³i?i³i?i³i?i›å^ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė„Ņy’«iJi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?izæoæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柽@Ɯ™TP—M\N“M^E“hQ –Ć@Ĝ¾A½Ÿ¾@¾Ÿ¾@¾Ÿ¾A½Ÿ¾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸæB¾æAĄžæ@æŸæ@æŸæ@æŸæ@æŸæA柾?ĮžĀ>ĮÆWŖ¶DŠ”š‘hYl±iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?øŠėsė€ė€ė€ė€ė€ė€ė€ė€ė‚Ž|i³i?i³i?i³i?i³i?“‘ėjė€ė€ė€ė€ė€ė€ė€ė€ė‰¹si³i?i³i?i³i?i§¦Nė€ė€ė€ė€ė€ė€ė€ė€ė€ė€é˜rai³i?i³i?i³i?£Žėnė€ė€ė€ė€å˜ybi³i?i³i?i¤“Rė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ā›i]i³i?i³i?i³i?i³i?“Šėrė€ė€ė€ė€ė€ė€ė€ė€ėā}i³i?i³i?i³i?i³i?¬Œėpė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ÆiEi³i?i³i?i³i?i ĢXė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€į³oÆiFi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iyĮnæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柼@ǜ‘VF–O\L“H\f’©EÚæA½žæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĮ@¾ž²C¬Ÿ³A½Ÿæ@æŸæ@æŸæ@æŸæ@柾@ĮžĄI­— t˜{†Ž‚iŽzŖu‹žiSi“i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?Ō„ėzė€ė€ė€ė€ė€ė€ė€ė€ėˆĀui³i?i³i?i³i?i³i?©ėoė€ė€ė€ė€ė€ė€ė€ė€ė›li³i?i³i?i³i?iŸŠYė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ĻŸiYi³i?i³i?i®„Fē€ėė€ė€ė€ė€¤ØiNi³i?i³i?iŸĻYė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ę”iWi³i?i³i?i³i?i³i?Ļ…ėyė€ė€ė€ė€ė€ė€ė€ė€ė‡Ęwi³i?i³i?i³i?i³i?׃ė{ė€ė€ė€ė€ė€ė€ė€ė€ė„Ōzi³i?i³i?i³i?i³i?i­ˆGę€ė~ė€ė€ė€ė€ė€ė€ćˆĘu§”ŠWl³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i}ŗm¾@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柽@ƝØLhšH_H’^Q©–Į@枾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸŗAÆ £Až£„Bµ Į@æŸæ@æŸæ@æŸæA¾žæ?½¦y‚xn®oSs©tWq­pTt­sNl²iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i²oAé€ėė€ė€ė€ė€ė€ė€ė€ė€ė¦oi³i?i³i?i³i?i³i?Ƈėvė€ė€ė€ė€ė€ė€ė€ė€ė•~ei³i?i³i?i³i?v—źcė€ė€ė€ė€ė€ė€ė€ė€ė€ė€­¦iPi³i?i³i?„–ćdė€ė€ė€ė€ė‡Ćvj³i@i³i?i³i?l™ē`ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ŗ¦iOi³i?i³i?i³i?i³l@ē€ėė€ė€ė€ė€ė€ė€ė€ė€ėŒŖpi³i?i³i?i³i?iÆ~Eė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėŒ«pi³i?i³i?i³i?i³i?i³i?t™ā`ė€ė€ė€ė€ė†Ėwj³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i†­f½BĮæAæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæB£ŸrSr–Dææ@æžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@¾Ÿ©B ¢£A¢££A²”ĮAæžæ@æŸæ@æŸæ?Ąž»Užv¦uXy¢x[w£w[x£x[{¦|Xs«mLi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i­ŠGė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė“‹hi³i?i³i?i³i?i³i?ą‚ė}ė€ė€ė€ė€ė€ė€ė€ė€į›i]i³i?i³i?i³i?ėlė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Š­iHi³i?i«“Jćė~ė€ė€ė€ė€ŹŸmYi³i?i³i?i³i?…”ėfė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¬iIi³i?i³i?i³i?i®…Fė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė’ii³i?i³i?i³i?i§§Oė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė“ˆgi³i?i³i?i³i?i³i?i³i?p˜źaė€ė€ė€ė€ėеri³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iЧb¼BĮæAæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæAĮžÄ@ĜĮ@æžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸæA±Ÿ£A¢¢£A¢£«Aŗ Ą@æŸæ@æŸæ@æŸĄ@¼žˆxmw£w[v„vYv„vYv„vYv„wYyØrUj³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i§¦Nė€ė€ė€ė€ė€ė€ė€ė€ė€ė€é˜pai³i?i³i?i³i?i°{Dė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ć”iVi³i?i³i?i³i?ćėvė€ė€ė€ė€ė€ė€ė€ė€ė€ę~l³i@i°xC½‰ėtė€ė€ė€ė€ė†Ģxp²iAi³i?i³i?i³i? Žėmė€ė€ė€ė€ė€ė€ė€ė€ė€ė€t±iBi³i?i³i?i³i?iØ Mė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė—tbi³i?i³i?i³i?iŸĻYė€ė€ė€ė€ė€ė€ė€ė€ė€ė€äšk_i³i?i³i?i³i?i³i?i³i?‡“ėgė€ė€ė€ė€ėŽ”mi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i˜’V¹DÚ¾@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸæA« ¢A¢£ B°”æAæžæ@æŸæ@æŸæ@æŸŗc˜‡x£v[v„vZv„vYv„vYv„vYv„vZz¦vWv±iCi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¢ĮUė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ÕžiZi³i?i³i?i³i?iŖ˜Kė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¦§iNi³i?i³i?i³k@ę€ė~ė€ė€ė€ė€ė€ė€ė€ė€ė†Éw~¦–PĮˆéuė€ė€ė€ė€ė€ź®„kQi³i?i³i?i³i?i³i?¼‰ėtė€ė€ė€ė€ė€ė€ė€ė€ėƒŚ{i³i?i³i?i³i?i³i?i£¼Tė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Śi[i³i?i³i?i³i?r˜źbė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ę”iVi³i?i³i?i³i?i³i?i³i?žėlė€ė€ė€ė€ė’Žii³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i …O·Eę¾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@柹B£Ÿ¢A¢£«Aŗ Ą@æŸæ@æŸæ@æŸæE¾œŠšpav„uZu„vYw„vZv„vYv„vYv„vZx„uYs®iIi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iœŻ\ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ŗ£iSi³i?i³i?i³i?i¤µRė€ė€ė€ė€ė€ė€ė€ė€ė€ė€‡­iGi³i?i³i?iƀEė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ü•Žei³i?i³i?i³i?i³i?i³i?׃ė{ė€ė€ė€ė€ė€ė€ė€ė€ėˆ¾ui³i?i³i?i³i?i³i?i×[ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¾¢iUi³i?i³i?i³i?‹“ėhė€ė€ė€ė€ė€ė€ė€ė€ė€ė€«¦iPi³i?i³i?i³i?i³i?i³i?½‰ėtė€ė€ė€ė€ė–{di³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i±mB³Gʖ¾AĄžĄ@Ąžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĄ@ĮžĮ@ĮžĄ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĄ@ĝÅ@śÄ@Ąæ@æŸæ@æŸĄ@柳A¢”¢AŸ£µ@Ÿæ@æŸæ@æŸæ@ĄŸ·h„„£¢©]ŖŸ¦_—”„]s„wYw„vYv„vYv„vYv„vZv¬iLi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?v—ėcė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ž©iLi³i?i³i?i³i?ižŅYė€ė€ė€ė€ė€ė€ė€ė€ė€ę~l³i@i³i?i³i?iŖ—Kė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ž‘ jl³i@i³i?i³i?i³i?i³i?i²rBź€ėė€ė€ė€ė€ė€ė€ė€ė€ėŽ¢ni³i?i³i?i³i?i³i?r˜źaė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¢ØiNi³i?i³i?i³i?£Žėnė€ė€ė€ė€ė€ė€ė€ė€ė€ė€”«iJi³i?i³i?i³i?i³i?i³i?Ž‚ė|ė€ė€ė€ė€ä›j^i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ØOƑĄCø ²G¹¤Ą@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸ²A© ØA«¢¶BĄĄ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸ«Kw›eXe”wL¬šĮAæžæ@æŸĄ@½Ÿ«A¢”¢A¤¢øAĀžæ@æŸæ@æŸæF¶›±•«e±ž“`³ž±`®Ÿ©_•£q\s„vYv„vYv„vYv„vYx¬iLi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?’‘ėjė€ė€ė€ė€ė€ė€ė€ė€ė€ė€‚®iFi³i?i³i?i³i?o™é`ė€ė€ė€ė€ė€ė€ė€ė€ė†Éwi³i?i³i?i³i?i¦®Qė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ęƘ™bm³i@i³i?i³i?i³i?i³i?i³i?i¬Hė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė“‡gi³i?i³i?i³i?i³i?’ėhė€ė€ė€ė€ė€ė€ė€ė€ė€ė€‡­iGi³i?i³i?i³i?¼‰ėtė€ė€ė€ė€ė€ė€ė€ė€ė€ė€~ÆiDi³i?i³i?i³i?i³i?iÆEė€ė€ė€ė€ė€ė€Ā¢iVi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?™[¼ˆĆC² œWØ­Ć?¾žæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA»ž„AŸ¢ A¢£„B«”¶AĀžæ@æŸæ@æŸæ@¾ŸĀB§d[K•AcA•JYa—£@ĄŸ½C½¾C»ØC¢ ”B«”»@ĄŸæ@æŸæ@æŸĄ[“°”²]ƞ­`­Ÿ²_øž±`®ŸŸ_‡£x[v„wYv„vYv„vYv¬iLi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?®Œėpė€ė€ė€ė€ė€ė€ė€ė€ė€ę~k³i@i³i?i³i?i³i?Š“ėgė€ė€ė€ė€ė€ė€ė€ė€ė©oi³i?i³i?i³i?i”ĘVė€ė€ė€ė€ė€ė€ė€ė€ė€ė€é†Ģxŗ—§c‘ŖoKi³i?i³i?i³i?i³i?i³i?i³i?i³i?i§ØOė€ė€ė€ė€ė€ė€ė€ė€ė€ė€č™n`i³i?i³i?i³i?i³i?؍ėoė€ė€ė€ė€ė€ė€ė€ė€ė€čn²iAi³i?i³i?i³i?ӄėzė€ė€ė€ė€ė€ė€ė€ė€ė€źk³i@i³i?i³i?i³i?i³i?i§ØOė€ė€ė€ė€ė€ė€©iLi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@zu³vĖH¦Ÿ€j™øĆ>¾žæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¼ž§A ¢”A¢£¢A”£„A²”Į@æžæ@柾@Įž³Is›BgX^v^~^sK‡U¼‘Ą;æžÄ:æŖ=£„¢C®”»C¾¾B¾žæ@¾žør²}°ž³_‰Ÿs_yŸ{_”Ÿ±_±ž¶`Ÿ¢z\s„wYv„vYv„vZw«iMi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ʆėwė€ė€ė€ė€ė€ė€ė€ė€ė†Ģxi³i?i³i?i³i?i³i?¦ėoė€ė€ė€ė€ė€ė€ė€ė€ė“Šgi³i?i³i?i³i?ižÕZė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ą›i]i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i”ĆVė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ŅžiYi³i?i³i?i³i?i³i?Ƈėvė€ė€ė€ė€ė€ė€ė€ė€ė„Ņyi³i?i³i?i³i?i³i?ą‚ė}ė€ė€ė€ė€ė€ė€ė€ė€ėā}i³i?i³i?i³i?i³i?i³i?i×[ė€ė€ė€ė€ė€ė€x°iCi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³j@iˆ©eŹN—¤wt޾°Fæ¢æ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸ¶A© ØA£¢ A¤£ A”£·AĄŸĄ@柼Aǜ—SU—e‹omsŸr^ušlb|Š“lšq›}”d؆„R”• =­¤¾9ƞĄ=ĮžĮ?杳„Æq² ›^c N^U S^a ˆ^°ž®_­ ‡^u„vYv„vYv„vYv¬iLi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³j@äė~ė€ė€ė€ė€ė€ė€ė€ė€ė‹±qi³i?i³i?i³i?i³i?Ƈėvė€ė€ė€ė€ė€ė€ė€ė€é™n`i³i?i³i?i³i?iœŻ\ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Śi[i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?w™ß`ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€·¤iSi³i?i³i?i³i?i³i?߂ė}ė€ė€ė€ė€ė€ė€ė€ė€ėŠ·si³i?i³i?i³i?i³i?č€ėė€ė€ė€ė€ė€ė€ė€ė€ėƒŁ{i³i?i³i?i³i?i³i?i³i?…”ėfė€ė€ė€ė€ė„Õzi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³j@i––V®Z”­u‚¾—Oŧæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĮAŗžøA² ¦A¢¢£A£¢¦A» æ@柼AțfW‰‚­wSw„wYv§yXuŖpVo°nRp¤}Z‹ˆŒm‹i”ƒ¤^«Š³O³•²G½š·‰°n“¢€\^”]]] ^^V X^’Ÿ²_“Ÿ£_¤sZx„vYy„vYpÆiGi³i?i³i?i³i?i³i?i³i?i³i?i³i?iÆEė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‘•ji³i?i³i?i³i?i³i?߂ė}ė€ė€ė€ė€ė€ė€ė€ė€ÖžiZi³i?i³i?i³i?i›å^ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ŌžiZi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i±wCۃė{ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€›ŖiLi³i?i³i?i³i?i±vCė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė›li³i?i³i?i³i?i²pAė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė„Ņyi³i?i³i?i³i?i³i?i³i?æˆėuė€ė€ė€ė€ė§oi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@i«vD‹s«‚v~½ŽTæ«æ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸæ@Āž»BØ ”A¢£¢A­¢æ@ĮŸ¾@Įu^}z¤u[v¤vZv¤vZw£x[x¢y[x¤vZs©sWs®sSn«vU„ˆnŸr“}µŽ°k³”‰]`”X][ [^\ [^c ¦^ƞ¹`‰¤oZx„xY~§vUi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iŖ›Lė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė–ydi³i?i³i?i³i?i±vCė€ė€ė€ė€ė€ė€ė€ė€ė€ė€æ¢iUi³i?i³i?i³i?k™ė`ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ÓžiYi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?sœÖ]ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€€ÆiEi³i?i³i?i³i?i«‘Iė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė•€ei³i?i³i?i³i?i±wCė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė„Ózi³i?i³i?i³i?i³i?iÆ~Dé€ėė€ė€ė€ė€å™r`i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?j³iAy}Ž­ƒu‚¼‡b”µĄ@Ąžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@¾ŸĀ@øŸ A££¢A”£ŗ@ĮŸ¾?ĄžŠt]|¦vYv„vYv„vYv„vYv„vYv„vZw¤wZw£x[x£y[p¦‹Yø ®^° °^±ŸŸ_j U^\ [^[ Y^\”ˆ]­ž·`ФqZx¦zYu¬rLi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¤¶Sė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ąœi]i³i?i³i?i³i?i­ŠHė€ė€ė€ė€ė€ė€ė€ė€ė€ė€±„iQi³i?i³i?i³i?j™ź`ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ųi[i³i?i³i?i³i?i³i?i³i?i³i?i³i?i²oAĻ…ėyė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€čl³i@i³i?i³i?i³i?i ĖWė€ė€ė€ė€ė€ė€ė€ė€ė€ė€č™l`i³i?i³i?i³i?i²pAė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėƒŚ{i³i?i³i?i³i?i³i?i¢ĮUė€ė€ė€ė€ė€ė€³„iRi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@i®iJ|yŒ“‚t„¼€r‰½Į?Ąžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĄ@¼Ÿ®A¢¢¢A¢£ÆA¾ ½@Ɯ”r\{¦vYv„vYv„vYv„vYv„vYv„vYv„vYv„vYw„uY}”œ\³žÆ`°ž°`®ž·`„ [_Z [^[ Y^\”Š]­žµ`›¢|\z„vVm®iAh³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?ižŅYė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ä”iVi³i?i³i?i³i?i©Lė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ø§iOi³i?i³i?i³i?—ėkė€ė€ė€ė€ė€ė€ė€ė€ė€ė€åšj_i³i?i³i?i³i?i³i?i³i?i³i?i³i?wœŠ]ė€ė€Ī…ėyė€ė€ė€ė€ė€ė€ė€ė€ė‚Ž|i³i?i³i?i³i?i³i?Ÿėmė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Žœi\i³i?i³i?i³i?i؟Mė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ēi³i@i³i?i³i?i³i?”‘ėjė€ė€ė€ė€ė€éz°iDi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@i„q\u‡ŗƒs„½rˆ½²Eæ£Ą@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@Įž¹A ”¢A¢£ÆA¾ ¾Aʝ Uh”o”x\v„vZv¤vZw¤wZw¤vZv¤vZv„vYv„vYw„uY}¢›\³žÆ`°ž°`°ž°`®Ÿu_R ^^[ Z^\”Š]­žµ`š£…\t¦nLi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?n™č`ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ø§iOi³i?i³i?i³i?i§§Oė€ė€ė€ė€ė€ė€ė€ė€ė€ė€³„iRi³i?i³i?i²rB߂ė}ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė•ei³i?i³i?i³i?i³i?i³i?i³i?i®†GŽ‚ė|ėå~¶Šėsė€ė€ė€ė€ė€ė€ė€ė€ėć~i³i?i³i?i³i?i®ƒFē€ėė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ć›i^i³i?i³i?i³i?ƒ•ēeė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ÆiEi³i?i³i?i°}Dąė}ė€ė€ė€ė€ėŠ·si³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@iš~pŠt‚æƒsƒ¾‚s„¾™PæØĮ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĮŸ»A¦ ¢A¢£ØA» ĄA¾ž¾E‹Myi}p•pfyŖuUr«rUrŖsVu§uXw„vZx£x[y£v[~ ›]³Æ`°ž°`°žÆ`²ž©_ Y^T S^eŸ©_ƞ¶`—¤qVoÆiBi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ˆ“ėgė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¬iHi³i?i³i?i³i?i„°Qė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Łk\i³i?i³i?uĪ[ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėŒ¬pi³i?i³i?i³i?i³i?i³i?i³i@žēkė€ė€ź–j¹‰ėsė€ė€ė€ė€ė€ė€ė€ė€ė€ė€~ÆiDi³i?i³i?’“āhė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė•~ei³i?i³i?i«’Jāė}ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¶¤iSi³i?i³i?z™Ū`ė€ė€ė€ė€ė€ė€Ū›p]i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@i“~Œt‚¾ƒsƒ¾„t‚¾‡[øÆĮ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸ½A® ¢A¢£§A» Į@¾ŸĀ@·Ÿ†UV–FiEŠZb‘‹«\،Øm€‹„‹q}œ}_qÆoRr¬nTy¦œY²ŸÆ_°°`±œ°a°œ³a« `žŸ_”ŸÆ_³”£^{­iHi³i?h³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?¤Žėnė€ė€ė€ė€ė€ė€ė€ė€ė€źr²iBi³i?i³i?i³i?i¦«Pė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‡Äv‚­nGtؖMۃė|ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ę~†®iGi³i?i³i?i³i?i³j@Ž—Šbė€ė€ė€ė€¢ØiN°‹ėqė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ó˜Šbq±nC…»Zė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė„ÓzЬqIn­…H»‰ėtė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‰ŗs­pGz¤¤Räė~ė€ė€ė€ė€ė€ź‹­iHi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?rˆ•†u‚»‚u‚ŗ‚v¼ƒc„µ¾@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸ¾AÆ ¢A¢£§A» Į@æŸæ@ĮŸ»C”Ÿ˜E˜žŸ>·¢Ą=¾ž¾C¾œµLµ–®X®©`„‰Ÿp¢~•‚™r·’°h±ž­^­£ÆZÆ¢Æ\²Ÿµ]¶œŗ`¹›»_£§~Tj³i@i“i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?æˆėuė€ė€ė€ė€ė€ė€ė€ė€ėƒ×{i³i?i³i?i³i?i³i?i©žMė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€éжrˆŖxKl±qB{§’N°ŽŚmė€ė€ė€ė€ėŒ®qi³i?¤Žėnė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėƒŪ|ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ūƒč{ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‹³ri³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?€z³sŒĀŽsŽĆoŒæ†f™¶¼AĮŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸ¾A° ¢A¢£§A» Į@æŸæ@æŸĮ@ƜČAșĒAĀ›æB½½@ĄŸĮ=ĄžĮ;ĮžĀ9ĄĄA杓N²•¾ZŗŽŗd¹‡¹p²°~³u±³j±ŸŸ] „‘Wz°jDi³j?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?ۃė{ė€ė€ė€ė€ė€ė€ė€ė€ė‰¼ti³i?i³i?i³i?i³i?i®‚Fė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėŠ·sŠ…ėyė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€§§iOi³i?‡“ėgė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ä•‡eė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėä~Ÿ·Yė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€¾¢jUi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i®qDw‚}¢x†{—|v‰r¢•¬P­Ø½AĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸ½A¬ ¢A¢£§A» Į@æŸæ@æŸæ@½Ÿ¼A¼Ÿ½@æŸæ@æŸæA¾Ÿ¾B¾ž¾B¾½C¾æA¼ž¾>Įž¾;¾ ¾8½ ¾<»ŸøJ¹˜¼Z½Œ ›yY{±jEi³i?i³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i±tBė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėŽ mi³i?i³i?i³i?i³i?i³j@ڃė{ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ōn[‘‘ėjė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€č™ki³i?i³i?k›ā^ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€é¬kIāė}ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€é’hi±wCćė}ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėˆæuj³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i®pEg¤g]h¬lJi³i?i™’SĮ?ĚĄ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĮŸŗA¤ ¢A¢£ŖA¼ Į@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæAĄžæA¾žæBæžæCææBĄžĄ@æžĆH«”z¤iJi³i?j³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¬Iė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė”„fi³i?i³i?i³i?i³i?i³i?”Žėmė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‚ß}}ÆiDi£½Tė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ėƒ×z…®iFi³i?i³i?i¦¬Pė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€č™ki³i?¬Œėpė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€č™ŖiKi³i?Š”ēgė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ø£kTi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?h²kCi³iA—[¾‹Ā@æžæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@Įž¹A ”¢A¢£ÆA¾ Ą@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾ž½AŜ²s‚ui³k@j³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i¦¬Pė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ē™l_i³i?i³i?i³i?i³i?i³i?jŸĢXė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ü˜}ai³i?i³nAĶ…ėxė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€é±¤mRi³i?i³i?i³i?i²qBڃė{ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė‚ß}ˆ­iGi³i?q›Ś]ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ß–ˆdi³i?i³i?i¬Iąė}ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€Ü•ei³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@i³iAi³i@i³i@i³j@k‹¤a¾@ĮžæAæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@ĮŸ¼AŖ ¢A££°A¾ Ą@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĀD¹›‰žiRl²i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i”ČWė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ĻŸiYi³i?i³i?i³i?i³i?i³i?i±sBĪ…ėxė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė†Éwx°iCi³i?i³i?l£µSė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€čŗŸ~Xi³i?i³i?i³i?i³i?i³i?—ßcė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€ź¾ wXi³i?i³i?iƁE߂ė}ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€źˆ¾tw±iCi³i?i³i?i³i?u ¾Xč€ėė€ė€ė€ė€ė€ė€ė€ė€ė€ė€į±oq²iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@¤SæĄ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæBøž«B² æ@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæAæŸŗj†}i²k@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i›ć^ė€ė€ė€ė€ė€ė€ė€ė€ė€ė€³„iRi³i?i³i?i³i?i³i?i³i?i³i?m¦§Pćė~ė€ė€ė€ė€ė€ė€ė„ÖzšŖiLi³i?i³i?i³i?i³i?†œæ\č€ėė€ė€ė€ė€ė€ė€ė€ė€é…ĻxŖ£wSi³i?i³i?i³i?i³i?i³i?i³i?i°xCćėvė€ė€ė€ė€ė€ė€ė€ę~Ą„\i³i?i³i?i³i?i³i?xžÄZė€ė€ė€ė€ė€ė€ė€ė€ę‰Ąt„®iFi³i?i³i?i³i?i³i?i³i?v¤§RLjāuė€ė€ė€ė€čƒŚ{Į™’_k³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?k“™[¼BĮ¾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾žĮI±—¤iLi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?n«J°”¾fɍČo¾–¦d‡­iGi³i?i³i?i³i?i³i?i³i?i³i?q«ŽJŖ–øcĄĘl½”±f¦Ÿ“Yr²iBi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?iƀE„–¾dɍČoĄ•¬e’ŖpKi³i?i³i?i³i?i³i?i³i?i³i?€£„T¾ÉlȏĄm¬ž’Zp²iAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?r®zF¬wIj³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i“i@€«O«R„ÆiFi³i?i±lBe¹€ÄB¼œæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸĄ@ĄŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾Ÿæ@Ŝ©xki“i@i³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@i°€E’ŖœTš¬œR“Ŗ„Qi³i?i³i@l”N­KŹ‘½C¾æAæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾Ÿ½AƝÄZ—‡t¬iFi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@iƌHŸ«’R’©’Tœ«Rk²iAi³j@i³i?wˆœeæ@Ɯ¾B¾žæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾Ÿ¾AƝĒH³•ˆ™nWi³i@i³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@iƊHžŖ’R”Ŗ’T›¬ŽRj²iAi³i?j³i@i°nD‹s§t¾@ŝ¾B½¾AæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA¾Ÿ¼BĮÅE·—›ƒhi³i?j³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@iƌHž«‘S’Ŗ’T›«Ri³i?i“i@i³i@k²iAiŖwG’iÆ~Ē>əĀA¾¾A¾žæAæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA柾B½žæ@ĝŹA¼™£z†pl±iBj²jAi³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i@i±~D‘ŖŸSž«ŸR’Ŗ€Qi³i?h³i@i³i?i³j@k³i@i¤Lc­»BǚĘ?ĮœæA¾Ÿ¾A¾ŸæAæŸæ@æŸæ@æŸæ@æŸæ@æŸæ@æŸæA柾A¾ž¾AĄžĆ?Ē›ĆH³—§n‘xq®iDi²kAi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i“i@}¬ŒM‹¬ŒP°iEi³i?i³i?i³i?i³i?i³j@j³i@i®qD”j«}µH½˜Ć?ʛÄ?ÜĮ@ĮžĄ@æŸæ@æŸæ@æŸæ@æŸæ@ĄŸĮ@ĀÄ?śĘ?ĄœŗM°•£z„oi³i?i²k@i³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i“i@i³i?i³i?i³j?i³i?i³i?i³i?i³i?i³i?i³j@k²iAi³i?z‡™e©W“Œ·J¹—¼D¼œ¾@ĄŸæ@æŸæ@æŸæ@æŸæA¾ž½Eŗ›·K·•±]¢‡Ž—mYi³i?j²jAi³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³j@i³j@i³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i@i³j@i³i?i±mB……’f§]­ˆŗCĮœæAæŸæ@æŸæ@æŸĄI²˜¬d{]i³i?i³i@j³i@i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?i³i?j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@j“j@ \ No newline at end of file diff --git a/components/esp_lcd/test_apps/mipi_dsi_lcd/resources/pictures/world.png b/components/esp_lcd/test_apps/mipi_dsi_lcd/resources/pictures/world.png new file mode 100644 index 0000000000000000000000000000000000000000..3a111fac8f0e478fcd9628334397f73a78d44457 GIT binary patch literal 15474 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 z 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.raw_type = 2; break; - case LCD_COLOR_PIXEL_FORMAT_RGB666: + case LCD_COLOR_FMT_RGB666: dev->pixel_type.raw_type = 1; break; - case LCD_COLOR_PIXEL_FORMAT_RGB888: + case LCD_COLOR_FMT_RGB888: dev->pixel_type.raw_type = 0; break; default: - abort(); + // MIPI DSI host can only accept RGB data, no YUV data + HAL_ASSERT(false); + break; } dev->pixel_type.dpi_config = sub_config; } @@ -344,6 +346,36 @@ static inline void mipi_dsi_brg_ll_set_yuv_convert_std(dsi_brg_dev_t *dev, lcd_y } } +/** + * @brief Set the YUV422 packing order + * + * @param dev Pointer to the DSI bridge controller register base address + * @param order YUV422 packing order + */ +static inline void mipi_dsi_brg_ll_set_yuv422_pack_order(dsi_brg_dev_t *dev, lcd_yuv422_pack_order_t order) +{ + switch (order) { + case LCD_YUV422_PACK_ORDER_UYVY: + dev->yuv_cfg.yuv422_format = 0; + dev->yuv_cfg.yuv_pix_endian = 1; + break; + case LCD_YUV422_PACK_ORDER_VYUY: + dev->yuv_cfg.yuv422_format = 1; + dev->yuv_cfg.yuv_pix_endian = 1; + break; + case LCD_YUV422_PACK_ORDER_YUYV: + dev->yuv_cfg.yuv422_format = 2; + dev->yuv_cfg.yuv_pix_endian = 1; + break; + case LCD_YUV422_PACK_ORDER_YVYU: + dev->yuv_cfg.yuv422_format = 3; + dev->yuv_cfg.yuv_pix_endian = 1; + break; + default: + abort(); + } +} + #ifdef __cplusplus } #endif diff --git a/components/hal/esp32p4/include/hal/mipi_dsi_host_ll.h b/components/hal/esp32p4/include/hal/mipi_dsi_host_ll.h index e88ea9e7a5..c1a2959599 100644 --- a/components/hal/esp32p4/include/hal/mipi_dsi_host_ll.h +++ b/components/hal/esp32p4/include/hal/mipi_dsi_host_ll.h @@ -181,19 +181,20 @@ static inline void mipi_dsi_host_ll_dpi_set_vcid(dsi_host_dev_t *dev, uint32_t v * @param color_coding Color coding value * @param sub_config Sub configuration value */ -static inline void mipi_dsi_host_ll_dpi_set_color_coding(dsi_host_dev_t *dev, lcd_color_rgb_pixel_format_t color_coding, uint32_t sub_config) +static inline void mipi_dsi_host_ll_dpi_set_color_coding(dsi_host_dev_t *dev, lcd_color_format_t color_coding, uint32_t sub_config) { switch (color_coding) { - case LCD_COLOR_PIXEL_FORMAT_RGB565: + case LCD_COLOR_FMT_RGB565: dev->dpi_color_coding.dpi_color_coding = MIPI_DSI_LL_COLOR_CODE_16BIT_CONFIG1 + sub_config; break; - case LCD_COLOR_PIXEL_FORMAT_RGB666: + case LCD_COLOR_FMT_RGB666: dev->dpi_color_coding.dpi_color_coding = MIPI_DSI_LL_COLOR_CODE_18BIT_CONFIG1 + sub_config; break; - case LCD_COLOR_PIXEL_FORMAT_RGB888: + case LCD_COLOR_FMT_RGB888: dev->dpi_color_coding.dpi_color_coding = MIPI_DSI_LL_COLOR_CODE_24BIT; break; default: + // MIPI DSI bridge can only write RGB data to the DSI host controller, no YUV data HAL_ASSERT(false); break; } diff --git a/components/hal/include/hal/color_types.h b/components/hal/include/hal/color_types.h index ec61878d49..93c69b323d 100644 --- a/components/hal/include/hal/color_types.h +++ b/components/hal/include/hal/color_types.h @@ -211,6 +211,16 @@ typedef enum { COLOR_COMPONENT_INVALID, /*!< Invalid color component */ } color_component_t; +/** + * @brief The order of the components per pack in the YUV422 format + */ +typedef enum { + COLOR_YUV422_PACK_ORDER_YUYV, /*!< YUYV */ + COLOR_YUV422_PACK_ORDER_YVYU, /*!< YVYU */ + COLOR_YUV422_PACK_ORDER_UYVY, /*!< UYVY */ + COLOR_YUV422_PACK_ORDER_VYUY, /*!< VYUY */ +} color_yuv422_pack_order_t; + #ifdef __cplusplus } #endif diff --git a/components/hal/include/hal/lcd_types.h b/components/hal/include/hal/lcd_types.h index 1bff0f6472..5fbdb1aea2 100644 --- a/components/hal/include/hal/lcd_types.h +++ b/components/hal/include/hal/lcd_types.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2023 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -48,6 +48,16 @@ typedef enum { LCD_COLOR_PIXEL_FORMAT_RGB888 = COLOR_PIXEL_RGB888, /*!< 24 bits, 8 bits per R/G/B value */ } lcd_color_rgb_pixel_format_t; +/** + * @brief LCD color format + */ +typedef enum { + LCD_COLOR_FMT_RGB565 = COLOR_TYPE_ID(COLOR_SPACE_RGB, COLOR_PIXEL_RGB565), ///< RGB565 + LCD_COLOR_FMT_RGB666 = COLOR_TYPE_ID(COLOR_SPACE_RGB, COLOR_PIXEL_RGB666), ///< RGB666 + LCD_COLOR_FMT_RGB888 = COLOR_TYPE_ID(COLOR_SPACE_RGB, COLOR_PIXEL_RGB888), ///< RGB888 + LCD_COLOR_FMT_YUV422 = COLOR_TYPE_ID(COLOR_SPACE_YUV, COLOR_PIXEL_YUV422), ///< YUV422 +} lcd_color_format_t; + /** * @brief LCD color range */ @@ -73,6 +83,17 @@ typedef enum { LCD_YUV_CONV_STD_BT709 = COLOR_CONV_STD_RGB_YUV_BT709, /*!< YUV<->RGB conversion standard: BT.709 */ } lcd_yuv_conv_std_t; + +/** + * @brief YUV422 packing order + */ +typedef enum { + LCD_YUV422_PACK_ORDER_YUYV = COLOR_YUV422_PACK_ORDER_YUYV, /*!< YUYV */ + LCD_YUV422_PACK_ORDER_YVYU = COLOR_YUV422_PACK_ORDER_YVYU, /*!< YVYU */ + LCD_YUV422_PACK_ORDER_UYVY = COLOR_YUV422_PACK_ORDER_UYVY, /*!< UYVY */ + LCD_YUV422_PACK_ORDER_VYUY = COLOR_YUV422_PACK_ORDER_VYUY, /*!< VYUY */ +} lcd_yuv422_pack_order_t; + #ifdef __cplusplus } #endif diff --git a/components/hal/include/hal/mipi_dsi_hal.h b/components/hal/include/hal/mipi_dsi_hal.h index 7ec69da23e..e3e43b2b3b 100644 --- a/components/hal/include/hal/mipi_dsi_hal.h +++ b/components/hal/include/hal/mipi_dsi_hal.h @@ -150,7 +150,7 @@ void mipi_dsi_hal_host_gen_read_short_packet(mipi_dsi_hal_context_t *hal, uint8_ * @param color_coding Color coding * @param sub_config Sub configuration */ -void mipi_dsi_hal_host_dpi_set_color_coding(mipi_dsi_hal_context_t *hal, lcd_color_rgb_pixel_format_t color_coding, uint32_t sub_config); +void mipi_dsi_hal_host_dpi_set_color_coding(mipi_dsi_hal_context_t *hal, lcd_color_format_t color_coding, uint32_t sub_config); /** * @brief Set horizontal timing parameters for DPI diff --git a/components/hal/mipi_dsi_hal.c b/components/hal/mipi_dsi_hal.c index abd0fe2ca9..0a7f4c3c58 100644 --- a/components/hal/mipi_dsi_hal.c +++ b/components/hal/mipi_dsi_hal.c @@ -220,7 +220,7 @@ void mipi_dsi_hal_host_gen_read_dcs_command(mipi_dsi_hal_context_t *hal, uint8_t mipi_dsi_hal_host_gen_read_short_packet(hal, vc, MIPI_DSI_DT_DCS_READ_0, header_data, ret_param, param_buf_size); } -void mipi_dsi_hal_host_dpi_set_color_coding(mipi_dsi_hal_context_t *hal, lcd_color_rgb_pixel_format_t color_coding, uint32_t sub_config) +void mipi_dsi_hal_host_dpi_set_color_coding(mipi_dsi_hal_context_t *hal, lcd_color_format_t color_coding, uint32_t sub_config) { mipi_dsi_host_ll_dpi_set_color_coding(hal->host, color_coding, sub_config); mipi_dsi_brg_ll_set_pixel_format(hal->bridge, color_coding, sub_config); diff --git a/docs/en/api-reference/peripherals/lcd/dsi_lcd.rst b/docs/en/api-reference/peripherals/lcd/dsi_lcd.rst index 0666f2c774..c44c288bfa 100644 --- a/docs/en/api-reference/peripherals/lcd/dsi_lcd.rst +++ b/docs/en/api-reference/peripherals/lcd/dsi_lcd.rst @@ -60,7 +60,7 @@ MIPI DSI Interfaced LCD - :cpp:member:`esp_lcd_dpi_panel_config_t::virtual_channel` sets the virtual channel number to use. Like the DBI interface, we also need to set the virtual channel for the DPI interface. If you only have one LCD connected, you can set this to ``0``. - :cpp:member:`esp_lcd_dpi_panel_config_t::dpi_clk_src` sets the clock source for the DPI interface. The available clock sources are listed in :cpp:type:`mipi_dsi_dpi_clock_source_t`. - :cpp:member:`esp_lcd_dpi_panel_config_t::dpi_clock_freq_mhz` sets the DPI clock frequency in MHz. Higher pixel clock frequency results in higher refresh rate, but may cause flickering if the DMA bandwidth is not sufficient or the LCD controller chip does not support high pixel clock frequency. - - :cpp:member:`esp_lcd_dpi_panel_config_t::pixel_format` sets the pixel format of the pixel data. The available pixel formats are listed in :cpp:type:`lcd_color_rgb_pixel_format_t`. We usually use **RGB888** for MIPI LCD to get the best color depth. + - :cpp:member:`esp_lcd_dpi_panel_config_t::in_color_format` sets the pixel format of the input pixel data. The available pixel formats are listed in :cpp:type:`lcd_color_format_t`. We usually use **RGB888** for MIPI LCD to get the best color depth. - :cpp:member:`esp_lcd_dpi_panel_config_t::video_timing` sets the LCD panel specific timing parameters. All required parameters are listed in the :cpp:type:`esp_lcd_video_timing_t`, including the LCD resolution and blanking porches. Please fill them according to the datasheet of your LCD. - :cpp:member:`esp_lcd_dpi_panel_config_t::extra_dpi_panel_flags::use_dma2d` sets whether to use the 2D DMA peripheral to copy the user data to the frame buffer, asynchronously. @@ -71,7 +71,7 @@ MIPI DSI Interfaced LCD .virtual_channel = 0, .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, .dpi_clock_freq_mhz = 1 * 1000, - .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, + .in_color_format = LCD_COLOR_FMT_RGB888, .video_timing = { .h_size = EXAMPLE_MIPI_DSI_LCD_H_RES, .v_size = EXAMPLE_MIPI_DSI_LCD_V_RES, diff --git a/docs/zh_CN/api-reference/peripherals/lcd/dsi_lcd.rst b/docs/zh_CN/api-reference/peripherals/lcd/dsi_lcd.rst index 874c8b051a..ace7b536ca 100644 --- a/docs/zh_CN/api-reference/peripherals/lcd/dsi_lcd.rst +++ b/docs/zh_CN/api-reference/peripherals/lcd/dsi_lcd.rst @@ -60,7 +60,7 @@ MIPI DSI ęŽ„å£ēš„ LCD - :cpp:member:`esp_lcd_dpi_panel_config_t::virtual_channel` č®¾ē½®č™šę‹Ÿé€šé“å·ć€‚äøŽ DBI ęŽ„å£ē±»ä¼¼ļ¼ŒDPI ęŽ„å£ä¹Ÿéœ€č¦č®¾ē½®č™šę‹Ÿé€šé“ć€‚å¦‚ęžœåŖčæžęŽ„äŗ†äø€äøŖ LCDļ¼Œåˆ™å°†ę­¤å€¼č®¾ē½®äøŗ ``0``怂 - :cpp:member:`esp_lcd_dpi_panel_config_t::dpi_clk_src` 设置 DPI ęŽ„å£ēš„ę—¶é’Ÿęŗć€‚åÆē”Øēš„ę—¶é’Ÿęŗåˆ—č”Øč§ :cpp:type:`mipi_dsi_dpi_clock_source_t`怂 - :cpp:member:`esp_lcd_dpi_panel_config_t::dpi_clock_freq_mhz` 设置 DPI ę—¶é’Ÿé¢‘ēŽ‡ (MHz)ć€‚åƒē“ ę—¶é’Ÿé¢‘ēŽ‡č¶Šé«˜ļ¼Œåˆ·ę–°ēŽ‡č¶Šé«˜ļ¼Œä½†å¦‚ęžœ DMA åø¦å®½äøč¶³ęˆ– LCD ęŽ§åˆ¶å™ØčŠÆē‰‡äøę”ÆęŒé«˜åƒē“ ę—¶é’Ÿé¢‘ēŽ‡ļ¼Œåˆ™åÆčƒ½ä¼šåÆ¼č‡“é—Ŗēƒć€‚ - - :cpp:member:`esp_lcd_dpi_panel_config_t::pixel_format` č®¾ē½®åƒē“ ę•°ę®ēš„åƒē“ ę ¼å¼ć€‚åÆē”Øēš„åƒē“ ę ¼å¼č§ :cpp:type:`lcd_color_rgb_pixel_format_t`怂MIPI LCD é€šåøøä½æē”Ø **RGB888** ę„čŽ·å¾—ęœ€ä½³č‰²å½©ę·±åŗ¦ć€‚ + - :cpp:member:`esp_lcd_dpi_panel_config_t::in_color_format` č®¾ē½®č¾“å…„ēš„åƒē“ ę•°ę®ēš„ę ¼å¼ć€‚åÆē”Øēš„åƒē“ ę ¼å¼č§ :cpp:type:`lcd_color_format_t`怂MIPI LCD é€šåøøä½æē”Ø **RGB888** ę„čŽ·å¾—ęœ€ä½³č‰²å½©ę·±åŗ¦ć€‚ - :cpp:member:`esp_lcd_dpi_panel_config_t::video_timing` 设置 LCD é¢ęæēš„ē‰¹å®šę—¶åŗå‚ę•°ć€‚åŒ…ę‹¬ LCD åˆ†č¾ØēŽ‡å’Œę¶ˆéšé—“éš”åœØå†…ēš„åæ…č¦å‚ę•°åˆ—č”Øč§ :cpp:type:`esp_lcd_video_timing_t`ļ¼ŒčÆ·ä¾ę® LCD ęŠ€ęœÆč§„ę ¼ä¹¦å”«å†™å‚ę•°ć€‚ - :cpp:member:`esp_lcd_dpi_panel_config_t::extra_dpi_panel_flags::use_dma2d` č®¾ē½®ę˜Æå¦ē”Ø 2D DMA å°†ē”Øęˆ·ę•°ę®å¼‚ę­„å¤åˆ¶åˆ°åø§ buffer 中。 @@ -71,7 +71,7 @@ MIPI DSI ęŽ„å£ēš„ LCD .virtual_channel = 0, .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, .dpi_clock_freq_mhz = 1 * 1000, - .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, + .in_color_format = LCD_COLOR_FMT_RGB888, .video_timing = { .h_size = EXAMPLE_MIPI_DSI_LCD_H_RES, .v_size = EXAMPLE_MIPI_DSI_LCD_V_RES, diff --git a/examples/peripherals/camera/camera_dsi/components/dsi_init/example_dsi_init.c b/examples/peripherals/camera/camera_dsi/components/dsi_init/example_dsi_init.c index 9424c27960..955f45d794 100644 --- a/examples/peripherals/camera/camera_dsi/components/dsi_init/example_dsi_init.c +++ b/examples/peripherals/camera/camera_dsi/components/dsi_init/example_dsi_init.c @@ -36,7 +36,7 @@ void example_dsi_resource_alloc(esp_lcd_dsi_bus_handle_t *mipi_dsi_bus, esp_lcd_ .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, .dpi_clock_freq_mhz = EXAMPLE_MIPI_DSI_DPI_CLK_MHZ, .virtual_channel = 0, - .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB565, + .in_color_format = LCD_COLOR_FMT_RGB565, .video_timing = { .h_size = CONFIG_EXAMPLE_MIPI_DSI_DISP_HRES, .v_size = CONFIG_EXAMPLE_MIPI_DSI_DISP_VRES, diff --git a/examples/peripherals/lcd/mipi_dsi/main/mipi_dsi_lcd_example_main.c b/examples/peripherals/lcd/mipi_dsi/main/mipi_dsi_lcd_example_main.c index 8ae435e7e4..80f8e08f81 100644 --- a/examples/peripherals/lcd/mipi_dsi/main/mipi_dsi_lcd_example_main.c +++ b/examples/peripherals/lcd/mipi_dsi/main/mipi_dsi_lcd_example_main.c @@ -216,7 +216,7 @@ void app_main(void) .virtual_channel = 0, .dpi_clk_src = MIPI_DSI_DPI_CLK_SRC_DEFAULT, .dpi_clock_freq_mhz = EXAMPLE_MIPI_DSI_DPI_CLK_MHZ, - .pixel_format = LCD_COLOR_PIXEL_FORMAT_RGB888, + .in_color_format = LCD_COLOR_FMT_RGB888, .video_timing = { .h_size = EXAMPLE_MIPI_DSI_LCD_H_RES, .v_size = EXAMPLE_MIPI_DSI_LCD_V_RES,