From a54e622610e44e1e1b86ab23afb0ad3b7a4d5261 Mon Sep 17 00:00:00 2001 From: wangweiyuan Date: Wed, 30 Jul 2025 17:02:16 +0800 Subject: [PATCH] commit rm005 Signed-off-by: wangweiyuan --- Drawing/ArkTSDrawing/.gitignore | 12 + Drawing/ArkTSDrawing/AppScope/app.json5 | 24 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes Drawing/ArkTSDrawing/README.md | 72 +++ Drawing/ArkTSDrawing/build-profile.json5 | 55 ++ Drawing/ArkTSDrawing/code-linter.json5 | 34 ++ Drawing/ArkTSDrawing/entry/.gitignore | 6 + .../ArkTSDrawing/entry/build-profile.json5 | 42 ++ Drawing/ArkTSDrawing/entry/hvigorfile.ts | 20 + .../ArkTSDrawing/entry/obfuscation-rules.txt | 23 + Drawing/ArkTSDrawing/entry/oh-package.json5 | 24 + .../entry/src/main/ets/common/Logger.ts | 52 ++ .../src/main/ets/common/MyNodeController.ets | 61 ++ .../src/main/ets/common/PathRenderNode.ets | 85 +++ .../src/main/ets/common/RectRenderNode.ets | 41 ++ .../src/main/ets/common/TextRenderNode.ets | 38 ++ .../main/ets/entryability/EntryAbility.ets | 56 ++ .../entrybackupability/EntryBackupAbility.ets | 26 + .../entry/src/main/ets/pages/Index.ets | 93 +++ .../ArkTSDrawing/entry/src/main/module.json5 | 65 +++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 + .../main/resources/zh_CN/element/string.json | 16 + .../entry/src/mock/mock-config.json5 | 16 + .../ohosTest/ets/test/DrawingAbility.test.ets | 125 ++++ .../entry/src/ohosTest/ets/test/List.test.ets | 19 + .../entry/src/ohosTest/module.json5 | 26 + .../ArkTSDrawing/entry/src/test/List.test.ets | 19 + .../entry/src/test/LocalUnit.test.ets | 47 ++ .../ArkTSDrawing/hvigor/hvigor-config.json5 | 36 ++ Drawing/ArkTSDrawing/hvigorfile.ts | 20 + Drawing/ArkTSDrawing/oh-package.json5 | 24 + Drawing/ArkTSDrawing/ohosTest.md | 11 + Drawing/ArkTSDrawing/screenshot/path.png | Bin 0 -> 132620 bytes Drawing/ArkTSDrawing/screenshot/rect.png | Bin 0 -> 81012 bytes Drawing/ArkTSDrawing/screenshot/text.png | Bin 0 -> 100472 bytes Drawing/NDKDrawing/.gitignore | 12 + Drawing/NDKDrawing/AppScope/app.json5 | 24 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes Drawing/NDKDrawing/README.md | 80 +++ Drawing/NDKDrawing/build-profile.json5 | 66 +++ Drawing/NDKDrawing/code-linter.json5 | 34 ++ Drawing/NDKDrawing/entry/.gitignore | 6 + Drawing/NDKDrawing/entry/build-profile.json5 | 53 ++ Drawing/NDKDrawing/entry/hvigorfile.ts | 20 + .../NDKDrawing/entry/obfuscation-rules.txt | 23 + .../NDKDrawing/entry/oh-package-lock.json5 | 18 + Drawing/NDKDrawing/entry/oh-package.json5 | 25 + .../entry/src/main/cpp/CMakeLists.txt | 27 + .../entry/src/main/cpp/common/log_common.h | 26 + .../NDKDrawing/entry/src/main/cpp/hello.cpp | 43 ++ .../entry/src/main/cpp/napi_init.cpp | 42 ++ .../src/main/cpp/plugin/plugin_manager.cpp | 126 ++++ .../src/main/cpp/plugin/plugin_manager.h | 40 ++ .../src/main/cpp/samples/sample_bitmap.cpp | 537 ++++++++++++++++++ .../src/main/cpp/samples/sample_bitmap.h | 77 +++ .../src/main/cpp/types/libentry/index.d.ts | 14 + .../main/cpp/types/libentry/oh-package.json5 | 20 + .../main/ets/entryability/EntryAbility.ets | 56 ++ .../entrybackupability/EntryBackupAbility.ets | 26 + .../main/ets/interface/XComponentContext.ts | 19 + .../entry/src/main/ets/pages/Index.ets | 71 +++ .../NDKDrawing/entry/src/main/module.json5 | 51 ++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../src/main/resources/base/media/icon.png | Bin 0 -> 2041 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 4351 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 + .../main/resources/zh_CN/element/string.json | 16 + .../entry/src/mock/Libentry.mock.ets | 21 + .../entry/src/mock/mock-config.json5 | 19 + .../ohosTest/ets/test/DrawingAbility.test.ets | 99 ++++ .../entry/src/ohosTest/ets/test/List.test.ets | 19 + .../ohosTest/ets/testability/TestAbility.ets | 65 +++ .../ohosTest/ets/testability/pages/Index.ets | 31 + .../ets/testrunner/OpenHarmonyTestRunner.ets | 61 ++ .../ets/testrunner/OpenHarmonyTestRunner.ts | 63 ++ .../entry/src/ohosTest/module.json5 | 51 ++ .../resources/base/element/color.json | 8 + .../resources/base/element/string.json | 16 + .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 + .../NDKDrawing/entry/src/test/List.test.ets | 19 + .../entry/src/test/LocalUnit.test.ets | 47 ++ Drawing/NDKDrawing/hvigor/hvigor-config.json5 | 36 ++ Drawing/NDKDrawing/hvigorfile.ts | 20 + Drawing/NDKDrawing/oh-package.json5 | 24 + Drawing/NDKDrawing/ohosTest.md | 10 + Drawing/NDKDrawing/screenshot/path.png | Bin 0 -> 26537 bytes Drawing/NDKDrawing/screenshot/text.png | Bin 0 -> 15117 bytes 104 files changed, 3480 insertions(+) create mode 100644 Drawing/ArkTSDrawing/.gitignore create mode 100644 Drawing/ArkTSDrawing/AppScope/app.json5 create mode 100644 Drawing/ArkTSDrawing/AppScope/resources/base/element/string.json create mode 100644 Drawing/ArkTSDrawing/AppScope/resources/base/media/app_icon.png create mode 100644 Drawing/ArkTSDrawing/README.md create mode 100644 Drawing/ArkTSDrawing/build-profile.json5 create mode 100644 Drawing/ArkTSDrawing/code-linter.json5 create mode 100644 Drawing/ArkTSDrawing/entry/.gitignore create mode 100644 Drawing/ArkTSDrawing/entry/build-profile.json5 create mode 100644 Drawing/ArkTSDrawing/entry/hvigorfile.ts create mode 100644 Drawing/ArkTSDrawing/entry/obfuscation-rules.txt create mode 100644 Drawing/ArkTSDrawing/entry/oh-package.json5 create mode 100644 Drawing/ArkTSDrawing/entry/src/main/ets/common/Logger.ts create mode 100644 Drawing/ArkTSDrawing/entry/src/main/ets/common/MyNodeController.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/main/ets/common/PathRenderNode.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/main/ets/common/RectRenderNode.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/main/ets/common/TextRenderNode.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/main/ets/pages/Index.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/main/module.json5 create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/base/element/color.json create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/base/element/string.json create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/base/media/background.png create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/base/media/foreground.png create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/base/media/layered_image.json create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/base/media/startIcon.png create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/backup_config.json create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/main_pages.json create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/en_US/element/string.json create mode 100644 Drawing/ArkTSDrawing/entry/src/main/resources/zh_CN/element/string.json create mode 100644 Drawing/ArkTSDrawing/entry/src/mock/mock-config.json5 create mode 100644 Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/ohosTest/module.json5 create mode 100644 Drawing/ArkTSDrawing/entry/src/test/List.test.ets create mode 100644 Drawing/ArkTSDrawing/entry/src/test/LocalUnit.test.ets create mode 100644 Drawing/ArkTSDrawing/hvigor/hvigor-config.json5 create mode 100644 Drawing/ArkTSDrawing/hvigorfile.ts create mode 100644 Drawing/ArkTSDrawing/oh-package.json5 create mode 100644 Drawing/ArkTSDrawing/ohosTest.md create mode 100644 Drawing/ArkTSDrawing/screenshot/path.png create mode 100644 Drawing/ArkTSDrawing/screenshot/rect.png create mode 100644 Drawing/ArkTSDrawing/screenshot/text.png create mode 100644 Drawing/NDKDrawing/.gitignore create mode 100644 Drawing/NDKDrawing/AppScope/app.json5 create mode 100644 Drawing/NDKDrawing/AppScope/resources/base/element/string.json create mode 100644 Drawing/NDKDrawing/AppScope/resources/base/media/app_icon.png create mode 100644 Drawing/NDKDrawing/README.md create mode 100644 Drawing/NDKDrawing/build-profile.json5 create mode 100644 Drawing/NDKDrawing/code-linter.json5 create mode 100644 Drawing/NDKDrawing/entry/.gitignore create mode 100644 Drawing/NDKDrawing/entry/build-profile.json5 create mode 100644 Drawing/NDKDrawing/entry/hvigorfile.ts create mode 100644 Drawing/NDKDrawing/entry/obfuscation-rules.txt create mode 100644 Drawing/NDKDrawing/entry/oh-package-lock.json5 create mode 100644 Drawing/NDKDrawing/entry/oh-package.json5 create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/CMakeLists.txt create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/common/log_common.h create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/hello.cpp create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/napi_init.cpp create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.cpp create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.h create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.cpp create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.h create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/index.d.ts create mode 100644 Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/oh-package.json5 create mode 100644 Drawing/NDKDrawing/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 Drawing/NDKDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 Drawing/NDKDrawing/entry/src/main/ets/interface/XComponentContext.ts create mode 100644 Drawing/NDKDrawing/entry/src/main/ets/pages/Index.ets create mode 100644 Drawing/NDKDrawing/entry/src/main/module.json5 create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/element/color.json create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/element/string.json create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/media/background.png create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/media/foreground.png create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/media/icon.png create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/media/layered_image.json create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/media/startIcon.png create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/profile/backup_config.json create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/base/profile/main_pages.json create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/en_US/element/string.json create mode 100644 Drawing/NDKDrawing/entry/src/main/resources/zh_CN/element/string.json create mode 100644 Drawing/NDKDrawing/entry/src/mock/Libentry.mock.ets create mode 100644 Drawing/NDKDrawing/entry/src/mock/mock-config.json5 create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/module.json5 create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/color.json create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/string.json create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/resources/base/media/icon.png create mode 100644 Drawing/NDKDrawing/entry/src/ohosTest/resources/base/profile/test_pages.json create mode 100644 Drawing/NDKDrawing/entry/src/test/List.test.ets create mode 100644 Drawing/NDKDrawing/entry/src/test/LocalUnit.test.ets create mode 100644 Drawing/NDKDrawing/hvigor/hvigor-config.json5 create mode 100644 Drawing/NDKDrawing/hvigorfile.ts create mode 100644 Drawing/NDKDrawing/oh-package.json5 create mode 100644 Drawing/NDKDrawing/ohosTest.md create mode 100644 Drawing/NDKDrawing/screenshot/path.png create mode 100644 Drawing/NDKDrawing/screenshot/text.png diff --git a/Drawing/ArkTSDrawing/.gitignore b/Drawing/ArkTSDrawing/.gitignore new file mode 100644 index 00000000000..d2ff20141ce --- /dev/null +++ b/Drawing/ArkTSDrawing/.gitignore @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/AppScope/app.json5 b/Drawing/ArkTSDrawing/AppScope/app.json5 new file mode 100644 index 00000000000..8633c11d6b7 --- /dev/null +++ b/Drawing/ArkTSDrawing/AppScope/app.json5 @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "app": { + "bundleName": "com.samples.drawing", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/Drawing/ArkTSDrawing/AppScope/resources/base/element/string.json b/Drawing/ArkTSDrawing/AppScope/resources/base/element/string.json new file mode 100644 index 00000000000..ca0ae1186dd --- /dev/null +++ b/Drawing/ArkTSDrawing/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "drawing" + } + ] +} diff --git a/Drawing/ArkTSDrawing/AppScope/resources/base/media/app_icon.png b/Drawing/ArkTSDrawing/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3 GIT binary patch literal 2777 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 literal 0 HcmV?d00001 diff --git a/Drawing/ArkTSDrawing/README.md b/Drawing/ArkTSDrawing/README.md new file mode 100644 index 00000000000..57cf9b535f2 --- /dev/null +++ b/Drawing/ArkTSDrawing/README.md @@ -0,0 +1,72 @@ +# 使用Drawing实现图形绘制与显示(ArkTS) + +## 介绍 + +本工程主要实现了对以下指南文档中[访问控制概述](https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/security/AccessToken/access-token-overview.md)示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。 + +## 效果预览 + +| ![](screenshot/path.png) | ![](screenshot/rect.png) | ![](screenshot/text.png) | +| ------------------------ | ------------------------ | ------------------------ | + +使用说明: +1. 该工程可以选择在模拟器和开发板上运行。 +2. 点击构建,即可在生成的应用中点击对应的按钮进行图案的绘制。 +3. 进入”DocsSample/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets“文件,可以对本项目进行UI的自动化测试。 + +## 工程目录 + +``` +ArkTSDrawing +├──entry/src/main +│ ├──ets // ets代码区 +| | ├──common +| | | ├──logger.ts // 日志类 +| | | ├──MyNodeController.ets // 节点控制类 +| | | ├──PathRenderNode.ets // 绘制路径类 +| | | ├──RectRenderNode.ets // 绘制矩形类 +| | | └──TextRenderNode.ets // 绘制文本类 +│ │ ├──entryability +| | | └──EntryAbility.ets // 程序入口类 +| | ├──entrybackupability +│ │ │ └──EntryBackupAbility.ets +│ │ └──pages // 页面文件 +│ │ └──Index.ets // 主界面 +| ├──resources // 资源文件目录 +``` + +## 具体实现 + +1. 创建`NodeController`的子类`MyNodeController`,并在其中定义创建`FrameNode`的函数。`NodeController`定义了节点容器的控制器,控制着容器里在生命周期中的节点。`FrameNode`定义了节点的基本类型,并包含一个`RenderNode`。 +2. 创建`RenderNode`子类`PathRenderNode`、`RectRenderNode`、`TextRenderNode`并在其中定义绘图函数。`RenderNode`中包含树结构的操作,以及对绘制属性的操作,其中`draw`方法会在`RenderNode`进行绘制时被调用。使用每个子类的`draw`方法可以实现五角星、举行和文本文字的绘制。 + +## 相关权限 + +无。 + +## 依赖 + +不涉及。 + +## 约束和限制 + +1. 本示例仅支持标准系统上运行,支持设备:华为手机。 + +2. HarmonyOS系统:HarmonyOS 5.0.3 Release及以上。 + +3. DevEco Studio版本:DevEco Studio 5.0.3 Release及以上。 + +4. HarmonyOS SDK版本:HarmonyOS 5.0.3 Release及以上。 + +## 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo code/DocsSample/Drawing/ArkTSDrawing/ > .git/info/sparse-checkout +git remote add origin https://gitcode.com/openharmony/applications_app_samples.git +git pull origin master +``` + diff --git a/Drawing/ArkTSDrawing/build-profile.json5 b/Drawing/ArkTSDrawing/build-profile.json5 new file mode 100644 index 00000000000..aee4474e210 --- /dev/null +++ b/Drawing/ArkTSDrawing/build-profile.json5 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "app": { + "products": [ + { + "name": "default", + "signingConfig": "default", + "targetSdkVersion": "5.0.3(15)", + "compatibleSdkVersion": "5.0.3(15)", + "runtimeOS": "HarmonyOS", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug" + }, + { + "name": "release" + } + ], + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/code-linter.json5 b/Drawing/ArkTSDrawing/code-linter.json5 new file mode 100644 index 00000000000..3311c9280cd --- /dev/null +++ b/Drawing/ArkTSDrawing/code-linter.json5 @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/.gitignore b/Drawing/ArkTSDrawing/entry/.gitignore new file mode 100644 index 00000000000..e2713a2779c --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/build-profile.json5 b/Drawing/ArkTSDrawing/entry/build-profile.json5 new file mode 100644 index 00000000000..7fb94a43771 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/build-profile.json5 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/hvigorfile.ts b/Drawing/ArkTSDrawing/entry/hvigorfile.ts new file mode 100644 index 00000000000..8fe7819925b --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/hvigorfile.ts @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/Drawing/ArkTSDrawing/entry/obfuscation-rules.txt b/Drawing/ArkTSDrawing/entry/obfuscation-rules.txt new file mode 100644 index 00000000000..272efb6ca3f --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/obfuscation-rules.txt @@ -0,0 +1,23 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/oh-package.json5 b/Drawing/ArkTSDrawing/entry/oh-package.json5 new file mode 100644 index 00000000000..c2964381037 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": {} +} + diff --git a/Drawing/ArkTSDrawing/entry/src/main/ets/common/Logger.ts b/Drawing/ArkTSDrawing/entry/src/main/ets/common/Logger.ts new file mode 100644 index 00000000000..d30e495c69e --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/ets/common/Logger.ts @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import hilog from '@ohos.hilog' + +class Logger { + private domain: number + private prefix: string + private format: string = '%{public}s, %{public}s' + + constructor(prefix: string) { + this.prefix = prefix + this.domain = 0x0001 + } + + debug(...args: string[]) { + hilog.debug(this.domain, this.prefix, this.format, args) + } + + info(...args: string[]) { + hilog.info(this.domain, this.prefix, this.format, args) + } + + warn(...args: string[]) { + hilog.warn(this.domain, this.prefix, this.format, args) + } + + error(...args: string[]) { + hilog.error(this.domain, this.prefix, this.format, args) + } + + fatal(...args: string[]) { + hilog.fatal(this.domain, this.prefix, this.format, args) + } + + isLoggable(level: number) { + hilog.isLoggable(this.domain, this.prefix, level) + } +} + +export default new Logger('[Sample_ArkTSDrawing]') diff --git a/Drawing/ArkTSDrawing/entry/src/main/ets/common/MyNodeController.ets b/Drawing/ArkTSDrawing/entry/src/main/ets/common/MyNodeController.ets new file mode 100644 index 00000000000..39394daa363 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/ets/common/MyNodeController.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import { FrameNode, NodeController, RenderNode } from '@kit.ArkUI'; + +class MyNodeController extends NodeController { + private rootNode: FrameNode | null = null; + + makeNode(uiContext: UIContext): FrameNode { + this.rootNode = new FrameNode(uiContext); + if (this.rootNode == null) { + return this.rootNode; + } + const renderNode = this.rootNode.getRenderNode() + if (renderNode != null) { + renderNode.frame = { + x: 0, + y: 0, + width: 10, + height: 500 + } + renderNode.pivot = { x: 50, y: 50 } + } + return this.rootNode; + } + + addNode(node: RenderNode): void { + if (this.rootNode == null) { + return; + } + const renderNode = this.rootNode.getRenderNode() + if (renderNode != null) { + renderNode.appendChild(node); + } + } + + clearNodes(): void { + if (this.rootNode == null) { + return; + } + const renderNode = this.rootNode.getRenderNode() + if (renderNode != null) { + renderNode.clearChildren(); + } + } +} + +export default MyNodeController; diff --git a/Drawing/ArkTSDrawing/entry/src/main/ets/common/PathRenderNode.ets b/Drawing/ArkTSDrawing/entry/src/main/ets/common/PathRenderNode.ets new file mode 100644 index 00000000000..179571859a3 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/ets/common/PathRenderNode.ets @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import { RenderNode } from '@kit.ArkUI' +import { common2D, drawing } from '@kit.ArkGraphics2D' + +class PathRenderNode extends RenderNode { + async draw(context: DrawContext) { + const canvas = context.canvas; + let height_ = 1200; + let width_ = 600; + let len = height_ / 4; + let aX = width_ / 2; + let aY = height_ / 4; + let dX = aX - len * Math.sin(18.0); + let dY = aY + len * Math.cos(18.0); + let cX = aX + len * Math.sin(18.0); + let cY = dY; + let bX = aX + (len / 2.0); + let bY = aY + Math.sqrt((cX - dX) * (cX - dX) + (len / 2.0) * (len / 2.0)); + let eX = aX - (len / 2.0); + let eY = bY; + + // 创建一个path对象,然后使用接口连接成一个五角星形状 + let path = new drawing.Path(); + + // 指定path的起始位置 + path.moveTo(aX, aY); + + // 用直线连接到目标点 + path.lineTo(bX, bY); + path.lineTo(cX, cY); + path.lineTo(dX, dY); + path.lineTo(eX, eY); + + // 闭合形状,path绘制完毕 + path.close(); + + // 创建一个画笔Pen对象,Pen对象用于形状的边框线绘制 + let pen = new drawing.Pen(); + pen.setAntiAlias(true); + let penColor: common2D.Color = { + alpha: 0xFF, + red: 0xFF, + green: 0x00, + blue: 0x00 + } + pen.setColor(penColor); + pen.setStrokeWidth(10.0); + + // 将Pen画笔设置到canvas中 + canvas.attachPen(pen); + + // 创建一个画刷Brush对象,Brush对象用于形状的填充 + let brush = new drawing.Brush(); + let brushColor: common2D.Color = { + alpha: 0xFF, + red: 0x00, + green: 0xFF, + blue: 0x00 + } + brush.setColor(brushColor); + + // 将Brush画刷设置到canvas中 + canvas.attachBrush(brush); + + // 绘制path + canvas.drawPath(path); + } +} + +export default PathRenderNode; diff --git a/Drawing/ArkTSDrawing/entry/src/main/ets/common/RectRenderNode.ets b/Drawing/ArkTSDrawing/entry/src/main/ets/common/RectRenderNode.ets new file mode 100644 index 00000000000..0019996a706 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/ets/common/RectRenderNode.ets @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import { RenderNode } from '@kit.ArkUI' +import { drawing } from '@kit.ArkGraphics2D' + +class RectRenderNode extends RenderNode { + async draw(context: DrawContext) { + const canvas = context.canvas; + const pen = new drawing.Pen(); + pen.setStrokeWidth(5); + pen.setColor({ + alpha: 255, + red: 255, + green: 0, + blue: 0 + }); + canvas.attachPen(pen); + canvas.drawRect({ + left: 200, + right: 500, + top: 300, + bottom: 900 + }); + } +} + +export default RectRenderNode; diff --git a/Drawing/ArkTSDrawing/entry/src/main/ets/common/TextRenderNode.ets b/Drawing/ArkTSDrawing/entry/src/main/ets/common/TextRenderNode.ets new file mode 100644 index 00000000000..18f946810b4 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/ets/common/TextRenderNode.ets @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import { RenderNode } from '@kit.ArkUI' +import { drawing } from '@kit.ArkGraphics2D' + +class TextRenderNode extends RenderNode { + async draw(context: DrawContext) { + const canvas = context.canvas; + const brush = new drawing.Brush(); + brush.setColor({ + alpha: 255, + red: 255, + green: 0, + blue: 0 + }); + const font = new drawing.Font(); + font.setSize(100); + const textBlob = drawing.TextBlob.makeFromString('Hello World', font, drawing.TextEncoding.TEXT_ENCODING_UTF8); + canvas.attachBrush(brush); + canvas.drawTextBlob(textBlob, 90, 500); + } +} + +export default TextRenderNode; diff --git a/Drawing/ArkTSDrawing/entry/src/main/ets/entryability/EntryAbility.ets b/Drawing/ArkTSDrawing/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 00000000000..4e3af23763f --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/Drawing/ArkTSDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/Drawing/ArkTSDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 00000000000..be794f48ccf --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/main/ets/pages/Index.ets b/Drawing/ArkTSDrawing/entry/src/main/ets/pages/Index.ets new file mode 100644 index 00000000000..39dbefd2a61 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import MyNodeController from '../common/MyNodeController' +import PathRenderNode from '../common/PathRenderNode' +import RectRenderNode from '../common/RectRenderNode' +import TextRenderNode from '../common/TextRenderNode' + +// 创建一个PathRenderNode对象 +const PathNode = new PathRenderNode(); +// 定义PathNode的像素格式 +PathNode.frame = { + x: 100, + y: 100, + width: 200, + height: 800 +} +PathNode.pivot = { x: 0.2, y: 0.8 } +PathNode.scale = { x: 1, y: 1 } + +// 创建一个RectRenderNode对象 +const rectNode = new RectRenderNode(); +// 定义rectNode的像素格式 +rectNode.frame = { + x: 90, + y: 100, + width: 200, + height: 800 +} +rectNode.pivot = { x: 0.2, y: 0.8 } +rectNode.scale = { x: 1, y: 1 } + +// 创建一个TextRenderNode对象 +const textNode = new TextRenderNode(); +// 定义textNode的像素格式 +textNode.frame = { + x: 90, + y: 100, + width: 200, + height: 800 +} +textNode.pivot = { x: 0.2, y: 0.8 } +textNode.scale = { x: 1, y: 1 } + +@Entry +@Component +struct RenderTest { + private myNodeController: MyNodeController = new MyNodeController(); + + build() { + Column() { + Row() { + NodeContainer(this.myNodeController) + .height('100%') + Button("Draw Path") + .margin({ bottom: 200, right: 12 }) + .onClick(() => { + this.myNodeController.clearNodes() + this.myNodeController.addNode(PathNode) + }) + Button("Draw Rect") + .margin({ bottom: 200, right: 12 }) + .onClick(() => { + this.myNodeController.clearNodes() + this.myNodeController.addNode(rectNode) + }) + Button("Draw Text") + .margin({ bottom: 200, right: 12 }) + .onClick(() => { + this.myNodeController.clearNodes() + this.myNodeController.addNode(textNode) + }) + } + .width('100%') + .justifyContent(FlexAlign.Center) + .shadow(ShadowStyle.OUTER_DEFAULT_SM) + .alignItems(VerticalAlign.Bottom) + .layoutWeight(1) + } + } +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/main/module.json5 b/Drawing/ArkTSDrawing/entry/src/main/module.json5 new file mode 100644 index 00000000000..ca3c9ba3157 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/module.json5 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/color.json b/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/color.json new file mode 100644 index 00000000000..3c712962da3 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/string.json b/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/string.json new file mode 100644 index 00000000000..19986ebf7aa --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ArkTSDrawing" + } + ] +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/background.png b/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 zcmYIuc|6qL_rIk#Su&MMQlYU)cz{|$Qc0x~A^BEf( z`{n=HaSk>%wsfNM*uUkN^8dI{qxxW z*@b_`#>VlLWSG9 z0>QdPQ-&i_RCVdp2s$-u%S362^SHV0`EO6;@n(xK));G>#qwhPWrDXGk@OBMV}H!J za!48&`xhWJKj{_+f3ir<>Jg6Ax<&Xgn;)U7UJyAw{(u?zlf{oLsJTS-_o1?+lSg-j z8fcZj1*Ad(!X>WuuxM!H5t@V3*8vLL6`QnC!q!BwQjI{yk*;~@|3;B)`p$WYcDmnZ zt`R zr=oS6o-D$WZsYKh1PiOdhhX&YWGOzpc<6ITKzr^zi-#>z){t;yz3tu_a!>)(tTU9d zd}COuy~Tb}UIRNX@aVGJqEKUa)1#E-u}pl!sY)z4cu+Hu9==`6=0Ob#x-%q}t@jBp zmoiZDcfF1WL{PB0ZO**8yZ+%;LF6K*JDUoHrJkl0Wzak+Y%E( znUmuA^p@Jv6{%Y;MsiZ4O?#ID2b2ssEq6_KGL z8T%zdA3YhMnkBu19bNsa_$$_1^16jadx`0ZzPx`M%T>qZpYyNYOeDdmqLTNWpR5T% zOlRrW_xNCD+*3_WSxvt4P-@qQ9g_$aedDk-hcV~t>Oxw;UaAk1V?9m5<2k4%VrM$- z?{KH{)m_U~yJcBbX+vqVfq&4)Vf+FvAHd|s{V34=f#uJM!Tp?b32THmfzNn1unwY& zPNtaE{ZZ=OkZFh*xW2FT&fDF?64Q%l>dwdZ#Bg;^v;dAbU*QLEQG@_|ucNXFyx~H( z#h?kJKeI3jD^U~`e`*^zcm?PlIWj|tL_a8NC?HVl*gX%;5PW5Y%ZZ*G=jPn5#o+Sh zhnE>D@Wb!f*O>cZ0}ZT=HlEdoWVWk}5H1S;$vxe#Rv~;l5rJ=w--wPl621jCW}B|gxECKzT9 z3FKlD{=OfN5$J3?Ag0g4F5t8_D(RvO8W!*~?#q{Dhx(Sj=)^9ZlE|LyI?p1NXMWr| zGGbzFN^3)5?P^vfnD7XZo*8yf&O&>7XULUUvhJT@rHcF>PmjodH~u4RSmX4TH?v`IKg2cy7 z(T@e4&pPRHRczikEvwvO?jbblSVp z2qpyT+LHUFhHwcunP(^h)G#uA95vF`Gd&1k%F@wuCk3DnjNjw;b}*;dY{F5{7tNsg zLf4y|)RTV`PjQ^!NoWB3YA@S@Cw zUAr?mUcn7g)n!3J`D7*H`y{%TuT$wNY;))rP(y@kdFdPH#h|rjcW2#oRybxTchXlQ zwMW{bVcqRRc_2r^tI)Zav_+qLwdd|Bw=*pM!|pflbT%K&Eof^{6+|k{2_;HcrWd3? z#z;>@Y3dp#B^R5c9RhH8lT5MRr*;>xd<%C3sV2Y}>{On@a*oump`g#H<6V&DKeZ-?Zic$S$>ulEiZvJG8kHMeSzVE(R|E-<}cEG^n2E*Cp z-25-DQv_Mf+&WhT3r?23Phid$q`Z3HE($RgC{EJA0Yc1SP6(a(oZ4RU2L1~H6k0Q< zHY1Mj{)b(ll3Wr=HakbiEk13zYKN&f#9*}tMZiQ7h@Us+N(Jk`aWQHf)r!ObZAT>_STJuzjuO{qHMlTjN9^hPZ8sZBMl zl&MX}xk{d5VUEInRK9r^Tnx#HE2;hFoa7?NDufAxZV6Mj9B^NaAt4;oStAtWfVg8< zjQAfLPj#u>Xp*sALAi;M(f1>la|_-k(E*-1Sa_Vdt$KsCNAwAbm8CmvpDbwL$`Cx8 zkBC0&3#@q@7E3LVtGQcrGS=s-uh6FHuC)WTtU_@t5c_T~`Wv+F0Jd$a9s(?ucd&l{ zWThjQ*u4YqU6Wq{+^0sC%S;vXx~qO|+s%Am1m-N}zkd84>GT;5u}a1*p9&!g%3wk2 zl=rj+H9g>!z4_zdU1iItL}Zox?lwK^ykQ+_#Ym~p>s8CgcLQYV4wezL^K-_HzM$r! z1m$U&G13HqDckgHschNcoe73o=)$P$j46Y)SnaZK(U|F7d#{AGb%>@b+jX#5*Rf5x zq}@ejPTyyn&&@n|dDGl-o-=XF%6dndW+}@7JDd?6b}Mt-SX_GV^3{!3Yz5a~X@$Fw zyDIkaWq*rtn{8knumG6=yF(6lzQnq)&M@%8RzdC%{%-0Ey{v&0pp-aIPP$bTrF|=~!MvLftx2pd=0-86i#@A;;(b^r-TzBJn~W4d42|-V*)} zt}h95!TwDQ%xWD9TFS{BwGO@d9P>kia=+LQ@r>0>5VvEV8(&tEuw%+YP*Qm6KzZs9 z#qL6SPwl9DtPZ{0`)Vph`^ryNV|=I7r2Vf@LrX3<=$f6zv1^z*!<6j{f$|6Jw=%s2 zb)|d{?()1m_Xoab$B5r9#&taTI^E@0yTQ$UB1_f0nc<oQhFOi;b@!o=y6w&Tsrw|K5XXEJEA>@Eb?8hi( zlT-*bXZd6g*C+W9V6B5iF$2f(_-ek(ko^JW%$@}`#GJVV0S8A~FwzM(JdY)c1B&ls(qJ=bvy&S10cqD8@1Clbooq|3kmbD_she z@O#tu^ibgYfM#HD%WIF%%uf7+)sc&Dejs@WRQE+Q1jXlN2z>9dB;X9e>Y3a-&-A;T z>||D+o$j^$E>F`4y02DTELRMYH*biv(5+ed(cQq&82Gu z2~UNnOcNc&MwT3lD@S}nPJMsvOT%0L{`dN}DU&^Z#6?2^aE!5ulUV_Zct}2~K6R!_ z4ReuaX$@AP?M!XMpi&ZJwsY2up5F-xe0{ym`9#@pr%63v->d&@UoFthcC1`k$L=ze zYX1{xl49Q=z953h>NzyMc3UuH96t7)-k|lRw-P=T%Q`;dC7@r`uCOq8Eqi7gKC)~7 zb(*Q>H|T2(e>5DVf9nswM~C%V2G2 z#B|VOitZm{FlV>EydvsFF|Ue~ium0%0KOaFiMOLk(X}jHq@dI@*AM2G6XzCU zSpFR?#U4MPz~VZR>RA@a!CZu45#f<)^f#kJ+ULtRLJKzSj=cf+NxQ}Kw)Yme6wJz; zu3W=Jz<}rEm$g7sNy>yr-Z|OiI>qQ4m37~);`_~Xgr~N4wOAssk(HTh5er1XtFm+! zb`5FT&FoKA{ADaUP!Y#o^sGPb?mT2wBY9ZfQ}ujLk`C_dyTvT&)34sj!RXJcZ%lCzF?kE~i-xCSGh{ zy%iUR0+S_JP(#%W9!Npk=RL(8tFB7(up1ms-Q#8 z$-{dva97!EQB<5#@0KgW&2S|ddKN*<(?}37-=O@1bF668sG)3(D61=Ech&sJ;j|An zqu1a;`}bcMj;#tF3l~&Ue9ES7GRw~kIPKK&q&^No_3M#yjp?ygI;To&wcXbe%ju*z zpMI!gbi8@{AJVkgXR+py{dMSfko}H`^q^elZQ-5<2bG-K8tYq8Q@*4t)`Blvz!#v> zE;3kk_e^|Kew4?}eU;3n)q48yWgAm)d+F(;W(>jPB_glQLiH|IE=EDVFI*j_FBebS0vXyh5@x9LS?RNi7vXf?RckfXjvy^Pifki$9G zzwp&k7S+aNOI8%DUON~#xxv+a5rJDE+^6;@RcjnwKZ|%#%Ukq~@&vL#Pts;`f?jwYL)Y zDOROB^T8hlFfA@(=$bFYKWy{F^5$#{h*A1FG5GZZ1?>Y+!}UULap(oEekfHZCJkpC zppRS@+Uvrs>_Df!YT#HWpuaEwRq)V49)TgZ7Jf{A6@tpv&>tG)c9F&eZWo)(tDPDB z4Fkl6@ov*S4!gboeokhZ>My7@q%!Z93-zy>Y(_9axnH2W2Ie&#X2Z->o1A6ZoV(OgY z@PpdL`E%U}QN-vzdLCdkVX)Vp-z|CGg)^e06LvMfbj%1)ZdXNB>r>{Jk&ApwTkkLr z-2C5e31{3c{*xsm?)EItQ%pSW(%723B}AHgke#M{7KJW6TT*>9^+`FIe4;VHRwSF$ z9rBta7_>vwCuV;vFY=|NZ2KlX$A`EUk*phH=Pd~I8Kkr|v!j3sBAD^fPD!FoPpnHf zqP&jc&^s{jm0M&oBNXjUol2${7|G^u7UtOd2kxA0b?japS#xlwo_TaY+jh-`+$sfO zFLgfqb~kaemX{ErUn7}?_tb>g?G@UyT99HoY^;BG(5|gh>F3J!9J* zvrz6TP+;XdE$<41%Vony^Y}i*aCz@+4v^38p)5?Nhw`m%Cbg5Lpz%VOxaBnlA9P;N z9D=#{(>`$N_!?&CKf9eJGzIc>dhWes8XtpX`{gOhP;HMklZ8~@Yu~YT1bZZ{VwrAffDNiZ6Mh5vEzpq z=5A;0ff@>1MG@vbwRU!?7ZFD-SYng>JN(=>uwrkrl@4u6M^n6jl1shsk;DM`t#|F? z(H9W(@&~b(mmUR)30H=vAZdIrX%9iR7rMruZ_I4$Eq7YnBI4Z8T zj5;RTUu8?(ZsW>30%Hk#$^zfAtgZ&y!|p@5%e_4oe7)3{Y6c^x>zv=o_XPiF*wI1y zNe5L3p=L;8_D7-+5I+LfNgDYrOIUD_Iu_VJQD^=4v=Gd z_u%h$8{Lobyu6%VkeZI%T_vssgc#J4yD+&6pVkdLYl@3@NdcQbwl!J%4{RC80oF1z z`ksIXyrZT=Apq3kOR#m795+y}-8NizKBNESZCmBS#jqG`n4kCydp-4DZ^BF-zWD2# z1@F?p*^9m)EPrkd^E&cimk<1mN+iwSCVTHpqz^#`_Dj;-5xURqxK*!kp5asE##*=< zc{bFC-`m;q4VL3=| zKN6@)%XIu=yS*-K-9Bw`jN+-lWBttd77x>|g)~$UgPB_qH0h&bm}j3#sdLfV&xcR^ zQFk=d3;U8~YLqm@^61C zmaLbHw=dJ0oLP?>eyJ&=wgtZm!2mS9V!i~62x+n`%jyesf0bKruxRDH-)c2uF;&qT z4Z0drBbHg-G#ueH1vVaEJFTw$U))8mlUjFz?!PDqNpcIqZ%B6$Ju$CzrK@_na@?na5LpJODS}`)`8j7i#>C z0RNEb>nnQ8v$qXrgh)-(=VVRFwj4 zZKH}5T4rlZ$PiI2z3_*{`av5A0jPJY!Y*RQ?XbKPZmNdwp6ufAH4m~1%r{gYeOJBR zai+gl7I{Z35P0Q7EoGmkkLGHe5rR^{bdxWyMiC1~&kI@I-bYJrdGv{=O7!p&kKxN3 ztOoyzWj_asX!zA>`fa~&>#$n@3{c@VVcl3(1m5=dCI-~1uR+4s;@87ozKCU|Z(EhE z7~Csbr}e|&-zPK~*W}WcKqB+rv-rNRzvqfY299AvP zA5u^Rs->xN6b@MzP_f(M+}|~RxUHs#zO%D772V@B$F;5<%Jx|0#Oh_?#%yrHfV>}I z!Lfe59_VCjJ!pEQOWyUr;CdyL z-RzERMQjU_j%}N!Av?++44uVMc#r_KCTZxxSZL>4`xbm)#)*?4I#nFDOZLv10s^{6 zAyo6zfA)w8n^jk|KBb4J;|Gbx9)grFflY-Nyl_v8_@}gizDNn(Y2l6TqM&aN(+9Qg zTBo#J4N$h%f!;K&2NqBlT~J6aqHGy6HI`Xn*)UV$w2>iLk~P=l)VTdah9Ab`z%}dg zxIvG$xPG=H0NRw|6_-~Bzh+BPv9&C;z)58?`7t~$HupdHcF!F5dirrGrn3d}wAHr! z^@&!aoW@3sENjl#i@LzRYOZ4b#v|Jk_Mo$-VYlgbE3LQVKniS1mH)uO`90X{bc~{1 z*%Wm4$E_2-W__`4`mDu;Ld(wv8e147=mMu!AKSC=mw*4n^8S>~fm9mJgf4~8t(bb> z^_3WSK>aAZ6lK3OZ#_7g@)?z1#pZ zoR2>rm%_enbG!+Y34#Jmal)V9@-s8li+_Le^~z8cxHeF5vR%p~{93TJv%YmeTB|@^ zc=}q4Gofbju_Z#%Iv9|44|pawNvh^mFGBA_KZ5C^rx-l~Ytqf4;%SxezE8%O)aJh& z>2it7b`epB=P&=s^y`mJMjMq&9Jvpdhn}6sFHk)q%d zE_RV6%-}?H)w7yAW9TA)&7XbMyu=N}tRA-JTl2iG6u8;@?;!BW;ykyof{i+alo zJu1v~ITow6y^)5crWdi)&;yNs0d)3*vN+aSszJ%`1`(%9X-Hi}3gH#iRg@{Svm?cP zM}T*)U{A8FTQ7b@oc$7vr_EeTIj6N%Cr}VI5VcfZk+@1UFc>zpJkm3S%cb<~=~`BV ztbyjzOPJuDkTJJ!hL^nLk}*=2EXd?->%+3NWrq&5a$%1G{r2~cLQT2W>8!pd$9G;K ziQIDUErsVk$XQPRm)pDFYVuLFlx&eiFlnoixT|jvAoB)ryM_}euaYFXrdKLqi|4AL zG`rnvWi4Qa>Wvo=;Y+t@ecMjl{#37K;?VkYdoSbT(2m}8!k~RT{yv0l8cPp{jtiXr z$7KAJAvM_g4ak}0Yo*q!sO%PN_CK)Pv>lC7xoB~vG1hs?Wv>^kpOBU0WV@$|oL!cE z1FV3%^4Pjr5Fqc)|Sv+upxx8BCM z9*cYQYi3jY(^pUL8`I|3rHf+5>sq98e!hkPsfNMQ1@y7Tnf4{F2p zx9AO&@zYO;WpCQUf4G@!d<{t43@&RHh2Ukg^D-8_;De`dc{hz?yPS_7BzU!x^P-tj zBWt_uk{g94M1uo_&0l?m1qh!Q>=dKy5cx zRa7mv(}`xYKJOm)h3s8goQ*XK1OT<#&Ozf35uTB^VD8m)Z6Bnlal5r-bkso}J^TcM zo)ZSc#2@`h0Si}lrnCFt67JFa*e&}2avKCL|IIk<$R2*5sILkv4P( zesTX_tP#NqXN#>Q{4oe!N=G{SZ_I#~%^kq5ilGc=Q63_5uRt!D^j$k=&$`Ha&bGlAjZ2&hWa=M};Cw|5onME2e;8le z)-hK+mgNbGw-4puLN6g_q5p6T?0XM^dMo810rSBSw7Rrl(jt2JNVBwhB0o3``lZ1y zBr`Dy8LdVilxv`X5b0N8#{#(y<2vQrLj;qv`XA#RZ+@Q~*aYa^UY~;#F>6BL>75+E zeH2(L#HhLeI=Mz1#%^96zY$Se;@N)biYOvM6H1p6-4LcvA=&GP()#?u=_WXgAoZl* z+bR{6BA52?12Rex)v?(LMRsKvf9{KzP<^4&NISV{2!a;wEhr&E)EloHqSR9%ezb)? zl9X;qQSTg@es%UevGs9-KQk6RqJ;Ui(v@S0=JpkXQVYgXlRKQcfFLT2A%*#c?7(b} zjki==Q^Y#Qf}ZVpFtF6<4SbGKkkU>I6wY*Ps*EAzemS5Z0r!-oD>~r!<<+c~fHK+{ z`u4nWcW&4!()0%2>r>@zr$F6$;5*IAuq5bc>cn-IEZ+B|hkO&NPeBi&47YiU-<$w0 zq-j9aGH~K;Y%0{D&e90RZ(J_@o*`(e0TgqWM zz>V1_2|7MMg_6zbeK`A2oW6>`dUuDIll*?4hKaK{^>2t!B*N9o7_!iC51?A=hss#S zTOD48mGM}}JkMLeB>f0zNw|zPj8Efyx1Qh?QyT7Bp*PsC1%+$kgboSqDR=rTEs%8X z-t2|68n3XC`A-sBYO9tXuQqE7{}pE3mRASQTvScN7(%JH0{M|k4t%rE7xh`qUf4A- zgEE3f#zcuMyMYyiu;w=#PFC-_W0rb;u#{l@E}K0uMy~Ec1MBz-KglT}I_AG%m9nb!XAkpoW-`_85Umy)5g0j(3(>`;o1;w;CKp zLKdGc@@LrE*Y6B#H>jMeTcD6nZx;FZw zZ?8nd;T;sv#~t>9Stu`V2=$pLBHrDq3VNw9{KZU-50LlNLK@?o*hLF?1Kjl3op`;u z=nFLXc(CuUKp%gcxwwBm08`iDki>51cyobB9Eypc5@0Uv%$x+m$P}vtzJ@yXv2Y(6 z%G|Dfw#*GyPhoZ)9Obc;u$h*k0~W zv)EW8ChYvHNP~Ws5(MQk4JSGnG!l*4I-odrw$8E;u9uTN)1sDTSK-9%H|jqRi1XpO z_RLbdR5?V7FZiM9a@_RLzrIa?o8u(&ct}&dJFEmRO#py=1J(LW)$S@B$xLi6T)SOw|;fa7Myzv z?MOZ*b$o!rCg?J9&v6SsP#m&goHWvlC%0`IUKT~X&=s1cU$O`0Ea`_f|aU@(<=bXW{`6+7W#cu@H9t zagx-Usc&&vez&!Mjqpdk+Ol(}Uo_B;A&JhUaOe-iG9|*Z<)SYRZ;!m{$5X=V;9Cl+ zs(#H}WR`823f+9`wmRKF;(;wyt*?b3@Y`H^;&@1GipUF_{Gb_RzIV!3$qMq++{iyr8Th+msVi*eA69cY1K|TmaXNA-rCXT%k z%$21aDiQY_-+BI`52BI$rv}FI)tg7-CaaD7_O`l9ngVYH9#Xu44ly2flHy-xuzEyCWC^6c-^K*QrZW zNG1PL`B#xfh_CD57q**Q+=Ty9EEolHUwT`)Z`SWJPvsxa-f8_iHO;AQOj^^?v$Pd6 zy~3pjahT&?UwB@2zW1)s8+UfK$SFAL~tHHx3whuvPyW4mh3w z`_Q5~nHOsoDT0sx@+N~J<-Y&TvqV4MCkgXgo^ntecjdoSopR%@?wkEfAuHDOIVHQe z|K0}d$IAWT3jC{=QJCD$*L3=%k#f)T)tT7R=nTHqn)i5$Q)sm)53ZV1w&{swK_X#n zpD3;2Eb$r)$CDg__L8tv=0-5U5hB))B~SI2(6`QM95phAkktAVs0hU305vOGT{|^t zH`?>)3!24y5TBnjRfAJG|J9jjj_JYwB?gujfD3QwPf@~K(A2Z4KynC|m! zMt!}`yx4=~u?@-#ab5-T?In;dGAUlGajcN(yFF%ypy(av6(B6-=d(A}}k7wcgUJ%c_TA&p~<@ZA~EU-mvx5S_ykM?O8{R|mH|RE75BR5QQ#CTpy{;f{(N zFpFjUOJ}EEwov(%eX6wm&~H5dD|PO&*VQvG&6Br6eo1I>i7L)sk`T?{8}`lQfCB2R z@nDF(51Rl?^;uv9K%Wz-qpmyIoZjoO+tGhY)P>lU7U1Rpv;b{^)mu_I7=1e%POI7M zneWYe`!E(sG!D4Pm@9XD2!jhItDw15w=Vl)ioN}tjFK(3~fxy=!h!`6@!cQuCP6#aH;{{dyV2@O1#ZX{Zl4pLmD z7*{Ip)`V*gV-QVaE+>|4R`><5Z1*;n%pfkb3AiZ1s39)5f5khONJ{XZ5dEj{AwE^i zj6G1{WVlyMNlC3!_Nyk^Z0DjKo$ha)xbx}7UO*rnNj8he_fyO?v!so#$d4^uhxAXf zZNG(a)^5wM7^{-xB|`JITdre*!q^0$>^GMLKm@oauH?5G^;l>0Hp)xxzomAmYTE02 z+c%CPd*0$Be%v~(u%mMywt>EgIlKPOZH{Q%Y5c6=;F0usNLUPph9Xez1H1>s1YOPG zz|s4D9}W5qUuupaM_2#&;|@Jl=mK~Bc0i~OYb643=Gzqz>i%czm6IJ}e-nj~`8ZFe zGWf#c?5=VP0hlqMCIlRJj0p>6ob8O5e(*AYuP~QI>C$d^Yi`)_a|r1LwH(~NZ9P?Y ze?ts^N2upq=Br??YX8%HZ%xopU$9Z$(sjX zPFNIynnhW{IRi^L#G9#+Ew!gHJ%T1dibisJk2~6dM4r$&WR1@Yh3+PZbrp7G519Z>UKXw(mZMT+M-ozzkggshV_x`b zthj%~?f*E&m2-P{17aTUsk&fyuduoa3w}G`Ii-fByRE*XlORaY&Ax;2q^Y}9DeUiq zyMK?>G}eX;GkTjbS%GZr z5T&~;Y#yW|>Ep#W|B^P_r=X1$4uFNPGyw?zjr2lT?F6>ZQaaY;=%~?w4R^35Z=yWu z?(pW}`Hbg{7^L5u3abb48R>Wz-8&e~ld& zG34mkg*Nsz8LkANRe$e1~y0OAYcFkLVXfFw#0X3 z=EB)RkCjS-zhk?;_Eww$ZWCeYf2AIt@_v0+O&5H%+nUcKQQZ*-D#Mj9~nh zx&c!=`cApy)!}O~mTV6{@dbum`*7{`e8wKXQ$qf(L_&%pEl%&9Hz4Ua`%w=5(|{Fe zG=KtAxRHvVR%isJiC+qS)RMDX`xiqORyFg!x&NkABWs5}rYfi3W6r|&5P*I>{#$0n zSspPdl-FAPCWDVqU+`hp5SJ)}U4;QxQ*A|gM$`7-D_HnBBw1Px+%y8Fr*ZBkK&P(5 zLO)g}sM)3#vqJr|zOLiUYMzC)Ip0^+BMHE(YMU_d9|WolPeKCgmx*JYTE6;S>Wa~2 z4x7~9yMFQiL85QHvJtCUi;sWX->6#j?bP;4-B$$B=t*-7v~dwa7d_l5=?cxUgm6Cd zaZr_|B^X5;{k6{%BEZY5G{tgIXaw~PMvhi$_PDnHbyno3v;_gj5-=Qm12)lz+O@kglm5{q;M_RZxMCq-* znMrLfk)rYkS^lo@-6`Sd+^FUeRw9NYH^+}naYE(H+Zh38KI`SA9vUIYM`w7n(({Fc z<0<5oW06nE*}@UB$5AV7a^dI2srSJRcWrClmn7EQdBmJ6?_NrBl@wo_%pe-;K3ph= zN1j@y%^Bw-|7I#-OsQL<1zRV2i1N8h%Jz zJwR0GxN$z5cL7T2`h@=Nn-d!(GsG9!?+6zh=pQ$E{l5S3TiBHQ1&Bvy(*8{} z3j>EOJw+p*2|#VfcRh@u)N+@NMx-@QrQhRg>Tr5cY}aHl3CA*moGLkK0}rdRVR=E^ z{#;gyR7l*RccCrEo*H}%3X|@5YPQ+FM>u|=k#sp-M{J+EGRGl7LH4Z8UIUZqJ%O1S$-a-TXZC__K^ zV}HQ($I)a#fHDGwtEVN4+}*Rszq5|ewZGZEuA5Iw2OpA6%g^thr!`g2lSe?v{V!Zs zZR|Oezz_e)(WIs7nejBn3Q;m~{el(T15QaA3slu+pDiHa->pWfN1C6rVtf%}cuYmO zgKLKj2iNqdxC5nzUkN5bWkY7QyW{~Jm`(yqq=456x~COUo&to>DhmwrE0T1u8eLBX zmGKaO;crc6pm6&VjM@?bZCAXTbba*pRUvkbglVZYwEkF8YfO`T(Y8Hj5McaI z|C{H>yx3qKlRMuy-lc?Sc1!2)CVr8jr{HCfqbxH-_?m>w0h)fl`U3oh{a{=<4u=GG zzB1dSG{rJNtgG}nPU<2q1UPrW{mUkc8)_`L7OAnol7dZB_a(SX@-|yK8Wwm(0F1NEm_aN1wVsURw>% zPcJ-K`1h9E5@B%#7Tn`q0}2)m8v1N;72R}2#~JeoV=z!u6nMx5Hh%7WcQf@>B}s}j zpX2a$CtQcsC3W?=6QyG8m#bS^7MwKolNJR0blaxwZnvS?S;Zd`$Td4sdlY4B=DpVj z;GB--4WcwwL>bZgwia+-FoH)nTd?9m$)`kWfURntsPevI9OkDUq}At_Fhr2*m>J<7 z|K^#22*1UDq{{(|XIx*ulqtAAdQ3OrRygED^IBKe*@i}bZ9_@AZve0qu;T?J2LZ}j zw%cP}y=TD%H^Z>GUW2*063o&E!US9==;FnvZpXFNHRbelmmD_~T)}7{w z&e;xBEsak%$=pypJ3t9=dtnbS!6w40@X`hEdjEiR%*$gfB`8X5t54B?{Y@k+{O-C( zyWn|kD&H^1e6{Z}+mjH!-{_d1n-62-&sj0eAIe`j`?O4m+Khn*F7;(ko`grc}wJs-Gcu{X=-q9>JtlE}duQ+wL-kpryH@ zy?9QcUQwlU%a{$3@vO{6uEg-;vQ6$i3UQK;nO(8qR*T1<;wvvr-5aev6Kzq@WY?yI z8CkJ-_v2o5#Cy<>1tkp7W+umyd18ce*OX=Fs(i}ooB^lb_(Z+B(#0c+peWSQ7vamb z`z_V8WZ6ITb0VsHVCX3uI!$aMYq+2H_VJv|H+xOae}8%g0Ho5T!|3N(fPIQlqqpY} zehINqo%!U~bwZHmWWWQHbG6yOu;gWGMqLHRHz7_bwPG8clq4AvuJY+yO|fZb!!O?8 zu}-gsTJ7>_YGOwb9ZP{7Y~E_-54t0uZ3t;;kkys%#n||9@a5P2V=teS?-R*n9l4LU zX`b4bjK#bVZd&U8y01tpmu%od$DMxAMMv9l&MoL=#mqz@UrVGR_l0_DR1(?*60e1Gde-2*c+IsqkdsUBQplCu zbAh}kVEU~E+wWc#ljwacB1;-}=6;qO#+T9U6+R*7gTqwax52TW8BT?9baXZbe&3!{KI_6)y4?e%W{LkWI2jCl?{Trz8L**uH#O^Q>E0F; zvZVDQPmj+y3P_#pP5&8F;btP7L{R3-N@^b&z}P6C*IselB-bHG;@9&O))tmx7<0R@ zq~8V%kqZ)eZcoE~O~sQ8B8+i&1Ue*r4H|9dY8S&zqWooS;5LT2)V0emG9SEr9t7AM z08Kh_ER&MkZz||l>!~yU@mi`?QQ4AitwkZp6F1DCU$U*G8x922-bf6%3pYrD#i2*< zwpz(G$kV;(&?c|bI?kVkWtK(xu`&B#;UTMoJn+{-FXYMJH&~sfC%3D^A2%%pYB~Fx zYFb@KR!L)a;xpqnrzd^@O_;-5c!|es9)R%NkQ;Y{;h&+Ck8^jTn&jZ}P=M)n>!7A9 zbI=`ms%#Cn4 zcD|SP<@REH*!8~greM*drUAx|97aK~i?nk84xe+fW zZ{VZUt^WcR{^_IyCA?BgZ6gdxVu5?G1|-aEz1&EUsaWP+cJ~=7?fk17Km5W&X3{&= zr6*juZl+Xa>izM!qk7^<2X1*30KepqIdjyV2i+e+zNXSxbK7Tpa}Fm~tK0+5Cmz|g zd=qVePKdNVx^>DVw^plZ?2M6Lxb`!8Ti#RkyDG;^w5l=4mTJ7GuF?>G>j?|lQi82< zNSi&Ar21!4wJGm%haIm3(&qHRaalgKQ+Zo*VUmdvO3d*r$tQiZdevGg?sUI{@hBMB z#c4dG%$ziRt^bWNf~3wy9fsIN_Xz#^hwnqZ)3n%{%nU9mIShVGJbF@_aV%R@{2`Bd zRRV1z;iLf8vnhQhV!*)}h_XFiU+=HG5zruPk-I(^EEW2+SP43iUg88Ktt+fn{a3`C zxH5^rzt^)}NibifBptLnWW>O$q<;o81Ytp^|JHO2c^)R9nQizz@=pua-L?WcDwzsk zqLYg1NS}l0EoS1SEwfU_n>3wtIkq4r(>>1vzP9Z)u* z7!cFZk(y94Ta9;@KGI}VuVTz%OclFRP84+NBUYBAN9)j18h-Dk(N_YxRc+#$@;E!G zk3>;{dx`$+A4-y+OCDz=U?O~&oq10pF2=@SEP`h*hn*uC*BdqRBV;NUWL%7GQwvf+ zy^@Jg8oV=aF&&>FIZfBUhPx!`mVdKBuW_kcOjuX6o{4h~GUS(Oc#=*IhjnUUK6V>q z3|r^NJ1i%lyLPs-RMaW{5i$=F!>FC4M0Pj0<<@G%muXC?eGi&&ai*KS|^#9Ba>V z1r&49PJmi&clkkAhrws5!q)&@Ng2>63rG~VPQPfM6P3_7JQhw!k2;x7`97!rb;o&f zj*N+5e^fk>D^vzYxcBT!!vc`_!+5f!_>XV3z@oz}r2l;7v?ybOOoLg1yQEm1p==et z8!M{V&DaVz@Xg1^2sOzN<|B~4p!Qqom;IvMJuhY^iq(pcg1vcJBD)9j$F|MVwyRM%Pf=l_jD+NyPHL%YE6 z$(-O5y>IX=Oj2(?JA*YBgFzC#Ok z9`8k0Tqim&9(eUu$uOl3X@wSOFmmcm0q`1mIA64Ve_<%3$nNID@10j(FXICMN0-)z_1h!Y(wFt@%rzn&KWkzAN|(aV{DA=J;-G z#?ZdfVo{uhmv0)tmnXPt7NlYVPN%)+Ps(HATs zB#a;EeCAVi=f9W$o`(OvXpJzf;CLh}-04ibR;6BeF3%HSpb7P|@BS;Ns&;?bSOo4F z4DlH!B~h1(AX80$!u6fC-}OET`Dlw`(|?}OMDd~ z>qFr8tnPYIjcmoZtVUn^-ei%&OQA5Tc=Z`Iz9m6b8v)SNDYgGI z&ufpuaQSeQ_2BtH5K)eKXd4pr>O-P(?zf3-LUZVNwLsusL-~7SqM_*WS%%V#M4_TG z{P&M5x)q1sQS4zgx}C=u@Q?t@YU*P&n!}ih@#Hx{2kRN*I*QhP*keYtJ=k?c?y9!B$5bcgrQql3d(MDOE& z$&4)a62X+@f)63w)4wmU=x5`h3F6ai?c0HhJ~iZLYXK!aa#)hyA>2 z|mZaulq=2%a+*w}~-#`f<0;rmBC$8kUReVyk83I8Vz z9h*!SORnHE+X=(t1767g6#NDfz8iGC>whkQKj)G}l@4r;Kv22N_b&h+TX2u|j7#Oj z(K3uiNL1XY*yk@SMq0V^nF^C4tY7F%Xkl1!XVbIhi9k&fR@zT?lM-aSH@RdqE*fzT z0x=nU5YhN`oe2_Me7X&Slwrh-emZTam}o^KV=~utowP0%qBQVdeF^BBD(JrsnqT=g z0Kw~8J^_6p*PaLgV@w0$mjgf4%j*&bCxW;?u04g`wLQC{3<iiFFlUUNQ@-0`3U0PTr^* zMu`6+{ji*^jscj}HzT-Ix^mFBSE+}Zet434IpXr-z;GbHM|<6Z$ud>QLOHm$q>Yj? zi=X^?XVKh5dmh63E6q?c-(MkM>f(9y>kJ)X*W=($$*zh%V_IowxHcM_Px=q^tBS~D z^CNokYN*qIzqTFLw@*J|W1E6Y93dEjFM7bVH;omm!&C=Z%kF zDZ!5^rmEV)HlD6O6Tr*st_e4;^fb1cMxb2+e*K7{dMXd+lY~LT*&%qoG(^LQ;xu2U zlX&3i8OG86!Vntf_USh9iF4*U|J`}Z=mVM)PeAs{D4WZ*4$7P zB%t)P&$2Kr04o8Xy;J`g@KPzWe`1T}m6IZ9MOy`GPfato?=$ik(>JsouPv<{^B1k$GpotiH# zAFc}^jX-(p!24l8(M&7@pUe|Pfm=;J8d^`&7M`y}lC2ikiklLO3&7s(v`TZM_wLvp z)BGvu*V#(5myOg0-#f?hZM~gOm)pbI4r6l2`c;x+BoKN zlf8pTUa5LIE_z>y*IP(5Wwu|3hR`D}LJe2Z{OO%LwF75itx_bm2;*V*L_d!<^U`113iZ?AUR2fo{~@G!O7S z8ry*a+L@ya1s~1tUwKIw=9Y$~W4(^vWXYd@p8Pzd41rg5Et!ZFn)0i|BZzsFQS{Ma z45FpX$A2OpdxJDya+vhWuRX!EMr)~=G60EB#(9=Cm{yUH#1~9tH^>Jf<0R6m#c}G< zi(K*ezx7%l*|KrLE}7Nbi?ghND_o~9`pZ1q-*}Q*Q`{_{6rWZ;i3So3-$FI8e&&NC zWaY{pZS>)b>-mE2`c_1^jB#|!C|63e+q*hQFKyk1RQ#UTkJI!M6}>*G=VmpY(8bq{tn;^1f`?7^Zc-BLmxn4n zI7ms3JW&2@wCq%Iun#b{=0FF4fUU|6)~D`fAdrMDf-%qb7}(_}O-Q%nk`;V~i0&E` znTDr*@a5IOZ9_&vz`~lLmNpX8``JG1kxEJD;}0!4K|3<0TVqBa%r23*zlrBZWH4U0 z5PQ(DoTHN$fb7YEFYgjdU<)3`W~2TCFZR=#A)q&Z+nJ$iP35--s`>pS@B(Z1_+$t{8(iqnGXFSA(Eez$U z(rAcMIv(%#M&j7W?q4q*k#Rn$E zuip+NtT*wwH#{;4u5GD8u}hZ<6@&20Q`j4GxWAW}!MyTY;KIYKaj~9lLj|ADb-{w> zXQV5^!qH%Z=(nxMKm85L9tLs3cFQNel6fR6KmK|2x@yy>gzqqyx%l2?3(eDsLCocG zdslQ2dcLqbO%Nc`$|v^)KCTKql8YQ&?l90WQGtlNjj$*dWc`kau){M=;cMhq|fFjQ_6$TE)+((=L zN}9jU#9gO~MwryIRsj`Atd^e}?`()lD^;B%s>2xr9u$3Ux0maqBQ-M>|74?_%Xg7K z!Rj9hvpde``3walaYgh+!5Q07qw5!{qQ@py4<7ToKiaHbesEVf#mwc)!Ha{sUwaYR zYil{4w$X?jszTm52%aZddax+>6ZVji-I*L2fukc8YS$2F;Fp7qW|#QMx9#UKh&WC@ z@b|j|WKkGzxI%6W_|)$N(vBy^<2S&=M}T&+nZ~}8nxXRO<)lH7nb=UnCA)@o7GYXG zo3mta!~WY5Dh@By(QrLSG!7x6di% zS9=>}2G(da?F-j0X5}QM<)9<2P^&l*D$0iYCMgnRBFhgP;FHiQ{{xc#7njIn&F46G z?iOCDCSZ+j2-Bt2p^J`aBdnQ2?1U{L4m?WeF)8Z<2czjUtR`T$m;{Z_29g z>0R-hEnP?RcHD}C;UCvlJW`!Q#=eH%5m;&(#~y)~Xxx)!XmTP*e;VXL8x+aO(;`p| z^Y7W=lRA)%A&Qg4Ci82P=5l54I9(e#7KD~f&prgcc-_0=Y$*(6kGR#%a+Hj=nMsHH z{nStbI?Mq~mcO0m3g4GMOW%!sg=~(F zHo*;$bSAPDVg*dJd-V~f&<4;QrUGPQ6G10(WzW(3hbT`A_0#Y>R2$q%MZMcYywII% z>aI2%Lsu?S5d6~Z&+thwjJ}cHCua1T#4KIVsE)J)J~nf3t4Di|CU2=n)FGexBvJ*U zcqjy-l@EC24Xf1KX1_uW^(#D5hrp2oIs)xY*_=Xl}7sic0DaxuVQ;Vj(H8jl6{ ztl@;=7&sO8d1Gy79NJS|g5yuZoY}H4{hxfL0oDiPGb?VB&s?rXwe~sbb+Sdvx96Mi zf7XvCdY<~>#8qEs6=adRIh)T#cly&iVqloGZYgq2DE$sBY(0R;w#HyO5m{Xi|j`ryzeJhFvObXi}zQ$^dkUa z8-=*j7t{_XJ~$Hv+WXY=obm2O&HfejylNDi~KEqaO>WLW#z~4D&S_4?L?|I7O zd9bOA>y97h8sWz}k$zJxC8agx00PU z=&q>}m9ckFl0H+8hHU7@QXQTDL?Q5QW~dH6U!?M-P2yvDhHyR=*S$jlFb&0tEg}In&YcQjdt18>ST2pa1*s+G_eQ z$i_(cvP~<#>q^Bp?-6%4Xz=QHw?E&1dQfBsGqE1{N7)PW@SLg91&af=IdJ<2o23%I z=B3MHDwg?zEY+b7?2pWuog5RCD;Ts$p6L=wk|sWaAE$aA+6Z*uB?%5v$opCbw9)s| zLe|cu36WL79#gea+kAOY86xuP@wbA8`P>mQkI<_463)vU;mhz}ev%wYe9GJV8DG zsI*WsdD7gNyjS4W75N&vocg7{z5xOXo$IkwyV2@+8uJ0z_5FJ|yr3t0HolQ8DNX*! z@UtBrYSwpRoJm))>Ui-&I|GfHtg}9}+AglmSHBzP+5p0(>?gKNG`pAQ!o9wA#@CUV?kk=n|xk;NAC7^On%cCA6GUg(8h74Mx zmW0D{fTc@BUs1k3M=8z#svN%Ei)~)D$!SRh)g|_VkdkQiW;lkt?N}oDiND=P-Idjx zkXC>GUNXXJwB{;*6!`ng08u+T37|1I=G#2R0wvra0A!Sc!<9r=?}l{$d_EW{5PB5< zwUrHoXWjP(om^Xc&*V*LNj~HwO;dHpPQq`eu13BY+nHVMI=pjOlsk;VH~8AK#p3E# z1Ayw~&8+%!P<)FVQz)NqdGfTyNTcPU!_)~5lQhDRYkp zC_%1KG3Srg*YlBCiN@6Rz58(IAeQR&A_FooBDOZM83P*b{nB%0neKaT#g$Y7rGmbH zHMCz_Yq+w?u72_rRDz6F4}2GfvaFfx80_zu;fIdvk1$FYLSXCbPQ#V%gzb)_Nq(}y zU3ZOC)Aq>!)bT44i|W`IwFgrG;@_%k*I%D4G6?l|eYRk%UGdM|8h^+cnFz~LymyV5 z5h^5j|4ieG`CvT0^v)hdx>x$4e6v^czfVQlAfgj#Fy_(pxneG?yXsOU8$@^>PX-We zw`wab$am3g+C&Uz4)|>7a*fvwKsEZ&?Ybqt9)qDXf}-cC5E22Loax}F)rj@7O7$(2 z?!By3nfztcBnGSUa1VZ)041(8iYs;m!`C^1Tiyg?|0l^IwgFc*BSY;i+Ru*Uh}%B( zpGlO&;XTgsH^=xdf>7^jmsz*4(_pfM?Wj~cXnBx z$yXh{O^XBq{@qVmy!3{Fe;!W@={=aK2j2UzP5%pMBJj0CeFX*AMz0*|e5> z0wrQ0n97T;j_W9N+s3LX;fTC8`{qy)IZ0K9riL!D!5uE5b9WPVf&!-Q=RVOjTSwBi z;k8~2s=sRnuy~C3mJ|d`StNjPSpD|gN1T; zzn|xTg~NK#smNy7NR@gBtcTMt3~%0kdbzV9%NPq6P)tbZzz0`C{C#mdv%>;Ao>|XF z9T!uW%f{;V^q70#wi`Y&^GyCG4UkW@$`FG>2r$|+R>cng%Ay@aip@1NWmZ1+gcN$V zGh=iq+^Iy7a|>y}@#KfqSDsgM>yr($WF&@~n1*KGhMF{vmm|Fakd5mo!~zM$Gew zn{T}s^aD5dq_;fJQ%))f`$5s3r1`G7tNu9Cv_YzL=G)n86=SkQN(esj_>Q{^f$Q0l zj$sILcM@Rv$kp*t$s4ktEp{iiV&b;eWR+O7^3?$9y^dc_N(V^%wbpl*ZmZW}s~61t zC)3`KlBcpmunVa)|J8NwWr3e`izfB^AQkzeKpWXQY){k@)2p5_!R@8GcPFT#3p_sS zU2P7<-pWbsgYLk%M&LUO#ycYKV59bKe8nkHyyH-9+I^Gtsekp|x9$Vh6x$K2JW4MH z?B97keW}HJL>CBgaJvcIuqZwH&v0t{zp6rmOjcJdt=5#U0gz%O;r5BPbli`~bn-B~x)jPcuX;Qa4p=fVKCY!AcXB)_9R@svcMQ3a+3Qf#anpAW6c zy`hp8b*Np5O#tA*6rhnIK0?8wYULw21)NewAS@DQyw=aryfmQb0zC~6F(8jHAmH%yD&YeYF3g2R$mBpYO8RPkdMs{f+{XJILUCPEi(lE9^uM}al?6z}`_pj_)mbUDDEc^i26 z^#|94ClCxrF#PNB6U=hBSP%DQzhg!rc^sg`bNY4$x@IgCJ_Sk>1Ce0sp47kZzXIY9 z|7!cT`@e6#M>bl%n(^E0X@sPdj`Wk)&2m9A|eG&Uv*S&;NUT2*W&tD|}H=7Wpy5$Op4C z;lrxxFPj050yU58a@~5snJrO;gF|XTcxBFwrycmk?zoNvu6Cu}Gr@DrqBwXLlharC zl1vBO)RIe=mBUAV+QtI_*stF9v3zwjExdyrp!b|Em z^Qi{xZ+SxKi*%CxJR`=belBN2@N*NRaj@ydsNK{UIK2gkP!gwG=z;sfD^oQzTA#La zO5vBp_e3}q=cE4-Kbqa{n-PV-zF=n@csZ2&dJ< zfPr0T)65}Y8PR7?#2yb`jv;P)6TsvSoOqenNdzgKy#1i7h!>dojt|V;PIc}Z;55sXdP=l9(^p|759HpLCBthH#}Aa`oZ`9GAO=*n{lX#bRAm^gh`ld{8~~gycM6iYEUB7zn&$9I}i%`)4W;V0V(Jht>^f zV!k8yO{{Cv1jw`yBk8d85UqHM5mK#FpJ3fnn2WQtrDy9`CEQO68Kxw??(_}4`m&iQ zn>(Hh5S=F6y#FT24V9j|Trq(4`!-UVkr>`Hu!LD=3vz0ks3PQsHSoStgeYXiK=vGzZpKaR8a6rQN!4etGo|kBLTOdJzt8YADqF*68=L zY+4i#i9+9$xs`EF*s$V5G6!#;J-EZDvfDh2F4xfkUa^ny{IpzpCqRC?vPY5~C+HEo zw2A<6CfR4qiAr<&J`>#S`=sNLi@g%rg=i@z|;p+JN}{J+d~3!bwR|1_p_WZ*zFg8JdY2H&$(=>qm|h~`0d88 zWfyZh%%J_j4Dq6hl=rxTCAnU4frH$_ytGsCU*D1mn`Z+sw9>F*#!002LkOF@J|RgG z&VYXmonzYG{uD{CvS4 z2zvgHZG^kGrEZme_YMX^>Jp5Ekly?SG)UqM2$JF;2kQZuO3HlZJBAWt5XB?QAtk6p z;PZBUYmLv}O4#vA`t8Ta9W!j|LYfuO*R{kX~Gkj&k=x{OR zgyuxc7eyW4QKwM~Y;XaJ4k9|Rj;;=@E%@FF)P+@9Wx#6|HcbPs9Er>v%et4vJrx)Y z3O+mlAgaHtAg>Nf|0Z2za?+B6+hfpony5lDAE$d(o?L1}N0%V|tJR#e1J<;%&1W}W z4sdoDCj#!=VGrjHHMfK~!Aastb2s_g)o|qjTPwpxh%bS!912Ze_R1@tsT?0hUX>l= z0g~f3qq>IyyT|fEsc3UU%%e9f@6tYuSbu!PUgly3^o}%#>ptxjwWfP1pM1AwR0`_Q z%ul*q5UsD$nLPe0@(4Nfp56?GD!KCH8Cq7Ut-*bUr}KB^_liJCg=aP&2w@$IA|4wz z09gyWU?8N!5TMlMU;(rK)zk;6jObF@{cH>4aH;$*7AvDf@#!;Um?R*(8&!b z5TAj!VC4&7_>dCm<;$(+T{TeoPk0>2{Bi?uVfbTXN!yb(S#~8f2){1p713Ty*{jc_ zRf2HseOZT8+!fPXa&@%N3i994vCh!EtP(;}!4)kKE%-$Ir&(6wqjxugE|6~v?;rNi z^h=ZRn^;Nzm0U~}M7eO*=BYA-tWFv8ZnP1qe?Ete!mwVw)ZOGc|2qNyR1{vBFqdt9 zt8xG7xKiWPD||`~g42zB1A?)^}Kb zHZN&k&5<=QopZ~J#!ma`OZ1?J|EfUB-SQyjl4>N4fd(x7L!Tv?k{Xl|Zi zj!2NPdK#Lr$aN7wpAeRyx5Er=tJ$^W!M|(Z|tTlIzdC>lf3BIlUt5Nq<^Tm~-|%FF_W;5qeHfl!yrS z9V6$z>|&Do^kuvZw?FH)k}b0zXk(QJeS<=)fX#LP&{-( zR1mXZ<8?!2fYl{@0Ezi8RS2-g=bTa3d*Q&5p}B_RA`OEM>K{D%u@0Na==gQGyV{eE z-kFU(OR^Kv7pt2ORs?Lq@qv7IXi2vKqKf33 zR~4e`{tcY0mG_o&UQI&*yPiUi5dRcXr0|&)XZQi&;?5gVlgjsGONiCF!slVgk!>pJ ztZJM|yhmK~(d5AOK36q1cB9m~^hW}b?T;y(@{Wy2Pli96zt0DS-1xLeo%g87+w+(p z>nEs|=n}0MPb;Eh_?gkGvf)rv3^I(x!*_Q~yK^$LoJi7p0jnH_?F3AMe?u6qKfACz zxBXJe>2EQe*q$tu`?_BD9)1(HV@WigmKpH)8qa8vN?apP0c^wh78>C_RjVEiq^C_M ziLc~F=qyRnDrNWFk00VNCHidqC;&lO-YJo^ilZH&&-2-nnG7s%+mw0h_s~!K*O8R3 zdXceMp|+2$u<*a4dybOy{rsWgc1HcLhxIs2qQ3&MoFc#~p7=ka}> zSXC^xPkO?8?qUqhJM_C!S!&(m8G3Jwc`Rc0Lv(=16$e0NUMq zg&0AcMq)4ca){?MH15c7r++038WzbRm^di@BInT7Q-|RVTyl#F$ zN#cH-@iNC$)^ouQ!q6}$)J3U?09q+e;jv%7R-)S-Tg~Fv-s)g$Za{wkkBTK+0U;hs zJXGJte6PM&iTX!8$oZr`sB{db{2cefDoJ1AZ*D#m-oYZdmG{q?_rL4IK4v0^_kBK= z-j#xDpZt3e8`$7C&CK}3T!m8lU>~eN6kQ*41SgS%V5hKZw=j)Y0#FP)dY2(Th|uUH z*sKv>v8vZVEx?Sto1+TzzFaFnv5g#17WrL9fQ9+6OXt`vpdPYF5qWs`#godJitEns zqdqueW_c6LUNyQ!6e)bV(zIh${I@c-qB98Qqq!2VR${EvJCyR!=6RF<@y{hl_Qyl2 zRdh>gWyr&rj-TmBVa~l0g-EWuk#WqPgx0ure2V|klh;4=KQV%yBZ<&=`Hd`3vbOwb zM`EK7C~{MW#PqMwf&TJ@9#J1^mA=^L?)=LLp?z4} zz^fRs$dnB19)LxSBwkz09b)2&L~W|Jf5_!{@4+(syl>;jtxMRO)@!;>_C* zf|Li*srkh>E${4jGP6<;xw<_rokHRO<7G2pVd?P#keF5p9sPK4xZ#+U7-rMwnLkG= zQp}}lGrZ!*cZq-z186@_t{%;RgXMksAD(?aQ)6-CqZ=`L_M!Oh1Io|y@hP=8=Z;nE6WMYM!8hA-?f{1$b8cd%+$!rUIY(C?#tyd?@}8%cbPu%fuV zHmJ?qK(RGCn^1^sz0*lppm$UUzNT_2bypgib!{*TbgoE-8kMliGrE|*OR;L`nD~#8B-YU(wWNs_(+5Un**Ep zff5*To$NlVS%x59R8Luue(S12jXGt_L*fDL?dgaseG8>+IdO-~L@F|zkWY>U^Dh1x z0rk7Qi)kd!8?2c~1Fy)kWslqI^)fQSdt)j@1z`Z2M)M41OCzTRx}ZKg!ot(XDZH5;arI>LD3nB^1q++cv|OT~`i z8ZoAX%GydeBvt!>ee56IT-VRx%(otrPQUJ(00XuH?IE}$Y?tClldCSub+=SuqEB+D zkt!~vrgb*u#_nbS1i$a3D{OkQhQ9C*_ovEATl&}ISmP<2KAlQ_-Grxw;okhm`w5qK z$_!LEkAFQ2I`dNsF(z*}iya2}T2Gyy!JHg6a?(VNYQ-;G6|4Wf_7F}vyw!Qmqj_bZ z4>QdG;vN z=^|&NU-I7b*sajdJc@(!q=!6FXSTadlX49Q)nc-2%~l9^p=1bvHRosomH4qXkdb@k zwK%z;z?zgB&4?-P8#|sLzsT z%{Y;tU%0KwHCb3~$ktLakPPO$8i3d~dkjW@-}c&{roA_Xy008E#BLYgH~|6E5d|T5 z1-=~Mav%F2rjId+NmKW#&3}4tNTnvK&2WU!&Nh^Zcj&P(k)yJceJO~@ zoS%KO6uItbmOcCzhD!{lYhWV4@#fZO*oy7o-8*q#kz1lxvw;y#OF@^7UpH9N5Gr9D zYX;BMkr2>|+2vZuzwSUhgC&IIbE^sZG9UEj@$y~S&z<4_c`&!!@pbI=$YmMMAVTzP z!hhUsnCf~c_FROUC;_J{ehp==1oXfm^pPqb?6%TBxJWN{YB}-$xNgnc47!yy?)4~9 zW6^M%8DbP(-}y*_8Fcpo(^}Ga9~-mB)pA8)~?JOV4olI{h0(@B+Q$xC5d~le-8b& zY#`>{j%RNi=Y+3Q8JeK8lqc~AWDpn6ABE0bo)xBW^l5+iByDp*_AG z{a+ch7yxnh2-*Dy0ou!wH}(i)Tdy_C+LlrjNC}H6oR&W~t|{>)!iqZ@y6F z{Z9uEMXfon-58Px??G!D5oo{xn_qE58U8r<{UL@3iFJ7md=6aaM45`lyZE<6eG8P0 zM+Mung>esC$yKLmsfO4+x7~jV3cjMTb@*iwBQd_KiT~bVMD7G_Fp-i#3Ag3VvwvgJ zeDa^SDwA}O33bLZdDOqk{PT2>}^ZuiwC z;D=h{g{AxG60UoTEx_=y8X}RY`67bD=rAHwZ~`vs`Cl9+)W^D#c=^|MK^l0IzPS41 z>RH|V-K#!>g^OjYfWDh6G?-KFP~=n8*#jfad4nU}&x-_VP)ifu|NZ2NXLv%`xe)Rm zaN2*^Is&#*_a^vh`05^UOnY*g&NH5O**!7oW}4H9xfyUZnHgZ~0K+~v_b!(td%2#s zA|rICEg_#ru(Op_*H7m-p+vt=$fN zl0Qxne}1|j#4)x@(su-^ZXsUZ&0`U>#&wsB4sdxCkP>pfg9q8I)PzY^z-%`J?NJ5B#wAUF*E2Sh8%o4VuZNg zhn+rNdZLtMTj=$|uiVd*tJpT=#8*~vliD`09q3=`vI~SPiE2whwhMl##D7H+MK?>c z9qx91xPZQD#cTSpLwZk5pbp&Wau1%yZ&}IM+_TuhJ}t1BDZ>aUr;y5D*_dLM_>Nhu zW{83uG!i$muzqsesr7=fVVV|SlyYf&jCFxqiSH+5-I=A@KglOh93TnIQ06WWwkHLi z`0(;_E#OI;>y-BS` zRm|I);;aH=hTh%rn;-wey*2XFe+YF-UJX&cX5d(H!3o{=vw*t1xcbYe_}x`48RXm( z2qznisI9=Rd#nlMm0S%6sVZoNE5d{J7WmoU2tT+%aICh?!;F{08 zghazF>D0pG24#JQ)Ma6K)cNP>Qr8}e3zM4XO&dkAwC6^+Tqz0GK((Yks9PR52Y)ee zaK?{9Fh z1OzF{6Z6zi=_B4F_4tM&(p6ufcX59*0K|pS-EFRos`0#BxB7L5LxZ5_UPTdAX^u+4 zk$9hZ+`{9j{Wzi@62z>L9lE~Nu3YmmKinE@mFXWlux76q1Ml#$2J zy~IT%@vm!(DmvUe<1z?0uks9UEt46=ExfsnMMi5nUL=8;h@pbhLh_fZRqa!_-VAAd zZ4kcH@p+K$r|y5suWeCLiF|VN$gz@cGdn9NDaOHVBs;=*wIW}drsdk;6KY3lo`2{AI5+U$BDWJUFm)aqj6;(x(Lbi7|Yf6yphgBoS@~ z@&3jP+jYo3-s7Jh6Ll86nw__T=~6!L{6`!G;#on#%J<>gaa>pc!8nirBEEOvD83b2DkFGe}n&vL_Vt7~BYWb7J?oTY5-bIK) zp$Wj)JV^Tv$30cGG-B}zio@Xc`g9iODv@tv5F<*T9f*EXNsILj(&5p#`)vj&LmKE@ zJYK=(vAM@6xoIfSeNoq*%i(xKmjsrk_OgAueO~k`*L~Z7e zG3nQs*XWS(`E4m7!$u$_u$@tYTjlC(IjL@S==w_alVmiyuJ(^(Bk{5D*_u!pd?>(} z^uz1f=n5YEtRF!919q7GvVTZ946bY&zn`pou#&sWCoFn+UqEnf?{`r&uIVIm^~=t0jOnZog6W`^$>?)m1L z2WWq_QHkKRuh>q}4<3bzfY;F?HpDLG%OYwa7>9-nN+Ul$mb z)}d>ObXR{(Il?cG)(n0iFAyZ)9h^xvS4GnJ9BiMuw#9}|PnZ4``H#`sEItn+NY_H$ zMv-g$J)?uqt%56~B=5pwGp^d|uO2)V^?gePPWIHo$*p{ z6+>TaHo3+CrpMqvE_U%n%+Vyhm-mR_ATK2a?1MwQ%*mg=@YteVRT%l&W=yGK4z;hMYLiI-d7jH45`uo~Q7q7}y zfK7gF5dWbfX3pw)gOG;zXTO37mt-de`NkO^)!O{6<{4L)>i%1|53+~T9A(i`akJ^c zVFDALp43U8v>D_o9SpxwQi_`DP?%B&Ku-1){GRrlX=HAikQD)Me2ovR&?D%ca(EBy zc=&6#_LtuIsY!%%sA6fY@p~ziWhoQ=OCt;>AmG}gWuKyRHw+T%Zbbhx{2bgE2x;5! zB)Z951iOh|T-)vNQ3|j7e*I<$-p-u(XT(}{B8#*cX%1cNXeg+HS=?>T`tI0~hTw>N zhzHIt z-wJuuWFu!DV+jd3l5|wjKaQ|98RQ;JOz;H4ncj#z+^U` zrh{^b3RJ;17r6k%*gQr2UScJ8CD{Z1z(^5DtkdW}FR`S0=iBIWdp-)hfq8OYqaLfU z1j)d>Q8r|9uSww}e2xa&1zfFBm|-k`-&=jWhFe5At#mxI%{ zxjnzZQw#Kz8CyxCor{W>(GN?%*p)0Xv_PMTs$O2ZtL9|Ug4sOdsva*IZz%yyz6G$* z;-;YwJo=@9yjDSv?qfC`PdR~rF{7Wd);QPDwHYZ!7!Y7Gm~U! zPTv^s34I*{I?#&xv?sFNk?XNy@n%dg#LZ~za)Xn18G{%qTRd_Op)?D{3rivId@I6w zWO>o~SO{H*=eR5;{Z(3$xo3UK!SZcP9P99=JicQ3&^^Dw^?L%;Fj+G>Xe>|_dx)<~~ZxS{*H1P97@Za9mlfgC*wjU)~yV?`)M#>TrI1Q(tWCw*OwNV6^i5qdA5vX?j-LrqYfo7yX$8s?i zB&WcgzHzMi`pM*atDU{M*6tg4=^GUi0(f9>GJ;sxPN-fqYe^WAM3x@MzT=A*ViVp~YzR!-_9svJmMlBU;YuI& zB7T*I{Ix8mee5wL*+JO8dUtdMBbwX!t(~x2fO~qFx(8f*9Neeg4#bHB=YUKSmdzEziS6~iVSC^u(*farDs5R(tY^Xw6_y%; z^E>>!^z6x7;=2R?S(xHg#>*bjZ>y12AMNW>=vUWb> z{bfD^cEU>vj`kl$t;6MidWc4%E?U$wc+7wgbwC7g>^gFH1o2o@d(9PE>al6T6J;pAt)TKLm zG5w}$NZ@v)%JyIY?_6iiObOg2t$}0#g|R3~p0~x^h4LjU-918XT5Vz;XmRa@&Ycu3 z)(0M;zK)$F*|@oUcs1eSgQp#Fq&9Ykc^C_x)1XTA82F*U+S-Oo?Gl)RDsMpc70trd zg3{VgqdG=0Xlem!%O1q5_Fj|y<8stHbqkYdB(dUj%{tB8qLLJj^v^mPDp^~H?Yw_~ zkM}I-*RTA&g+nbnt+uww4yo;%)&wz0L)F6@1q$e>4xDKg-+Bjx9RRI7H`SOGIGhxG zD$V_3JanT!yi%WTyM-NfD8m|uru{+MME}-aT@wny`_(~~bd+yN1DR4@833DS?Yqm-|<5+gF7u)C>4f?f}&Xc{@vbRpcB?YG2!*^m1M)UieMh zw~N)&APr53HF6MxBukt?E$KQC zB6A}^=jseIY#R|bC#fB9q)U-tfj;U+X^&&GiiY3hT${ym`!k$>pSFA(8+*`kFHK2q zAzFTtdV4^C+7<0JROnyM>u0C_Dqx*`=y-KKDM-PGzwiTFX!XdJu=tEBfkT!=(Tl@2 zz!_e0q8m8?nYo!t_k9D{N*svv7bn9Y-9Y^K|9x=S6m#G$rc(wM0aXw+(%A(J6C`6S z+jY@&Q3v8v$9>(}aL&d)Mz+jc8?^qi8FJ|+3TS_^d-=vx zKFR8FKAp!#ex_PL&W?_3Fw~_S;9jSiqaVR=65uVF2ImC3+dre!&uGe7NGn>-_jI%g zj1)1_#*OVA*!_CK(Ido zaR)cL>XJ5VK%w3MpW!cuVY9{^!l)JzJDwr6Wt#I@(nF-1rw-P0a_b2_`=<8rYuS%R zn@fUwb*pJhgylPNKPBuoI=lT3=wNYD@S8PXU>Ng(7z5dny=~6v-k$-tPIftYNyJ>U z?xgCCsQddaz=^zurlg+=_-(qqp4(*B$J19*IALzYuZaQ`@11i_r(kQ$$XLPN?V5ul ztIh)9K-#Qb2YiJJQQ=e?GR;ixB86K%-GlKjt=0`kRqn(XMeM=VLhc}^&#Nrh!uS!Z z%=x8p;9w~NqLaz$`v-5wrJWwMoZfd%!M#ExN&m;a5sYxy|6BkR&5lBpR{mTh@@O&V_ar;XKeAZ*~?F4PEGzjal z(F_R1QT?90Le7%LUCR^%S*B;lk?&Xf}{r(5{mwO-Y zdtT=}pA~+SSKH!J@e;dPI{T-7&!;Mo) zhWCtZ*wr{k8#RuE|LSgxnf`TL;vhKSL}Fe|-fQT_#Hv^@r}wor1OAm;t{17?V|QkK!+JqCehFni7@_sOh_S3HiwgNHRV6>J%EwIQdXB>rIBo^_yCT zUx(?^>NTtUQtkCi*6#=vlTx4KDH0{p%lDMb9ehT3K$6PS-39q>{<>NR zm;Q?W6vAX|ck2|BQDgYMp<*klK(QoAYGrbq4=m$~a^5f-DqP;d0LZwv)>vdBEqUwF z?B35U0^_!80O1I<#q$a!MkU*&>y`J=Xe70qdF45 zLGzB#Blk3N57~M-L{F*;N60obdO(5`~06DL?qHL$^kx= zZ&>@B(*8Qimsl>B)(;P+#*q84%;u=Ek}`aI!aucI3mFLhzspI#YoT0@i0}~-nO3_E zDiu&ZT^j5Nw_7~R0Uc8X{;+!2{NSTvIC|ETwaxem?A9u;`||VXmc*7E#)F&*ATbHv zj?(kR-LL>|!!}D=?QFPEMFY&xYl<>o-kl9bfhoN-f55_9j3*M>KMa%&U+A6Q==?T8*J;%dbIRf-;pYA&M@X;-D*1i z7wouNogBnKFJa&IvY1vA|Np5K0%Y}@FW<8GM&%{p(haA776W?f?_Mv${1}+&Q zwqiY{_>6{XZd(sSnX*69BnIb?zu+cD?|-WnbeUiUiP=Cb7RpQ7%e7+5?s6eMIPGjU zMc(O&B1N##BW-b~)1~Ec+1X2sfFAAk)10mHJw|})SYZD6SK$eyt{$9OJ5RosaMzLJ z@qN0pgrW5!b4zH;U{o#0Oxkph2JD)ao%=C$+BD)s}q-aJI zRv_?_7i8^a!G8}&9D*%hrhKzbbt~5$gZ}tty!?XPp?@Ohg+sdgud6Z$evIBSgEkXT zFr1qTb2_M+kCX*=cE4qSxQO0Am%3QRI=FZmSq1WSmxnWwXg9UZ0pewPh_EQq!vT$B zr>S6+p;SF961n^rFJk%>Kj-21{K4c)iIG$o^~lR*fyyIkfmj4G*VJ3y?UlA;T)-*a zp=(PXBLDCBos+S9)o-U49|Q;`3cK>Etz7xJ!nSU!y1itzR) zcpaG+%B%9lU;Vz;WQ^FyHr(GW*FsyJg463D9G~_TC+so+tAqkWkS-!KHj40C#{`l* z@5g&wi85gFTWcxhtDn3UdjRJ}c5X`dE&Yc1j-vS8=yex>-1SUo&?YGzuD55o#H zqu;vsdRpMw`G`-_89A+FfdAZcJ#8dhXy?z`q?WOEW2f^zGR>T^p?i$2tA|TIzp;O|ZwINSoEoHpO z^E$(+rz@ycjUiyXPQaOd?C_wNPj;M@oP$EzWCn~|6`|sxu74>Hp}A~W7KefshCT8b zZY3YJ-}z8ieFhH&N5sk1=sqV?ZB@rFo&V9j>vNdAyGs^Q74Y-L^v3&7USa)(Vqo1c z*5zUw$Za=yStsg^)izn$fK4x%YT71W=E>mxKY;sf4vwrkY(SY|Fjp_e{IVOMcoOc4 zBYBhHpj_^?LjFoa*>utBiIsMyQ@V}ACt~Wz&p*Z=u2;$4=%K9uhU=K}T6fqD3qnt6 z_Ex4S8z@F5T&vv?+}y$Pn2+97bMc2P!)8rU9w8Cxm-=O^ca2HiO^SPZ^kHQ^N3RZ3 zn+W1i7W+E(TVr>>r?uQoQ+&+)4>A`&%0+8##oi0TZ_aEC^L|Y{j6LF*@&GQ_?5jab zrX%chQIWK&3O!ckoBz6*12;xW2*!MMe)utN14?lyz_flV^mn2PeyuvTZ{Pz~mkkIT zr1h;iH3P;wql4n|Ul-NJdh5LF(CquRW$szN&1zH7&!q73bRHo4>4p z_O*+feaIKIZv$l?2Gf&nBNkyB^&~l@1^Q3dG@yj|SgBE~sQi*olYapT+1;qP(E>bwc?=sSAhQrrN8%ey; zNyxa1bNH2;zzrQCM0=>y?ZDv?KUsMKm%@$IezQbo_@!-LrzN8t3G=a3T@0a zB$-^g`m+gnEBCoI_3mL7Ge;chmf}$BJqKzRDc}&e3`-1tvp#zpbex7`E>-kQ&?V5D zkWlr)w}l|sG0r8O`?1v#OT6>NiuRwlNoE}v9m?EtsD539S1<-JyAHOvGW(MOqtivR zUB4Q;sFYMLIFAKT=UC1#c(OsEMdN4}N(^Zq&Z8jZFUuikG9>Ico@N`*let@10Tl(Y zbC$~O7v0(M5vm4Z+oCkt{#_J(M)qFM`u(zL!U213*Zz$$hVRCbb0cVg#W#mI6)wKqz$W>3pn>%45liDw^ETFqD7 z546xl)PqV8>K3nyXIzRANr|LDRv#!*t^i_!J?iea6g7O!@%edv&-;)sX=PAuebbj` zqEpWYQty;ciJrz*|Kr#seFjl)C~TS#4Ih^8k$!_A#CeVY@@!>jZ)W&*(%Tsr zj}x5JkSy%X3G|Zv3HdEXj6+p>{_qyd{MmjZ&}@cJp*ncyy`D~b>q7W5c~WvGCw9fM zNaFDRu#5~pGjbzF*2{1>A|n}^zn6s)%u+y$fIS8t{yUziuPEmB=+Wsbg3aB z7EG(0D^^&jBrb;}6|ftWg^pzVYVDc%nzm8BlQE}zQ|mCG>KU!47Otu}X*KH-1R`I= z)4z;tRejDuKHRN1*B1fL1VwgZ1>nmmpSO?Uj~`49|M#bIj)$#W9C*c>`Gehk?07k3 z(78ie-MDA#y(o2*M|;+BX}7$By<(i*_Xa##+seuG+HG=eH~@&fcYSN5-FIlu17Y*E z2_$t8*(BR_X4rhuvp+MTs9+YP{dyvo@iNGa-Mj0JtCoB-U%~-nIqt-xB?*}=> z!Q#P-xyS<}D9beLe4L>Zi=$P4<WAFo; z1Ik5R)Fjxf^$CpT&ueiU_YIUm`pf}vDZx(8A?rVxK4=Z%cKEL`0Jb!>PqtJYjIaDU zKhpWjZNCpjXWg}=86)5t8vLDqA>N$7%Sv93V{7^s47ba;MVFoI!dtYzOY4lLLHraP z{Y=_C2O5OG>}6~fQ);n(y!*!8gOq}HM&!ixtpb$Ui+17W2$zX+P@)YbqD7#Z7Uli@ zrBaXv_3QPT8-_iLxvgY&SSEYQfAa%5S=n{6$~%?4+)tzrzwZw zT9oli5B}_tx8nw}EAYME$%7l6^~*guhP7_*+|&J@9zd?Oovw*1$7qxG=RtGV6y%}b6qBb!V$-MA|P^@|a`8a$7bdCBCyi!vY_bmgYLMRl- zC%-38_HuR~B;;GTrED8rcYHy6*lTVa5=s}rBqW=k4$G%54}G`g`D$(!UGVeLts>`b zX&YhX&u!-8X@r_$1o}hKG^WKrW+{s6UTu_zk{_)}+9&ZZBNJcpnF>HJ+NF+zPVTLe zC`gtFHJvxE2sR`!ej2t$xyiSg@JRH|BE{jX_t8Q(xkFmFyo|;i9QMH#1m1AM)~i*d zTIk_OMO#hM`sjLjqTltyON}R#ZZvArA>`cua+RDPrn%e+5=P(<;Ah-3Vz4Lp4N&LH zxFthC3Pd#R>3@5}O64(uVZdIEBcGWk?Am*;&Z*F>usHRkvBd0*jQpX1?*)E^vjYY= zYkft|Zv{4_FmNj5&HkCEYsu$5J_r{A>k~PO_(1dJ=7$%DC%FOgM1$sU>8Zo<+Fu~p z*Q=UeemyYo&W}*W8z@1xM?C8KxauaW<-h`Pe60YT8g1atirF9wY4CVa97`{%{wv=; z+1u@n&6OWdOYmOgoto`9nd0RuKd&>1RD4LX^hNVT`OKcfM`ZyXMh-4fLu=X}QIxi>8fhws)z>zwT2V&}Dp=ov zjwy#+!j2DK(OvKeb9YW=MOyD` zHn>&8`!8^(u#|n@{FCd6DQuAQf@-&t->L#BaUzQUxV@5`cr*+w1yMhf)*=x zoV}dHfw3C!V@7Bp$F7vZWsJ)HjZfH!C*S(Kb*aS}>Lp!YXOK!kJ0i_y`faDq(0{xD z2nKPgCy!f>tS;~fHvM>m#5OGT3{UYbx{Fk>IQ7+)$Du0qsu}JQUG(tfXy{piOu5-Z zkz?7d-zLm-Kx4tYk?-DXIZ15C5PGD`+vJw90ZrWZxLXgDeIEVWy`@oi_L45W?ta$< zBh=UUHB$jU0?W}v{okg+(3ZlKg*x%X zHC`?fE9u5v?B)a`JCmh5_IysX;t>_gig{wKP81wYO9{SBx$nUv9T}2xaDa9k!ka?4 z&DbUi4gv@;bRiJWVL>8jdxUYU;8Pfn1~cVN`R_?Xi*sJGfqsoCbiK(uHypUK1>z!A zzcac|az+3kG3G|YIh~iHUwuMQs#il7Q@XDR(`(c~9Ou#QwU7A)c>#D{mj$BI^UsQB z7xL;e-g|u2fw^<$3=5!k}S?Xg7AhdpF^JUM^F zOR=@eQ?P3G^fD@hAATp$c>}y|;(kFo=|N_TZQM!K*wUvt|5;ABU))UOa{#8T8=p!D_~U8%ME>V2Irm^m$HnxvYMmNC$e1*MOmbXBYvJt*bW`1 zZl%R~Z_QFf%3Y7re)wrsQgiulGeY6N<00;VjPvB;e+PpC|KLiUb1}b z`5L?bC0VV^IW?ALoblV0#V?F57jW(KJ=;y%-;bb&k6> z!0N^Gqu>83e#7WZ`$k6l-^*%8ft&a@uz!c;G_D;OsdUPuZW_44LXBQ__Q(5^QL|z` zWp=nMwRRArI5a*G1PRzqnKU?jGy=MOA_knp2fEImd2qC8-M1(B+qU9O?5FO@g~`q@ ziUEPRl!rvLu5hd`=J|ojU?xJ=48cAEcC|Hf09TKV^Gf?R((Vw{{i)&#Swe1@dF_ z8bF7y|FPH!Ep$bKrghtD#m02`dBkvBzdsx(W*XooPL!RJ!_^jDZTs&a*I7Gb9M)hs z+C!(PgGdydXSb=V;dd#1YTSeYb~XavtesuF`G()j_UAli_Q-qbh5glUxc|&{6hQ3r ziu39m5)Z6t@7`?stYxs<7WY~pqtLi#@IPZcv(q0}=kfO9b4hyKeyJRERpi3jWuj3Nkcbl$TzOQTl|+a_wH&*%phVtk^V1ad--#iLN77V8e-0e?YT^! zf-HP+q75i=@h@uR7aS)VE_}KBaxahk+X!O%uYwB^P94otejug)@7Z3Smk0BMn*B6v zpMV354hSh?c~e8_r?@Ejo{6}9f-5|!J>mlv-R*u)`J4n;0UmEd++l+HQ;B>mZ~mNFY%`>JuCWKvbnPFLrOAxRE)+Xt}yt4YA&DG`lK z`7y57u`AO?yx_);#vn&)v1!MO&1;9o=l0aOqYy5ZZ z1?$>YqV;%#ds``o!_hVxyXpE4JEWHC@kz#hhZ=;tt3%0+z@_d?|A=NJD&79wGWo%P z(%wYTgS3r(0p#bZS{*x`8XR_0`thirMoGNqs4H`L`5)xT!q;>7s9dL4xF;iAC0TT1 zfP|s#-gv}OAEIj?N;S^BZe_oQ_h$_6gddG{ndaFJ z{3p4o5Z?DIu-fPK8|mU4dE{&pq&$9x}{~okfwzMlJ+Tjnua5nC<(Ge85&_ z`64SI==z}c8cueu@#f|oSyG^N3$Z*1>-~;V3o7|LKNe0MKe6>STsPbFOuZRb!R}zz zcFz@_i*lB(^B|J6rrT@Ya8V-vq)2Z8opKVK%SxV@4qOB$aU7e~1|>Mrq)Wa2dn^4Y zm8tFab)!=tG_x3jYhEmbe+(G`QT}dF#Ib_W=%M`wM5y2}$XWzOR+r=3xSscSDy1VS zDMimsiD~n%qigf;X+yE6@gt_V4=(f55_A4Rmnnmf8;gu<3acYF1ky+6-Zngk4|cA2 zgyChD{@&=f@4)6atG(O8+w0Nk_yQW>Y0+t2cJu`UT%6RxzSLN`UK+No{D8}$MLe%5Z7xd$z7+H zq_va|EGiLjYcUH9xi5511H5|1&kfa(>s0t#1^eMm5GKyaD+bCw4xax^0m9a%1R|Dx zEd1+sv_CkVrIy+^Txtd5L(1wNn=$)c>tu4w8r|#J3dQK0&F{aK#t1+sat2(mH(;1Q z=zOg*e?=Bf-e6@4YPMFKD-$^Q3b89UL9_R&L9YmcuLzdv53gQJm9)qglViHSw&l#z+UO)(6kwwhneyUv$=c z4&H zwY{VMxu?@_;7*V#@Hh=vZCQaooPCl(v||t{?w>40S2k&S{SArw1YqczbymV#lKXp8 zO;TC^Am-wvjQs0`V5sUl1pWa6(N9_h5cXaCl0X|bH7VOGLpBu|aOXcb^mQZ7+-+O+ zWwZi4gZ&cX_w_olH|F?d*Hb|E#Gy?T0);5%b}ajZwBJS>ncnpO_Q~0L=a0qLSy%}6 zKkc>Y?byWMqTL(ATr`x@r>T2un1M1cX%EEnEFjYmBdkmmS(^Cx>j7!31XiitqVsOB znK0ILnxm(VD?VS(^6KJ7L{&UuPOlF8B2Xc6>l@8>FfMw~Uvb2lCe{AqC!Ooh5t5rw z?6#CBZdJhUx)B7p}ImJCvuH2<%YgQ3N zo3;Os4HJxYYtnS|nqq`9$%vK@+m|f!u`nE@_!nRDk6{iE<4Lln_nH_&dUJLNe^ zL;DS3P(xnN@w+W))Rb{=^V2_Wgn*P`Oc{ynf1NPseSdg(lk&Cq$u16Z{C6B}4U>3=a)uaH0tg_D4~#r!ql5;4_VtN_)sb_o6B0(t)Ip)X7Ov6~Dq6e|Fw zpYm&PP(C)k9UHm7pwz`QsMse}gOYyTPDS!=-)-zNft-h!2S@euiZm86!15SCeRqgi zAkLdX*>8Wb!fFq$uU!IE!FYLRwmBJy)UGoQI=ueX`R!K!#1H?To*UY^Ik_oELCR`bWUXv9zn_v)e@D^=;u0Ms9Y|P7MD&>*TsBrGq4f5OL)4i# za<~Qos`b*53M0X?HI$NQ_)#qByNegESw(?*Z%Redvh~ZU7g0#cDI!|kO^U&R=LX*= zTG+}T_B%aW@NOrL+x2`Bh@`rX5OjKM>X*evOD7%q`z6eZQ`95xMZO+mvc%^?7s2=+ z!->Ust<%q(IyNmoj7YCjk~I&ry+cA|ZVL@7r9>(`^UeL`qbxT7^y2LSD}RQfMNO`c z#C=y1FC}eK%I}%m?JBhm3KObP#m0}uF*F}I1WFWN=XPH!e-FF!W+ep-7Dv!#0PjVC zT><#uJsSup`*_0S$2BCogeM{au9gl!9Zx)o1ml%hpa0lQN{4Ix+Vz0K0`Mz6?3avC z>ly^H6DRA1-NqUA$~IB@9Y~D1zN!^nS|QBkxz*K$P5IuM>yqotF(dxh8LY3k$P~GC zJNQa~_+Jv;ALsBCMv{41_o~bJr1kzKu<+UsY#7$3PuDaIX$ljg1TP?&c8dun`b6f+fPmOfc3*voorAuD8!)ALz z9zmE=$M(#ucTl0&f)2S$r7i%;8K-AK7e{pAhX6C}_7JKR!Q>=*E zI>zmtr1{dOf&z64lKZJ(FOABJ;)6a+3FP~I1>%;DVV~|x*b@YHBXHT8xY8#0=_2|4#`FMq=gy>8??~k+8Sri<=(^<)lp~ z(x7CwP&6=LW~EkW(uA;#Ip)W4GFVCdNL+Q3??o6xP~>Ize#cgUbMRg&d~VEgZ>@8D zV(L#8Bhc`&8jhMSpM1rQNcvVm<^fNn(c$ZFC-Z^v6>d@A48ne63-!K&@ezQI0NjcM zIm4fR4GVL52{XdHDj*+Mi0hq&PoJWMUGxj7HFZVAh2mzd*24onvm)(=CwVs;vtHb! z8(Nivy(f5J`3QNSY_l+kQvB7(G}iQ}XWJw{Rh!dbV;UeCP(eyS67`9(AOJmjvm&>$ zlAFXdqog{#Zg&OlxK}*-bZC9|lgrsqFXM(dbfl$&EaITOcg2A1wRA9|>s;nH7B-A;3h7$0;GOCM$ke znTned0rm$g0EK;N zDLIeIf4j~~dU|lsmuP;r(3G|gn)sT}*`Ie{1`H*kkBYZo{Da0SjiJl}@#nQ4HCTB1 z*ev>vS@?e*4;J6$pUL4-F`U>sXSMh%;F!^83$qK*nu*H!Spn#m2K?M`f4VidAc z964PLdw}u+G{J)IihQ#->zC5Cz&0Sm4}6}{*YPi3uh?S!^rTi>QJdLk4=~-7{QmA} z4usypjbj8c)}WgdJTLz({aR44rW)!b=(}?l55%NpA?+XY-4xE%MgFjYyi~y_UIw_H z5f;U*%QgQZ#-w8p;=|WtO{BNd)`}++rUNwaSKbG&Uq?iAq6rm37QfK3Hf8u1>9F_H zlYwaAtw6VV1n%)D_54O9xasz%W13G#^IPnDh4W)$^XK&(Ev6=yoqx86hIr{(YcPjqnS0dIglTK*jWdpr!eLkr;J&p5gns&Hb zc`F#s{4_L?{o>36d(v#65)*xDXY-LoHT7<3=vBza)TTL!wa1d^=By(Cz%w;b;g1@kCc95U9Rn zzI~K%GFGB(eMqj~a2Qcv3U@wx$6heU2BCF-EJyNxnruGA;cvtJbL!tlfVM=#lN{#) z4NK}~@~oVa?IvH+2w=%!tB7+bc0Ee*R-HnwFCL5!!f)jKj##!_aB*J>ygA}LGXF%f zm=XTk={<~2?$JeLLi3HD@^Wr|%hso?!~gVcGA7=`l1|sItgZ>L3yXP8Nc+#4J6iXJ zsWA!cj3s*FHLRd{5VSdvK@CW8t@5YDi$txkKc5|{c6a>2`X01E~3MgRA3_ws31vt+DENJiEr8BW+} zv%`C)s0`sD&%b}}b6{5l48Ko^Zh%fS(lKeqLBrgy2^mt-T+2y*@(<3}+>2{?xG5DM zl;?E3zf_IlZYqD41VTr(;C)6-CQ6#s=#KRpn;D{z{zg3BuOx4NyF|>LU?^S$VXN>- zdX?KJMwNO6QJuj&m!|{tYVcod>XJWAmk%Qd<1UH3e z3yX0ru`B%}3b)_}wFbrGL}5hZ($ThKeV%>Ausf!PTlF-bto&kBN>u&Fn+@jK8Q`Bi zh>v(+Z<>M%m*Z3Mea=a?vKn_$s@RqKUf<~$?;eKRnQ9HnZ0sFa!>-JBuk4G?m90Ps zmS#h0s9c7=;?ab+m&LOS*PfgHK)>ZZrKfM|tgJ*70C&1t$SWOFxaPeaQZiW4^Ka8M zTEJtc2DL{C(F|^j5%Iss5ZM?>WSS1XfMRl7_RwT)BF8rWuaxl8t_;SO<7o*N-Q3X} zfEytr(d6EQpers`Lna?0+fgJ!GyPDmUu?q7{{@3EzvX(I)H{W9kwO+fW++hAtP7$`Y@-OyKm|JCJij8#Te4JE&w3oa+S1`XXN4^!2|7Wsq?~-;?vr=a7N|`_E-FE zEPE&={pK8g?mQ4v2GXJ{W&?+FOUA$Vj_rBh=H_%mg{v8p6!%D*2z3>!G*rJqni7A8z;wiCOhVZt;3!|9xfM-^RWFyi{)#7W_zr{q67dT1+DxI{BvNk%ok zo@Dd!DU`@dQZ}=Lr0kY3d;f{0EX&*+^g&uWFP%PCZJ1PlQ@G**JQmp`#Wh3Tu>ZwN zsXigqr9eOo7g?vBcP8B|Z22-m{hIlvsc-6xW4$@6{Fs z=eX>H3uwH*eUQjtLAm1cgY83?^BG#+@(*~RibD}UXfAp4(F4PvNukrBruIW22l-~v zd>6Bg56qE?YpbrcT%KPP%7Xz%WWjA;2O_ zzy0!a)Wkby1BaVnMdzVNz(TRWN9GO2E%WjB_8W|TxL|G(fjY<^1qm;4#Ci9(1a7}F z$qz(1QUUpOICJ_7R52-pMh6<93VAyj89U9(pc}4&nT?H~c#cy@ECDB_5||$G_#1L` z`{>zqRgXjx2+a!sQehS<8!*+oyt-=ESJU)=Xv_l{H-662Zj_NQfAV`Kmg?J*xPjXB z6ga{9RaE#UMt=Upy$J%3zq4<&r))&V=vd268jsvXDONCeRcq6{4k%0v>&7}vVvY8G zrvWEdqe^V9rEqzoiG%Z|1Rx}OsCtJL^u5-b8f}V4!P8EjDSpd-3-D_i`C4;P4pR7p zt4KrKxV^f#xB5dO!e>_%~x1xshps8f^f6`A1 zTP$J76FV&k@?A=>+lptg7~$S$;Mrzq?RJ+=nzCZ3rZwAtv>S7GQWA2m?tIcvk>WT_{TrDw+JD;PtZ$m!g7EYLiyx-oe z=3)h5oijW@*_^?OEaK!N=h~;WDdL9rviT=0aeU0oy-&fDO_Ol-!vOWFDpK-4KFHR6 z#Z;%K5Gn9ablk@?hF=p6Y7>TYFT~+}PG80Xu(hE6>)zt_H-B~&Q+&dPbeu=0McUr} z$ukJY2TB!Y+&+Ngh*a8R=j(J!rBt=cGIHTVi}xyHn9Iy#=yQj4-)8NxnMl?pP*%%| zCnc?1o9QvN`z4`zQ^r)`jb>JMRUX5=4y=zpl*Uq|TGZ17gu7oSa4_ql=LyWZB&{%i zV0|rDaygdKrEc*zDj6o8^W_nDyQ$uDBgKFd0SXY#{ZTDJ6M9loK!q~=z7T=Hx?dzh zm_#@H2s=}R>?8pu?3l+Ru5X&tVo<_0$cK>>7y$n|x=*F`Dr3SzeP0ZZ z(@N7Pw6(s}73u7Bz4l9;AC5kvUueD~vDG4!vZ5c9r^O)KN zAn0{r2(q$0=p2>DdGg_mOv-IT13Ev9cFsJx*$*fFb%#aw)XnVQbO#S=zy~*MhwY)jvcFvf|jPcZ%$FHf|o0N5lk7(0qZrGNHD?@@na2O-F zV>$x}+&H0tgn%LGbn4O&Iek@S^><|WIsoyx?#{11JnqKlIOm{_w_bl+G$A9IrUsiWgU3vh@d+TIWa}S(L+8$>>$^$Frv*N4q^1ZC^ zTY}4;1P?jawj$Z$KYzu&lub|2mcQ*gAz%sf5FWbJik5d^cI>>!ocPMp->1T>6PXZWh<7+ z%lLTajSwXwY5XvA+tCL28YY&^W7y~kWI-vjbHMYf(i zQ{4-7L=Wk$pbzGoefNMPmn2F+7QS6!lAID!LXO=$+YD6Z#G#1{Aid<-D_a9`xXMx4QI$7Q$r6eMcVaGxt!(Uv8QJcVl(dBX#_m%**6G=*M4z9ptE3%c=4X~fj?BfrFRI7fQ zXC2rX^LVjAySbJh!Ogh|z`L{ky^lH73F*n(7a4ot@Gq$z?+T_d!*d!u0<6YO$dawkN;1(go^0Fo2ffdmob*hx#)5N$(+N_T9 zKm`A&y^7Y+Mr|QqKG?I>KlaGw^6!7jCLx>aKWTfTMZ36kpq6p9jgGvsELP!AB#BF!)?Z6 ziHwYt!-vz0%dgb$6zDmHY>2`K`Y2sLjrfoDlSGkoVWq18JP^@X@DqX4?%`N@)bL*)5)V`W5u-@Ws6>w8h~w@iDAk~=Y&Dj+al}|F=3<~6 zf5izR$#$rhj`sE5YMGAnZt0Qg$#72BOt&JVl(LXYk@G&`kEZussaRJS3pms3_^lua zk}O7D5EdQN=0z1Vsu`En&P$sVZ&Z~ zuik`VN|eO&Db7)6YtB{?Ouh_2NaXCku*)j)jev!p7~a3(Z>g5I~{f4I?|d7 zWt>u6pM}H+J{Mc+8R=B~J%i?J(msew+X@XuD>f-qNv@B;`t{?upw5a#2Q_3xRbIo3 zL&y+sPi#q++PvA&MX2dwTX%6o>s$A%O-J@s&I+TIKDcwY-Si#JpyMnyE+d;ImUVjf z7oV~-0eXpPrfEzl}FPi=k8FEdXH|ARpw5J_+V_9vTtP#b35y z-F`r>nXm_b8S!_)(Z4xgP0`q3MV8oLJ%FFZNS#<$E#k3D%SIzeG&J5gk%ZZ4tbBcc z{S3a+vP(i!LVda6u=R2hX;_g`RLg5w6VX;eBB2!JyhFMNhj+7P^L>PcTAzebQG`=E zIGl~XzW5!1sf_+_>yi_%0bITNZ4#FlEbvKZsM~aq;m+o@z*@iM(bJdOdH0yZ>(|HW z{O{iqMm~`4u4hZ^5zxr>g<)URP_!;*&2~`4QPBNIG!5y~4Y@KHkOxO0^{TyqSZ&ri zh+m`#w!eUO*k2Nl6L4vpAP&X!U^Wf}(}Kz%>@{ge!}^~(-@!m_;;lID43G(S zmMc7-3+4RkO_d4+Gx5f#R-6^Sgg?BWo+#}z_!hmUY6y}~Bb|gE?`~)Ncj*lF zxm~F{8QZkI#ynizt0&GOr3J(}{8!NjeJFxG+nTDl{j&V%&?{!Y}a4 z-k=?%dL%~3X|3!Ujizd0W49PgiW@dx&<&#sMhU;gwznSSmAL~oaagI^4iJ_vZf^ZZ zsR0fNiWz>Db3GTbD&9y4I5pbR11{945~N_e8*j5t?oZva8-QS^LzL=H(f5#6=K}I2 ztzfJQ5;F7qR&6kT+_XISl_s1wWe`W!56|(zm_*%I@9z`)h5E=Nkn#DVYOdSj>~#@xg1do>VbZ3I&YPiX=G zsF3stE0q~1#!aADQwS@(`{X?%sFXa~U?8wU)0t)5N)?%+FT3YI9uz<^C?oak4+>pK zta-`Z!I7VJ6sgs_`A%m877UL*aw2|-BgADd8Ie@6qVTI&um?2X=y#4@YlUDj zNdUPKY@qT<86Qy2H?f){XVWtPDqj4Mk2STiQn>SRX5NzXpVV`uOR2Mv(A9vXiL9gKK&|P}GAM=|0^Aas_|a1xvpUdfwD!d|-FEB;lV|Fpu7>qR}qU$cKyILbUUp>{m5#j-_t zX!@`9!3)7e?1)FmT>xHZZ1KO560#`|moyt<&P5o}n_P8n=y)8xj+z&~H6iw$M+fzA zd(4!_%^U~?;a1v`KQX)tRl2PipwR<5lp}Rh*S7BtkZ4Hwp`uPKg^p9sdqtj zL(-LK9GOj7v+8(m3c*Kv`eXHq{Pw%}K6nY2SLxk3=<2rn;toGa&HB?Xqy0yveNuMd z`0^}zC`rQ*sAA`mNlEUT`BV8wF?3=$Ofh2<1@J--CF9(bjP4w8-39tdO=lK6;Zhtr zc+$o-)Nbzq&C^Or!x( z8A*)EpHX`0UDyRat$#0i{`QqD`Zv;4ix4$&O_J3OxABRpnF~06X=-K{Wc;)(bbR^K zzl}s1h+jIw9~_r}u_}l4+IBC)hNh;9V~$%S)6F;~iUV=&{M4g>9+@bf!G?uf*(^w0 zhGN=>#};(&jw>mE;1q$5z-7^^DCpeZ+tMPPDy!4&pMTmERlA_#U~|M#0S#tZPD$qz z6BrvLt@%(Y1&05;su^M?G7)l&p|KS?6w&Etwkz7{N^7Ti>3scv6`hGc6aF8^UBx#_ zCCa&!tCF))WGh1CsN99g8Oa>EXH#TuIYx+8lB-C`S(|(A$z6`wm}_E(W7Ce`exJYL z^LTtd@AvC?uC}?z!xkmbYed%L7^70p18+^m_q(UM#nKW%-OT>n+Bb+l zSqH8|`QAur+(M-);uX>tGc|kis&JCVLCiFTcIM*wLY%(W#b3b1A(PkVD65)K756nZ zU!1QDD_T(#ojel4xaZ=|lnA2wdcIZqO_-UrL~QZFOjIuJ=a4CWL+<4QMr#Lb=G>r} za}UK&8?CNGz1K^f!ekRokg5?WhAa*EQLe@kU$}BRBle zl~PIZkT17oV7f;I@M%24qOn&T#%ZhjPw0jl$xH3&1x5sALWow&=#7V%$|iVNEQO5p z4LqBiwQ&839J^6njLC@)M&JB)*hQr1dF<4ckKyN~1foa7T)D+A&o$9&94Y+h*=~x@ z%Hks#N{-F*wd0&ON;QE|2u(KiE8yby>4YE5&N$D|BXF_KlYo55o*(+2bx2|I4LB~^ z?5FKhc*p7S1e)v6Uy3V~x&nX&>BuW0ARwK5fJL9vPRPjbRbE|Ra*&*Ts-Ylh8sI^X zr9a8Sjk^6c^+DjZt=6CSeiMAPb}$oR6K{YWK2Q-qOU-;B4YhktnZHXPgXvpBeN^)^5%}xrU_rdc%d33*q;Y20HZM&X0bm zJO(=|)FlC&4kyHGrYO&qQ%GkcSR^c`9UIE@a&8g&rXT?Mm70nBFOpIC4Ila78t!Lrq{E!Q#_v*6R__?`ZP-ZeUz8`VfE{dGtsw#QMg;-0?0H%LxEK6Nt`L@w4?%v%Y=A~fpKd# zF@^&oS2_Jc#&&4l{aSvq-Yq({;}!Vx^8NV;pkgF#kiD8YREuKq*yTFv_#>$uRW=pU zjs6ku^j~5Z2{|^MN+M$%cg{<&9V`Gw60eyyf>9JT0q{M?J44f}8|zzX2BOWQU#jjZ zB|5_0pjSU-kG*~F#e#VC+6^e^FkE`V45_yi3TkvcnDI|#e4*6e*=pr$npT26OV;; zGS?{NSCyn1Zh!e;`expBc6$a~E;o63zh|YEaX{ixwL5FU_#t}BhAE>7bSv29=Dj6t z#O$Y|?9BgL2aqJR{Z~TWnY*W5sv;Rr4=TSMHuwnM;ST5jsN-2%ddJWIu+8{Bk$6S^ z5_Y#~rQQcf)|MCnZ{8HVUtRBU*uDLrdr@Skvl<@YL9;w=DwlVJ#;CqnPrzc2NtsoP zH=GQacFI{CS`dc6i8?w`Z2B3h_r=R=Z7eD8Umwa?I^W0M(72{;AX9NroIOx$J-avr z3D}0M39HmE%>&R&Mc|d$V{B3QMxV$WQPtcb`ZMSJ7MmfF18xNsRAHPfp3b*p7&*Ro zMN}7QMXfURQxwV$TNL>GLRc?+i3~Smjo99t80Ffn=MMKZ?9VnWTd&dYhy66ayIFY) z+=%5P4WG-Q<=}k^1N;BAtI|${GL#rSkb4uTFedDTJp78JN;b}Xy?!$ z_8rsf9Kt?ghHm#EMGY=|eHL8EIYn*925V#!w_+K(KezLZrq>}Svl%M|e_ z+2yZ3ak4Z&d?KjQzauYB0|ef0?|ty<4moc5Tf|7N(zpN9SdDl8@N!qF90VGQ8|yzK zd5hPFE@AOHJZ|{*q-aV$)O3-j2}|31_uf75-w$4bQpzvzCbi4iMtC^7Cn=>Gy!^#G z4^aK8RPL=auT;#@St{gdl%cUWXl^4!VG*@5_VMXn?=@RJ$zl=xNH4wcovlDccc#*8 zb=#*nMKzMh(w=y?!DqN7uR^Wp8S7;63ZEIv+S6(ZO{IQ8DV^D}jwueTTtE$N;LufxV^OO+#+psO~ocX-5I93%G6mctSgcFPGgxBzwLYI5NM1w_~nX{A%- zQ~=hgA4ezp@&>B)N8%dXPMo`!EA+VX8YxrY?LyLm5k|R7Q;J&c%a8+He}}Y*d+7ot z3jm=ZNO5QRf+MK_3&U9h!ZqQu;(&A7wl}{Fe^n91bm|caHnK^A4akvWjmIw- zR>sehuo(GwESIH_SFPuRA`b^K7W5VJZ6cUi4e!X-WiK9hBCHFF|Gk=*bQOK?{Dr{p#W(XqZOk*8qrS>u z=a;5ZQ9DH_5r&de032c*a?-p7T6f`b9elxdonok5a6mu#RJd4)vgSlZ`Td=nHyxP6 z*_#KuQqrJ9kiH}ES)RHw@yeYEJ7g!A+;4LN%5mv9^=Z?Qv+d7V7Q-ABzB_zFrRR$XL;n*&xnB?%ty0QwqX8=6`=H97Add5 zgEhoA+cZXOo_Rr4E#}}EZGF>C2PRo{4Zu~+J1M_6 z+B|+8Jhpp248{tsGq3Y>pI)@V>; zn&kyfS7nZdJPeDd1v%9~SaTIr=2<`o!O@uM!(F0RBCM#=>0R=5Nm;rzvuj5^YidNF zR``BOU+00>{Eb!e!mcB5>#Gp68Od{|L5Z^aqVUT<8SabV_M>tJuJE)WP7dbDL1ONc zVrhMivCHag8PMlW$Tz(z4(CqBszunvuvkSD?%TVrM2XFYhbQI!`?&Yd(^WH7>d)!< z{nN-d#(qJd$V1mT9cFja#ZgNe&LIl$?+Nu#BM8v!;>SfU5iv=uhBI!-aZ>>^(A&U$ zHh&XKymV0>zYo?0R)&CSuY~j#cxv) zI9T@!Jw=tz?c=Szwvt53?o_uPjImq+t2~L48}ewuEXCV%0ZgRBE|^l}vZI2)d7pXt z9%rO;7gnwd%f3oGaOd1+fcc5Zrpv-tC#><20gn{Or+$3Vv9rF|j1_?Aeg#6WO!RUd z>+nUWHMda35L=2@S%G)_nl!mh|FWTrHisA%6RK}J9SMXYVkR`s?l1D*oumUChlgSr z87&u&&8+F6UA5d9`kmOKK4Fxd^77`nwmOcJN2~vKy6J}4bbl4Q!#8;XVdJMp1;!H= zlbbX&P^%=tQ4^8*7-?N+G<}NRJyp>=+Yxm8r}NQ1cdRf-kaajIMtE*W9u%mj1bZCV58=2k zE_ORNGYs`vC#>wgbSV_ZlOPO&UMj~%5e<1LsXu|*=|qfOymXIPRHu7kQn?H?J*Fo6 zmF2{h2I}8NlEo4;4THSQ}dFv3UkI?<)NqdlxK@_#9ti2PrKLi%2 zaO*zEQiWN>(O=fO{uF#=(YIAyJrwNVslH3hQFi<*pKE7?MU1TBV%)U$E=R=V#n_m; z$i7*Vo}QqVOJ&#Mqk0TY7cUxfzg6OyLa*}UQc+A{e2C*w$h}KiFY)>QB#VSZ0wrgG z;>i+3J!SO(9#C%Qsi1E0A@JdR1W^P17T2A|*;3Fq=H1s52*~M|OZ(}ydlZ}ZUZn!` z5F5&xsid-4*m*Dz*lieL8WJg{6>kIlYlr4|@DMluPQzK2;5~`H8=nWtH&5}3OYWSj zXc4BFp+z&`D-p&{s;a*Z=rnB`IFBnk*MjD0FDg4@aQrdWGAYjj9$1Xu#pNiawx%+) z72r+Tv>&Yk$i)z9x(hlQ#QY&iLNk$Yy8Sn(l3m!Q(sqC6`s=g>beQXeXvB+Hbrdoc zyhm8{^D5Oj=PN^d=DrcE*LJDq&uc=fKJI(oYW`r{fJ=>s2MR9uZlp^l4#0C(w0qF<3R$nCK;ldd{ zlP=_V)gQ@d$EF&IRls|+6<}&70V>5YYmGBL32tu#`!&IjD+D-&05g~7bGQ$KOJfDc zz8}HR6%D6Wr-G<6Uwokb@(9NkYE%+;wik0!TSQdQ#MhSg8)WcVvb-kZgMR+EvtTx1 z=rU{5g=y$Us(m=sX>%UkT1^6TY(_HB6u~&HRp5ma;R4gfg9}kWj_h{A;>E+bznO;% z#LOz0{rRc%?ug%?91W~E6kU59#om^aM_;y)&mEXhS=KEZn{TaP?0=ZA`9y2flXk#B zWqmjV&|1>$Z?#XbEEF{V#h&B~BzQm0J!{M5PC!fX(0X_6UZ^IDa#t}F;4Zx5N;GQ` z-sXCBVR*&*N}_rZ$^}e|GWszC51zdRwJF`z9yDVT=^BEni%HT(76@%nv`2lO>kn=a z$tBk=3=Xx|XfnSCEK?Q*b+x^=j#{i?E|>c6NQhvHwRZ`)%&WcK{l0~<6CZL_ zBDeE#$JH3kt2Tpk;HpLYj%ui78J$s@f|>wxB; zV!n?%v@;e4kNmEKwod3BDn)&KN^wls}WE98?}`ogG~W7%*AbR-Xt7jhfh z#SZhfOyVPYs*AqSg?BQvajV2uHQmw_{XMbau*^&<$fJ#GM&Gowk*KWJdT3@}`F$qY zcOShO9^A252-M?~mBO|gXFI1FPtUyP5C={U zr9)lL_vbJvs)8-94qU%-fy3#QN2&nm3n$?cc0y&!gBLDfXy(T+|FG1R`FXi%WAxnH z-aknn@`?cS^&nt4KM}uRBU7;Fgr;uyJwXAIKY9HzOt^lVi;7`_E{&aB;uZgUdwm>}*NAV4eKUxa}N8$*BzCE}DS3MX>>eMm>eeYEy}#QXlt zX#Y-;I-odap3l4-13llvCJ6FP44l!i>s?B~Xxth_72%pV(}+y!p$8nGsyIz>sXE`2 zsbL=P%ssO1GLXRL!nVO7BZ;|V{eENNehua4>#T#1Y}!^B29^U%9z1yvkl#LhMGTZa z&rz0ARdx~F6zstom)bLkc4{6DbXh85}FxVEdkLi z$&Z_E!$W6Nxa})i>;>^%qF}fFbfT6#5720~gTxR{yR|%7m?!hX+T4Sf1Kb1Lvzc>& zfKX6;q)Bgq!#E9#{s2!dhkM7NyedKEh~fb~Y;y2Jx5a?)h*+zb_a6hV*c)x`;Q1#w z3xJ56(Thc9qEygNA%C!{`z+OlzSo;v0G3r3-5A8zt)@26_A}r>sl1)8n1%x_X+x?CwjqDxeM_(>kwQ?t zckV}7=1c^~J^588R}Yp}4M4jApk6l1qYv;FWwW93p6V})%ixtad8WyhYqet~1Gze~ z-tyxnHlIp#r#^oN1g}D_%%=DS%RY)@-3r~NPw+$kWIO+!f&R0I?>bH;3d468s({1B zXr@3jzvZZlCd}va-txmQ#mS?*+%=J;8yQy+ODkHXNTM4f38%IZ)hKKzkGPv^6r~^`$$~7=Cv38mE@XnbOb-2psK<3!<4&L|O{_KdwXGc%4-3eqSPFI>e zbKSrNYy76<*wnj%8JhrK%_RWj$LnccB>%+M*IQ(rY37Dw&lvoZNQ}~|Fkps(^Ouy- zc0*+%G#^z<8yYAdf?f6s@t#^S=KAKrhoZQ5GEN}DC%iOuZX*XDXp}u@u0xsYxW_ouBxwM}`0H_=wyA| zE8)_i>OKbmw$;eho9to8`su9p#>P@i{m>v!HYrMx`by5{s2fgqV%IN2u``G2{;S#} z7(C_JHL#g4!TVKzH-;cqyTWYUbYJYD51;o&OW{neeF^8u{&=>3MOrA~?FdpJV zSYd`@e7yIF=r>t}q62JMgr{OifCEZ+OqL@U0qnPCM~vzAVAWSinbTGsoAj%8aAv*o zuWD3^SdZJGJp`)nD#ZmjSqj)I^?gr($f>AJ$#J))lJ(;mu}!}FFX04CDff;uyZT$@ z44yzaWcc(;REg2B-keS7+|){0hao1Ky6u~P!(lZL$EGcIp3i^I>#mUn%_C6l5a^P! z>!#Rsp#cEt6KG$x)xQV)s9bQ9Udl5Q!j2ysPa78L&HdLqdHuyUL@dr}NJnn_or0#u z)ho3h3FLS-gf8mRizhfvtzM0;@IyPk-^a6h9oP}I+0o=6~N{Rb6BX3y4 z5iV4cW^ZW|en}IQMT+TnetP+OC=>YD9ENf2e>0Cg{8J!oHPOl6dW}=^aM*Unss)1+rbRF+Sba7% zS^dsY{r8^f?G9m8-(u)oUlX_hU>wvBfuHDZcJ$scFzxx_sGe>&>$_MnNuJCsS&yi* z?S#{Ys<=ZKzX4zFL(&!$TFy;eGq<}lHtC1pKHZ{AsJ|Suh|q}G&Hj5`YQ6kg>-TLH z@Kyi8(;^duC=6+%3mPF4l)6`@ir!|39??Zz7I ztV%vhgYW=#7VO2Wemv>Gq}*g@;q;+w3>`V;kYxK;6FPKtq`3YYe^ONz(}&E_>Aq4d zi=*$Z4@FD3K~IDg#yC21E&p50#uK=4t=!6S^zF}6jtF|OY2C#@@z}oC8anXk#M0LC zd+<`)JID$k59QE^GI&PGf^LN=Mk)-?G zAp#plve>m9P|9#iZEcyjfDFB2Y_A!F^9a*j3Pm!I-(LKYNI0 A4*&oF literal 0 HcmV?d00001 diff --git a/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/foreground.png b/Drawing/ArkTSDrawing/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 zcmeHuS6EX)+pUO#NL3(IK|}&d7YKwF5CM@UBE5tjTBw4Q5KwvxB2pw25vBJIB27p@ zOaSQt5eZd#CxmkF|4+F-=Q)?(#XNgvmzlk1)~tDFz3+~Fs;5bRo%8yoOPA=i9zS|^ z=@P~5f9V?4rAwDs!Yjfq4p(5Rx~i8hRVUG&*j~LT%Q>2AIqB+Nx_^yhg70E+c&i!%2~zqE0}mxIX= zz1$7|sWj&3yL#7D|4uLjQqV+x(Rz4WC{A9|^m@1A6`BNi38Cf3B^aJyqxF{TjS&2q=3$BC zB1Fu04C;%o9V_Yg;Ed;xpmge>%b<|5q52W_pTd9o;Qty2mQ+-Peu)^(K)RH^d5byH z>AGB-I7$|~9l)J0H_LPDsUUL#brIHpjO1>dJ9@_5&W zLV)s!AVn7*Hy{o<1zLA_Ky-TWzJ_^1=W=Gfyc#1ssqeY_2ww>;ANX%JT)(9uNHOtU zeqU2_{Wu6pLvCMBLgy+dx=13ZG-+cMrBf;#8KezD^}_F2x>_Nob0^iXEv>aML;8RQ@@sN(#bq~VsOa>) zW9RDe#_!zLkj)PyQ<05AjbPk5yJ^|B6q=sMX2L0JE|(P%=v2$6+4QL)cu$c*yt`EC z?)p#@xE12zK?QF2u^(xb0>KieYWS%DH`?=eOiFd!6)WRmCo6Joq6}7e=Nl_;oNJ{1 zu&szm^c0s*wAxfHSlk^+hb)aB<&B?9+_YvxC1LEy$(dDJ8J)d!>rwz?q zGTpJ5&uVwR#t4%B`T{*~RAd_Unnf&`*9c^zbZfsVc;v*@=BHOCX7VbyhnS5G*Pik} z@`U!W&dq$A-&GCYAWg@rG3W6ANL_2a)|;&HJSig{zyfyO87W{;ej&@-)yx~eu|G6S zO)U5U?QD)!ey@XcxEKX?m{R4VZN!*V9gT}6_lv@YD^}}y4OM(*#%kMMBij<9x4*by zCkGRQ3vqoZ)HvQ4oY~=kh{c09u`@Lzqk8)3R+$+hcYuhqajQqgq8qWy8X_QMy@1+T z0&yU)D$XzuW+GZpAB%%|^3*{x!r`8nOWhu6>t(2mvERH# zwD(@F(UyHL)A@d0q#?|SOaIrK7`~^_KhtD69y6E{G70hSpvkOuvhEmR1(|2efAmi@Xw9*}m%vZb>kVqe?t6*aL%179k2-;CD<(T2&{-rQ;%g&4b= zStwf@&UH8&T6lBt>jybuLy}~>HTF7(kmQuR6(8*l&xSQq79o~y=t@1Z0aSiA&-LWp z0NQ{@*q$n1m#1Z}?sFj0=6jxX!@eHh_D<=qD}vOG`kCQ^44In=iDu`srXYt8{4c&) z7G9;S9(*ydG({X#u#N%3l}&Yaq*lzrY-E%htNRQTrjCrX1NMi~a!soU$|=0*dXokbDxSFnm6OHLV@%5(K&ZQB%e+ZFne-TrP|veCOrVj;0pG zdbMMl{Z%MBfVA6b>SKLi zXyRQXFc}Krl(owbvDh?Um&9l0#P)rbdiZxK)8=RY8XvSG1@0=@vGxtW|3E{`T&9Zk zC0==A6=d?8`t>?}z3d12SZ$YU4KZHQPf~|w zJD7n^6bjSS+&0Kq6nxhj*9}9qDZC~A`nzEz{<+9lxx)v#qaCsGWko<{ahFVncU-R|715> z33|Jp;8Iq?Z)NXe;h$K{z8#lRB#JC*XUod!9+#hCfkg#-^FD5Jq@>Dt!SzYr@q0(& z;I!1>qg(PU*HMX7>G-#T5V;IOw~4L@XQ&5le>B4Va!sx0P1pm1PMa!%L##WB{CukUKwQLR#mw_r{d1DneIIJT(j#O#-det^FD zbdwZ-8R%84+Bo+g5iyd(a6x;*5F0xuclibP*ff{7PNPESiBNJu^Q2?h!4}38?XKcb z1cb%?RlBpM10D9~`7(D`#uzQxY}K)shcU_}%#WJZ`~FU)C1j&^b5i=Wc7uJW8^-NB z(rs3^Wms@#S~)+us~_(~uocjV^vU^euJHB^upc~CY%6gqBXHR3{FJ}D^V0uB8xrdo z%j>^}CvVUV6jaGJf5i$e;gXng&>{)uK?nWhEUaVrv+x8njtfCz>cqP8uUTn1`McQ;CD+jm zGle#Cefq~0!!v@W2XnNsA~8j@Gaaj+fT)QzP<&gR$L=bGEJ8^z*tHxS)sZ=vZPV!4 zw*)4rK3To_7<;de8PvEPu4Q5d;D=g00$bPnaG|sEP6(kDsxwc2+y=l@=8Gy3^DW?X z$=3@Y|B6^8mUadWxX-6z(Oh@9|3%Nv*Hz=bA3)}AiK3MrA@eOvp)YSd(Nf|v;6dz-v zI5xYnKImXz)PTM}jxK=GJh_OrE2HXqKgh*KB!U~;4W!DpXN6A98^kNt%~i7+I+`g5 zW}~Qod0A;Lw*Q@m73+!Rfuir!WXqcTd5mXE^DWV3AUSVk>5EA&b6Svd&!yh*!z+6( zh^>CvoV~2?y`UJ#Jho<+PlUEw=Y?Hyd8C#Oj$c!5d!Du*w4OQ9G&OxhDmQ=)tzD()srM-?#=f>aw-$x}3Z?qLOIJ{gnZu zd`Y3Pu@-6CD7)$*a6189&`vfy%c7^DmCj90Mw>5FgU_yh15-*dsMPOLpn%G&Gbq@c z)NN;i4jF!g3-}@w-}i(YUbp4WY;xYi8`sa3ep2V_UXf_!7A{;Fhp25CGF=6{xLd&d z!Mvrklt74KI=0hsCRMYBXM0Z?v1sDfN=Y&W2dW!hUyqiiU@A}R-XCxbIudes32?<&DQ!Hr>qn`aYQ?jSq?4X|x(CCDAB;b=wcWVCH1CfwqU1di z!|LlwpE@R5*{9XlM;`OM$(VZBN$c{`%$ZT3S3aYJwVO}kw)@4_EyP4SXgXkd)Q z7PtWeexnE98(N{TMKt-aG+YpQs`a~e_Y;}upm;CRXlTWI->sMI?cj%D`$7K@mQ<-e z6c3=23v>}kQ!+Z{G2&KQ99s+el!e053~lQJc`8%`$;xt_RQ&16M-jjl$HK)VZG-0esPL)%m(*xgTxhvj>YKkE?dOv3G%g-W9;dgR&pG1FoW|wrm7v|b_Y-VU zKV&S7NcSkHSjm4nrPIy#Wvwp8(lbN>^x7o60ICQ5m?QwOuUY9q(q~<6`0+a7 z_`Zhdli4>YUiT%XT1&z74m|S7pZ;||I*2@$Zd5=|9{V~xFLGS|sAE`ZQ=toXwPUzSz%(Ar!@#M}4%I2r*Ca<9 ze?7@cjo0^QC6zocYls~PXjm{I-w|^|?Hpmvl_!6;&?vERiS^(A2e-)2qxQ#IfuJ_M zgEhyUo8K;fE}w8OE$6nq26w$M-YgMyeYnhwguXF-@5ca=0xYn%I)Rl=_lZaUn5tgl zq{GPw`_E=ilA8s)Jy=%ks{*^ijmr0SqHYg5D%zYfzlqy~#fp6GHI7wm_SN!mo*B=(4jED535Cy$0WQgpMk_!VjQ zhjwgVnse1csNUVP_rkF)3q*bk`=D| zRm=kyT3qxBA7a}d4b433h)JR1r_zBVy6)DMRyM?5%=@^}YMnjurETi?w8)8Y2lox+B2Mc9(WcW709kmg&QO^PydT;QZ_K7tmYO8aA8M?Y);N zSn^>S4^jpy!tF}ZAn_;hcCNY$eyakky`&>*Nh{Yf8H17GR#{9&%f^ps6IAlo`0a7| z-5WT~hwWze!uONxb4D$Was0UyM#f|Al`@rMWg(+oyWOL{(2>P6$`ht&d;q3uD6W+D zQQKN!nzWpx$Ya8CUKa3dgn={(ad!Lm7qDcu`SB#dKHvAM#GW}Z>EZmS6yG22dWcVi zef}3H%>*xQE6XidovM|h{PD;~31ijm0ia9g=-tnlFk!0PDn12luSSt7gWP{nbUK-G z_;*xp66cFpR2OkYg+1wGZF$3SCHuNOh~T{QxmE}&DI?a%s+Q&BqRkJ^37TgbKmAKA z-lXW9)FAv@J#Z=C2lSk4@W5q7S0~BpAs>m(p{^)b2MCFka=_0~yTtPvSKJEH%6&GW zKv;f{iTBYXA0^wmTAmssRXI(3556s-FYRfgXSs2F7D?)Muw3X(n96>Fe~#_y!;5dQ zdOQ?Kp<{m8r8ee4PPIETr3Sr=L{BgNp=Hl~>nSiYS!vY-rs7>zJE&K9>k00!&bs>P zD`CMT*(GNFuh#^fdZE?R`V};&3K^rq3z5UT^^KE~V+Yq@nxU<{+Ug^t(FEIk@f~5* zgnEN(6_Zcdmg55!i|T1Xn2NBcinnnFghvgYxT5oG<#r&$ky|k5SaFs(+Vr@W6W!wc zhr8=;xACvw0kVQ6m+uK@w0M_|3*`l1D1SbQ1B%k-HMIa!=~kGkCfuQ8^C^ZQ&7xn%?zUs@ zJv~f?$}gE-(aEgrt|vKx z;}Q@0S-w8jTszP4_+Em>MvCg@+IT%eNk_MIr)gA`;*lhuP%vm}{=>pIah-$r^3{Da zp;l8BZIY#N3v`sN%POMh>Q=e-o^BM2OK_7-ztamrbZ{m49XWXIgg1Gqa+C!XfX?gxVvl@Yc z?lm`jKKariU3($HdVP4LPtp4+4mV=+tw*rjI~_q%R6DfIW|6`<`}My)W_VK!6c^i* zIvi5RI=c%+#{fOc1^%pnKBkmGk{n2 zC<)woa7^dmGd|$2v77jNVg{v9cP;?R<5Hz&w)i1YTrbpNc6%p0{Khx8hi!J94klTx zC9LuDS+2u)()U%ug}~voR<>Cq}#OQfXF2)TCm)4nk4dkJK<{Ji<% zcP30SBMi`eN&Lves%5zi8b`z0j<83Tc~cBqc7F%;N9zZcNAe!JR3!n;@j1h z1lCS;R&Xw6EFbwYNCw_`r4_DiPb}ogRDYy^watxfz7Xy(zQ=RKaRMV#RY}`WgLrrF zVY?S>T2T_0_gmfEc1P>euBpQk$h-TAw(GijhS$+YK=Tg$zQ6?>D}F1vFkHMoukc{a zEy_ED8Uf0r#&yr0HH7|2|B-{vV9-6x6%+AEp3Hd}4fvb`f5|t#1a^r!L``xWv0pYp zK_sWYo?M7Ka~?Ti?_2#VSWzD;+NOTq_0`+=>-+<27aH>r;wtxc2mAJdsVzr(62hGT z)&mW2D1I;#ot)2O9iIWid6J}Na=-qm<@K(sk9ppYVwcO*IkP(P8P9ER7!PsMfNBn& za^K3zdtRPHN^c^l9lmBs5m>rjxgOV7Io|5p!v}X)j;Ax&u7K?;q%XjX_~o%@lPr_8 z*9Uqq$6~D2?gL>l^=mP&+~8z3yT!99Io|+z9QCQwYR2S? z(t}t86UG(B`86l3E&Y`O1p($K!sj_~Szh|(peg0h(+?ymZ?)sk6C*iUD89q@SVAIS z4_&>H|FtF3pZ<_*-;w|rv%!y93`xISUXVWp-T~!8n*#@16?Q}v>{P^~9I69_ z%n*6qXY%Yy!%fWkW5OADjlkEKjP5d$8>`wRrhp=ra6@iEL)prjHQ=o3@+N$WN7maZarII1Zz-rqUrBVRY znukG8!4Q$))$$`IcgoPA;izr~)m2%Wl&%&EHeRmOXUJsiSwge{CQ5;l6K*f{(Y$dK zr+Ms$jZr918R?`Rysv0Z+#6wT~L%t0b;+Q^{rT$Y_J%=|3^Wd zt6$*epNax{<>cRLLyEm2t&MjM8j1U)pYxwc-MDWDwN~$V|G#;ney}e?-YB~f0-n-M zw?G0{JBvufZPvKoY*5O85X8y3)1IFwLkMFr+5G1knQdDje8Y{BGoelP12*9EUN%KY zxk|^L1xHs)rNCp_@p0*`=#9{%r)_7IsX3T&x{b&X;mgnjUOMtgKs#ylC}%kSdtkjl z8!FE;zg-elNMzzYzDjZ0)^Ieq?HW_G)|Sg=4mBA1EloCGZTG(+tr)OPwRZ{J7OY5O z-u^rg$|QACu3Cq*Al+><3gPrW!35XM#YAriTfXw+!m_NkpMN$HY+wKfNr4L9PYUX6 zzlS_jplR*TFaNt8ide7lbsipOGdSE!+zhi$@D8y%FCwjQ$r9L{z>FOk9`c^?Kjmj` zMuYzJ3lU=4n6Q;tr@a$L?%8~af{fraE2*s=hn>Cp;YCQ#>re~C6xoCO7}(mj#Xh*k zba*^&l5yo%qnHQd!W*<-IXZ+8vnMb>c^cM={07F5{v1ulw!aVecf>C42Ir44Vz);s zT-%=b<-{YEZ*nD{U;m4uIi#wyf4G^ggB0@5%#DRIbN7hz&!Bb!hl?A6#(~|dZ%%iN z%o^Sc0oq?wn5_;1HQ*s%km5+`HK!Bq9^dL$ZL7!o2j@&piKs-)bi>dGD9BCC4PSIk zrGJIk0P-Fv?{`4G0`eU>*i`V_XN2xXw%*xTUlVENh%_|iZDkl5p@Y866#=@Xg{cbE zjZtS75AB(^xEogv2B)1x^m!0XZdCqOZ~=~2%7kuI!6E74!u_j2iau*{do^aD^2Vk^O2eW~KSv(BzRD>xw` z&*Gb6ksujl^_Fg<9{Nxn%B8jSv6jcmU+Kw5-Q&psk7EU|G|_)%rogKwNzemwy6QX^ z@ujX`ZkT$alQ%3oWJ2VOJGz{G(ukN|LF&Ga)nKml$M>IY@1F)}2mL&m6~?A)CN|YS zLi^lZj;aN$DQnmlc~AgqcDB7)?<<0=D*JMD zM3%;`BX_AsO%3+;YjwAbOnkT+m^;*q5X>@S2hO@Aa1J zJCCx~6B|ewT}HQECVls)>JqY95!(x8tJTl^D9t}c_G8p6;&167Z{2*+*qbjZdPBKR zwYTwFdQwnL?Q_fZ1S5+O2`Bi&@(s_P_cQY7?>NOU&FL}U5YmlM6yw@TASK}~;pon& z&{?aE)kw+rf)rVR1R!KIA&R@6^&5tt+oJ8h+P)7GWpbZ0xhG1hCCSz8pFjdYT5mJUum4y`e6ST z&@%+@8U+Bx-^#X6vpu~G2`=~;;97zryltTvX_;q&`r%A)oV7(xhxX1-Obw!r%_aBq zXumue@LLi`iFY=9t~-zHYJC&!zW;W6TKK3YgAe-4E5@wu_HwjtlH4Ep5vqLS-2C5$ zSxHdkc#a7g$_vSgCJ_dxxPL&~SeaPflc=j>z18KsBxhHfhSRvim6wzyuJBI@*m2g@ zc2$Hh#1|Nide`x;s zFEY{lfS)AO1(&M2`md$eil6mNBxu2_M(#la)vUt>ub2uO+!3=jb#6Ic2xq$*jBF`n z%L9sP{NK&^17myQl!*yca`I%e*{%{^D5ld#5&5Dbmw2He%xl{Z?Bv@+UmIbjXEHB5 zH5Sh@UPidw19)2ZMmXkn`O@)IsF`Fbj+RLtb$qTJ#B-vXrZ?7??}cA6N56t|TzFj4 z=rAukcL+Zk?vE$J3_QP=HeaZiJ>sPUrar&8Ao}%X-FpDz+o?UsRbtr6!(ES)@vCo94^P>R%u%q(-9wy%Duenrn)jXuW z+2hV;WWLbrH-awRI4^BBwkb{USY=a|U+=L6IJbHc+!%aSb|KB}H$ z?;wmaMfCf`2o^LLsVRHayM++C2aVlLWRbMjawRSh!|`u4I8tjLx>H>?ZR&ba(LJXj z?DRP5gyUNUnznwc)C%qsQ!aTlw6i(@viQ+~|0fLN?FR=&Mz z!m?8%ms9Zm`@?A{S+a>p-JQ}TICnZa{gktp_;s>#3Wv_=7#GC;f$M! z&TRADKS2F7Grq42P=N2(^g3PHSv9Sr5khe~OZap~yE3UUWM-{Fh{H-BGK9MOV3L#y zw*TZQX^enrYRj7iXkEaCLTZF5z%T)MU*{_RxA-*;G{sl{7ry_e1h+X~HM>NyBnnV6 zzcFEEZvv5PId&nY^VG0nqu!l%4Ln9L8OVmkfQi1}=-j_u=t%I1_~|`SZ_zv+SV@2>e1;w+Y$vY75F((`NKQU2vax&tTw!~HE>c2M3z3d>g zk@W;ee$-qtx3IgJ&cQ;-5AmGPIIdtV0YQvcV7G)N!(PWkx#qq=;AiOzb$C@x+Z zu##CR=Q`hVF-LGTr?w9-umq+&6PrkTr)T1CJ!@XV9i+em9sS#E=UO}BNMwuBrCayH zAub{V#`%5ecrycz1$eSV8<2Ikv6CQ5E=h^K%3m6h74APzqFYP{oejD^Y7o_E2b3p| zeA*LbkS?zNs8`f>wX`CuZF=Vcnc?D9l|P;QF8KedIQiHkm!f>Y3}# zl9AL|w=FC#e&CG1Vj1SX@K&6z&wEdwI}i+9}=0 zD)hP8t2qSqGq-zz1>nRbHpsOX+Ou&rc&B>1K5Z`l|60?OVRG!%y@dyXhC`Y)1x&pBnbuTa%|7f^nM;OIHu%(W6&Ci`84e(2e5z z*ThM)rgG_sjP#cQ+Xs8;_5jS%p3?)1Cd0epUI+qH6)RAoaWyIr#O{wWN#wI+_de=e zPHAv`+(8DcYwZezvF?o<#{{xGw05-!dGx*J-i6B-YsG?>W6ke;g4Hg#P+$=@?s0UEI-*Bw6RE<{1I7> zjBlz61z%K{w(Fbs@*+5i`|zyRlh@qP_iu#(*1Wcpz$is&$q|YHc+dRFT7N)#@B@znBGn$2wXOi+ggc5BJ<+2( zlI3ksg*I$2(gaUp4h9pJY${1?hgh6#mU-3e=N{4cTb2V_4R`HbSASd)X&1AJD{hd8 z^}36_R=S?hhh>k{b|Q{V4g^$!<)__{4ZCIAOzE}*nn%8FpA_Bmaub%88)q94qdSj& zU&K}EwoAH(N;V`V{ZfKgP}7P8xX{2STb>)D)y3#SF&&=+6Jz=_o8pqGbBI1lUdL(1 zD2L567hm`YXfrYLV3fz4yv?7yE!3uaicqZ7ufRny<0U&B6qh8bcqsL`r9)-JOxkXy z+l@a1(ptpJ`{M2l$g!g@DX;KZcoPP93JT=vi}|dQ!tn5*k@U)brT5a*!NEAJ2Apj0 z3jNsKvYjiiy-sUG06+A3T)f+N_X|`ZAX$1+M8W1ZaK3Nm6Dd}Xw#CnL+A?Xi*n>}B z+g^J-yeBCQ;(6yjA1~5bLwIzXXp>6syw2d^&DXBrf$G@}~y*QOne;u_UdZD^Cl zXxza$QKpgXzp22W4GZI|8N{0M2?78Z`$wi+S>waN@uSr9`u5+ghvrjfhcjQNuoDp; zk9szfi0j_VBAd2M+55}LBoF!BASF5?QV6q5zf94lQ$2goh8#I@&N4tiMK&5WOgt0H zRiGPL-7G)N zj%2#teK$kweDwBL1+DK?B#>r?tjR02JIr zUq=)|zME?3CA9?-DRGfqM+;h7w&xgGmLjhTAOdy`b%#?iM;>=l7v)^GADOA64 zy}x#1eDIpJ^iQ-mHzp5#R2_{6(~wo;npi>z4tuCy@Z6Ovw1EGFOaCWi{Qog*{?+*F cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN 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 literal 0 HcmV?d00001 diff --git a/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/backup_config.json b/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 00000000000..78f40ae7c49 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/main_pages.json b/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 00000000000..1898d94f58d --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/Drawing/ArkTSDrawing/entry/src/main/resources/en_US/element/string.json b/Drawing/ArkTSDrawing/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 00000000000..19986ebf7aa --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ArkTSDrawing" + } + ] +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/main/resources/zh_CN/element/string.json b/Drawing/ArkTSDrawing/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 00000000000..e250f3f7dbb --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "模块描述" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ArkTSDrawing" + } + ] +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/mock/mock-config.json5 b/Drawing/ArkTSDrawing/entry/src/mock/mock-config.json5 new file mode 100644 index 00000000000..e4eb8bbe4e5 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/mock/mock-config.json5 @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets b/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets new file mode 100644 index 00000000000..dea8391d8d8 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import { describe, it, expect } from '@ohos/hypium'; +import { Driver, ON } from '@ohos.UiTest'; +import hilog from '@ohos.hilog'; + +const TAG = '[Sample_ArkTSDrawingAPI]'; +const DOMAIN = 0xF811 +const BUNDLE = 'ArkTSDrawingAPI_' + +export default function abilityTest() { + + describe('ActsAbilityTest', () => { + /** + * 打开应用 + */ + it(BUNDLE + 'StartAbility_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + "StartAbility_001, begin") + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.drawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `StartAbility_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Path')); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbility_001 end') + }) + + /** + * 点击按钮,绘制图形 + */ + it(BUNDLE + 'DrawPath_001', 2, async () => { + hilog.info(DOMAIN, TAG, BUNDLE + "DrawPath_001, begin") + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.drawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `DrawPath_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Path')); + let drawPathBtn = await driver.findComponent(ON.text('Draw Path')); + // 点击'Draw Path'按钮 + await drawPathBtn.click(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawPath_001 end') + }) + + /** + * 点击按钮,绘制矩形 + */ + it(BUNDLE + 'DrawRect_001', 2, async () => { + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawRect_001 begin') + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.drawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `DrawRect_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Rect')); + let drawPathBtn = await driver.findComponent(ON.text('Draw Rect')); + // 点击'Draw Rect'按钮 + await drawPathBtn.click(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawRect_001 end') + }) + + /** + * 点击按钮,绘制文字 + */ + it(BUNDLE + 'DrawText_001', 2, async () => { + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawText_001 begin') + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.drawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `DrawText_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Text')); + let drawPathBtn = await driver.findComponent(ON.text('Draw Text')); + // 点击'Draw Text'按钮 + await drawPathBtn.click(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawText_001 end') + }) + }) +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/List.test.ets b/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 00000000000..c6a406e9eb0 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import abilityTest from './DrawingAbility.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/ohosTest/module.json5 b/Drawing/ArkTSDrawing/entry/src/ohosTest/module.json5 new file mode 100644 index 00000000000..944ed99859b --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/ohosTest/module.json5 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/Drawing/ArkTSDrawing/entry/src/test/List.test.ets b/Drawing/ArkTSDrawing/entry/src/test/List.test.ets new file mode 100644 index 00000000000..3bc7c739d19 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/test/List.test.ets @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/entry/src/test/LocalUnit.test.ets b/Drawing/ArkTSDrawing/entry/src/test/LocalUnit.test.ets new file mode 100644 index 00000000000..4ab69eca228 --- /dev/null +++ b/Drawing/ArkTSDrawing/entry/src/test/LocalUnit.test.ets @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/Drawing/ArkTSDrawing/hvigor/hvigor-config.json5 b/Drawing/ArkTSDrawing/hvigor/hvigor-config.json5 new file mode 100644 index 00000000000..87990affc4f --- /dev/null +++ b/Drawing/ArkTSDrawing/hvigor/hvigor-config.json5 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "modelVersion": "5.0.0", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/Drawing/ArkTSDrawing/hvigorfile.ts b/Drawing/ArkTSDrawing/hvigorfile.ts new file mode 100644 index 00000000000..2e7b775e53d --- /dev/null +++ b/Drawing/ArkTSDrawing/hvigorfile.ts @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/Drawing/ArkTSDrawing/oh-package.json5 b/Drawing/ArkTSDrawing/oh-package.json5 new file mode 100644 index 00000000000..7a7fe7781e6 --- /dev/null +++ b/Drawing/ArkTSDrawing/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "modelVersion": "5.0.0", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/Drawing/ArkTSDrawing/ohosTest.md b/Drawing/ArkTSDrawing/ohosTest.md new file mode 100644 index 00000000000..407090b8ef0 --- /dev/null +++ b/Drawing/ArkTSDrawing/ohosTest.md @@ -0,0 +1,11 @@ +# ArkTSDrawing测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +| -------- | ------------ | ----------------- | --------------------------- | -------- | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 绘制路径 | 位于首页 | 点击**Draw Path** | 页面显示出一个五角星 | 是 | Pass | +| 绘制矩形 | 位于首页 | 点击**Draw Rect** | 页面显示出一个矩形 | 是 | Pass | +| 绘制文字 | 位于首页 | 点击**Draw Text** | 页面显示出一个“Hello World” | 是 | Pass | + diff --git a/Drawing/ArkTSDrawing/screenshot/path.png b/Drawing/ArkTSDrawing/screenshot/path.png new file mode 100644 index 0000000000000000000000000000000000000000..73831e09b0584af5d9eb03602ef7b86435619e5b GIT binary patch literal 132620 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 literal 0 HcmV?d00001 diff --git a/Drawing/ArkTSDrawing/screenshot/rect.png b/Drawing/ArkTSDrawing/screenshot/rect.png new file mode 100644 index 0000000000000000000000000000000000000000..562ede3997239af1e610dd5eb0f6e629ba3a235b GIT binary patch literal 81012 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 literal 0 HcmV?d00001 diff --git a/Drawing/ArkTSDrawing/screenshot/text.png b/Drawing/ArkTSDrawing/screenshot/text.png new file mode 100644 index 0000000000000000000000000000000000000000..246a6e31cd0e20b2ab96714d24044602babffc6c GIT binary patch literal 100472 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 literal 0 HcmV?d00001 diff --git a/Drawing/NDKDrawing/README.md b/Drawing/NDKDrawing/README.md new file mode 100644 index 00000000000..eaa1cc988f8 --- /dev/null +++ b/Drawing/NDKDrawing/README.md @@ -0,0 +1,80 @@ +# 使用Drawing实现图形绘制与显示(C++) + +## 介绍 + +本工程主要实现了对以下指南文档中 https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/graphics/drawing-guidelines.md 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。 + +## 效果预览 + +| ![](screenshot/path.png) | ![](screenshot/text.png) | +|--------------------------| ------------------------ | + +使用说明 + +1. 该工程可以选择在模拟器和开发板上运行。 +2. 点击构建,即可在生成的应用中点击对应的按钮进行图案的绘制。 +3. 进入”DocsSample/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets“文件,可以对本项目进行UI的自动化测试。 + +## 工程目录 + +``` +NDKDrawing +├──entry/src/main +│ ├──cpp // C++代码区 +│ │ ├──CMakeLists.txt // CMake配置文件 +│ │ ├──hello.cpp // Napi模块注册 +│ │ ├──common +│ │ │ └──log_common.h // 日志封装定义文件 +│ │ ├──plugin // 生命周期管理模块 +│ │ │ ├──plugin_manager.cpp +│ │ │ └──plugin_manager.h +│ │ ├──samples // samples渲染模块 +│ │ │ ├──sample_bitmap.cpp +│ │ │ └──sample_bitmap.h +│ ├──ets // ets代码区 +│ │ ├──entryability +│ │ │ ├──EntryAbility.ts // 程序入口类 +| | | └──EntryAbility.ets +| | ├──interface +│ │ │ └──XComponentContext.ts // XComponentContext +│ │ └──pages // 页面文件 +│ │ └──Index.ets // 主界面 +| ├──resources // 资源文件目录 +``` + +## 具体实现 + +1. 利用Native XComponent来获取NativeWindow实例、获取布局/事件信息、注册事件回调并通过Drawing API实现在页面上绘制形状。功能主要包括点击按钮绘制一个五角星和“Hello World Drawing”文字。 +2. 通过在IDE中创建Native c++ 工程,在c++代码中定义对外接口为drawPattern和drawText,在js侧调用该接口可在页面上绘制出一个五角星和“Hello World Drawing”文字。 +3. 在XComponent的OnSurfaceCreated回调中获取NativeWindow实例并初始化NativeWindow环境。调用OH_NativeXComponent_GetXComponentSize接口获取XComponent的宽高,并以此为输入调用Drawing相关的绘制接口在NativeWindow上绘制出一个五角星和文字。 + +## 相关权限 + +无。 + +## 依赖 + +不涉及。 + +## 约束和限制 + +1. 本示例仅支持标准系统上运行,支持设备:华为手机。 + +2. HarmonyOS系统:HarmonyOS 5.0.3 Release及以上。 + +3. DevEco Studio版本:DevEco Studio 5.0.3 Release及以上。 + +4. HarmonyOS SDK版本:HarmonyOS 5.0.3 Release及以上。 + +## 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo code/DocsSample/Drawing/NDKDrawing/ > .git/info/sparse-checkout +git remote add origin https://gitcode.com/openharmony/applications_app_samples.git +git pull origin master +``` + diff --git a/Drawing/NDKDrawing/build-profile.json5 b/Drawing/NDKDrawing/build-profile.json5 new file mode 100644 index 00000000000..41564fbe641 --- /dev/null +++ b/Drawing/NDKDrawing/build-profile.json5 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "app": { + "products": [ + { + "name": "default", + "signingConfig": "default", + //指定OpenHarmony应用/服务编译时的版本 + "compatibleSdkVersion": "5.0.3(15)", + //指定OpenHarmony应用/服务兼容的最低版本。 + "targetSdkVersion": "5.0.3(15)", + //指定OpenHarmony应用/服务目标版本。若没有设置,默认为compatibleSdkVersion + "runtimeOS": "HarmonyOS", + //指定为OpenHarmony + "buildOption": { + "externalNativeOptions": { + //指定ABI配置 + "abiFilters": [ + "arm64-v8a", + "x86_64", + ] + }, + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug" + }, + { + "name": "release" + } + ], + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/code-linter.json5 b/Drawing/NDKDrawing/code-linter.json5 new file mode 100644 index 00000000000..3311c9280cd --- /dev/null +++ b/Drawing/NDKDrawing/code-linter.json5 @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/.gitignore b/Drawing/NDKDrawing/entry/.gitignore new file mode 100644 index 00000000000..e2713a2779c --- /dev/null +++ b/Drawing/NDKDrawing/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/build-profile.json5 b/Drawing/NDKDrawing/entry/build-profile.json5 new file mode 100644 index 00000000000..13781d517fa --- /dev/null +++ b/Drawing/NDKDrawing/entry/build-profile.json5 @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "apiType": "stageMode", + "buildOption": { + "externalNativeOptions": { + "path": "./src/main/cpp/CMakeLists.txt", + "arguments": "", + "cppFlags": "", + } + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + }, + "nativeLib": { + "debugSymbol": { + "strip": true, + "exclude": [] + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/hvigorfile.ts b/Drawing/NDKDrawing/entry/hvigorfile.ts new file mode 100644 index 00000000000..8fe7819925b --- /dev/null +++ b/Drawing/NDKDrawing/entry/hvigorfile.ts @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/Drawing/NDKDrawing/entry/obfuscation-rules.txt b/Drawing/NDKDrawing/entry/obfuscation-rules.txt new file mode 100644 index 00000000000..272efb6ca3f --- /dev/null +++ b/Drawing/NDKDrawing/entry/obfuscation-rules.txt @@ -0,0 +1,23 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/oh-package-lock.json5 b/Drawing/NDKDrawing/entry/oh-package-lock.json5 new file mode 100644 index 00000000000..de121d113e3 --- /dev/null +++ b/Drawing/NDKDrawing/entry/oh-package-lock.json5 @@ -0,0 +1,18 @@ +{ + "meta": { + "stableOrder": true + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "libentry.so@src/main/cpp/types/libentry": "libentry.so@src/main/cpp/types/libentry" + }, + "packages": { + "libentry.so@src/main/cpp/types/libentry": { + "name": "libentry.so", + "version": "12", + "resolved": "src/main/cpp/types/libentry", + "registryType": "local" + } + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/oh-package.json5 b/Drawing/NDKDrawing/entry/oh-package.json5 new file mode 100644 index 00000000000..1182eecc31b --- /dev/null +++ b/Drawing/NDKDrawing/entry/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": { + "libentry.so": "file:./src/main/cpp/types/libentry" + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/CMakeLists.txt b/Drawing/NDKDrawing/entry/src/main/cpp/CMakeLists.txt new file mode 100644 index 00000000000..0276845717c --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/CMakeLists.txt @@ -0,0 +1,27 @@ +# the minimum version of CMake. +cmake_minimum_required(VERSION 3.4.1) +project(drawing_test) + +set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) + +include_directories(${NATIVERENDER_ROOT_PATH} + ${NATIVERENDER_ROOT_PATH}/include) + +add_library(entry SHARED + napi_init.cpp + samples/sample_bitmap.cpp + plugin/plugin_manager.cpp +) +find_library( + # Sets the name of the path variable. + hilog-lib + # Specifies the name of the NDK library that + # you want CMake to locate. + hilog_ndk.z +) +message("hilog path is :" ${hilog-lib}) +target_link_libraries(entry PUBLIC ${hilog-lib}) +target_link_libraries(entry PUBLIC libace_napi.z.so) +target_link_libraries(entry PUBLIC libace_ndk.z.so) +target_link_libraries(entry PUBLIC libnative_window.so) +target_link_libraries(entry PUBLIC libnative_drawing.so) \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/common/log_common.h b/Drawing/NDKDrawing/entry/src/main/cpp/common/log_common.h new file mode 100644 index 00000000000..1f0a8d768e8 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/common/log_common.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef LOG_COMMON_H +#define LOG_COMMON_H +#include +#define LOG_PRINT_DOMAIN 0xFF00 +#define APP_LOG_DOMAIN 0x0001 +constexpr const char *APP_LOG_TAG = "DrawingSample"; +#define DRAWING_LOGI(...) ((void)OH_LOG_Print(LOG_APP, LOG_INFO, LOG_DOMAIN, APP_LOG_TAG, __VA_ARGS__)) +#define DRAWING_LOGD(...) ((void)OH_LOG_Print(LOG_APP, LOG_DEBUG, LOG_DOMAIN, APP_LOG_TAG, __VA_ARGS__)) +#define DRAWING_LOGW(...) ((void)OH_LOG_Print(LOG_APP, LOG_WARN, LOG_DOMAIN, APP_LOG_TAG, __VA_ARGS__)) +#define DRAWING_LOGE(...) ((void)OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_DOMAIN, APP_LOG_TAG, __VA_ARGS__)) + +#endif // LOG_COMMON_H diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/hello.cpp b/Drawing/NDKDrawing/entry/src/main/cpp/hello.cpp new file mode 100644 index 00000000000..af797b0ae85 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/hello.cpp @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include "napi/native_api.h" +#include "common/log_common.h" +#include "plugin/plugin_manager.h" + +EXTERN_C_START +static napi_value Init(napi_env env, napi_value exports) +{ + DRAWING_LOGI("napi init"); + PluginManager::GetInstance()->Export(env, exports); + return exports; +} +EXTERN_C_END + +static napi_module demoModule = { + .nm_version = 1, + .nm_flags = 0, + .nm_filename = nullptr, + .nm_register_func = Init, + .nm_modname = "entry", + .nm_priv = ((void *)0), + .reserved = {0}, +}; + +extern "C" __attribute__((constructor)) void RegisterEntryModule(void) +{ + napi_module_register(&demoModule); +} diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/napi_init.cpp b/Drawing/NDKDrawing/entry/src/main/cpp/napi_init.cpp new file mode 100644 index 00000000000..7853a653d39 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/napi_init.cpp @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include "napi/native_api.h" +#include "common/log_common.h" +#include "plugin/plugin_manager.h" + +EXTERN_C_START +static napi_value Init(napi_env env, napi_value exports) +{ + DRAWING_LOGI("napi init"); + PluginManager::GetInstance()->Export(env, exports); + return exports; +} +EXTERN_C_END + +static napi_module demoModule = { + .nm_version = 1, + .nm_flags = 0, + .nm_filename = nullptr, + .nm_register_func = Init, + .nm_modname = "entry", + .nm_priv = ((void *)0), + .reserved = {0}, +}; + +extern "C" __attribute__((constructor)) void RegisterEntryModule(void) +{ + napi_module_register(&demoModule); +} diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.cpp b/Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.cpp new file mode 100644 index 00000000000..9a6cf871cb6 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.cpp @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include +#include +#include +#include "common/log_common.h" +#include "plugin_manager.h" + +PluginManager *PluginManager::GetInstance() +{ + static PluginManager pluginManager; + return &pluginManager; +} + +PluginManager::~PluginManager() +{ + DRAWING_LOGI("~PluginManager"); + for (auto iter = nativeXComponentMap_.begin(); iter != nativeXComponentMap_.end(); ++iter) { + if (iter->second != nullptr) { + delete iter->second; + iter->second = nullptr; + } + } + nativeXComponentMap_.clear(); + + for (auto iter = pluginRenderMap_.begin(); iter != pluginRenderMap_.end(); ++iter) { + if (iter->second != nullptr) { + delete iter->second; + iter->second = nullptr; + } + } + pluginRenderMap_.clear(); +} + +void PluginManager::Export(napi_env env, napi_value exports) +{ + if ((env == nullptr) || (exports == nullptr)) { + DRAWING_LOGE("Export: env or exports is null"); + return; + } + + napi_value exportInstance = nullptr; + if (napi_get_named_property(env, exports, OH_NATIVE_XCOMPONENT_OBJ, &exportInstance) != napi_ok) { + DRAWING_LOGE("Export: napi_get_named_property fail"); + return; + } + + OH_NativeXComponent *nativeXComponent = nullptr; + if (napi_unwrap(env, exportInstance, reinterpret_cast(&nativeXComponent)) != napi_ok) { + DRAWING_LOGE("Export: napi_unwrap fail"); + return; + } + + char idStr[OH_XCOMPONENT_ID_LEN_MAX + 1] = {'\0'}; + uint64_t idSize = OH_XCOMPONENT_ID_LEN_MAX + 1; + if (OH_NativeXComponent_GetXComponentId(nativeXComponent, idStr, &idSize) != OH_NATIVEXCOMPONENT_RESULT_SUCCESS) { + DRAWING_LOGE("Export: OH_NativeXComponent_GetXComponentId fail"); + return; + } + + std::string id(idStr); + auto context = PluginManager::GetInstance(); + if ((context != nullptr) && (nativeXComponent != nullptr)) { + context->SetNativeXComponent(id, nativeXComponent); + auto render = context->GetRender(id); + if (render != nullptr) { + render->RegisterCallback(nativeXComponent); + render->Export(env, exports); + } else { + DRAWING_LOGE("render is nullptr"); + } + } +} + +void PluginManager::SetNativeXComponent(std::string &id, OH_NativeXComponent *nativeXComponent) +{ + DRAWING_LOGI("set native xComponent, ID = %{public}s.", id.c_str()); + if (nativeXComponent == nullptr) { + DRAWING_LOGE("xcomponent null"); + return; + } + + if (nativeXComponentMap_.find(id) == nativeXComponentMap_.end()) { + nativeXComponentMap_[id] = nativeXComponent; + return; + } + + if (nativeXComponentMap_[id] != nativeXComponent) { + OH_NativeXComponent *tmp = nativeXComponentMap_[id]; + delete tmp; + tmp = nullptr; + nativeXComponentMap_[id] = nativeXComponent; + } +} + +SampleBitMap *PluginManager::GetRender(std::string &id) +{ + if (pluginRenderMap_.find(id) == pluginRenderMap_.end()) { + SampleBitMap *instance = SampleBitMap::GetInstance(id); + pluginRenderMap_[id] = instance; + return instance; + } + return pluginRenderMap_[id]; +} + +void PluginManager::ReleaseRender(std::string &id) +{ + auto map = pluginRenderMap_.find(id); + if (map == pluginRenderMap_.end()) { + return; + } + pluginRenderMap_.erase(map); +} diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.h b/Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.h new file mode 100644 index 00000000000..37c84abc31d --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/plugin/plugin_manager.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef PLUGIN_MANAGER_H +#define PLUGIN_MANAGER_H + +#include +#include +#include +#include +#include +#include "samples/sample_bitmap.h" + +class PluginManager { +public: + ~PluginManager(); + + static PluginManager *GetInstance(); + + void SetNativeXComponent(std::string &id, OH_NativeXComponent *nativeXComponent); + SampleBitMap *GetRender(std::string &id); + void ReleaseRender(std::string &id); + void Export(napi_env env, napi_value exports); +private: + + std::unordered_map nativeXComponentMap_; + std::unordered_map pluginRenderMap_; +}; +#endif // PLUGIN_MANAGER_H diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.cpp b/Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.cpp new file mode 100644 index 00000000000..cb52ec6b19a --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.cpp @@ -0,0 +1,537 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include + + +#include "common/log_common.h" +#include "sample_bitmap.h" +#include "plugin/plugin_manager.h" + +static void OnSurfaceCreatedCB(OH_NativeXComponent *component, void *window) +{ + DRAWING_LOGI("OnSurfaceCreatedCB"); + if ((component == nullptr) || (window == nullptr)) { + DRAWING_LOGE("OnSurfaceCreatedCB: component or window is null"); + return; + } + char idStr[OH_XCOMPONENT_ID_LEN_MAX + 1] = {'\0'}; + uint64_t idSize = OH_XCOMPONENT_ID_LEN_MAX + 1; + if (OH_NativeXComponent_GetXComponentId(component, idStr, &idSize) != OH_NATIVEXCOMPONENT_RESULT_SUCCESS) { + DRAWING_LOGE("OnSurfaceCreatedCB: Unable to get XComponent id"); + return; + } + std::string id(idStr); + auto render = SampleBitMap::GetInstance(id); + OHNativeWindow *nativeWindow = static_cast(window); + render->SetNativeWindow(nativeWindow); + + uint64_t width; + uint64_t height; + int32_t xSize = OH_NativeXComponent_GetXComponentSize(component, window, &width, &height); + if ((xSize == OH_NATIVEXCOMPONENT_RESULT_SUCCESS) && (render != nullptr)) { + render->SetHeight(height); + render->SetWidth(width); + DRAWING_LOGI("xComponent width = %{public}llu, height = %{public}llu", width, height); + } +} + +static void OnSurfaceChangedCB(OH_NativeXComponent* component, void* window) +{ + // 可获取 OHNativeWindow 实例 + OHNativeWindow* nativeWindow = static_cast(window); + char idStr[OH_XCOMPONENT_ID_LEN_MAX + 1] = {'\0'}; + uint64_t idSize = OH_XCOMPONENT_ID_LEN_MAX + 1; + if (OH_NativeXComponent_GetXComponentId(component, idStr, &idSize) != OH_NATIVEXCOMPONENT_RESULT_SUCCESS) { + DRAWING_LOGE("OnSurfaceChangedCB: Unable to get XComponent id"); + return; + } + std::string id(idStr); + auto render = SampleBitMap::GetInstance(id); + + uint64_t width; + uint64_t height; + int32_t xSize = OH_NativeXComponent_GetXComponentSize(component, window, &width, &height); + if ((xSize == OH_NATIVEXCOMPONENT_RESULT_SUCCESS) && (render != nullptr)) { + render->SetHeight(height); + render->SetWidth(width); + DRAWING_LOGI("Surface Changed : xComponent width = %{public}llu, height = %{public}llu", width, height); + } +} + +static void OnSurfaceDestroyedCB(OH_NativeXComponent *component, void *window) +{ + DRAWING_LOGI("OnSurfaceDestroyedCB"); + OHNativeWindow* nativeWindow = static_cast(window); + if ((component == nullptr) || (window == nullptr)) { + DRAWING_LOGE("OnSurfaceDestroyedCB: component or window is null"); + return; + } + char idStr[OH_XCOMPONENT_ID_LEN_MAX + 1] = {'\0'}; + uint64_t idSize = OH_XCOMPONENT_ID_LEN_MAX + 1; + if (OH_NativeXComponent_GetXComponentId(component, idStr, &idSize) != OH_NATIVEXCOMPONENT_RESULT_SUCCESS) { + DRAWING_LOGE("OnSurfaceDestroyedCB: Unable to get XComponent id"); + return; + } + std::string id(idStr); + SampleBitMap::Release(id); +} + +static void DispatchTouchEventCB(OH_NativeXComponent* component, void* window) +{ + // 可获取 OHNativeWindow 实例 + OHNativeWindow* nativeWindow = static_cast(window); + // ... +} + +static std::unordered_map g_instance; + +void SampleBitMap::SetWidth(uint64_t width) +{ + width_ = width; +} + +void SampleBitMap::SetHeight(uint64_t height) +{ + height_ = height; +} + +void SampleBitMap::SetNativeWindow(OHNativeWindow *nativeWindow) +{ + nativeWindow_ = nativeWindow; +} + +void SampleBitMap::Prepare() +{ + if (nativeWindow_ == nullptr) { + DRAWING_LOGE("nativeWindow_ is nullptr"); + return; + } + // 这里的nativeWindow是从上一步骤中的回调函数中获得的 + int32_t usage = NATIVEBUFFER_USAGE_CPU_READ | NATIVEBUFFER_USAGE_CPU_WRITE | NATIVEBUFFER_USAGE_MEM_DMA; + int ret = OH_NativeWindow_NativeWindowHandleOpt(nativeWindow_, SET_USAGE, usage); + if (ret != 0) { + DRAWING_LOGE("failed to OH_NativeWindow_NativeWindowHandleOpt"); + return; + } + // 通过 OH_NativeWindow_NativeWindowRequestBuffer 获取 OHNativeWindowBuffer 实例 + ret = OH_NativeWindow_NativeWindowRequestBuffer(nativeWindow_, &buffer_, &fenceFd_); + DRAWING_LOGI("request buffer ret = %{public}d", ret); + // 通过 OH_NativeWindow_GetBufferHandleFromNative 获取 buffer 的 handle + bufferHandle_ = OH_NativeWindow_GetBufferHandleFromNative(buffer_); + // 使用系统mmap接口拿到bufferHandle的内存虚拟地址 + mappedAddr_ = static_cast( + mmap(bufferHandle_->virAddr, bufferHandle_->size, PROT_READ | PROT_WRITE, MAP_SHARED, bufferHandle_->fd, 0)); + if (mappedAddr_ == MAP_FAILED) { + DRAWING_LOGE("mmap failed"); + } +} + +void SampleBitMap::DisPlay() +{ + // 画完后获取像素地址,地址指向的内存包含画布画的像素数据 + void *bitmapAddr = OH_Drawing_BitmapGetPixels(cBitmap_); + uint32_t *value = static_cast(bitmapAddr); + + uint32_t *pixel = static_cast(mappedAddr_); // 使用mmap获取到的地址来访问内存 + if (pixel == nullptr) { + DRAWING_LOGE("pixel is null"); + return; + } + if (value == nullptr) { + DRAWING_LOGE("value is null"); + return; + } + // 使用mmap获取到的地址来访问内存 + uint32_t width = static_cast(bufferHandle_->stride / 4); + for (uint32_t x = 0; x < width; x++) { + for (uint32_t y = 0; y < height_; y++) { + *pixel++ = *value++; + } + } + // 设置刷新区域,如果Region中的Rect为nullptr,或者rectNumber为0,则认为OHNativeWindowBuffer全部有内容更改。 + Region region {nullptr, 0}; + // 通过OH_NativeWindow_NativeWindowFlushBuffer 提交给消费者使用,例如:显示在屏幕上。 + OH_NativeWindow_NativeWindowFlushBuffer(nativeWindow_, buffer_, fenceFd_, region); + // 内存使用完记得去掉内存映射 + int result = munmap(mappedAddr_, bufferHandle_->size); + if (result == -1) { + DRAWING_LOGE("munmap failed!"); + } +} + +void SampleBitMap::Create() +{ + uint32_t width = static_cast(bufferHandle_->stride / 4); + // 创建一个bitmap对象 + cBitmap_ = OH_Drawing_BitmapCreate(); + // 定义bitmap的像素格式 + OH_Drawing_BitmapFormat cFormat {COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE}; + // 构造对应格式的bitmap + OH_Drawing_BitmapBuild(cBitmap_, width, height_, &cFormat); + + // 创建一个canvas对象 + cCanvas_ = OH_Drawing_CanvasCreate(); + // 将画布与bitmap绑定,画布画的内容会输出到绑定的bitmap内存中 + OH_Drawing_CanvasBind(cCanvas_, cBitmap_); + // 使用白色清除画布内容 + OH_Drawing_CanvasClear(cCanvas_, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF)); +} + +void SampleBitMap::ConstructPath() +{ + int len = height_ / 4; + float aX = width_ / 2; + float aY = height_ / 4; + float dX = aX - len * std::sin(18.0f); + float dY = aY + len * std::cos(18.0f); + float cX = aX + len * std::sin(18.0f); + float cY = dY; + float bX = aX + (len / 2.0); + float bY = aY + std::sqrt((cX - dX) * (cX - dX) + (len / 2.0) * (len / 2.0)); + float eX = aX - (len / 2.0); + float eY = bY; + // 创建一个path对象,然后使用接口连接成一个五角星形状 + cPath_ = OH_Drawing_PathCreate(); + // 指定path的起始位置 + OH_Drawing_PathMoveTo(cPath_, aX, aY); + // 用直线连接到目标点 + OH_Drawing_PathLineTo(cPath_, bX, bY); + OH_Drawing_PathLineTo(cPath_, cX, cY); + OH_Drawing_PathLineTo(cPath_, dX, dY); + OH_Drawing_PathLineTo(cPath_, eX, eY); + // 闭合形状,path绘制完毕 + OH_Drawing_PathClose(cPath_); +} + +void SampleBitMap::SetPenAndBrush() +{ + constexpr float penWidth = 10.0f; // pen width 10 + // 创建一个画笔Pen对象,Pen对象用于形状的边框线绘制 + cPen_ = OH_Drawing_PenCreate(); + OH_Drawing_PenSetAntiAlias(cPen_, true); + OH_Drawing_PenSetColor(cPen_, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00)); + OH_Drawing_PenSetWidth(cPen_, penWidth); + OH_Drawing_PenSetJoin(cPen_, LINE_ROUND_JOIN); + // 将Pen画笔设置到canvas中 + OH_Drawing_CanvasAttachPen(cCanvas_, cPen_); + + // 创建一个画刷Brush对象,Brush对象用于形状的填充 + cBrush_ = OH_Drawing_BrushCreate(); + OH_Drawing_BrushSetColor(cBrush_, OH_Drawing_ColorSetArgb(0xFF, 0x00, 0xFF, 0x00)); + + // 将Brush画刷设置到canvas中 + OH_Drawing_CanvasAttachBrush(cCanvas_, cBrush_); +} + +void SampleBitMap::DrawPath() +{ + // 在画布上画path的形状,五角星的边框样式为pen设置,颜色填充为Brush设置 + OH_Drawing_CanvasDrawPath(cCanvas_, cPath_); +} + +void SampleBitMap::DrawText() +{ + // 选择从左到右/左对齐等排版属性 + OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle(); + OH_Drawing_SetTypographyTextDirection(typoStyle, TEXT_DIRECTION_LTR); + OH_Drawing_SetTypographyTextAlign(typoStyle, TEXT_ALIGN_JUSTIFY); + + // TEXT_ALIGN_JUSTIFY + // 设置文字颜色,例如黑色 + OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle(); + OH_Drawing_SetTextStyleColor(txtStyle, OH_Drawing_ColorSetArgb(0xFF, 0x00, 0x00, 0x00)); + // 设置文字大小、字重等属性 + double fontSize = width_ / 15; + OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize); + OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400); + OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC); + OH_Drawing_SetTextStyleFontHeight(txtStyle, 1); + // 如果需要多次测量,建议fontCollection作为全局变量使用,可以显著减少内存占用 + OH_Drawing_FontCollection* fontCollection = OH_Drawing_CreateSharedFontCollection(); + // 设置系统字体类型 + const char *fontFamilies[] = {"Roboto"}; + OH_Drawing_SetTextStyleFontFamilies(txtStyle, 1, fontFamilies); + OH_Drawing_SetTextStyleFontStyle(txtStyle, FONT_STYLE_NORMAL); + OH_Drawing_SetTextStyleLocale(txtStyle, "en"); + OH_Drawing_TypographyCreate *handler = + OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection()); + OH_Drawing_TypographyHandlerPushTextStyle(handler, txtStyle); + // 设置文字内容 + const char *text = "Hello World Drawing\n"; + OH_Drawing_TypographyHandlerAddText(handler, text); + OH_Drawing_TypographyHandlerPopTextStyle(handler); + OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler); + // 设置页面最大宽度 + double maxWidth = width_; + OH_Drawing_TypographyLayout(typography, maxWidth); + // 设置文本在画布上绘制的起始位置 + double position[2] = {width_ / 5.0, height_ / 2.0}; + // 将文本绘制到画布上 + OH_Drawing_TypographyPaint(typography, cCanvas_, position[0], position[1]); + + // 确认typography不再使用时销毁 + OH_Drawing_DestroyTypography(typography); + // 确认已经完成layout时销毁 + OH_Drawing_DestroyTypographyHandler(handler); + // 确认不需要使用字体绘制功能时销毁 + OH_Drawing_DestroyFontCollection(fontCollection); + // 确认已经完成layout时销毁 + OH_Drawing_DestroyTextStyle(txtStyle); + // 确认已经完成layout时销毁 + OH_Drawing_DestroyTypographyStyle(typoStyle); +} + +void SampleBitMap::DrawTextNAbility() +{ + // 创建字体,并设置文字大小 + OH_Drawing_Font* font = OH_Drawing_FontCreate(); + int textSize = 40; + OH_Drawing_FontSetTextSize(font, textSize); + + /* 面向应用具备自排版能力的文本绘制场景 */ + // 创建文本构造器 + OH_Drawing_TextBlobBuilder* builder = OH_Drawing_TextBlobBuilderCreate(); + // count 需要用户自己定义 + int32_t count = 0; + // glyphs、posX和posY是开发者自排版产生的数据,使用该数据填充内存 + uint16_t* glyphs = nullptr; + float* posX = nullptr; + float* posY = nullptr; + int two = 2; + int one = 1; + const OH_Drawing_RunBuffer* runBuffer = OH_Drawing_TextBlobBuilderAllocRunPos(builder, font, count, nullptr); + for (int idx = 0; idx < count; idx++) { + runBuffer->glyphs[idx] = glyphs[idx]; + runBuffer->pos[idx * two] = posX[idx]; + runBuffer->pos[idx * two + one] = posY[idx]; + } + // 通过文本构造器创建文本 + OH_Drawing_TextBlob* textBlob = OH_Drawing_TextBlobBuilderMake(builder); + // 释放内存 + OH_Drawing_TextBlobBuilderDestroy(builder); + + /* 面向应用使用默认排版能力的文本绘制场景 */ + // 创建要显示的字符 + size_t size = 19; + const char16_t* buffer = u"Hello World Drawing"; + // 通过字符和对应的编码格式创建默认排版的文本 + OH_Drawing_TextEncoding type = OH_Drawing_TextEncoding::TEXT_ENCODING_UTF16; + OH_Drawing_TextBlob* textBlob2 = OH_Drawing_TextBlobCreateFromText(buffer, size * sizeof(char16_t), font, type); + // 创建一个画刷Brush对象,Brush对象用于形状的填充 + cBrush_ = OH_Drawing_BrushCreate(); + OH_Drawing_BrushSetColor(cBrush_, OH_Drawing_ColorSetArgb(0xFF, 0x00, 0x00, 0x00)); + + // 将Brush画刷设置到canvas中 + OH_Drawing_CanvasAttachBrush(cCanvas_, cBrush_); + // 设置文本在画布上绘制的起始位置 + double position[2] = {width_ / 5.0, height_ / 2.0}; + // 将文本绘制到画布上 + OH_Drawing_CanvasDrawTextBlob(cCanvas_, textBlob, position[0], position[1]); + // 释放内存 + OH_Drawing_TextBlobDestroy(textBlob); + OH_Drawing_FontDestroy(font); +} + +napi_value SampleBitMap::NapiDrawPattern(napi_env env, napi_callback_info info) +{ + DRAWING_LOGI("NapiDrawPattern"); + if ((env == nullptr) || (info == nullptr)) { + DRAWING_LOGE("NapiDrawPattern: env or info is null"); + return nullptr; + } + + napi_value thisArg; + if (napi_get_cb_info(env, info, nullptr, nullptr, &thisArg, nullptr) != napi_ok) { + DRAWING_LOGE("NapiDrawPattern: napi_get_cb_info fail"); + return nullptr; + } + + napi_value exportInstance; + if (napi_get_named_property(env, thisArg, OH_NATIVE_XCOMPONENT_OBJ, &exportInstance) != napi_ok) { + DRAWING_LOGE("NapiDrawPattern: napi_get_named_property fail"); + return nullptr; + } + + OH_NativeXComponent *nativeXComponent = nullptr; + if (napi_unwrap(env, exportInstance, reinterpret_cast(&nativeXComponent)) != napi_ok) { + DRAWING_LOGE("NapiDrawPattern: napi_unwrap fail"); + return nullptr; + } + + char idStr[OH_XCOMPONENT_ID_LEN_MAX + 1] = {'\0'}; + uint64_t idSize = OH_XCOMPONENT_ID_LEN_MAX + 1; + if (OH_NativeXComponent_GetXComponentId(nativeXComponent, idStr, &idSize) != OH_NATIVEXCOMPONENT_RESULT_SUCCESS) { + DRAWING_LOGE("NapiDrawPattern: Unable to get XComponent id"); + return nullptr; + } + DRAWING_LOGI("ID = %{public}s", idStr); + std::string id(idStr); + SampleBitMap *render = SampleBitMap().GetInstance(id); + if (render != nullptr) { + render->Prepare(); + render->Create(); + render->ConstructPath(); + render->SetPenAndBrush(); + render->DrawPath(); + render->DisPlay(); + render->Destroy(); + DRAWING_LOGI("DrawPath executed"); + } else { + DRAWING_LOGE("render is nullptr"); + } + return nullptr; +} + +napi_value SampleBitMap::NapiDrawText(napi_env env, napi_callback_info info) +{ + DRAWING_LOGI("NapiDrawText"); + if ((env == nullptr) || (info == nullptr)) { + DRAWING_LOGE("NapiDrawPattern: env or info is null"); + return nullptr; + } + + napi_value thisArg; + if (napi_get_cb_info(env, info, nullptr, nullptr, &thisArg, nullptr) != napi_ok) { + DRAWING_LOGE("NapiDrawPattern: napi_get_cb_info fail"); + return nullptr; + } + + napi_value exportInstance; + if (napi_get_named_property(env, thisArg, OH_NATIVE_XCOMPONENT_OBJ, &exportInstance) != napi_ok) { + DRAWING_LOGE("NapiDrawPattern: napi_get_named_property fail"); + return nullptr; + } + + OH_NativeXComponent *nativeXComponent = nullptr; + if (napi_unwrap(env, exportInstance, reinterpret_cast(&nativeXComponent)) != napi_ok) { + DRAWING_LOGE("NapiDrawPattern: napi_unwrap fail"); + return nullptr; + } + + char idStr[OH_XCOMPONENT_ID_LEN_MAX + 1] = {'\0'}; + uint64_t idSize = OH_XCOMPONENT_ID_LEN_MAX + 1; + if (OH_NativeXComponent_GetXComponentId(nativeXComponent, idStr, &idSize) != OH_NATIVEXCOMPONENT_RESULT_SUCCESS) { + DRAWING_LOGE("NapiDrawPattern: Unable to get XComponent id"); + return nullptr; + } + DRAWING_LOGI("ID = %{public}s", idStr); + std::string id(idStr); + SampleBitMap *render = SampleBitMap().GetInstance(id); + if (render != nullptr) { + render->Prepare(); + render->Create(); + render->DrawText(); + render->DisPlay(); + render->Destroy(); + DRAWING_LOGI("DrawText executed"); + } else { + DRAWING_LOGE("render is nullptr"); + } + return nullptr; +} + +SampleBitMap::~SampleBitMap() +{ + // 销毁创建的对象 + OH_Drawing_BrushDestroy(cBrush_); + cBrush_ = nullptr; + OH_Drawing_PenDestroy(cPen_); + cPen_ = nullptr; + OH_Drawing_PathDestroy(cPath_); + cPath_ = nullptr; + // 销毁canvas对象 + OH_Drawing_CanvasDestroy(cCanvas_); + cCanvas_ = nullptr; + // 销毁bitmap对象 + OH_Drawing_BitmapDestroy(cBitmap_); + cBitmap_ = nullptr; + + buffer_ = nullptr; + bufferHandle_ = nullptr; + nativeWindow_ = nullptr; + mappedAddr_ = nullptr; +} + +void SampleBitMap::Destroy() +{ + // 销毁创建的对象 + OH_Drawing_BrushDestroy(cBrush_); + cBrush_ = nullptr; + OH_Drawing_PenDestroy(cPen_); + cPen_ = nullptr; + OH_Drawing_PathDestroy(cPath_); + cPath_ = nullptr; + // 销毁canvas对象 + OH_Drawing_CanvasDestroy(cCanvas_); + cCanvas_ = nullptr; + // 销毁bitmap对象 + OH_Drawing_BitmapDestroy(cBitmap_); +} + +void SampleBitMap::Release(std::string &id) +{ + PluginManager::GetInstance()->ReleaseRender(id); + SampleBitMap *render = SampleBitMap::GetInstance(id); + if (render != nullptr) { + delete render; + render = nullptr; + g_instance.erase(g_instance.find(id)); + } +} + +void SampleBitMap::Export(napi_env env, napi_value exports) +{ + if ((env == nullptr) || (exports == nullptr)) { + DRAWING_LOGE("Export: env or exports is null"); + return; + } + napi_property_descriptor desc[] = { + {"drawPattern", nullptr, SampleBitMap::NapiDrawPattern, nullptr, nullptr, nullptr, napi_default, nullptr}, + {"drawText", nullptr, SampleBitMap::NapiDrawText, nullptr, nullptr, nullptr, napi_default, nullptr}}; + napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc); + if (napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc) != napi_ok) { + DRAWING_LOGE("Export: napi_define_properties failed"); + } +} + +void SampleBitMap::RegisterCallback(OH_NativeXComponent *nativeXComponent) +{ + DRAWING_LOGI("register callback"); + renderCallback_.OnSurfaceCreated = OnSurfaceCreatedCB; + renderCallback_.OnSurfaceDestroyed = OnSurfaceDestroyedCB; + // Callback must be initialized + renderCallback_.DispatchTouchEvent = nullptr; + renderCallback_.OnSurfaceChanged = nullptr; + OH_NativeXComponent_RegisterCallback(nativeXComponent, &renderCallback_); +} + +SampleBitMap *SampleBitMap::GetInstance(std::string &id) +{ + if (g_instance.find(id) == g_instance.end()) { + SampleBitMap *render = new SampleBitMap(id); + g_instance[id] = render; + return render; + } else { + return g_instance[id]; + } + return nullptr; +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.h b/Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.h new file mode 100644 index 00000000000..b2d92d1dda2 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/samples/sample_bitmap.h @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef SAMPLE_BITMAP_H +#define SAMPLE_BITMAP_H +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "napi/native_api.h" + +class SampleBitMap { +public: + SampleBitMap() = default; + ~SampleBitMap(); + explicit SampleBitMap(std::string id) : id_(id) {} + static napi_value NapiDrawPattern(napi_env env, napi_callback_info info); + static napi_value NapiDrawText(napi_env env, napi_callback_info info); + static void Release(std::string &id); + void DrawPath(); + void DrawText(); + void DrawTextNAbility(); + void SetWidth(uint64_t width); + void SetHeight(uint64_t height); + void SetNativeWindow(OHNativeWindow *nativeWindow); + void Prepare(); + void Create(); + void DisPlay(); + void ConstructPath(); + void SetPenAndBrush(); + void Export(napi_env env, napi_value exports); + void RegisterCallback(OH_NativeXComponent *nativeXComponent); + void Destroy(); + static SampleBitMap *GetInstance(std::string &id); + std::string id_; +private: + OH_NativeXComponent_Callback renderCallback_; + + uint64_t width_ = 0; + uint64_t height_ = 0; + + OH_Drawing_Bitmap *cBitmap_ = nullptr; + OH_Drawing_Canvas *cCanvas_ = nullptr; + + OH_Drawing_Path *cPath_ = nullptr; + OH_Drawing_Brush *cBrush_ = nullptr; + OH_Drawing_Pen *cPen_ = nullptr; + OHNativeWindow *nativeWindow_ = nullptr; + uint32_t *mappedAddr_ = nullptr; + BufferHandle *bufferHandle_ = nullptr; + struct NativeWindowBuffer *buffer_ = nullptr; + int fenceFd_ = 0; +}; + + +#endif diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/index.d.ts b/Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/index.d.ts new file mode 100644 index 00000000000..81c455d5358 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/index.d.ts @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ diff --git a/Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/oh-package.json5 b/Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/oh-package.json5 new file mode 100644 index 00000000000..2551436a2c7 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/cpp/types/libentry/oh-package.json5 @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "name": "libentry.so", + "types": "./index.d.ts", + "version": "12", + "description": "Please describe the basic information." +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/ets/entryability/EntryAbility.ets b/Drawing/NDKDrawing/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 00000000000..4e3af23763f --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/Drawing/NDKDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/Drawing/NDKDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 00000000000..be794f48ccf --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/ets/interface/XComponentContext.ts b/Drawing/NDKDrawing/entry/src/main/ets/interface/XComponentContext.ts new file mode 100644 index 00000000000..e463cb1f4af --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/ets/interface/XComponentContext.ts @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export default interface XComponentContext { + drawPattern(): void; + + drawText(): void; +}; diff --git a/Drawing/NDKDrawing/entry/src/main/ets/pages/Index.ets b/Drawing/NDKDrawing/entry/src/main/ets/pages/Index.ets new file mode 100644 index 00000000000..46c39f33ec3 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import XComponentContext from "../interface/XComponentContext"; + +const TAG = '[Sample_DrawingAPI]'; + +@Entry +@Component +struct Index { + private xComponentContext: XComponentContext | undefined = undefined; + + build() { + Column() { + Row() { + XComponent({ id: 'xcomponentId', type: 'surface', libraryname: 'entry' }) + .onLoad((xComponentContext) => { + this.xComponentContext = xComponentContext as XComponentContext; + }).width('100%') // Multiples of 64 + }.height('88%') + .backgroundColor(Color.White) + Row() { + Button('Draw Path') + .fontSize('16fp') + .fontWeight(500) + .margin({ bottom: 24, right: 12 }) + .onClick(() => { + console.log(TAG, "Draw Path click"); + if (this.xComponentContext) { + console.log(TAG, "Draw Path"); + this.xComponentContext.drawPattern(); + } + }) + .width('33.6%') + .height(40) + .shadow(ShadowStyle.OUTER_DEFAULT_LG) + Button('Draw Text') + .fontSize('16fp') + .fontWeight(500) + .margin({ bottom: 24, left: 12 }) + .onClick(() => { + console.log(TAG, "draw text click"); + if (this.xComponentContext) { + console.log(TAG, "draw text"); + this.xComponentContext.drawText(); + } + }) + .width('33.6%') + .height(40) + .shadow(ShadowStyle.OUTER_DEFAULT_LG) + } + .width('100%') + .justifyContent(FlexAlign.Center) + .shadow(ShadowStyle.OUTER_DEFAULT_SM) + .alignItems(VerticalAlign.Bottom) + .layoutWeight(1) + } + } +} diff --git a/Drawing/NDKDrawing/entry/src/main/module.json5 b/Drawing/NDKDrawing/entry/src/main/module.json5 new file mode 100644 index 00000000000..8e24b46aa7a --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/module.json5 @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:icon", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/resources/base/element/color.json b/Drawing/NDKDrawing/entry/src/main/resources/base/element/color.json new file mode 100644 index 00000000000..3c712962da3 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/resources/base/element/string.json b/Drawing/NDKDrawing/entry/src/main/resources/base/element/string.json new file mode 100644 index 00000000000..b45ef5321b9 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "NDKDrawing" + } + ] +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/resources/base/media/background.png b/Drawing/NDKDrawing/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/Drawing/NDKDrawing/entry/src/main/resources/base/media/foreground.png b/Drawing/NDKDrawing/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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 E51q9-lK=n! literal 0 HcmV?d00001 diff --git a/Drawing/NDKDrawing/entry/src/main/resources/base/media/layered_image.json b/Drawing/NDKDrawing/entry/src/main/resources/base/media/layered_image.json new file mode 100644 index 00000000000..fb49920440f --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/resources/base/media/layered_image.json @@ -0,0 +1,7 @@ +{ + "layered-image": + { + "background" : "$media:background", + "foreground" : "$media:foreground" + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/resources/base/media/startIcon.png b/Drawing/NDKDrawing/entry/src/main/resources/base/media/startIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..366f76459ffd4494ec40d0ddd5c59385b9c5da11 GIT binary patch literal 4351 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 literal 0 HcmV?d00001 diff --git a/Drawing/NDKDrawing/entry/src/main/resources/base/profile/backup_config.json b/Drawing/NDKDrawing/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 00000000000..78f40ae7c49 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/resources/base/profile/main_pages.json b/Drawing/NDKDrawing/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 00000000000..1898d94f58d --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/Drawing/NDKDrawing/entry/src/main/resources/en_US/element/string.json b/Drawing/NDKDrawing/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 00000000000..b45ef5321b9 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "NDKDrawing" + } + ] +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/main/resources/zh_CN/element/string.json b/Drawing/NDKDrawing/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 00000000000..2484373118b --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "模块描述" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "NDKDrawing" + } + ] +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/mock/Libentry.mock.ets b/Drawing/NDKDrawing/entry/src/mock/Libentry.mock.ets new file mode 100644 index 00000000000..44d5c96308f --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/mock/Libentry.mock.ets @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const nativeMock: Record = { + 'add': (a: number, b: number) => { + return a + b; + }, +}; + +export default nativeMock; \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/mock/mock-config.json5 b/Drawing/NDKDrawing/entry/src/mock/mock-config.json5 new file mode 100644 index 00000000000..a1e6f06e0cb --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/mock/mock-config.json5 @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "libentry.so": { + "source": "src/mock/Libentry.mock.ets" + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets b/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets new file mode 100644 index 00000000000..28c4ee4132b --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/DrawingAbility.test.ets @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import { describe, it, expect } from '@ohos/hypium'; +import { Driver, ON } from '@ohos.UiTest'; +import { hilog } from '@kit.PerformanceAnalysisKit'; + +const TAG = '[Sample_NDKDrawingAPI]'; +const DOMAIN = 0xF811 +const BUNDLE = 'NDKDrawingAPI_' + +export default function abilityTest() { + + describe('ActsAbilityTest', () => { + /** + * 打开应用 + */ + it(BUNDLE + 'StartAbility_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbility_001 begin') + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.cdrawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `StartAbility_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Path')); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbility_001 end') + }) + + /** + * 点击按钮,绘制图形 + */ + it(BUNDLE + 'DrawPath_001', 2, async () => { + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawPath_001 begin') + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.cdrawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `DrawPath_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Path')); + let drawPathBtn = await driver.findComponent(ON.text('Draw Path')); + // 点击'Draw Path'按钮 + await drawPathBtn.click(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawPath_001 end') + }) + + /** + * 点击按钮,绘制文字 + */ + it(BUNDLE + 'DrawText_001', 2, async () => { + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawText_001 begin') + let driver = Driver.create(); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.cdrawing', + abilityName: 'EntryAbility' + }); + } catch (exception) { + hilog.info(DOMAIN, TAG, BUNDLE + `DrawText_001 exception = ${JSON.stringify(exception)}`) + expect().assertFail(); + } + await driver.delayMs(1000); + await driver.assertComponentExist(ON.text('Draw Text')); + let drawPathBtn = await driver.findComponent(ON.text('Draw Text')); + // 点击'Draw Text'按钮 + await drawPathBtn.click(); + await driver.delayMs(1000); + hilog.info(DOMAIN, TAG, BUNDLE + 'DrawText_001 end') + }) + }) +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/List.test.ets b/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 00000000000..c6a406e9eb0 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import abilityTest from './DrawingAbility.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/TestAbility.ets b/Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/TestAbility.ets new file mode 100644 index 00000000000..7f2910251cf --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/TestAbility.ets @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import UIAbility from '@ohos.app.ability.UIAbility'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import hilog from '@ohos.hilog'; +import { Hypium } from '@ohos/hypium'; +import testsuite from '../test/List.test'; +import window from '@ohos.window'; +import Want from '@ohos.app.ability.Want'; +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; + +export default class TestAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onCreate'); + hilog.info(0x0000, 'testTag', '%{public}s', 'want param:' + JSON.stringify(want) ?? ''); + hilog.info(0x0000, 'testTag', '%{public}s', 'launchParam:' + JSON.stringify(launchParam) ?? ''); + let abilityDelegator: AbilityDelegatorRegistry.AbilityDelegator; + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + let abilityDelegatorArguments: AbilityDelegatorRegistry.AbilityDelegatorArgs; + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments(); + hilog.info(0x0000, 'testTag', '%{public}s', 'start run testcase!!!'); + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite); + } + + onDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage) { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageCreate'); + windowStage.loadContent('testability/pages/Index', (err, data) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', + JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageDestroy'); + } + + onForeground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onForeground'); + } + + onBackground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onBackground'); + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/pages/Index.ets b/Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/pages/Index.ets new file mode 100644 index 00000000000..8802c95f2d4 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +@Entry +@Component +struct Index { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets b/Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets new file mode 100644 index 00000000000..5515fee5e71 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import hilog from '@ohos.hilog'; +import TestRunner from '@ohos.application.testRunner'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import Want from '@ohos.app.ability.Want'; + +let abilityDelegator: AbilityDelegatorRegistry.AbilityDelegator | undefined = undefined +let abilityDelegatorArguments: AbilityDelegatorRegistry.AbilityDelegatorArgs | undefined = undefined + +async function onAbilityCreateCallback() { + hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err : Error) { + hilog.info(0x0000, 'testTag', 'addAbilityMonitorCallback : %{public}s', JSON.stringify(err) ?? ''); +} + +export default class OpenHarmonyTestRunner implements TestRunner { + constructor() { + } + + onPrepare() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); + } + + async onRun() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun run'); + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + const bundleName = abilityDelegatorArguments.bundleName; + const testAbilityName = 'TestAbility'; + let lMonitor: AbilityDelegatorRegistry.AbilityMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) + const want: Want = { + bundleName: bundleName, + abilityName: testAbilityName + }; + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + abilityDelegator.startAbility(want, (err, data) => { + hilog.info(0x0000, 'testTag', 'startAbility : err : %{public}s', JSON.stringify(err) ?? ''); + hilog.info(0x0000, 'testTag', 'startAbility : data : %{public}s',JSON.stringify(data) ?? ''); + }) + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts b/Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts new file mode 100644 index 00000000000..9c68c9e5fcf --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import hilog from '@ohos.hilog'; +import TestRunner from '@ohos.application.testRunner'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; + +var abilityDelegator = undefined +var abilityDelegatorArguments = undefined + +async function onAbilityCreateCallback() { + hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err: any) { + hilog.info(0x0000, 'testTag', 'addAbilityMonitorCallback : %{public}s', JSON.stringify(err) ?? ''); +} + +export default class OpenHarmonyTestRunner implements TestRunner { + constructor() { + } + + onPrepare() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); + } + + async onRun() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun run'); + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility' + let lMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) + var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName + var debug = abilityDelegatorArguments.parameters['-D'] + if (debug == 'true') + { + cmd += ' -D' + } + hilog.info(0x0000, 'testTag', 'cmd : %{public}s', cmd); + abilityDelegator.executeShellCommand(cmd, + (err: any, d: any) => { + hilog.info(0x0000, 'testTag', 'executeShellCommand : err : %{public}s', JSON.stringify(err) ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.stdResult ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.exitCode ?? ''); + }) + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); + } +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/module.json5 b/Drawing/NDKDrawing/entry/src/ohosTest/module.json5 new file mode 100644 index 00000000000..7bfda1a783c --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/module.json5 @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "module": { + "name": "entry_test", + "type": "feature", + "description": "$string:module_test_desc", + "mainElement": "TestAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:test_pages", + "abilities": [ + { + "name": "TestAbility", + "srcEntry": "./ets/testability/TestAbility.ets", + "description": "$string:TestAbility_desc", + "icon": "$media:icon", + "label": "$string:TestAbility_label", + "exported": true, + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ] + } + ] + } +} diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/color.json b/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/color.json new file mode 100644 index 00000000000..3c712962da3 --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/string.json b/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/string.json new file mode 100644 index 00000000000..65d8fa5a7cf --- /dev/null +++ b/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_test_desc", + "value": "test ability description" + }, + { + "name": "TestAbility_desc", + "value": "the test ability" + }, + { + "name": "TestAbility_label", + "value": "test label" + } + ] +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/media/icon.png b/Drawing/NDKDrawing/entry/src/ohosTest/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/Drawing/NDKDrawing/hvigor/hvigor-config.json5 b/Drawing/NDKDrawing/hvigor/hvigor-config.json5 new file mode 100644 index 00000000000..87990affc4f --- /dev/null +++ b/Drawing/NDKDrawing/hvigor/hvigor-config.json5 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "modelVersion": "5.0.0", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/Drawing/NDKDrawing/hvigorfile.ts b/Drawing/NDKDrawing/hvigorfile.ts new file mode 100644 index 00000000000..2e7b775e53d --- /dev/null +++ b/Drawing/NDKDrawing/hvigorfile.ts @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/Drawing/NDKDrawing/oh-package.json5 b/Drawing/NDKDrawing/oh-package.json5 new file mode 100644 index 00000000000..7a7fe7781e6 --- /dev/null +++ b/Drawing/NDKDrawing/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +{ + "modelVersion": "5.0.0", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/Drawing/NDKDrawing/ohosTest.md b/Drawing/NDKDrawing/ohosTest.md new file mode 100644 index 00000000000..63edec9a524 --- /dev/null +++ b/Drawing/NDKDrawing/ohosTest.md @@ -0,0 +1,10 @@ +# NdkDrawing 测试用例归档 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +| -------- | ------------ | ----------------- | ----------------------------------- | -------- | -------- | +| 拉起应用 | 设备正常运行 | | 成功拉起应用 | 是 | Pass | +| 绘制路径 | 位于首页 | 点击**Draw Path** | 页面显示出一个五角星 | 是 | Pass | +| 绘制文字 | 位于首页 | 点击**Draw Text** | 页面显示出一个“Hello World Drawing” | 是 | Pass | + diff --git a/Drawing/NDKDrawing/screenshot/path.png b/Drawing/NDKDrawing/screenshot/path.png new file mode 100644 index 0000000000000000000000000000000000000000..befd906dfc127cb4c7c114cd0b99bbf5534207f5 GIT binary patch literal 26537 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 P&L5Un?aZq#-+J}rJGUtM@~7u5i(6u1HAwND z$NR*@^l@glZ`nR`Wl#@fp-fsj*T%DN9^PY=@Jg*E_Tb$Q%EzpaRbNp4%cRip*Wo-@ zmfi8&`oZ^)9k;%3{payF&;R;mGGUkaQH%sSc&v7FGU9jEI11HFUxAJZ$EmA)1mHsi zO;3P|$YIyld0$F12Zr@ou=j~wZT7hQG+8m=KhD+qv!ATi5b7TB6j-k zr+fZAc3xa8{-C4S)!RS*cz)hUTI|U2TCqp3|JUVz^YXvN@V_MaA2R%3IP`nLWI{QU zA^maJPFJ<^d>UAp0j-YSj)4mNG2$eiCV+BQ+aw*pS(%1WVO|tBq@l8En>u2uF@$ap zPHfql@MV@3XP;d~1T?SRdDc1#iD@BS+rdm?o$F}`zIo3tI0sLYK(_3x_o%317ulWe zCwtiaKm`E(dtP~Y`L(#|+drhOUthtm)Iv9h9jY)xTjTu*?MY!VP~ctY{>^ap-@VKf z1LlIv6BG)S%V6SJm6#)hSV@3xbo})`-F(u6mFqd&w@%)LX-0R4gSV#>66pB#ZWR^P zHmlsP^TDGo;dbEttT#&82a$HxM>{)YAm;#9;B-fiGde*tw{fDb`2Lt(_B6Ls8Qy61 zMYBsVEg4gSdDL*M_F&kAcd@l_hYk!cd~o?5eQ1{s6zbg*GQ$btq3>~1kt#Q=oSZT# z0R(|ET0G&hO;H27enRX1=u9Wp8$dD#uc%H0P9 zm(XFmH2WhmM$+F*0qe&{Cnr~!EgVa{=qW{wheLl07XdOS3JyuE`wQK9LS zkbXm|OzUc#xk|kF`J_inL#5E!WSygA!p^+9G0LX;uA7^iF4V=pT&ceQlg5Q1ar}G+ zWJ)e-rG}{>+)juZ#ZS%4!#D1829XF&zw;@l^yflFuL`d<>Rd;9Ic@Y~`Q@Nk!xUxq?_P1D->DrTZ6fUKuKj>oRCDglTxYUzKw9ru(2QYkdm~TjMWxc+Ta;Z1l5FcFif;%9N zl+%Gad-rAOrHx!u@SD~q6xu}o{_GhEL;@h)Rj(8Yg|bsf$y9US(m98jRN91!mW~dm z)ilkUT$C1F;=mlv$#z?x>zc;m#-1ci5$}DzRyb#z7v6ZKX(2DobYsvL68LRjuH@{j z?Fb}BKr-Y^+VCdn0GZ!0tFa2U^7kov^eibRVbnFs4qTSh-@>S;*n_(@X(J=j=^d4L z<^(?*)0_?88V^)Z6;~K(!If%iYJNPbH}`J!^M#gp-mi8ks|w6U_^%fS;wd65=rji@ zC=@(yRIeXs^b@$hGc$HZ!o5ZJIC8!? zaNHk9{mzg+A4Rs%iR0JT*Kdh;`qz(N#3;Z9Zsqp>2b9(4QuKa*3gnx}xSX7-YJKhT z^V5C(`Hwc{336c%Pa8yLbvhP&eUSP68XX6X;tN0I>^v>RB5AcpaPS3Vg)+=Xb3Cgx z%8M^x#X!6-lVzAEKv#};R!n68V$|$Wl zV0@QR{5#bX#`d%oK8qlH?jCo_{?fUtK}mPMZHgwx7Tg1aP>c4^!#^vdjm5{KSS>mj z-@oX&B}A{lv9S5-a zbdQPuawQ(RxLBN1iAi?}?oyoAj_X5(PdR$4CY>)oW%DhqT)GxVLqxG;kTeT4Cf#sj zz_`%P-cfO~=*jU~-rF^st=AiL5NucvtAR_wN zq+Iyq@d=F9*$gBgU@1|hasiHl`D*djGYIFPARO2?u3{ns>{EKI?=pOPsXp3yce5%+ zg0U1Et!@$pnvf+ilwYkF*d7_rO^5w^$#zz(MYzjXLBlag*a@HVI7^Ktd|OA+kfaoQ~oa#I6`WhonA@Af$M5Pm2D*50g+{l8nFGF-GjNcw{jm;Eo78!}D)&)(wHjd8~Q zB%xPc7;O=OyFrD8NI)^q4p$5>R}aN{t2Dnh(nTCqvqc8nRxZAfiV#Vwl#03UC+uI^h9sX zrd&wT{da zuFXt~kTD4g8NLm6SVPr@Kgjnjz8xKJ7C-o^z6&Jil&!!iU1z$xqhH0;LR)j z$}B|Bg&`K46=ke?_zj036g<}7y?H*{f+k8EV^u^FV5q4Tb2cvE$OTkT-{OhVZ=~5% znkUrFdKO!XbKDyYx5nIZN46c^)9k*($|f?BU#>gRc=ikZBHD6eXT>4s*63Lo!3nD# z6X0b8cRnLZy~+li^H}9%xai4_y*k|T?37XSjjDxiqz|TfCc_unrI>L9`(0~2O5pMrdb@s+NauB8Dc#KrMs*PGniiDC1=qKCmddWdp%u>4uYqE z)EfWs8z!zM@2L5eV6kQN|G=#+YW#76oDsf#{us?vYwdbFzZmoVXgWrcg0=B>MCq`SP!*EE^K2c49Fp?fRRUEc)p;V|(K?F+4*Rb8{t_vNa-w$Pz! z-h(`wj?3-y*15*)mUQP>pFf5C2472p9AVXYDUL?zidbA8A)e<(Ackn)OdEJx5_F zYgf15`Y0qh^i{=ifA3Byb?~8eDgB8h>s3_rdYAaQ`u`#~M$>wi!#6I=W!zZ!8vFgt z2^8$?l1BCRvbwR_ec`)6LaVjAyFSLApWZ8Yg?l&H$?s||CpnaJDe)M-6lMA#@) zkK-{C@dHXI*aO`&84n(Iw4G}+ftP;pmxVSw)^#kDLg{B4ev|^O^_Vzia-R)kV2*a# zO2xEBZ;g8oA39F7DwwZQf3Z(bQp1CbmQ$qNGmv>yJD3o?Qv%-e~N|VFpjpCVV~VbFTCEd55e(4Lp<_H`C;? zX+YyzHjLO2(jVYmX#sk+@*2+&iU%|N7WH5){#s3);s50xhpiGYU1(+n;67yq56l~b zkM1Vr&fySkTGc-N>c*+h4rNGYn}cG8)uvOQxl}>PS_B$@ieru_Z^q0ds%-66-@-|5 zo=_vmPDQ~nYPpoiWpq@`m9KdU-rMN8?tETSMxaX+1Dlo(Xc|)8)$fksrdPJ|mID1( zM_aeBBoWt{ibAc#?9yZGYO(DKb~a7G{(J;SZUCeL_w$6Wr6 zOE<=+3%?yum<-_Z)n}*Hgq97jlHRFa%>tI&{o4VNnKuEVZI2blpQwHR2Pjq#4o#B_ z8_U%ck?!u6c*{|}rHC2z)Ur3D?n^!SXImr*T9Yh6>7^T(KcwT>ltYej1cZCR^Scl$ zVApVHKJOZ7$J)5QWI<~OirB_FsbY=np(65pY=+BT_CzBbfcG54%?J)s(9x>S#08}m zUhtsR$D||SKbAn?Q5_ZQ(5NdsBT|2tAp5~5pm2w+f_&&j9r_xxlR)j0v0YfH3=6^V z@q>3{?ZD;a&;=+ttGm2l*#T^wcRKIWqDanTD z%U86Hu8rokom^6Y$NRV$5$_HwaihqgP5MJ$+m4tx_#WB#3=>pXW-nnw?P8C*EEZHB zJzwgQ@e%%OuR_UWRIcWScl)dzc(ucN;sm7=t$%LLHy_LFdZRAZX6~SSF8Ig!X)7)1 zLF9##)f2IUioW6oM$-RQlOAihv=){hghgZ{e9*>6oAPdEtS=^<$SZe)9rSxloc=>J zJYlbh%AO7vot)z$T%0_Egtd?9sEur#pp-}?)b1BAtfW~-s;7`AQ)31ox=-YnHTZI?@>HAXEQLG+TnpyvZ_F|9hvHz*L z|5LgDC++{w&-nkfpP?nvqbBE;8Qpba&mU`k5FyyrlScKn%66(^&$*}O-Ch4Vr?z_i zoSNwB$iTqWy4>>eBsUSV8e6}$Q~`rooI& zh1Xp|gM&wMx*=!5mo%U&SANc3tXtiAaT};>wZ~xPoF;?0xmlN%e*?)PjHPC(Sgo-8L;{GqDaEXhL zOrK01iLE(RyO?P058nTUxLSt2c4S^#JXTKW?Pp$@mRiAtZYlB884tG$Pm}E9o6~*B zB{_Mg{;n#V*a$r1HK4kRrcQ?n7c7Z{DM$QWU#cb$=!DAmoTBY`rZ2Ii1D{ znG%|8-sGGqyaV}B6l>tJ=ZP6TsVK>3$P}ISS59S^6IjyZK8;QuhN_g^R~Y8GhN2f? z0P|wg_k*WuvHKC=^?De<(sWUC#a4Es=7?raec|S#IYFhqYJ`)%LUEGMm^ojU!HI72 z0{E+xiAG7)n(Q@9j|Ql78Ta*7xi_Y=qi@PcY)3bh6mTr)yv@3~ET*RcT zM>HEo#1yf=q$uX}gAh?!R?GLFz+U+c-c(m6k;yh=u0t0^_dY4H@o*;E&5e5?z9t1n zXDbH*&>`Ls;-ans@lDA{^Bkk5or{S_V<2t>;)5Y=>o-WV<@=B3jO)FgJE)lK$;{Y3 z=dHS^8E>WkiM&TX>13QwWR8y_{GJ+%^}<{~?4NjOWR9*vA^9}GJEll*ZW-+UwMHuE z0@`%!N4y`P+D<0zhVy~L6ewZ$1}{3FPbkiuywHl+h`Y$y=#gNi>Bu^JW~fsoD$6Nx z{LSqQ`!&gsNSU(SJxicMsO_5G_#CKCUDZNybiz5? znv~s&KyF3Xpc_{WYu8u9Z-l;&Gz&d_z18cdrj}jjTlFNXOO2;?J~_IVLUFunhEUY0 zoiWEUq86WDAjr;$etX2@XTj#dv)p&ddv914E4o}RvnX~S=}BhBc+@ulCuvLBnT9js z969f_LUSm6Q-AUsCA3LVX=_7vr>6bXKQ8xu(3;A5V8N9LT5+LQg{|y$^_Ib3YFXn; z&<29yE0v{y&mE%MUBX>p;SYP^dLJUFEg>$5mnc^8& zX0j0-to$cKj(+b``CGdoRLkYirlOZYHGj=s9J%my_k8)S?2*M^4rUIC(fhgr3}z)~ zC(n!`CHrFsLB#pikYCO^ZnIll`*+cbW|Sv`(Ut;*W$>(G&TcQ&p9#uPJ&}Tb0yFT* zh+vkWXv*hgu@g@Qo4xeW%YILVUby`+1&ev9RsT?_)Ygp#;V$FZA7O6?&S$x)xwH#b z>g&0@>!^Odvk8g&ENa4a9?y+A7go=tV|bSEyJo$*^=kz zWc~DpW8{4$q;Z#ENNaRnRh#kE{Vf_*-{A9!huE6|_fb~Gh2SVx7@>+c8U>$vEq|ts z@^$%xmWMvRTi|F*0%TxP$f=g2J+IHHz1yBa-$R`E=Al0)iTpSYh{h6)|(_+%iM zkN#_T2{Ytl<6;Y4uL_}DP)&2_d|0@-yYqRLzv&NdDb>^?CI(s@)k7^+sRjQjid#rKwu|0WdT-)p94F!pKCW zrSryPl5mq<{AT$|Pd^`@B?tQGjiOQA&b5=Eb1I9^?!&w7q$b_N#{#<4NK2E0QJaG5 zT&j9^lsqd4w_7(iRVIAGz)qR>^^P_3B-LEAY=Y^6$9^vT_20~0nDm^e!tl2Rvv=J7 zkpn9GfPA}%A8L3zr_Vz!+mcRQP+v^UYig;R(>91GTVAMjxr)po|GtbA)cLsFX&y&?!8i^J_3{@2#h*V}l(W%b100-5$$<5=A z$)L}9=sqgH6aF*Xf;oVaZL_bbXm}NpGm+aB(3nPdAMeOA_<>tgDjsY?aF`b;N0@c3 zyrK}L-HK+jT6)nuaY54WTmv=+PFUuRqq;V)xuxCAR0)?-i@h*3e9C>`s&HJ(jF^q*Y{qLFMQIU`14Ekk*ZpTVWMzXf;~W zPqU(GH8z6K&n=4cH|it7)vk_WiwP;@Sk-`fPUyy6T{g$%vB~y;{rvk@s=ftt$f~}f zoIsjMK@F}P9dFcoHH4=5t>I~^P$4>V(oDf8D16r;Gjl0ik+v>-q&TLmLvH236WEVF z3+7KN+_uYRtD0_PzlXx_SlX3=kDPe2Ue*x-%tpLp%7{H z!Jrq3{#=ZS|K;xu4Fs;b`E>q<3)W14mVJf=leqWHy6J9XCo9;)*(NEcNhH!QRAH*< za`c%=0acrDeDGIxCc`+4crm;~0}VBw4?hQ)DDFZbtU|hqeyL8!>5BA16DBSbQ&GXu2MdOI1aq(+s}|pyeS1o^J+?wBWQBzUs91 znp<5kS_;aCj<2ZgvVWz}yq7iQ1NdCDA#}b__WPTrWTYx#H%d_X3sai>SbVn3Ao6?E z$GR$37^k;;PfUeJqhvK^Fu-66D7H!;|#^QJFb}y`}Tp82}({^qg6m0y4;(otpKsf=SJVVs}aAI3w^$Kn~IDx{7lAC@= zcST6f2O!fYFZ6FTxM*KON-?-z=N6I9F=55)&%kg;`pCojK>@EX7p19-U|kdzQs%;h zMKLY229xnbOafbh#tRJ5jR;?Ll!Iz0RC{uR>Pu;OZZ|-cS)LKr7$vXH<%}2n;&^t`AzOu z_&f%$LridQ{yR5a##NX9e zhu@}OI+LaIEx#7^wN_S5ryl?@OT-PRQ6pE7s37$GKEfB)UT)Vxq+HB+)5c>JD1R|+v(7(k#KkEB|dCO&;Ms1-S zf8aWTwUpNv827!3Ff>E-2;aUY?>#R}%d4Wfz0VUdjg#bey+CLEoS1E0ISM)Ng?{Qt z&eXB}t@XAS(3;2_6dgi5?aMZV5VhMg>qLEz*Wm{UN2(P|RgZFqAyMDm9q>HrDu;U$ zKG!H8KB47;=V3?N4(y$KfH#Yi6-^AauzgetHmc@)9eRZz?+Ov(j z6n{4qHH=w9=L1G3w^C_NB|o3(-{B(_FilBFWeznWA)R9lRyL3#G_)9O#HF}^TW?-1T;mkwkxlr-ngIrspX4{FDTZjah*4@853klTPB(~B}|@6Exfn| z)I8R~#k5Rd=GY*MCBlm7_ky)Pco5Qq(=DqQPNngA+CrMat{cIF)1K6a-X0Ib^}dmV zN)Y%c9!I6mg^v3>v;rQkFmae_Ab+`0Mj-!#PNU6@xaM{t(YY~G;{oZDgq`^B@x=Om z2Ux>RK#hyrm~12>49WkUkjaOyiBt%dM&XSgM58I;a64aOYq#y&4G|^B{-pq2>@pUn zyIN0JkX|5M4pnnJB$!r8xK|)M%f>u13v3s|lG>3j-SV3~zYoQ53E}Rxu{?D+4f7dZ zfwGmPxxLtEqDu55Cd0TszwZ1>k@}^574}ox#E`I6CsU9GbJ-OY9Yqefg$DKpr12#b zQ5&Zv?7v(Sy5HWL{29!s@sGQ_NnnO&(IQ922GjQDj8&e`niSPR+~MdEIJxDw$_Awi zD_w@6)py=*`2;)Ah8bZS__Ytx-Ul<{ORM@@D|_J4e2?%RVAOZ$uC=%NT_OV5{DW#0sPY%_^YlN^Ecim4?F=2S5?x9di0b;-}z$^N`>_)ixH*DAw4_lp^$ zAAAHkDY2Jws*3eh)0YyZ?@VpAV(B9c$^)m*R@uNl!yu+^_@d0_?5q9Z1E1v(4y9oO zIlRpEHw8+4{vjfIyQBsz!qU|8CfT>UsK9cfsE$ltXSrkDpU~8zbS~0*tW{3PCRSFz z1V&`X2KN=F%U@_HZLi>d7u`N8M^Jz4@C7rapd!`raSAPhMxXt9H~QXg z!y*VaBDhKpy8fkYj63Q$J2{@?FP`vc7~exwmg1u&6fCRZYG|7=yq)@i7>M8zXe{`i z%MF`^RC8u3FdU!Ktp}2$j}mtoLbb86LF7RU2gdXi74yj?hxG4wWl?G_r(Bp@37~0HJtC8OB1Ntz4e@iSL6~C+4e94;Y<}*3qwCupJ4W*+$edZ& zio7c5$N)UrdAIg92wdI{S!`d#l%UJYRfh1W`j=6N6n`aXO=PUEznbJ<{_g=CpVHO0 zi@`QoPVS4Hf!{A@ac%qnaN(^!XYJPjDIS0&vHS=1W9aaAmGpqLGWegIO|?; z51(p9IF(Or_nBESVpgilT5xwl(6E#n9Z5jmVSnt4@zkv-FH-U8ba;;jt~=tD@3#}bc z_1=^1`f@g@NRG{K2=d_VK7i&Y*W(0IQWcXcYpgzCo{6{Z#aTpk^b zAkgJmbazHG0jVdH4)1qpv?$TQyg|TNTl(0=b_NK4Cx_74e4e$Ffrzz=@L51%f`xK7+4ezDt$+(n-e9!(H`0=eTYEMlCXCqc_` z$AQl8)SgFwYe#1^-;;*~1IL7Bxb@W72Hj)%-#b-$Luve9HkH`M=33ijr?eeyGx`A= z5`6%(du1+Mu)GX^gF4+lfqU2a^^f%RxV+;oBR=blg1F+_|L2 zHF{8V@H5R0q@cNX8WiqS3A9lRODgVM^xezRf6o?e(D4QIVLen?ln6?`SSNF1&kRq=RQ!IlKg` z+`Uin4bW;-5dwx?;H;;drOZvPgjS*|?qLSSGv9&wcGER%)+vf7!Sf+UpikW-FPgs> zAq2QAITKdl1x5}-#t6Jt#Ywvu$WK937`I>i$l3C2l5=G7cu z_Q82Kw^Q8S%wAFreL#D6N@87C;Q$=_z}MvR7s>v`9yzNkzjwKQNm0MXJ0{^)xXs;L z5@Q39fQe^?5zyX3S9U1gDZFugcyCZ3@r5fUc<75|jkTy1>_wQ}=!|`*#(a zl9ZTz9Z=QI)h~to=+sZwZJ0H;MxR7q<@zfxhID!lLK-6L^1A}CnoW9aFm+jur()a- zb@hzR9JSk(3gIbS-8`UXyJH+Byp&i}h!AL8+t4HTmzX7+3K-Tdy}751h&B|kIrM$H zyh52F^odhK=8eiWtBlF*bmkQBXtv}MxNsyf&-+dPhsu*RNOEf*(NrIz8TRB25{ZRz zw$YP)9y+*|+-n}-oloAu0ioLQLHR;G$6523+jnEA_au|t?(EoXI%SJrfZutOW0O_{ zcSs}NbL&E$5ddLl6%=t^zPQYR5yvyv5l6T|BA#vg%#TF$mg~7W`%jCix+umIkUGmH zsoE0`ubT_@0*-EhRqnaMoOm}DLx?9J3T^6gn24?e(f2Qd&4#2EasZHzoB)0485p|0 zd9J_s1mr-Q`j-0yuBKh%Sn=$`A4D_kR&zVO7bG{V^VAKUdXyRcFLCi(#a}fA{iXVF zv~KdW%mF{ZYdg}5?4vt*4=}ZJ{W2YhWJS3HB2OlaM4bP>KU!5oAnRL>9v<4L-w0Cv zg7gmpKXFmo6n8W`5OihnIdan)G{|m00g(wKeUk;98}n}Y%jAh%Av`lBHut0QkXAnU98^u%hn!~oEL*TlELZk89s-mon115IW3`Rc=&%>m?~V<13I`i2G< zV;=1~WV$l?@JUWFdGTS%mI;am3C*&Ec>ekJo@hC$FPguz8vWwnf^HvuiPC*Gd$SKT zXnqW&pJP>w?CRL%YlOCGGSC)L3y%PLlb5W?sKSM*24RKP_K{`zWPwBJpd} z1ZD}W*t*}ZV6TqcP=uMo>xVMfd0fYd93X@IFtPJC*a43Qzae=aslr(KrsZk8w~`sI zDX7vgx^wZVqTE0k`vnB^WX_)pbDarka|L`QrykvTVV}~RqL{H20#Msu#$Lp<)8kvl zs=R^4igJ4w8-5V)MiO8EKsXrr{Jq5ZLy>!>VlsHx#+D@Nru#2>vAIB{?WT(P6(3~( znGOJ2dw*i*k4K%!1?1{ed|i~9GPctk8zcpaW**lJ76tOJnzD(CIRKThp*O3!QV^?` zV+lg1xmBxxrU)jA3bL_hbpFfOF*CkqP9F#xbbUz0VA?taom@=8bOv6oZ#``cW2M1SD5*!JB!AxU?G^o{Rm{x9@^+=sqnG~=CM8Yn literal 0 HcmV?d00001 -- Gitee