From 1479e3b9199e0b26e08cc162dd27566b479d3011 Mon Sep 17 00:00:00 2001 From: ge-yafang Date: Tue, 2 Aug 2022 14:56:50 +0800 Subject: [PATCH] update docs Signed-off-by: ge-yafang --- .../application-dev/ability/stage-ability.md | 2 +- zh-cn/application-dev/website.md | 4 +- .../windowmanager/Readme-CN.md | 22 +- .../windowmanager/application-window-fa.md | 254 +++++++++++ .../windowmanager/application-window-stage.md | 406 ++++++++++++++++++ .../windowmanager/figures/windowMode.png | Bin 0 -> 157605 bytes .../windowmanager/system-window-stage.md | 109 +++++ .../windowmanager/window-guidelines.md | 107 ----- .../windowmanager/window-overview.md | 72 +++- 9 files changed, 853 insertions(+), 123 deletions(-) create mode 100644 zh-cn/application-dev/windowmanager/application-window-fa.md create mode 100644 zh-cn/application-dev/windowmanager/application-window-stage.md create mode 100644 zh-cn/application-dev/windowmanager/figures/windowMode.png create mode 100644 zh-cn/application-dev/windowmanager/system-window-stage.md delete mode 100644 zh-cn/application-dev/windowmanager/window-guidelines.md diff --git a/zh-cn/application-dev/ability/stage-ability.md b/zh-cn/application-dev/ability/stage-ability.md index fc43d7b00c..061faac68d 100644 --- a/zh-cn/application-dev/ability/stage-ability.md +++ b/zh-cn/application-dev/ability/stage-ability.md @@ -72,7 +72,7 @@ Ability功能如下(Ability类,具体的API详见[接口文档](../reference ``` 4. 实现Ability生命周期接口。 - 在`onWindowStageCreate(windowStage)`中通过loadContent接口设置应用要加载的页面,window接口的使用详见[窗口开发指导](../windowmanager/window-guidelines.md)。 + 在`onWindowStageCreate(windowStage)`中通过loadContent接口设置应用要加载的页面,window接口的使用详见[窗口开发指导](../windowmanager/application-window-stage.md)。 ```ts export default class MainAbility extends Ability { onCreate(want, launchParam) { diff --git a/zh-cn/application-dev/website.md b/zh-cn/application-dev/website.md index 55e05a3ce8..cf096c2997 100644 --- a/zh-cn/application-dev/website.md +++ b/zh-cn/application-dev/website.md @@ -190,7 +190,9 @@ - 窗口管理 - 窗口 - [窗口开发概述](windowmanager/window-overview.md) - - [窗口开发指导](windowmanager/window-guidelines.md) + - [管理应用窗口(Stage模型)](windowmanager/application-window-stage.md) + - [管理应用窗口(FA模型)](windowmanager/application-window-fa.md) + - [管理系统窗口(仅Stage模型支持)](windowmanager/system-window-stage.md) - 屏幕属性 - [屏幕属性开发概述](windowmanager/display-overview.md) - [屏幕属性开发指导](windowmanager/display-guidelines.md) diff --git a/zh-cn/application-dev/windowmanager/Readme-CN.md b/zh-cn/application-dev/windowmanager/Readme-CN.md index fcfb79f31d..fff76b863d 100644 --- a/zh-cn/application-dev/windowmanager/Readme-CN.md +++ b/zh-cn/application-dev/windowmanager/Readme-CN.md @@ -1,12 +1,16 @@ # 窗口管理 -* 窗口 - * [窗口开发概述](window-overview.md) - * [窗口开发指导](window-guidelines.md) -* 屏幕属性 - * [屏幕属性开发概述](display-overview.md) - * [屏幕属性开发指导](display-guidelines.md) -* 屏幕截图 - * [屏幕截图开发概述](screenshot-overview.md) - * [屏幕截图开发指导](screenshot-guidelines.md) +- 窗口 + - [窗口开发概述](window-overview.md) + - [管理应用窗口(Stage模型)](application-window-stage.md) + - [管理应用窗口(FA模型)](application-window-fa.md) + - [管理系统窗口(仅Stage模型支持)](system-window-stage.md) + +- 屏幕属性 + - [屏幕属性开发概述](display-overview.md) + - [屏幕属性开发指导](display-guidelines.md) + +- 屏幕截图 + - [屏幕截图开发概述](screenshot-overview.md) + - [屏幕截图开发指导](screenshot-guidelines.md) \ No newline at end of file diff --git a/zh-cn/application-dev/windowmanager/application-window-fa.md b/zh-cn/application-dev/windowmanager/application-window-fa.md new file mode 100644 index 0000000000..c8128dfdc7 --- /dev/null +++ b/zh-cn/application-dev/windowmanager/application-window-fa.md @@ -0,0 +1,254 @@ +# 管理应用窗口(FA模型) + +## 基本概念 + +窗口沉浸式能力:指对状态栏、导航栏等系统窗口进行控制,减少状态栏导航栏等系统界面的突兀感,从而使用户获得最佳体验的能力。 + +沉浸式能力只在应用主窗口作为全屏窗口时生效。通常情况下,应用子窗口(弹窗、悬浮窗口等辅助窗口)和处于自由窗口下的应用主窗口无法使用沉浸式能力。 + +## 场景介绍 + +在FA模型下,管理应用窗口的典型场景有: + +- 设置应用子窗口属性及目标页面 + +- 体验窗口沉浸式能力 + +以下分别介绍具体开发方式。 + + +## 接口说明 + +上述场景涉及的常用接口如下表所示。更多API说明请参见[API参考](../reference/apis/js-apis-window.md)。 + +| 实例名 | 接口名 | 描述 | +| -------- | -------- | -------- | +| window静态方法 | create(id:string,type:WindowType,callback:AsyncCallback]<Window>):void | 创建子窗口。
此接口仅可在`FA`模型下使用。 | +| window静态方法 | getTopWindow(callback:AsyncCallback<Window>):void | 获取当前应用内最后显示的窗口。
此接口仅可在`FA`模型下使用。 | +| window静态方法 | find(id:string,callback:AsyncCallback<Window>):void | 查找`id`所对应的窗口。 | +| Window | loadContent(path:string,callback:AsyncCallback<void>):void | 为当前窗口加载具体页面内容。 | +| Window | moveTo(x:number,y:number,callback:AsyncCallback<void>):void | 移动当前窗口。 | +| Window | setBackgroundColor(color:string,callback:AsyncCallback<void>):void | 设置窗口的背景色 | +| Window | setBrightness(brightness:number,callback:AsyncCallback<void>):void | 设置屏幕亮度值。 | +| Window | resetSize(width:number,height:number,callback:AsyncCallback<void>):void | 改变当前窗口大小。 | +| Window | setFullScreen(isFullScreen:boolean,callback:AsyncCallback<void>):void | 设置窗口是否全屏显示。 | +| Window | setLayoutFullScreen(isLayoutFullScreen:boolean,callback:AsyncCallback<void>):void | 设置窗口布局是否为全屏布局。 | +| Window | setSystemBarEnable(names:Array<'status'\|'navigation'>):Promise<void> | 设置导航栏、状态栏是否显示。 | +| Window | setSystemBarProperties(systemBarProperties:SystemBarProperties,callback:AsyncCallback<void>):void | 设置窗口内导航栏、状态栏属性。
`systemBarProperties`:导航栏、状态栏的属性集合。 | +| Window | show(callback: AsyncCallback\): void | 显示当前窗口。 | +| Window | on(type:'touchOutside',callback:Callback<void>):void | 开启本窗口区域外的点击事件的监听。 | +| Window | destroy(callback: AsyncCallback<void>):void | 销毁当前窗口。 | + + +## 设置应用子窗口 + +开发者可以按需创建应用子窗口,如弹窗等,并对其进行属性设置等操作。 + + +### 开发步骤 + +1. 创建/获取子窗口对象。 + - 可以通过`window.create`接口创建子窗口。 + - 可以通过`window.getTopWindow`来获取最后显示的窗口得到子窗口。 + - 也可以通过`window.find`接口来查找已经创建的窗口从而得到子窗口。 + + ```js + import window from '@ohos.window'; + + var windowClass = null; + // 1.方式一:创建子窗口。 + window.create("subWindow", window.WindowType.TYPE_APP, (err, data) => { + if (err.code) { + console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in creating subWindow. Data: ' + JSON.stringify(data)); + windowClass = data; + }); + // 1.方式二:获取子窗口。 + window.getTopWindow((err, data) => { + if (err.code) { + console.error('Failed to get the subWindow. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in getting subWindow. Data: ' + JSON.stringify(data)); + windowClass = data; + }); + // 1.方式三:查找得到子窗口。 + window.find("subWindow", (err, data) => { + if (err.code) { + console.error('Failed to find the subWindow. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in finding subWindow. Data: ' + JSON.stringify(data)); + windowClass = data; + }); + ``` + +2. 设置子窗口属性。 + 子窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置窗口背景色、亮度等属性。 + + + ```js + // 2.移动子窗口位置。 + windowClass.moveTo(300, 300, (err, data) => { + if (err.code) { + console.error('Failed to move the window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in moving the window. Data: ' + JSON.stringify(data)); + }); + // 2.改变子窗口大小。 + windowClass.resetSize(500, 1000, (err, data) => { + if (err.code) { + console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in changing the window size. Data: ' + JSON.stringify(data)); + }); + ``` + +3. 加载显示子窗口的具体内容。 + 使用`loadContent`和`show`接口加载显示子窗口的具体内容。 + + + ```js + // 3.为子窗口加载对应的目标页面。 + windowClass.loadContent("pages/page2", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)); + // 3.显示子窗口。 + windowClass.show((err, data) => { + if (err.code) { + console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data)); + }); + }); + ``` + +4. 销毁子窗口。 + 当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用`destroy`接口销毁子窗口。 + + + ```js + // 4.销毁子窗口。当不再需要某些子窗口时,可根据场景的具体实现逻辑,使用destroy接口销毁子窗口,此处以监听窗口区域外的点击事件实现子窗口的销毁。 + windowClass.on('touchOutside', () => { + console.info('touch outside'); + windowClass.destroy((err, data) => { + if (err.code) { + console.error('Failed to destroy the subwindow. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in destroying the subwindow. Data: ' + JSON.stringify(data)); + }); + }); + ``` + + +## 体验窗口沉浸式能力 + +在看视频、玩游戏等场景下,用户往往希望隐藏状态栏、导航栏等不必要的系统窗口,从而获得更佳的沉浸式体验。此时可以借助窗口沉浸式能力(窗口沉浸式能力都是针对应用主窗口而言的),达到预期效果。 + + +### 开发步骤 + +1. 获取主窗口对象。 + 沉浸式能力需要在成功获取应用主窗口对象的前提下进行。使用`window.getTopWindow`接口来获取得到主窗口。 + + + ```js + import window from '@ohos.window'; + + var mainWindowClass = null; + // 1.获取主窗口 + window.getTopWindow((err, data) => { + if (err.code) { + console.error('Failed to get the subWindow. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in getting subWindow. Data: ' + JSON.stringify(data)); + mainWindowClass = data; + }); + ``` + +2. 实现沉浸式效果。有以下三种方式: + - 方式一:调用`setFullScreen`接口,设置应用主窗口为全屏显示,此时导航栏、状态栏将隐藏,从而达到沉浸式效果。 + - 方式二:调用`setSystemBarEnable`接口,设置导航栏、状态栏不显示,从而达到沉浸式效果。 + - 方式三:调用`setLayoutFullScreen`接口,设置应用主窗口为全屏布局;然后调用`setSystemPropertites`接口,设置导航栏、状态栏的透明度、背景/文字颜色以及高亮图标等属性,使之保持与主窗口显示协调一致,从而达到沉浸式效果。 + + ```js + // 2.实现沉浸式效果。方式一:设置窗口全屏显示。 + var isFullScreen = true; + mainWindowClass.setFullScreen(isFullScreen, (err, data) => { + if (err.code) { + console.error('Failed to enable the full-screen mode. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in enabling the full-screen mode. Data: ' + JSON.stringify(data)); + }); + // 2.实现沉浸式效果。方式二:设置导航栏、状态栏不显示。 + var names = null; + mainWindowClass.setSystemBarEnable(names, (err, data) => { + if (err.code) { + console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the system bar to be visible. Data: ' + JSON.stringify(data)); + }); + // 2.实现沉浸式效果。 + //方式三:设置窗口为全屏布局,配合设置状态栏、导航栏的透明度、背景/文字颜色及高亮图标等属性,与主窗口显示保持协调一致。 + var isLayoutFullScreen = true; + mainWindowClass.setLayoutFullScreen(isLayoutFullScreen, (err, data) => { + if (err.code) { + console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the window layout to full-screen mode. Data: ' + JSON.stringify(data)); + }); + var SystemBarProperties = { + statusBarColor: '#ff00ff', + navigationBarColor: '#00ff00', + //以下两个属性从API Version7开始支持 + isStatusBarLightIcon: false, + isNavigationBarLightIcon: false, + //以下两个属性从API Version8开始支持 + statusBarContentColor: '#ffffff', + navigationBarContentColor: '#ffffff' + }; + mainWindowClass.setSystemBarProperties(SystemBarProperties, (err, data) => { + if (err.code) { + console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the system bar properties. Data: ' + JSON.stringify(data)); + }); + ``` + +3. 加载显示沉浸式窗口的具体内容。 + 使用`loadContent`和`show`接口加载显示沉浸式窗口的具体内容。 + + + ```js + // 3.为沉浸式窗口加载对应的目标页面。 + mainWindowClass.loadContent("pages/page3", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)); + // 3.显示沉浸式窗口。 + mainWindowClass.show((err, data) => { + if (err.code) { + console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data)); + }); + }); + ``` + diff --git a/zh-cn/application-dev/windowmanager/application-window-stage.md b/zh-cn/application-dev/windowmanager/application-window-stage.md new file mode 100644 index 0000000000..07f9d05037 --- /dev/null +++ b/zh-cn/application-dev/windowmanager/application-window-stage.md @@ -0,0 +1,406 @@ +# 管理应用窗口(Stage模型) + + +## 基本概念 + +- 窗口沉浸式能力:指对状态栏、导航栏等系统窗口进行控制,减少状态栏导航栏等系统界面的突兀感,从而使用户获得最佳体验的能力。 + 沉浸式能力只在应用主窗口作为全屏窗口时生效。通常情况下,应用子窗口(弹窗、悬浮窗口等辅助窗口)和处于自由窗口下的应用主窗口无法使用沉浸式能力。 + +- 悬浮窗:全局悬浮窗口是一种特殊的应用窗口,具备在应用主窗口和对应Ability退至后台后仍然可以在前台显示的能力。 + 悬浮窗口可以用于应用退至后台后,使用小窗继续播放视频,或者为特定的应用创建悬浮球等快速入口。应用在创建悬浮窗口前,需要申请对应的权限。 + + +## 场景介绍 + +在`Stage`模型下,管理应用窗口的典型场景有: + +- 设置应用主窗口属性及目标页面 + +- 设置应用子窗口属性及目标页面 + +- 体验窗口沉浸式能力 + +- 设置悬浮窗 + +以下分别介绍具体开发方式。 + + +## 接口说明 + +上述场景涉及的常用接口如下表所示。更多API说明请参见[API参考](../reference/apis/js-apis-window.md)。 + +| 实例名 | 接口名 | 描述 | +| -------- | -------- | -------- | +| WindowStage | getMainWindow(callback:AsyncCallback<Window>):void | 获取`WindowStage`实例下的主窗口。
此接口仅可在`Stage`模型下使用。 | +| WindowStage | loadContent(path:string,callback:AsyncCallback<void>):void | 为当前`WindowStage`的主窗口加载具体页面。
此接口仅可在`Stage`模型下使用。 | +| WindowStage | createSubWindow(name:string,callback:AsyncCallback<Window>):void | 创建子窗口。
此接口仅可在`Stage`模型下使用。 | +| window静态方法 | create(ctx:Context,id:string,type:WindowType,callback:AsyncCallback<Window>):void | 创建子窗口。
-`ctx`:为应用上下文信息。
-`type`:为创建的窗口类型。 | +| Window | loadContent(path:string,callback:AsyncCallback<void>):void | 为当前窗口加载具体页面。 | +| Window | setBackgroundColor(color:string,callback:AsyncCallback<void>):void | 设置窗口的背景色。 | +| Window | setBrightness(brightness:number,callback:AsyncCallback<void>):void | 设置屏幕亮度值。 | +| Window | setTouchable(isTouchable:boolean,callback:AsyncCallback<void>):void | 设置窗口是否为可触状态。 | +| Window | moveTo(x:number,y:number,callback:AsyncCallback<void>):void | 移动当前窗口位置。 | +| Window | resetSize(width:number,height:number,callback:AsyncCallback<void>):void | 改变当前窗口大小。 | +| Window | setFullScreen(isFullScreen:boolean,callback:AsyncCallback<void>):void | 设置窗口是否全屏显示。 | +| Window | setLayoutFullScreen(isLayoutFullScreen:boolean,callback:AsyncCallback<void>):void | 设置窗口布局是否为全屏布局。 | +| Window | setSystemBarEnable(names:Array<'status'\|'navigation'>):Promise<void> | 设置导航栏、状态栏是否显示。 | +| Window | setSystemBarProperties(systemBarProperties:SystemBarProperties,callback:AsyncCallback<void>):void | 设置窗口内导航栏、状态栏属性。
`systemBarProperties`:导航栏、状态栏的属性集合。 | +| Window | show(callback: AsyncCallback\): void | 显示当前窗口。 | +| Window | on(type:'touchOutside',callback:Callback<void>):void | 开启本窗口区域外的点击事件的监听。 | +| Window | destroy(callback: AsyncCallback<void>):void | 销毁当前窗口。 | + + +## 设置应用主窗口 + +在`Stage`模型下,应用主窗口由`Ability`创建并维护生命周期。在`Ability`的`onWindowStageCreate`回调中,通过`WindowStage`获取应用主窗口,即可对其进行属性设置等操作 + + +### 开发步骤 + +1. 获取应用主窗口。 + 通过`getMainWindow`接口获取应用主窗口。 + +2. 设置主窗口属性。 + 可设置主窗口的背景色、亮度值、是否可触等多个属性,开发者可根据需要选择对应的接口。本示例以设置“是否可触”属性为例。 + +3. 为主窗口加载对应的目标页面。 + 通过`loadContent`接口加载主窗口的目标页面。 + + +```ts +import Ability from '@ohos.application.Ability' + +class MainAbility extends Ability { + onWindowStageCreate(windowStage) { + // 1.获取应用主窗口。 + var windowClass = null; + windowStage.getMainWindow((err, data) => { + if (err.code) { + console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err)); + return; + } + windowClass = data; + console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data)); + // 2.设置主窗口属性。以设置"是否可触"属性为例。 + var isTouchable = true; + windowClass.setTouchable(isTouchable, (err, data) => { + if (err.code) { + console.error('Failed to set the window to be touchable. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the window to be touchable. Data:' + JSON.stringify(data)); + }) + }) + // 3.为主窗口加载对应的目标页面。 + windowStage.loadContent("pages/page2", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)); + }); + } +}; +``` + + +## 设置应用子窗口 + +开发者可以按需创建应用子窗口,如弹窗等,并对其进行属性设置等操作。 + + +### 开发步骤 + +1. 创建/获取应用子窗口。 + 通过`createSubWindow`接口创建应用子窗口。 + + 通过`getSubWindow`接口获取已创建的应用子窗口。 + +2. 设置子窗口属性。 + 子窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置窗口背景色、亮度等属性。 + +3. 加载显示子窗口的具体内容。 + 通过`loadContent`和`show`接口加载显示子窗口的具体内容。 + +4. 销毁子窗口。 + 当不再需要某些子窗口时,可根据具体实现逻辑,使用`destroy`接口销毁子窗口。 + + + ```ts + import Ability from '@ohos.application.Ability' + + class MainAbility extends Ability { + onWindowStageCreate(windowStage) { + // 1.创建应用子窗口。 + var sub_windowClass = null; + windowStage.createSubWindow("mySubWindow", (err, data) => { + if (err.code) { + console.error('Failed to create the subwindow. Cause: ' + JSON.stringify(err)); + return; + } + sub_windowClass = data; + console.info('Succeeded in creating the subwindow. Data: ' + JSON.stringify(data)); + // 1.获取已创建的应用子窗口。 + windowStage.getSubWindow((err, data) => { + if (err.code) { + console.error('Failed to obtain the subWindow. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in obtaining the subWindow. Data: ' + JSON.stringify(data)); + sub_windowClass = data; + }); + // 2.子窗口创建成功后,设置子窗口的位置、大小及相关属性等。 + sub_windowClass.moveTo(300, 300, (err, data) => { + if (err.code) { + console.error('Failed to move the window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in moving the window. Data: ' + JSON.stringify(data)); + }); + sub_windowClass.resetSize(500, 1000, (err, data) => { + if (err.code) { + console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in changing the window size. Data: ' + JSON.stringify(data)); + }); + // 3.为子窗口加载对应的目标页面。 + sub_windowClass.loadContent("pages/page3", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)); + // 3.显示子窗口。 + sub_windowClass.show((err, data) => { + if (err.code) { + console.error('Failed to show the window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data)); + }); + }); + // 4.销毁子窗口。当不再需要子窗口时,可根据具体实现逻辑,使用destroy对其进行销毁,此处以监听窗口区域外的点击事件为例实现子窗口的销毁。 + sub_windowClass.on('touchOutside', () => { + console.info('touch outside'); + sub_windowClass.destroy((err, data) => { + if (err.code) { + console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data)); + }); + }); + }) + } + }; + ``` + + +## 体验窗口沉浸式能力 + +在看视频、玩游戏等场景下,用户往往希望隐藏状态栏、导航栏等不必要的系统窗口,从而获得更佳的沉浸式体验。此时可以借助窗口沉浸式能力(窗口沉浸式能力都是针对应用主窗口而言的),达到预期效果。 + + +### 开发步骤 + +1. 获取应用主窗口。 + 通过`getMainWindow`接口获取应用主窗口。 + +2. 实现沉浸式效果。有以下三种方式: + - 方式一:调用`setFullScreen`接口,设置应用主窗口为全屏显示,此时导航栏、状态栏将隐藏,从而达到沉浸式效果。 + - 方式二:调用`setSystemBarEnable`接口,设置导航栏、状态栏不显示,从而达到沉浸式效果。 + - 方式三:调用`setLayoutFullScreen`接口,设置应用主窗口为全屏布局;然后调用`setSystemPropertites`接口,设置导航栏、状态栏的透明度、背景/文字颜色以及高亮图标等属性,使之保持与主窗口显示协调一致,从而达到沉浸式效果。 + +3. 加载显示沉浸式窗口的具体内容。 + 通过`loadContent`和`show`接口加载显示沉浸式窗口的具体内容。 + + + ```ts + import Ability from '@ohos.application.Ability' + + class MainAbility extends Ability { + onWindowStageCreate(windowStage) { + // 1.获取应用主窗口。 + var windowClass = null; + windowStage.getMainWindow((err, data) => { + if (err.code) { + console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err)); + return; + } + windowClass = data; + console.info('Succeeded in obtaining the main window. Data: ' + JSON.stringify(data)); + + // 2.实现沉浸式效果。方式一:设置应用主窗口为全屏显示。 + var isFullScreen = true; + windowClass.setFullScreen(isFullScreen, (err, data) => { + if (err.code) { + console.error('Failed to enable the full-screen mode. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in enabling the full-screen mode. Data: ' + JSON.stringify(data)); + }); + // 2.实现沉浸式效果。方式二:设置导航栏、状态栏不显示。 + var names = null; + windowClass.setSystemBarEnable(names, (err, data) => { + if (err.code) { + console.error('Failed to set the system bar to be visible. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the system bar to be visible. Data: ' + JSON.stringify(data)); + }); + // 2.实现沉浸式效果。方式三:设置窗口为全屏布局,配合设置导航栏、状态栏的透明度、背景/文字颜色及高亮图标等属性,与主窗口显示保持协调一致。 + var isLayoutFullScreen = true; + windowClass.setLayoutFullScreen(isLayoutFullScreen, (err, data) => { + if (err.code) { + console.error('Failed to set the window layout to full-screen mode. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the window layout to full-screen mode. Data: ' + JSON.stringify(data)); + }); + var SystemBarProperties = { + statusBarColor: '#ff00ff', + navigationBarColor: '#00ff00', + // 以下两个属性从API Version 7开始支持 + isStatusBarLightIcon: false, + isNavigationBarLightIcon: false, + // 以下两个属性从API Version 8开始支持 + statusBarContentColor: '#ffffff', + navigationBarContentColor: '#ffffff' + }; + windowClass.setSystemBarProperties(SystemBarProperties, (err, data) => { + if (err.code) { + console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the system bar properties. Data: ' + JSON.stringify(data)); + }); + }) + // 3.为沉浸式窗口加载对应的目标页面。 + windowStage.loadContent("pages/page2", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)); + // 3.显示沉浸式窗口。 + windowStage.show((err, data) => { + if (err.code) { + console.error('Failed to show the window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data)); + }); + }); + } + }; + ``` + + +## 设置悬浮窗 + +悬浮窗可以在已有的任务基础上,创建一个始终在前台显示的窗口。即使创建悬浮窗的任务退至后台,悬浮窗仍然可以在前台显示。开发者可以创建悬浮窗,并对悬浮窗进行属性设置等操作。 + + +### 开发步骤 + +1. 申请权限。 + 创建`WindowType.TYPE_FLOAT`即悬浮窗类型的窗口,需要在`module.json5`文件的`requestPermissions`对象中配置`ohos.permission.SYSTEM_FLOAT_WINDOW`权限。更多配置信息详见[应用包结构配置文件的说明](../quick-start/stage-structure.md#requestPermissions对象内部结构)。 + + > **说明:** + > 虽然悬浮窗具备始终在前台显示的能力,但如果创建悬浮窗的应用任务被系统回收,仍然会导致悬浮窗从界面移除。如果想要保持悬浮窗口始终在前台显示,请申请[长时任务](../task-management/background-task-overview.md#长时任务)。 + + + ```json + { + "module": { + "requestPermissions":[ + { + "name" : "ohos.permission.SYSTEM_FLOAT_WINDOW", + "usedScene": { + "abilities": [ + "MainAbility" + ], + "when":"inuse" + } + } + ] + } + } + ``` + +2. 创建悬浮窗。 + 通过`window.create`接口创建悬浮窗类型的窗口。 + +3. 对悬浮窗进行属性设置等操作。 + 悬浮窗窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置悬浮窗背景色、亮度等属性。 + +4. 加载显示悬浮窗的具体内容。 + 通过`loadContent`和`show`接口加载显示悬浮窗的具体内容。 + +5. 销毁悬浮窗。 + + 当不再需要悬浮窗时,可根据具体实现逻辑,使用`destroy`接口销毁悬浮窗。 + + ```ts + import Ability from '@ohos.application.Ability' + import ExtensionContext from '@ohos.application.ServiceExtensionAbility'; + import window from '@ohos.window'; + + class MainAbility extends Ability { + onWindowStageCreate(windowStage) { + // 2. 创建悬浮窗。 + var windowClass = null; + window.create(this.context, "floatWindow", window.WindowType.TYPE_FlOAT, (err, data) => { + if (err.code) { + console.error('Failed to create the floatWindow. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in creating the floatWindow. Data: ' + JSON.stringify(data)); + windowClass = data; + // 3.悬浮窗窗口创建成功后,设置悬浮窗的位置、大小及相关属性等。 + windowClass.moveTo(300, 300, (err, data) => { + if (err.code) { + console.error('Failed to move the window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in moving the window. Data: ' + JSON.stringify(data)); + }); + windowClass.resetSize(500, 1000, (err, data) => { + if (err.code) { + console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in changing the window size. Data: ' + JSON.stringify(data)); + }); + // 4.为悬浮窗加载对应的目标页面。 + windowClass.loadContent("pages/page4", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)); + // 4.显示悬浮窗。 + windowClass.show((err, data) => { + if (err.code) { + console.error('Failed to show the window. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data)); + }); + }); + //5.销毁悬浮窗。当不再需要悬浮窗时,可根据具体实现逻辑,使用destroy对其进行销毁,此处以监听窗口区域外的点击事件为例实现悬浮窗的销毁。 + windowClass.on('touchOutside', () => { + console.info('touch outside'); + windowClass.destroy((err, data) => { + if (err.code) { + console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data)); + }); + }); + }); + } + }; + ``` diff --git a/zh-cn/application-dev/windowmanager/figures/windowMode.png b/zh-cn/application-dev/windowmanager/figures/windowMode.png new file mode 100644 index 0000000000000000000000000000000000000000..6d4b793d46343ff33efec41ce90c7418ba2fe779 GIT binary patch literal 157605 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%0AOj|2Yk!5Li%x!t-Rm87=_O|@TM!t@ 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
Z1AZ${BMP zaSy}%u?@guDL3qurT*ojmohvmy5s0&;pTVV*6JJM5YfQ3{ElBN&Mx)%G>1)v`^#=_ z-9=SHL%&5^md8GygcZbZhU5nDe!yb_+}UB}Cp@BL3%>7WWj^-5jiA{_ZyuDI0AMb( zgh|F;ZDNQD`0X`?YvVThhWf+^tb7l0rP{XK)Q*?4rHRkG8}Acb{zF;#^X{ehVY7;e zMZdH!gl$~dfL~<{#>e;`6>(SfL1-i_YyLg+&GpskgS`Ie`!$>h}Dums+p<;!GN z-CbNx@tAfDIIG*<8_{+zNvrT7Z_2qivfA*O{UyU-By1x~LRSen2~Mk^b^6l#Ahz7- zi?eAF4`-S{Y`JeQ1>SS_@Deq$m#IX8V!iG2nfs{jD{40oEv3Tve*8=+3}{AUH_|nQ zcev}fj4l!Lz6a>Lk}S5X0IZ2Q_Hf-N87kG1P_@TR+SIoEGlDk82dddwP@4nojJp5Z zb^c>1+@R$V4`9mRHB;7T1Xa##Xjg3F&G$DI!&s!YJA5wrU4E|<_c(~4Pz5M95avNN z+*JU5N>0|j)DzuNR#FP_0_qZC-+e#m+XuF3YSn-8v|H3S{b}gVPCbi=b479J#tk$V z7ZBVgJaYt7|4vywCr2UCvy?nmpc*6ec0<9-@orm~!R344! z_k`9L1RI<2L%ujBrZC_>g-ytn{2-x-JNzI<>~lpS+m{5R(%zOOTahC(s(abr5i4cK zPb#&@foM@I1G2OM4bL&^uY!61eK^sZMn}<)crCwu%lWxI(!C~S@?bw93h%G}g7HBG zTdmDqRu8h8Mn^-?O)=1qY@&(9ORmPBRQ|j}m=UnFrs|WLJu|t~jGXGO?3vos4Bh^tX25CKk8LFFPV4bm0apyY<>Q38oOjkA zz5V|D-l5y)ARzCY2r?Wwb}u<8E&cp*BJ@=a@BWPSg%Ht^zSG8AaHgE5pWqK)F}u9s z(H8vca2z{y+mZiKV*igH>+rMWsmH_K^!-_qChRv-KgWQFUElyW2Rfy^l-4s^^J}0) zhwX$|Rgcnfcx!>KgVmB^RK_08I~)Z6{i?9{Acf9~JI##O~iGR(1?Abty;Z zn!!mRnuppra=8B-YwsJRiB60FZ592O%o}Q zJmsnxd*$9>vXO>k+X(=(xnfQ(N99m2G9s(r!B4ahEuRv}apmY&Rt|dv>yKKVw>BZ@ z+$>BHWc^;|hVJ;LN0mLc1*xYziYMYUPc(m*y8XS)zXf;`FSqE0Im>~dba_*|11j7_T zYs~jo2R3S+wGx~Zis!WS89i{^r(AcqPV=3cXV8O6#;M}^5RDH+T}((uWK`}T*W0gJ z(M0um_{C@pZ_{tU@$bj`{m7N<+=EIVXc80gp_a|y3Xe`>Yt}dqp_~CuZ#5bVKn~$p z`z(e#AD~O>zTx-YOV7bKN}Ho=Xi%wizQ_NgG=K;>|9ukc*J}4DxHnb6LBY>jc9}%| zcP@xd+yk&XM?!!Z=b?EUo9{m>_^p2xs(+_&qkqmoC@)fDLDlU4S0wm~60dBmHw=|F{c4s`{AEx3g}w*NP`@X8;GNZoWJmz{3Q}eWKFU+%CJ!@bUJa zH3e9WV6>m*(=`^;VxGA&}Ju>y@?F3h?33Li5DeU$jUw$B{?g;+x2ZWvjP_`5z z(GUTq1=&ug{hDpK{=sXoshN_j!GR;X1UOy+STVe%>HsgCC7*v?0;NF1dfc-cQ-ak7j?(k__=c4xw&r7pg{?S5oVH>!tL);#NYLq9A9rqzxN_t z2@7<$!oQTg{%_lWV+2N4t!j2s;L?Z<21c#B(RB{L3;agl?_t_HB@mA=lFTFmh)b-X zQ-_i5(kL9UBl8){wl()ASsLm+enh25{XqTx=EioVJI~};jBgqbe6n;;v4 zSd^7)SRpnut|W~R5|~=3F2LVr3T$!&sk!LgjWnDJ*f=B>lLf-%wpF#9oJFr=#~#Va zV@)XyJhH9p^ZJXyew$Ks3XvQ~Utp0I&-E#o_^d6v+leGMbeB^YXIt(G2cQpYxnQ)Q zcQ3@@!=)99I)@>HMKrIc;w~amTh=)VI+tcy_}X4?}zin}=Z#Bs{1 z(?=Y_!CY8BY)|{v;5_#_P{RJy!N!8&&fn8UFIW|8>*7Z_a{=6 z`G!eyj8oWW+20-pY+%A?Zu`Y6JOH6Cb0 z8Y`j(lVE(g9iYKV1~tOIAqWG5L}R#BS-F|_i>jO1^yqZbmNl}xwtu0~` znCAxla1`Y4nXyHe!Hj?(>Q=q0Yg{HjIlc$K(GJAeAp}s3<`e$SRp4NrCU`1)eYODil zc?{x8&;C&12KVduRrrEp(+4)83%zq`8ZykQ|U6g6UabIo@qOSAkMaA%_M zKu7OU+x;dXL4yy8zx644BkWmV^9`DhEmk!LOVSqsUZ^`?*bz!2ID~HRutzd63+m~_ zW=jPah_KJ+;VInsph#Dt+nYc|6jEThVh}# z(%y4NET96IbOLx@f$rgrR?JzukC$5H{8KM1Dc>~7;aSh6kK=^tzg&bSTDY1$S{9D+ zMr^h4>c~Dvl}6zaMF$2E@e2L*jjt9Rz^eO>^%`sp764$Y7Rd3I6#vPTXS}_cq*2q0 zD+D)s)bOV18eZ=C!z6xTv5`_c1m?&3h|z&C`Aug9O4wq!<4XB6tcO(A7l;9O_ZkB6 zt4Q;|);SO?j$Mx*1^6kaoTS(%^hx=sFld&jSbS;hJKT#?-07T+qtSFKWWZUu#7O++? zM^w^qG>+x&+O3(5pFtDTw$1teGb$z0o6);HKPd4Wo?m$Ir1A(0slhQ9#X18or;Dl| z-y1}R9G@b!COG88!7(QG0s#hACQG^#X%9QUk%nPg+5EeG#I26!*z zm0oMaGEMQ>am<8nt>b}ZK^tpS>3?M>(6Ur{4|eVPJz~xCglj?7crEe6%#R`u1~h^0 z|L@u5h3o9A4HZ6}>fV0=^V4Z~VhFMw(#QfIH01`rGI z5f;$J)Thmn#HEk7yTbWuSVxQ)I|kPrNVdt1qslW*_`nHWbm$(h>10p$hZ^+ zJ;A=}H4F_DsJ3~G6;sw1>svxl@S#%Gi-(jw5BQug`!j5CtQkHzk)#F+EEn;udu>;w z-u`$5T^!^1D1h;UC6|HUx$!732*#lWzKPIL*LsS2oS}DwaLPl92`bsk8D6AO#Lu%Tqb#@j)l9 zoYUr-D$;J{U{kBho$oCIn4lc$7F(m^D71Ne|P==eOkDmfdGJ>Zf(4aEmW>I zq8+)@71BaMEWE>x_G4 zfBd@Nu$O<)4^^9IY_ zXlywG+V&o*2Ss}ek`L|f73kLJ(@oz@U%pZhXmNNCL~SeaS~u|a)fsIo#{4?#Sx9b( z2#))DKEI3vPPUAu$+>o_(rE$iX)Ay%<} z^&0dJm1PgPw35njt`+H_?!h*^uOQfsbAS2#W2ha3kKl`Df1|^Jc zHijR%D8WOQSHGsD=y27*0d@(`S}#Xq9{=uagI>Hye3)8Er)!77_7;*cK2KG9CmY9FtNamQ{y`i&}YsS43=mMmYjX}J?i?o92W^4qXikB zs}eY%>EPgMjQAi> zq!sp~rNTmw;vdZj4FeHe8wfyyk|u7#rx-o8y(QXqvm{6++948w?xbY5b!gy4am>eP zWjjsf-h19)Wis?e_hDBCjGa&nIpbRobw|fPw5L!eH(9;U42!D6%1is9G zHEj1pH2w%9_3qz&{j)@gAo@kw!E22~z?t6wDSWhbCj$3Rl{(pt{w;(SVuF#xehSfG zWF8D*p8R1bKKf4-=M7fW0AcF?T=73DpOo4HYMIvb!Be2K5wlSEzYKe+9^)oc2RCs} zpbY-=-$VgG&B#auR-~$pcNQ}J*O!4eYPsLf_{n9QpKbl`J6^r$-w*I@Z0ffU!wo+3 zxG9{j7+i?|5cv; z@Kfj;`j#)@g;$uO3095C94+5vS&_N{u5Ot>s}3_((g7OkFMNNmT`=;zZ1=!hl=1*Z zj=o|eS~JIsEd8UZ{&`p*kiTpK2F_&WqQTYg>hM^dZQ}Kg|0B1+TIf@#UY|{HoqP!- zXI|>jGIRyEy%t9ToDptp1o`n~BD>3xGHjHwz0zY6!6}dN?bYaL^5OYvJcDol#Z1Y0 zJ|`Df#kT#9j?9!H#s)0|=fj|hBSuxAL?lv{z6_V%vk55h-VCrhcX;7*R5#~=8_h~1N&|ZzYrp*$T>tCEn^LOQmFEy0KN$2GQ-#wgNW1Q5#|O(jS{bCh66Ur z+JI>zU&jJa>M^V@HpU+bd;Xd~Pj8^{XZb9(>Nv%$7d z-z8J;+j~3(<@t^yMt)RNCh#x=5b>unEK!bT8Wa5t3%xkfmwo%C_&9oNKd>dGDn6xR zOvZT%^n*p&viC(Zo?X5@wlNH#u*vuN%18^>lZ>5mfBHJbEgvrLAqb zM2<`r>^iCuc)(-!1nDK#_x6oTD)K};0!RBg&U+JRCP9gI%Fi&JY_jl&= z-zGpbQu!9o0h+DTC!B}?6g;5L@3@75L;{nm;rQ#kH+(0 zM2B#8C^|{w9GEqe7O-)?(-v^ncE~xm%Xye7ewvxyd$|&E(Jpq7r!oQ5ZGA1pzz(-} zbesel7I=`=A2G8X0Y~gTR(Qi*8#N3zAl&+IAPekOrJ~7}Vjwc{A2a4|aY04N9gyT3TiY(QZ{h9bU zlLCtlzl$Q6&th?W=3&HOgL2${A@1dChPH-xxBxm<0(JFaD7nDq+{%_N#j9SFDJ|u2 z{9Udl35*onJX%@gQ#VAo@F$4>)v8#BfRFtL#Iu^QztwJFYSSWH#C=sNUr_e;;Mg&j z9zWHqTx2uwD&8BTvG`c{d*M}Kfs@v)nNZ?|@as}f%uk`$edqf{&n7f6u!)|YH++9F zJbd@#HYP}4&qPRxWV!_iU-z51_dE_bKXpUprJb^&Vj(9tgK)G9J+X1xT|7L-D$4^; z9d0DQ__8f?p}Pe?&ap_;Tr;C~Bi3q6nw-x%)<4BdV^Y>9WsvndcBOhe90o zdNlCZKNfTL-#woLTHXK?XE>%Wk-(Uv!(cAoul~Pq1GsgcJ;^3M!$#oGWN@0xN-NM-+gdISlDefObnln zZ#3tSqAf`J3k;j^LA9xUZecebEv#WZpueJx34RW=ys3%2m*)u`Z!AGwAn1H(t;E+t ztH((NRnLmY?*f~N*W*6xnR6)Y*N`Xz0iZP}vtR zhPQjm=VZx4q&@?#PNQ*8=Bc?Uh)Kzsvo_C8{~*mtLET#(=HPJemPQf!Q% zXREuzn^Vd*}VOS69$O)0Vtj68*R)%^nAxC(4z>QP*b4N#me9_D+RAoV{d>R zwrv+bAP|xinIC}(Op$@TMpX)N+Edi#k#OWaF>B|t{FO|r9opa8wTDaddIhpli67+Wgx2hw?n*bDEn{wLKz6z=9VG|dS~jQPn{#K~ zmkZ)fqN6yoduChNeQOupJbmN908~8`aMT;=X@3>ZL(#ey&TtXQU_rVM?Hq+2s`#yG z%o;!P^ehR&K`T@7WQU6%m}f6-F|bYQ_fobi1CB!jN+;|O$IHB@W#YbqO6qqz^R({^ zItsVVlx%BZKjy&1xsiK>Ru{8J4M!8^kMY^>u6TsOYk=v&o?LWr&MmZ-oMi4_4aD$U zv1>gX?jw3zXg_4?cUrze-QTX?v!xN5Md9B=Bevhmi$2QElo)>DHus_gw@}#OaVqvQ zQf+#j?Jj?zGxQZmXl8&zH32eIfpsi#>$esbEC|H$$(l{*t=iXHO7(5f*K09nZ5h`g zGYOt!3I2i$l?8b>S|2R>2drRrt24MRr%4efEbXhY9izb*VA=K(p!noQ^td|3hGiaz zb)!RI?h?GMxAJVGqHj`GY&VkIL~ZfraO-E6AmBYkyLx_A+yT{wbW=b$Gwz(+OX{JZ z_U0Z9I8VPmagIQ=;h3_kE^S{NZg0GYocZ`%oFF&T&MPkO7aEpxq!+W#qEs$A%u4jc zMi0^mXaqm;D%;g81meWlEyX*XW;+q6sLg*zieGy9Y*vjuOPk4B#Ez4|gq$rBMA4` z<~VBZ^5Sv%SAMk9Hi;jzmuFD-oIWi*{d#dXi$;KCTFCffg8oVS!cTL@%z<1=mX3Eq zVe&d{5qev`T z?)L?Gr5Ou3v<6KYv#D=)BfGd7?He!FFYC_F`T_>gbM)wafkvW`JwAw8<5^eZ{x2tg zbn-WxT$T3w=xE&euj`lX6lRIOBoe4b@uSP*clXmO0rQG^C_1+{7ov58#F6D-jdZ31JND$l$7&OZ3f9r-~%ab8jd>|D+8V?me2|FRJnnn1EygP|@?fGwbC zD^zuTX2;m*$c5M+G-DTyfgUcr=bA+O1S0m^8rRw%f0TgUQ5ag~EyT-0Mxj^lA)c$4 z33!GQ^YU(@*Ki3AHMfr<6^YOF>-dqUF5C4q!_Nc#=Y+BNTU$PsI1XR?3bJ4i7Nt$Q9_I*TfyZ>6M;{(Ft3t{qfKz9%zj*J_s52E>-c9Z$zfSGR`{^u~tF%^! z^+ed%{K6T;C5?zH-B@f#Di${wtyW?YyY7zRR<|(62vjw{^n> z>@-bBKk8v)w{OAXTk}`8?Z%2HJ}bs=oF1(IctYS=6d9g*X9F5D(pj%znyl~;J{X0ZnoKu!Nz^XMqsXJPQaSBYy^J)5dtUg zq9EWvd|dnzc{$TT`x9tZ3cTNEJnN=9vFL!Gvi{6Owm{AG`NaQW>#f6@Y~TNJHa0*S zNkIW=1OaKuAtKU<(y2(N(lOk?L;>lBDbkD@Aw4iaa!7-OAkr;e-+O@1^SnR5-#qH(XSlu_ucjn0Xd5bYqkymf=d@4A1PpH+0o(o z$E!O$^DZ)X&MH# z5im+QD~5ao9tZ$-YOjTD=?Axh-mJ0F!Pi1t{vaj6CYQ9)Z1b= zNY8n8PX`oc*F)f=_XrI5?F~*1ha(M#?jfT6i+`BSv}KH~t_$fjXM&;PpN>7c4FiV4%mX)+s;&Nf%^=TEWOJGjRt$T#C zB*CUH6!!665?;eyfqoYh+vu}7$DE^=3di$P$9Y`&qsf7mSHy|a9y0xg=sM}pPuSo3 zm7f-9U=xo((4S9H$l5M;RI>wK*#H721Xg%HsA?c5S@B-TINwwOKUu7@+UC_k0edld zQop*BOM2POkRV!g`%Fl{xr;_WQT%h6)wYAf!yJeP*tnr3ysv&rww}}Z&J=XBW_kZB z5MhJ2zmI8A1e&#y3D;8F{xN*}EWFF+`wGw-9kAGsHpRR0hD8?U3ipO}paKUw5yu}7 z=ZlW=4jb7Hlt|2s!V~WtI!=S8Z7$r_HMun?0x*;=C%{mS_bxollm#boTTL*&t$xXc z->?nYO$E*&oT3|#0#h*TV`=%&-!_Q?Q zB$6#K6Pvd(FGw5CM&Gy5l0;y;fdt5Fc`K{01@BY|9|_}CKXw>Osr~umR{LAPFJ-{V z?UzvD#+V`k5nD*(+ZtmlGEzmLxr}#viPj_O9XD2CQtI{En>|aiYUlT>i}q#k^V(Eu z76~z8S|5~6j3-#?f3j#wecy$a~GqdHre>fRb9cQo|=D;_ko?zg>m34n48-JB( zInYC(*Z5kHc=q>HK_HNYz2egau?S`z5{4Z8*tZuTCc@NySlBqRO0oUJh5RJ&8Hk4< zd#I4(INum0v)f(Hs1$vX;Y95BTyNX53Zk&09lw=K)L`T2NUEs0U4rv~;*H_NEo^=& zC})2A^-bY46Xs<08?p}~jkf5BFqG0jtqj1Xx=~_{U}C52nVF2KpV-HiXdUFvhfT5^ z^QlQ-)Ek4e9Ety76(=!CuLdmt=IpH#MJ+EvdNy!J`Y&@uHfej7TZIke{aq?%b`$-Av!2$`INXIg;x<dU zY>{}iz(Z;;=>Vk=1QT<-h9j&G*xeBqOp}c=PTKo@&8!|B<}|8%P{nL_9keTM9A-5z zM#vup9+{ZKqTh*JZk-Qz1|g#%p7ez%q=inp1F!tPbA+&=S@#SNV8c6wi=Bn;)?9G0 zoALP-+d-%Mw$Sw{nK>+%AUJAaSmSEd-421J;e>qHs~ zONDS)Hr00WZ!})SB-#eG2O^p|>`|S&+-@YEYE~ucuY{#!nG$T@8hbzW{)Q+8x;_FR zo`vs5dX@S2gMvOFK!@bV&w4Wb)5XfOdHBu&hg6)0ASSe@J&GXW?|@_T3%NICa|1yV z*F^YA1MRjDh=v}95D~A-785h3anr1t$vci_Z4*}%WUmiX8>v_gc{4NK;H39;yN&VbA#0VtFOg%i+_qxdzAs1^zS9CnoWXr5HES7W%z`_ zsWdp}hZch}lE2$+Uuk7yL}1ID4YyNMwM~{iiMCj2anAJ-qm69(BqW!1u6!6$ZH6|D6kv(!rZ?+`C+Ti#0CmU@ zAb-Zxqr?jw<8268!iX+Q*Cn7a^pJT0R8bC>hKuw7msm>7KxI~oF%8&Jd2zc&{JSoAebd1@Cq=6+r# z{e>rgX93*(1wo#NoL^zNu=7;iTzkHU`_yFuWS2zT5H<3ud%-F{m@6ts&W+V^U>_y|SPj~1fs+fLV z!V~}0il2N#c9P^=(ryI*3Gm8l<)3ASGOSd#PbO4gBn${^3Uy)kU1%-U{5`Bcw=&aL zWAgK$ff8Z4+YWmmMW)ZG*ZUa{m2$Oga~a{A?EQI8VTb?HN$xzm)kNg8V@WAD;d1e| zrZ>69S<&X&zHFS1vuvbHxU1`lMGqQ$7Zi7D-hH_|g7-z7AZ5h_ugS`?WcY74LweWL z@Je=`2L+8aN%dUrod@el|Fd{xDMWnmwZ?9#=a3MfwgrdlXHqZd?tLKG_S9nE5KjE& zY&#W6OyP-Mjj0p^Gm9uDa>oIO8KU&?FsPwCedD!9b5(pSeV&X5;;!!5Q|;>rK!j9z zM!Yo`V%{xgqrwI+&T?g#SFXRl^+%yG@r-6&Bw-Lp^&cB@N=f?)SlR;fn4sI7*FkAU z9UD-sABb^!{o`aN2A3zv2OI|7Se(afRn>Y`5OCW- z61F{rsI-0mr>gSt*!}hT!al|6(@DH%-r*i8KK>19VQd5|&|Y>b>EFJ6RoX7k2`wa& z%G1xbPaakvu3IdUjK4Tin-@hH%@7~*bR zF17_xMA?>xNf?4_Eb|ezmJJPxYm&bPZ+!ygQxud-4&s}Q@nU`YQA|A>c-trH!@CUm zF0t@e;pYSiZ}RjQH>+zu!s96Z=g8|y5;~*(`_5Glwg+|GTJQ+w463>wh{QMjv@ z|EZ)(TY1o0RvO$j7%vcvIE^7r9*^aRFwpwke0M3_xJw80^)9t^HX_)Ah_Kwxr=H~~ zCAhZWD%i2)_V?Z`9@@K4YJ&`qYll7mB=EqE#)kE5TmQFNqt_UZf6fMbZn0aTI%98+ zwbJ6Qp@?b(+n5SWSj9~7kzd*slu|Pbi*>SQmV&bTUhm90J3vuG*vdepFt)QO4UC<{-U}(XLHV09BHpkVHcuJS5-lAzB%l;KTJX(ktwY&dyETpkR9l#Qs*EU~ z;9ol9AARpCZZ1+Gx9esOnO>X)dapQt;HdZa+Yb=(-h6`=3c&l+f?HE;`Qit#!yq$(B2nCup&3-H=_0PLt zO5oR^4#I}75lwmeNxI*f%(|dUhz@q#HRKoaxkHg_#uuCGukb33UXq3IE%QU-R!GaI z1>M@Lkc&z$q;b!Kb(fZ4ncbv&#TY~2&bop8=gF$POzAqhtC(|O!=3g zPc`+#Ti7vfJaz9bW-XH12tvN&Or-n23nCG}1;a>3!6umgtK0wgDW}2-{LQx-mTkyn z^{OwM?V`E=Jte~X3D2@}9`>rm=cNH2&%aBA5kmKZMk|ai7uLKRZ$#-}VT4qcr6(h{ z{_`uKW9U4N8WN_8+leVPEoHc>;waTqOgtPWh-aiT(5Oq2rIfs3vAa^=}`M;}k zdk$I=17%04;_`yFpj^=gpj+F{~wA0$CLrsnCmb1?|WB>=VxKcfhM(C{at!- zrT?SfPe_^*j|hhF^n6~g-Sf_;&Y=#bE5&(>GgHX_2blBXif+t-Bs@ z7B2t0QzShQNCZjGzToa>#FRN?RnSYB^u!BKf&bhU`%FQkpnMVYsjsY}<$v4d@w@Oe z28>2>r|tdsuf1e{jTvQOpS^3oO8$bJ%ESkL5@G&5-+q29Jzy<{&MxNocU2@Qrl^&W znHS2I59HJL*O#mOS`c%`l38CKuh)MF>~*tVM8y|`<`dC~GJ%i@UMrtO ztpDn;FAy)j`SYwP=H&U8=m0$w6005g7q$PpW&76%ooY7Qk%+xJMlPtU(=w$Om%?61 zmwx>5>R&$l`wf7C$=lPpvrx!t?rE2KztA4bN|52jARW!7~o17%H{r*31%0+C$ z@$l>4SO5Dh$BccOUL;yPKd>Qt^xb+kz08!f%#wyWJS~{135}`~Y-0DXj{<{eppm5) z{$W^T+&O9yTq$X$bO$x=nQ-KOM~=YbSFn7DcyPFqCpu4$^#7LIU`-%_#WX;ul6PJ= zIgO}(tv+8poWu{@Cjf8K>JBDH)pv;=&ve$0XGJb)?@Ma^maJnOsS!?|W@XPd zy&Li?l=VOe1EA2zh6TBZE_s;M6Pa=|;v47q(`O`sAH97$>?>{-;C}O*%ERdYVJ~2T z9zAO}fKUyK8r>LKQwKtg282RDt3#0NlQduM|A@%x|B34$wgAh1;ks)UEa6z0!oTB^ z?2xAKX&9=TfG{|J+XGX>dePmZ!OczQL9#9D`3b^-9zm)~i}Slj3~(c@$a`ZU$gbCH2nBpvRO?cINsHk?)8mv z_l!l5d!*DNy5rTC?XEKDPBmA@?>Su)Rsrx&YsmK~+XZP`pCA8*m47AUD*fu3dECC@ zozD~TaR%4E1is0Pc;~#n`fb=MiU!X}$WW-b(Ox()X>Aqbh~c&zA9lqkMSecO zWtp(*>JQc*#*dZ<&HKP=Nyc%0Ww%w-@-KX-@A`?VzJG_54(DJR#Z|x3+m^iVb(ht^ zD<@}gF^dxnKPFh(&JbC)7h&32frn$ld*#2J>KQ9~q|EEjRqh5>z(6yL50kIqV2(;Mz^VL0EwJXG1J4%9k~9n#I}-fRm9V7vtj_x z?*O{;Ly0VCHhN)#;N*DbK)OU%k((Ec~0>-ztd07SD`nr3KyWRPSwvG+SLl0Sc zfl1X9ch}+q2(+1l-Tft*DVLhQkV!I!HLZ1SDtm1G#{SwTZ1 zRd-KB;R@tWRdkorn7T0(vj4B>-#+knlI(JRk~S>9Z48n3WZxJX*kn70d=D-B zY+Z9PY(R!4KYU5#Zq^I(7{xzX_DU5m0AQ4X5WXYipdA)@_e3Xb294_kY#ooX?#+Wu z^d}mxfG?r$j5ib#Eu_RWlYZ@FQ$s0r>hq#Q4Q%z;gL#}sMn*6JJ}btH`4`M;i*4d7 z(kp-3GZn_>kr?n{-Zkr4BF5nT?kWB~Lh1UnYAin-CD7>^O84gcy3{1NA$ zZq^TooLs~=P?nsme%rgPyorkoE`kCLL)-kXVS{WE(xOjZ?--y_16F1f`Exx4@pMD?S!UOk25z9T}G zKzpIEYwAaelcYX=!K3FV98sp5S`JQJZ+)#Bv7GJ3L4~(sZx~S9=OUPSXwiqQIk9p5 zB47Ti^^kc`(S}Yv6m~R_*?<8@uxznYG@nwe2n4kK87WqO2L;I!P zy)%%)InV0z#8$nza8%wg=jkZr`lA@#p%t+9%x7mXLMc|o+LA=>a&dY2eN$86k-7lc zt=OXa>E_wbg%0b~pV&Sb^{=n5X|y&b3$-D}8n zlHvM~b}bNkyW2bOQ~GMOeM`9*QITT>U#n zPl*pIg~x5FN_HX8IIj=q2+P02Mx(&cTc0*5?IT9B<~3$S=Whr|2nIvPDg@$%M+Af$ zZWhBvDR;tW>;m@R*UdNE#PN79^rOR_bOX;;F3ktSVwEU@R8coT=C?b)_h!r*Yk$1q z?fnck1L>{Gnb!Gl>~O+`WFJTwR`sFFws+eO6@gVV>H=W~Ej=D6F#bBEMB2+2Jj6!$g{CQ)k7utLKdAmAn11kLEy`0YieYhV5+xD6+HIEKJP zcPzT*S%D;e7w5rL^U@wDsK7!JKeaxGP{^sgdO;2F6wd{{V#FTRS(dxk9A>Dp-IE4) zu$v&%TSyymTpw8327sqMm*Re#CboGHqN=YtW3Q8HP3m70I=DAojn(MC~dg4rBOThKN z839kEpC3i?$3gfUW5Gf@@jjp}w$1?vq0ca;8n*8kcmBTy0V@Mp?xL-U?_!0J6>t(S z(jxsy?R7T<)tV+kOvrEM@zPe^n79Y_BWY6m)Ox8v$o-0F+6kutG4?aPCw{yY4iPyPJ<%T84+;B4z!?N6$V3|HF$^{M4E>1_HR?YvJX zKH#x*z#j}RzmX;b00|Q2wUk7)+_HwdbWF%7NE8=Y>L#~KTF3t?#nkh+XR1civ*X$^ z+Of$^902IpP7KQp^XO%H4pPsCU+Mx(zbg3t7fLqi>~k;@2H#&zZYPqs$uPL>mtVND zkNx9s=iyS-!|p+0wSBBc3=x;)Sf?jQit!ApsHt%p8DVs(y{4ew|Ecv3RdBup!-pWy z#q29YI*uQ)7{m0ECkNl-I4KDK6Nc$JrKLA}iHXDdR!|Rt8FfGU1rVTL!`5V)r zh9~E9?=sd#jlOk}5P6qGGYdnlq{vM9>D3UwMbllpY2bur)t4d+7;yzc|5P`fS&cqO zZFDe9nh(Jw7RANAfZHqDEG-0{ zubq#?idtbqD&Ges{O}gBH=rKKC|x}%slpoLE#7N}E)~>GkQb;uaEtxwbvahbKpr7x z1NC3FJtSp%uuHF#I&{*xwX~RDift##ZuUHJa=g}Z7Wlk?FlZpfLV7PV9O3;VW{wGu z_d{G=f}4F%5(fL*nUNjk=RVYb$Nu2Gb%7Gj(05zRzVNERA`|i!Ne+b|dBK`w-RhCC zc&L8V_VmQ1rF4MT^GO7W%({yzLoXM(&(6}&3bZ0IgBvqO=mP>R_2`lQIu*~t%s|OUugK}PF()?ba=T2 zY~X;|NMbcHV>6YJMr5FnG)ughbat>IJwZ#4D(U)`u^a+s3i%xrhFJ-5Q03J=_*hx# zCRlNtG`gcWzjuF9HRvK6>tKVr!g;Eo zG)>!Qt{$-mtHT@Ta#+30oSom0FiW#tF2d7+`7#U(8-`S9X|W5oijk5)G+Mz z&n$Z4-t`;!pRkhTSPQH5i0m8n*nxXQ)9$7tbuY!VMO07gT)BAahDnm}iD*~ysedYM zXqOv&ZjuS~hT!NyR1RAg#PTn-4AGmm4q1RY@~Z4Hs~hPb*oLL(<*=GwOK1;uZy68; z7UzXDpuK&VZE&$rltXLZ5D`2)853di{*o(yqYk8#7quNXW|(B|BfgHPYDBEmZroYV zBRXdvG_N*XY25#0u&4*M7_ATKYbTVj@^EdW za%GULOR=&xIh`a%2p7RHFr6E5m1*~h3U`r(z@(ZPea)`v9(tGwguF zJqYAgCg1?83nuK%9sI+N%zQ4xPcMkNB`(7of92pLG_lV|Fypqj?JBCi30`$UTekw* zdx^H?z=S)Sq6AK_@#+c<387Qdgnh$Sy5D}5PU!hzsXC-bH-iS59XEZWc0X6KbNAh3 z;3Dqb)~4L!lmP0aC*=j)&(7Tr{M{1L2zL5LBCCSR1n-UYT&cE&vrx*8QH+0=$uf!{ z`@m|5PX1lTc^T)8tlIAWy4IsO(ib7S;epO)6lVMOE(q6c&jfA{4+Q&g=td!KH9OQs z@(5E*Wsp|08*i<}$GAw=5P_gr$7#V!!YBF_FrjjX&K2-!c)`u2?#Nr+&9`OtUueHv zpchQeLCC#ns)E;;(l+c#I=p+XMa13V~mPmal52S4i}lt z2a;*GPP4O7h+zv)GBH^CpNFifC@_+zlIkKktC3!JeO1ha9Sd}RE2u9(cYuSG8E_6^ ze&G8}Y%5)_tF^hKJ0HtcA{;3+<#?B5B4+#Y~hu>-u z|Fr+{P-b|fSiG3Uw=RXtmLhL5o2>mQ$?!(Dp_tS(1Y>QU3dSL&q%ILE?!kWhRW1Qn=OI}xgeh1 z45}qQnA12Xk3sjC3m&7Nk5N1cwq!_BdaLfekc+|($Rq%fEvdLLr)Z^0TEealAF?hD zcND3qBVe0gQab7TZ%j86A4HIp-Ls-ePHKP;_jv%4p52`XWnW;2&wW>6 zp?I;i7hnG%AYlI}sa@Q!y)M;!f8B7bjLg)uqN=3(oEWJw8z?pQVbC>{)z|mnm&R2E z3Y(^$+GXce?lh})`&pl+g!0dM`ac7uk~my%5xmPe*Tac4wEo@aMQ_x;cx{`WX!c>g z)1^q^Gfy2a)x&%+J4Y6$SfCUiW(uVf!EIA5zpyf+!2=M$y^oCvJzb9b@&`U7beA!PrkFyoj&8e z``vr6bCX4C>AIy2tc&}y?lbI<=Fc|wpCKpvpWcW0(MwdO!F4Ma9@!NE_69}|PNig` zF6Ic}?MXcD=e0+Lau(j&pLO67YB>6S4g1U}?8@^3;CI=OJp~q3x?L;_)fnfgr;6hS zS`AJQE$K3K0CCWw%Zpdne%=;yEEui2=$rhzxRT_;gnIR;m)0CLp9u`k;rJrC%WI1E zgS}m}qMH9i+Vo z8MN?gel3}(3HL&N_E$)pa~CQ8={}K9`J+;}VJ+*4P69E7nQRcJTrdm?uBq8RWX3vA zG~d570DgnHQXK49!9QPNOMk-~&w5~}44Vi__92>HbY-Lncxi$~X?42?x) z^0C4ltoW_ZLz&)9{7xErWS!wArdTr2ensZ8;Z2)6cVhbt1p?&MC%T{YzYkaCT(JSjbJg2xQ-x1&R|sPTj#0z^%g2>Y^4NpiSB4k|Ls; z2+Izq&_y6Cx$Ts}Q50TQh|mkT)f@08ZAr6z>)`i>p~*VCy_Hu$MKK*t)nyS0o_aTw z717o(F||X?Ex4GsktH1te};HBT36#Sk3iZeP#ypHF(@*6o8;bQkyLHC&1?CZz+Lrs zH9foGZb`kOAZW#0VBFoIIDNq{_)IG+3AM;7!TXhQ&(Ot=^&g^aWeIzzFMeZ~AF?2| z4o2OK6xYZuqU>k`C@D^N;J`l<0#Jbx)S-Y%lr9srOUhc}qsu%o-LMG~ka>vxkONdW z8n3b-Nt~#zm9QY^?Tr?_VbbKgkFK`nKG$^6M_#2eyRcs}+cR2b&!qqQO6Yrb9092O z6F! z+4oscR4Dyz`h=2(kE2^Ox&sv*6&g&hi#BqWmdL!PzG|`g)*XIs1$~JNMPJrU!I}oO zZ^74*9UWmex{l+OqLP^2_OgP|Ld8axlZ6YmdarPwPz8Y9S6es^vOv?_#VZ=JR88aU z#g9pHem*(RgBADsd86+tyE7tj#@X~^P1)e9lH&w-KY@D@y zQ|JU&>ea)(Fc>y?V%1ZnBYp!1ySk9mk*LSGl*2e;@Jqn_sXJ0KKCTqdk3--#6cVY^ zki2uRxnR$@LVCol2F3(g%qN(WFHZ=IZPa%u@@O>#I^rIu{AgGqoUaTWT@68-uYyW> zDZURRP;Y8n-OGAhv(VGm6{tcGb``f&V0~+OOsZzN5o}^48+a>5PgK%h*UA{Uv?qQs z->03IL?YmKQ=?tMQB8Qrn(rd=K4-v2{=ibX;kc6N%6x(IyNAfsQS*_}Q4CO1oVu{F z_+ioE@dv@=lwFVY4@>Jidk{JTjn##{gCQ}z!L9(%QC<=;>;Z)Rw95*Hf`QBt^SAK+ z?FnO?e9Uv9B%8FLypd)&_hi*+{99w9hKL4 z_+HIx!lQEV%cC{fs=(b+^M<21prW24;OCc_PpvdxR-RquD6YnON@9v?{YHTcaHtJF zOFOOhI6OuzoI~fyrS838yULJ#Ie*jRUV6b>^MxxM9{3|}1s}#%Vu}9U&i{Nv#*uwi z@L05AE32EX?0f#U>|*F7Jr8OEfef#)f5^yzzN)MJ9n04tUC+d>->EQ&zljdm>dD6o zsJQRuQN2#{cvRWNoI>Me9hwYWl-@uQQ?+aBx(W_9ulQOssAX?rb}$XTl{8xA(?v); zCiHm2nGD$k+2W-QIMi@^svjY2UVU%SJ7V}PQ9=aVhGCd4{JTRZJfsmTDb+ltaL-`j zu7_X?Kk!bREhuZ%#bZgYqMt<2j&i}tmN0hyXIDR6B#=hNs)3J`s1?X+xz!c>Ugq86 zXTGQtJoV^5=Li^UX{3^HsXz%a`3}L`Q8NLGS<&S$=6FPDORL;~Vnh)|SVcmTo}f!;||B+v!Kql~Qzad0)lg#T3deDQ!eyDyDXk znGZ}!dNr}*AN^N^>^9orT$h*pB=R{+Px4;Htf1o?DcoWj@Q2&(^4IwSi=q>U#y-C( ziF?+Q<`#euJPY=%L$JSyb zz548d$~*g7mh@GX)0uv@e)a=B@W3a%2AN(gu!h~&Efyb;^OC3QyEV0>v$j~#Bjr2-6 zD&2b*H8;7D=^+E9s9kN^s8|rIelld|IUu+&!YDMjwWUJ!*`gq|(Mxx2%XzK4{jfT2 zaHPh~$H)6n`Uj?^ncA#o>kV77iOG~zzOt7i>BYbBIzE>QK#xIQH^PBoMo#)(?%FOdgw(3Km;T$9dDVtybDR9I7w1^6FR?8of}aI5vGOdxKZ z#XQurp@=7pLcza>HxA>=v-!~1N%eVu(rGXnadT~co0oA62#{@`t;b;Od{&nB$X9$0 zhOdwgm{v=Ef9ej11?}pTHps9#GpOg9!s?oeVUYr@!TH{6-+YlxWkb}b`$Pj3fGGVw zwfjjzsPN!O)l@2ZtCNbT6crfgmUVhAN4QwBrtST>QcP{ySy#zlO-zzv4x3Wi8%xVD z{wWoB!R;`$(_=$o;-Fek7>?Z@@@N;B=RmzBfRg@!OCArpk)GFmi3q=(IoogaSKEBGumga%6VM8ZaRkkiZ&BH!#pqml`+L zZKx>to4zDb`NKMJ=^U(|T!@J$4-`E_Gp4da+@_m*~g6=dn9|E}l6Czdu~4+n6lSZFw$ zlnSt>{6Oiqyyrx|r~M7;v&hPYLHF&Z{fBd#(nx0y`MZ+;eMU|MfdF}mF5}IEG=ko@ zFC_SYNt?}?#m%1@AN)o=H;U2%(xc&sxX1di??(^&Q#7Mbv&8>>1kf*LtHMV4-lU>V zk~FHFV*<=9dLaOZ4HT&ijC&eHVRgy@_L+$7QKx6fpH{Q^3uUEG>HZlabFz<|Siq@k zn_nf<(|Qs!7Ve9G% zjp7it+Zt1Hft9i4R2BH^oKAfmT{mP9lfS`=T$C(+!N?vmK@;>sw<}uz?u)T4?0jx^ zkz(2_zyX=Bc?suu+fGQ_YpHVTL!vssrlzKnb(SIF`;wghOEVZ23Um`qi0E#&I?G^; zqn>wCblmEi2QT?W2pTf3N>jU8bv2R8fBLy6TiTmw@B;g6t5+Ow`jHus=k;&=l57Ht zEr`R@%bd}}HY&I#hSzka^cW%pod)9DUr$J0W3N_@Km zkp6U^91I~^4@#KG8$@FyPLE=qQ-qnkK#{eNSNYffPOr7k1qf?Vl1TMFrStm>LjLk< zf?PP5m=GpfGDhqwll&&u^TcruSW*){GYhbB2mMPq-3iCqpCH18OZPG>4A5yZtDp{( zp;$nizW`lizoc7TZl&w5eRQV5d+I1jFnr|`Gext4LC7`c@?1L6zs(~jk3-YV24WG_ z-^%k4GSVb;_S4sb9=^Lbko3-OK41OMt&CQ?Mp6yZfEUboKp;n*ef`4mp8RorzT=C< zzde$`J063ego`t|qiWfbiM*^l#kbq;r|b=F9RFSN>d)Qs9YMpluwRvFl_fx#1?nPl zRbgY>s9}8LNWf&X^^R@+$#R?+afT^U`qUxSTS@GMe<_0JHr!)mXXWoMTMQ1TUJPrC z_`?}mnX{2rBy>%7vitFho^pfj1P5N&_0QcLs~X(sR5=q(;2|(s=;QQPE83Eng*o`h z2GDlXR!Kr_Z|BEPkLP2oKU5s0(Flg$@sk3%!5wVIbZ5Vs)PZg=AYI~y!1(ues&S;b!dzEkl3LtC1aSJE#Wk^ zA?NxzN_>;D@V?EL*NHSaqE7go^~sBP|I-v!qFM-0J4L>@Jz*DBkBSp2DxtacZF_<8wVI%UvNYW(~fnO-%L z*$>w(+dt)CW=LhKo4#Kv=SirQwGYO98m>z+(>2?yWr%ayTxBX?Q11o1rKm%@R4a|mRtb^sFq;EnHi z@2^%UW_etfSH*marZ&=N-?SFcYTu$&?B5F5vY}$|UB2Pk<#7OQbqP6R_afyJnp2D{F;<(mr^ zIkm@}wBAlggA8=#Pl}tAU@rd5j|`f!hR({j1xW1U7Cv?r%n4Ahe`g@c+4o9Hs(V!F z=C-ogbOk&guK(Sd3lhpe@}e)qS|gssq;WD#7G8r4|Xs_XDR6qENlGXCIC1a+Y69EL@Ng zk=d4v$tg^9nvU#7-*9N(GEe_`$mY7ebkzPvU#eRF*y{>f;kP#c12!b@<`L3j1_~cu zM!m)%W%|zh;gK$CnAIT|LSE27*#bIKP;%5pf?abPzn=G#C5cFj%nRZ$^_2&uj=HG} zFKh97a*2LbEyLM%D5MWMY^tq}zn}Tcq^BW*b>m$gO)ovW%87#lxA^R_ch~D+v~Qr4 z!F!ZL%n2?#E|wrdudA}=T3+bHuQM9yhf>}FTM#0Ga5G5Boohv;Emy=$Y0#(?h)u60jsS2zQ=Z<%AF`Eyc*8N+XA#T9l_So%( zhUU_v*WS|4X(TE{zwHb|#jWl|hYAj#<8%{y;~-!bfPRa-0;y$bmJBTWw$-xOe|Tlf zw;ukKo~UzM&*B+S`Lee-&hNC>CLUL4QtLQo`lJJXyB9X_yH%V zcV@e0jo|;5Ty*jjJ9p`tn#DPc=BfNAr`yj#!du?W_e7+TBtx|;`&)hz7fPSV;-l5p zSM&6a>MRQSDxHs3zwbInQ}f-1r7z0@bwX=AjbNZ0Iq^IMm;`c1vDC-BBjIrt#9H#S zZW>05M?D^(BkfMv*aUbYKz5Wiy$rAEy^>2;)RX3!wuWLPzh1f`p>k5dWR#6)f{H7% z;#~q5Dgex!(zN<%xlfk+7K#sq7Ic?3Lglz%06%)QZ{k44MN%X6z1yeDqpKHbml$zZ z2o0q=DxNEhR98k0tjXyMh(}TL>9KE49kID>I!~6w|8ZjA9|?Dv^SIMdar9(PExn4A zTzXl$*IH^TkUQZ~S6U4)r{X*2Gv%4o0qss@_j+rCTh3Iq3nR|T$?L;gYWq?|xOGQ6 zqe}a|-e3M)D|p4{0r4+ieCig?b{)TyBz}~@O#KtW(`Mh!E2ynXK@Ipb9U|?tzVI1N zV4h4}bFTqYGu$$=>`7ewx*3F-pL#cUt|tB3ewSOn*gh$fk*3j?>z?vXImT7rv5O1a z{uNRgE``PthC!~30}HnCQvQ;xe+0LdZ%_;hbH=ErJ1`$8ZlGdQ4}b8m=6@U)Nd>_~)h7O}Ks|Ck(6$2_P55X{uVV2UI|o^pBU_OI6KT(U!6XTJ_guRy>H~Yl(gHh-SJZkIe_pYz?w3CD z|3v5_rzoSyO#Xl+EYL5B{`=f^O_R3c+ILk~lSW5rvko+a3J2|pu5zNC$g_9(v-o$U zqj<~SM`I$K63PL*ab4_>1iG^Y-vW=j2imN2Vih}7JqbK!<6yt)7D|Z2@x}y+A=}aX zAa0(L3Y0UrQzBK8eXfVBcSc^a2!_ppnOXKF>RYiL`wCO#PX>DDob^|3f{D}>Au=U| zmozH310(@>&)UvoqD7t~_-Kgoyk$wn0QTAHkzBF_}?%PF%e~r)IZ}uSw8D4m|Ez6FkCcp;oZt)WW zG;sF^(j#K4Rsg)F+%h;f>dW(2-Q!`yF6V^0ZIilSXk2DLsVsAXiFYUy{I29$Vx{FT zY>?%{;bng;!8u@n(xZo4X)}3L4AKe2hewl{gM?sz?;on>^NnUcymdDStIMJgM8#|k z@3BA46pnm=s&oH3`edxFgm|{_7f#TfFy-9A?{GI-~@Z>E$%`C9x|RVzybpIobZEfByg<-Ad!w&i z6=!hmR90N;@b`9`CoFt*K{~@CAib~;T4=sF z5{uq^GPD0fbnAO;%k#BKv7O>-2DJuwgWU!=!V+HSn02flMbwZkF@bt{SQs@UQ@bVS z>eV9UcVZcg8nAm^CjD-(zsk!>3p|f{W9?SOei`Qu@&bQNx`i)hz^f`1aE8UhYQIW5 zm4Js*r@N)YWgh~$ra@pf*L~YmiN<;w`$8Z^OL9-aDX zSDpUL!!UH2GK}q!q2z+t;_~FJ@ms9yfo4e`6K)UVO9I8!#s^NF^R-LRO#d|^J zD?Hh~@o%K_O{3d1fF?jduZGg*bR}v$vU#9!vTi^E*^!N~R9^BjSKZjiK3+&*T-VQ* zy`=h(fA*@Jj((h>SeyW|q<@9M&l|UbgPEUF@6Q}TEzPZ{gTHuEous6b@%y#RY#sRt zRAePz>bf-{2=`wgNt~CU0%~{YWynwSEGC=!O$yB(*-WISpL_83P=<(y>7%%y%q*ov%q9 zgrRw*g^L`L0W}Zj{YL zw96&RDX#YY?-zL=*%wb56en`QqzoVF!UVV6K@|5c<9)(>5;;=lmx60F%6@6xl$E4> zMN72^qN+JK{eIbG!9@4&ClEpz9RJn!xbL;?z;^r5QH8C&)X4VQ-WZhbz16@YSJ`B4 z1;Xw3@MB$XvfYg+D!qo4=^sPeT|`L^q}SvZZUH@#a{^>$HAYq%iEd(vci-8eUkk|{ z7le#zNS(VNv)7})?OzMKuQsFbEmX-UQuvj7KLLVc%ao}pNs=z$L#y#%Ma1L*~;5=t-2^7)jD>)3bwNP(7Q_(+m6fM1q551y>P!l~V)U$f} zN`q8jZj#xW;&K1Ok*%`J%*C;jo+0*MX#;VOg@s8)xS~$Pr`!& zL%`MD+{666A?(!SJ@M+TxRI|}#c>e<-m;^Whkm#0{-`I_;%&201LCVj?ubvD;&{N1~$3W z{6g{@9%Na+0`$x@sXcb@>(`d$@${XUks;0oIzbVp6!_p|-u_j?%mZ|rmJ;n5wL3Yn zQZ0VHzW?pSJXVF4LNBJ#r=fgE7Ht0RQjm~=Lc7(9NN(I;y`gOavoCl zVCd`DLEHMr8gVw4-6wV?KyK)*ZRdt@DkPYbYFNfiW+bSqCce6MIdTNY`ThAPz@5mv z`RhbB0aXk5l3i)?K1ML!7D1}MpM;3_oW;OE>FV#)RYLHsf8gF2A(7?($JkrPMb&+A zqcRNL4N8n4jdbTAEg?!HCEY1V!x0tfF(^qzKte#e8ASwXrG%lRB_yR`?io;@=lR`x zKkxgGAB356_FlcdYwfk$cZ2MrcdXPbYA+-MT_lD{T_X%yn_^b+ej!KW6`UF?gP(d?oNBlcb%Wu zH}0mEr~1B>4%!8UQjO@flf6hwT(EdRh`88grw{rhj(ccc?UgZ)+=sRf=R!x#rMqe5 z3rIQW;for>_8w#PkgH-M*+S}m2eOP9gXoICeR@`M;3)o;AkLmgWJ(ho7B9wCL;Gg5 z5Zmv64H5)lQl5Cq4VC%UiLN@WWQDX1lebn_^FFDIIi2kwR$f*QPYHHBuy^?o*}AM^ zPjvoveg5oql*!Y>tM7om;HH%D7?Fui-uq0f;c)WW1{s2)ELY2KWotw>`XF7;V$gqb zdobv{+M4?b_spW@!jrxf8RtqI{p}zbzFH=Gbo;Is%kjMlDI4_J>(mJN6lxLzi{1C; zGe_%Aqv+KQYU(d5xKX79ZRF>ZOZ8Wm-()^lre*eQ`QV;axeRt%l^4NhW2T;SmMLg| zcr9S6F>Q5`#9HB`&rQ-w>x&{?=vmJR$oL@~W`z~wkRVqO*3`L-uuD~N@r-uZq6Qxc zc0jZ_-0(u#{E1r54K~JV_iF1df#<>gb^I3ga2HhOhIFHctUPvucyRptbB9h%l=EE+ia*Y#?-JYf55B@ zz%`uX!JLMIk(Ilf4YxPdo;R*Le7}QR8r@r~#MW}J@GMa&#GFe!(t`dQC-_ZrD+4SR zdAqtAk4NG|1`?kzbJC0fmFx@al{SF?IaAI#^N65Z7Pde6GZY`cBV@jr2`wih8p>tn zQPFAK>YTLt8=DOSbP`fZ9bNrT5+L66Iv>Ss;079;C#Jm!Ot_}co;`%)ZFwD2Z#b8b zbJz$&tzsU*ybSqqzTkwg>D54I?C1XW2oyq~ChFP#qL@ zSmrrk;w-VgI@UY+(MUSLU!vvjQ+bI#@_M{{f2qHCiy?yZl37HXt$913^Pz}{u8cez zaixG{rX!htYd%>nlE7U4)IC?Q^JK#KMl?D*wV& z-N3Ai*oVHZr==&gzLbFL%TF2b=b$An0cNxVr=ime$|s}Q*wwMcJjPb!MrgzSVt6z) zGYJ7bSB}Lfn1;zx8jEwu)<^yei9hG7V+lOP7nK9O<#C&+V%(*(DM^)N=TI)@RdX9z z=y1WXsK~2jSoE=KKRl!GQDY?>p5^1Tz#Aa=!+^;78S7vA;lr%NQ#q<@(2ndtD~IV# zE8&=9X&Ittnai6&%(B^=S~vAqxN%779=4pDDtLAtWGLZj3B?24=yv(m25B)-J)(jj z$Q@rSf$I2(!e^|Ho?Y2|b|ha!tRL5RO1^|Z24^1e;b=r&*Sh)p5r2fv^lG-jPNSSe zuL$;r8t;5H86!A`QgHS1eJ_A_?tD|vRf&QAyP$pgpOI?rK$1FJgGSp3pIJo%Vr+KDB%)R)OF+g#mm{-M;%7Q<72V$J*Dzt zJ0=uQSq5+RWgShITkbjI2+Q?)h4Nhn3+iWf1gxrq)K>`Z+tZIm1q3uLPl#m({l`YDY24z-v|>ugYu&1(XHeFelQxB^M>2*W65UrQKx!Gdh$E^69@6#x8n4?Ey5EDA!of2{ zg@v&2)f5*3^E-@l3{9U0#enav$E^l);MA z{u=k!&K2Jd7kP>&mK~6w+WN9>)7r$L=TJUt?;7<%J#W-WDSufkmr*t{JC80(FN?q| z4k}H05}1VfcKU6rWlc&Q0$Rx$7J>8DhCj+g{w5!39j;vio}_qGTT&4p$?zovHs~*E zi_npqx;9t%33AyOiAUXAS$^R?M686n{0!6Y7sU!G)sdrLueAcoJ9A*b=exVgNRieH z(R4;k4)p;Wxg{E^p>mY%?R|3=!KC20{C~8dha6^QWpaZ|)lu!FSw)FO|0g=2s92$s z9rg6hs6yI1(PVr2{#6J#T2Z`+MYLh^vmAKtx__~qFZH2GN4Rc zzU!=HsUa3`&7oSLl#7ToC2|Z$z0wvS;PnODW>%KZ+A}XeNT_wQ;l?CI9~wC)7hBT# z%05h#^U`&kj9&*Xw$|C--4jyyk2mzk94JI-3i z@TR)xvgn~MY#UQkinA24%)N34x14sE|93;eUpgBTJ}^)Yxu0C$Th`L;kgAZ3YxmP; z$jwD}_|$d*3pAm-ag2kNc( z`&>{`<-8$*!OQBHkSPg5DEM{pL8vo_@E=q2m#A*EOW+Y^9*4fI;)W5VW(3Dz#Tak- zI7;FfIAH7WvS;>Y^&IDIFGfaD>m>8f5|&tbL-c)3Zvig7b_eIH+Q}t3|48w?}Y~1 zT>Gg>>pXf5hv;Ld;-!Fm#~TtS?W4z3&f@@hU}Uf?ccCpHGqMl&YSxRR_5bh<6FAnh zk_RmA$}S6xbxYGrmR2L*M`TCk4c2|S{*ZtyIQ(v(!@=Ndt|vyer6V;e8{wfI*PS{z zAr3SfyC-2NHEPZ=UPNc>{(IQBy-%S_3DvU>~c z#+qVfdeC7WIMtx(!RUV{euX3JaXvh_*r{wQ!t!_^H?@w2Pms~EEQI>e8_{=ex@&1M z(?Axu0;0>D&!kd7PSwciKQ;n|`f zByl~*t`!^x2v<|8Yj*wLd3_i|nf(Yd$yUm+tR_DYx-7Sy+BeLEOHCt@_r~zy@b#Q0 zrG?}QDXEsJE}A!;rizDNs@ngJ@lElm8ThgxZC+CmhD8itx_GWtNj_liQpOh^S#pe9 zwYdCah)&g~p{{1k&#(g`@U{Rc`nHeeaL`C}pnc+rT7koW0;wBy-|c}s-2tWhuIFVy zT^9_FVlHQUKDG+H%7V}S@y@5{!^+aTrIcJk7#iNGws9-kQgDfLH`qU#6197ja(av7dQMv7j2IiB14G!}o zy!~+1^|YPd&mFj}-@^7X+5fB0Ww=-*^@giap_=ga4iVGe{y$ak1cCW zruwDjB`V4Oubp|un3L34t`A9m$|LYXhGUOK+8faYtJ#3?R#-OIaUd!1YFT;lMvkL9 z3anzRov7Simnv`7H08+lNvpZ%-O!YbfwQX*j%H$Z6H%%1%hxPF-f{NTFdI$3-Ip*w zt3*iJ68$$SbOTX>%D1ZAWan0kggPYvZ@&AsptpzDc6DOpkLh)?^*Oq8dc5G6p7N-x z`OvqeVm0nBx}!+BvIcj&c=_P0fcPg-90F%p@oR^`zPN%F)~n9hR0Lo_R`i>&_DQ|u zK=$-_1nyn8ZY<-6az~g;WDZ?*VYgE?rhGwQ@MN2F^LELTsz}xDPpnqib-A!b6{7uus*~iE)RTdGDQ=`ABMaz-i9z?(-UMP=-Bg>tvD|lidekIH zOgZdK7jA<46D_Ro_&r;0jmr4$t-L!6^!1TrMlH|J?g9tLPm{!^98RalZ7yx%osXYB z`!ePqE))0&8(sv?^+~2QwP^yNtq|g4`JI)7mpE278#CZwg0??e0_+D~{V?oTKo0IA zAa7=GBr00-^BBs$fwmB`vn}K4}N{*j}Hn>2MeS$+_Xg8H0XjY zbj3Xn&3IlH>l8)Em7?LvAp3+*LN9r{nztt!5zLzF!gPU9xp12AWgom_ZLTD=zF=5u zs#gzxeahmx>*VW87jxlpYqHC`6=g`O<$V|;HEcmDN&U0tp;EE?#*{*Obn-%d=@g;e z#=!c$#Tk##Fn8?inRbg?yT2Blg_09rAC74XnAF^aloHyO`IsbqNv88~jJkjY5up&2 zzQaLNKo7+yhrz9)A*1R~Dyr1a|K|i@5CsDzr>c_1vtNXRUw|@mdPd)L$K8y$PCR!5H06w+hR=n+XjvZ5|RYQ3wm z!S{F&cd(?iPP61cdY($kKcW}TI_l1TplS7iw=Jp#4bGDi`Nke$ai~5z;$_~(*SEq! zxT-WN&T<*C$2XDOszffcdGTW9T$E2E&GKyWcdvyBH2z#+n?H};(8l?KU) zPwrod%yoN}PaCa9*L!-ta55-y^gdSarPJq{NcT?1ul;))xL0rdFoZ!YY=C0DZYsZc zo%`tpdsiUUx2f$dyt;HDMg67-e7ZDDiVnR{s?#RDHLm6nyz3RbUxo&= zdsf+UjcI#;nBG4M-fkHh;BLfJ8-Q&Az7}|bk55mpq0)hSwiV;o@Jbz9?1%3{V~Rr_ za)2x-#~~JME;4iY!a0hF&>e z=YqhrwBxC->=va(@-TmwflPmaw1LVq0NYoO(Wd$`MysIBv>kr2E5&J2R&{RQ2eUWD zo@OmvMHEr05Qu!+IJBUzM+Tfc<@KG1MY?Rv_6L+HK#TxcW|7D25x7?%&?H{Z=p)B0 zjjp%of@IlsuhWHli`GV&(P-ZLxS?{?DnUgezwUoV+u{i8!q&x37xq*d%Hdh>AyGS0 zOD^TM!a5+c(q+|=$R1aaNyx`gC~@o?VcUnuJ!tutyHrM72HoY}8CXlwg5QJs_GBQ? z1p!1{{+d>v5IMJp`o)ak?b5sKzjupIPG1El4V@?{@-bc>2p?d|H;Q2QL=X)LE?`X3=3H)j8njB z&O?LR867nkO1l|& zgBpqw_Oz-UiW-BpuW``Nn6i&i_AP$jJ>d#EV#@KCmf^^Yxb*%(suitsw zV9+O5bX~FY zll-qO2PXyQn={<}zfd+F7pSo;v0@OE6(;(ax;oby5+@9N&6a zbT|+eXhIVf$Q^y+MZTNM}fgAK%nZFA4sc4K#hlQ3#ig~Es%8znvcmigh4(i5f z?V9*^Bc-JeE2ZTcZ`uB3yVVm&ayH=T7vr)e9rTbLG|qg=FuY(lo4IT9#HXg}xx5SJ zkkQN<3$-jbbYyjIZkil*DF>G*Vl|)JdY1L!^4HaK?9OjMj5EYtHL8Am$61l zl@hPu=`5an6f)F#hR>%s9oQ}Kvba+{92txQCGM_qPjt10j0$a3#sSTn2CSga%0WiC zTjFUWh%ZW#*1kTF3)nTqIGA($>O;llGd#T{Df0>T_}R)@jVpUUnE}(=mGEPC|&HZJbMOG5F#b>i~q1aE}Qui%Hk1KM|L=4 zV+MAkPaB|h(4;)=4oIet&GL$i-VI0A1oR!Hu9ONqN$&DGUGq8Cvf_s%Cm#B7 zw5Mo3{FfU%^oMSJm++uM4V_S1PuY^TGg z0Ubv-TPTEq+J|Ig>cs_rs2D2|6#wpJu=Ylzf`WNQ!Y$13X=}0jH3`W54Pbbjaw>vf zBa=^x`Zn?Yp+5AGsv`=^oBjPlZG3OJagYUuUyL}fLVT!-nA{8FtN^LuQehGv1h%{N z%Xq)xenwBWGsg(j5gl)J`E0hg>??VB_sQ-R8p=bU_B;qGhU%i?PbXd6thS&uRKB7! zE@tez=Qd?&wMmnD0Z1jpr%!Qe;~BmS&Gbw2+d$s+=F5kIp^O!k#8Uo}-FUnA0%(l> zlC_nn*oZ=uoQN>n0bHC9USaVzGMP(Fh%Jb$jqAdHIxTH zVkkPM(_FiXVyjKGGI+VbujO$g?zk_KR`4HIDru$t>sjGQ4`?j&F-epqIlZctfmzbB z`1Y{iK#6} zZB6P9mq?x|%QHm-SF1_h(OkScDJ3BM?`MGPHG^x~EWQ?3pI(H#d*La%n|66=@m8iH zh?qm9HyWN+GX3*P2|_bG8TxHcw)A`|n4mr2BkEa={lW%!hjE;p0@mLI$0fq=_%S&| ziwO#?#vvtF+szfce}}r5Wh3u`hCr+4=Ungy$Y^9z1-1r;A-9kL4(e`4zbO$&*P-qj zg@i)A>D}aehv`$`Zl77PARaUwfSH}Fq04)ShuF3(q=v9^y#oKDaZuL8^~D1WRRj@m z%c~+_FMc7s;qt#YbQ1!>r8Sr!l%WM&r%SDOuVVa%5}|AQy+?D^0_VHSRs-~)M33o~ zD8A*%&~#u?9~f7m{py`AfuSn073xhsBF&*}ve?Z9N?;TI9E$gd(va6Ypy>h%!%_Tk zPS2>=7LQ97+J6ND^FsuIqa9=HSUi3(ZO43lPwd8M>pf6R*$|7FW}Rk#IIm@qo$;Zh zG+>pZH0Od1Rjq1`q;0#Q$d*z#k_qC51Tjk)Xw!2f3To&UWD(o36B=|W#Q~#g$ZUvE zMnwOGnA6*%aI60sWAbGM}-(4W*?Hi^LOkGqS8jp@HXyLZ-x0W_2P>G6ZK6|UcHj@6lN9-I%Rt&Gn4tO8h<`@ zu^c6kH3U&?o0GMSb8;;y!(`OTmFCJj!!H%<=(@d@0J@^-r8fextM6d4Osnj!+10hw z-?SBk0F2E%;-@|;`04wuLP_gmx0CS3YxL*q-w5kw^Pmz(886vLu`WDGARg@W@u*Ia z(AFD_i@LsWv*NnqnG_w;fy1g>-pP^g$Ay3AYq`8h1cBmGc5L4uE%RZ%h(GTB+gMFP zk#gEm3p=c_v#uneQbr^<>h&P$g-THoJ zy8_Jk7@Qp%0dAi69%s#0!u!1-jP9PNd8 z6Ga*o6xP7VAZLs&BSsc)tr|7sRKq)t5;)Y=^*?*%Mj;$+)L!~?jOFk1{`>%D^(H7X zU#5ytlb!C;s$O+-9Jc^-rPrPBaqhu!2}r0L>LWue<}T@O<^xFIM4R{nh_0`68cIT_ zXgfx6(Z`DlH0U1+C;2lh=uH;X(_`>j>X6MAbUT{91zmw9Kvib{a1~$2)@Je_CC-_%rYVhY=mjj3wa@G}(?dtgbP;L}5 z_3Sa3npV1inUhV;1U1WUq~e~7!*9v+2R&kJjr-hxEI9Z#{~WlVPRqyZ*!kPs(zrQ# zhLIDO=4IdV0*n`Q)xd$i#wOXkdZ^3rY)im^*y^wkeV{;x{yBBh;0M>nm78~XV+Djx zxcxR=FhMmS1WG(NJ@{+v!m{Rx1#YR4P}iQ2;pOf`{Jt;ti6i5;?m-yn5edRS-M-eZ z!-4Jq=I?#)%EN7%8UibGPocu$9DNE>bx{jjr|E9zHcm?gRC#^p>maK2A7KGl2yOFM zPWvk(s%zdI`=^pI4Jn9jx69znq{y`8$g5_00eV(8(&OhZTJT&xTt!VDWXGVXN zaUUxDIFzNrSV3-$`1;AKK<^7dq_%yLq9K6m=IFdKJ4H5(A|)EmT)|NLoNDbH`ojP> zP-4D@)5Od_d^(qiZk=iBh-#lIz_)uhlb1w)NV>Ts#sErIDU#4r@{v&VHJs5xMHyFF z4OJ(Z8Nc}$96Z#bosC5Nva&qq(C^0y@&m+qmMTHr1MVUvv7bqRc&N7lkp9k`RgfL< zO>K8$pjrb1*jr7XdC#oMk`gk}m8Gy+<3EB4#g{dMIn;EyBRHgs{~L&5Xb6Pjkoq#o zNYXW|4PVDTxrI7JLh5)>)y3Anzz{O1S_ZO5s-#2WmFs6hpaD9(;#+KOI$1>`z_GyvnE8%u9&v>n zv7f2ZECsosU}imn>i^==uW?>17=sX;0BI!0@FfJkmL&|&EIBtE_%Sl)t*P6#xf0ws zerR+ShQkmL8r=W$Gr^sh6QuVp&dhsqE!*h178btg^nFrM>0s(xMTNQy#(c~z@hG5d zEsqY6MVGK`%rh?9|Bfq+^FU0+Zn)vrS&sY1*8hLgCXhyw`9|BOKNr79WqbAtW6?#n zQlEZjV)LuQWpGwOzq45A(cHQN1f{17QT!DRep!vT3jH0%L zPtU+GIaMq7GZ+{u(13HV^jL5FM?EmEgTLSJYF|~Dl=PP#EAd@6-P1po`?tseECh4m zU+d*nUn2`hC?(rRwttv0E=$`tO;$!|^#q@=DTW2ThBHLGWe0)Z$2hn%jEo7SWQ)Yq zk{_Lg85olmJr_3%SlGA1Xgb0Hmwu#s&DBn0CsokMBL^`NcoXh?)_>{1r$7A_>*mK| zbs;@-DkjQ|GdQq(7fN9Yj^Yh@bRB11aBf=t{M^ z6*J^O{dOYRo~+-i>XNsLKTlMDRhHnZNnUwrF$ z#E0^}x!!H&m>!B zqAuKF1s|VM7@ibeFq|IzKdXBP)+*rqUgIBa2;M_14SjlX(z;|z4HvC%t5oPDH_2N5 z?Dz*3sG#h?B8{w#cLi@N)b?Wfam(A#pjeQNyyK{9_Fa<;@32czYh3nqTi~2gOB&PC zD}guCYD^$GRE|flXEIH#HkJxiAK{bNDuRZX#5fbgz5XNQvKHCqxZ=37^RY*oT0$(Y zGWhexnK55?>@{Vf&;P`!o)vHlnJgbWtf&jXBu?*Us7%HUmC+KZ{-d9(7`U9sR%Uqq z34^))ZNo5w%4iKSR(#>p&mi=O^n^$i#3@@jLF$~d!hzhO`Yp0XN+i_wK34tO>d zm_U#+E!$L1F{1p6`xLP=TqjkpO;hseQm+iz86@)<&hmAMT>=AW@(!ODm_^4Qj=L4STNic$OdPRiRedm!`_A zl>4U0LT1aLeJ2KR5q5(Ww3@xsb%FWS6AP*r8EYz`Hq*-h+;#=amYBztUq0TrsQT z4OE9Fall}1PGVqvY=INR97BBzm8r-(?C>zYNERGW<9!$+o)YV*&zLhP_D*`}0*v25Z+fF(L>?f?gMnl$cm1N)lNN z;+(=TkXFAe57Dls6$M1fv!3tm!n?1Tp>;TzzmY-$lNNPjIt8VG1;^<1&jv4u zsZs#AI6?~Doy|(~TLZX;R}7Afc~tzQN^?~5iSf>@Jh*7;_YlLIArBfu__blE?X460 z{_kI%Ednrn@&MAIm+>atto@cJ+y_E?C>PgJ1e6@6$18B(EL1`%vN%H8kfCFR3zYs) z=vMH_PG!bUKm!ZI?Tj3xw6v{XL&j`Kd}5Inl$OIPBpUT&H;1GA8s2hPm7=Ek?3{OZ+ zM(O6KdIb zAskFITqU|`ScY9%UtwM^q=w1i4-TXZe@RxZ*T~jfN)T*+VPT(I0>m=R)uP;Hw?ERi z*fA4a*S4~Nl*BF?WL+1b02-y#kZR4bnOC*D%>KWLgBrIvI6mQP}fJ`{4wL2%r<7^<2bl`_UHsg(JFuXCwSvh?$juj=-o zPji;i5nF%_zruXj+RWtHB}fHT#}MvJ*zfn#zXRYp*n_sx$_nrW6<2O;OoI$}@|V)Rcn)yD?p?)>kRPt|gQzi>6 z_`4e2isSB2Hu7iZ=+8k48TJ(>#0}vDidH*eKD?v`!`8^kN~YsOyui)h^U<29F!1$G z$Q=2bJ9cA0fpKU301kG9#G9j#w+e2zsyHg3dF%*Hw`RsI*__!>Q!&n(|GXJ)brIq_ z@DXYM?3Gqd^_({$BtOOWO}tfl#oiEgp(gX0iy#90?0|{kWj)K3{iJ_;JsV88n)CvZ z&_+1NXLfXQ=iR)KCkP%;b&vzek}bBJIhc(%L#@BOHhzDFIb;p#hk4*{&k0rzbqsY! ze4mKC(mX@;qBRt}bNkJN26tHYOajF)1SRGpC;51Tflv41ec`gk2@DYTX93gTap1Jf zc`&cp;qiQIQfo*dQigI5nn;MFf|W4>emKvJO<)mE!GbCN4!dV8px7f6DL9ABHt1%o z;^ASs7UG5C|HHEjz!ySM@GUIS=64X^9CM#8ogds662unASeN*fD=` z#HCA2S`Z9j%%|xyqFHu*pJc>>MiIoDIsiC}HLSIUn-eZ8N>NNbwd!Y3ECu@)xy!Bq zHkE3Pt9$RBF6WVOSfn!8X$+MXuakF7hl?9$yIbS5;Mcz^N6Jt)J;1Dl`Kqp4;Sy^2 z;_*^oSr~?Ne^_^{4$5i5-QzeUHnd!Cx{qad?P*-yT^kcZMt`{2H+JANfhYwRq5@%u zgvX8~f?w=UgEvHL6!UGEcDlcmE^+9@=lP~zVq@X674*-8eP}v@9+3$|I*#z!t-GVD(MBIUM$e1FMJ;-Ct}%VQlbe3xF8cF<$8C`z2iAK?v^8`Q5;OR{M;$Lp&yV;2qZr z@kL{`3yNCt)(fK=BL&@40th$sXngWoK)ZjKZBXWKSH*`I30SF$vdJ@x-1^g;f-(8R zAdbqHlbPuK6jJ0TILV#F8vhLtH->>1%<5gm#v7Z);+4@Ux3_zNY`}Si7L=jc_L8+j zAV<2M6VdwD6w^_rB*HD2cf`kG;-T_clXElHRYrU+ z6h?{LSdCU)R=TtpOm=}iCTI!%SZz{Mf`ZYrQ$u0Q^22%5IY8HuP-$jxowbY@Xe{&D zE|0Cx^x{SZQM7Nyx)^^slLsUjm>(S@+F1x<)w0cfVM(0e>bo`?8d*TL8)w4DTN)l( zT2%200X0PFF(Dz*ijqZs4`0=^{7iCa-sGDzou}3BJI|ak0wx#)_(2}f^D&_f|*yvIClpvBb z`4w2d{v+mKSSg2vP2HS716CotdB*C_vjl?rA3?ZW8B(@ty2Q{^ZGRH#}$wgkgu(YP#_I zIh10Yhg@L`N&4|}@SksUa3VAxH#5F)EIu7K%OD9m%1g)w3^psT#*`nQzE$Q|%m|aH z7@Q+zWB8M|{)-Htl%_%XsoKpr5&{N@WTTKDadf^cdUwmyMIn`OUPy-ed=>ib&y7ov zduj)KBTAqDaT8iP)4D7%VAO?r-cp)F(XjGdL`}}4$hxKuifhL4w9^2mb9Zlu_dV2n zv32*~5f>=Wum5Jo|+r1NH9! z7^7X*ILizAgYT$+x-f|_i0XcNe42jH()C;sg2JcoP!kue?z(ZW4jc6c&i&7(F92SI z$9|_TycYCI@b6whguq7WD&jt;)&KPP!4)H}G;IL1zC5*#+cL^pAUh{DvKyyZP;i^j zQ1%ZCfdj(1Ldel!yU1AjmQfb#zOKX z#mN+YJY%qFo_89BwBz3`NL%H^WIP~kfLu(Q*&#*t@n1eaqwbJ@*7`DP^dv0vWZ`)n zke{XSMdbfY)4a>%ao4noFC3MX#wfIi3WaYPe{7_{coL4QFk`E)LlQ^b4zXJ1BW;_G z8^2b0gH&;3=Y&>Ry;Q{txz64;eFDaqlOBtSf8Pyd=0Id1dq_xvj}BieZrrJ|YyanO zzgPSd>W#FnCStO_|9HWlUq{H~<7NAJxleu8xb;5OV7~N-ro#$U-PRW<)EeYKD(!t> zU44bJ)heWpRkeh_eRw^OqOx4%Eu`Y$i8DuAeHpQsOZ^s8)Ky(H2T*X##g z7>=W&^V)ij?b1SD{Oyz*3fhTiS>WEy59=|?%~hD&>`KYrtQ&BEk9mpY|f?6X^6+o+?KHMHTtsM zApCH3#r^bJIC2Rp{OyOoY&^fEu=2D6MC#o@*D1_#+Clg9lpILEyUK3(fn5ENJXGe~ zmgdmBQB4zJ0Dagqq_1kKujrP&k_YPa5<2+!=fHL_SSk(1u`YR2?K$fCLSi>r&F{3k zru({TIPxBJh7s`|BDH~TD)^kcJd*#au%3vP0QqMYKpazORPem4|BbZTHc$6Jk6->w zf5{7&5YAogt|GB%Y95c7>r1|kCqZ6OeD`5}^@9188Er%a^2TQ0ucq+F$Yh8wv2?e1 znk%0B5%6ka!NH-u+>9peF}t--|;cu%3M!TRx_RgzIuUg1_?hu=t z^7f}x33sRe-6vxV8>}9whDA2-P|wX>hsFOTQef^)8eh^`&SkUVQth?S2ez;>P~V`y zZ`6RHcFIZC{pD%e>8V3yod$xa##uA(##d+hfAsRofX$G*@g@5#CU6FIG`})8pq09( zglk`Qq81~lrw%slUD>#S-sx+Tw|7FfveY{jWj>25*HW7Hm!@H{*lqJ`i0YdwJR#0f z?Va~_2RET0tDFtTEho;{3I)epXU@oTmTIy?d_aWkt?*byVeR5maLs~rpnmxjXw0W% zz)}5|-ZmPH>)W%P#kkZRK1%Z5!p+*_DYj}hxFoA&_5_{}$Wt1SLedFjLj5f<&q?kb z)pKX&V9Drk-^+C+MhjbxlAFxO`juGz^!{c2M+2}hFU1l`!{_2xz$NT{snrRemV+b% zxI*8ujp-JJjmX}Pi8nQ7$+v}6RcZmQPd`W90TIySK<&|mv^Cx}ukDK6L|5Kky2;UI zpNX1MP+RD4!B7S0qb&3)qxhBjkYB6_#V`Si{aX^+?@lB?wW|3D42mBz0kWs0LWZzX zmhDFAyM?ovc_m~*qj!pvXpX{^nIG|2oLp6!mKNuX!1XhHYNDFU%MRdx;h`~{op+`Z z>fJwCy{3-Br%o{(`g|3L#J7ci@nd?g;`QuS`}CBOsB#@an7Y9?ZomSkJj7$_W*Jf} zXXL_ziQSV5*2)8EW%5?KwS0uy~U-7e)?*Z;qaP_kZltn3wTHdOc>#*m6<(2|grJT@5m#c#yo(mS+)X^dgIEXL>QdGvdxEJ$ytw-u5ff+M~usBR_otK>CUyM2#4 zT9VBBYyNt8yRnA8X*`??fYj9^_i+8^9}xRK!@^EZv=4jzw6qTyVU}3k8HPy)wcxN) z8imH-l%eY~2dSq`urdPucGrrOSpnuJhypNk` zuIf8`1`0lF_JoHed3O1*=1$9k*iu*5X~Rf)>%zxL{2c)VFSfmBw?K=m%ldK_3cQ_U z=_c5Jo=_{UJxvR&lKV%q$1?j41ZrByC0_tG3FoBd4xBD^Sq!h0FUQf9*-O{LF1{DrJQ-ifmu|rDw5p%stFR%zd!`yRw=|7z8AH8sXVN{tGp_NL=8BVp zdBUrnn(hu@J=Z_LJ)eaCaZ73S7uxMHpO(GA7EC)1HjcObvS#2s;~uiH$zcRyKb14Q z?lSg%FoE$VQ(Ko}-rAGN(7Be=x~b9!Z~N4yefmE~kgeUQDCuiA)WAPB&Tfi~aY;_U zf~k2U^>NbQ=b8F!$?*cNt03TC#A84YA)~3y)U((*+Oedb4aEo5W_fRdGWG*J4q@S~NnYd(_HDC4Bwu*uIvbo07?`Cdu&Qpc4K5 zUg1ju7VYmUETrhdR+hkq-cQ_~(LTd_h9(RS?qQil$9!l;=;rofkSZEt!f8`0=d`_X zkabGrP6k5Vp3RpojPk2;B8nh{^z`Oc9pqRL34B@mled?ImkOW@{D=&vK114+ATeGR z;60A_=s^BNZy|d`7wR(b6WS}p*uwN29gy+mr}$}4(sD`^Ki*zT)x2y3y|>0hR<29_ zZeQl&`oCfkEhCu2t)AYm+Eo;Mf)mcqx1ZoY7kcB?@YcGj8J`(p&yDDj)vhe4EFx-r z*R%LdIb5+=bYuP_iPS=wIRL{g4rcJzZTAtGp6godrM&eLEVMjC@^GZ34iq0B9AupM ze3gU>BSyuBB$u!8FK`RyhnEHnBX0e=JYBo4G$c*{8dWflM~v;NOv^wTCOF*nn`l~; zW{p53hr1t_#8u*+ds`RS^Y|S3GTzR4N|39i=y-@i&@-0dM`%*Hl8i%jkW1$xsY!gz zLf7`c+~JaHc67BiFVS5aCtj%c<2$6TD1D(zC0LOavas^F*Pq{`J&0-5AEfKEMqG&h z!r`NxYy~*VL|3N^)c8iP*?TIMNMdjcFzPc1o;3d|+iNl^P!k6?bz+1V6o=X~e)|94 z50Y#Ca@AT4QUWsi#4zz9N%NgeHY^Aep{9Ci%yeZBrPx7nhCxwBi^#7%X@yYXNGUFnPYICEiVW z`5WH-aY$~k=|T{l4B9{6E`|%9sn5TE1<&|=N+qW4xBv*~F)P%axZXazd8seCbW;vg zc4juu`1il+t{G(3Ej;r^1j@f|C$zm_&uj_C-zNl;BflJ6x@Kwi8CNAIWjh(bFN9tJ zn@rTCPgTLTJA)@8#2@(-x1F(n+yoC;k^7e-`ICf3ywDbMrEG$YaDJW*%7`r%p%3y7 zb*Pb^qKD0XT2p}sPcz0CV*iZ>39e?XOonGuGC-atj>vWmPT<$^eXI=#D*?UbvA1@`FS{ zl+Kcw`E*mk>9?05E@kh7_7*`@_iu>5!wDWES_@yGXB4b4xpSmfVF#%pumvlm>8S2c zhpVepg*oQAQCR4M6FKghXU~Lf%a94;LqA1~7|Obla^n`7nBGtWGfnw5KeANW{JvN7 zzc$@#;>zcYM z3dl#n;@kve_*#%e1|6k;3w$!mG;ir7)IuX1xds`nONp~lSXQnNDY5{&M@Jx1Fa^8? z1?jaMr8+r}Vu85j(a()7Y{t{3nd7SBZybwSqWAx)SX#Y+j4GObviY@{dFMqg!UZx* z>p11`CC`Z2sO?Mkx|h-L4ew-L>0ywGCvPi8Rkw$IvA1dqa^f6lip*uq(XXE#gE2)U z!SN6ax_mz}Y`?UE=%RXm`VaYbs4c=sUS|=1w;r7{eaBbq6O)6b(r#Gw`|dk#utj%wr$KYC9et_|tH0xHiLkRAm}COs_b)`2Vh3FT2d#n; z=S12VE09H4oMR{Mpmo+H_8dN0T$&THsn(@WmPmJW89rSDk>XR3i6;{xLet+8Uzm6G z?Yr>>$&7Ade4%6ix+{K}_@e(2bvQE)IE0;?^aCKK0f2WMSWNb4yce-`$()+xgA zZ3S%{e(W{Ska86&awKseGzlDL!!eNYOXyatUWq_O3USp9%=XqG`SjUgj};GWUYNg$ z8eJ##?d`6JwtDo_Q0@&I*DD?o|F5^YJru6VKKm09gd=OAVSF2-V$tuBYQ^@FIZF)mSBVB+Xk0@XPRu8|<=Re!l6Bx41$su=~;?6=dsASq& z7eYpB#D^NYB+hxf;RuRPLJ8K9r!D9b82Wv4MUzq;jY~KHevagPdvWeP;Wfy7b z7FJ4HN;(!5P+AFTR%z)5$rYQFR7ph<>F!vIPU%MJ5~LA{@LFxyUsmx z=FG|KoWb4-G`=`Uf($dwKiaD&DFmWFL0wX8_XPD)f(0i z@kMM2s8om3dA2r;7{ONeHhbkKT+ci*C@&Gb;52mU^rFS*{=V?Qg`I6aVQPjv@nY7C z{`et=;~Tu-Awz0CxP;RDG@H_%s70;jHS=4j5_ztfrE>9iljiPS zA(rl$<$b8t!x#|2x43m{pXvG3ECwo@tS7xfDyzx$st`jrND2Ik$N8CPu~0)$lDlTS zbT>@a;qgYI?g7>hUM|YlZaR$B%?|vUK1k-nbqPV#oK_jG1XT!160LrUULMuh#J13~ zyJ9oqkp7m~BSsJa2$2I2Z-do=qD3>roE-k-y9<>gX(y`o=HhBF=qeMR&n5BKv~=t{ z(EFOli>xZYBkR*RoNUaV801XF{W{#YKoB=}pH$_Rvcjdi3a%9`G4(+|zy0GO?W9xK zJ#0aou5_OAMGg2BDlh**eCpZo{@5|jyfE}W5u?}W(jXPy=(do?_hM0MU^5`)W3tnK zt}&dZtR>^L-gxs9@$ULhzP-ikFYYh@iqig6pCCq{i}DzWvis1JBh||tnTriAi6^4& zr>8rB)HeY=1{0_mA zS4ElchKk&8Z}}D74MbbR3KECT3#4W<(JkmBwWd<+gv+;D?ADek8zu^gEy+Yy)a6ef zt!#}F#M|0$=y3lq(NJUr-5am0)nAfLFMiR_2!Hv^p5O}&&Ko;%44zbX$bFQHCll>7mq*YI$cet|o<4gnbQx1^`-aiS! zeclJ#+{ouNn=@(Ns&SY+{gcwaKhWMrhK&2iJcxCX+4U+OuTe zgjDH+q9H{?|1Vq}pAqdxaTo*DghZ{aR3!JN zyU~+Haf$OC=&qa)KHKueM}5=3iSu8MSVtm4zGPt%xXmzsCZ8uR2?|=x#maImalAYrW_ZKWjQ`#i^acoi{LfONkschi4Q% zv?q@SeGJvq4_O`|2iY@X--@~dRQwPA0C1Xf6vRDW8rI$W(31~@^zLls)4#oOLKyq; z3o8Lvsh=eMeSYX{h=i-ZtMsNQVz>8O$j2RbKYZ#2D%kU@un)eqxkEjSCGl!6rP}Qs zo4LR8t9o>EWrY&6ondr$cKKD`pgzb=N^l}iMSL&P3XdeMh59yIhVAtecqM{;3@Mv;UQ9$Dd2K|ro z3(~(~FSVpxH`3m|9yrcfH&WSxnm_g$;wj}(h;n6&a=#Q~VZ{R}!pSl7AqTR0a`!4T zHckcaOM{@*qspJppk~9V_9@@5VZC%xjEB1jl5@Xq|1$D^3Kh(Qsv(j&sIZyjn3cw* z2`_0XHRTr?-+Vdg0g4T6dk~+ z{e27n5Vb$ZtU}fBdSG|&B)PxJ6+=oc3L^t;fmWYt^pt^ivBZHIGIwf=K zT{Pe15pbMW2k6nuwkGBO;RPq~x&_630@9`WKZuAqOX?dV?asuZc#ReEqXqj7SU`=B z9uhuEp>_K9x9?1`jDg3RNaTK(@IPky^F00jU=4uL##L3kt}jsRxj6#8Zx4oTUVut| zTbbrQVh9Va1A0~aNMOjJuKO!o{+Ye_gVcYL3H204qNbH_jbLHKLo0e=s^#jy()jvQ zTl=Klg#z_K=iW8*%Na0yJRf~c3m)#nfwsc{UoWR@Q~fW){`d;`L~20D)NADr**$1Y z&AU+bGeczMdoz&AiPd2pd| zQEHjTV(d{5@z)Q<#^AR`&{d;&p5_Ggos_cx54_-RR2pq@NoPu$;5j822@l9}5*$$c zHJjTyLG~hF0|YQwI?RF=wDBf?ISEJXJ9_~>M5p@T16dmAeRf2RX}*p-HSagfPT(j9 z1ArVH^mhydXHybWz(|5d|>W`@ZX_j>*%{} zv3s?G)&vH`GN{)p&pX@DYg@qcoUmVa z6Ut#x9tc9}%~}!;V@F6-$o%)})F1o>=(I&p6h%JimJJ-7YJzv9O`p6Th{^<=@NqA3 z#_ZgqTr`)Q(jjbf)(C#=a&6UOEl4N%o)W!)WP^Cie6e?Gxlq8t0Df9_5u9{2qa@W7 z22@?jhy&dIHWn%#O8;6}%-dV&w^xGS!dLt-)shKqxTb!l^^W*%ry_!!R`+5}58ni0 z1RmIaW~K4oF!0|-Sv339hBK{cynVp?X+iHxS;^_cxkTtSk zPZ} zS3E*JU1uRKfFTxBl{t=!otZKcIQ6QK%xSnijhpHg$k_u#Ovyaew}+5Ujxl~M^Oeu6 zwy$gOd6nRf27`4S(mOw(mp|!@@_{`IJvk)GAWSgIGq(XXp=#Lb7i2OfzF-{$D>_~? zzXSqMlq>!Vm%B>vhEHqugz7xSwoMnf&*WWd85MH+$1x|$Pv`bJfE_P|u03on0%dc6hLq8}r zZP`|G+$*(Xt~#m{k|S%7{X&$ZKT|v*A@{Iti9mcOKMp&6XExO|b16=a@l%ESsq~ps z?voft)hig0l$)GX@;gdq=3086fG%Kox0tW;VH3 zA)<|Zy+97w%A2jZU(N$osZzic!>PIPW2)i)-2WP=`b*bKeeU^T>RknPcTa8=^9->A zG!sCZgvH!1977x#kFMkmF=82y?pF*(lkt;Yg?xD&_u6?zZYr=Uy%?W55U*d`gT)4jGE->tr1^Y17{xQ1|D zH48-N^wazHh?Ok0>%xzzS(?h{@FOEy?K1UWgXQLl12kN}L*}C%IS5Qvy=k`r`vslI ziY=6Q5qP|nf<~6k$DTtd;2q@%9R-BmhBjlWF+2!8-0Y@q7j&Gw3`+Elz>jR56BEGU zhkOp4z8uvg=#AQYdS9RN!6&X~y}D4T5o2Grb0V5I9Hn0KRqigN<9r+FBa8=P)=JK+JMjVYR}bl_ENvk+#x z%M`}@J$QSUc+E?z+Fbu(-x=eX54~#!Rd~hI<9P`R9!5cLD>zf_!EFWbW4xAm=o$yv zwg&IdE^8%6whI%$ecGa5z8skix)6`oE#)s>lF6La=RIA63nG>{-V(k*HVBdezxEbGi)4ZX^*B1ig*0B! zQAHD8TjE#(X=3*81j^Q5{1dYtY|8o zlE*zhxjHiNN;lg~F~`F)$T4YA2?C|&ikP{dP@KCjzWYf1y#f<1!Cw+fk;f_IKC#KC ze23omX}rNggW}m4l7sV+`PiVkWk6!Tc}ubD-8=c0c$D|B7>*daMIpslA1RiIM4cXS zg?st)&#)QqoZ&vAospxinNCwD zS8z}ZL>zH-O&}L3YVgm)o=-5TIh&AuhB@=mI^61s{gBwiLOq9ims?oz>g0k0N|bV( zoV}w>b9fT#o!99{+Y=53445qek&4OU5nu{L3(_T>M(-f zyLo_oj8Xpj%gQoWQ5t=plWQJ3T{Ztv6bnZAc^**;_(iQx21RLfW(W?8SO7fJ5P2e1 zqcpy?itv?NFpYTK^-E!^@0oFQ z^}c1H>ptGz=;Gi`<${^_ne=y#WY*Viql`H1C6&G!Do;tMkT;~n5z#skoqp9DbA-F_ zX)aVL0yP;Y{R!$u2AH8IS!qHnoBHidPNgJU2x`q!7H*GEkZ2(nQ}_dCM|1_ol+|60^M-c#J~^);m1Y~%b>6t^AmR5j2`GwbuJVfa;7QffJ}x278w z{;{K5_|{`pAaY;Nmm=dhyuo@1ly<5`XEYqtB{Ds%WlXObvJZAI=Xdc~etJcM)-!ZH zu5#msj@>o)yRDYO4R-UbUnu2q?&6WoiHSdz6EsXJL>OD;p`SXn%gh+)iXO>}N+2(W zTB~lN$02>e+wLO#ldOg&{Gklt)}LsrwlTeYc${j6JL>UIT4jpAXFZiY>+C}G`4947 zB%nGp$DVfJNx4DpP)TdMJ^i4#lzhp9QF`m$h3vaUs9lG{`uUWZ;aGXl-j*6n9T5xb`E99+J=tKe+feo3@| zX%LxYHNu!`vSr_aV6r7g3F4Wje5lDubg0v$TRoCKiX6a?Hm72dg4R$qT-dHE&;Gn&>*M?8>ch9|2&RWm*{!5=Q^9tcAKhy@t*VrI1Ww*_aL~y zvCwD+p2UK?L94o!GM_he4Bu#Q?ZGFnFnNpCSN46j$B1P)g|LWS&Qe+Q44 zjO!=-Yy|ac-`bBxmM-===H3oojg9mEdJJ}cKmmeHMEE?Zr?nseQS#ELWN_9G` zCLBlq#}Ncw2cbm18t<3!LJ)8qSc${}VpzK*lOP1HQ2@O730T2ZLFR#66NQOSHm+fh zFNWnmNBTW}Jo!aG8s~6>f0M@uDb2J8o2~Xx!YtPk4Gt(ZZ^V-K7twpYRT<)OGuM1Z zDO>ZoK;~4LLFM>&FA%}gVUdS$5ZE0kjW6)JPgly0DH3$vbrFAuSmFpPrJW$#LU`|; zBBMPE$9Z_183$G&dza*4!0vY|=?(_Kn@}u6<`sn)6>|{&DlOS1WQ{S{(c#d7r>-Yv zf)k#eW_UVZ;oZ;6CD-(__HUiiOxi%*DumlGY0g>hlHn}WobLI;w-Rk}He&Xep5wKt zQ0uPX6acsI>29faY%jMuL=J=A1t6ox9AxYogLQZ-yOP-962`7yF@i zhBqRU7$YMJOq4nhS$Vo99Cxcs4qD3>n?w^3NvGCEPvV5f>#4!7P|r>bOBmf>{BGLQ zVyqm^51Z%4i6P~bTU`!A{Ox;pUiuIK877Nw9@yy+|60-F%f~5A^PuQoiH+}U1)!G4 z-Yi~IY*mwPNtbwD<)@|t--VV88Tlbk6y6jS?4J?udDd{4o#j=B-yQK3+ZovzUJmTz zmbG1TZV5!uTE}BU`npMKLj8*weSIXepXJ)`%`MyGSMp4|$JMkM!FO%q-*SzfR8u7{ z4~yY{hIY<%lSpFJ6wclEe-Jm59d0OF@4ZMa;6$A=7G9ElM6Ll$zcc$D?*49Q0g5FE zwtD9hW{Z4atBkAPiug=6i%IIXSZ@3suLJekIXBDp#2=%OsQ8^KC z=?uD}qK=>5^}v7g9-C9(FGVGgj%L?O;VuCkL;wPL7n)JPt2^Xne?lH7GzNF{lfr*pCa~@;}(EW#nC0DqGSBDh>8HgCa62lf`YmcY;qb+l4l?4^gM-U;%`C7B9r(84nr;voyh({E&~C>+GzFDVe)h;u{Y`eR zpNz041qHVK+VQfYj`2`xc1>_`OC1rB%+Tty2&%(sLPhqKvHiK^;Jtm#Zy%52UJB2+ zW_|~}81%1F=A&Epm7JQmLvw>0g#ul&!rZe&wRLoSjgMD(R)ROHLMI%M>IMs`2#lP$q)O$kh&XV%`VZDoPpwg(!6n=$X{L0KH zcHEJK(2{cIZfeYaAd4Up=yi>Neb-B6VT|@C4r}iGIY6NElaqMSYY5$T!i>j#v=>a* zez)g_as4FC5KH|cCc2{+33Lv7Pf0iinWF)zu^3h zN|?iJEpWjp{nXl!A*iFIS5peLLl4QDq8gXxG3tL zK5t3<2ZefjyCk(hv=r3C@Wj?Ka*g~iX*zxkB7uvf08KJwHjZ7`KR=!bp$mzkKt=y( za_343oOtGI5jG^(@N&$!xTX#ql zMfjERj0|_Tw3yV!s1UF+Q`CZ8K$izxxvTR3|RL*KJz9m$~H z+=SuXFmoOs#WrUI4p;M|z=pk`bBC2u)1Z5%ndt}bu=iRVVCpRfXql$0OwUWV3vWz6 z%P_o(&ufxmP=$pBIZn!%&A)=>UI}nqykrY#Q{hlpL5ePw+}_-Hw5VLM*}d8r{B-$;QFta2e1fSMR9XPwd{9P! zxEDx9K=F!mAmMS~zCY=tr>W?o?ugT z*X+Da6I}%^2_vghiiD^F1;v^L>FW-z@P(HzjX~E|=JmDXp^gEG_=_HfuY(h91_2Xm zkpffbwn1e50Dg#T!{^0ERQIq@j?lUrpBohmM;x>kx7?i{q@ePr*BI30j?}Uz{$z;M z(9*PV?#2(_7Oe+e9Ua-*)w_O9HWnVST>9}Y7N5K>9Y%zMW+gw{vt}NzP`Yw!Z;UUZ z&(?kjT!mym6;df-52V&owHHxuZj-NF@Y=LdH)y;4#Bv3VTATqT3t@ZAgXr4{@D4VV zT)K3?jWV?Ri?|I*NTuk|Y_71|=EoQoQ0h;_J)R}TS(->zhIbF{$#xi1^dJcCU&HgE z5!2C$cGijwrR(d#72%McfQo~G66*2 zr@fK~xYcAObHwb(L!ko%-^|R*PvHSyXat{j+tl3FE*Ky*XSR}3aVJWO#lY$Ih$Svw zqI%6e&{reZ9c1}5qqlSUi#8)@nN8hLpHf*W3;`Ozha<>%y=O#q1_llz0$6WE+?U8O zq73wqg$g~8V(2PaYQgCvx4BfNe1rnkqTCjb;IH30zj;PhJ)dOiM}L|hV)w8}-5vVu zvqvTE_>Dzdni3Tt<+ydD{T}SMO2@K8!YTFY;j_k2lB_EWpj#BJZ`uK4pfTl5OD1ok z{v+(&_G2IclksX?QrSVY)h+*xd=voZ{WF& z!BJy;TMS`;&i3CQm`;Ka0BiTsnl7rqh^BI6vp3FL79|hlQ3#a);fF-wm!;sj*rJiqWSY-(9L@n|MwBMKKQh2oQ zlpY1j5GjU0?~U9Tr2orY{Fm7yYap4NPq5S1vQ61{a}Z3cL#=6gxx~d^`6EojE+c8` z?dBexuo!8eJRFMF0Ijpw@oDq7UbFvB1|Ylg&=M@T?}${(AQpR;D3@w(Q62BKg{nX_ zE3DUf*um_@4;%?-Sb!G%m#O`O)GHh)BVl!uE z1bMuu)->*3p8C%P*NtrsEkCp)uoA!ZzWYymXF?|a9&4WQJRh0fP0(zRpF5L~_i2We zew_}KP~6{2znI`C2=4%rR8ACer~XWy{wu9x`A9!P$OQ82a9)^(A*9A7b%6p>)q!7W zaB51rzSMYhU}hBoK0z$33>^uFopFKGiO-_|BA8)rbtvXtsNiPqY6YNNWg4%XI|Pr+LuZ&$*TA^ z!v8Q}Go`pf9>P_czi>slS^#i1VdjcA^_6$%U(KT!Fr$$*b^VtUDoY4LX5Wxa^X)7( z@u>)@wi{tEtuzG;{zTiIhxc$v+o9lejzw%^QtSWMnCNy4n#nmmTWCf2RKV|mC&1~z zMY%jy^B)#TK`q`5lqCA+p*Y&LI!wpqRAv0b26mO%sRZULulP;I8UH@be0h;@R^H_=I$~kVj>F#UUTKyb@qWHNslnus5 zwybX4=!S_zA9k%ni@=ILs27e-{@GjvFXR$J>MgCULedYa9H+1jtG`w&CvA7&@n?W3 z7nE6hjntXqt#dd@8iwVI88L7mK<&HH$oZ-dnbP}zvt`vK_!YtKx)nuU4OY-Ry>6-~ zUxJ#p>|Cb`hJ45isB>ME%qAqd^t9w7H9uaDS^f$x;0Z^>Dka32kTD!|LJ%#M0mU!; zZK)=ouSQpBhAb~{>&7HB9W%zw>mofhG`|q7Bk47k@O1Cr=g0Tu*L)i_rD@JBe77Bm59(e{* zNG`B8hDkyFzI327&0sk}k639k>p>+Vev834qp(c~+b+sF`R@ zx~u5KjL9Ct%pYZeliaAA7^0yMXW$wPo@$-z;w8}H53d5P)g4fFv(o1yKD6>ZpWu%j z{&N#S_iXZexNT-cY1aXV^B~7B6(ehfX&Sclq@2FA$wv!YT|VsA@aP^Qthy5SEfpEU z=>ZbOn2?O40{RN$?1?2??gXejbio=+%Xm=03rcc?@(%cNeU>DWA-F827Ud2&xF$Y1 zV;D7pwn8PS!mmW_FfWearx;myZy(IG`IoYZ5f12`g`@Hu3mQqD!IWP;gXQZiTz;`{ zU;MQ%+4$Q)M$GkWgBMiA)G(<2J6MbieD@jYo5)+YNE@p02VCO@X7-b2T4cncCiz`0 z<%Gws+ zNR!kuNz5<#ptAN!BYW|Ntl4T8pDi<-#{rk=U4<=H*GbO*<7z|j)n!OqU~UL;`UeJi zoS19u%vZ0J1pVj*0AML>Dz#7dTHVJXFy7> zrK>^DVy?*qze80a1ZX2jh^g^lK@o7w1)Cy)fiQ8y6k&XnE?M5%h%N*CB>1yGHL$eW zmBK5;ZU-8xs#sI9V6Ko&FAB`&MHYVhalhd2G`NmG>GHNB^7<1LqzA$=7E9hR$D3$l z{J0-??ECJeXQT6|`*ep`f_eFB3lQ3iNrzX$cF;nggd%m$Db&SO4fBpj43D7OA?xYi zeAm-`y72mWjY_m>4qqP~2qS#HuK0Z|hYR}tk->+=fh}&S;Sy;ZKKT}}kJhEk8(Xt; z$JQmXpJr7X!Yo~pDi4XOV}R0F+eYb$uy|-3j$_S;x{9kV*7iDu;|xXKMd1rzQv#D= zc(f~PovEMI*dtUe*pe#|YICTTKvz4E1mlg9HFG^a6S=%m;L>_W{70!k{>hNQ+t$*B5jH-s7 z^^tiC_(D?*+t3CsmJs!5e}#+)cR}|!fg%=m06{;m|0_3tYN3FVK!d|U5BKo<2bgw& z- zhI_^do{m$E$GDQyz?2OiSKWUag=ZnGpLpS({IP7O78_O!QS~79>h6mbmyse!cyk}kY{!mH#y8Adlf#+Z9SyK| zuX1G5;M>tT64K^9rZ|gD%-CVL|1v(!UXu767K#P7==a9*gvv|dHXj%YqVOi44kJA< zyZZB^`#e08g5li;b<6B>e8rRNngJ6;gN_MoPy=nWe{CVkav))UGq?7@5RHX`@ZAvV zumiJ534`3mSy{^Wvm)&G6sg9uPgdFV)+tkak$K&FXybFBzgYCuT?g^3zBlJ8K7|q2 z_4cjD<_6^mq>P=s_}jZNvxp%B7sd#MP2NQ4Ko{#tE1i&HyUuLZG`)}=X61E_J;B>6 zs0?%z7lfD-sq$6--9cX42P@%?{3i$;Cbo>j!}fD6nDKn@`%|ndFLKL#-A$9?IlZ_;YHM$&98norXp@Cm0UKQ4tPW<~bZkD$JKypm?T-_)UL zWZ6Rd>X~fZMcY6tah{J6e8QSH3JRXlbCQzWR<7V5)BV^3>)o=CmRi>54wv02vgy>TS%|Vk;-HCkd*cu8iM=AOuAhQZ(9NVsmLV?YP<7- zubbk#KvkxIBM~E6T6QOD-6WTMC0wK$Upy?hl1kVgPJvy0+pX?agkqpnv#HpP7q6Iq zKP117%b!mcc>TpLl>=@E51r26!NpBdQ|~X{-qh1R zHXbL-P&sw!esrVx29G6DmBJ+Eoh0_6DG~)Cxw*?x$C$lUbE-dDmQOw_ zZK{|18uy{6^V0omjj8xBp@D=o$LB&;mK2cA=XYrGQfLTi#~B^A&ndu;L~i;MMDsDC z{-Sze(*GFW>_#5OBrNr^a~2A*nbIu!XJ-}-qLGY@^HdpGXys^*ur{o@Ih4@X1JWFLenOxR6G_&_Q*Ur|m5$p27>{z2`&8C7)m*}kYu-U{H zyJmt(w>)><`bW2#jQmn9ux-3XV0IzVrJm~*R~{35Cp_XdO!@d+j+4TCWa6EMQ&Bcc z+YihO2RccdjOWijJwuh3f-N;28_8v?e^$z~qW9LC*n#|S8vTD-bIJg8mo z159eRk`Fi>rIr^vkti>gljqJkTX`Bg%8&Xs#ZOj_Z9h;KeH0n+^+TWAr`I6{s?k!p z#m@p0wQOX>F5qonLbsXvII?0)6mXUiwuD7)XoSJBkfD?>-;iH=WyuVRH$LZ=PEFXw z;Qx7b@E?-zm(*zG9mgdpDlJ`5#t|Io=$i?N&zl)(o-QBGW4n7fvZDuAXf9!`f>^S6 z^7HcOF^K(#&Kw?U%6t~olG#wD*vl3IGr8Si!qqjY&(WDRD_btJpMpG__X2V&FV=i* zJ)rk%8x*mfCfb>={T9R<@R5CI;B-JL>Ue%yDVLzJd#vS1sjH zK-qDe;yRxBemm`|Hs$weOA{8Y-wKn=Pn+G`;%qdMQ>0=qFDyIHu$P#fwzZCFG6**^ z(xWhGrA7b=PsQ1YYK*23KuS?*JHCoWZS)?gHsb5JD)bcT0?LarK=2D~v6J zVM1-KlovR-t0TSFS0hVJq1z^lajXh5f7pS4Y~i8jgZXG8%adP?wM(gDKXLA~j7*mW z5{VFX=!bV&Yp1zsJiIr0_w7}y%94^m5RQu--b<8|-hU~8M6VLwDI!V5#$ys@Fk3qz zwafnSLX$MHZ(fnsfl2vSDq^n&iH!h1zvQ)VH;gUDH#Vx(4ef@!U1zN0D=j+Tz#`i$ zpN|YYIDqGsB8-BJ2F(QV!@l|S`w%9{rwBqXzX~yTbH~03qo457Bs}8AdA^Ph*f^*Z z#g@Xw%hm0#E8-mGEc=NdP~z@AP0fE_+aDZ^;>PbUc4o+1CfOddPxIq*ZHji7o3)PH z)-)=?4Vco-koQRn7(1wZmH4y^5)n9R%58Nslz&gJCVw; z9DS3CH`}04cmGT90f)^AaR!3B=GC}F3I6l}LNhIkNOh#Neo@)~kxXpr3+v0uP9xK)y3^ zy=^S7ieZaN5fN<$}BDotHQ zG(O6RKQm}n=iR7%oiwm`DgI!?&#DI{S3PU*(nja#G5Dcp;A3~a<)_hn*O$;N7B(mcX~S%7@U0vX z(w@L5EFNN2_9=+4FyR!nl>#>#+$7(_j1X={tN3vEdz-IA7guu+>CUE9|dlVu`;Bxs?8S9-`iX zc50)`y(BJOyW(6U;CQg~SX7~+veJC1qR+hXQ;_=$)V-E?DIXCEAA2AbtQdUk8c&=q za9_~XFTRm|>)glAC2x!eZ$m85I2B3W<=V1WDl}Rm9geVvx@`n&>t3EKq8QSN7vh3_ zpZ7Nw45#)Egesn^(0&9XgeIuxnvyVX@S39c@>!{aL1uj?Ve)^_9KTDUaU5(hO*HOu zWnb%3KKs@ghV#s{-fbp@hU{q{3w;xi*j6#9EU4R=KwrVBI|P#-ebUsT*4iZ19IAF^ zTt*+ioMVfuJihPQ+~#Oc$T2x&xm2@3Q|nt0qgTgnIgQZ^zuF@|txU=}%>q`bF zoH|n)=-#oYr^I^I#xXo>f4p-zJI(#~Rs2s2T_kr3!dayAv72DO$vVNYC`(Bo5inFu zTvfXJVD#q6Q%GcAS>5U}aRVv-uc@UC!91q1QlG0Fub3$@op2k+cG-?R2Xw;V*Z!#5 zxEIG|xoHvtN^psvdty|=qYLPp>g2DYiRvgK)vX?7xv}t?WR?ZOYD+m_^MT3SEF(cHZ1*-X%H*6b#ti(Hp)RNylxL&$!s;h7}7 zvUgWCUR0q?aw)pA3TU+d2OAk_qzeY>bTTHW=c1WWcz zP|fjym)1fuS@MAriJEcuqxM{(ueg8$(e%TH;AS|g;)n7gWrY8eg~P`^PBIEQqD589 zj{2L)n2P7Q>)9d95XUOR-Vyds?fNdh(W|_1<8#n*^)TJ}-Nu78n0NhqaFgZ1w|4W< zgn`PbeEVIJ^8K{r#&E|9ozb+{kmS7~9t%IyWUb^8QP6iu8qeHaz>_1UQ@)Z8Uk@D^ z)>oYO=-UcqUAk9_dDkUupVIE<2hI>&#hbXat0Dy5tH&2zyMc%1NlVE45ZT;?b;x*{ zaNs{-;~xJHnh=N@lrBxWc?3EsHnw!c&K-3neU*>!zg{xN%= zk1c+gRdlxQL&tKTF$0q99)n$RW$TrP3fM(Tc9RD=Ye)@zDdwB>fpN_P4C?;P@JzzR z#&=_Y-w@4&ptNiCB^K6yU_Q+6*YFc|rlTe&#ZK^qOYcXICdKykZp{ZaCA1`+(c-@` z~yv8OS>gp2?54gdY09q%Ae0+BDTU)X@}1CPTNUAbOm5>lpJ zZIrvB3P%VIQBJp-VH6Om7ZVt94?DxBfSJ?(rICL91cggM+xwMGOTRHxaDFUFB@LKs z;_+Q801%h#rX+eeko664;-2i2b|LfuSROY~_7HgvZR&Z6l%a{)oMb%}T^h{`BJoQu-rIWr%xC}) zLj{l*#WncI*`@d&$%o1yFh8RSe-R{Gs2@M&-CwR#j1cmK4i1VKAsnd%NJ;L}!JEBN zSdbd>3-e77vut_+6IMGz5G|!{JHDrCwNa?#c)Rga5APTfez32%O&@+JPz;&O5S5=QTQy|0&nDh;}?_*h^^`gKU7s#Kju<#-x)vW{Km3## zeA{uXbI&qz)$xId4hsx5Qn7G}?A_weWOBcWBm=y>@MVqJJE`x0|ibF;|K~S$0yGr4(8tCl+l`;Y}ldC*?!t$|2v<&!0Q)} zGUqNf%tLVPnhWwhZ(Me(q^-!^t)?Wg#4foa9a>z!7h86P=!QUvH zaLx+RvqiSCy^x{qOhF-ni;^t=4v7CN10&dBc8D}J?Tgomuo-9~8_n6$d5F7(Z;M#J z=Ex`N=X9(V?5|8xdRuET)GvB!4u=7m)YIr>f7U3n9kyOJ*o0NyiL+QO)3zhf`vC&e z*WYY>Uc+2>wvDY4cKXYqR7-geHIPQ8w1QhOdY3iJjpjOU@OiX}D7a?3K5Dg0M4-+K z@#R~4nZLk3>m2_Hs|)YH@aAdOMU=T_L$V=SswPlj*x*#_v%OUJFka@`*s7cV>DY#HYt}(KLkHQ$`kHZd`ncx? zvB`;GY#G=DqPVwjAfN!clj49^E$yW`%XrFdCXOD2;k%%@xEg?os( zo};{sCno=a1@2-6n}JC4yuouM9G-7|{@6#{>z5coSB3b%#F>XqdS{ld4^q-OKf16=3 zX$SU5+oR7TxjnmIKFAa{^?maFqI-vUJlCTGap4Mub+`gP^@@jee+2@D z;a+<}Ogv1%YewiXZZ3OIW=WtQ_I1MkcG7=I$Nq}~O@AC{lFQ80i-o#r0TU`uIDcIi z)kH~&2TgcAfq&w;N=7Y$jWK6F>)ety#6K{`}}+FCb$}@s!Ds) z+>{?*K*+7KrOBVzP`@pIVM$JMt&RzZoTdJ#hDI#4mEiI4J*(BtFydpAkG4@?`zK5r!_s$N9rh(vUy98(GDai`7LXJ)u% z+emltwEnf_L9Q+V?iq15`W)TO$zX&6^d>5WqFX5Xf-ak!(5nQ*#~I@(7xq&}qJaZk z;4L=U*qpOVjh(178Vhf>EKE%-uDJ4mpj#U)863;&b?d*eVGoE!V>3*i=#bAIu&blf zcQmW9hg)zz?nG_Atw~sKzlnQOavvVwc)ikPkm=4H-2*%F&cciBFTT;jD|2-V)=G@8 zP~(-65%h51^Ce3U3=F+pu=U(cdCV+xtNj_|4Ey&W3~Bo9L${q~$C{0;vB;w%VgJ;L zVuJ*?(93sD1T1itD7jlgYG}opu0Cb@x6|_1-}p{;qy_1}6?$|*JW5)UVt=l9*Nx-U z{qxF$eq~L8Cqx-knL6Yv21PDY;P>Bqmd>Q@d98`#I=!0BHEb!X!mmkB7}|1ge0ZmJ zXv<-?RNy{ldXGYh>BALRB8jKjWD0l_6f&Zo=%FQNZn(1Sy1x>?345}w*Cq11a9(*4 zxY0CH=CD*F5l|kmTOhAZkFjyEK*(ruUu83o1gn38&fo=0>&spH~OkQYB5&J;KFRbV)4sdk#Q+f^`2xFm{nB`UD`uHqZ{i_bv@xXU>; z=ZFy6=TfF{aE-cCNEnafvVKk;{zoDQaRSPVfcH~J1a5YnyHQA2$*ULmxN_b}09;TH zW|;C3Hr(jwLeC|TRS2^zkZ7DA&-gZ0d6z=O*DM|W(;!APOi9d zK@P#VwvR+AmpzJZj`?15H`fWiiL>VzuAtkRH3iONsZ21jTo*+Js--_Exajs6;R#_k z!N^JQ${mo!w%#{WCH&i^TDgtTJ54eqwEh~Yd75bVS(EnR9I;Rp1Z6>4H|0-Nsh|BC zTuW@;czqlp8UIj~W9FN2pYmn#pYz0mOyKoH$==eh49Zw!*p1cbq^T#)tI`W*nK~{p zd>%&{LB6tHx^l%%1dU9{@}dV;U4J<}xHC6{KFWIox>$-M6~Jd5_~XcA^N?DPq;ag`tam+AKfa_2W$>N>QA<8ymAabS~sGB2e$VoZ$v_H;V6fQAV$TCcaVZ zGn2o^|GXBzxEMAS8p;45jxTfQ1(8u#mxm?T3`>c{Gi}Z&Go&jm;EV6^CQjbE6=(`O zdt<+VHh z2zlroCCI8>nC|aRdMG<`%n*b|RpUol_kw~7{OU(okekM7WX-&_`fQhYF%ITt}OjmVjtZRY>ukjV=2;FSy?z*OwIDKSr1ab#*vJ{OX-t!4Zi>!Li}pXc1>gy*@|Upv0$P>lmLK_3r+oe{ zWDsbqnV+x!X)<=Jp>=7k)84^bEG3^50qV}PqeGHn;!0ohk)6;!lfV!gLPGL;W zQ9okPTxbbOq&NMQ93NW=p8lGP4GM5LP`!a&`j>@c$JsY9VKs1`*s#aI&u*2q`fJ-2 zsGp#Teb94F>MxcB@Tjpqm4X`g;;6p;%8d=%OS#uehQiK$d~dN;R<_l{8()R7s4Xe- z#@v=Hac&M978d85ED5&fk(3m)zl<);CEdsnnmXE7pxI3RUwhvf*5uZ-D;=b%2qFkr z5R|?J=}p~&6a_&9sZpv_rAi4Qu&pS)h;)_SYp5aEkdD$q4M?w{2NIH;6)f-8_nhlH z|IhJ9u3RMMdDg61GxyBgGf$z1*&C-XdafTy{@qFXS9=cl=st!Tw`bi38S#D?O_^=e z)>5hKNZ!|x-qU=^e2P!hL>l!~AE0h_Id*f>i>h;&3F)JB+9E$KbTWuFDr8Zd4j3 zSeJLwNRH!oP(F{J@Bi+FEz=GXu(1X!zzh55Ti_Y!pSdF1qYi_V_Md59xE<$;;_(rD zU+*)SBKZxNZDS$v&?x$Cjxw~(QWS5GZwJY-KPv&$r>X!aG$WioX zXxa6EdWZSt$Np9)OwD$ZkIP)e^9RaECwl>9cgd5rjnt~y=Zq-8^3_EY6vH}~TgoM` zE@E+fHh=IyRONowVv%|w&_YCU6zU6%50(giOJ?yW!H?Ly!(&x44u4c-d@edh&sv4^ zr)M=;xtHdGz6FOoFnNra^)WFEZA-3e{InXcw9`N^3zt6oPh9+$5}}99Ovlayy#CyD zZKVu4BY_CM9M`{=I0yf#&#@#)Z<<2A@7M0YztXKiG2d{wL4<_rOpDvxn;`hhtiCM6 zyLv-qfBnmS?U|lH4)i+pw9TfQ8?FzLBGyo1i8Iv*_^d`nvrK2>;UlRVZj18R`)2RK zVw@#T1x?LxC4&hK$qy=&g5ZAooa`4t{m7zzq}SPk6;q9O6JntmJx`&ghA399dkv|k zT|rP>C(Nx~jcpdQl{6w2fL<1j6_d2T*HG4?ev_IjZPCVR5I5y4A)0d|FoPP=5t}Qz z^IQ@#6FMRWIev^y>xugMYRLmS_H+ zow102q<;p;Xv~@lSC6JYSX~y5uTt>JtD$3|ed$}~N;(YaHy~@}M{P+!S`zv)p7@Dd zH*N7{9Dc9Lc=$AgrhWutHVnsXAqeK<)~#JoWOkeIz~?m{R_@R9LF?-Jk2ISa2SdJv zaFh-t2}Yf5ck5T}<2P`jT{N*f$CV!$?I5^F%hr==qx~Nqf&&*-5!9*(y5Og{BLsoW z_vEA`;bmQ8=$N-~iP$#{FaOcH}=bQD=jKk73o%+fr>g#zY zH<7AGzxM8bH~yq8S;deI?PfK%yv#FFILzQZjt-{#K}yuOg6|%Wcn&J5u`E2?UFvn4 z3xu~m6ZAw~ttZ4THMcG20k?)7P*b~Jp^@b^^(sC6#8an)qs07@qgRy_?*JakczFpA z-H>h&6}^N}NSyNb?cg>Xytz%wk`mLbcQ90rP?^+An^Ng(+_j^PljI}oHL_4Z}JL&D5C>o zsW&f=fRp>AhC$~RK!2>9Iy^cyMywK%Usp`YHqDYJ+V z&cM{1eH^J@8$R4a8h1#ycemww!Rz+E4EzPl|R{2Er|*uEw<gDpEh)p)}x+JCOpgvzJO=(4ns^baHOUow^h9fwS3C5^8@ zUSo4O>Tf!(ZqaT0|zoqy9faKYj( z1)|0t`Ap`IE(rKE`9z(D*+l;YaEPz0zVBpBN-&a%`=y*)m~a+&)ahoq%75#m9Go-n zrhjf}Ke8gLO;dKu^phXonYr_uTP`sIBM^pX%dg(|*@XH< zY!&TP)Nm^$&@O>e8)1#nGA1@7cc?(J2aMFE!82gcZoI)D)(zuf3`$g%a3qd9GZX zTb>uI1>@x%S<2nlr+?PDx42dYahrpP(b^BqsjH?M7!7KAA!FN6N5-CSwRy3(<;))D z^`r;M$|v`jP#o`f`5MI3NAO+^Si&|`D~&>y>Yf0&xh!y9@i zl(`!fjU=+_YxPU3&<<-A_T!-X@f&a~&kSOPSXD0i>b*#vDfy|zUupwGvPgtaaJsK5EKderb z*i1QM;ATvyxANfzN+>{ah))a^{lEuD|B@zV=G<~@5y0oNwi z3L|%Vbu6{8*BjIHZiyeYRyTfktJ?7e%f|_xGxxF!|B-eos(T&zL^n~YmAo|@K_Zy<+uy-n*L*kja zmAsc@lKpp3-GQdGKNEIqsP^(;b9AFSWPOgycsEA@7{zVxJtW33f4e5$Ab z8yj9nR&gI4$O@-tMyGYwF8k}>oK4e~8`#$=suvhQTD1L-)cl-wmD?u z~Vu|hd0 zRSDba=X23A_PF@|e5e;rc$@j(mX(sB5IXqaDg&>dR$o>nhz<dk;0yTa9{QXx6^A^wz4lU7)c~z5lF(e?(Z1NE#Ti6rE;gK78CH zjr(jR#ZAti(w`@6ak2is}`A+X)HGsnO3wE2mzyC{8(L|fg_4X z2W1y5Dy?17E*K7h~=D~-#>GmSI(>rw5tKwzKOcJIbP@{`< z^We(hOo0)(-hh;@ZF?g$fJ?&sIEdlS)?{a;T4qYC@fmGwIsYeE{eJv|tY}jL=8x(b zRj7IuMD>#hrM8lvPam<8zrA@b;dx!voeX-Fzhz9uOaSp=30Y6N$IERmBA3XCKPo;k z)m!xW8lSU5My)>%D!iT71JCBLY1Y~EU7TDiJm}aff>S$3jJ1u8vyQ@`b=bJAo zxIjoAz4K7X`yH{w94Z>`bdW#rBgj6x8fXpc{1WS3pi)#nD%z;7KHZ+U5P)n?`f_T> zXVEj5ek?dip?&}4pgzp2$3&7|1qjR5^n0(j~e;+u}MRsb@3(_BnYUYDG?w{QhN`5qSv+KBi z+N+Mq7wQvClpoHuC6DOTe;VpD#)Pq}E$aL3KFw-!YPIYnFOO?Z($wh6xDES%S)u)* z20zjxLE&_Z?yCVA+~W~O?la2T%0Dtd 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:为应用上下文信息。当`Context`为[ServiceExtensionContext](..reference/apis/js-apis-service-extension-context.md)时,创建系统窗口。
-`type`:为创建的窗口类型。 | +| Window | resetSize(width:number,height:number,callback:AsyncCallback<void>):void | 改变当前窗口大小。 | +| Window | moveTo(x:number,y:number,callback:AsyncCallback<void>):void | 移动当前窗口位置。 | +| Window | loadContent(path:string,callback:AsyncCallback<void>):void | 为当前窗口加载具体页面。 | +| Window | show(callback: AsyncCallback\): void | 显示当前窗口。 | +| Window | on(type:'touchOutside',callback:Callback<void>):void | 开启本窗口区域外的点击事件的监听。 | +| Window | hide (callback: AsyncCallback\): void | 隐藏当前窗口。此接口为系统接口。 | +| Window | destroy(callback: AsyncCallback<void>):void | 销毁当前窗口。 | + + +## 开发步骤 + + +本文以音量条窗口为例,介绍系统窗口的基本开发和管理步骤。 + + +1. 创建系统窗口。 + 在[ServiceExtensionContext](..reference/apis/js-apis-service-extension-context.md)下,使用`window.create`接口创建音量条系统窗口。 + +2. 操作或设置系统窗口的属性。 + 系统窗口创建成功后,可以改变其大小、位置等,还可以根据需要设置系统窗口的背景色、亮度等属性。 + +3. 加载显示系统窗口的具体内容。 + + 通过`loadContent`和`show`接口加载显示音量条窗口的具体内容。 + +4. 隐藏/销毁系统窗口。 + 当不再需要音量条窗口时,可根据具体实现逻辑,使用`hide`接口或`destroy`接口对其进行隐藏或销毁。 + +```ts +import ExtensionContext from '@ohos.application.ServiceExtensionAbility'; +import window from '@ohos.window'; + +var windowClass = null; + +export default class ServiceExtensionAbility1 extends ExtensionContext { + onCreate(want) { + console.log("[Demo] MainAbility onCreate") + globalThis.abilityWant = want; + // 1.创建音量条窗口。 + var windowClass = null; + window.create(this.context, "volume", window.WindowType.TYPE_VOLUME_OVERLAY, (err, data) => { + if (err.code) { + console.error('Failed to create the volume window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in creating the volume window.') + windowClass = data; + // 2.创建音量条窗口成功之后,可以改变其大小、位置或设置背景色、亮度等属性。 + windowClass.moveTo(300, 300, (err, data) => { + if (err.code) { + console.error('Failed to move the window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in moving the window. Data: ' + JSON.stringify(data)); + }); + windowClass.resetSize(500, 1000, (err, data) => { + if (err.code) { + console.error('Failed to change the window size. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in changing the window size. Data: ' + JSON.stringify(data)); + }); + // 3.为音量条窗口加载对应的目标页面。 + windowClass.loadContent("pages/page_volume", (err, data) => { + if (err.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)); + // 3.显示音量条窗口。 + windowClass.show((err, data) => { + if (err.code) { + console.error('Failed to show the window. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in showing the window. Data: ' + JSON.stringify(data)); + }); + }); + // 4.隐藏/销毁音量条窗口。当不再需要音量条时,可根据具体实现逻辑,对其进行隐藏或销毁。 + // 此处以监听音量条区域外的点击事件为例实现音量条窗口的隐藏。 + windowClass.on('touchOutside', () => { + console.info('touch outside'); + windowClass.hide((err, data) => { + if (err.code) { + console.error('Failed to hide the window. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in hidinging the window. Data: ' + JSON.stringify(data)); + }); + }); + }); + } +}; +``` + diff --git a/zh-cn/application-dev/windowmanager/window-guidelines.md b/zh-cn/application-dev/windowmanager/window-guidelines.md deleted file mode 100644 index 7758fec396..0000000000 --- a/zh-cn/application-dev/windowmanager/window-guidelines.md +++ /dev/null @@ -1,107 +0,0 @@ -# 窗口开发指导 - -## 场景介绍 -窗口的接口层在应用进程运行,负责对页面布局的加载,和提供应用程序接口。 -通过调用窗口接口可以实现窗口创建与销毁,窗口的位置、大小布局,以及进入沉浸式等。 - -## 接口说明 -窗口开放的能力如下:Window类,具体的API详见[接口文档](../reference/apis/js-apis-window.md)。 - -**表1** 窗口主要接口API - -| 接口名 | 描述 | -| :----------------------------------------------------------- | :--------------------------------------------- | -| create(id: string, type: WindowType, callback: AsyncCallback\): void | 创建子窗口。 | -| moveTo(x: number, y: number): Promise\ | 移动窗口位置,x值为正表示右移,y为正表示下移。 | -| resetSize(width: number, height: number): Promise\ | 改变当前窗口大小。 | -| hide(): Promise\ | 隐藏当前窗口。 | -| destroy(): Promise\ | 销毁当前窗口。 | - -## 开发步骤 - -### 创建主窗口 - -在当前模型下,应用启动时会自动创建主窗口,由应用管理窗口的生命周期,隐藏及销毁由应用管理。 -### 创建子窗口 -当前可以通过`create`接口创建子窗口。具体示例代码如下: - -```js - import window from '@ohos.window'; - var windowClass = null; - let promise = window.create("subWindow", window.WindowType.TYPE_APP); - promise.then((data)=> { - windowClass = data; - console.info('SubWindow created. Data: ' + JSON.stringify(data)) - }).catch((err)=>{ - console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err)); - }); -``` - -### 获取窗口对象 - -- 应用内可以通过`getTopWindow`来获取当前应用内最后显示的窗口。具体示例代码如下: - -```js - var windowClass = null; - let promise = window.getTopWindow(); - promise.then((data)=> { - windowClass = data; - console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data)) - }).catch((err)=>{ - console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err)); - }) -``` - -- 应用内也可以通过`Find`来获取已经创建的子窗口。具体示例代码如下: - -```js - var windowClass = null; - let promise = window.find("subWindow"); - promise.then((data)=> { - windowClass = data; - console.info('window found. Data: ' + JSON.stringify(data)) - }).catch((err)=>{ - console.error('Failed to find the Window. Cause: ' + JSON.stringify(err)); - }); -``` - -### 窗口的隐藏和销毁 - -在已经获取到窗口对象的前提下,可以调用`hide`、`destroy`来隐藏和销毁已经创建的窗口对象。具体示例代码如下: - -```js - let promise = windowClass.hide(); - promise.then((data)=> { - console.info('window hidden. Data: ' + JSON.stringify(data)) - windowClass.destroy((err, data) => { - if (err.code) { - console.error('Failed to destroy the window. Cause:' + JSON.stringify(err)); - return; - } - console.info('Succeeded in destroying the window. Data: ' + JSON.stringify(data)) - }) - }).catch((err)=>{ - console.error('Failed to hide the window. Cause: ' + JSON.stringify(err)); - }) -``` - -### 设置沉浸式窗口 - -在已经获取到应用窗口对象的前提下,调用`setFullScreen`来设置窗口进入全屏沉浸式。 - -示例代码如下: - -```js -import window from '@ohos.window'; -try { - const win = await window.getTopWindow() - await win.setFullScreen(true) -} catch (err) { - console.log(`setFullScreen fail, code = ${err.code}`) -} -``` - -## 相关实例 -针对窗口开发,有以下相关实例可供参考: -- [`Window`:窗口(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/Graphics/Window) - diff --git a/zh-cn/application-dev/windowmanager/window-overview.md b/zh-cn/application-dev/windowmanager/window-overview.md index 72f7a17f35..f3e2ba3924 100644 --- a/zh-cn/application-dev/windowmanager/window-overview.md +++ b/zh-cn/application-dev/windowmanager/window-overview.md @@ -1,13 +1,75 @@ # 窗口开发概述 -**窗口子系统**提供窗口管理的基础能力,是系统图形界面显示所需的基础子系统。 -窗口系统的作用,是提供一种机制,让多个应用界面复用同一块物理屏幕进行显示和交互。每个应用程序中,需要实现固定窗口区域内的交互界面设计,窗口作用应用界面的显示容器,而窗口系统负责将这些交互界面组织成最终用户见到的形态。 + +## 窗口模块的定义 + +窗口模块用于在同一块物理屏幕上,提供多个应用界面显示、交互的机制。 + +- 对应用开发者而言,窗口模块提供了界面显示和交互能力。 + +- 对终端用户而言,窗口模块提供了控制应用界面的方式。 + +- 对整个操作系统而言,窗口模块提供了不同应用界面的组织管理逻辑。 + + +## 窗口模块的用途 + +在OpenHarmony中,窗口模块主要负责以下职责: + +- 提供应用和系统界面的窗口对象。应用开发者通过窗口加载UI界面,实现界面显示功能。 + +- 组织不同窗口的显示关系,即维护不同窗口间的叠加层次和位置属性。应用和系统的窗口具有多种类型,不同类型的窗口具有不同的默认位置和叠加层次(Z轴高度)。同时,用户操作也可以在一定范围内对窗口的位置和叠加层次进行调整。 + +- 提供窗口装饰。窗口装饰指窗口标题栏和窗口边框。窗口标题栏通常包括窗口最大化、最小化及关闭按钮等界面元素,具有默认的点击行为,方便用户进行操作;窗口边框则方便用户对窗口进行拖拽缩放等行为。窗口装饰是系统的默认行为,开发者可选择启用/禁用,无需关注UI代码层面的实现。 + +- 提供窗口动效。在窗口显示、隐藏及窗口间切换时,窗口模块通常会添加动画效果,以使各个交互过程更加连贯流畅。在OpenHarmony中,应用窗口的动效为默认行为,不需要开发者进行设置或者修改。 + +- 指导输入事件分发。即根据当前窗口的状态或焦点,进行事件的分发。触摸和鼠标事件根据窗口的位置和尺寸进行分发,而键盘事件会被分发至焦点窗口。应用开发者可以通过窗口模块提供的接口设置窗口是否可以触摸和是否可以获焦。 + ## 基本概念 -**沉浸式**:应用窗口跟状态栏与导航栏颜色一致,视觉上融合。 +### 窗口类型 + +OpenHarmony的窗口模块将窗口界面分为系统窗口、应用窗口两种基本类型。 + +- 系统窗口 + 系统窗口指完成系统特定功能的窗口。如音量条、壁纸、通知栏、状态栏、导航栏等。 + +- 应用窗口 + 应用窗口区别于系统窗口,指与应用显示相关的窗口。根据显示内容的不同,应用窗口又分为应用主窗口、应用子窗口两种类型。 + + - 应用主窗口 + 应用主窗口用于显示应用界面,会在"任务管理界面"显示。 + - 应用子窗口 + 应用子窗口用于显示应用的弹窗、悬浮窗等辅助窗口,不会在"任务管理界面"显示。 + + +### 应用窗口模式 + +应用窗口模式指应用主窗口启动时的显示方式。OpenHarmony目前支持全屏、分屏、自由窗口三种应用窗口模式。这种对多种应用窗口模式的支持能力,也称为操作系统的“多窗口能力”。 + + +- 全屏:应用主窗口启动时铺满整个屏幕。 + +- 分屏:应用主窗口启动时占据屏幕的某个部分,当前支持二分屏。两个分屏窗口之间具有分界线,可通过拖拽分界线调整两个部分的窗口尺寸。 + +- 自由窗口:自由窗口的大小和位置可自由改变。同一个屏幕上可同时显示多个自由窗口,这些自由窗口按照打开或者获取焦点的顺序在Z轴排布。当自由窗口被点击或触摸时,将导致其Z轴高度提升,并获取焦点。 + + +![windowMode](figures/windowMode.png) + + +## 实现原理 + +当前窗口的实现和开发与应用开发模型相关联,不同模型下的接口功能略有区别。当前应用开发模型分为FA模型和Stage模型。 + +两个模型的整体架构和设计思想,详见[FA模型综述](../ability/fa-brief.md)和[Stage模型综述](../ability/stage-brief.md)。 + +针对窗口开发,推荐使用Stage模型进行相关开发。 + -## 运作机制 +## 约束与限制 -为了将图形界面显示在屏幕上,应用和系统需要向窗口系统申请窗口对象,这通常代表了屏幕上一块矩形区域,具有位置、宽高、和叠加层次等属性。同时,窗口对象也负责加载界面中UI框架的根节点,应用程序的UI界面就通过这个根节点在窗口中加载显示。 \ No newline at end of file +在FA模型下,不支持系统窗口的相关开发。 -- GitLab