Re: [PATCH 2/3] board: stm32f746-disco: refactor the display of the ST logo

2023-09-26 Thread Patrice CHOTARD



On 8/20/23 18:24, Dario Binacchi wrote:
> The patch removes the legacy mode of displaying the ST logo and adopts
> the approach introduced by the commit 284b08fb51b6 ("board: stm32mp1: add
> splash screen with stmicroelectronics logo"). It was necessary to use a
> specific logo for the stm32f746-disco board.
> 
> Furthermore, the previous version didn't properly center the logo, hiding
> its upper part.
> 
> Signed-off-by: Dario Binacchi 
> ---
> 
>  board/st/stm32f746-disco/stm32f746-disco.c |   6 --
>  configs/stm32f746-disco_defconfig  |   2 +-
>  configs/stm32f746-disco_spl_defconfig  |   2 +-
>  include/configs/stm32f746-disco.h  |   7 ++-
>  tools/logos/stm32f746-disco.bmp| Bin 0 -> 18052 bytes
>  5 files changed, 8 insertions(+), 9 deletions(-)
>  create mode 100644 tools/logos/stm32f746-disco.bmp
> 
> diff --git a/board/st/stm32f746-disco/stm32f746-disco.c 
> b/board/st/stm32f746-disco/stm32f746-disco.c
> index 4cfb29ef428b..0f9666008430 100644
> --- a/board/st/stm32f746-disco/stm32f746-disco.c
> +++ b/board/st/stm32f746-disco/stm32f746-disco.c
> @@ -14,7 +14,6 @@
>  #include 
>  #include 
>  #include 
> -#include 
>  #include 
>  #include 
>  #include 
> @@ -134,10 +133,5 @@ int board_init(void)
>   }
>  #endif
>  
> -#if defined(CONFIG_CMD_BMP)
> - bmp_display((ulong)stmicroelectronics_uboot_logo_8bit_rle,
> - BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
> -#endif /* CONFIG_CMD_BMP */
> -
>   return 0;
>  }
> diff --git a/configs/stm32f746-disco_defconfig 
> b/configs/stm32f746-disco_defconfig
> index 8403679d7fa6..2ca4aaf96eb6 100644
> --- a/configs/stm32f746-disco_defconfig
> +++ b/configs/stm32f746-disco_defconfig
> @@ -56,13 +56,13 @@ CONFIG_SPI=y
>  CONFIG_DM_SPI=y
>  CONFIG_STM32_QSPI=y
>  CONFIG_VIDEO=y
> +CONFIG_VIDEO_LOGO=y
>  CONFIG_BACKLIGHT_GPIO=y
>  CONFIG_VIDEO_STM32=y
>  CONFIG_VIDEO_STM32_MAX_XRES=480
>  CONFIG_VIDEO_STM32_MAX_YRES=272
>  CONFIG_SPLASH_SCREEN=y
>  CONFIG_SPLASH_SCREEN_ALIGN=y
> -CONFIG_VIDEO_BMP_RLE8=y
>  CONFIG_BMP_16BPP=y
>  CONFIG_BMP_24BPP=y
>  CONFIG_BMP_32BPP=y
> diff --git a/configs/stm32f746-disco_spl_defconfig 
> b/configs/stm32f746-disco_spl_defconfig
> index 50c2a36784af..b0afe42433a4 100644
> --- a/configs/stm32f746-disco_spl_defconfig
> +++ b/configs/stm32f746-disco_spl_defconfig
> @@ -82,13 +82,13 @@ CONFIG_DM_SPI=y
>  CONFIG_STM32_QSPI=y
>  CONFIG_SPL_TIMER=y
>  CONFIG_VIDEO=y
> +CONFIG_VIDEO_LOGO=y
>  CONFIG_BACKLIGHT_GPIO=y
>  CONFIG_VIDEO_STM32=y
>  CONFIG_VIDEO_STM32_MAX_XRES=480
>  CONFIG_VIDEO_STM32_MAX_YRES=272
>  CONFIG_SPLASH_SCREEN=y
>  CONFIG_SPLASH_SCREEN_ALIGN=y
> -CONFIG_VIDEO_BMP_RLE8=y
>  CONFIG_BMP_16BPP=y
>  CONFIG_BMP_24BPP=y
>  CONFIG_BMP_32BPP=y
> diff --git a/include/configs/stm32f746-disco.h 
> b/include/configs/stm32f746-disco.h
> index 9bf01cac47a4..00ec9efba577 100644
> --- a/include/configs/stm32f746-disco.h
> +++ b/include/configs/stm32f746-disco.h
> @@ -23,6 +23,10 @@
>  #define BOOT_TARGET_DEVICES(func) \
>   func(MMC, mmc, 0)
>  
> +#define STM32F746_BOARD_EXTRA_ENV \
> + "splashimage=0xC0448000\0" \
> + "splashpos=m,m\0"
> +
>  #include 
>  #define CFG_EXTRA_ENV_SETTINGS   \
>   "kernel_addr_r=0xC0008000\0"\
> @@ -31,7 +35,8 @@
>   "scriptaddr=0xC0418000\0"   \
>   "pxefile_addr_r=0xC0428000\0" \
>   "ramdisk_addr_r=0xC0438000\0"   \
> - BOOTENV
> + BOOTENV \
> + STM32F746_BOARD_EXTRA_ENV
>  
>  #define CFG_SYS_UBOOT_BASE   (CFG_SYS_FLASH_BASE + \
>CONFIG_SPL_PAD_TO)
> diff --git a/tools/logos/stm32f746-disco.bmp b/tools/logos/stm32f746-disco.bmp
> new file mode 100644
> index 
> ..c1ef4fb035c0833ea22aaa7d8aef1f0f4129d7fa
> GIT binary patch
> literal 18052
> zcmchf2Y8iL*6;T^5poi8NK8n81VT+AV1$GgNFV_r0)~)KrH0;nZ_;~}-g_6RN*9q{
> zRg^AB2SLR$ws8vgxAr+O=yhg3yw7)i29kI0wbowyzv|xa%T!4lUESFKCca?I5PrKM
> z#su(3jFUgc{F-9SybA6=c0dQs<0t>K4^>h#drv#~V|2!@@Zj( zeg6FUK1se8y`q~=i!|FPU}{(JoRv6(hzg!$(`|7pJe?mM)*{|K8@(h4ZFn
> zxH13u$3IM+;(5$#g|nOeyLXvie)-w_`s=TzeP%85kH7!j)Q$=;m(HIzfBW0t%nyJ0
> zi}~wc|7!m7{r4s#Hrx#A)Ye?TcFpu|)zs9DD{TJy%P;2c?b~MK>XqhK=(;wkXC6NI
> z!u;^V4`#)}dFJ!0pPA1tUox#~rkF=xe{FiUXk@ zr>1_HD6@ahF4LuPrdc*`j%iUX(fs`L_=1j^@jU56!@iZOoPp>?K6!MW6jrJ
> zerdjW^vJZUlWP9{_rIBsPoFZY7cVqt$D@@8;{TzA}quPB$ly9x*pQzh-)6H8yQ(
> zS2JfnJYzPjTy8qlOEX!imCUh22f^SMvuWKL)B3fl=GteUnWiaaSo z!(Jow@ZGk3~FGo)(=vv21P)2V*Cd2iQFbLG-Svu)!B^Amgf?%Qw8
> zq4)QjPe1<1Oc*-Q4C~p&{0JuBefO<7bMl1QyW?GR`Qin0^xy|(K>Jo^)uIKaaiuu0
> zy=rdXx@qp-xor*~*l$i9J8GI$Esy@6o7t1bn>)8|nT0c^neV^<+;nbO$9x4g
> zKmGWl88fi288^7Ud82!0)2DSa^Tqvp=KkHgX8YT3nFsgpo9@jTfcIsy=bi0l>Zsx7
> z?XtyY#e%u!$Oi|^^7(Vv+kLZc*%I^Nsgvg7`E%wgFn)LQCbN3UB6IHS$7WQ&
> zUgp+~>*m6zpP0d&+nIMZzirm9SZ3BNU1Y`&8DLI;^^fSXjWwr_9ck{}y<=|QykQ<;
> 

Re: [PATCH 2/3] board: stm32f746-disco: refactor the display of the ST logo

2023-08-29 Thread Patrick DELAUNAY

Hi

On 8/20/23 18:24, Dario Binacchi wrote:

The patch removes the legacy mode of displaying the ST logo and adopts
the approach introduced by the commit 284b08fb51b6 ("board: stm32mp1: add
splash screen with stmicroelectronics logo"). It was necessary to use a
specific logo for the stm32f746-disco board.

Furthermore, the previous version didn't properly center the logo, hiding
its upper part.

Signed-off-by: Dario Binacchi 
---

  board/st/stm32f746-disco/stm32f746-disco.c |   6 --
  configs/stm32f746-disco_defconfig  |   2 +-
  configs/stm32f746-disco_spl_defconfig  |   2 +-
  include/configs/stm32f746-disco.h  |   7 ++-
  tools/logos/stm32f746-disco.bmp| Bin 0 -> 18052 bytes
  5 files changed, 8 insertions(+), 9 deletions(-)
  create mode 100644 tools/logos/stm32f746-disco.bmp



Reviewed-by: Patrick Delaunay 

Thanks
Patrick




Re: [PATCH 2/3] board: stm32f746-disco: refactor the display of the ST logo

2023-08-25 Thread Patrice CHOTARD



On 8/20/23 18:24, Dario Binacchi wrote:
> The patch removes the legacy mode of displaying the ST logo and adopts
> the approach introduced by the commit 284b08fb51b6 ("board: stm32mp1: add
> splash screen with stmicroelectronics logo"). It was necessary to use a
> specific logo for the stm32f746-disco board.
> 
> Furthermore, the previous version didn't properly center the logo, hiding
> its upper part.
> 
> Signed-off-by: Dario Binacchi 
> ---
> 
>  board/st/stm32f746-disco/stm32f746-disco.c |   6 --
>  configs/stm32f746-disco_defconfig  |   2 +-
>  configs/stm32f746-disco_spl_defconfig  |   2 +-
>  include/configs/stm32f746-disco.h  |   7 ++-
>  tools/logos/stm32f746-disco.bmp| Bin 0 -> 18052 bytes
>  5 files changed, 8 insertions(+), 9 deletions(-)
>  create mode 100644 tools/logos/stm32f746-disco.bmp
> 
> diff --git a/board/st/stm32f746-disco/stm32f746-disco.c 
> b/board/st/stm32f746-disco/stm32f746-disco.c
> index 4cfb29ef428b..0f9666008430 100644
> --- a/board/st/stm32f746-disco/stm32f746-disco.c
> +++ b/board/st/stm32f746-disco/stm32f746-disco.c
> @@ -14,7 +14,6 @@
>  #include 
>  #include 
>  #include 
> -#include 
>  #include 
>  #include 
>  #include 
> @@ -134,10 +133,5 @@ int board_init(void)
>   }
>  #endif
>  
> -#if defined(CONFIG_CMD_BMP)
> - bmp_display((ulong)stmicroelectronics_uboot_logo_8bit_rle,
> - BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
> -#endif /* CONFIG_CMD_BMP */
> -
>   return 0;
>  }
> diff --git a/configs/stm32f746-disco_defconfig 
> b/configs/stm32f746-disco_defconfig
> index 8403679d7fa6..2ca4aaf96eb6 100644
> --- a/configs/stm32f746-disco_defconfig
> +++ b/configs/stm32f746-disco_defconfig
> @@ -56,13 +56,13 @@ CONFIG_SPI=y
>  CONFIG_DM_SPI=y
>  CONFIG_STM32_QSPI=y
>  CONFIG_VIDEO=y
> +CONFIG_VIDEO_LOGO=y
>  CONFIG_BACKLIGHT_GPIO=y
>  CONFIG_VIDEO_STM32=y
>  CONFIG_VIDEO_STM32_MAX_XRES=480
>  CONFIG_VIDEO_STM32_MAX_YRES=272
>  CONFIG_SPLASH_SCREEN=y
>  CONFIG_SPLASH_SCREEN_ALIGN=y
> -CONFIG_VIDEO_BMP_RLE8=y
>  CONFIG_BMP_16BPP=y
>  CONFIG_BMP_24BPP=y
>  CONFIG_BMP_32BPP=y
> diff --git a/configs/stm32f746-disco_spl_defconfig 
> b/configs/stm32f746-disco_spl_defconfig
> index 50c2a36784af..b0afe42433a4 100644
> --- a/configs/stm32f746-disco_spl_defconfig
> +++ b/configs/stm32f746-disco_spl_defconfig
> @@ -82,13 +82,13 @@ CONFIG_DM_SPI=y
>  CONFIG_STM32_QSPI=y
>  CONFIG_SPL_TIMER=y
>  CONFIG_VIDEO=y
> +CONFIG_VIDEO_LOGO=y
>  CONFIG_BACKLIGHT_GPIO=y
>  CONFIG_VIDEO_STM32=y
>  CONFIG_VIDEO_STM32_MAX_XRES=480
>  CONFIG_VIDEO_STM32_MAX_YRES=272
>  CONFIG_SPLASH_SCREEN=y
>  CONFIG_SPLASH_SCREEN_ALIGN=y
> -CONFIG_VIDEO_BMP_RLE8=y
>  CONFIG_BMP_16BPP=y
>  CONFIG_BMP_24BPP=y
>  CONFIG_BMP_32BPP=y
> diff --git a/include/configs/stm32f746-disco.h 
> b/include/configs/stm32f746-disco.h
> index 9bf01cac47a4..00ec9efba577 100644
> --- a/include/configs/stm32f746-disco.h
> +++ b/include/configs/stm32f746-disco.h
> @@ -23,6 +23,10 @@
>  #define BOOT_TARGET_DEVICES(func) \
>   func(MMC, mmc, 0)
>  
> +#define STM32F746_BOARD_EXTRA_ENV \
> + "splashimage=0xC0448000\0" \
> + "splashpos=m,m\0"
> +
>  #include 
>  #define CFG_EXTRA_ENV_SETTINGS   \
>   "kernel_addr_r=0xC0008000\0"\
> @@ -31,7 +35,8 @@
>   "scriptaddr=0xC0418000\0"   \
>   "pxefile_addr_r=0xC0428000\0" \
>   "ramdisk_addr_r=0xC0438000\0"   \
> - BOOTENV
> + BOOTENV \
> + STM32F746_BOARD_EXTRA_ENV
>  
>  #define CFG_SYS_UBOOT_BASE   (CFG_SYS_FLASH_BASE + \
>CONFIG_SPL_PAD_TO)
> diff --git a/tools/logos/stm32f746-disco.bmp b/tools/logos/stm32f746-disco.bmp
> new file mode 100644
> index 
> ..c1ef4fb035c0833ea22aaa7d8aef1f0f4129d7fa
> GIT binary patch
> literal 18052
> zcmchf2Y8iL*6;T^5poi8NK8n81VT+AV1$GgNFV_r0)~)KrH0;nZ_;~}-g_6RN*9q{
> zRg^AB2SLR$ws8vgxAr+O=yhg3yw7)i29kI0wbowyzv|xa%T!4lUESFKCca?I5PrKM
> z#su(3jFUgc{F-9SybA6=c0dQs<0t>K4^>h#drv#~V|2!@@Zj( zeg6FUK1se8y`q~=i!|FPU}{(JoRv6(hzg!$(`|7pJe?mM)*{|K8@(h4ZFn
> zxH13u$3IM+;(5$#g|nOeyLXvie)-w_`s=TzeP%85kH7!j)Q$=;m(HIzfBW0t%nyJ0
> zi}~wc|7!m7{r4s#Hrx#A)Ye?TcFpu|)zs9DD{TJy%P;2c?b~MK>XqhK=(;wkXC6NI
> z!u;^V4`#)}dFJ!0pPA1tUox#~rkF=xe{FiUXk@ zr>1_HD6@ahF4LuPrdc*`j%iUX(fs`L_=1j^@jU56!@iZOoPp>?K6!MW6jrJ
> zerdjW^vJZUlWP9{_rIBsPoFZY7cVqt$D@@8;{TzA}quPB$ly9x*pQzh-)6H8yQ(
> zS2JfnJYzPjTy8qlOEX!imCUh22f^SMvuWKL)B3fl=GteUnWiaaSo z!(Jow@ZGk3~FGo)(=vv21P)2V*Cd2iQFbLG-Svu)!B^Amgf?%Qw8
> zq4)QjPe1<1Oc*-Q4C~p&{0JuBefO<7bMl1QyW?GR`Qin0^xy|(K>Jo^)uIKaaiuu0
> zy=rdXx@qp-xor*~*l$i9J8GI$Esy@6o7t1bn>)8|nT0c^neV^<+;nbO$9x4g
> zKmGWl88fi288^7Ud82!0)2DSa^Tqvp=KkHgX8YT3nFsgpo9@jTfcIsy=bi0l>Zsx7
> z?XtyY#e%u!$Oi|^^7(Vv+kLZc*%I^Nsgvg7`E%wgFn)LQCbN3UB6IHS$7WQ&
> zUgp+~>*m6zpP0d&+nIMZzirm9SZ3BNU1Y`&8DLI;^^fSXjWwr_9ck{}y<=|QykQ<;
> 

[PATCH 2/3] board: stm32f746-disco: refactor the display of the ST logo

2023-08-20 Thread Dario Binacchi
The patch removes the legacy mode of displaying the ST logo and adopts
the approach introduced by the commit 284b08fb51b6 ("board: stm32mp1: add
splash screen with stmicroelectronics logo"). It was necessary to use a
specific logo for the stm32f746-disco board.

Furthermore, the previous version didn't properly center the logo, hiding
its upper part.

Signed-off-by: Dario Binacchi 
---

 board/st/stm32f746-disco/stm32f746-disco.c |   6 --
 configs/stm32f746-disco_defconfig  |   2 +-
 configs/stm32f746-disco_spl_defconfig  |   2 +-
 include/configs/stm32f746-disco.h  |   7 ++-
 tools/logos/stm32f746-disco.bmp| Bin 0 -> 18052 bytes
 5 files changed, 8 insertions(+), 9 deletions(-)
 create mode 100644 tools/logos/stm32f746-disco.bmp

diff --git a/board/st/stm32f746-disco/stm32f746-disco.c 
b/board/st/stm32f746-disco/stm32f746-disco.c
index 4cfb29ef428b..0f9666008430 100644
--- a/board/st/stm32f746-disco/stm32f746-disco.c
+++ b/board/st/stm32f746-disco/stm32f746-disco.c
@@ -14,7 +14,6 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -134,10 +133,5 @@ int board_init(void)
}
 #endif
 
-#if defined(CONFIG_CMD_BMP)
-   bmp_display((ulong)stmicroelectronics_uboot_logo_8bit_rle,
-   BMP_ALIGN_CENTER, BMP_ALIGN_CENTER);
-#endif /* CONFIG_CMD_BMP */
-
return 0;
 }
diff --git a/configs/stm32f746-disco_defconfig 
b/configs/stm32f746-disco_defconfig
index 8403679d7fa6..2ca4aaf96eb6 100644
--- a/configs/stm32f746-disco_defconfig
+++ b/configs/stm32f746-disco_defconfig
@@ -56,13 +56,13 @@ CONFIG_SPI=y
 CONFIG_DM_SPI=y
 CONFIG_STM32_QSPI=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_LOGO=y
 CONFIG_BACKLIGHT_GPIO=y
 CONFIG_VIDEO_STM32=y
 CONFIG_VIDEO_STM32_MAX_XRES=480
 CONFIG_VIDEO_STM32_MAX_YRES=272
 CONFIG_SPLASH_SCREEN=y
 CONFIG_SPLASH_SCREEN_ALIGN=y
-CONFIG_VIDEO_BMP_RLE8=y
 CONFIG_BMP_16BPP=y
 CONFIG_BMP_24BPP=y
 CONFIG_BMP_32BPP=y
diff --git a/configs/stm32f746-disco_spl_defconfig 
b/configs/stm32f746-disco_spl_defconfig
index 50c2a36784af..b0afe42433a4 100644
--- a/configs/stm32f746-disco_spl_defconfig
+++ b/configs/stm32f746-disco_spl_defconfig
@@ -82,13 +82,13 @@ CONFIG_DM_SPI=y
 CONFIG_STM32_QSPI=y
 CONFIG_SPL_TIMER=y
 CONFIG_VIDEO=y
+CONFIG_VIDEO_LOGO=y
 CONFIG_BACKLIGHT_GPIO=y
 CONFIG_VIDEO_STM32=y
 CONFIG_VIDEO_STM32_MAX_XRES=480
 CONFIG_VIDEO_STM32_MAX_YRES=272
 CONFIG_SPLASH_SCREEN=y
 CONFIG_SPLASH_SCREEN_ALIGN=y
-CONFIG_VIDEO_BMP_RLE8=y
 CONFIG_BMP_16BPP=y
 CONFIG_BMP_24BPP=y
 CONFIG_BMP_32BPP=y
diff --git a/include/configs/stm32f746-disco.h 
b/include/configs/stm32f746-disco.h
index 9bf01cac47a4..00ec9efba577 100644
--- a/include/configs/stm32f746-disco.h
+++ b/include/configs/stm32f746-disco.h
@@ -23,6 +23,10 @@
 #define BOOT_TARGET_DEVICES(func) \
func(MMC, mmc, 0)
 
+#define STM32F746_BOARD_EXTRA_ENV \
+   "splashimage=0xC0448000\0" \
+   "splashpos=m,m\0"
+
 #include 
 #define CFG_EXTRA_ENV_SETTINGS \
"kernel_addr_r=0xC0008000\0"\
@@ -31,7 +35,8 @@
"scriptaddr=0xC0418000\0"   \
"pxefile_addr_r=0xC0428000\0" \
"ramdisk_addr_r=0xC0438000\0"   \
-   BOOTENV
+   BOOTENV \
+   STM32F746_BOARD_EXTRA_ENV
 
 #define CFG_SYS_UBOOT_BASE (CFG_SYS_FLASH_BASE + \
 CONFIG_SPL_PAD_TO)
diff --git a/tools/logos/stm32f746-disco.bmp b/tools/logos/stm32f746-disco.bmp
new file mode 100644
index 
..c1ef4fb035c0833ea22aaa7d8aef1f0f4129d7fa
GIT binary patch
literal 18052
zcmchf2Y8iL*6;T^5poi8NK8n81VT+AV1$GgNFV_r0)~)KrH0;nZ_;~}-g_6RN*9q{
zRg^AB2SLR$ws8vgxAr+O=yhg3yw7)i29kI0wbowyzv|xa%T!4lUESFKCca?I5PrKM
z#su(3jFUgc{F-9SybA6=c0dQs<0t>K4^>h#drv#~V|2!@@Zj(XqhK=(;wkXC6NI
z!u;^V4`#)}dFJ!0pPA1tUox#~rkF=xe{FiUXk@1_HD6@ahF4LuPrdc*`j%iUX(fs`L_=1j^@jU56!@iZOoPp>?K6!MW6jrJ
zerdjW^vJZUlWP9{_rIBsPoFZY7cVqt$D@@8;{TzA}quPB$ly9x*pQzh-)6H8yQ(
zS2JfnJYzPjTy8qlOEX!imCUh22f^SMvuWKL)B3fl=GteUnWiaaSo!(Jow@ZGk3~FGo)(=vv21P)2V*Cd2iQFbLG-Svu)!B^Amgf?%Qw8
zq4)QjPe1<1Oc*-Q4C~p&{0JuBefO<7bMl1QyW?GR`Qin0^xy|(K>Jo^)uIKaaiuu0
zy=rdXx@qp-xor*~*l$i9J8GI$Esy@6o7t1bn>)8|nT0c^neV^<+;nbO$9x4g
zKmGWl88fi288^7Ud82!0)2DSa^Tqvp=KkHgX8YT3nFsgpo9@jTfcIsy=bi0l>Zsx7
z?XtyY#e%u!$Oi|^^7(Vv+kLZc*%I^Nsgvg7`E%wgFn)LQCbN3UB6IHS$7WQ&
zUgp+~>*m6zpP0d&+nIMZzirm9SZ3BNU1Y`&8DLI;^^fSXjWwr_9ck{}y<=|QykQ<;
zixWo5sgv-Tt7hq(S!ThTQ_bn)
z$IOl`o6O?bGr;T}Z1sWJuxh!PF@Cf;uy>D{KYfZhxPPD7ynZcsy>GU@wcbp8V-WhE
zF!%1RdjPbg7%6LhqRZeP{+z`IqG9%q%2|=-V!1w
zq><9hQyOO}`?om!3b*U9cg4{m2Bk#!j(n4O4w`7J?U>!fk-SX?N5>>c|>t#(t(_qbBmQd?Ta8LCtky;~7YK32FXt`m@Im
zpGbW{_gqZ!u#;EOH4r;gfbuOQwUCYMx*6!t$6ii(O615+Dd8sx{JIgeW99zALqtjb$mD;-9^rUfD@}+lM+0YW>jZN
zLsNiNST(yryB@M%)=4^1;wx{+ENnN>;t|C9CGp%ic3nsuAQUJSL2I-;%
z775p2q9a-Sz-p+h1#zWFAR>=}_;z$Dz*vm6kSi3%Pc~wfuS}^X(4#vu4kPBo7e(a!?RF!ljl>m$4NKRth#rP#8