From b37b00220d855c8d4ce510cd98b19471d027bf03 Mon Sep 17 00:00:00 2001 From: mamingshuai Date: Thu, 11 Mar 2021 18:43:06 +0800 Subject: [PATCH] update openharmony 1.0.1 --- .gitee/ISSUE_TEMPLATE.zh-CN.md | 13 - .gitee/PULL_REQUEST_TEMPLATE.zh-CN.md | 15 - BUILD.gn | 16 +- README.md | 633 ++++++++++++++++++ README_zh.md | 633 ++++++++++++++++++ communication/broadcast/BUILD.gn | 10 +- config/system_capability.json | 104 +++ figures/en-us_image_0000001081285004.png | Bin 0 -> 227053 bytes figures/en-us_image_0000001128146921.png | Bin 0 -> 57610 bytes figures/zh-cn_image_0000001081285004.png | Bin 0 -> 289744 bytes figures/zh-cn_image_0000001128146921.png | Bin 0 -> 57610 bytes interfaces/innerkits/LICENSE | 177 +++++ .../innerkits/distributed_service_interface.h | 58 ++ interfaces/kits/LICENSE | 177 +++++ .../broadcast/broadcast_interface.h | 235 +++++++ interfaces/kits/registry/iproxy_client.h | 150 +++++ interfaces/kits/registry/iproxy_server.h | 144 ++++ interfaces/kits/registry/registry.h | 111 +++ interfaces/kits/samgr/common.h | 260 +++++++ interfaces/kits/samgr/feature.h | 145 ++++ interfaces/kits/samgr/iunknown.h | 250 +++++++ interfaces/kits/samgr/message.h | 249 +++++++ interfaces/kits/samgr/samgr_lite.h | 321 +++++++++ interfaces/kits/samgr/service.h | 225 +++++++ readme.md | 3 - samgr/BUILD.gn | 22 +- samgr/adapter/BUILD.gn | 3 +- samgr/adapter/cmsis/time_adapter.c | 4 +- samgr/adapter/posix/lock_free_queue.c | 1 - samgr/adapter/posix/queue_adapter.c | 2 +- samgr/adapter/posix/thread_adapter.c | 17 +- samgr/registry/service_registry.c | 26 +- samgr/registry/service_registry.h | 7 +- samgr/source/BUILD.gn | 17 +- samgr/source/samgr_lite.c | 33 +- samgr/source/samgr_maintenance.c | 98 --- samgr/source/samgr_maintenance.h | 29 - samgr/source/service_impl.h | 2 - samgr_client/BUILD.gn | 42 +- samgr_client/source/remote_register.c | 165 ++--- samgr_endpoint/BUILD.gn | 86 +-- samgr_endpoint/source/client_factory.h | 0 samgr_endpoint/source/default_client.c | 79 ++- samgr_endpoint/source/default_client.h | 4 +- samgr_endpoint/source/endpoint.c | 253 ++++++- samgr_endpoint/source/endpoint.h | 6 +- samgr_server/BUILD.gn | 46 +- samgr_server/source/samgr_server.c | 352 +++++++--- samgr_server/source/samgr_server.h | 11 +- 49 files changed, 4665 insertions(+), 569 deletions(-) delete mode 100755 .gitee/ISSUE_TEMPLATE.zh-CN.md delete mode 100755 .gitee/PULL_REQUEST_TEMPLATE.zh-CN.md create mode 100755 README.md create mode 100755 README_zh.md create mode 100755 config/system_capability.json create mode 100755 figures/en-us_image_0000001081285004.png create mode 100755 figures/en-us_image_0000001128146921.png create mode 100755 figures/zh-cn_image_0000001081285004.png create mode 100755 figures/zh-cn_image_0000001128146921.png create mode 100755 interfaces/innerkits/LICENSE create mode 100755 interfaces/innerkits/distributed_service_interface.h create mode 100755 interfaces/kits/LICENSE create mode 100755 interfaces/kits/communication/broadcast/broadcast_interface.h create mode 100755 interfaces/kits/registry/iproxy_client.h create mode 100755 interfaces/kits/registry/iproxy_server.h create mode 100755 interfaces/kits/registry/registry.h create mode 100755 interfaces/kits/samgr/common.h create mode 100755 interfaces/kits/samgr/feature.h create mode 100755 interfaces/kits/samgr/iunknown.h create mode 100755 interfaces/kits/samgr/message.h create mode 100755 interfaces/kits/samgr/samgr_lite.h create mode 100755 interfaces/kits/samgr/service.h delete mode 100755 readme.md delete mode 100755 samgr/source/samgr_maintenance.c delete mode 100755 samgr/source/samgr_maintenance.h mode change 100755 => 100644 samgr_client/BUILD.gn mode change 100755 => 100644 samgr_endpoint/BUILD.gn mode change 100755 => 100644 samgr_endpoint/source/client_factory.h mode change 100755 => 100644 samgr_server/BUILD.gn diff --git a/.gitee/ISSUE_TEMPLATE.zh-CN.md b/.gitee/ISSUE_TEMPLATE.zh-CN.md deleted file mode 100755 index f09d98d..0000000 --- a/.gitee/ISSUE_TEMPLATE.zh-CN.md +++ /dev/null @@ -1,13 +0,0 @@ -### 该问题是怎么引起的? - - - -### 重现步骤 - - - -### 报错信息 - - - - diff --git a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md b/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md deleted file mode 100755 index 33948fd..0000000 --- a/.gitee/PULL_REQUEST_TEMPLATE.zh-CN.md +++ /dev/null @@ -1,15 +0,0 @@ -### 相关的Issue - - -### 原因(目的、解决的问题等) - - -### 描述(做了什么,变更了什么) - - -### 测试用例(新增、改动、可能影响的功能) - - - - - diff --git a/BUILD.gn b/BUILD.gn index 50da77b..b052e13 100755 --- a/BUILD.gn +++ b/BUILD.gn @@ -27,6 +27,11 @@ lite_component("samgr") { } } +copy("ConfigFiles") { + sources = [ "config/system_capability.json" ] + outputs = [ "$target_out_dir/config/system_capability.json" ] +} + ndk_lib("samgr_lite_ndk") { if (ohos_kernel_type == "liteos_m") { lib_extension = ".a" @@ -38,18 +43,21 @@ ndk_lib("samgr_lite_ndk") { "samgr", ] head_files = [ - "//foundation/distributedschedule/interfaces/kits/samgr_lite/samgr", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/communication/broadcast", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/communication/broadcast", ] if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") { deps += [ "samgr_server:server" ] head_files += [ - "//foundation/distributedschedule/interfaces/kits/samgr_lite/registry", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/registry", ] } } generate_notice_file("samgr_notice_file") { module_name = "samgr" - module_source_dir_list = [ "//third_party/bounds_checking_function" ] + module_source_dir_list = [ + "//third_party/bounds_checking_function", + "//third_party/cJSON", + ] } diff --git a/README.md b/README.md new file mode 100755 index 0000000..a8b4fda --- /dev/null +++ b/README.md @@ -0,0 +1,633 @@ +# samgr\_lite + +- [Introduction](#section11660541593) +- [Directory Structure](#section1464106163817) +- [Constraints](#section1718733212019) +- [Developing a Service](#section159991817144514) +- [Developing a Feature of a Service](#section11510542164514) +- [Developing an External API for Intra-Process Communication](#section1685211117463) +- [Invoking a Service in the Same Process](#section3690162916462) +- [Developing an External API for IPC](#section9220246194615) +- [Invoking a Service in Another Process](#section114372711475) +- [Developing a Client Proxy for Inter-Process Service Invocation](#section09341923114710) +- [Repositories Involved](#section10365113863719) + +## Introduction + +Due to limited platform resources, a unified system ability \(SA\) framework is provided to harmonize differences of hardware architectures \(for example, RISC-V, Cortex-M, and Cortex-A\), resources, and running modes. Two types of hardware platforms \(M- and A-core\) are defined. + +- M-core: hardware platforms with Cortex-M or equivalent processing capabilities. The system memory is generally less than 512 KB. There is only a lightweight file system that can be used in limited scenarios, or no file system at all. M-core platforms comply with the Cortex Microcontroller Software Interface Standard \(CMSIS\). +- A-core: hardware platforms with Cortex-A or equivalent processing capabilities. The system memory is greater than 512 KB. There is a comprehensive file system for storing a large amount of data. A-core platforms comply with the Portable Operating System Interface \(POSIX\) specifications. + +This service-oriented SA framework enables you to develop services, features, and external APIs, and implement multi-service process sharing and service invoking for inter-process communication \(IPC\). Wherein: + +- M core provides services, features, external APIs, and multi-service process sharing development. +- In addition to the capabilities provided by M-core, A-core provides capabilities such as IPC service invoking, permission control for IPC service invoking, and IPC service API development. + +Service-oriented architecture + +![](figures/en-us_image_0000001128146921.png) + +- Provider: a service provider that provides capabilities \(external APIs\) for the system +- Consumer: a service consumer that invokes the features \(external APIs\) provided by the service +- Samgr: an agency that manages capabilities provided by providers and helps consumers discover providers' capabilities + +Main objects of the SA framework: + +![](figures/en-us_image_0000001081285004.png) + +- SamgrLite: provides service registration and discovery. +- Service: implements lifecycle APIs of the service during service development. +- Feature: implements lifecycle APIs of the feature during feature development. +- IUnknown: implements external APIs for services or features based on **IUnknown**. +- IClientProxy: implements the consumer's proxy to send messages during IPC invoking. +- IServerProxy: implements the provider's proxy during IPC invoking, which needs to be implemented by developers. + +## Directory Structure + +**Table 1** Structure of the source code directory of the SA framework + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Directory

+

Description

+

interfaces/kits/samgr_lite/samgr

+

External APIs of the M- and A-core SA frameworks

+

interfaces/kits/samgr_lite/registry

+

External APIs for service invocation between A-core processes

+

interfaces/kits/samgr_lite/communication/broadcast

+

External APIs of the event broadcast service within M- and A-core processes

+

services/samgr_lite/samgr/adapter

+

POSIX and CMSIS interface adaptation layer, which is used to harmonize the differences between the APIs of M- and A-core

+

services/samgr_lite/samgr/registry

+

Stub functions for M-core service registration and discovery

+

services/samgr_lite/samgr/source

+

Basic code for the M- and A-core SA frameworks

+

services/samgr_lite/samgr_client

+

Registration and discovery for service invocation between A-core processes

+

services/samgr_lite/samgr_server

+

IPC address management and access control for service invocation between A-core processes

+

services/samgr_lite/samgr_endpoint

+

Packet RX/TX management for A-core IPC

+

services/samgr_lite/communication/broadcast

+

Event broadcast service for M- and A-core processes

+
+ +## Constraints + +- The SA framework is developed using the C programming language. +- Services in the same process use **IUnknown** for invoking. Messages are passed to the service through **IUnknown**. +- The service name and feature name must be constant character strings and the length must be less than 16 bytes. +- More-core depends on the Bootstrap service and calls the **OHOS\_SystemInit\(\)** function in the system startup function. +- A-core depends on the Samgr library and calls the **SAMGR\_Bootstrap\(\)** function in the **main** function. + +## Developing a Service + +- Inherit and redefine a service. + + ``` + typedef struct ExampleService { + INHERIT_SERVICE; + INHERIT_IUNKNOWNENTRY(DefaultFeatureApi); + Identity identity; + } ExampleService; + ``` + +- Implement the lifecycle function of the service. + + ``` + static const char *GetName(Service *service) + { + return EXAMPLE_SERVICE; + } + + static BOOL Initialize(Service *service, Identity identity) + { + ExampleService *example = (ExampleService *)service; + // Save the unique ID of the service, which is used when IUnknown is used to send messages to the service. + example->identity = identity; + return TRUE; + } + static BOOL MessageHandle(Service *service, Request *msg) + { + ExampleService *example = (ExampleService *)service; + switch (msg->msgId) { + case MSG_SYNC: + // Process the service. + break; + default:break; + } + return FALSE; + } + static TaskConfig GetTaskConfig(Service *service) + { + TaskConfig config = {LEVEL_HIGH, PRI_BELOW_NORMAL, + 0x800, 20, SHARED_TASK}; + return config; + } + ``` + +- Create a service object. + + ``` + static ExampleService g_example = { + .GetName = GetName, + .Initialize = Initialize, + .MessageHandle = MessageHandle, + .GetTaskConfig = GetTaskConfig, + SERVER_IPROXY_IMPL_BEGIN, + .Invoke = NULL, + .SyncCall = SyncCall, + IPROXY_END, + }; + ``` + +- Register the service and API with Samgr. + + ``` + static void Init(void) + { + SAMGR_GetInstance()->RegisterService((Service *)&g_example); + SAMGR_GetInstance()->RegisterDefaultFeatureApi(EXAMPLE_SERVICE, GET_IUNKNOWN(g_example)); + } + ``` + +- Define the initializer of the service. + + ``` + SYSEX_SERVICE_INIT(Init); + + ``` + + +## Developing a Feature of a Service + +- Inherit and redefine a feature. + + ``` + typedef struct DemoFeature { + INHERIT_FEATURE; + INHERIT_IUNKNOWNENTRY(DemoApi); + Identity identity; + Service *parent; + } DemoFeature; + ``` + +- Implement the lifecycle function of the feature. + + ``` + static const char *FEATURE_GetName(Feature *feature) + { + return EXAMPLE_FEATURE; + } + + static void FEATURE_OnInitialize(Feature *feature, Service *parent, Identity identity) + { + DemoFeature *demoFeature = (DemoFeature *)feature; + demoFeature->identity = identity; + demoFeature->parent = parent; + } + + static void FEATURE_OnStop(Feature *feature, Identity identity) + { + g_example.identity.queueId = NULL; + g_example.identity.featureId = -1; + g_example.identity.serviceId = -1; + } + + static BOOL FEATURE_OnMessage(Feature *feature, Request *request) + { + if (request->msgId == MSG_PROC) { + Response response = {.data = "Yes, you did!", .len = 0}; + SAMGR_SendResponse(request, &response); + return TRUE; + } else { + if (request->msgId == MSG_TIME_PROC) { + LOS_Msleep(WAIT_FEATURE_PROC * 10); + if (request->msgValue) { + SAMGR_PrintServices(); + } else { + SAMGR_PrintOperations(); + } + AsyncTimeCall(GET_IUNKNOWN(g_example)); + return FALSE; + } + } + return FALSE; + } + ``` + +- Create a feature object. + + ``` + static DemoFeature g_example = { + .GetName = FEATURE_GetName, + .OnInitialize = FEATURE_OnInitialize, + .OnStop = FEATURE_OnStop, + .OnMessage = FEATURE_OnMessage, + DEFAULT_IUNKNOWN_ENTRY_BEGIN, + .AsyncCall = AsyncCall, + .AsyncTimeCall = AsyncTimeCall, + .SyncCall = SyncCall, + .AsyncCallBack = AsyncCallBack, + DEFAULT_IUNKNOWN_ENTRY_END, + .identity = {-1, -1, NULL}, + }; + ``` + +- Register the feature and API with Samgr. + + ``` + static void Init(void){ + SAMGR_GetInstance()->RegisterFeature(EXAMPLE_SERVICE, (Feature *)&g_example); + SAMGR_GetInstance()->RegisterFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE, GET_IUNKNOWN(g_example)); + } + ``` + +- Define the initializer of the feature. + + ``` + SYSEX_FEATURE_INIT(Init); + + ``` + + +## Developing an External API for Intra-Process Communication + +- Define the **IUnknown** API. + + ``` + typedef struct DemoApi { + INHERIT_IUNKNOWN; + BOOL (*AsyncCall)(IUnknown *iUnknown, const char *buff); + BOOL (*AsyncTimeCall)(IUnknown *iUnknown); + BOOL (*SyncCall)(IUnknown *iUnknown, struct Payload *payload); + BOOL (*AsyncCallBack)(IUnknown *iUnknown, const char *buff, Handler handler); + } DemoApi; + ``` + +- Define the reference object of **IUnknown**. + + ``` + typedef struct DemoRefApi { + INHERIT_IUNKNOWNENTRY(DemoApi); + } DemoRefApi; + ``` + +- Initialize the object of **IUnknown**. + + ``` + static DemoRefApi api = { + DEFAULT_IUNKNOWN_ENTRY_BEGIN, + .AsyncCall = AsyncCall, + .AsyncTimeCall = AsyncTimeCall, + .SyncCall = SyncCall, + .AsyncCallBack = AsyncCallBack, + DEFAULT_IUNKNOWN_ENTRY_END, + }; + ``` + +- Register the feature API. + + ``` + SAMGR_GetInstance()->RegisterFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE, GET_IUNKNOWN(api)); + + ``` + + +## Invoking a Service in the Same Process + +- Obtain the external API of the service. + + ``` + DemoApi *demoApi = NULL; + IUnknown *iUnknown = SAMGR_GetInstance()->GetFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE); + if (iUnknown == NULL) { + return NULL; + } + int result = iUnknown->QueryInterface(iUnknown, DEFAULT_VERSION, (void **)&demoApi); + if (result != 0 || demoApi == NULL) { + return NULL; + } + ``` + +- Call the API. + + ``` + if (demoApi->AsyncCallBack == NULL) { + return NULL; + } + demoApi->AsyncCallBack((IUnknown *)demoApi, "I wanna async call callback good result!", AsyncHandler); + ``` + +- Release the API. + + ``` + int32 ref = demoApi->Release((IUnknown *)demoApi); + + ``` + + +## Developing an External API for IPC + +- Inherit **IServerProxy** to replace **IUnknown**: INHERIT\_SERVER\_IPROXY + + ``` + typedef struct DemoFeatureApi { + INHERIT_SERVER_IPROXY; + BOOL (*AsyncCall)(IUnknown *iUnknown, const char *buff); + BOOL (*AsyncTimeCall)(IUnknown *iUnknown); + BOOL (*SyncCall)(IUnknown *iUnknown, struct Payload *payload); + BOOL (*AsyncCallBack)(IUnknown *iUnknown, const char *buff, IOwner notify, INotifyFunc handler); + } DemoFeatureApi; + ``` + +- Initialize the **IServerProxy** object. + + ``` + static DemoFeature g_example = { + SERVER_IPROXY_IMPL_BEGIN, + .Invoke = Invoke, + .AsyncCall = AsyncCall, + .AsyncTimeCall = AsyncTimeCall, + .SyncCall = SyncCall, + .AsyncCallBack = AsyncCallBack, + IPROXY_END, + }; + ``` + +- Implement the **Invoke** function to process IPC messages. + + ``` + static int32 Invoke(IServerProxy *iProxy, int funcId, void *origin, IpcIo *req, IpcIo *reply) + { + DemoFeatureApi *api = (DemoFeatureApi *)iProxy; + BOOL ret; + size_t len = 0; + switch (funcId) { + case ID_ASYNCALL: + ret = api->AsyncCall((IUnknown *)iProxy, (char *)IpcIoPopString(req, &len)); + IpcIoPushBool(reply, ret); + break; + case ID_ASYNTIMECALL: + ret = api->AsyncTimeCall((IUnknown *)iProxy); + IpcIoPushBool(reply, ret); + break; + case ID_SYNCCALL: { + struct Payload payload; + payload.id = IpcIoPopInt32(req); + payload.value = IpcIoPopInt32(req); + payload.name = (char *)IpcIoPopString(req, &len); + ret = api->SyncCall((IUnknown *)iProxy, &payload); + IpcIoPushString(reply, ret ? "TRUE" : "FALSE"); + } + break; + case ID_ASYNCCALLBACK: { // convert to sync proxy + IpcIoPushString(reply, "Yes, you did!"); + IpcIoPushBool(reply, TRUE); + } + break; + default: + IpcIoPushBool(reply, FALSE); + break; + } + return EC_SUCCESS; + } + ``` + +- Register the API. This step is same as the API registration for intra-process communication. + + ``` + SAMGR_GetInstance()->RegisterFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE, GET_IUNKNOWN(g_example)); + + ``` + + +## Invoking a Service in Another Process + +- Obtain the external API of the service in another process. + + ``` + IClientProxy *demoApi = NULL; + IUnknown *iUnknown = SAMGR_GetInstance()->GetFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE); + if (iUnknown == NULL) { + return NULL; + } + int result = iUnknown->QueryInterface(iUnknown, CLIENT_PROXY_VER, (void **)&demoApi); + if (result != 0 || demoApi == NULL) { + return NULL; + } + ``` + +- Invoke the API for sending IPC messages. + + ``` + IpcIo request;char data[250]; + IpcIoInit(&request, data, sizeof(data), 0); + demoApi->Invoke(demoApi, 0, &request, NULL, NULL); + ``` + +- Release the API. + + ``` + int32 ref = demoApi->Release((IUnknown *)demoApi); + + ``` + + +## Developing a Client Proxy for Inter-Process Service Invocation + +- Define a client proxy for the IPC API. + + ``` + typedef struct DemoClientProxy { + INHERIT_CLIENT_IPROXY; + BOOL (*AsyncCall)(IUnknown *iUnknown, const char *buff); + BOOL (*AsyncTimeCall)(IUnknown *iUnknown); + BOOL (*SyncCall)(IUnknown *iUnknown, struct Payload *payload); + BOOL (*AsyncCallBack)(IUnknown *iUnknown, const char *buff, IOwner notify, INotifyFunc handler); + } DemoClientProxy; + typedef struct DemoClientEntry { + INHERIT_IUNKNOWNENTRY(DemoClientProxy); + } DemoClientEntry; + ``` + +- Enable the client proxy to encapsulate the IPC message API. + + ``` + static BOOL AsyncCall(IUnknown *iUnknown, const char *buff) + { + DemoClientProxy *proxy = (DemoClientProxy *)iUnknown; + IpcIo request; + char data[MAX_DATA_LEN]; + IpcIoInit(&request, data, MAX_DATA_LEN, 0); + IpcIoPushString(&request, buff); + int ret = proxy->Invoke((IClientProxy *)proxy, ID_ASYNCALL, &request, NULL, NULL); + return ret == EC_SUCCESS; + } + + static BOOL AsyncTimeCall(IUnknown *iUnknown) + { + DemoClientProxy *proxy = (DemoClientProxy *)iUnknown; + IpcIo request; + char data[MAX_DATA_LEN]; + IpcIoInit(&request, data, MAX_DATA_LEN, 0); + int ret = proxy->Invoke((IClientProxy *)proxy, ID_ASYNTIMECALL, &request, NULL, NULL); + return ret == EC_SUCCESS; + } + + static int Callback(IOwner owner, int code, IpcIo *reply) + { + size_t len = 0; + return strcpy_s(owner, MAX_DATA_LEN, (char *)IpcIoPopString(reply, &len)); + } + + static BOOL SyncCall(IUnknown *iUnknown, struct Payload *payload) + { + DemoClientProxy *proxy = (DemoClientProxy *)iUnknown; + IpcIo request; + char data[MAX_DATA_LEN]; + IpcIoInit(&request, data, MAX_DATA_LEN, 0); + IpcIoPushInt32(&request, payload->id); + IpcIoPushInt32(&request, payload->value); + IpcIoPushString(&request, payload->name); + int ret = proxy->Invoke((IClientProxy *)proxy, ID_SYNCCALL, &request, data, Callback); + data[MAX_DATA_LEN - 1] = 0; + HILOG_INFO(HILOG_MODULE_APP, "[TID:0x%lx]Remote response is %s!", pthread_self(), data); + return ret == EC_SUCCESS; + } + + struct CurrentNotify { + IOwner notify; + INotifyFunc handler; + }; + + static int CurrentCallback(IOwner owner, int code, IpcIo *reply) + { + struct CurrentNotify *notify = (struct CurrentNotify *)owner; + size_t len = 0; + char *response = (char *)IpcIoPopString(reply, &len); + HILOG_INFO(HILOG_MODULE_APP, "[TID:0x%lx]Notify Remote response is %s!", pthread_self(), response); + notify->handler(notify->notify, response); + return EC_SUCCESS; + } + + static BOOL AsyncCallBack(IUnknown *iUnknown, const char *buff, IOwner notify, INotifyFunc handler) + { + struct CurrentNotify owner = {notify, handler}; + DemoClientProxy *proxy = (DemoClientProxy *)iUnknown; + IpcIo request; + char data[MAX_DATA_LEN]; + IpcIoInit(&request, data, MAX_DATA_LEN, 0); + IpcIoPushString(&request, buff); + int ret = proxy->Invoke((IClientProxy *)proxy, ID_ASYNCCALLBACK, &request, &owner, CurrentCallback); + return ret == EC_SUCCESS; + } + ``` + +- Implement the factory method for creating the client proxy. + + ``` + void *DEMO_CreatClient(const char *service, const char *feature, uint32 size) + { + (void)service; + (void)feature; + uint32 len = size + sizeof(DemoClientEntry); + uint8 *client = malloc(len); + (void)memset_s(client, len, 0, len); + DemoClientEntry *entry = (DemoClientEntry *)&client[size]; + entry->ver = ((uint16)CLIENT_PROXY_VER | (uint16)DEFAULT_VERSION); + entry->ref = 1; + entry->iUnknown.QueryInterface = IUNKNOWN_QueryInterface; + entry->iUnknown.AddRef = IUNKNOWN_AddRef; + entry->iUnknown.Release = IUNKNOWN_Release; + entry->iUnknown.Invoke = NULL; + entry->iUnknown.AsyncCall = AsyncCall; + entry->iUnknown.AsyncTimeCall = AsyncTimeCall; + entry->iUnknown.SyncCall = SyncCall; + entry->iUnknown.AsyncCallBack = AsyncCallBack; + return client; + } + void DEMO_DestroyClient(const char *service, const char *feature, void *iproxy) + { + free(iproxy); + } + ``` + +- Register the factory method of the client proxy with Samgr. + + ``` + SAMGR_RegisterFactory(EXAMPLE_SERVICE, EXAMPLE_FEATURE, DEMO_CreatClient, DEMO_DestroyClient); + ``` + +- Obtain the external API of the service in another process. + + ``` + DemoClientProxy *demoApi = NULL; + IUnknown *iUnknown = SAMGR_GetInstance()->GetFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE); + if (iUnknown == NULL) { + return NULL; + } + int result = iUnknown->QueryInterface(iUnknown, DEFAULT_VERSION, (void **)&demoApi); + if (result != 0 || demoApi == NULL) { + return NULL; + } + ``` + +- Invoke the client proxy API of the service in another process. + + ``` + if (demoApi->AsyncCallBack == NULL) { + return NULL; + } + demoApi->AsyncCallBack((IUnknown *)demoApi, + "I wanna async call callback good result!", NULL, AsyncHandler); + ``` + +- Release the API. + + ``` + int32 ref = demoApi->Release((IUnknown *)demoApi); + ``` + + +## Repositories Involved + +[Distributed Scheduler subsystem](en-us_topic_0000001115719369.md) + +**[samgr\_lite](https://gitee.com/openharmony/distributedschedule_services_samgr_lite)** + diff --git a/README_zh.md b/README_zh.md new file mode 100755 index 0000000..be87849 --- /dev/null +++ b/README_zh.md @@ -0,0 +1,633 @@ +# 介绍 + +- [简介](#section11660541593) +- [目录](#section1464106163817) +- [约束](#section1718733212019) +- [开发服务](#section159991817144514) +- [开发服务的子功能](#section11510542164514) +- [开发进程内对外接口](#section1685211117463) +- [调用进程内服务](#section3690162916462) +- [开发跨进程间对外接口](#section9220246194615) +- [调用跨进程间服务](#section114372711475) +- [开发跨进程间服务调用客户端代理](#section09341923114710) +- [涉及仓](#section10365113863719) + +## 简介 + +由于平台资源有限,且硬件平台多样,因此需要屏蔽不同硬件架构和平台资源的不同、以及运行形态的不同,提供统一化的系统服务开发框架。根据RISC-V、Cortex-M、Cortex-A不同硬件平台,分为两种硬件平台,以下简称M核、A核。 + +- M核:处理器架构为Cortex-M或同等处理能力的硬件平台,系统内存一般低于512KB,无文件系统或者仅提供一个可有限使用的轻量级文件系统,遵循CMSIS接口规范。 +- A核:处理器架构为Cortex-A或同等处理能力的硬件平台,内存资源大于512KB,文件系统完善,可存储大量数据,遵循POSIX接口规范。 + +系统服务框架基于面向服务的架构,提供了服务开发、服务的子功能开发、对外接口的开发、以及多服务共进程、进程间服务调用等开发能力。其中: + +- M核:包含服务开发、服务的子功能开发、对外接口的开发以及多服务共进程的开发框架。 +- A核:在M核能力基础之上,包含了进程间服务调用、进程间服务调用权限控制、进程间服务接口的开发等能力。 + +面向服务的架构: + +![](figures/zh-cn_image_0000001128146921.png) + +- Provider:服务的提供者,为系统提供能力(对外接口)。 +- Consumer:服务的消费者,调用服务提供的功能(对外接口)。 +- Samgr:作为中介者,管理Provider提供的能力,同时帮助Consumer发现Provider的能力。 + +系统服务开发框架主体对象: + +![](figures/zh-cn_image_0000001081285004.png) + +- SamgrLite:主要提供服务的注册与发现能力。 +- Service:开发服务时,需要实现的服务的生命周期接口。 +- Feature:开发功能时,需要实现的功能的生命周期接口。 +- IUnknown:基于IUnknown开发服务或功能的对外接口。 +- IClientProxy:IPC调用时,消费者的消息发送代理。 +- IServerProxy:IPC调用时,开发者需要实现提供者的消息处理接口。 + +## 目录 + +**表 1** 系统服务框架源代码目录结构 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

名称

+

描述

+

interfaces/kits/samgr_lite/samgr

+

M核和A核系统服务框架对外接口定义。

+

interfaces/kits/samgr_lite/registry

+

A核进程间服务调用的对外接口定义。

+

interfaces/kits/samgr_lite/communication/broadcast

+

M核和A核进程内事件广播服务的对外接口定义。

+

services/samgr_lite/samgr/adapter

+

POSIX和CMSIS接口适配层来屏蔽A核M核接口差异。

+

services/samgr_lite/samgr/registry

+

M核服务注册发现的桩函数。

+

services/samgr_lite/samgr/source

+

M核和A核系统服务开发框架基础代码。

+

services/samgr_lite/samgr_client

+

A核进程间服务调用的注册与发现。

+

services/samgr_lite/samgr_server

+

A核进程间服务调用的IPC地址管理和访问控制。

+

services/samgr_lite/samgr_endpoint

+

A核IPC通信消息收发包管理。

+

services/samgr_lite/communication/broadcast

+

M核和A核进程内事件广播服务。

+
+ +## 约束 + +- 系统服务开发框架统一使用C开发。 +- 同进程内服务间调用统一使用IUnknown接口对外象,消息接口统一由IUnknown接口传递给本服务。 +- 服务名和功能名必需使用常量字符串且长度小于16个字节。 +- M核:系统依赖上bootstrap服务,在系统启动函数中调用OHOS\_SystemInit\(\)函数。 +- A核:系统依赖samgr库,在main函数中调用SAMGR\_Bootstrap\(\)函数。 + +## 开发服务 + +- 继承并重新定义服务: + + ``` + typedef struct ExampleService { + INHERIT_SERVICE; + INHERIT_IUNKNOWNENTRY(DefaultFeatureApi); + Identity identity; + } ExampleService; + ``` + +- 实现服务的生命周期函数: + + ``` + static const char *GetName(Service *service) + { + return EXAMPLE_SERVICE; + } + + static BOOL Initialize(Service *service, Identity identity) + { + ExampleService *example = (ExampleService *)service; + // 保存服务的唯一身份标识,用来自己的IUnknown接口对服务发消息时使用。 + example->identity = identity; + return TRUE; + } + static BOOL MessageHandle(Service *service, Request *msg) + { + ExampleService *example = (ExampleService *)service; + switch (msg->msgId) { + case MSG_SYNC: + // 业务处理 + break; + default:break; + } + return FALSE; + } + static TaskConfig GetTaskConfig(Service *service) + { + TaskConfig config = {LEVEL_HIGH, PRI_BELOW_NORMAL, + 0x800, 20, SHARED_TASK}; + return config; + } + ``` + +- 创建服务对象: + + ``` + static ExampleService g_example = { + .GetName = GetName, + .Initialize = Initialize, + .MessageHandle = MessageHandle, + .GetTaskConfig = GetTaskConfig, + SERVER_IPROXY_IMPL_BEGIN, + .Invoke = NULL, + .SyncCall = SyncCall, + IPROXY_END, + }; + ``` + +- 向SAMGR注册服务及接口: + + ``` + static void Init(void) + { + SAMGR_GetInstance()->RegisterService((Service *)&g_example); + SAMGR_GetInstance()->RegisterDefaultFeatureApi(EXAMPLE_SERVICE, GET_IUNKNOWN(g_example)); + } + ``` + +- 定义服务的初始化入口: + + ``` + SYSEX_SERVICE_INIT(Init); + + ``` + + +## 开发服务的子功能 + +- 继承并重新定义功能: + + ``` + typedef struct DemoFeature { + INHERIT_FEATURE; + INHERIT_IUNKNOWNENTRY(DemoApi); + Identity identity; + Service *parent; + } DemoFeature; + ``` + +- 实现功能的生命周期函数: + + ``` + static const char *FEATURE_GetName(Feature *feature) + { + return EXAMPLE_FEATURE; + } + + static void FEATURE_OnInitialize(Feature *feature, Service *parent, Identity identity) + { + DemoFeature *demoFeature = (DemoFeature *)feature; + demoFeature->identity = identity; + demoFeature->parent = parent; + } + + static void FEATURE_OnStop(Feature *feature, Identity identity) + { + g_example.identity.queueId = NULL; + g_example.identity.featureId = -1; + g_example.identity.serviceId = -1; + } + + static BOOL FEATURE_OnMessage(Feature *feature, Request *request) + { + if (request->msgId == MSG_PROC) { + Response response = {.data = "Yes, you did!", .len = 0}; + SAMGR_SendResponse(request, &response); + return TRUE; + } else { + if (request->msgId == MSG_TIME_PROC) { + LOS_Msleep(WAIT_FEATURE_PROC * 10); + if (request->msgValue) { + SAMGR_PrintServices(); + } else { + SAMGR_PrintOperations(); + } + AsyncTimeCall(GET_IUNKNOWN(g_example)); + return FALSE; + } + } + return FALSE; + } + ``` + +- 创建功能对象: + + ``` + static DemoFeature g_example = { + .GetName = FEATURE_GetName, + .OnInitialize = FEATURE_OnInitialize, + .OnStop = FEATURE_OnStop, + .OnMessage = FEATURE_OnMessage, + DEFAULT_IUNKNOWN_ENTRY_BEGIN, + .AsyncCall = AsyncCall, + .AsyncTimeCall = AsyncTimeCall, + .SyncCall = SyncCall, + .AsyncCallBack = AsyncCallBack, + DEFAULT_IUNKNOWN_ENTRY_END, + .identity = {-1, -1, NULL}, + }; + ``` + +- 向SAMGR注册功能及接口: + + ``` + static void Init(void){ + SAMGR_GetInstance()->RegisterFeature(EXAMPLE_SERVICE, (Feature *)&g_example); + SAMGR_GetInstance()->RegisterFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE, GET_IUNKNOWN(g_example)); + } + ``` + +- 定义功能的初始化入口: + + ``` + SYSEX_FEATURE_INIT(Init); + + ``` + + +## 开发进程内对外接口 + +- 定义IUnknown接口: + + ``` + typedef struct DemoApi { + INHERIT_IUNKNOWN; + BOOL (*AsyncCall)(IUnknown *iUnknown, const char *buff); + BOOL (*AsyncTimeCall)(IUnknown *iUnknown); + BOOL (*SyncCall)(IUnknown *iUnknown, struct Payload *payload); + BOOL (*AsyncCallBack)(IUnknown *iUnknown, const char *buff, Handler handler); + } DemoApi; + ``` + +- 定义IUnknown的引用对象: + + ``` + typedef struct DemoRefApi { + INHERIT_IUNKNOWNENTRY(DemoApi); + } DemoRefApi; + ``` + +- 初始化接口对象: + + ``` + static DemoRefApi api = { + DEFAULT_IUNKNOWN_ENTRY_BEGIN, + .AsyncCall = AsyncCall, + .AsyncTimeCall = AsyncTimeCall, + .SyncCall = SyncCall, + .AsyncCallBack = AsyncCallBack, + DEFAULT_IUNKNOWN_ENTRY_END, + }; + ``` + +- 注册服务接口: + + ``` + SAMGR_GetInstance()->RegisterFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE, GET_IUNKNOWN(api)); + + ``` + + +## 调用进程内服务 + +- 获取服务的对外接口: + + ``` + DemoApi *demoApi = NULL; + IUnknown *iUnknown = SAMGR_GetInstance()->GetFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE); + if (iUnknown == NULL) { + return NULL; + } + int result = iUnknown->QueryInterface(iUnknown, DEFAULT_VERSION, (void **)&demoApi); + if (result != 0 || demoApi == NULL) { + return NULL; + } + ``` + +- 接口调用: + + ``` + if (demoApi->AsyncCallBack == NULL) { + return NULL; + } + demoApi->AsyncCallBack((IUnknown *)demoApi, "I wanna async call callback good result!", AsyncHandler); + ``` + +- 释放接口: + + ``` + int32 ref = demoApi->Release((IUnknown *)demoApi); + + ``` + + +## 开发跨进程间对外接口 + +- 继承IServerProxy替代继承IUnknown:INHERIT\_SERVER\_IPROXY + + ``` + typedef struct DemoFeatureApi { + INHERIT_SERVER_IPROXY; + BOOL (*AsyncCall)(IUnknown *iUnknown, const char *buff); + BOOL (*AsyncTimeCall)(IUnknown *iUnknown); + BOOL (*SyncCall)(IUnknown *iUnknown, struct Payload *payload); + BOOL (*AsyncCallBack)(IUnknown *iUnknown, const char *buff, IOwner notify, INotifyFunc handler); + } DemoFeatureApi; + ``` + +- 初始化IServerProxy对象: + + ``` + static DemoFeature g_example = { + SERVER_IPROXY_IMPL_BEGIN, + .Invoke = Invoke, + .AsyncCall = AsyncCall, + .AsyncTimeCall = AsyncTimeCall, + .SyncCall = SyncCall, + .AsyncCallBack = AsyncCallBack, + IPROXY_END, + }; + ``` + +- 实现Invoke函数来处理Ipc消息: + + ``` + static int32 Invoke(IServerProxy *iProxy, int funcId, void *origin, IpcIo *req, IpcIo *reply) + { + DemoFeatureApi *api = (DemoFeatureApi *)iProxy; + BOOL ret; + size_t len = 0; + switch (funcId) { + case ID_ASYNCALL: + ret = api->AsyncCall((IUnknown *)iProxy, (char *)IpcIoPopString(req, &len)); + IpcIoPushBool(reply, ret); + break; + case ID_ASYNTIMECALL: + ret = api->AsyncTimeCall((IUnknown *)iProxy); + IpcIoPushBool(reply, ret); + break; + case ID_SYNCCALL: { + struct Payload payload; + payload.id = IpcIoPopInt32(req); + payload.value = IpcIoPopInt32(req); + payload.name = (char *)IpcIoPopString(req, &len); + ret = api->SyncCall((IUnknown *)iProxy, &payload); + IpcIoPushString(reply, ret ? "TRUE" : "FALSE"); + } + break; + case ID_ASYNCCALLBACK: { // convert to sync proxy + IpcIoPushString(reply, "Yes, you did!"); + IpcIoPushBool(reply, TRUE); + } + break; + default: + IpcIoPushBool(reply, FALSE); + break; + } + return EC_SUCCESS; + } + ``` + +- 注册接口:与进程内接口注册一致 + + ``` + SAMGR_GetInstance()->RegisterFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE, GET_IUNKNOWN(g_example)); + + ``` + + +## 调用跨进程间服务 + +- 获取跨进程服务的对外接口: + + ``` + IClientProxy *demoApi = NULL; + IUnknown *iUnknown = SAMGR_GetInstance()->GetFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE); + if (iUnknown == NULL) { + return NULL; + } + int result = iUnknown->QueryInterface(iUnknown, CLIENT_PROXY_VER, (void **)&demoApi); + if (result != 0 || demoApi == NULL) { + return NULL; + } + ``` + +- 调用Ipc消息接口: + + ``` + IpcIo request;char data[250]; + IpcIoInit(&request, data, sizeof(data), 0); + demoApi->Invoke(demoApi, 0, &request, NULL, NULL); + ``` + +- 释放接口: + + ``` + int32 ref = demoApi->Release((IUnknown *)demoApi); + + ``` + + +## 开发跨进程间服务调用客户端代理 + +- 定义IPC接口客户端代理: + + ``` + typedef struct DemoClientProxy { + INHERIT_CLIENT_IPROXY; + BOOL (*AsyncCall)(IUnknown *iUnknown, const char *buff); + BOOL (*AsyncTimeCall)(IUnknown *iUnknown); + BOOL (*SyncCall)(IUnknown *iUnknown, struct Payload *payload); + BOOL (*AsyncCallBack)(IUnknown *iUnknown, const char *buff, IOwner notify, INotifyFunc handler); + } DemoClientProxy; + typedef struct DemoClientEntry { + INHERIT_IUNKNOWNENTRY(DemoClientProxy); + } DemoClientEntry; + ``` + +- 实现客户端代理封装Ipc消息接口: + + ``` + static BOOL AsyncCall(IUnknown *iUnknown, const char *buff) + { + DemoClientProxy *proxy = (DemoClientProxy *)iUnknown; + IpcIo request; + char data[MAX_DATA_LEN]; + IpcIoInit(&request, data, MAX_DATA_LEN, 0); + IpcIoPushString(&request, buff); + int ret = proxy->Invoke((IClientProxy *)proxy, ID_ASYNCALL, &request, NULL, NULL); + return ret == EC_SUCCESS; + } + + static BOOL AsyncTimeCall(IUnknown *iUnknown) + { + DemoClientProxy *proxy = (DemoClientProxy *)iUnknown; + IpcIo request; + char data[MAX_DATA_LEN]; + IpcIoInit(&request, data, MAX_DATA_LEN, 0); + int ret = proxy->Invoke((IClientProxy *)proxy, ID_ASYNTIMECALL, &request, NULL, NULL); + return ret == EC_SUCCESS; + } + + static int Callback(IOwner owner, int code, IpcIo *reply) + { + size_t len = 0; + return strcpy_s(owner, MAX_DATA_LEN, (char *)IpcIoPopString(reply, &len)); + } + + static BOOL SyncCall(IUnknown *iUnknown, struct Payload *payload) + { + DemoClientProxy *proxy = (DemoClientProxy *)iUnknown; + IpcIo request; + char data[MAX_DATA_LEN]; + IpcIoInit(&request, data, MAX_DATA_LEN, 0); + IpcIoPushInt32(&request, payload->id); + IpcIoPushInt32(&request, payload->value); + IpcIoPushString(&request, payload->name); + int ret = proxy->Invoke((IClientProxy *)proxy, ID_SYNCCALL, &request, data, Callback); + data[MAX_DATA_LEN - 1] = 0; + HILOG_INFO(HILOG_MODULE_APP, "[TID:0x%lx]Remote response is %s!", pthread_self(), data); + return ret == EC_SUCCESS; + } + + struct CurrentNotify { + IOwner notify; + INotifyFunc handler; + }; + + static int CurrentCallback(IOwner owner, int code, IpcIo *reply) + { + struct CurrentNotify *notify = (struct CurrentNotify *)owner; + size_t len = 0; + char *response = (char *)IpcIoPopString(reply, &len); + HILOG_INFO(HILOG_MODULE_APP, "[TID:0x%lx]Notify Remote response is %s!", pthread_self(), response); + notify->handler(notify->notify, response); + return EC_SUCCESS; + } + + static BOOL AsyncCallBack(IUnknown *iUnknown, const char *buff, IOwner notify, INotifyFunc handler) + { + struct CurrentNotify owner = {notify, handler}; + DemoClientProxy *proxy = (DemoClientProxy *)iUnknown; + IpcIo request; + char data[MAX_DATA_LEN]; + IpcIoInit(&request, data, MAX_DATA_LEN, 0); + IpcIoPushString(&request, buff); + int ret = proxy->Invoke((IClientProxy *)proxy, ID_ASYNCCALLBACK, &request, &owner, CurrentCallback); + return ret == EC_SUCCESS; + } + ``` + +- 实现客户端代理的工厂方法: + + ``` + void *DEMO_CreatClient(const char *service, const char *feature, uint32 size) + { + (void)service; + (void)feature; + uint32 len = size + sizeof(DemoClientEntry); + uint8 *client = malloc(len); + (void)memset_s(client, len, 0, len); + DemoClientEntry *entry = (DemoClientEntry *)&client[size]; + entry->ver = ((uint16)CLIENT_PROXY_VER | (uint16)DEFAULT_VERSION); + entry->ref = 1; + entry->iUnknown.QueryInterface = IUNKNOWN_QueryInterface; + entry->iUnknown.AddRef = IUNKNOWN_AddRef; + entry->iUnknown.Release = IUNKNOWN_Release; + entry->iUnknown.Invoke = NULL; + entry->iUnknown.AsyncCall = AsyncCall; + entry->iUnknown.AsyncTimeCall = AsyncTimeCall; + entry->iUnknown.SyncCall = SyncCall; + entry->iUnknown.AsyncCallBack = AsyncCallBack; + return client; + } + void DEMO_DestroyClient(const char *service, const char *feature, void *iproxy) + { + free(iproxy); + } + ``` + +- 将客户端代理的工厂方法注册到SAMGR: + + ``` + SAMGR_RegisterFactory(EXAMPLE_SERVICE, EXAMPLE_FEATURE, DEMO_CreatClient, DEMO_DestroyClient); + ``` + +- 获取跨进程服务的对外接口: + + ``` + DemoClientProxy *demoApi = NULL; + IUnknown *iUnknown = SAMGR_GetInstance()->GetFeatureApi(EXAMPLE_SERVICE, EXAMPLE_FEATURE); + if (iUnknown == NULL) { + return NULL; + } + int result = iUnknown->QueryInterface(iUnknown, DEFAULT_VERSION, (void **)&demoApi); + if (result != 0 || demoApi == NULL) { + return NULL; + } + ``` + +- 调用跨进程服务的客户端代理接口: + + ``` + if (demoApi->AsyncCallBack == NULL) { + return NULL; + } + demoApi->AsyncCallBack((IUnknown *)demoApi, + "I wanna async call callback good result!", NULL, AsyncHandler); + ``` + +- 释放接口: + + ``` + int32 ref = demoApi->Release((IUnknown *)demoApi); + ``` + + +## 涉及仓 + +**[分布式任务调度子系统](zh-cn_topic_0000001115719369.md)** + +[samgr\_lite](https://gitee.com/openharmony/distributedschedule_services_samgr_lite) + diff --git a/communication/broadcast/BUILD.gn b/communication/broadcast/BUILD.gn index 4a4d44e..441e6af 100755 --- a/communication/broadcast/BUILD.gn +++ b/communication/broadcast/BUILD.gn @@ -13,9 +13,9 @@ config("broadcast_public") { include_dirs = [ - "//foundation/distributedschedule/interfaces/kits/samgr_lite/communication/broadcast", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/samgr", - "//foundation/distributedschedule/services/samgr_lite/samgr/adapter", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/communication/broadcast", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", + "//foundation/distributedschedule/samgr_lite/samgr/adapter", "//utils/native/lite/include", ] } @@ -29,7 +29,7 @@ if (ohos_kernel_type == "liteos_m") { ] public_configs = [ ":broadcast_public" ] cflags = [ "-Wall" ] - include_dirs = [ "//kernel/liteos_m/kal" ] + include_dirs = [] } } @@ -52,7 +52,7 @@ if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") { "//kernel/liteos_a/kernel/common", ] public_deps = [ - "//foundation/distributedschedule/services/samgr_lite/samgr:samgr", + "//foundation/distributedschedule/samgr_lite/samgr:samgr", "//third_party/bounds_checking_function:libsec_shared", ] } diff --git a/config/system_capability.json b/config/system_capability.json new file mode 100755 index 0000000..bf2d4dc --- /dev/null +++ b/config/system_capability.json @@ -0,0 +1,104 @@ +{ + "systemCapability":[ + { + "name":"SystemCapability.Dms.SamgrLite", + "register-on-startup":true + }, + { + "name":"SystemCapability.Dms.FwkLite", + "register-on-startup":true + }, + { + "name":"SystemCapability.Dms.SafwkLite", + "register-on-startup":true + }, + { + "name":"SysPart.ai.engine", + "register-on-startup":true + }, + { + "name":"SystemCapability.Sensors.Sensor_lite", + "register-on-startup":true + }, + { + "name":"SystemCapability.Sensors.MiscDevice_lite", + "register-on-startup":true + }, + { + "name":"SystemCapability.ACE.UIEngineLite", + "register-on-startup":true + }, + { + "name":"SystemCapability.Startup.SysInfo", + "register-on-startup":true + }, + { + "name":"SystemCapability.Startup.AppSpawn", + "register-on-startup":true + }, + { + "name":"SystemCapability.Startup.Bootstrap", + "register-on-startup":true + }, + { + "name":"SystemCapability.Startup.Init", + "register-on-startup":true + }, + { + "name":"SystemCapability.HiviewDFX.HilogLite", + "register-on-startup":true + }, + { + "name":"SystemCapability.HiviewDFX.HieventLite", + "register-on-startup":true + }, + { + "name":"SystemCapability.HiviewDFX.HiviewLite", + "register-on-startup":true + }, + { + "name":"SystemCapability.Graphic.UI", + "register-on-startup":true + }, + { + "name":"SystemCapability.Graphic.WMS", + "register-on-startup":false + }, + { + "name":"SystemCapability.Security.Permission", + "register-on-startup":true + }, + { + "name":"SystemCapability.Security.AppVerify", + "register-on-startup":true + }, + { + "name":"SystemCapability.Security.CryptoLite", + "register-on-startup":true + }, + { + "name":"SystemCapability.Security.Huks", + "register-on-startup":true + }, + { + "name":"SysCap.Updater.Raw", + "register-on-startup":true + }, + { + "name":"SystemCapability.Multimedia.Camera", + "register-on-startup":true + }, + { + "name":"SystemCapability.Multimedia.Audio", + "register-on-startup":true + }, + { + "name":"SystemCapability.Multimedia.Media", + "register-on-startup":true + }, + { + "name":"SystemCapability.Communication.IPC", + "register-on-startup":true + } + ] +} diff --git a/figures/en-us_image_0000001081285004.png b/figures/en-us_image_0000001081285004.png new file mode 100755 index 0000000000000000000000000000000000000000..a6e066359edea0cadab2a0a30b2d2becd268e2f5 GIT binary patch literal 227053 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%0A=eOg` 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

sS=rD{76=A$@Fbn;F24^<@K*@} zTcVQker7ss9zERjBDAq#mFR<6@gn1wt)If9f!8L7uR9SR&@d8?DF|J6_T_>E4E!=* zDSwi-pc4I!5`3k{QvQ2SV_KucYzdW!5H}O`n|+}Wo4tR%jme}5gq7PE4*DTouebP` zCB$G^_S!`UkoU5cI@`>!IQN|Fr(M3tREDp3lFWMi^v@JbT*j=>bD2JW7M!&mAk_@dR-Iw-X|TOF zd0qrGe;p9-%St=ZieyqpmdH+rjLoJlaLNhzw z5b^mOq((HdxZ8xgv$~%x0nM1~&J!#T(CVovnD|xcmqVX*A9E*5T!}pg?2ynNU|igR zCXBu%5p?&NA~wl!jdv`JYJ)RD)24-h_Jpwsa1Mjq8qRZ+=AstsfuyS`3Ni#8b2ANF z2k9Nb*Blejhov*s+Y&+iGp&FihzYuy_i}yO)L<3v%cTJ0F81@PA(E^7pD+c%r}v!M zmR(~GeC^UJpUQ&K`=v-d$$NNA(A2`3>-i^Vs|4>|WRf&PiPHm_$1J!J7BT|H8FPNI z$*J-+GkF5ynCr*hJ@0S%qSb)659HH*?w=n~MhR<4!m97Zuv*?OHYpRxl$)NvVRAQL z!6+jN-1Y(kgbqB`L)(23ok({y8!9RdueNeOp>ez6_-p6dcwAr7dK^{0ldDD*zBxTt zW3{ir6YQ7gF#*o>slA3^5EPL9l`7-gdKwV3XJkbmt3mhQc##o4@2g2rW7oq~U%MURtbNnV_3 z0H13gBtOW?W!;q7V`4va&DL!E3U40xLVg_9ZjA*+8SVGgj9{)mwk6VX{9KbC|al8t;5F(8P5F5*oBwv6R>t$Z1jdIa5ZD zPA@=b219LE4IUUU4J(ie3`C>1O!AHZZ$|`hJJ9$gEimbcv`zzE<4S@@W)jQM=ZZb@> ztNo@Jx}7aOETJRUgw#eGUTY#CF+wY?#y|jk{mxWbfts=d(>Og!&+>k88^jy}4?J-R zkPhP7!4I&ogl$E>=+j#-$=tQ|mcR8#G-|<_A$B645Zi*lAwwK+3^~t?ORfhe|NAXC*WO9&e zY(mF)qJfz`K3SeU%4KZo=uKCbHKV#B#b7fR*^y#%Ekxv0uu!CH;|1nuODC>RV%>Vq zlNkhl&DSJ)e5uimBnXd2v@iM!Q6Z;F1udRjjrAVpbqgrc*`Ne0j#I(4l1$WS7hj zKP2S5jNV1LT2u>OxZU9kQym8`_0~~cVn9s$c>4vpINKoLz=74KM1By@d4Ipb4diZ7 z6g(P9>KXeb8c{bVOr!QkkL%q>+)v&xN-&Dse7+J*7e}1@q?3-gNJWwe=Ow}v#vl9<1y}vG6OWD zo0II#-bic|Sea_cs%%W2yql78tImNAd4G(qE+ZW-8%p4c84A%Y6NU#a)kswH(-JjM zCGHG;Jfm0vO5FG1c_JbpLj>`Cox+`1I6jBMhLcwekUL@}0##V1C%%+2e|mb4(>N#I zBML8>w(H!LkyI4=Y7NOyJ|$U&R9mHv?z`_4Q#)ounpsPr zp0lIfL=HdW4_P;ChY_OeKJB{U!^`Y;9q77KKOj5v<)d9w@kcEZap8uz_Z#LvA@>ff ze`-B~O9(=IO#hp=xG9M8)R5}65ry*gM{{%7A8+(?xytJYY`^!Snbv?iZ`(a#_F%39 zT%JTH1FJX95dd!o(*phd%(xFI!TpfVqr?L?%$l`@P3pM;F1yXv5AT|1zmnfCOhAbH z=&=11Rx1wK?%ZTg>EXFy9$a6#Ttm4{Z085m9zG|g)!;afre-2*oPzswkpq^o%I#Cp zUB*PXUs;^*nfML~-bDmt0xC21JZ%US>0*v@ZtG+X}bQ4QwhJ$ahXf3*9;s}~O^ok8#XZuQPd_M|3J*L@(?DW7HY_-tfxyUH-_5@H; zQ;~EHx_l|@@lPc8$NcX*=sRQ2_gkpj2@(7X&-<>j?acS8*s6z93OOG z6c&APJ>AgjBd_o00=Wvv&SiKHyv~>VVyNB9uR2_9d+&TAM7y&@9oY%@g2m5&GjBPo z!k{|n1JjOD4z``F6*bsDLaB5%*O}P~m55`;9eb9AJSlj-k|@1%(<@ZabZ)xHNmxS^ z=IG}9?C4+JS!aj;T*vq0JvzQB)RIh>d;Fce-$EyJ+avMQ6bjZeZ;zAA2jOs0q^3cy zltwHNX_K^3--DMtSIre>eHcFi7{oB8=PX8~)!B6``pj|o(ZI)2Uke7P*}Ng;2fZL_4x$;->}Tv3!-jdPv5mb0!B_9f_VK$n7`#Wk; z!c^dQ(zmerRLE%Ru5}bq5tG0x5v+8PV=!Q8Z^!ougJd&CK|rXALhSPNNC_2>1GPRp z+?xK^yY&P~dx7T|yhZv;%!hz}hQU0mpr!XJ* zVIoVe_;HU?@qoo7nNhCmpYH%4241IZK#QZ#KoSF-c&L{}myZ#pOiv1tEBpbYR%gNL ze7C=G@cUQ0gP-z_(qe5O2pP(d5t9n4$UvA(@q*o%#w~38GMY8Y=JoJR`)+=k<1Hi+mbJR|v<}Rz;Io zpbNTFcDs_lKJyes)XxeGFm?EGhUNJbE~+)cY8Y#CYs|_tF1g+Da2a*Q->RyvHrpZo z)~t>E^2NG;mxlekAOE}lu9qOJPSm(?LfTCUbOoP!M9}1<>v|t_!(l@K1jrIeb%4vY zea1h6o~|T}tR2PI#?z|)_8aexCiygkmRIdVXN{fnXB<}TPSt*W2Bq-f*R!jH!_*@w z<3T=!CktE4?fld63?bR}&_^QvU=)4*uRj|YEq^_gOeYq|#E5G#eM+WhgHL_?C{?6L ztsc_8yLvE@Mu_HmC%iu#$KpOuA0!0z=w3MULmE`hL$;lE9@lP=-~RMI0>b1B)9sc= z+sIz#ozxSB&6$%&l;Mz)K+uW)_Q}K#y5%p{I5BZVm+^>tn$OfF2b8x3+cTBwwh^El zdbEiw_Mg!ZcBdWW1`$@FPmE;qGA#`XlpS?FlUKjI$t82MRMcC!$9u4 zFEYWTvBmR6zBKlNO?MX&vi52FRBqp4+>9*WuDyC#5Jc!^e^B^7j*YzTkVWqebr=c5 z>CCBE$YfBt9l}Nj{}8olwqZMDpYUH*2V=Dy4wz%DqaGf)GwK|_OzxhFcWz~knDTL% zMsvgOoVUIR_b^GRvrp^~+ge6Vk#-v7KJM`L`QvQ>+Lm(NxABL^p=B~4n8|KmlJ^?g znG~C`xP)(FJ`CRRkNl|r;-}kVfb-kK zQd!}X4)GUrm1v5fxeafYl=Nu`Ir~rZWTt|~(=ubUKiU@$1dZR}d(s~HO?mf&6W~!I zVUmlX`$_Ka2&O6?!aJpPHCmAle@-KrWQO~9q1{QTQJFS~_X=F8zjTqGEr;j{Tjywy3N! zkz<*l7wyPu)Y|%Ih8B*GU|dA&{jVzdUX$wH;Y&vjAI+?aIo#7 zmfg57i>b+IjemZorGy&b!kp~!Z6{gwaoO2xyz#`H55GZ?J>+!PN+8DazEAewlm}nh zAxyItBT8GjcE94CJ)Mbrtn5IATG%ayxWhc?`lH1n z?k>UI-Cb{IpYvU-x^@3iRKcRV>7KLa9OHRI&I3LDl}-7?3cZ2kyCD+D$Yo5z?kExb zC@L*Cf#>b1A3UBfcrA&q0nsJR#4SP?J2cVoM%tkpTU4gM#e%G%;S$H727cVxP+9~U zEWh@-?)VrYBS%4lXXD>22V;Gw=#DqEAa8Y|H&x#85SH9~2gWF27)zJ@AFTLKFr>pnU?e%^eJLsWWPcfoIbgU8Tvx6Ek{fYW&Kso^j7WA9CK?^ zy+1-SxbesvU+H#5e5D^wMZPTiKQvPncg3Qm)JEa%b0kxzGnHh6$pfuQ~dRohG*4 zBs)Xb3A;>9MTk7Gwvr|~7|;EiaC%JsMXkCfcKFYDF~L!i6@>OcHHS0Hg_AEXa4uGu zrpdkw{A^!`f?8}obB%~6vsAq~D-<~sajFi1#V+MGT2A18R}=?@A(;w)XUQ;k63*Bn zv_V)N>rz4z-78B+bo5fys`tdoYM=c4jZl%d? z)2{GlW$QjbVS8ZvShG&PTKE%k9GI<8AJt+|ma-^30xJ54ZM(guj1%iNr$|7$6zQOa9tT|K=ALY^SHog@M- zSH%lRKfg-jcdxkoH*gwXcodDA%?pAt1=QJgf3RD(Y+ASTPLz8Tl#Z-bEW@q9Cvl|g zyP!LK&VLAjKv$)Vc;HJnWzKW9L46}=p!20I@SsU9;!VR23047LU}qBMY#BDA&U{l= z)}s{f>zRl_6#uvh>7Vzy5+H9VE#%5B4FZ!PoAp-9=V?qp1PO*2Mh1{qS6VRnO4NEh zuXae&YIt}Rd>wkH)TPM^T3Eu}KiRp7Mduu^wS9}AfiT7n0Kg6!?nsGb4`vTj52=`% zaRG4{<5xV8JI2hA#v2&VuK#N>M^JfLr%ua;kZkocL&sO3FhkMZJsh9r_VhyEL#K{f zbnJJ)Rdo&?zkx<`Ve`%8hv}~5#4rJ+d~t5)6Q9q2cKIxS=f*Oc?@B6XUZXmnVCBaM zttIzY2zU8m?e4+ckEhwDLis5-=**Q8Gn)UCZ4a|kV!to_-l$rO!(%~R-AS5h!PU~V`XR`|94#&~Q zU6ib!C_O&!coW2K9v7QxJLdcTPeknN5u43d;+$-oh=^67CyG3#>>}R(hsE)I^eV2{ z-97Xo_Jm4_4fsr@A7Yy9M5)f~N5=9t?K0MVh8IdbUs%NZ*|PPffKyv)P0a>kw!72< zPqj6lAjqPjP$u|!NSb?%OMh} z)=7<5oA209+_pdqSJP%t&p{JK`llOhYJoc|wD5*+i@w_qe8SH~k$!6(pcNn)&$e1h zWN44HF5~1vz^(uGoVab>j-BlNyK$J{HCPc8f(NQDCm|*H{ox@J6%@yRDcc-+aOxD? zWUKH1h#ejl7)XgchOqwsM=4cWi$X?f5Z~qE` z9K`L;^U;XrTNiuF&2+z|bP8YHNAY%-H%NU(}QAQQS~a^@vCr@f?4vAU9(Pv}a+pRW_(|C@w;x zItTHS92ad*V&_@n?ZN?4qmLP z+K&G!6(?$^6TSjUqp&syix5e5&O}w=Vm$35vKubRxl4pL#eyu~`{tyOmhNj`AJ9Ur~~%QKNR1^9n6TW~;M z2DW{AtHPw()f8HZjeQ}xRaW zbN1DF3XixF)r%hHPl^-+mA;q4pwcMP-G|%_Im%N^8>h}b)J;LTZ-G;V)-#xh7Eha# zZhBMmJKsG(9*ebT6`43| zdYu-$-dctP^hJ2_d$(LYyem%Qg2Y<&EaSo+6o-b(OiK*eijKHh7@?#H!k#8m0fd!# zgiEzEeeJ5cMgrQ`=`je2z-m@LhlRRMEy|g&a~Zyj3Y*t0{Ai-03vEqFkl#h^;W6gf zSK}etk039oN9tuFPbW4K7L})o=w*#IhBIMa;r`Sm1npOL>Y%%}fIWB`iZc8ni%(3E zeVo#E3qe`zB_>*k9k-j=Wzu>xTZ})^mVL)oTGicJ8jD}(W`bC zKXJ#m4N9Op!~~NKL{>SB#RTzOw{0Q_bYO`^@4HjP?8m7N3jiG#iTG`SZ0LR3wGMc~jUWylyQULHpC zE#aayc{hS~7owwGrkzfs<@0u-lzf@!u{l-f1(dV(fi(B~%BzO;i{qO^zqJZ;wJs$G zYKWnS<%X)!5%`kAQzR~X$lguKmMF0ohFy7mEEZ9r4yu+X@{qJV=d&Y)aXbr4 zw_KJy&1?sjPGrnrhZhKzskzjdEV8Y6>EJFMFI#qwfOs?E9>RB_M>a=nvYb4L_U@DK7o zOjXIQVu;~jFq^?j&pA$HVdi+dgq@R3h7{xW&ND^8nJ*2_ad?YyacHBsG@Jdx0~W!K z8Cuy^Z52C6^|vq#v`{SQhpe{dAzLPw!I>@8QrjEO+;({#pf-dL>#7f*f0UBpemPvS zT&^ZtnoOWGSIw1-hx_zt8kQP+twc5J+p3ahAcDZBal!X%xn!YvHvAFn&{UBo+hf(z z+nZk`i{409>{bi%r5{GW<8lqJ;>RDPZ3NbZ^{dO=6#!gF_UOjw6|)16v30q2 z15!tf<(3m5YzozepJoKhXX}=u!B|XZP?+Z`26Xm2ho^=96pB+V>|;SF%Qj++2eMHcDml^&M`OLP7)3R z!Q#vpk@&?UcvsV*-U?oDAg@6sk7x2%>(*vbfc1j_G-s{yxm=ow=vFqO&t>OyL);VQ(nfPkUI^ zZNLI{PK^+hb!8f||6;~b!i76))1%5=fYi^mV*{|eYFt&2_G}dCl*T7?as$M)^4HgiDCK@ zA^s?#`?9wVMr$l#hxFGv+O4fBslWRn|L#JNOKEy5)Ty@x=^P!9Lk**0XDAG&Jro8T zf=3mjMBFWHv}k4>yR&+YB$m5`rFo81h9081IFIv83InVzG) zx^*Fu8p#`c9aDcqHv-4CZLR^oXL-#D9T}l(<4`T;Juz1}n@fsR%IEKHdoPk;a7Mgn z%llGqVm;nH-6*CLCX|nN7|kbzv+|Wd@7YyKLZE*z^LX%k3e4h_A%^e%M0?cC+(%k> zhBG3&9jP}VmY3VJ!c5%3bBjph*#>4uczvNQVgJ*S1X*BPf%r_<+b3X3i1E!tZT3JJ zWAW;z=#zzM6u%>ntV>9$NOj1G1d{F^<<~#1UhC+FqtQr3)1KgzO=sbb6L_gEn(_+e zRY>(%PHI!FG)@$BEy-~z@5y}r4~HIc*1Bj+m|M1o6_nAQLvC+tb`sE(yxHysJ5%Qh zWlB_rz-D0Wp=cqi4ym&Ql~6QP)FX}LOl#~Njku>%aSEmsD(nn9r76w4Vl&6>c)rui zo$G_X(EuoVW(eby*E~l$_Jy;K8|!|XU?zztP$zmc=(F6H(=i2gIItZfvrq)9cnTT1 z6>?-pV_HdEsy>#3mUPW{3`N_=1JApFo1jhZ$8Dz4d3HS*ffn4`FLH$P__E;r#4O7k zNGIKj$5lU}4{SY(T{U71^0`*@(sC!_TCi0zQZEpBT6=v>bPA2$ub)IkIK(P)Zsp6B z1Pq5#WDV`F<|{H3K{e<@KJHABKs|mvzgrfI#kyneNVI0DqwBX9--jr7|9rbWQ^wij-Kb6Xr z?J+nI2wt!WLXfBN|?5{p_So6j+3H2$ujADbw*Nnx|Iy)i1KN-~*R%AGNBmv)xu=xh@@Kv^L0i zLYdsnY3#Qek4SWlv8=q7Fm9oR&^R3|!Myb%v0pNR6My39?||MEj@bI|cD-DM!y2sF zYxFwuVR(CI{zJND8nMa@urQEAuI7)Y4T6|**4tqTF|&F|E?0U;QPdk@3QpWjXZER^ zq7mnx?7Cg?rC>2J7i=>9>Tj3p$?76m%!{Y77==9@v}<4xd*4143*ku_829)ZF3rs} zURI47h{fXn=r>k&mNk=FTbV{7-RBIAf{MwFoxrb98p4hRsK0mz)ne!rpcbp%Yak-` zjpf}5g{3#Fr&V@AwF;qSDVKA&5AI4am9t)&fitidbuE2KGW7E6`<8(&b ze+aFkmyQ3YxGUdAzp8A#PUDV9& z0H!L4b{N$G@Yu}1mXMbO7nEEpex!heLUdJzB^=;s_a2{WBr_7%yvz{vkVZhs;1S43 z=dCh1(tfA(r?-{y>07Vzt&EHO@jZ9WIOLx&RG#fcE1|ibjIhN491{`Y;}&K zHhS<0N<)0k>bOH%6rLk__q^M|mQd18%f|9KbJ??=e2y-xOSBkiE|%TLx7ISvpLM-e#^GrYB1EUnv ze;%rA)|oIL!BahhslQKR%kjono*D@>*`-mVlj7@tB*JgC+8J#xVQlohxg8jRh~C-2 zzGIQo{}!#{x~YuSet1M}k_Dkac|uE9o8Dn)RV8cq@MsRaSfjpbdv`5SwJ2mOLTK~g zM~rwyD^Ku_p0!}~;Ev{#pdfpn(xX`M@@G}YAR&2q%(QW{yS@Yy?~*Rf3{3QrJ)8`| zGx547EOYNT#^423`k0{E*`m#OVgoaAMFDPELu;76X)j&0vN+5{S+TF944S35O_k@O zFSFmXqGmeo5KUX1b`H}78r}F*rQi2DfL7e_Raxu)S@0!9E0 z*Vh||+9a>BV^R9!7I+Xx6kpKwN!5+tb!tC-_d9n&^C>?8#o_LT*#@GSI}B6#W%PX% zxdAm#(>q$17)h0zPvpTwC*(X`^$|v z1I~naT^GK*YmJ;177rd-3Si;wPTkFPhh5}pKtFz2cgHCP5{P249X$R)kso)>6?Bu+ zOd~#Ei$PFc9XP6g;=$u;Dcbj2#n-(TI;Pie zdoPxTPU4XVohgG`Q4#$+dFmw7Rjp6N=rYeoPtgs+7kEdCKW)_`mwyYqN|qy*XF*oub)s4t4$MZ21wwA&1+6`}n1Z*(;*pK7(lMK;{H* zBUF1l26g0Ej5}`MEw7$Sc{t=?rs2!6bKsG?pN{9m4@an51J1q7bRxMU)%ppm}YI>Et`av6~SPR$hp+G$2b(`8+Lx z^YoYuPOWWqy$V9WvHJXN0I+avsQGj!`THC+(-ln z6x=|G>Wd$_o_F{kt@^JK{Rstfm=awBOb`C-lAl1j;ZFeOdUM|Hr zqX{O0QKx>DFaP=G^!4n{vdH=>$)52FLT8@#Ui0Fy#Z~EmlA3U$ne&TALiu^%EP+)b zfX<(yzPwyWD(q63*M_b0eBHqPI=1jiL!}{BPvv5*yBb8RXLZK&Kh9 z*gOU-`Qje4-+|^H)u8Jj-{sBm#KDt`^gNV`)W^XAJ8~oB>Q7smIqrH8 z=Y*Ud>Mw&m*hvWEhK4qoinzaas1{RIhBp2oT8^fz)?umizLEZ}H3q^7-iKT^Y-Xs% zT{e8<46iJ*lV=;sk3lp{8BYd_9IT-_8con2O;2OvO}0qZ+uTfm3|=lav(FO*4aKJ$ zQ)=}LIs)*E6rh4Fg1rdb4#_^)cMc9WxK$02u=qUlf#ME1oe7yG}YDa5^n z+{vYYFVD^%QWH^$Y#3waKNvliz^5IDXP_fH&`IYTA4UROH~%!8J@R>JLsM~KCHp@O zo}w6hg-yq%czyX*HZHq;A<(_@dPna<2>-VJ{Qg-VQ5@xl0X4XIV8;HTHi^+XN`2-s z#ZE_Ish&u6eBF;s%Ud)##B5T5iY3>F6jul7Eg;K5#Fdv=@XW&r>u?HJ2RDKrs(_xj zki*&k2L03{z+V4ihu+5g1@(y)HDeG4#8mA%e@Kf||NuqEh;d18nd{3WRU1-91 zWWwq(Nr3?pPwP9D=kGAg+n0kWC@Vzo?gm*a;)mTT{a>8vAQPqHY{SN;^Hy2IDdxx6 zYL>d~Xc|2vgxiASntiHkz)arO#hhbf95MEU7~GtG)*} z$nD9cw*LZLGc{z&`sW(Yfa3;jz{bhYR}txfxbCUbdbS5W>rFvIZ=rmu8E-mQE+FAf zh$-(CF0QOhHm@1wOE~c^85ayJ9v4ZBEgL0_#tHLu0)*3Jb#|bbeVA3_7c1FV5j`=h zs5#{+zj;@S7`LF0J4|txPQ|+a(0P}JPw6qB==~Yj|>A!u)`c^+E}`)b4juYhvb)7W5ZsXqWxJ3r=pu-Z0@Vd(u6{10REuxuhcNX zV`WeHG|3-o~b)uT+L6qyK}NXo*GhK9Y(D?u*u9Z z#iygkqIKENK|Q17Yc`b0_)Z@zr$)TU-?VLD@{ZBt<|A`$5gL8{(DM={M4gH&(!}tk ztsii`9G+C5v7W7>y!7{PN$@3&2KI~o__%}6SL?v$CR;o(A$L-%}1^ z-P%8nn<^B#(a%0t@$7lD$#|%wfTWe`+&?XF|Llx?p13rRT^IR>*;<5*aa3T?WhY@i za>tGjkztsDAObyi!|1L%dD6sAgx0bZGkxss%dswZqqwiM)j%*=S0S(9Z>J*5Q?~bI ztOPgoAuQQ%`-e+S!wVs7*mWCB!!ZoJ?YESXMu_(Y;29@di)X}gLG$Ff$6n=2iMy1I z)i*4-KMDQO(ThxU>53pVHZFwcnB?fX?`|&^9q1I8+M>~JT>5(80_)hCPKcopv!6fr zJWQu1d$3Dz2)cME2o>~>5vP|NhPh@0BlB-GG7Mzb;*4e2z6>2tCN^wk{Adq^b#po< zKgDW`v+GBI?dL?zQ=iK2Zd$E2fF*ysi5-;I7Xw4Z$5ShJn%eDfq6Xs6x9@0Q1|nne zth(=~^KyD``XzM_crPBJ0~>{@6#Lx4vg4HB=1#({9oUe-&4_rEehGqVi`AUc5#Nj@ zMPo%j!Cm2)rXu&4OT5W=?z2sD$vVUm(cfH&l#8r0>+sPCNmAhy0+^`oX^%HuN~f8pIF{^iza-#y0$9Llm+nv!61{K z2sXJKRr$1XbX{w^=of`VN!Ex0pkSlc3hC$;A4GuI?1auU?!@zSzn<--OIUWlP(?`r zYviKCI>j+P;Vb#?M;emhw9Gg}#5l;N2Ekk{*#WcKaer9bw=1I}>znzmaarm2xw~){ z>Se%sl36r9xRHY&kJ!m5ub*zT1sf2W$<=7q^|GEwD(?%li<*>jnJh++PbISUkI#bA z*F2-jjk|K5Gf7sp;3l#UmsC9#GLL`0m1-O;wzWu4^0()MKV$o8T<_^W7OS|3&)Y-m z9FHy6i%470=1&4;SrMt5Nrv7B?PdIT5nTd9tq~Dey!w70W%;tVT{Z8pn<*XwNz(1c zoZ>-0djy94y$we8se<@Y?P9h$HJL8JkwDz#Zpt2N;SMO`UtF>6x9zv+JH%og{#}k zEtfvxEW79?#&jgnS&VFSJ;a#2AWW7M4o&oJvqpF;frJjQw?toAlgcf-l8(CZ&O3fN zPrbhf+CC3{7h(u%HU@i7vHujAgty~+oF9sWSP>JI&aQQeJjyM4onw$Nx{k;?j0RsR zE-FjLvs7dd#p|_83Y*A7bI;>OXsqS*iJ7CNXTb#ID~2CW&RB~p+@Yl>&;b3q;36dS zejacYQjcem1@LVYrnU*YxYuH6vj)YvNQIq0Bmh)U%Z*lu#+$CGnmM`lx7+*wQVIl; z%lAtJ=9#M2>=5p(LQ%>eduLD3{hfjt%;2#vK|*@4BtYAt^6#S5gzV1L2#)y)c@wZQ zxZMlD2eg>?fNdziF_>0fOF0sc7}#fFKS09x^NgR?YM$j&!s`^y<1gJblch=6hwahk z1!h{eSyv9U9kP4v7h}$i;d(`|cT~^L$Qu6J8m|AhXB^E$3OFJ`sa{rG(3deSwexFnIPlTmaVTGJ zM85WZMIYFy8&-{45w}Zs4biQ!?&v$w^O6|mNoIFv|4FA!nR;4Jr}_Qu=8!nW2&V$Q zC{HehJip!ZzUT863HyfwZPi@v$K$mY?`N5Vt%?@e-&{(D40e0cm&76)Or|j#Wtn$Z zm|9%+<%=Ba-|u#YvJs_JEBb#U;@SvbqnnE6x!p2GrP}GjhSi9*AJ0m7^yc%gwGyXX z!El|n%$N0WnlXGkB-puOc?!oOVm9eVh;EnXp6Y=D=no7e@^7gp{O_zLQ4f$b#-m{e z>w00Qa7R$y(JEoc-nM@}3YM($SWQ0RwwVw$%sIB@!$Osnv`=Rr;7K#n!gF%~?aW6(k=&a-6%*vx++!BmLc?K-b-B60P+usMCe zJ!npr-skw9`1HpDrUIKQ`pIp#6M~7&rf+X-Yh*DSpB1S_EL;*N(H3~Hj2EjEN{{my zVZ`4p`teL z*zoOO>SJVtsLb@(vCLU!eZ1KcTA(=CKOXX`ZIci$jG^P5z*#nx9|viA@aED%#|{G* z7E@!dh1>DsIEg6+L4PP;21|@t+ZcXp44V({aQB1^ilEMMyi(t9{&_zmI`D{)$orrh z+HMujV#g<9j-L9#yDrokRf1g=iIS}AfCsBnaILE+uuE@pPg-Q$%R=TZ%KKrHYG#`= zC+YO_>U)?MQ1*?`%j6)#;_`GSUJWZY^z-U<_?S*M)4Z8}6%&uNRHEKz{`S@W*@;%8 z3UYf8rfO{WaPfuBO7|`sb(N#lOCL)I$fua*aEPQMZyDpUDzL9JQy05Od>8K_q}^ul zmCJpOb44BE8_#tI7bMtsM)}8shU%qwFl*V9kAAkWSsf`yHx(_Mc{zZB_@->}uu3J^ z1LsqB>M%ugX4M3&r-diqfgg6=QG3Q< zs(mKkQR|e@B_IDfJ(9kWh)iYB#<*qbc3lnk4^OtCPv;+(#X7?H8U8{dsW*YMF{RE@nVU zrn~(sLeYzyBQ#zcbcUlClLfLdw8?JX73dGcYek+!r8Gz=S}E%a9e5lINU{7c0YfkF zN-eS=0iBX{w_>6jb%FEnpR;whUnj0LndMp{tOUfKwl;m4t2VD)*dMexXB6Ru@HMfH z=LPeMcvN)Z|6(xe`5F4u#@cRaNOh%y=2?@qS8%mt+c~w*ii@d8+dxa)75Ie&-oMg$ zT7#$c7P{V*C9_zIX%A|yHy-`ywl-;kC=Ndx~r zzm1--!FGEt|2w>abyW%>q4cutV<>qT=3RuOdy!Ei~vyeW#UaEpEUC)=kRukt{!gFcREPxT-&C z>$$Resq&}T%&d$R+R~FUxJ6t5IWpb0Bkp`_jcL&`Fkx;3+h6QTY zOTYYaIfj+1d4V;JmAktG662DT4bOYu%l6}!1=qg}2=fF^6e}JHP@E0*>XW-uCd0OEtz1dMJ`!}*HEsjjaGBC>vba#FFGdDz!uhyPCz<%v74!;Pn|ls~Jj$qTIf zW^>CTy&EP~F{3{!SL6le!Usk(NtXB-MF2I)s*nOSpublWuunYOLRuk}(lLrXu6TIy z!P9?{6yX1DXJhKAwL2AFA@X*LR4}<<3Gao|2bM}K*i)UeiSFaze>hSi=H-k z3*g3}*8)qh{M-OQMq;7qG9?NixJztr_#x1dlqk=kA2jKBb7NY%T>T-G6aEPCI4B}q zB-!oOhDKiVvuvkdGvWo<@py}Fj_7Hwk;!U`6MKVh-t%A-+vWZ38%88P4eBTBCM2EK z56x^}AFVD0ph?#uBIn&kQz<@gb$3T4&(pBM;Je@KNc?3YLwR@%v%~IJR09(0#F3+i z+AVL*c2t=^z30^*bmK)v{TY%dJ#Ddkv_tkW#N)PwTw881xQwIvp@&JR2wLNaydw9>rI>COJWMc=Omyt`2nvC$BIRxFzi3m+ zl``Pf%uO&B^dt>1&H;oALVWgs(g>VlxsY%Df4G~O%X7eCvZGdR@1C(EGcoOd0bHge z;EEXl*C>yYv0!`bF9byte|dhOW}=xijGZ`onE0L2n9_1^rn^%1?`@dR9VSKfXF}dI zpZiAY@1ufcu5Xfo>IzQURWs?Y^7LUThAHyjEB&u>GkS>y90k>z0zWfwEe7QO)oTn2 z0p}&%bfpewVU*-=^1cC?6fkMw(k7*iSQ6VeZ=}#v9b0wMij@1h_#iT zdQ!lJ68Fz@Ha+C>e-hUfv-_R*u9E)PEbUs{x@Nn#1Mo8Xx&US}OoKMEt5n>B7NRYA z``4XA%T?|m0Lq4b>FU6ZG2;V_$G>pP-mXfz;LMC6V5YoM-|EQL z(MT)Szr<)uE*AzgT~5wq{eQ)my`3^~n4vb0-|kd0RD22lF;Xt8?$0f^49+vq-x2o4 zr=IsbX#qqaWz#b<#Zh|K59w`v;1mQvDa@bTFpH_iS`AE!S|O!&WB;{Tc)30RHcMeb zy~2N)FFo?!l8%&DPhv^k0R0E>5C8kINHS4W2xe)}|8-0N&&2~Mk`k(*|B!IVsF%p~ zO05V;P_<-5r3Dgtfr2ytQEmXbrcyZ&a%7iGQ*!sO_~hxTRQT5h%mYpuoIUqV?a}>2 zNQ2*wuHX9J$mM?vBEgY)-T>OuF$bb4o%C-qKk>Z&*G5%oKedsxZD?f2;6U&DwXylDEJDxM>N%au2`R+jf*qA( zFHfXIWnI3Wio{#?^q+ocC4k2Y0?y5D9S<)T%^FRNd$4B;L&JGa#Lh+44MU!z$H}XE z%EJO+^c?G-@wCFP4L}|@wqdW`H+s?W=ln*oB5Sm=IQyWPbzL~0qc_EjFf~yU-A7z5JGtLJ!#TBLze$B zBj=)rf6SHYa6WQ7&8pfSaL(cPWKPe63n$f+yIFa~m8EWJ;xd-Tgve6Z8@=y|{#8*9 zHZDtIt8lH>8!7Ivy)Ezix;NLZbg#H$a+pWMeTk%ZXAS6Pvef3g-*Ayp-C`xdt%(e} zSsMLBjrQB^($U|`+uV5C*zHVrD|Jlb^+`qNHEEHJ{yqz?PdcEgvM#UE0W4CnZ13+~ z@F-k*cJ7ax)v)V{&Tz1Fm~P8`wz^?Hh6h}eC=b9LTFze=r2{X}W!^?wlxt&+LOMHD?5Hjr3O!3JvdRb{B5;= zZ<&3UqZyN&(3_VONa0qu_@GcPwaOuDf^mwo{-$1?AIm75atTZUsvWvI z^WE0pBj@#OC`~AolnbvC8WcjMypTC>#s0ZMp9nAMnl~)Q$ae!ho}ivcUHmFbyUA-A zl&ZS;-HvM&t2Lco)T)~?8eRk#pnZ0(!TAHBh>-&V6)b}qj49Fzx89Pkt1*mFz~bp7 z@ZWM{0(Z0POYu2Fe;~Dk(ahZ#VSPa${|I>V<>e654Oma7|Z$9wL}Pqjjcug3xXA2*3+q zrclUxM@6=O!(iT(4s@t5>T?9qbdBYnnx#=^ziioFMgk$z6Mn~CU?AGMo=N?^_Sg8} z_e9Zr@kziBn`*xtRN^a9=5vQfqSrv&0Sa6M>5a7pk5_O7VhkRCEeyEaU3{pQ0S+tSdj=a+kVzKLD1p2M_|nyfYeX@pzRrpDEDzzTw;JF&1k5zS)E9whNa~ zs{JWtG&zq>3d7&>6pR>SW7iy$wNI@8i76zw!;Ais&N4BB+E=11fCCE~SEz}8++d-Q zG_7Z#E>6g<56O&18}xhKGcYUwe!E}ht?Kl4LDqoNW194Y*Wsg3e`I12b4-a=e~jbt z_gIR^&AkK4`Z~!DH1&l@Z6KfQhe=^;fneBbu?nSb0n#)YLj;QB@sHQ>H0FCY7n#+b zd|44Nvyps_r@NtpQ-8S24B@jbJpA*$EWoP0as2l)?Zw}|Ht9sA2o60ea9O@T>9R3+e(=qD2i{4; zgQD(rBQ@!?y2+ib7A9+g8fHJhWqS008(ki&NiXR8ZxE-vS2%y^wuQ6-t71eBi1}zv z@zlZF>lo=E?+DgBsqH)78N%E3p~g0Urq_*&_sN03T9_huEiY%kl*#Mp*tagUVaOdp zLN>Y`#|bf#kXPiAIlx3N+bjCWKF)^z*Yka@bo>59x)G;aGNMk8W^bRSB&4Fw+H27o7mtfHk zZd+?*&j-qmr1f;mfka~k!3OH@M~BOo_7i%2Z-AVWbW)G?dL$?MEm1$a9UDqDGr^LA z)$Sw!)EfDT3p`!z+B2UmalcgQJPHo_PK6uiio5r;QBZ%)SlOlQk(P(M_xV1?HTc1@ z{xi8_%#q>Cv;nr8w3#nJ?Vx?*{j4u~uA{m}lz=)p>FDwk$_TFfDEy%e7FGc?X=SmrXt;m_Mef zI# z%u&yE0R!WNC6uNiUPN>q#>PVezqDDi^o4SvWh;>7RW==&$=BAq&@6S~T0Bwd(CJiL zgYRDs%p7}{^%CMB6YaTQz;_z`Sq68X)Y)#F6|83iIB%#K5$~;ey9^zk)jvDzEI`{dkPc7aV-`J)48muXb{=Rf{=e=QH z@?u8%Yz0c7LfOhW)Au`;bdY>zSqY`*_mQJ4S8#{HND72)ATSX86VJJG7`SWIVW8=W zBZn#XFv=HBmPT4|8C3vMy}j$|j}F{OFeU%Vu_)|`Lfh&hX=#5gFcDV6SU2bPVD+hM zCI4g+r(Px$wEwgrFao`8zJmPu*X1J&|zS+r`#+cq6-Cc3*3X+S2ZVuSWJ6s%$5b8;x&!ZCZ9Y>y?M4 z)qeTf#i#vf3YHQ)}Z?CI?Mu{;-1l& z9&LQ7M9xrZVaI6NTJg9hcy^^BvcU|56-n2w|2kl4uvxlhuD|6AZzFkSVxNI2wX(yi zh&z5Ag14~$=6{*Yt}i)m$;rndTzj&6t@dze-`)^_#r|f4LUT-j(W=IP!nCSSai;4D ztv6wFa^i{cESf&BBfY%&XQz=9y!SKx5g1T>aMNsWG$6R^QW_ z(B6yb=ARAde4{t~=RiI2tu~h{xQ><&Kiu+plhUp~rzV$pWktHWuZ-*e%m*=2?0dcN zs=4~g^*TdAhZHX}M@`$aGY7n-R}+b<5`iOe;u^L!()PQd#`2x&ICClDD0C*ct=kZ(Ng(dvYpmZ<8ZhD$+)2kP9N zFsp&bv2@|!du{^YnUa@O%6^Dg5EW>hi$S0cHoMiD2lf_HR;d6ZN3ljt6c#pB{oT4J zg`uL~LL;Z?2^8)!*O81 z$*b4ubiywnCZXO%sKq}uoXO2S;ZmCxQ{tF6P#5z=> ze!zsXw5?uP5eP;SwBUh)2Np}2#|d``kpcXqnk(`U+noCuX|V<-0yT*A0NqCU$Pbd=ER0j?GzWP2F5U_Ps` zB;VaP)QfoxJ!pdHYSC`-{jq~@gIdHC39w;3S>fIWeG9-M=>-1zXKNozcqBOdYuHzC zP$rfOOhk`z288-aJ4C||MDOUW>zEdKrpqLn?DT;fO%K@Xuzxz~ zA`YP3nS3ke(`=mYI@uPoA=|)tTXRP~?Pu+Lsp;wS64+nada&6$ZSr}^v)6ZBz|w|q z3Jx9U5lMr8w&=Dr8;OZhD4Z(COF&o&fpkcHtNYw#pE8f2S7+ZfhdEPe_CPQEVYM^0 zvkU8Z1|5i%+LpEOi_&Aa3B+n4Lk4yCc>g17#T6MUMjTZjjKoT)f-198vc13E_67M% zXlveS>`_?zmq3qkE|Fwc2zQ2@zNFttZuK0hh)?)a%IjgB?O2C15auiQik{$^Y3#cI zi_Kdz+UaGxz4WC--Wu6#{s3)twEYNnC36Fbef&Wk;%~nriow<^9lZNXPC;bslwKwCRzfNVJKAo9UCor$NZ z8*Db-)3yk0OuL<10iJ48F4{(6JeRx?F6lzO$;W<}=r*WGd0fvb-1K|hmYkeYiD%$|$wX7F!gEIazFgiT1{Zu17mbbJ*-8?&!1qdxXbP-KT*_J}46oAfMCNg) zlsRsz1>t0Q_idEC<$XU+f|zG0#*QgHpKdo{#Zn{imt*a*od^x$Au*!Yfe#Y1G8P(0 zd`>Qt7jFJ+ucZ-wCGL8=~55L_MN)&7E@*hF0if#*=)OKd#v$ za!DC?Me46_{uGBKj*xl{yK4*QL9ZdYGUSIcrsP*m7JE!K9k|jJum}Z1jHBCgIKSdi$hk^nxdM#?vzcJAv$Ygpt1HO%(BI z5jB)Y@2ALKt7*Vl6z{yg8aFCTz#lP>K~G`)#1jsZG##^*(5g0Lvh6*iT3Vw9NJ~Lh3G@;BbQQwjG~3 zi#ch|hR2~r^(GT!cFSe(@(wh}{SE;N{5gT`I#NqnCh-}&AWmAF$pC=QP$@r{Eb;#EY?`;3y&G_t zjm7Kz!sRBGA8&V9obc%Q;Vu#e8?5$)1BpB4i8Sr+;rVG?u(&ypm!wf+P_}Pi%m~oNtM1Wch?eUtBX2+O`_8t6W2uxS@&^pqtnsVl_^PIz;nKL(aGDd* z8x-88P-%j*0Xk>D;wGn@j$>d~G9kY2tOt5w`XLn>uIJ65zan^SJ;Q9SBd$+9G%WDnMmwQpe0u_ez(10>*KPTVuJij= zI3Fswj3c`pxUM%C!6H09WIBdnip7w^Q^wOp+}i8VJlv|R5NK>P+LE|V^YGfPup15~ zeUlz|Bfo#>l}xzk-OmVdyA{z)&17&qT_mbn;3LpbED=K*ltIK2IhP5yCe|ogFctYf zC8roqeAZ0G6lB-v*0BV{#X%7mHyX&Y^eT@`UgQ7eH$C6^kS)>cgP9MWaYpl8unwJ_ z@%Kw(awsf_%U1DQ-njo=|BIseYc@KZB%NkaRkVs`?M6!B;$iTc{nhE-B1h_g;(1XXHl6R9)C#h^a)5uWEi!~He(PP=l#a;Uw z{F<4SwBK3JfgOaxrG`ps3WC`5xD0mo#D%kpVwKB-OM}=f;~XC)9d{7prS^pHo=|C` zlL%EQb%xzIRLVa0;W$;fEA<3|k=|o!tB$7?AGFd3@f4cQKRVb)nJ6?XtbJbp`Xjj6xL1PV$v0FUI3iuyQjeZYD0P3 zP3Va1csT^~TGC)TVg@P6qcvWyo$rY|Y4(1J0=S(@IqU8u$AGv&>Fy&0cvfmmObyVY z@Ou2O9)s<4`@MUi#Te+x18bEO9ap1@DJ8(R_^UtbGm1WI29(+;2_9oAK=}Sh294(T zOxV38Y8U8~HPaWmKRjS8BxyTeM0eUc*XyoYO|1L{c7jtCg0C+;KLy3^0IZ*F7HU2D z@~Q1a9o;l)PSkZYmnFVjWqXka$5G%9p=e6#70mOOq&G{)M)X~A26CTr!pYG36{drk zYuBME{%GtTBS;x=roG(DVbf-C23?-%|MQJhc=xbyu2crFBO} zT8>G6Jm_m%CL`|JM|}!NIgZ}q_G zK7B}KSUVo732qw*C%%gf_N>icATPbCRP^Nvb=dE!Hce4v_Y9B3Md9D194sH>-vP>Sl~9(l*SN{IR#J@Wk5 zg2R2b&+jQg#*l?q%GoDH-pR)KRSiyc4yd4H%CwxP6OLg&DD0}SNF_;H=Ro^fXyrxA z6$VnQPE;&N`e6tHr7=jh61EU-bQa;X)tH+4{t!r^|xe~Z55ng{lhsUzV|L!U2h_J^Fgm0C(*gVD_3Tol-)xJtm z?HvVfYwuS&otaYZ_xddG`=D();XG>Q;+y2YJIowv;rjg*+qRy4hrk{dlSH&`wACO} z`lX1CQI(ff`GOqrEq&8b>9b5p`|q-0O#B!R&IU&snlcp<{G=6*@QYS&k(@RmZwa6{ za0Ip2jEj(xURz8Q()PQ;=$GJDYgm^dvFB89HRB4{E0ro=tte`HO_fPx@=N z9Dm-(-<{cG2mK2WGq%fn_a_}ERm3uAYBNVYcl_z5JZP5&7o&6>Dg6OIC#v>)UoM<@ zRyP~2gJ>hZRUUQ)RXm2U*?wQ`cM2%9Q!m)YVe1RIqYQ066kOi|Gp^VepT9%)7U1sG z%PkAPxdya;3?+wNwue<&Tz5B0^X3l6!(`+=fysW&#ixX1cJXrYeSKIf#=QCw-{&7; zW0`_zw6qf!@u-At$96<8W)&(_TpRaMAbBEbEK=FmXam$!Y7kB>=k;|z6hJL~4bwEL z-YC+HSRaB?!o@cV*1B&GnX{wt|*y$ICo4O6H74#5NvtfK+1I#U> z?@@gmfn;e+uW;gdG8Q2-j(`n#;rBOS=YUgHCY-<9_2z^~R6K-x$GH{1zn4`K6^;;+ z>0nD3ES(($&z635urq`tpg^cnAAR=>;okGrIyKc2B1bTYx zo_lbqrf_>vG0SBxb}g9(<96{O+_WBruc;2`wm0NU9``s9(Y|FD2w%d|x-oZIJmD991`elv*vu9gmGA?Y z$L7%#i^9?l-RXgbyQqVYIPGR{(8@UMMVLIv?ilP9%Tf)Z`m{|(RzbI$4oplUOGP?c zY@(vm{lcj$ZOqk% z6hj2>m)FT?3RIR^?rQzI{>ILrz+34C%?hYhD3A~Ed=P*VzX?Cy%h(jK(&Q*iOXQ|J zGzg8sWcY>e1Z?89X@8v04+kN~jb`V{2%BuV=i>HSa8tl9l1qhFlT@R3<33OR8|lVz zGK+ll3HmaeUV(UmcUl|mYX!Gi=Vv8+4NTE~*}UgUyA0kZ`^NwuVmBOgsCOb!p$YlQ zd5?iQ+dEgN<=uE12J4*xVvPZ{qyGVy$Wk(EHa|`NNh?uTKB>l8lVml7JLGcP_yiHP z3f*K6?QN*zJ|NQw?AjmcRq)6*c;Q7cqw35TddnLY499pFRN&U_!q8TnMuBRIb0XsS zMAWmbETRr_8dpl&JBnb3-77^OOF32vMG>O2=zdypyX~^cF{1u+n!oQ;v5NUHg&s$& z(GTcHWFR;Nl}T;R3~fbP8WRwcc3~E7_-O_o3=^+SwsZOg%WOy=-DW4KP&#)|d9g}= zq3Lu_g!l+-gEdGVOI@^YF!q7r8b0T{02vRW`@!OYjHB|T>4oOQrKo-WB^Cepw!Hn? zYO_=SrF6<4-e&Vfp^GVWfLEksp2;mYHZ7rx8O0Mduum?lG`cZ=O)1k7q2rw2YOHi) zyQ9?!54zqb<6(21Yz)nH9hw`jtoG<@Vc&@W;pe~ zAJ&nQoZ)bu+ye$fR%}=(Pc)|_KJx`ijKmq-u9QA8wdzWQ;mn?hXS@Q*_C-CH zNN5H^{<-Y3{d76@%8m;r5q(6|^e`+M5*8aHgMqN~a+!vf3~4U*A&(|H=3w~_IzefY zh(xqUtXIgj1&}&~WvL;3Dx{K;44D`9 z&+Q4}zl~SugOha$Z?VR4k=#R8i|(b|7tB971doW~d_^N%FoD~()O}TXF%X)#nhGk; zw$j2T%_b z-o~p>`+?rrdstUg2{0Yz;qM6L7M2%u+t*Y*LYG?fZ7e+55l$3=AG7%jP_5UXi<~@z z*r=T8npA=ZLdW|!V@Hl?#2z5Xl@ozTQD;@v_ zG-s$<0H&C1vs~iLWVn3`IbG22Ln1j5f=xp^U#O$A_m^E7VHmh*8c?j9T3QTZ8FZ#P zKMH=(sIM>|#VjG*AM(c5M-XWGQRJg&kKG-S%7C`Wpw!_lw6BnNaafQsgsgjbvY050 zpa{oN(77XY>GpeL`gY{0Wq^N+T4c;Qw3VEOsSBh>sYoG<|9I|#PMW>EdKn{HQNyFMN9A4o{&&vb;p^vSG3xv#<#_q_fa<)hn=!4 z&wUt2iz|)MH0JBtH@>H>Cf!T5s&jcXoKP1}FYB!& z`^PfMaV5un6phEXTs2cG_FK3`<42MhDnt>ZFw|u{&%kUaWUzqV`dETxYI`8S4W)LL zz*q*!+&=HxdT3mBpwcrvnP+}lal*hf6~l9e7ERi}>35P_ENHZQXqD$q!Oh7juQ@t| z!+Cf*(9u%cy{tjqO|T^2K(7ffN2d***QBgK)Sga(6o0%_5`BdR+X|4{xyz0(4h4t6 z3N3cUBz};4sVQs#zzZku6pe^mjTIhTdu6HwJZL+{c*|aB(iaiyWW9F5dSeKK+@57{ zXH(#DCMO{~;}J{tp5v3wzzkc+BR(FsRBIDk)=s<@it#mKtaM{=9{hM_H1egq!^dX2 zw|PVDvJaSPV=}dMg9Y>V6A!0j+Z7I97Qe(&l7TY*g9 zM3(P3*85SUf$AN^6;WR3d#%O0Pl?`E_^P-NrAWeWTGPaBLIno$T!L@vCAe8#j-asIn zT5i$AWu=qeJ~_C6ez#RHoi!TuF8&xWOR*T%NJn71nA2^*=?dU4` zdaRWU#M1DT`AP71zL4Zmb0U04El<=r(ET&zSqbxa5&NXnR`v~nn6~$=heUi?g@&ZR zXQj5!i_Pt%|0cXRa-M<=!mUm;jx?{*>Xu?9tT{rIxer0uRu0cH2(f&JmKt0TXfx#y zg~%O`Mx77p*I5};kwAC@?*=c_cy7cX*a_?hoFgPhOZyUjpaNJrjayGcGc)F2z&_(pU~TETP5sZ7lVs42YeICy>-W zT)^M+IZ;q#I?^2ECw{d|A8u`M1%UZO}Ysm zrpACthKy9)o-Q$7467t1x5vY0Q^sO%c5v*P6^^G^DCcmh8UzmuR6Vs~KI>x%A7ty> zgwJ(JIJs{7m#xMPwy9%Y%3MgHQgp}02e;D?*w%GM>9$jkEgrYL=GR4?)*>7EP{>6o zlJ3;|jt?G~=R!NwB)33gPI%%~Du*oRO8c9tAyeJ59FFocTK76tULMBTAHFYUyi3FV zD^N{j;e&}}VGp0i&<U{ zfgZ=3y8gZNH;Z}@f`Fj< z+ntUo-=U4)hH8s03P(R7)w#4%BCIAWiGriP&3SZuq9*B2!dcGV(Pc_zH4pUILDvon z{LWwt=R0_)uZ10%%8x)y)3rvf;3&xmQPpUEee zlF-hv(ydTN=O(+5bRPMVpVIbtyx5ZShm!$*OY!{>f<9ViWRk&2bmibE*BX9gE2PF1mKM{oN{a6wa*jNhd)uWDU-pXN=NGq$zV5!RyFWW8o|xqUcj^i?%Qk(F==3>S_4)b$jp z4le)=RSKSJtTrvwJJOU131_LEE{TtW^I;ZOU8yp#s}9_%!64vL-eq)-Lufx=f-OH9 zrep0nyL+VPm`xH3PNkl@p|wPSf8^kZ{>#BRm%`HDdg(M-SA1ewQ%&YGxxVN$c=Toc zN~uH_*5YSta7uUxiep5HBHD4N3-;(2SWEaHuErC&MFAyv^Jeo?DzGQd5M_ftXNnmd zKSbw@2HLe#v>c>=IsnQgyK(gh#Q@Iz=WU70usg5A`tp7;#+Y2Wi2Spx&R1^{?QjDB_^qfj?le<<4-XK50 z81Nx36n$5=wou1)bg3dO#VbnPrc)^L*3ssxvR-Td67EXw$r?e z=z*(O9@r-a$L~I9Af$DP$;Y?*URCIh4Jq60t1tAuN;U5@6fX|#10dq8v>jg>`0k)- zu(lz%oDO{B8YkFt4^4c-vEfBs#AXZ$9WX~w6Iyl-8z9`BeY<>$8mcj?j5kz+L^3q^ z^C+An27btmQWgohj}QptHS}An(o$DzCi)^PkK1&VjOS?Rc+1md7YR^RGrQ*=rCab0o2R{Ho3oT z&G$x-eNbL12oZ&3dK@Y5enHHLkMKBLjA7Q2F|TH8ne*8a-%71Hx3cBP3G|UlOs8hQ zy)z)^i|Y%fr7)?kTEVI{d7e!DoPg=L^7=917w07|RWOwKd%nObY1mFyS%{VJmWUaQ z_AlFCU2iZwv8YWdjlu-i;=#{HgrfD++s2RhEMzVR za(H1~s(hs%cA&bGx$KSV<=^UNiplouczc3+`ha%6w9*GcUNj zls(Zs?n4`z4OHxrpQ67crE4kst8YX zvCCdPun@P>brt&+^(_Wc$EJqWU7u&zYsr!0o+a-tuWK?0ckWdgcv2j+5F0{LjhM`q z1Ra#+p1nLhkR@t|iFnO(?lk>u*H8j)@x_%d=8k9Xj4uxD5QI~9g-H9E2ec@d%5XzP zPu2ln@r=UJ@kaEFj;VW$1Jo9Jji%EL`99Pc#3#Ymd7kB1RARy^h#_?OXRn43Bi&!{ zfhZ23@r}V5hQPS>VoCJ_yxD4XJ950IRcEybZb)H^ij2f(bgJ3-p3MpC<4l_R-e#dm=itvU9=bap0dgtU+1It^CPLOU$M7*w|il=Y`3iilCExu^J zaH77m84B!O2Mmpx@7jMQLszGO0!nB4)L>-q{h1;Y0hxne(VHb$435|PIbH=as*U2w z>HQlK7#B5MG|tkMCA75qG|X@G(oM`QdzD}ej$|@{aKqNN4IIA}g8Py>r@?y{c1I`< z_^~_kY$253PLe7(QV-T{QrQrtF-KVkc7Jdl?$7Z+3TCR==Wgn$3JC91Nsk{bBxM z5Zhngo^9~{W=*KE$6-gBJX0Pq3+&9d0lAD3gtpDpAYKz9k4QnMSL59QAs;x<<-y>$ z83zaHCzGVA+Lt{npr8M)pJhylj+Rf>z@$ZJ-NYQ@`2bVm2V-d&PhD_$^0tS*w zQi(coW`EdIMP3tudd^Y{$+R#+`V>-M;hBV7MPrm2$c7V`yi(vp$F|=2MC@BlZE?y- z2y1Z%h&1)0RG}v9kXmVdTNt;dBmTGoGDR^+dw6~jMb8Quc{+>8+Ji@a6MOxx50}S{ z2XeY_R|#Wb5Ua(6%?7C4ZSPRqw8J3Hjq`P>%!E6U_NOwuZiTBwBi2t&j11Pm?iw%#89;mL8+d?M82zcIaK_y4^3UNF@+IM<~Xb!Mi?+b9N{0oRU zFK>}dJC}8&uRn)`p^)$4nCj{S)KAp4u$d%Y(Pj9dDU>P9=oU-E!8wHr--7RGB^C+H zdC#sLJnTwJppo;hXM|3E)LW`&#plu1N_YgVCBv96HX#9;wo2x335vZx3{`i`$u`*O)+X7ec9q0VGG?{Qyw(emDg_JutX-+mA=6 z+t)ehZ?O#H+Ufo%H`ogf8G+LcgqC(eA1{>SwNb0cfML3{R#xRn1W6%77cfpi zZUXzXlrE>VMq12!c)T_OC9tS2r~j@h))9A0$kd}z17 zK%*fHM7isci2mdZZm@JYo-GGlC(s6cB7WaJbiR(_}of-`?_|m;&c+DB3f8zPVK#}O0Q6>+dnM6)$`4~UveTu_z5;L~1^tgFS&GNIXXmOyUuDB?S^4md z!f|P;Fgd;qdJjpUP>MMwhf7yYkEX!ll$d?UMzZ(CbA2$Ji^_U#gEEX6z;g2w{0Yk< zS7|G+R9##(j!W2@jK@=EY^se)kok#e(|B+7Rv-Kg4yzP(eb)CBk|7=VeZ+VQG0ym- zZ~f6}CKLH#8*xA-w!ACuWpdk#9>yDf5~Eg%1&pl5KE(=kH(rH2<$A8^2prQr;rpk%-(%i)zO1vrJ>O$#+U)DmLLmdk zv?;DN-F3XK}caC=a(6`=5^v1cc9CG6LR($ghA2N-8u^WO)#Th&fw#>8H z-WSiPG?*;0)M9{7DX>oAW(({a_a?>#60GdC$hlWFsR zvj})N{U*ripI@VuJkvbEDTP0vg_nO&gQGopq{OKNyy$t6gPg!}XFp{j*ZDY6xUQ*k;E!zDAJ9?xw3*5xKg0 zg%Fk@=qH~)@k35pYFmIlGUWZp?p0EW{YAd`qx5d)MsgxPG-B#Za@Q++dtU)-!tfVK ztVtn6t#aE9Tiz1}%qX_3Yyd#**uKI@d)FC`7?3jyQg*ApzeVv6L~^lE-bKxgD(jIO zhyNc&Kwic*G?V=m7iTc_5H1cU6s`d@hwpa2EE=bV`!mg+R5I~X zUk#XTK6hUPn(ga=_-Hx{RUaINPi+coPL^g&BK(_kEu zdCr?%7x<7-&-*X8^Qxj2o90*u`0;<0VFSd_xa!m&t{3Dq&L(u`Ea1{5-bgqC?*}P< zqzW-O^0)>@ELi7D3EK);t+WKKQUSLV3TU*cd3Evo!o$;K_f3a_^O1tNnA%F`1ETN(0-I@1b{X>#WV>a7no(jE>7v$TV2MUJOWPJ^R=u^ zYQ?l+{hu^auABwaK4$Iigfo7Gz`DGq{TQ5=m+Ntcu=(JbsY8wqNd_o4kC%q5R??K= zMCm%$sgWc?GlhjNfJEZIi>vfm;!c(2_Lw31CeQ$jwa1*2s=sPAz55s{fsW360-ueIxxg6lJ#a45LgNw?)tJN9%^8bi zIUU7t_`z&NUrLp1u_Tv)fQuu<9_FKPbx%>FJ11K%CY`@!Z70Ll>yaB~S^9RBV7a7r z70dCY!>}p@8-mvQ%gPsSOi55&9>K)ga}ps{FyegT0v&XFlD?K z5sWTDU&9F`KkJ@1ZCmTii07jp8KWOhoVClefBuiBfxMJ*Y%FFZd2_Dq4A(CG1PWb` zODL+XG2>Jm`cv>16f}a!+(TCCK%%?it9pw}fX$%;XXqmUX8e;mfQBL4XS651{oHM5 z>tlwhz0p8S%dtW>Ay=qUJo`_|p4JjWiG~+T*{_V_{Ur_BVkv5BzVhBho^f4rANW`! z>n{qJk;4rZt^i|g?~HBEUvn8sJJJs5zZ5=xOqszg>+_$}Gc1iX4b_!8Idf?XVBb8D z3u^adrLdplgo%XYm4F)Hd=MTcl(O$);D0|f7Toy?OJMnkC_cu>LDA$qI$TJ*#*%i4 zG~0>ycaviEcA)5bFGBDlfHH8+ct^}#xsg%bq;NGt#}@IRQlco4Xjd2uuV@9X&hxZ8BQ` zn-_9^F!ONtCz1YJ3|2UuD9z%0>GhV8Sn=n0R@sY_nN9Q@94yRs#lw%!gJIAL>dat-q&ul#1>U@DM)1EDB({bopOT z7*5uyB(p2&RSHl=EjIr!mF1~hg1J$#O$Jz%l8#&syB^NCRDwehnU%4Zb0b26GJ3(L@5E^o!$4y>aWIp@jBN^-?=TuX4U0c4`Y>A{MMF+qD=_7soG)Y&Ie z3zUcd&@ShZ|7e#e7W^XbtBVi`ZrV3SI2<7DFaVn07eewhMz^h|^HX9ZRJb6bMSnUswW6(ueq0u9Ic@e_e&t8M?>f0w1Qs_Z=7D zlIq6!gS;7mAf|D~VCihmXDV?(-xBAk)<-@6-D0}v*l;v{N0Hg2$uY7ng1CrVSUDLiCum1FL ziWL8Y!cgNOLIc11S10fAQcCZigrnr5sQOpXd-sZBI*aauWBJeX79v}SpQ}Q<0(cY5 z4RaDe?X;u3qYt*`CcC+KXgK3Jcm@8~Pf>kJnBrUm>Q_`d>7Aro0Y$~Mxdr0PfE%8~|W3dIw8tq{-fGvD~h-o=iJ|LOv0P_^p@0fnsUJ zC#!2eCJwFh?YujW8H>|(K2e~bX5sms_0nq2!jEDk>^bEMKtn<*EB}jzME5`A*1rcZ zyz>2F!KV;hFH+PUQrx`_XCf;Huq_W4fJahd1;`qKO3k&{{Ek#lK{2J_;~C%VZsffs z6Cg;PSkwp*cToR(Sb*09oRyTcv;K)Vl>h%jD0e&+!v;`Bk9Ti&z#-Y4)+x0MFaa+@ zX$2$cKrX8BS5Qa6XZPwWP2N+jTtux@fW%~c^nBJlt70&URp^d(GC=y+|7#TT{MHh| z8SPu^^^Of(gjrQvQoXs+JH4&5of`lm${O6c+e(Q6C7S)kJFg|)Ct&=1+6?kV72in5 z6(=g!5Go^=D5J2eWTRg#Gq#uWGSqIrwXUu>> zg>x{;5>?b4h#6|XTMu5CaF+iOMZPpkx^1%3digzHoW5ZFi>rlVWFSlT-BtkHH~O|Y z+oYc`*A685M(;cgxUL#&^Tm@b2t4T=OUE~Ex9brN6I_@shv!t7!)+M*AHq#o4NNO% z+!FGdU#m)`=>U@aT#U-`3?Y(PGj_*a6j|?@k888F$r*?IkDZ*?Ee7go7++&++o%4W ztFEvRCnK0{B^mE@1P?LWr>pqG4FkL$p3c8k2*b!UQVzg}j^eTD23Ut7ADB+f6HJaA zt7HwObSdD#C}$Y^skMxv&Fr3*xPRD*+jt7ih}7p`!wFx_~@xFrYI>Sj`5`_eDT{rBQCGYxFDdy5WXbPqhfCsJKBEB&qolDIIOl%@Wl!N1kn`+q#GChK- z1ta8V`GhiqS9?7Bl$W#xwm;c|h)+uX+Rcq?r_i|Kw-UffD?(bk9o5yLDAM@@si{c7 zJAwVl61DGGDw`NM;&^BjOmK6Pl4Hsti^to2ZWnH_aOa5LQW+){mpPO&kB9cpuOSfa zq-GR`9kxgBj!bAl@GB5@f8a^IX$mw4hd<}*Bg($a1+e4OYn!zNo~1|Nw`S9!DSvv2YUQ5M$8~`W0-zZ z$3Y7^ludLvmAlV@>3CC)B$|!qNM=PG2k@kLIe0s zvwFh8kt-nw%kKQr|0)6hyAkv6#L9d3rgmx5vGVA#4(yrF*|;(N4_(yx{@n1|55QYT z9jVoQEtMX|daGNfjJ-;fq*oAUt1{oA_XPyBL5#&X<7lW&u(-YY7uM|P?RFSrM`zG^ zQbMzy{WyXa4jLg1R(|G~y+)brO<|3vw|4A+z{*eFan0D9N35;|{K4K{oZd&@XGKF{ z^b8oQ_3X*e2+y*bzVxYgy<-hM*&!JE@Kq)q(1-FY{6&OUt!Mht^w0?9+rP7|v^wD7 z{6*-u`)hpkJFoEPGtUvHqjyAotVi#{)*~5d6OGXM)AnSa5j~-xzR)TVwGP$h2&Xy@ z?3l|>*MVYk-t}mo8~pQCDEjOZ1CrG^H;+%W7>o}vkM61d=md(ye15f#Sehz5LO)S; z{KCh&UniM7FS8z0#KR-(60i^Qvb7fka_hw}njoLurUp8fnO=&O%z@Csd;U#8Mwk#4 z;T=A#dH#2r!4FONaB0kTX}kB1hPsfAHCvTQ=8&0T+Y#&s0Fi>x%oCvtWWKzp zdeOQzNr`kbzg`@)-LUY_@imSzn%^x%&{QMpx)#j(+yQ~|)VMX!G*t+KX3aC`nek}}TerrNGvJeEDb(;x#+c{_Y4aeNfvRv3aAu`_Ovh>-s zE8pus$Jo5j3Br|g;(58IcL~%>qpNsPKs1i@g)e&PSr)AKTms+k+gj78{JDc$Gt7*t zm|XI8o^Jb5@mI<+YRxb^s(~3z?;s6-;*x#X#$hc(7azpwv}|UjTadVe$|lhBruV;G zlQB?@l7)vPAz3jRm6tBE>lsu&{bQ;0GrFx(a zb3H=ghz8b|-FuqjxWK(K(R93!F85Z)0ANX5k9z$pdZY~!_b-dSMVc(t8T*7nHsz-A zOMnOoi~zK?SyT`5%vf6}qT{!IV!{J;}h=p{rn;WTN;j!Vn?USDM zkp(5lx!ju=q42E{y7L1-PNgYHJnQCV{7$y}c2t48BT@q#4|)j0-SHQfJyIMy=oDAH z{eD%(^)prN-q~NHaUmYV8YB59p z$Q1Z$xrUxK$BR9`3&hS=pV0CnRD=0^^D?7-=4PLAq$5O3mNw0#4%iSO9n=0i$Cec; z^n+UzBle7^pOI_Sf|1^(L;%%0UEOA2Lq90IFFp1MUKE(~OYHl7|A-!_JAtvLCxx7F zSTHm#Q?GiM5I;mm!Cd=rA-?r_%;$nGBv z^vl87(VH=^Maq%9dpoDO3~V!c0~_q&V}2lfxow!mfh}iZili|{eVMYNKse_P(`oU~ zw2#Yv@L1JRW$~c$yiWL>E{=ttHjKP8v7LsNX&SWwhBmkRUuTIyE$O3Yn6LG5&=)C!;>H%BkW0iU7S=NYozp? zI^E46`K<H*7@iU;yTjBoD#Eo!iozMA>0m+P|`mG&d zE%YFgy`kJZ;=$~mzTyhbynzEHy}OR^Ndeox#GLF1L(K_fFVzO^mV83n&3~R{gTooC z7SDvOjrZl=Pgk#8S`~*2!A#^F38YtM8cR>Sy_CKB`m?{YM})rem7dK0dSttlj5}8a zXZ+o=KT|X9RsaROT$2nzXh|EC2e(G1>THYZf(6rAFVFXJlF^Ok=dY}x>jCOoLpiq% zOX8>W=F)`jdl^ClgXA|F%b$mzPJ~ACoNu%jHE%3zSCtUcW zFZapxP^rwH&qzdB#?lbM%ere3Dn8WF(`tW(TEOtf)n3okjZ0OXbfLo@G89eord3@( z|Mb~Wi~pKpR<1+_SE{%T35WYQQ+HNVb@fyhDAWzbi=XLhT-{vYctif{2=pavQwB8^ zD6aVB)NWT;`*pxKTnE3fWJzy`a7&zzeWGQ=6>SrWY0@ z+JR(|Exf}7#|_e{%ZG*gk_p3v)>@Wh)P4c5?odG`xk!(3rQTd;^#&W2%F)Akk z4?4ovYdRsiJF5>srPK+%r}}Knk_FX~ogZA}nfuO!1^<~24!;UP|)ukB!QkpP$4PVocK z?nUxX7F*MET8fZz&wxcxn`^y#_3!CL!l#t4y9*TKEaBZjLwh1|v>j|pCyo#Fp!b+p$z|*!Xo+~~>BvW(=erghsDb24aWufKB`(YL zI{sh@z*M{X>jOU{4NntW6Gj{9ieWG8}m zb756KIhx=TjC>@=N64Y9vXh{u(w;O|T6e0FdY+db6D7FYn2i_%{^M4;S4Pem6<%CR zHFsNUoB#{K1w)j`zt`e~+`j&}-}Qn*SkG+by&nN3^@9^eXgm9xCuQYHWPQQBr`tQ2 zK*o0fEz0t~f57PEz137r@T3^IfAbrx%Eo4Q*av#3QMoFvj=w8{VW)3|kvpVUIaRB) z{Kq{Dz42a4L3KU1_@IoWqcHR>M)V!`GfnWelkuZNv-=_C_3AA`Oy=^YLFT9P&Q?UU z1g6{CXJ=A|&(O(5PX{@zb}KH#FsjPH4rYi7$^9JS70ESysM4XDm&H)SI^QD>=Y7;8 z?(OEj*7@-|0=lei&~pq9A6G+R#JGa2{kCc$FUA;Y4rENqwxbnQY0Pe7+Lioz#R#i5 zdk22i(B!Bq{Iy62=?)aP^K9HbpXRKis5kc6*S%R!4~&XTqp^Mw9%1f%1-%~CS9Ra` z$e(C!4c@~mOMDg@Hi)rgAHuix==SZ{aJ%{{a?qrDv^wTC9$8y^T^xO`thmqy)#mdO zoRFez1*oF1eR8aPWWB#3bCh1BLW!L2)!*{0qy_H`xxU};`U=Z`FCajfExBY8F!|Be zpASM$6ESegKbSLa)iv40O?b5&DU7S|T}u)hiF7Q);ZVL0na*swulF3wAm2J+@AP0$ zd&yd9J&2T`1Z+JaK2Y!xHX*71^_apdv*}wSs4WsyktW7x0`&x3Lk*C0~Km>1n+^i}m z;WN_Jb0??!wdgA%Wt*$C*}^HvCEu%~HNHS9NGyW&p-J|np|95?(n14wK^~UH(OGxy zzOu3TI?nnMrNk#gChPgKhy>BDnBN^I`!mNcWnQuEdW$YNyA45o^ZZ}@$qRdXs)TZS z8XGWQU|28Q(@8zQvD8cI@X=JAvP;=q&G*7#+-b1J$%Fl5@_u3dnUsE=-l);h z-zO&a$C0=4LOplkqfWU$a$Vki??flUiD;ZB^pdXgy)J5y;;KB(c7aGY{aY3dC@ykl zYx4I@5piLq;lVr-1{gOew*v9#s&bNpjJo8bnAi&t-Obl-mSx6IEmF>!IS zV;S5g7K5w?{qWFIg+xX@EF)(verlp9_N&xhAyzr~TOy2}eJ^fR?8cB{UxpJ{Q{wvS z_)Ep@WI#f<6B~yWvW<_+AuW4sjSa$QHEb6<5ooX^ zr%otSD0EmB(0NPGg-cH;!$s2Ku!{Ec*_S1wS#U$}%*xY4%pz;a|IMQQaoqzAA5TNU ziR;NMVc;8v16-90GGTA5lhB<7jG0o6JPs0|i2CMJjpLczT<;Dpr7I9zrBKClUd9(1 zrhZkL^Ww$x6;MiC{Y{rT06dhcf#snnsn>E18y{h;F%KzW9B zA~kQc(r~T?SD*19TOLD8c6Rk@T*znJp=?j-`x!bc@ch!PGnx9=Wz1)B`sughNy6$6JKc+$cienLm>&%vk5j-0vJMMkbQro;m@jr=qe?)yD&Op?qOPKOQkP{i#9H0<(sSD` z2zPUv{de`J-o5*?r`_hxf`UmJGBKf&ocuQ}s6tneD^>BeL_=u@+I-%ArGE!-<(k{v~O#$>k+>CGmKKZs8|;JpuS)IgSh@stkCCA z{lN-(+*z0l`==qfv4PqWJ@%Y4i9?&&8Yaqz3*x6H$#`&l;LE)E94ls#WpYAdJ$|<~ zIwFt9E0C0Mgsi@!oVr<5uqs1gHYDMrk)xuEdS~d#HmnL;%ZSf`bO&;zh zm26_@QQ>LtJV?tW`}ITP_Pa}$>`l)tl$FwjxXd^Aj(2zVx~xnb-<0O*fe_}-oBgFk zvZBZ6Q>5kYo;BpjzzEB&ZsmFUnM%FPPVh~$&fq|^i@=K-W$*!)-K9J@V@!}&X5o=f z>W;w?G~8QQ62@M2Mz6~%z=k#^P`u7crsWc{79qaS!FNTmoV;Y(%twU%l+D*rFRt(S zt_Tt|llK1SrG6YOGi$Dn1w+VsoNT>6o}I<=jG6X~$EylS9FZ^$(I#Y5mlMml`=Vgn zX8`7%&eyBipTBUN#F^N34HcqBaf#9p=ds+ANu2^qERS(~V1jYBQ?v1iDkAS|rA{yR?7ov*7 z!O5UIOsAoJAQ*#n8%9JGkK#}@UG38JU4%nAGdc|b8dn;U1O>M;eqa>8t&nOpiOCDI zZgn?CA@$h6KSHjpH2?Xi-gjTLZFR_b4Dm*=fnAc_$lWul%uY4uaU&|p(%u0H;Ztc+ z%S;dic=_46DrVn8IKgJRB-j%h50TU4tefFwVsove9{T>QYRugAc!-*8XVnh(RvbWT zRY_b)0^vHQ6M0#4OK#{@8100WRNV;E5n@Ki@9l$7p6-@vEjmDjUdG1wYR*vXxU9}6 ze#$5Eh$Aw}ygeaoQV4mPWRZR14uE=C6dj9VtVATeQgMU@wwSZcsD%uX7jrUXQf(G6 zHwTnRazD5juO}$;3ApmeUNxu#M1JN*XsnMrbk{`j+X~%=Sksoln(KtgR|_wOHv}-P zsgG?rghDU;r&W<$4u<4vCHbirMakSL?(V5+{GkuZC!Jc<+y?O9NeV*Q6TArbU9>zOU55?KGlo6|z#34DE>!D2Fkzx4LLqCFCBA>E*H zl{B61`ySHfFT0P{h-*hA2!_j@51;Z^%x+v7Y!;By%>h;Hv zDC2A>84YyIk$!D^wDlc5@*zK z7kL{o@a5ZW1M$lt)Zv9erdxAEhZ)sX1#mOKMjG5^y=fd>Q-)%E+Lp=I@rSh8&1GQF z#iwU#m>7Q!vnSV2kZlq~r#LevDiAuCdN_y-FjMJRoMG+nXyXk1c@!uu>@i``@J&}Q z@8v_tuE z7gZSwh14oa!{$n?vU%vbV&8dd)WN*yo{_Y-jLkLrz4o@=Psn%B@nt|Qo_Mf zNF}6RO88MA&9VVSPli%x@Z!vDiW- zGd2=%A<5f?hExXAUVY;GoqpUO!_rOckxN7_cmXu5P05#J5b*+TeGLHwo>s4BD|2P= z9Zcuvbva-t$_cn`ogjm`2=Kru_Aadj#OfLEq;|MHGiy7;iCLwAl7`X`C9$gQ z0&q5Jd)J1oUa}Ck_FxG<*)JfQRad-?`T58UN?AXCk7d^QJ$k2Q{&^P7mvVAqzx?xu zyO5a!zUP+=sh}RlHFApTl&6{t0pG?K9;mTid~OL7pu>cEcD`>2=YeW5u^M(tsXGeM zUm1pTce)%D@=7GN!ymPs(VS(iqNahpgv^YpfiRiik>gzxbzhV^6j!D}SIlGibSiHB zN&@KLn-pyMM^ml+(Mk67BPm0BBwb)BDROt=j@mqqVZnv(9TbWtK|bE4*A;aCksi6o zOy^8E?LZL2K3j>A)jy(xbKLm&H}-9smK7uHP7CUZU4>=z%;lTcW8?;8?DNHd(Z!qB4%Q`3?JtINFPH# zEH^$b^iKAp^>lovJg!}?a&#)q!b}D7>J{3d)8XWy2-77jNHOw@{_GUgE|9P70pWFB zl*!ft>S~AXR!7w`&6YO@B}`^xn!;hadH#epr_|_CUrn+TP@%?cxGIZd_h91&MGLAZ zB^2-c$5@A&L4_jX)o5}G8X&kY*wgJ7Dyzh)U0zrYMEEH}Eb%My`|!a3$WlfH?d{|y zCMK4Ps#(JY=m6aG#6-#YTV8hdoME}Yx|LBV9l$8iTLRprdGJOH6i+*pdRq$%rj7#- zJVW5)#caiRgdf6}eR%i>)k#QRgtEKv>D{gdX|B;ZutP{Sv({(=r{s`UeYUt#M7)0J zuCF%0*arkcH1Y$1g1oc5>sysajt=olQw$4oj^}6MStC9NwRid|B2X(0GZd6odS@a| zfwc*7mS;{Ar&ZzzZ4Whj{AG=*fuGTt ze!&REqKG8n{IZ`E4ZvOmprvPJeUz16T3Dzy2f&jNb^Mh0q_@vv^f%S?3$CD$#A%%P zI_ssRWz|TnQU;pm^HKvze#3ki{KEq_^Ap1VeE8d;)ex=aP>w-fD@?Vo^`9nZDdQJB zy*r9R*_oMmHI37=u1e~?#G|HwO86}Nr`@W;nCyo51)lt_ zaeH>~-qHM<`L%`WuS-RNI^fS% zx1-Ybznv}q@SeIv!tpy}~rZz)_(Q2(!Qw zmkx8+Q_(es2;RXzjfaP2YQmUa$e8@~HtKNCu$)wsyn`iONhiU|%2{a^TxW^4cYQO4 z`q2{PVX99Qq=@jAN&<~2L@NI?;gGDA13cvF8X6f@GaW^RU#ONAQ4iSA6y+$wRV8>I z{9glsz*6vO{K29*7a%=baZZYMx(+Czx)2xePwx6kLC%>`c&H@LD$&0fUnSBX1p3=X z-0ni3_VZF3UpHBx=bGy_pZKJ^~HT~!t9!VV|{-rOXv9gRN7 zA!GmOKk~YLJKVUH7ymlZAEpl<26CmNCK~PZguE`LK7+XP4Xv%;!C$9Rl9d8e)Z5G$ z$4$V0_u?$zkvsYA4G!b8+@Rj>w%4-7nIEQB$IZLA6e!G8B@7sjrTEy)O5fR7MQ;$&TIYIyX}Mfu8P1bM$rZ9N8O}F z+SRGYJ9H`rstPL>R^~8^$MJ+zHL>w|#pSsCVprYlofZrOsLWJe=91N5TgDTMSn-nIS<%;~IpxEw`7Ksl?`N===wF@6a9hcFZ2QZjx-< zji(z#GYBPK8akd}acYMb9gM5d~Co{EQ=&q)@)Gl0{zUW|tvp-PYT(%-&)|O6X?uDQSSLlu5L~-dE=ax|W z70=e)G+y#oSv{(VCoPmVmG9CGvjVOe&B&?heUfWM2#M+WkR8^L?ipEZW`a_ zZgB`x?tYU%kE35`JboLofiyc&Kir^Er>VFy{`{seCG=fXI1Yq7Gqf(OvUjaNGTSDv z^a;+s;^GpA0gPf9KRI#TEWqCTc@0#|CQ*&MCk3lI)SLqp2vTT0!5jz)G6|2@}es$$I;T{YhN{2vIdrTaC;NCBaJ_1Gz-}$ zc!i8WY(;0#xR$Tjc)?HuQ{0ydzg; z#SN*2S(#Y|FAtU{hIeS&x7iRae5=$1CmC6odYcT%CMP#&qrE&RKTtg5tG)VA(D_K_ z*ZVMeWNE8wN-yK}OZ*-s_}s4!t=Vl2dy*P$e_IGkxeonYr-{G*o5r-qwqm04qS8Uik^X}3L z-{V_Y#>XDxu=M6FpQb4-eeIw(dG2|T3j$xuC%VQlk)YH!thhwrAd_D%@#6=|CyjU( zzV@aU8x{3f-5yY{@=VWwlyT4XK7lHvv}Fq<`g*-k=gN+XX%PE_IejSq&tC5JFfOIY zn-%s)+&`whE*eaG)C!w<3dBcXA9uSfIdk+LX5NYt7~&Fm48 z@3I9^VUu1MHFR&wOPn2wtBEZbo_J)xF%wF*zy(8XfCotgNO}?blq;Hy-iO}))tlmu z_M|#x(U?#4>n1_H@++5^`R)igWA(+hzWQd=*}DXvm;-NX@&BAx6!FUNXh$B5@$@|V zB7-G3E(-p56PSw*Hm&+P&MsrObtsvAh9KP*t}10MI}$C+LcWt~bx>^<4O=*wKWRjB z>VIuOidFZ^9+5ZPV5q7iwm7Hl^uKvaNsisy8Yo+$OqR+c+;_dnP*Zq@`;lWUAkXD) zU9^WvM0|lGt$y?fq6eb7XE4m)I?0~|+Y%?(V^OT!&^g*cqir&vSCVl+@3n3O~b$+x!ubsqb$|e8^S)vLnNLD26$o zRCNe-sGmDFw|JzupP);hnAbl15#(T6Fv+B!aj(5g4PqIzV)ZZQ5{hY<+jDeKKb6-DIRWM*v`!U^dh;aPt- zB5cI|76PvO0fTW=+he@z>N@pm>gpj$Nd%{hxk>aiG11WrSGMq9yv6Q$>TzZi9g1KS zE(d~?A801)3-GPycV$Q7CqYk5!JBn3#x=h#&IXXEi(qchw$nRHB6r9$rRcAvnCKbX zLp_1d=p1S;jvsnnQAK;cVzxMzLdUi^M8}SncG2)!hpkW4nyIb)pa5c{$7%b$G3zyH?ZQ%5m_~=OE8$4(7=kDtQn~mtK&EaMUf97EBc=&0v)@jt3 z3)VzPe@QdTE&qnBzMvn~6Ym{B7cg(1IEPjL@$Imz7PhP|J=*Y>6SBOTOcohd;s9lf zjyQv+t^#*(bh$RwW9BL4OJf&-<^gZR zpPwAU;zdPv`m=}sY#G%bM;XK(IP7?_fnOP@)oX=UJ-e*9f9G&i)!mSXgk@3wBTa+K z^f9e>rqky)THmW86NL%e_rhl{Avz2#o#$$uW=Lx1`x1PiET>;F<2r+qqexWqYKvI| z%kaIKu|NzR-Tei*HDQLt8zn4_tpd04POfpb3ok0?#k6 z#{{DEH3U`PXQplKkM2(JmK4>VKXg9v=nE`$3z|{NR33gkF;n^hhk}9$J-32&R;#bB z`TAZJ(w<8Yi0D2LYKmNL{hHp`>5jXk+x_A4soKFV0y=3#!$L!r(1c&&aF$f(nV}od zfSWk!CZ#~0<%AmxA5fJik2b^_KP%Ku@+fhIwZ1Ju$Y!g@3sb6iI;?=c9~hMs=pt#f z`~Y+;$_KB9JlA~L-?`7=N^MtvfIUn|W<^qDll&|dtLU2WUChUYvcm^~8~Td6_YW>V z+xbvs3yoxfCM0_$VhhPqQfqPpZPP-Q5**w~kX9vF+D2+%^=O2rKhWZ53n#L_ci7t} zaTF-S%P-x(f&tifNBEV~?Ge;GU0ES0^lr>{AxS@MXL!qz@CRk&u0}&z%BbO+uDBgq zTENLt`V>b5ws0zP<{Z5?@gqA2%_Xi!X4fw%j;Y#2{;kt58+*9CY_Ptz>NCrM*9v@y}8GJO^S->gDa!2;CpIt(&%M}&VltRF>{{#7)TjijG?G*t)`$enI zPlC{LwW~72TaxD|N+~SuzQfsG*N2IJ+7%@$;w0xa#1QNcAqZ#>q50^&f<(*e+8^`T zglkcbkCO@K4sCoBdTZc2a%cYmz3S=$4S4q{Z>sSn7t53<)9f_PHh04GL}AarS$9H_ za{uQF*MjnLjDv%Nq2b{i8>x)U%skBs-FK{iBiWN$bx1zx2)5117|IXnGYawr7#X3m zZXCV$isZpEr-otRYoUuMv2cHajKdDuxZm79rkl4=V&Olu7@4;S&UKfLKlgSKzp^M#sX-;BEy{?tX@(C$po(ohZr%ajVf$_af#_wkw+H+Mg}rSzs9q zb}JS&*9uk^T;?4~Jep19enZdxvb!BJPFKFbi3Hb zXV2Rp5U0zs-jX%;kf5@?xSH7QXg0^20aUrw1~TgD`4w{50Cnw6^hx0QAoMons0g2h zb>ZY|)trCq&m{f6uLTng)HX9aqV{l!pNpDle=ro#-GB*+$ACuV&;o$|J&)Uy@#&s^IDCMyc@)p~|Q7xYx%`BA^ko-PtvJxQQFiab`hVzP8*C zIG&L7PL7dQ2piyfv!=|^=COK=3kR;{tp`LTBa~;2&B(~f!03!`gG4OX7ICk~SSA}~ zIr~s9hS&B309?P903J`5Pxqcao<7zL^;fn*M_~_+*3+1k$3ej*3RXrRU@N^^_aa}@ zzu}UvlyCgHqd84Lws>iZ2%dCs=H)sYS(hZ!VyE^pKcMsF+OwOfG(xXIU~;rJlf;kP z^H}NcI|(*6p2LZ?E8n>HC4uuvj{SQGg(vsK^zJCtE_DH!7G_dw+xS5eV95tXTwGtc zB;D-Bh_lDDD(<2zd;Ia6B*^Kh#B$|V#z5bz{M`ASSj(kkW#qw^`Q3p>ND)!ka064yw#!prp6Cb^I z1^cicFz}7VWN`&`%zJ^FpE1e?P44y3R{ibHX4%^t)^66s*jPX@9BN#rno3RjLH?Ip zO4$h@uO~Z=ZtTsPoG7RC=(73F2T>*fWLwGOCL>6+Ed!Vz5-jOy(aYUg0dXtv6Z1J$1?mVtN?x%#J-Wq zTfX{I|6GF5V#&FJTM@?Z_(;9Pt&$r_3r8+L_wSZ+GL;^wb-a$p1v~iezHa+P&t_K| zHz52z{)vyuD`Fh?Qh`H6U;!Z%3)6UU31|!%LeZ6Vy;l53bYeefMGBhlzN{L=g^6N_jT2 zYhyy8*A9(+w=Iy3KO|H+GMK`*>u3ejwd=L_1Y=O|>FuAJHjK!Spwe|S~E@9=p@xM81OdpgU8t-3E;n!_0L`V0OiOp>Hjo^aK zS4Tq5)x8Y|pv)P65<&pfJ&%~pr`M?j&+owx{`~masvb!5~hGQl2 zlhHkQh4a8Q`0B*>5PmeOuyoe^UEP&rM!w*M_H>9j4+RB@A1`G`yTCNl5-^9vHN^a? z7my}M+WpfIl%#e04SDGoU)veG_8FP?iU7G>Rm-6TM0R@4$r$~8s}RZoJAc}uFFv^U zw$HNMpOmy|cMZF;>q7ispRbs|A_mEcYccLVR$@~;zLQ~=f zER+J{=df<15cJBXH(@66;8jhs2&<&EHje<-<}!_tzizYu<{fS@FpkrtN?xvWLj+>A z$)AiS&+)o;d!n%ZV}15s@&q^S@XYqkppK)Z18~$lKQB0pe~YTHcV_YhJ)CFq{xiW# z9)Xa)&z-3(l-Wj16H_*LQyh4$RS z;HDbvJn^L%-|mm}fr9Q}X#wumnfX-yXQb&?t`wCltw>$BTUHcOomoi}O*G1rIO)Nf z53V6Qb>*f6`GnmiZC~Z@nRKys@n@w3X#rFzEW_(^PcXUK>I81lcd1P{eX1IA5>p_? z=X)iX9#~6e-tS{;Z^yhtT5hKm#UbsQ=`XE1CCtM*|6XM1JJ5G%c$}{xC*__^bUa|F zOB7LF1TJ|0bH1_4u&`tO4<~&wA7(4S>G$C2d%GEyCgAoCF0xl#GOB57hv(-5TD@W_ zDp*#VLw}Z<{&OHg^`2TM;(?a@S#3UyTO`)ja=NyInT0HqWUK6~>$_S#WcQEY78pv` z2DOf>jzmwEwe0u0B3Yu?T@j6JI0{!o2AfXDCteUVDy4*@DF#G*#l?t**8B@OQs}Qx zoPWFFY8U*@sdUmc(*JwXojh}C%Dwg4I_i6*8frNoFfJf+eZs|(7cltcyJiKcqhmwP zyewX@c}QNSc?e*$3G$(Lq??>#%?gNbZQ$L|-5Y5%6MGZdDemzci=`x`hAk@~EGT%w z-cGRkgbtT>@n00mn;iejhU8l>(nT_9TyBPOA2npZTk%YM|-P)N7c|d z-z$n$%#_$d*DI z+x~9o=o`VA*rw3NB4EETy7HtCf9r75egQAZsOWVePzo$X8zCQ*P64s?OVJ96UuJha z`u#C6K}J6lHt^6?YrfRbf&_UXP;*K;=jVrmb()fPDvV)(Qs0;Sh;3=KbZs5F&OA50 z?bC!A$r&yoPJ5pg^WV#`vv3%$}RknS6&{}BI`!VYCRsh2?mhAp90rE*s zmS2~bTl&kf+L95omfwt#vn4&od(zxMCxc(93LYzs4*gxPfZgfv-I8*m?~dVoDeV&p zZRXC7g-}>YV&Di3%~e=*BOq-d0buen@=_khO^~E=)%JpGmqf8PU6AaP(ao-|MtAs3B1I6HAYje7E z`)^loGh?G&Pd+Q+$C{4~{lYh}T6Z>sOd9l8yleQgPhczQ^Hc}NLCss6zP3@%R>{xa ze~QI+yRV4&kHKiTpGnaA@;63oSIMt;f(~@!a&mHr*-b-6N-1hZ%yo51 zFaNYW&-3txrKgiv&k;O>EdD1%0CA~$cH|LzBv-*K)8_|$*j75e6Wd1kxoRr6<>B_0 zw6_AT4lf7kdHC8Nxf=dsDW|Pg%`1iq)S8SX*1vLfY77>7o)4M{sB&;qBmI%BlAhLl zNLpr_g(XM@ms5B>UJ3t8Qi}W~DOm)C7*l+>rLCNpbUo|`8t?;Eo-JE{ZI6@)vKO4G zmcHq>YH_oaSO)Zk(oOEfMhWW3ChRRa+*E@mO@1y5WDAywjsB`c?WFqZ_^e%ev#n0` z@u)4xI^JqAv@phUswTfUi5?fOvF#TRQ? zF!&jGVOD-S!Sxcwt$AV^Qe+9ZnNibT^KdAr6zI99g$*qwU@M2wZUO~f*JjgR08zfd z6lJ6`oU6=x-_*+FyS(b8%IDEh21h#s;%n9Pm}i#?v&JD&Cqska`3X_HeYxTC5TRpI z5Gfp8mP+Lrs<#27wjYtnAyf{T69a!FsCQpbfPM*Lqr=?a9Upv@7ciT6EPR6#i0y>u+N?AQns@cHPDMJYreV zXM8M!pT^tWXXlHRG_fJ!Q+ZJ4KxzC+ml0t>$q+G`Z5l z3^YamohW|IV zr?^6XkP$`m=GMIDp0EDVqqQ58Kd+4C%YSTUYH&)9 zVQ{PEWUQ^NsyJ^wb>=UeB@d6m1useV&OM1MH_E8O3No{yTf=I1Hc1n4+(JxkEHVc4 zpN71IYA}}mw>Kq>znAVV_HA_`f3q5VQD~A_p-tk!0);iUv|vZvh7}jy9@c8#^{B$e zTp(4t+|`%Ld-7=*C@yZ*LbZb`)=wG)xL_=&TKtn(SzKj=4JxNMz8D(YpU9)L*gZ>D zQ1Dr3)y{>?N|7&nBYg8|DuH|C`b6k_^-g6lfMpNsZRSbecOcoTnaY(3nZA)>0;9@% zf;w15zr`u~e#gTpBV^&=0?4ow7pTcu?Ym=Ne>54ighq%}$c4~i{NoFpl@5%FdMQ#1 zBki*5h>Y!6-TXN33?N$q$$oLb?k|1d0q_Rk(f z7~kfR(7o*kiGC?;&McvH40;3>B%%#ek%iMex|>GcziXY_UdhX|qyWd;E&*5g!i`U? zBX0*wh=tC+jf@4#>2LEq5V*U%qK(#_#g1BE{o3-aDc6fv)|cxBuK1FeUA1CYx33%i zbTk?_a3Sdw5y+ZjK<#?zgurxLzlOJj&BW3wXu8pUs=emIx~j39(?I7P?SResO7c{g zu{#4H42LKUB~@t$=EV*E?rPi1a4RPPzPacF;(;|Q>2E#z1+|x-QF$<6FWpFILe&IC z5=h*5NsML;q-BNV{k4Fm7pp)!Cl_U$PWKh1^{{b|t3r{slrL-^>^&G|EX}R6R4hJ% zB^6YQXPLj6o7b@GY(1u|glU`psQnpMw>Nnl%K!0kpV8;7=(4{)00zg?UK1ZWw?aNX4>>aq)C`y)gYus@e7w>K)p^ zepy`f4opQ2l#y+G3V9Y3lWFHUFo_^7Wm>fgY^gp1RHmkHLD2OyBx=j|Us4`NcI&Oz z7d!I?%mftOR<2cX$;d~ptGPZGlAM;u^$9GyaPi+gxnm!4y4Zwdm+5UfKDR9#dq-Tm z4NYPtciw2W^)@{V+q!iGwPu~=v{h6Bc6Q8l>5rs%tY^Yg{tYG4RY4fkiGf14T5kRQ{oTV6%EXWO zICE$b6}Q2iky^|w7oYE5Np=_Ns0|kxZjEX{fm<9Ld|3G2tbL^GE&Cflu(zoq)YA(y zhzAtZj-u=a^$Ovmq@#*6#;?#=_Dl}lC-PNgjRT8_t4ZdU#;IsXYJsXWnc3WDU$`Fb z8Ilwz`Y$ILO&nIx??173t>xns#j2F!U;kR1!vM7JqM2D z`@yv^_I{7I8D0VtR%>Bj3+M9>*;&uz&Hy+|TV0}u_DlilrvED1#wUu3(g>aOdQEb|^0u#R z{;iyysZKbYhRnY}oKl_Dbr!kHfV1`@LEz92Fl1__dK~0Tv|Iog2lX++l*E%@8NmqHvoM#X$h>Uy7l`|^7;$5 zX%)4SO0@5*omLepNB^bgimLK+$g3h$g>=r?nS?0p4epq3kPB{`LYrhaxcxvP-Gv0K z($f;f*`Y#9+{h5}zx0^y4)+HKpYReMvUBN2jRme-t*ggYPDL3!UkfAY8}I_WJde z2mfTLE}HL@;Ve&8vP%CgPPn|0+<-z~M!`X5Un;N6N>ccG1|I@mey>Y_ZiDq#2IcGx zI4mPTM?1W9ot~cV+DnFngru#bQ}Yiz`0&z%7QjD*3cQfN17DdaK6NWrqg~LzInp~k zqd95FTiqRBQ=JW?d4}^{|F}>%9ekUAAtXg~MlXcdon$lKxBN1%NvR+8f{iD=Mk8 z<@{foaxynF^b*Q+5CwP3ze8|P$~vF``sc6+)Vfq!My+B1;{S_cZs%V()6w;{I$vb) z{C@z}zkRzC(Nva2%i1 z5Mehg$qt7%{7xzfR&3L5oT#Q6JAax;V?nF=R8)BZ?;Vb>^FQ`vS%S{q&2uN6g~1VB z_y8-{cXW0dC*D}m5HU!-J1C>=vw@FO7@X`?BxTjYo2-v;`%9t%;g^X23muJL!l5JA zvo(sYCs^6YrS%Y(SZx+6$s3&}dxKUV_h1xEb;Ez=AcZm7@c$w0t;4GDwnc3Plx_tC z0cjDC4oT?-QIKw=8>G9tySq!JyCg)qyQQRS(RVKNx6j#U-}`;{dG6o(z+$eMW4z-X zuMp7ntkLz4*p?Ll|2qPkUWPwY0tb#0NG%ljR7WMzIH5jQ1W+i=ICf-9KD7RTb(mG- zUvtmD=A$BX9RH7Sas1Be&i`(=5MN!FkO=s^zQSsDBsVh~bsQKsIf+aABJC)h+Ao0F0Y~jqqn#BB@K-?2*9b+yq_ZYv;7h)2}EVx zXiF1;skOjaea_BNvBj=}V@h%>w`mB$yb+PDqmxd@qrZ${3D_6DK(=MZ3;TVNAInB` z>cl5=ECTq-Z7Crc&7wo$N#V_cb3{(7?&MPu9jW+72+g>;N5=t3Nh+$po(qJFtTLR= z?s$X_^)PFYnx1}WylIJeXWtR7noe?x7OUE0ojpn|i4eZ$PyVF`ck zEGtVra|sFUC(7~tRYVI{$L6?p_0nHW73K&2AXCut&26q?Wo`~wq$Gfj{EPASoXd#| zQbX}%a0PkU9n4!76_6)gLW4VapSW$ojS4Xx&U%y@M~IIvF&XUgl>A|0T$~7dDI+_3 zKD2mT;m>TGhr-nWtB!RcZ41v@nkWkd7!NslvUBYNCe5YZ8tTUF34I0Ceihb3gInzc z6?~&W_$b{`tGyxVsXC=2kwlJ%gA4eaGzc1M>uCLsX>W^ijMw z6#Ur*6>y^L8m-|}E$u;?d2-2|E-5Y+4ko{&$rDrv+FEl+-s>`3Z4Id_H6$#r_aO;g zc6ZF)sj8J96mq*EU4~7p4$I?|%Z|q5B>NWo?{)Z%;zmGMMdf$VE2`z;?+jBl6+${n z^*^#pG{1dBecpdZBoY@|K=Fnfwp&rNqvxq>q2^n0!7#<|(RSw>^nRJ21f4Y0!E)oc zaFA97QNTIg6S!ZmyIut&Y)zJ3E63ifMD8SeU`Dj?K5Tvhkc4iu z>wVewY!r^lZyBFF;qFkToD&3ZgPrB*=uh8BAoXbvs~um)>=hn4zqo`0+;d7-XlNTp z%_b(&x1cY_O~?*OJyf@dKg=XBXG+W)DJ2fU4m3FX?;9t+^(3iEj0>p*KJED);XD0VDoY>-d+cdKmJkG4lL6K~#UP1MiW!Rhdt+l>J z%R^rieSX`x%z_iTAk=3RsEoH$_dp%r#mlolZ{^I3Jv07adG$y;z zV0R^UN($+C;7@PWdyZBm`nYpd{f554-Km`TUA7-lT-c1KMi=(bpbJy=0Iymd&-Fg9 zyH?wh^vNwIS~+hpEB5)Yb%N&eq$+zMH8CV!t2FQH-v$XIyUygoIhiFn&%?~wSY$j5 zV{FXK)7{p)I1t}^a%M`Dp1pNCz{hmjYPQ*W;Dc12ypUWsthubm(>Hq9ER z9A98BqAm#UV7e*0A`(zpyZ*Z6+HfTxXhPHFPcKav*@NH1*VMW?(Z$nYg3o@Avx=_C zSLO#vd;#$8Czm1nNXYQIRX%IL26V7`a098{mvPbICU*W6lwKE2aNFuP-2Cd1R-cb1 zgSDe(QbM1^&+qJMvkaAOE>h;z_~8ToqY2h!^bPsxod%SW3=7&6=9frh7an~J=oKA1 z9C4@9-paddx=J^~FJHZsbM!pzaItclPv`iy%vK%7D`H0fLqluvrwye2#5ttq`k|uT z@jjQ4!T!lNNV^_I9!E)s*<$yY3`SXE%t)5?fl=uG0d2n6r{!LmpWW{VUGYY>D4NZy zpYm^HM?R18O&m}?plv{qY}oz&dH=!n+Gm{ND~OI97qQxuC2@mDdfuhG1H8`S8ZzY5 zEpdWjEfK-vi1Wxvdiv$d-=7~wqp&S?+q)hfIB>9`bMw!Z&Q^dY)tI2Z8W9if6%v5h zbzDL}t7!%+;G}(BvCi>XYyHyn$QldjUC)L1kz6f)R^(DT;#GC$>pNwg28NINj^dSc?D6UjAJy(a z;YN$qpDuhq*|{I2Ka8ij8g*3rFjmsX z^cHex?@vKq{NnE2Jx%Stf{Q4ssLC=_4uG!+A3fypg5HBxr8(|%3~5#Nu8Yld4BW^N zk6Dt~W=%_GY*TKD0 z6=LPbp5)Au$D1YiBPX1%oDcOpOxluFmp-rj5+%6X)bCp|PuFX_kU@Ra*0kA0-QAx& z0f;g_7DFngye$|6`n#fWMX3R;9CJ+=0an5OOH0`b2&cjPqikWePx4NPfICP;N1n6F zG@*|8OPe_4jp0+alyraTZ)ny|vdi1c0p)D&VGCsS%O5Y?OjB(VD7D=}Rl{8$(pcU= z1mPA!GVtX*5iO0(WUCOrkn|d^EWe#a$ww5Y;;5U}8uLPDH2p|y+R)_jt$S2YZry7(c@~6)C$YpWI;hJ3e_vPjLqa5;!uP^Y0U)#}&H2$^+14zMo}SR9s){ z{Z9J~^QQ2EB@V-q0!G$cNVkl^7>yUOm{5R1c$BDX2-UoWe!escQ)--jteQlRig zOY4HNK}7No*^4k_Dc?I^1eZpLdWqu+MTweJBu=dKRU}@D=aA~*CTk&fsLfGD-e&A2DfHb{_)!^E9icXhbUkBCvgr zd&HkC5~m?4u`ssp#cO6}1|D$rYf8S?!r3O6@GQ)JxN<$By=?3QUMuMhLhek)QLRS`cyfY zxe>KA_8q1x>{1Nz=kfry_UH^Aa+W_SGby@N&Bfr0;U3A?oe9|cq}xvTC&mYY+~3dT zT=*U(8)6n-HiM$qH|gNjB9H?fTLS-f3&504R#KdFkOp;6<-*ap^cq8vw8bAw1wg)Q zxYi0JpYF@HP$+_egST1;(_POJe`FEdzx$HBykL}6RNBYJVx$MbZ6L%QkCvpDggc^_ zCqdkd5Rm!B3(g$1r{vA4m6+0XM+O$|rAJ8kZ+o)EYO8E=H{i1Po5zunL->)$5qgI_ z3>*2b%}xk^A?h;2juomB49b5Q@-HXv%y^4PezpFVy>;7&Th)* zB3eYw&n6lqYWCcB$!q`l1JAqbEN7Pm8!PJJ7sHvZz_?k*`sLr51RRZ9C^Ocl^trb} zyV|!PO*!yPw$4uGQti9_RkM$8Ds{^I?^+Ia?mArYRZ^H020d%~%DtJGG_YQd&ju=K z-}C3|OqMDpkJ7YKr|&2=T9D=&2t@l4rO{zn(+4e}Gf9k$cX&=D)i^)TD<$?UiOCN@ zmlSbSeq#*Ky(BsQz$hQRM}(-;IjHWh$;lBhZx0P;1|s7Ec{my5%x=W2g)Gm$@ve<|gAxP$$$WJ`ETuw)rv~y`-D!4|T7DCt8KgvL!4=(q=vdyf*^`#d z)iL$s!N-9-V>0sWYplawuQbDnY0T>W{^2}-niVg|nu6(DB>b9X>?p-^KA(+)>Po4- z$OZ%5IgYjPMfUlub)LfDh;)U3K3;SNa6mIuG5a(nKROkjBSVzYC?8y7A1a}#^M6`l z$0}?r&vttA_2kv#pNB%JmsP+qfYi{5TkTMHCbugk@U7sbp?XwB59aYz{B310cV@ac|!@cEqF3Y3vejibXT}^2? z@rN{`BFIN?dJ6=PZsmnXVF0k#_N9s9R3Wvjzopv+YowXZLKdkYzEQ}VG3?OAiY$Ebhtt3Z_;lBwwXo!aRC)e`+ZG|+u{L|{-x=u1 z6M2T?i?c7>W-xc?*YrqhTZ{&sKb3#@Ke zh-ZF2RUECdKy(B)l}u-ac1J<#eJ;vOt=95ksY+G*e1rWL(`lwyg=a^P@RT)~n3=I3 zKYmQGfE*s$AXN^6reX6yrxwjLm48=eJ09?1KLZhdt!6 zbljsk(8rlQsbgv`Vmkr?h&UsGD2T3L^w5~M>{JtT1-6~WEt)vv7Np=pzSEat6k-Vy zDYJO|_U%So{~d1IZY*&K?8$IwWG)~ZC-o`BiW>1($0D%i!{1X+TIx*|i?MPdo{<*D zZIV6oTR>3bbRqckX`LlbR*Z8b;X;s2$Km*m66*qdzMZD1hz{EGq{G1cgl-*ys1nsg zjIobv)uNt=^W1~d#toi;n!6Vh&rLB=1xtE zK7UR5@)^)_WZF}#$uW4BykIPeC z%W&`ZL1{KIi`Tp($^Oayuv=pqBNkDczqtd*3ms5NK;nZ_WKLR0wmi%>$PSadeb^kjf^L7l++*N)G?Y2C!#LVyTr8 zYDzUM{BwkR%m;oH_(?%zUxJS$j7TF{jJ3u+%I+Xq?&O@|W_~MPOipR(m(K_0FRl{s zV_?HGulI+7N8-iM9g<uJPmAd7?!BsUfBt!P1QT5H*Rh@~;Z%ZG^+5m*0!Cq4C+1 z-dG_PGadCh2d#xh$Cs~OwTC=o-n6Z2ZGBrmG3oITcGG)(G+*|M)vAaB%l+k>RPWsM zXums-PStXy6OrT1;ay9nkeeIt&ADHQ4|#*Z&dyFTH#E`?p=!s9dIiEN;1?rQ$3Re~ zI1dA9`B&S&5CG90Vd_fCljN|YBV0?f@8O$dqhC;^PqaT-$heYswZ*36s9rb1sXJGF zUkw^XDB@6XJi(s{rR>NVjp}{O`sSIe_Nty|!jMpc5?*_&5;6QlYJ1iod)xPUqTnW~ z)!m1w2UoW{YNkZ<9)42aD0gkQ#vh~8xXE!jq3n9aOrgwBIV+@t%3%?>&TQWqgkGeS z+bvF7LaE_fLi?i0Iz^MYQVt)kr+kV~SDq9g)DUH|5XG5zxTxsRTPV!h&s33zEo^~d zC#h|y1oP{AYdMwoXaojs(#`(y-rA|kUt#~T5xM)@4`|C#5N*;3}ccCjQ@-2ANMpl9*(UymjqS$4`mkvpC z9vkwDQDH0O;_@a2ZZ^rH@f})v!vQ-V2Somji;g8GYev3VAr zZ}Ue7UE!u>?k`VK_8l}Ypp;xY(2wYRH5v&de}$;0M{$Aj^w(3e-*(UE>RCnJ-^=qd zE!5I4t=}VS{c5Fu>}EZWY6_Xdg+glEJaDP-wX2tIe0w)9eMQUjIOM({b1Zl6>NV%U{%U2HKX{*_?r*}l;@CKQg;;so(1Vhg1#bF%dR5Wbp7taQ@ ze|1tR^agaS7|c2E3{WBD1~e(`vx|#yR&KaY+N>PEDHW-tRa?x~jWitY^E_iuHVH3T zG@K3Ew>P##ONB8vEe~(3++b1W*fX?f2g`(U`YKL<4TQAKsOe64^;klT9aG!fc_o5)L$~dVw z+l`}VbXkEfV(#Z)8adqDv-u;~qn5dId3wcu?RR+0n|FKAidSEUDh`7waFY$Kjw=$H zaJAikA#-j%Uq?-}7`~*Vv#AofC_5i0?i&A2voEa70n&{PH-{!@Ebtg7e8GpZh@49K zST3P{cVYMuy9}SuSTr0bYjR_h(U{&CSz?;Hids-ysye0%Ur<;A`Hsjf$2k1xWm(2) zulbBQVdt8zni7)q9*Z4r9-ZP+_#%o@%zOXWaI=gL+pT8S| zE>}9 zNbHk%63!QxJ56qW(Oi5KoJphXHOwoQN?_l6&a!kV#OC5?O@lw1cSows$Mj5^i{oSU zRO2_Y_WkZr^-7!Cvuf#^N61&^`OV+BZiV;g-4Pg$5O0_aCZ=?%C%S`IZn~Y}&#_rRin8 z*m-lF)OOl}Nr)+)=MjDWf{}qRlW@Ei?`LaI5kYDuW(LvMbZ&qSi_DaNovggn40d{Y z`Xrbh85w!3jLvQP2ehigoela-y$@RfMM_C)R{sYr^G_jdyZKqcy%^Vx>rdFyl|nwI zCJiHi+h*abXoo0M)A7i3Hwl+g&cjbIfWtDF=aAZ~f%Bfr&&Vl&GYK2W=2?0ZVa zSbAsu^Z5zvHfupJ&Mu@dmHdlxotvILdq^TX0=Dz(%m(9zYP-&iLmusQEs*)z07Kon8?E?OjgbSgfeQ$R(!dq2+$3EHlNVIF!MfS2qcNYtW>l!?=6F2Be9g{wlO!Yu zHbr%&ed0R|Y)RfSWP)aMtl_Cz5ol@6Li=25^D`}8MWVT(pbiUrWuZrGG&N=U72e{> ztPlMhZg$Mh=t{Q6*!chz;ik;8V5z?DdJm7`WOiK<&M_i#Ge}&wddT3PvY3_tEQ&{35Z1 z%XzzdS+%sJFFqMbz9V{;Jcb&7HrIh0)@NvK{UeNoCCuD#w9D@-^esydf`CBqo(w>! z2wi4v*c(&aJ#PVg54cY+zaN}P%NE_d5(&p*#q#cNLtW6FDzldE$bp2xm5)$`G7 zU$sR^*-(B{#PFIS6cBhop4S-5L=PSN$4B9H1`A@_-IJ>AOSnoc?jnTRB z&}G@$91)+Be;LWOF&SQx!Mh>jG7{5DMc(W9h*rIBvG?ixm%=+l(`P3H+iV4>-FA96 z-AFUx1Pxw8`^hpc!V2yPpkgCI-h%8$tx2Rnp5`Qb0qh4V*u4^%4z?Cl*kV7W;ai4g zrs+TvRT##tPI$}hPAW;D(Rqm-C66dRf(4+|OrG@Tte=gAcHNrgYy}C7QibklIc(Qf zOXfltEkEP_-gYPIQx6~N|13hh%kK*H*N23iKz!~}$v@O3pH*a*uO*2KjATY9cu0Mu zAP+2ml_h2$6Wdh_uv^Zc==w3j}YL+ED>Cl#E0^&>e8Kuq<$l)rZ z8UCHUDglr#z3q#m+Y(EF)>NF~-e;NY9gfxz=YN-Q5~Mb{TtvOTicCt9nDhsCTXw^t zx9gwoVQM6&r+N-aD0&Gl3W{oKDKb0m*XkH~FhUAyx#ck1=q4`86)!IwfQzm4^5Fax z>M*@ZEQ^NaU4bY(mDc-x3Z-?fU~{Jr3W6%CxUK@HtZ+FL%_YHqwP39+WwJ|s<>j&% zD-M7diHOUuyu{2_boD^HfoxS}`2}FK*!-}nZCMX7C$7occwf1N9Kd#~zyr*3SbaX* z+t_f)W26~5hnJUdZCy9#U%h13HD<4HrH*#d6=hYgIqxV#%uWvno}lAXff6)Uh$1x* zuYpl)DuYr`%w@(~3it{)jRHPhB*6%zL_q~zkTnw|L+B3&s_sHytpl8r0x^Gu zcVRj0C8=*G#`Hq*p${!SUmDy&MWPi^-dd^#4(9HmkG#Bi3Of)qc~w z;QobRAb5M`e%#Lv*{xaJ%rgKWhwFNPSo`tDU}SW(H&9276i(NVY2T;x(ABMjOnq`l zty!EpCSwP=FTH&l(&N!^{L=*{ELqDdhrEolMmDLSEgIh>8s;+kRGXL4v4 z4sX_Gu!f`s>*y$;cR3(VeF4z6Hx!NlX&A@{m0=i#Iptv(P{IXjRb0spzyX-dZ1HMu z$4bf@o6S5pJr#9@o{r5#W&@}o3={yOuXcrc$H(Iir1O;r-DkJ?B2{b5Glh|FC69qe z`LgCtA@KXi$a~J9sOwp6ef`HaHa36ompiK|1aY)21o1k5)?v~nVi#p&OtbBBs8Y)H zJwZ6|E0*WTV%%h%YK})-3V{g=q<|v@+hi||HnaZHN(bdT*pQ>0zjiz9qD#$Oxhi>e zS1-fSdrh4HRJtc^jQMWl-8mxLL!-i?@E1_6-!SE+hT>{VvFuPtv5HfypArrfc`|DB zsFbgYOOb8P^T5boize+t2Cy4U5_AqJgT*3$O0$J6)Up)q z?Zd!|@*0ydcP zEo`$ag=X>?Uk6}e^inG{7GNSLhr78t&qwSADA91|8i7S)<|+Tl^f!ZA+bygxV!p6N z_d7yjmxG6tQVAY=^9{wM_k$(t&n+57PA)DIC3m9dWY?dxA`?(lmA`csc;9Fa zW)iN8GP6X;hwzQU=H{`kY+&yXSS>8$4aextUR%X9&8jjcC?CPN@sizMmm8rnG!6jD z&KMTkVITo{ldgmVnLI_jmva6!KfYI0Xo=$egQ^YZ6_RLT^}&JL_uuWO@wH~03S10} zhGsf+YWduS0Wv8I{Ovhl^7aWdK53&2#RcOs5p~=<`2=Gn#>IMJauSSv+pADqja*hA z;PWhmQ9Usq{TdNLo|BU^Bn{sKOEE2XrLZHUudkma5{iGaI1PqNcd|@8&o-`(arWh)*F^6@2e|*?}LP=i92f z?qdCK4!Ui5MZwX$In7*$Tqn|_bNL28>&5`BQ63G4aaN5{%8Zg)*X0RCmPIANn z3ek-u)n~Z4f^?{aYs@6D{f#PU_I^|k{iDM3+}?&h8UI_@HRtmDez&uhkih>J#{}-C zJv+w;4e9uJcp1Q6AS^6=qDHXxFs3u&^UGfR7`+$@af!=|i?;9IAAuCgGxLSU!k~MA zLNgQ@_jQIs@yA-X8&0qf=Y4&3yz(7c@6#s|GBR(Oe#$_p`^^Q#j}3^UVEg@94@snN zG0R>_pntCK0wTw1!r)+~2y<(g@r@*uKR!A#G!+nlab=*$ezoXw zEd89r^1<-%u;F4ekGk$ie?KY#o9R#yR4^HGr`c1`!|(lAdwZ<#WdFF%W@9Kv96MH# z>*C_VmWAgTp{&Rl2y`h9i0FdD>9HVMT*Mmi*GId*8y50qoQxOWT?2Kp4j%5YQUWGGN2NOO;^eLm)(`L#G(9}oRI)(e-C=?c-xq$D&Y1*! zS_B)vMbAaZmQMGgB$Dk|TtO^+Q{#?#ZR5$%anUjE!`^K);V5*i9mqGTPw-yg zo4f&7@4_118PChNM)hfWUba`CyDKUq0I1>JIVi_*v4*}LpHZpUj$+J41uKr=4&S&P z1pLPwS7+@6Q~c!b6mKr0T=R@BK^K__qNS$J{P2yAmUd}r=`FFC_y~|NU!JtZNgY#W zf9hc|$C8YS%ON6Qg+4>wr5D`qTrWRGVd;@mT&T+2(!Fp$?p<_a<4K05V8%Tu$Y~;- z89q2EeF!_BcYBQ7UDlodfv@v4#+&0v3wDJx>Tnk#U4&qE`BW@Sx_esCy>;O`5~!RP za?ql6L!1i$HNciUI}a{V_QMjrKV~u9)#0EnSHTGTQgAdLqD-Ww1QWYos7N+`6*-9( zN>C=~XcZ!+{_?EWa#I$R;H&`X&F89HyX8(|t`Jgp#DP)yULjdjTr(9Zr%QijB(tHy zicxXeVU1;Nd37x-`x^V;KnLNuiV_*46!S9m3s7HLiqDbQg4Pumy6O1d0Uw}8&$1Oy z@;BfZHEMW&ETTiztE67L3Wv|W)YUq^#K3vob)tqZU1sloONyt&Ca)~CX8S0oS>J+l z>Gtp)=jRXDyfQL06ZB692uqCK+{$sL%qS0kecK2!2i&w7`T6SJO6hsLg5uiLB}vIe zrraYAUuetao*GHdW2}~$p>%EupC8Z`<0UU}1?Ro_Bv$M%e&CI~%PGl0PSiPb8 z2MxNo3NX=h3=D+DO&37dBxL_+tryz`+^LJ0=U)&!0Vmh{4C}7 zMtb*AC5$+4Uw}PYdvl8cf5XLMsD79vaC3*72-y1=ie}Y>{3$b5K0Q*K`(4=L>BbY1 za7#jKDrLF5=4wo)!Y6ayrAnDS)U6Hk8nTdecHp7ZSa?T$D!W&O;>2pKby(2v(Cxso zzuzj{V#dxaB- zN&S+BT2Pl=6<-u%58lY;<^*=rY{i!!joEVg{PihT5VB;2>6pw3V_Lv@f4+11@({A@~-W|r~dHa_eGqc<` z4427L-Bf5cR^#!+>Qt`ocKtU`_rv$m0IWvtb4bRGNX4f9J!p9$VbLD>@iX^F`*l?E zL`x9AVkI7@mTi}bEUW5#9On<7KeV)M$f0#hH+B|Szc{AXu(4(&!agk+#-e32+V1EP4DVC zKkD9r5G{##fUY1`xbC;qtjMi_e? zS&_b`>+;vA*RI@Pa5cGg1o1jE=Fj7#Oj{DDirz`=Xda$t$@_W7s6uQ}E&?^?hd?uI>2?Z*-5NC$=08ceAx`qLSq}EG5_Q2deTMFg}h=v zyz;=tX7k3q87;k6#D6y6JDxON*C6n!TS>KF$ZSZB8V;*}JAnWV*jp1$OiY~gkypz= zZ=DPpxWMUd$XgPKZd4Dncf{LnH(R9KSD%GOCqfl)77RXFgk>C!GO!r=C@|ZTyy770 z_O90IzQ|Q#-l5XV`8CwJ3VB4Vds4#BVRzAqZ(zp4`wsUOHk(9iPyZ77f^k0q# zpoDmvm;fzZryqI8xHljAad0kTZ83th%A6^KahpFLTQPd|qJ~F7 zt59uab@^E6#^qRNhi6>i{;e++#O2U`>eP_2`X{$n?a~tn99>({@#q)b3AwT+ZhT1x zTZ$+A?4*pAGhCoc6~DksKEgDN<#-Q}Fk>+8y_#|`U>k5;6oGgO|>)q4T#EvLIFRw4t%}lrY}7jo!E4>Q}F3 zH3CqjgqM89P?WD8IN4oJOQY+l{&i}f(hTmY?77h_uA{m zUQUy)Od*gAe}T2;!NnBCfMF6Gelh=ZE&?retDc2S7yG*9Q%ry(I7S8q;- zG}VwO1CWM`_lxp+ud>lw=fJY3^9X94L;5MiU~fJ<^Q13Jl!R=>DAx{EX4S}=gfe9_ zxMxRvsF>uAZ*SyW=2<@nv=YZ!75X*;WH|8K110ipB>!Kbvd?5H>? zam@MSVWUpg^if^HaGfKa8O^cYDg5$hI&Cre&|LJ%z6*tzDTsqm${lxs%Bt z8Z6@p4Ohrgs(diYYJ6Dj@9W$e3x13GxN|2}+hnb8zK8-_Y#P`pj${%!CIO}qdZP5# zo5A|2salJ3NM_C~f~N17PKDvg0Uq}3p^9hU)&BDC@@`@3TNexTeUBQyDt}L9LC~%W z+4thQr)8_bU%UM>JR&+uR#dlnsZ6e%GCd#&RZPU+jc%yUU2@D!$)D1|;D#IP7g|@r zYzEuS&ozUmD^Y_yQj6>;d3Jsk_TPLO@|oNB4-xsPkHj%s`@b=oKSyd!lyUjz%OnU=KZjzkO1?0@y9_=t$}M*^Ik$^#bWxXOW0w>glx@s4p5+>VRTO z<#`9{8P*~ZiD4cPkx;4Jk;I%WDub4RK@0A{liNgu#spe<`Mp>4c0>E`dV>Etu?l)f zd~v<9t6%fO(z_sx@&RJ$-uhNOCpJfDr2O&f;zQ8fEy5k{L(M`zryp<+;W6g&HP7Et z2+$1Z-kpxWDi;Gn=@V4^A?yAmrvqm<7}-|?OW&Ts4$XBuduT5J*a|-)yY&C!vwmW> zUuO>k1sR?HrSPy`#uKdbH8(hw&qhJ5T-x%*HS-*mqgMe$8|aHUy&^D))$?N=fzGuw z-&06T7;7(VX^C54TXvg6PC89F*vNX5kc4<--eQjhwXFd9I6~bT|PNqf&r!8|j+-n&;l4sUjkIm;H z=UykCH&3o=y9+nj zYEj1n4`sd7ZIG4TBo7@M-sy2TPmuyM+4x1f`LoBH{VQS9wN_ItM@ef1Not$iLxhsA z!-bus(3(w~(R#HLL69sebXH}R!XEXI-)NJiCv--9gyjtjwhYmnbLP?KXFsSWdQT~Q z_1c?rACa0@N&I36(mpHZdw2k?6i)MK_FUNNMoz>{8&zDjk(q@R!0I z^plok?wk|%JtmkKVqeF#pgI(Gq=+SRM=il0@mWi~$=u|eApHL5(+M}IQIckgx&>|9 zGUwmj2E&e|k3~F}QFTR?%=&p3(*i&9|M4~lVR2CS*>}Mb8H`Q(c^s%h|I{YDZ+tRL zT7Gng`uD2$rU#dskkj^Es!@JLMa1nc#T_~*Q&^KEyGJ%|Q$b1R(->lM07tPo8_)>x zhOJ6$^L~AUDlQg9t~9A(c38W@!sGQyW;lCt$h@bwrvutol%*;&u&u&FDHJn`%B>#G z1m4EhCI4x@LJ+%?!yg^xD~gTml{6YL@uP)v-^RcBnDzlLx7+c8wi5=*KyWT;1oxbE47EnJ4{2a}}dqy#gSn+0jK z6cN0ix5ts(KR$m)c(rvnFeC$6g}}~)uZj~?>`n-r5Z+LhJeStiqTHTktrCE$_~K$Z zW)c_Yy7sLRc0cfx$rgT5wmp8zrRY|vhG@^nbzR?1+?+$Yl@bU3s9X%S-1Wd< z7~KUNt@vBE-A*bkM8>%~6H({AB#Gf_#SbYZN*#p7TZgIuOJl37dKD!KxmLJ&o~B}t zoy^OJlwaRrh@R0CMR%%wGqfm*lIAK)r6 zDOPFm-JKHj2;O8d`2aeR(u;qUF^t|^GkDTI*Bda?Bfq<1kXvE1v4hkCuW%)X0TRMF z5fMLw23IRljFgw!zPzjaJ&p%;x(DwN)SaJ|LIy>wEh+J>U75dF_%v1uB+;hWR`M+* zPoTN)xeDlh)j6)^d|F{5ECM6{f`TKt_(S*vH8pMajs{Z1aYb>U;q~LY1$?Cm(K&Bh z&XwWPcvy{?<_r@NCz-YAs_7KAI>l<}uK)zpI9v5(yxNyvRedD(;X-SB=^%qDvG4h$ zEw8xw-%_pdS?bxwIZx(S|0CH7O=~{8ne+@zf>vTr`j;Tr0hF-wd!zx@Jc+x>=*Y-s z{M)rY5~iT9`qH6|@UcF3{X`^(N z3=qpEgCqfG#I}8J(>G*+J<-vv$!WFp3F-Op@~b0)UolT&hlh=Gh$9~!D(zO`hR$C| zTV;7iak%PkOUm~Ax|9z;qu%@o$0p4eLP>P(8h|DxG>UdzX+F}8lbVWY#}^k?2EZxv z6eon^OY@wCQ7-e07aMQTsLDFmg9uMJj$N2fDMa*#wr19dG|ycFprR?Z-Iw)fCmxAS znCd%nc!c6FK72)7b1Ez^C6wO8%(|}Q{k(=9oO^;#^R9h9Kfy!K^o$b;-kx_FM{>LB zTX9M=9r+7Hy%T`5MWwLs{`LsC3bcizP-eH@7{gYYne^{M?4cln`y-Je1rn*FZ)sNL zMu5W4$R_HgneOy0ncW=WpNj}c;c_g%D)B6|G&WIpbY;Ayw%qEGb+y|v3?AZJ*%TB1 z`mjH2xJ7~THDV1qU*?WPRH&I4z2>9D8R@7Xy&r6zA-0Xxv&4yqvUSeNVO)HCZN8}J zhi#4Q1?gcKrY6dDWyW6appWMocB7sk!F%)h!Ds5Cbscx|EQGsa6DhWaCYc|*1B1y} z_Dp>bOacR(d*+Kn1b$y!!=yAQbu4(xIsm<_yD54**C<4;6gX(wqrX{gGL%r8F;g=j zpPBVj%p_X=HY9Ogx86?#z0>}*4EZqWK=e7?4z-O66v!vB4QHuq22FkZd@5|)LJX`B z_1nmCAbHaqk)T9W=&Oh*K045zsd<0F03LUXt0TPr`Q# zP-O$?wddvTrT^|v2dFjTZ4Wz(dff|I<_gy>ZCh4Czva}HtlsbHxbfL$?Cet<$~pt} zRta+!h>z=K`NicBC!VKD?x=7jWL9J#jKY_^t_ryo^b#&bpqT(T<4L z$Ch!t|vWsC^=PLRUoQvG&6wZ9bGQHqfU6y6DWbS9Lu3 zKQdeC>?qi7&%amWV`9Lh<3uEQ9C;?i=s4dE?Q!X{+>Dp2<{TXEWThg^QG1P&XMXEb zMo0aw#?6eQUU~F0IoS=?!7{n5+7vJw5#n0jF@N;j;_@4<-F&NkBX&DamHjeZ|H+UI zpsOYVTSR>f?{a?lg}1E6<1)8$bI*tWc%jRl$CY8)5%syM z>T1&=q1G?0fGn@~*Bna^R$x91=U}H>Qlx)MiU3}uEivWo;A7eBKrye_VrpLHVc6m; z;;wrB=7P}-HvF2^Nq2I@&fX=wjUoPBca#T4dyKpEA<;)e{Ougu`a$ zko`VhLaJ|wq}Y_hB~`B(b~{B4=K}W$lqI7~RXRGhE|0~<1X45s4u4E$APxG>-!xm` z&D;8wmm7bGim0?=Zi^UCn;N+z$En@RP2Q2>c;&MEj(;+OJe!QmrCs)%(nNr5Ut9BH znhH@oUuNYpQM||pbc0?*^s+?P2-Q!4_Urn~LcB?j^8250?;yL-qDXF#F|9Yc2O*%L z?;g!XO?WorC=d#(6ck}YBjkJnEf+!OyY{fz7#LQsjD4Y*h5O{m5WQnh{V$ND&K3zZ zOoV1JLhi_&=J*7@$`Y>;XBNF?TDw!YE4WF;xXlbLs8w4h38636Y|{GR9(x3(av(Vx zM1`eAE%lc^?h1n2AcbC4^e6kCk(2okkK>_5uxR|Os}w^_rUaAudPdC!H5Yt)u5 zthg2mj%c=ME*yY~$T5Aai>ylFv_&HOUbvz|wxbtWRFJv=vxDf&y(_lp_X zNyg82ug0fwM|fjIwNM+6e-|Jx+@`%Z^8D$NgXKY*+_TrrD= zL+k_wU@WQ?uN=l!0XtNng5@%MvNtk0HKlYZ;c$6EO&ADKymo)^b*ufG!QdwU(Bx!3 zytoFI`Fy=^DwqAr`J#I_Jh6)hA~t1)^ZDKwG#z?J-m_>-OiV15$n@xR`_M#}hQGOo zL~|m7dYY1wvOrx`t=;c_=-nUvfpi{kvxkV@Xzz|A9FpGmKm($c-tR5Veri1PC$TKH zyV-w}-)S|GpYfyHN0%pJiOnS5jkp^)IK!#0+SB8f)K^o3_JaQA_&>~yE}B;?x>}+ywL=bb;>4!T;otq4_oN{#{eJ??s0}cl64gYU)0tvP7c!-1X*k zvRq08=yQ7)drC@Z@$m6SQfri%pwkoYZm|M0>iP21_)Qvg_kMsU{Xj4GlKz(G#QhH) zLi(ozqy&EX2rigl|Ib(i%s&k-0XLG!c4nui50~kq zbf5IyAo=GhgBdk0vZoy?dgCce_$J-O7WBXa7Mx+7`N>I)NNB^wtKui+^0Gp=X~vW9 z!l0S{Zsc;%a`A8LLLip{#obHJPyhL%!0Cd}ew{fppOT+_A#Kwy9!A=MmRt zENpE0_w7Bkt`$LEOv2Wg0oveih)x6K=x1~15GzxSw70`l8IQkrgrfc+1=xlar2wT7oL|P)^vdy|LU9qf8(s-a z(<4@v$We@cqc5NtQR#DsWd%@eo9ywoYbVqRR4xETGz=Y~jSk-^tUI58Hksg0^paL| zWz+!1o|I6fi}dl(f4loPfTokB+uOnSnae0YfDLLD0o-do; z1#lyf$;|uuLolwa2YBu^TO(M(@@l?3-TBkLPV4#{^ep|+vZ^i3EK^eaH{@GhPNFEw z4n7iSKl)dFG+BuVlIR_(#l_`e|F&cNokqaB1Uz->tUfdMxOVe)O`%ES^Z#;^{VVk@ zw_TnhD-NV_jQ?PIAd5pU+~C(3l;Y=Mj-Mr5194}%=Yk+y0&FE)Lz&*&Qe3{iz9$y= z&j`h_BK21B|0dJjSpgX1HPVrE?VYbRS|aYkKFHg-S@SE?COdP}{ERwIdd9Eai&OzF zJVQ>weY|r1zG={xG~}U=``JIT3GH3xoG4EZdrUCa%vzI-oFnjJe-Mxxiu9Qv^jyS+ zOog$ZiY!l$ZoESF437?`r+4>kejFW{oL2tzf&2er?5o3~`nrD+1ql&R0RaI4>5^^+ zLAtv^1f;u%R7xd=ZW!qfr5i!IySsB>hN0sg^!vW|eSh~p_qqS@Jj0oDX2;s=v(`Rq ze?Do)oddOZX3Z!Ozm2aNjf7G-x!>pvu33xh>>vn($vio7Znwggu*qU3| z^36lwHGWaW5gkBpHC;en`jrzIx*Ca$4~5_(P>VARNA7ek{T1&`z4ibJ zt1|dJRGr}79Rt(SPz7Vxmmc-huU}jYi{AnyXGe}*R#)u%H0+saaCA)8T2H>-7811W z6<8BoXyiE1K&rL76qY~Wz6QgCED6Bdp?Bg|%&;AAylU>ik)ME29ybBW#Y%Rln))?9 zcV{G7l4LLZdJ@=LZICwrSbt>DusCGwx2^>Woah~i1!XRF%xB((0Q6n*e~*pBpfrE# zR`upUM1KN_D}0Ktzo{g{^9G!AD=MA?0X zmJwNXQoi-#*Qxm#$m4p8|yfb~pbo_PomlWo1R_qf} zISamXWp3-)NOp3`71b-J_p3&z4nqMs=;^O2F#tO4H+Ht)e*!vVy-0ZxgJy=6%C6nT z*%x6}A)-fuh0h-@)Q2^^L$ZP~9D$m)n;Q$t-vF><{O{~3+k7%YGjjB7(f_YUK`SwA z4hO1>TW4nh`r3SKR)Yo+S66O*#-B!QLBP4;9N*4AFLcfrf$~LSbKxj;?>t>$7n1Nj z-a`J-P{l6_zv}ovMw@}ATU^KTcZCn!Va#P-ut$1=C$#?*J^-?Wnf2Wm$F46z5KUM2 z<>jO(7u-%n4P5U@xLu-S;&lVkhyLZs-lnpmzF#_awn59J(SyT-zpx3tZ?jxQm5ne7 zATyzEVV&P|&$X;myd!LD$w;CCJ`EVETp!Ihwf_+!bQdZXQ^PG04pV>DxP49!vpW0L zOTuwc)VjG(Fmy7Z2=ZH?F?g}|hBV%bOOnVdxK{=HX;TbCeHCJ5rv{hA8D5d*0|kZ zhS6_c{B)^fMNjH$c>}QgY+QbaH>Dt(0+9wFV*{vs!jvuA0>E)Hi2W@eQuZMM*GJzC z5MI%1Pa1xhSKLtaQsCpwH;NpmH+^uDl-d5pUib*%6x;QSprpPwx?sDbU{=sfXhiIB zOgQTP?l_K_+gyn?=tB9a-pur{qk|FsL>Pa7Q3v*$RxdW6B=0)M-AgCERM^9VU!@?u zcG?TV}?gR)M6pR1?!h}iNhXb}X z{`;AVO4n8kki*e6j>A-6G{YA+eq8sxYOR)#y)p(Zox5(KTv~znFtV2G)pRY;A>Cpb z)(^-WOhSaeW4APC^4PevEl;}|{joxGKsU`U+o%!A!9|cpNA&OY1LbDpZ%61}7EPFv z9}PQYOO^q(oj!+!K(lG_v!>a>n&oE!#r}#T`~iqU@}-vFvK3yVmu!#S^*e%uJAV|- zznwW)-kyBZW+Je`ceeD&jyLQXi~yHtn>W9M=K01KD2b@;hkFxXvd#*0fwHXWK@2{q zAF#8{mQfkj~40PNOi`4B-p% zEc0wZ1G8eT&ov6JxZHPobn>CM-pm|z#B7Orrko$gDqTWeXzjPqsz0@f`1dFWqLM?9x(I>o%v2nf4#x-YHOWzxE)>GT#>R zSZ`T)?q1{OTokNj_z(;2P2;+al|*@{O{XpOwcp3bV`>7YkhP_ zEi6)89>|fh^i@82x;P=ML3FxncKV}~P!n zEePgUA8V&t@1T&UoLo;n9Js}wi%C2U?>3+ixk!8#QU3Kv1yGg_Tl*Uu{VgB`hz+$@ zeM$a8N4@)v9>1;>5!~(LT?INIJPuG8e3p%88D{2ui*jjt*k;M!p54-@7VSM zl1;2XiqS>gLNPtF?-Z__G3Wo3Z-gJ~eX0J*BPMcgcUQhaZU&~}=f&&%%xyG#Zui4> z!oVbZW90X04Vu^+%L$Ra`s@3mR~h-m8l?T(1XgA@0WTEVc+5$;p@v^@%1=~rc9MSt zm*6`w*fKswyZU0)32VFk_=328+Nkd{Uv&dE_St^O2cP6BK`oHehb=-U}WW zV6;xP`VRXWCn%ktDS6~`QE#IR9~TISw~%}Pl*|C5!z^U6^F$H> zZ1)7MYxpt1HsmB0LNScqNy^dfk^X#zW{JQ$A`bjcs zQ%CA51kaHp?&8CJ)ri=bhn_sx){m~Rd~coxv@II^c8jNde>hj|;K~SHyRz7@__v@S zh``e<^{uVtJ*4yx%MafS4OoJkzFvG@Z!T>{ix00l97qU`ECd_PCajjN&Rm)Q(mk`+ z;9;s4B0KtIfzj|J@K?xU2QGxhadX@LxGV$tm32w)^-CSy4`RphQej;ZYy0nZW(C%n z(sG2`X1>sGac59J9;ngME@jASeoPj3X6?l4y#C=d&euQFsg#0`7rWQL!8P+h}d7^jN=^!s!lb z3`S#qW_TFL>s3?3K_Eo@iHhS^M8=-G3FqR`=m2i(4{e^vcpWKY%+Em{�_@`EYRL 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≫amn5K{9mEj;gle@chBOqvDB)E38f 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%0A6rRnBI7a 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 literal 0 HcmV?d00001 diff --git a/figures/zh-cn_image_0000001081285004.png b/figures/zh-cn_image_0000001081285004.png new file mode 100755 index 0000000000000000000000000000000000000000..2eb8eaa21d199a604fe3ad9e07de551845eb60df GIT binary patch literal 289744 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 K>b}&z82vv`nwrc2 literal 0 HcmV?d00001 diff --git a/figures/zh-cn_image_0000001128146921.png b/figures/zh-cn_image_0000001128146921.png new file mode 100755 index 0000000000000000000000000000000000000000..82ecf5d03a518987429deff0461e9fc4e9c4c583 GIT binary patch literal 57610 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%0A6rRnBI7a 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 literal 0 HcmV?d00001 diff --git a/interfaces/innerkits/LICENSE b/interfaces/innerkits/LICENSE new file mode 100755 index 0000000..4a45986 --- /dev/null +++ b/interfaces/innerkits/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/interfaces/innerkits/distributed_service_interface.h b/interfaces/innerkits/distributed_service_interface.h new file mode 100755 index 0000000..b9c3714 --- /dev/null +++ b/interfaces/innerkits/distributed_service_interface.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2020 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 OHOS_DISTRIBUTEDSCHEDULE_INTERFACE_H +#define OHOS_DISTRIBUTEDSCHEDULE_INTERFACE_H + +#include "feature.h" +#include "iproxy_server.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +#define DISTRIBUTED_SCHEDULE_SERVICE "dtbschedsrv" +#define DMSLITE_FEATURE "dmslite" + +typedef enum { + DMS_EC_SUCCESS = 0, + DMS_EC_START_ABILITY_SYNC_SUCCESS = 1, + DMS_EC_START_ABILITY_ASYNC_SUCCESS = 2, + DMS_EC_PARSE_TLV_FAILURE = 3, + DMS_EC_UNKNOWN_COMMAND_ID = 4, + DMS_EC_GET_BMS_FAILURE = 5, + DMS_EC_GET_BUNDLEINFO_FAILURE = 6, + DMS_EC_CHECK_PERMISSION_FAILURE = 7, + DMS_EC_GET_AMS_FAILURE = 8, + DMS_EC_REGISTE_IPC_CALLBACK_FAILURE = 9, + DMS_EC_FILL_WANT_FAILURE = 10, + DMS_EC_START_ABILITY_SYNC_FAILURE = 11, + DMS_EC_START_ABILITY_ASYNC_FAILURE = 12, + DMS_EC_FAILURE = 13 +} DmsLiteCommonErrorCode; + +typedef struct { + INHERIT_SERVER_IPROXY; +} DmsLiteInterface; + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif + +#endif // OHOS_DISTRIBUTEDSCHEDULE_INTERFACE_H diff --git a/interfaces/kits/LICENSE b/interfaces/kits/LICENSE new file mode 100755 index 0000000..4a45986 --- /dev/null +++ b/interfaces/kits/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/interfaces/kits/communication/broadcast/broadcast_interface.h b/interfaces/kits/communication/broadcast/broadcast_interface.h new file mode 100755 index 0000000..2eae2a4 --- /dev/null +++ b/interfaces/kits/communication/broadcast/broadcast_interface.h @@ -0,0 +1,235 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Broadcast + * @{ + * + * @brief Provides data subscription and data push for services. + * + * With this module, the Service, Feature, or other modules can broadcast events or data. \n + * All services that listen to these events or data can receive these broadcasts. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file broadcast_intertface.h + * + * @brief Provides the external interfaces and basic type definitions of the broadcast service. + * + * The interface and type are used for subscribing to and publishing events and data. \n + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_BROADCAST_INTERFACE_H +#define LITE_BROADCAST_INTERFACE_H + +#include +#include "feature.h" +#include "iunknown.h" +#include "message.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +/** + * @brief Indicates the name of the broadcast service. + * + * @since 1.0 + * @version 1.0 */ +#define BROADCAST_SERVICE "Broadcast" + +/** + * @brief Indicates the name of the pub/sub feature. + * + * @since 1.0 + * @version 1.0 + */ +#define PUB_SUB_FEATURE "Provider and subscriber" + +/** + * @brief Indicates the topic of an event or data, which is used to distinguish different types of + * events or data. + * + * @since 1.0 + * @version 1.0 + */ +typedef uint32 Topic; + +/** + * @brief Enumerates error codes unique to the Broadcast service. + */ +enum BroadcastErrCode { + /** Error code showing that a topic has been subscribed to */ + EC_ALREADY_SUBSCRIBED = EC_SUCCESS + 1 +}; + +typedef struct Consumer Consumer; + +/** + * @brief Defines the topic consumer used to receive events and push data. You need to implement + * this struct for your application. + */ +struct Consumer { + /** Consumer ID */ + const Identity *identity; + + /** + * @brief Defines how the consumer will process the events or data of a released topic. + * + * You can implement this function for consumers to process topics associated with the them. \n + * Note that the passed topic must have been subscribed by the consumer. Otherwise, the + * function does nothing. \n + * + * @param consumer Indicates this pointer of the consumer. + * @param topic Indicates the pointer to the topic to be processed. + * @param origin Indicates the pointer to the data to be processed. + * @since 1.0 + * @version 1.0 + */ + void (*Notify)(Consumer *consumer, const Topic *topic, const Request *origin); + + /** + * @brief Checks whether two consumers are equal. + * + * You need to implement this function to prevent repeated topic subscription. \n + * + * @param current Indicates the pointer to the current consumer. + * @param other Indicates the pointer to the target consumer to compare. + * @return Returns TRUE if the two consumers are equal; returns FALSE otherwise. + * @since 1.0 + * @version 1.0 + */ + BOOL (*Equal)(const Consumer *current, const Consumer *other); +}; + +typedef struct Provider Provider; + +/** + * @brief Defines the provider of events and data of a topic. + */ +struct Provider { + /** + * @brief Publishes events and data of a specified topic. + * + * The events or data is published by the publisher, sent to all consumers who have subscribed + * to the topic, and processed by the consumers. \n + * + * @param iUnknown Indicates external interface of the pub/sub feature. + * @param topic Indicates the pointer to the topic to publish. + * @param data Indicates the pointer to the data to publish. + * @param len Indicates the length of the data to be published. The length must be the same as + * the data length. The caller must ensure the validity of this parameter. + * @return Returns TRUE if the topic is successfully published; returns FALSE + * otherwise. + * @since 1.0 + * @version 1.0 + */ + BOOL (*Publish)(IUnknown *iUnknown, const Topic *topic, uint8 *data, int16 len); +}; + +typedef struct Subscriber Subscriber; + +/** + * @brief Defines the subscriber for external interfaces to subscribe to events and data of a topic. + */ +struct Subscriber { + /** + * @brief Adds a specified topic to the Broadcast service. + * + * The specified topic is added by the subscriber. \n + * A topic can be subscribed to only after being added. \n + * + * @param iUnknown Indicates external interface of the pub/sub feature. + * @param topic Indicates the topic to be subscribed to. + * @return Returns EC_SUCCESS if the topic is successfully added; returns other error + * codes if the topic fails to be added. + * @since 1.0 + * @version 1.0 + */ + int (*AddTopic)(IUnknown *iUnknown, const Topic *topic); + + /** + * @brief Subscribes to a specified topic for consumers. + * + * Call this function on the subscriber. The topic to be subscribed to must have been added to + * the Broadcast service. \n + * + * @param iUnknown Indicates external interface of the pub/sub feature. + * @param topic Indicates the topic to be subscribed to. + * @param consumer Indicates the consumer who subscribes to the topic. + * @return Returns EC_SUCCESS if the subscription is successful; returns other error + * codes if the subscription fails. + * @since 1.0 + * @version 1.0 + */ + int (*Subscribe)(IUnknown *iUnknown, const Topic *topic, Consumer *consumer); + + /** + * @brief Modifies the consumer of a specified topic. + * + * + * + * @param iUnknown Indicates the pointer to the external interface of the pub/sub feature. + * @param topic Indicates the pointer to the topic whose consumer will be modified. + * @param old Indicates the pointer to the original consumer of the topic. + * @param current Indicates the pointer to the new consumer of the topic. + * @return Returns the pointer of the original consumer if the modification is successful; + * returns NULL otherwise. + * @since 1.0 + * @version 1.0 + */ + Consumer *(*ModifyConsumer)(IUnknown *iUnknown, const Topic *topic, Consumer *old, Consumer *current); + + /** + * @brief Unsubscribes from a specified topic. + * + * This function cancels the subscription relationship between the specified topic and + * consumer. \n + * + * @param iUnknown Indicates external interface of the pub/sub feature. This parameter is used + * to obtain subscription relationships. + * @param topic Indicates the pointer to the topic to unsubscribe from. + * @param consumer Indicates the pointer to the consumer. + * @return Returns the pointer of the consumer if the unsubscription is successful; returns + * NULL otherwise. + * @since 1.0 + * @version 1.0 + */ + Consumer *(*Unsubscribe)(IUnknown *iUnknown, const Topic *topic, const Consumer *consumer); +}; + +typedef struct PubSubInterface PubSubInterface; + +struct PubSubInterface { + INHERIT_IUNKNOWN; + Subscriber subscriber; + Provider provider; +}; + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif +#endif // LITE_BROADCAST_INTERFACE_H +/** @} */ diff --git a/interfaces/kits/registry/iproxy_client.h b/interfaces/kits/registry/iproxy_client.h new file mode 100755 index 0000000..302a675 --- /dev/null +++ b/interfaces/kits/registry/iproxy_client.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Registry + * @{ + * + * @brief Provides APIs for registering and discovering inter-process communication (IPC) + * capabilities. + * + * Based on the Samgr development framework, this module helps you to develop system capabilities + * and implement cross-process calls. \n + * This module is used when system capabilities need to be provided across processes. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file iproxy_client.h + * + * @brief Provides the client proxy class. + * + * When you need to call system capabilities of other processes, obtain the class from Samgr. \n + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_IPROXY_CLIENT_H +#define LITE_IPROXY_CLIENT_H + +#include "iunknown.h" +#include "message.h" +#include "serializer.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +#define CLIENT_PROXY_VER 0x40 + +/** + * @brief Indicates the inherited macro of the client proxy. + * + * This constant is used when a client proxy needs to be customized or generated by a tool. \n + * + */ +#define INHERIT_CLIENT_IPROXY \ + INHERIT_IUNKNOWN; \ + int (*Invoke)(IClientProxy *proxy, int funcId, IpcIo *request, IOwner owner, INotify notify) + +typedef void *IOwner; + +/** + * @brief Called when a client request is responded. + * + * The client implements this INotify callback to receive response data from the server. \n + * owner indicates the client proxy that receives the response data; code indicates + * the error code of the response data from the server; reply indicates the response data. \n + * + */ +typedef int (*INotify)(IOwner owner, int code, IpcIo *reply); + +typedef struct IClientProxy IClientProxy; + +/** + * @brief Defines the client proxy object. + * + * This object is used for the IPC with the server. \n + * If you want to use the same invocation mode as that on the server, create an object inherited + * from {@code IClientProxy} and implement serialization. + * + * @since 1.0 + * @version 1.0 + */ +struct IClientProxy { + /** Inherites the IUnknown base class. */ + INHERIT_IUNKNOWN; + + /** + * @brief Sends an IPC message from the client to the IServerProxy. + * + * This function is used for IPC. \n + * The passed proxy is used to obtain the server information. Then, request + * carries the request message to be sent to the server and processed by the function specified + * by funcId. notify is a callback function used to process the response message. \n + * + * @param proxy Indicates the pointer of the client proxy object. + * @param funcId Indicates the ID of the function implemented on the server. + * @param request Indicates the pointer to the serialized request message. + * @param owner Indicates the receiver (generics type) of the response message. + * @param notify Indicates the callback function that notifies the client of the response + * message. + * @return Returns EC_SUCCESS if the IPC message is sent successfully; returns other + * error codes if the message fails to be sent. + * @since 1.0 + * @version 1.0 + */ + int (*Invoke)(IClientProxy *proxy, int funcId, IpcIo *request, IOwner owner, INotify notify); +}; + +#define INHERIT_IPROXY_ENTRY(T) INHERIT_IUNKNOWNENTRY(T) + +#define CLIENT_IPROXY_BEGIN IUNKNOWN_ENTRY_BEGIN(CLIENT_PROXY_VER) + +#define IPROXY_END IUNKNOWN_ENTRY_END + +/** + * @brief Obtains the IPC address of a remote service and feature based on the service name + * and feature name. + * + * This function is used when {@link IClientProxy} cannot meet your requirements for calling IPCs. \n + * For example, if you need to receive the death notification of a remote service or feature, + * you can call this function to obtain the address of the remote service or feature + * and subscribe to the death notification from the IPC. \n + * + * @param service Indicates the pointer to the name of the remote service. + * @param feature Indicates the pointer to the name of the remote feature. + * @return Returns the IPC address of the remote service or feature. When the handle of the + * obtained address structure {@link SvcIdentity} is 0xFFFFFFFF, the address is invalid. + * @attention This function can be called only after GetFeatureApi in {@link SamgrLite} + * is successfully called. Otherwise, an invalid address is returned. When the service or feature + * does not support IPC communication, an invalid address will be returned. + * @since 1.0 + * @version 1.0 + */ +SvcIdentity SAMGR_GetRemoteIdentity(const char *service, const char *feature); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif +#endif // LITE_IPROXY_CLIENT_H +/** @} */ diff --git a/interfaces/kits/registry/iproxy_server.h b/interfaces/kits/registry/iproxy_server.h new file mode 100755 index 0000000..08f9266 --- /dev/null +++ b/interfaces/kits/registry/iproxy_server.h @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Registry + * @{ + * + * @brief Provides APIs for registering and discovering inter-process communication (IPC) + * capabilities. + * + * Based on the Samgr development framework, this module helps you to develop system capabilities + * and implement cross-process calls. \n + * This module is used when system capabilities need to be provided across processes. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file iproxy_server.h + * + * @brief Provides the server proxy. + * + * This feature is required for providing cross-process system capabilities. \n + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_IPROXY_SERVER_H +#define LITE_IPROXY_SERVER_H + +#include "iunknown.h" +#include "message.h" +#include "serializer.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +/** + * @brief Defines the default version number of the server proxy. + * + * The cross-process system capabilities are registered when Samgr uses SERVER_PROXY_VER + * to query the registered server proxy. \n + * + */ +#define SERVER_PROXY_VER 0x80 +#define SERVER_IMPL_PROXY_VER ((uint16)SERVER_PROXY_VER | (uint16)DEFAULT_VERSION) + +/** + * @brief Inherits the server proxy function. + * + * When the server provides cross-process system capabilities, it uses INHERIT_SERVER_IPROXY + * to define the server proxy function. \n + * + */ +#define INHERIT_SERVER_IPROXY \ + INHERIT_IUNKNOWN; \ + int32 (*Invoke)(IServerProxy *iProxy, int funcId, void *origin, IpcIo *req, IpcIo *reply) + +typedef struct IServerProxy IServerProxy; + +/** + * @brief Defines the base class of the server proxy object. + * + * When the server provides cross-process system capabilities, it uses INHERIT_SERVER_IPROXY + * to define the server proxy. \n + */ +struct IServerProxy { + /** This class inherits from IUnknown. */ + INHERIT_IUNKNOWN; + /** + * @brief Unmarshals the IPC message received by the server. + * + * This function is implemented by developers and called by the system. \n + * This function runs in the message processing thread of the service. Do not block the message + * processing thread; otherwise, the function may fail to be executed. \n + * + * @param Proxy Indicates the pointer to the server proxy object. + * @param funcId Indicates the ID of the server function to be invoked by the client. + * @param origin Indicates the original IPC message, from which the header information can be + * obtained. + * @param req ipc Indicates the message body, from which data can be obtained. + * @param reply Indicates the output parameter, which is used to respond to the message. + * The value can contain a maximum of five objects and 200 bytes. + * @return Returns EC_SUCCESS if the unmarshalling is successful; returns other error + * codes if the unmarshalling fails. + * @since 1.0 + * @version 1.0 + */ + int32 (*Invoke)(IServerProxy *iProxy, int funcId, void *origin, IpcIo *req, IpcIo *reply); +}; + +/** + * @brief Inherits the server proxy class. + * + * When the server provides cross-process system capabilities, it uses INHERIT_IPROXY_ENTRY + * to define the server proxy class. \n + * + */ +#define INHERIT_IPROXY_ENTRY(T) INHERIT_IUNKNOWNENTRY(T) + +/** + * @brief Defines the beginning of the default initialization for the server proxy class. + * + * This macro is used for developing the server proxy class. You can inherit this macro to + * reduce the code amount and prevent class definition inconsistency. \n + * + */ +#define SERVER_IPROXY_BEGIN IUNKNOWN_ENTRY_BEGIN(SERVER_PROXY_VER) + +#define SERVER_IPROXY_IMPL_BEGIN IUNKNOWN_ENTRY_BEGIN(SERVER_IMPL_PROXY_VER) + +/** + * @brief Defines the end of the default initialization for the server proxy class. + * + * This macro is used for developing the server proxy class. You can inherit this macro to + * reduce the code amount and prevent class definition inconsistency. \n + * + */ +#define IPROXY_END IUNKNOWN_ENTRY_END + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif +#endif // LITE_IPROXY_SERVER_H +/** @} */ diff --git a/interfaces/kits/registry/registry.h b/interfaces/kits/registry/registry.h new file mode 100755 index 0000000..a4f1638 --- /dev/null +++ b/interfaces/kits/registry/registry.h @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Registry + * @{ + * + * @brief Provides APIs for registering and discovering inter-process communication (IPC) + * capabilities. + * + * Based on the Samgr development framework, this module helps you to develop system capabilities + * and implement cross-process calls. \n + * This module is used when system capabilities need to be provided across processes. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file registry.h + * + * @brief Provides basic APIs for remote service registration and discovery. + * + * APIs provided by this file include the factory registration function of the client code. \n + * This file is used when there are customized client objects. \n + * + * @since 1.0 + * @version 1.0 + */ +#ifndef LITE_REGISTRY_H +#define LITE_REGISTRY_H + +#include +#include + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +/** + * @brief Indicates the creator of the customized client proxy. + * + * This macro creates a local client proxy for remote service APIs. + * If you want to call the remote APIs in the way that local APIs are called, implement this macro + * to encapsulate serialized data into the proxy. \n + * The system automatically calls this macro when creating a proxy object. \n + * + * @param service Indicates the pointer to the name of the service to which the function belongs. + * @param feature Indicates the pointer to the name of the feature to which the function belongs. + * @param size Indicates the size of the head to be added when a client proxy is created. The + * required memory capacity is the head size plus the object size. + * @return void * Returns the applied memory capacity and initialize the memory for the client + * proxy. + */ +typedef void *(*Creator)(const char *service, const char *feature, uint32 size); + +/** + * @brief Indicates the destroyer of the customized client proxy. + * + * This macro destroys local client proxy for remote service APIs. + * If you want to call the remote APIs in the way that local APIs are called, implement this macro + * to encapsulate serialized data into the proxy. \n + * The system automatically calls this macro when destroying a proxy object. \n + * + * @param service Indicates the pointer to the name of the service to which the function belongs. + * @param feature Indicates the pointer to the name of the feature to which the function belongs. + * @param iproxy Indicates the pointer to the start address of the memory that is applied by + * Creator. + */ +typedef void (*Destroyer)(const char *service, const char *feature, void *iproxy); + +/** + * @brief Registers the factory method of the client proxy object with the Samgr. + * + * + * If you want to call the remote APIs in the way that local APIs are called, implement this + * function to encapsulate serialized data into the proxy. \n + * During system initialization, the module that uses the remote proxy calls the function as + * required. \n + * + * @param service Indicates the pointer to the service name of the client proxy. + * @param feature Indicates the pointer to the feature name of the client proxy. + * @param creator Indicates the Creator function of the client proxy. + * @param destroyer Indicates the Destroyer function of the client proxy. + * @return Returns EC_SUCCESS if the registration is successful; returns other error codes + * if the registration fails. + * @since 1.0 + * @version 1.0 + */ +int SAMGR_RegisterFactory(const char *service, const char *feature, Creator creator, Destroyer destroyer); +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif +#endif // LITE_REGISTRY_H +/** @} */ diff --git a/interfaces/kits/samgr/common.h b/interfaces/kits/samgr/common.h new file mode 100755 index 0000000..adc924c --- /dev/null +++ b/interfaces/kits/samgr/common.h @@ -0,0 +1,260 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Samgr + * @{ + * + * @brief Manages system capabilities. + * + * This module provides the development framework base of the service-oriented architecture (SOA). + * You can develop your own abilities based on the Samgr development framework. \n + * This module provides basic models of services, features, and functions, and registration and + * discovery capabilities. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file common.h + * + * @brief Provides common objects and functions for Samgr and external modules. + * + * + * This file provides simplified vector containers and downcast functions. \n + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_COMMON_H +#define LITE_COMMON_H + +#include "ohos_types.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +typedef void *MQueueId; +typedef void *MutexId; +typedef void *ThreadId; + +/** + * @brief Calculates the offset of the member in the T type. + * + * + * + * @param Indicates the T type. + * @param member Indicates the name of the T member variable. + * + * @since 1.0 + * @version 1.0 + */ +#define GET_OFFSIZE(T, member) (long)((char *)&(((T *)(0))->member)) + +/** + * @brief Downcasts the pointer to the T type. + * + * + * + * @param Ptr Indicates the current pointer, which is the address of the T member variable. + * @param T Indicates the target type of the downcast. + * @param member Indicates the name of the {@code Ptr} as a T member variable. + * + * @since 1.0 + * @version 1.0 + */ +#define GET_OBJECT(Ptr, T, member) (T *)(((char *)(Ptr)) - GET_OFFSIZE(T, member)) + +/** + * @brief Indicates an invalid vector index. The value is -1. + * + * This macro indicates that the vector operation fails. \n + * INVALID_INDEX is returned if an element cannot be found by {@link VECTOR_Find} or added + * to VECTOR_Add. + * + */ +#define INVALID_INDEX (-1) +typedef void *(*VECTOR_Key)(const void *); +typedef int (*VECTOR_Compare)(const void *, const void *); + +/** + * @brief Defines the simplified vector class, which is extended by four elements. + * + * + * This class is applicable to the C language development scenario where the data volume is small + * and dynamic expansion is required. \n + * + */ +typedef struct SimpleVector { + /** Maximum number of data records that can be stored. The initial value is 0. */ + int16 max; + /** Peak value of the number of stored data records. The initial value is 0. */ + int16 top; + /** Number of data records that have been released. The initial value is 0. */ + int16 free; + /** Data storage pointer */ + void **data; + /** + * Converts a data element into a key for comparison. The key is provided by users, and the + * default value is NULL. + */ + VECTOR_Key key; + /** + * Compares the sizes of key1 and key2, which are provided by users. The value 1 + * indicates that key1 is greater than key2, the value 0 indicates that key1 is equal + * to key2, and the value -1 indicates that key1 is less than key2. The default value + * is NULL. + */ + VECTOR_Compare compare; +} Vector; + +/** + * @brief Creates or initializes a vector object. + * + * This function is used to create or initialize a vector object. \n + * + * @param key Indicates the pointer to the function provided by users for converting data elements + * into key values. If this function is not provided, set it to NULL. + * @param compare Indicates the pointer to the function for comparing the sizes of two elements. + * If this function is not provided, set it to NULL. + * @return Returns the vector right value object. + * @since 1.0 + * @version 1.0 + */ +Vector VECTOR_Make(VECTOR_Key key, VECTOR_Compare compare); + +/** + * @brief Destruct a vector object. + * + * This function is used to clear the memory applied by the vector after the temporary vector in + * the stack is used. \n + * + * @param vector Indicates the pointer to the vector to clear. + * @since 1.0 + * @version 1.0 + */ +void VECTOR_Clear(Vector *vector); + +/** + * @brief Adds an element to the vector. + * + * This function is used to add an element to the vector. \n + * + * @param vector Indicates the this pointer to the vector. + * @param element Indicates the element to add. + * @return Returns the location of the element to be added if the operation is successful; returns + * {@link INVALID_INDEX} if the operation fails. + * @since 1.0 + * @version 1.0 */ +int16 VECTOR_Add(Vector *vector, void *element); + +/** + * @brief Obtains the number of elements in the vector, including elements that have been set to + * NULL. + * + * This function is used for full traversal. \n + * + * @param vector Indicates the this pointer to the vector. + * @return Returns the top value of the vector, which indicates the number of elements. + * @since 1.0 + * @version 1.0 + */ +int16 VECTOR_Size(Vector *vector); + +/** + * @brief Obtains the number of valid elements in the vector, excluding elements that have been set + * to NULL. + * + * This function is used to check whether the number of elements reaches the upper limit. \n + * + * @param vector Indicates the this pointer to the vector. + * @return Returns the top - free value of the vector, which indicates the number of non-null + * elements. + * @since 1.0 + * @version 1.0 + */ +int16 VECTOR_Num(Vector *vector); + +/** + * @brief Obtains the element at a specified position. + * + * This function is used to obtain the element at a specified position. + * + * @param vector Indicates the this pointer to the vector. + * @param index Indicates the subscript to be obtained. + * @return Returns the element if obtained; returns NULL otherwise. + * @since 1.0 + * @version 1.0 + */ +void *VECTOR_At(Vector *vector, int16 index); + +/** + * @brief Swaps the element at a specified position in a vector with another element. + * + * This function is used to clear, sort, or update elements in the vector. \n + * + * @param vector Indicates the this pointer to the vector. + * @param index Indicates the position of the element to be swapped. + * @param element Indicates the pointer to the new element. + * @attention Before using this function, ensure that the index is valid. You can use + * VECTOR_Size to obtain the upper limit of the index. + * @return Returns the original element if the swapping is successful; returns NULL + * if the swapping fails. + * @see VECTOR_Size + * @since 1.0 + * @version 1.0 + */ +void *VECTOR_Swap(Vector *vector, int16 index, void *element); + +/** + * @brief Checks the position of an element. + * + * This function is used to check whether a vector has a specified element. \n + * + * @param vector Indicates the this pointer to the vector. + * @param element Indicates the element to be checked. + * @return Returns the index of the element that is not less than 0 if the check is successful; + * returns {@link INVALID_INDEX} if the check fails. + * @since 1.0 + * @version 1.0 + */ +int16 VECTOR_Find(Vector *vector, const void *element); + +/** + * @brief Checks the position of the element with a specified key. + * + * This function is used to check an element based on its key value. \n + * + * @param vector Indicates the this pointer to the vector. + * @param key Indicates the pointer to the key value of the element to check. + * @return Returns the index of the key element that is not less than 0 if the check is successful; + * returns {@link INVALID_INDEX} if the check fails. + * @since 1.0 + * @version 1.0 + */ +int16 VECTOR_FindByKey(Vector *vector, const void *key); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif +#endif // LITE_COMMON_H +/** @} */ diff --git a/interfaces/kits/samgr/feature.h b/interfaces/kits/samgr/feature.h new file mode 100755 index 0000000..3bb5c39 --- /dev/null +++ b/interfaces/kits/samgr/feature.h @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Samgr + * @{ + * + * @brief Manages system capabilities. + * + * This module provides the development framework base of the service-oriented architecture (SOA). + * You can develop your own abilities based on the Samgr development framework. \n + * This module provides basic models of services, features, and functions, and registration and + * discovery capabilities. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file feature.h + * + * @brief Defines the base class of a feature. + * + * This class is used to develop service features. \n + * It provides functions for the feature lifecycle of a service. \n + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_FEATURE_H +#define LITE_FEATURE_H + +#include "message.h" +#include "service.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +typedef struct Feature Feature; + +/** + * @brief Defines the base class of a feature. + * + * You need to implement the pointer to the feature. \n + * + * @since 1.0 + * @version 1.0 + */ +struct Feature { + /** + * @brief Obtains a feature name. + * + * This function is implemented by developers and called by Samgr during feature registration + * and startup. \n + * + * @param feature Indicates the pointer to the feature. + * @return Returns a constant character string less than 16 bytes if the operation is + * successful; returns NULL if the operation fails. + * + * @since 1.0 + * @version 1.0 + */ + const char *(*GetName)(Feature *feature); + + /** + * @brief Initializes a feature. + * + * This function is implemented by developers. After Samgr dispatches tasks to a service, the + * service calls this function in its own tasks. \n + * + * @param feature Indicates the pointer to the feature. + * @param parent Indicates the pointer to the {@link Service} to which the feature belongs. + * @param identity Indicates the identity of a feature dispatched by the system. + * + * @since 1.0 + * @version 1.0 + */ + void (*OnInitialize)(Feature *feature, Service *parent, Identity identity); + + /** + * @brief Stops a feature. + * + * This function is implemented by developers and is called by Samgr when a feature is + * deregistered to stop running services. \n + * + * @param feature Indicates the pointer to the feature. + * @param identity Indicates the {@link Identity} of the feature to be stopped. + * @since 1.0 + * @version 1.0 + */ + void (*OnStop)(Feature *feature, Identity identity); + + /** + * @brief Processes a feature message. + * + * This function is implemented by developers to process requests sent by callers through + * IUnknown. \n + * + * @param feature Indicates the pointer to the feature. + * @param request Indicates the request message. + * @return Returns TRUE if the processing is successful; returns FALSE if + * the processing fails. + * + * @since 1.0 + * @version 1.0 + */ + BOOL (*OnMessage)(Feature *feature, Request *request); +}; + +/** + * @brief Inherits from the macro of the feature class. + * + * This macro provides the capability of inheriting the feature lifecycle. \n + * + */ +#define INHERIT_FEATURE \ + const char *(*GetName)(Feature *feature); \ + void (*OnInitialize)(Feature *feature, Service *parent, Identity identity); \ + void (*OnStop)(Feature *feature, Identity identity); \ + BOOL (*OnMessage)(Feature *feature, Request *request) + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif + +#endif // LITE_FEATURE_H +/** @} */ diff --git a/interfaces/kits/samgr/iunknown.h b/interfaces/kits/samgr/iunknown.h new file mode 100755 index 0000000..7478086 --- /dev/null +++ b/interfaces/kits/samgr/iunknown.h @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Samgr + * @{ + * + * @brief Manages system capabilities. + * + * This module provides the development framework base of the service-oriented architecture (SOA). + * You can develop your own abilities based on the Samgr development framework. \n + * This module provides basic models of services, features, and functions, and registration and + * discovery capabilities. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file iunknown.h + * + * @brief Provides the base class and default implementation for external functions of system capabilities. + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_IUNKOWN_H +#define LITE_IUNKOWN_H + +#include "common.h" +#include "ohos_errno.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +typedef struct IUnknown IUnknown; + +/** + * @brief Defines the default IUnknown version. You can customize the version. + * + * The IUnknown interface of the default version can be called only in the current process. + * Inter-process communication is not supported. \n + * + * @since 1.0 + * @version 1.0 + */ +#define DEFAULT_VERSION 0x20 + +/** + * @brief Defines the macro for inheriting the IUnknown interface. + * + * When developing a subclass of the IUnknown class, you can use this macro to inherit the + * structures of the IUnknown interface. \n + * + */ +#define INHERIT_IUNKNOWN \ + int (*QueryInterface)(IUnknown *iUnknown, int version, void **target); \ + int (*AddRef)(IUnknown *iUnknown); \ + int (*Release)(IUnknown *iUnknown) + +/** + * @brief Defines the macro for inheriting the classes that implement the IUnknown + * interface. + * + * When developing a subclass of a class that implements the IUnknown interface, you can use + * this macro to inherit the structures of the IUnknown implementation class. \n + * + */ +#define INHERIT_IUNKNOWNENTRY(T) \ + uint16 ver; \ + int16 ref; \ + T iUnknown + +/** + * @brief Defines the default marco for initializing the IUnknown interface. + * + * When creating a subclass object of the IUnknown interface, you can use this macro to + * initialize members of the IUnknown interface to their default values. \n + * + */ +#define DEFAULT_IUNKNOWN_IMPL \ + .QueryInterface = IUNKNOWN_QueryInterface, \ + .AddRef = IUNKNOWN_AddRef, \ + .Release = IUNKNOWN_Release + +/** + * @brief Defines the macro for initializing the classes that implement the IUnknown + * interface. + * + * When creating a subclass object of a class that implements the IUnknown interface, you + * can use this macro to initialize members of the IUnknown implementation class to their + * default values. \n + * You need to add the initialization of the customized member variable. \n + * + */ +#define IUNKNOWN_ENTRY_BEGIN(version) \ + .ver = (version), \ + .ref = 1, \ + .iUnknown = { \ + DEFAULT_IUNKNOWN_IMPL + +/** + * @brief IUnknown Defines the end macro for initializing the IUnknown implementation + * object. + * + * This macro is used when a subclass object of the IUnknown implementation class is + * initialized. \n + * + */ +#define IUNKNOWN_ENTRY_END } + +#define DEFAULT_IUNKNOWN_ENTRY_BEGIN IUNKNOWN_ENTRY_BEGIN(DEFAULT_VERSION) + +#define DEFAULT_IUNKNOWN_ENTRY_END IUNKNOWN_ENTRY_END + +/** + * @brief Obtains the pointer of the IUnknown interface object from the subclass object T + * (generic macro) of the IUnknown implementation class. + * + * Use this macro when registering IUnknown interfaces with Samgr so that you can obtain + * the interfaces from the subclass objects of different IUnknown implementation classes. \n + * + * @since 1.0 + * @version 1.0 + */ +#define GET_IUNKNOWN(T) (IUnknown *)(&((T).iUnknown)) + +/** + * @brief Defines the IUnknown class. + * + * You need to inherit this structure when developing a subclass of the IUnknown interface. \n + * + */ +struct IUnknown { + /** + * Queries the subclass object of the IUnknown interface of a specified version + * (downcasting). + */ + int (*QueryInterface)(IUnknown *iUnknown, int version, void **target); + /** Adds the reference count. */ + int (*AddRef)(IUnknown *iUnknown); + /** Release the reference to an IUnknown interface. */ + int (*Release)(IUnknown *iUnknown); +}; + +/** + * @brief Defines the IUnknown implementation class. + * + * You need to inherit this structure when developing a subclass of the IUnknown + * implementation class. \n + * + * Each IUnknown interface must correspond to one or more IUnknown implementation + * classes. \n + * + */ +typedef struct IUnknownEntry { + /** Version information of IUnknown interface. */ + uint16 ver; + /** Reference count of IUnknown interface. */ + int16 ref; + /** + * Implementation of IUnknown interface, which is related to the specific definition + * implementation. + */ + IUnknown iUnknown; +} IUnknownEntry; + +/** + * @brief Increments the reference count in this IUnknown interface. + * + * This function is called in QueryInterface. Do not call this function in the + * IUnknown interface. \n + * + * When the QueryInterface function is re-implemented, you need to call this function + * in the new QueryInterface. + * + * The system does not provide a lock to protect functions. Therefore, you need to re-implement + * functions if multiple developers are using them. \n + * + * @param iUnknown Indicates the pointer to the IUnknown interface object. + * @return Indicates the number of objects that reference the IUnknown interface. + * + * @since 1.0 + * @version 1.0 + */ +int IUNKNOWN_AddRef(IUnknown *iUnknown); + +/** + * @brief Queries the IUnknown interfaces of a specified version (downcasting). + * + * After obtaining the IUnknown interface object, the function caller uses + * QueryInterface to convert the object to the required subclass type. \n + * The system converts {@link DEFAULT_VERSION} into the subclass type required by the caller. + * If the type conversion requirements cannot be met, you need to re-implement this function. \n + * + * @param iUnknown Indicates the pointer to the IUnknown interface. + * @param version Indicates the version of the IUnknown interface object to be converted. + * @param target Indicates the IUnknown subclass type required by the caller. This is an + * output parameter. + * @return Returns EC_SUCCESS if the conversion is successful; returns other error codes + * if the conversion fails. + * + * @since 1.0 + * @version 1.0 + */ +int IUNKNOWN_QueryInterface(IUnknown *iUnknown, int ver, void **target); + +/** + * @brief Releases a reference to an IUnknown interface that is no longer used. + * + * In the default implementation provided by the system, if the reference count is 0, + * the memory of the IUnknown interface object and implementation object is not released. \n + * + * If the memory of the IUnknown interface object and implementation object is dynamically + * allocated, this function needs to be re-implemented. \n + * If the reference count is 0, the memory of the IUnknown interface object and + * implementation object is released. \n + * + * @param iUnknown Indicates the pointer to the IUnknown interface object. + * @return Indicates the number of IUnknown interface objects that are referenced after the + * current reference is released. + * + * @since 1.0 + * @version 1.0 + */ +int IUNKNOWN_Release(IUnknown *iUnknown); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif +#endif // LITE_IUNKOWN_H +/** @} */ diff --git a/interfaces/kits/samgr/message.h b/interfaces/kits/samgr/message.h new file mode 100755 index 0000000..791c4dd --- /dev/null +++ b/interfaces/kits/samgr/message.h @@ -0,0 +1,249 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Samgr + * @{ + * + * @brief Manages system capabilities. + * + * This module provides the development framework base of the service-oriented architecture (SOA). + * You can develop your own abilities based on the Samgr development framework. \n + * This module provides basic models of services, features, and functions, and registration and + * discovery capabilities. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file message.h + * + * @brief Provides message communication APIs that help you to implement asynchronous functions + * of {@link IUnknown}. + * + * This API is used to implement asynchronous functions of {@link IUnknown}. \n + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_MESSAGE_H +#define LITE_MESSAGE_H + +#include "common.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif +typedef struct Identity Identity; +typedef struct Request Request; +typedef struct Response Response; + +/** + * @brief Handles asynchronous responses. + * + * This function will be used when a service or feature uses {@link IUnknown} to send a request. \n + * If the caller is a feature, this function is used to handle the response that is sent after the + * feature processes a request. \n + * If the caller is a service, Handler will run in the service thread. \n + * + */ +typedef void (*Handler)(const Request *request, const Response *response); + +// Will be used for message interaction, so use one-byte alignment +#pragma pack(1) +/** + * @brief Identifies a service and feature. + * + * You can use this structure to identity a {@link IUnknown} feature to which messages will be + * sent through the asynchronous function of {@link IUnknown}. \n + * + */ +struct Identity { + /** Service ID */ + int16 serviceId; + /** Feature ID */ + int16 featureId; + /** Message queue ID */ + MQueueId queueId; +}; + +/** + * @brief Defines a request. + * + * You can use this structure to define the request that will be sent to a feature through the + * asynchronous function of {@link IUnknown}. \n + * Request, which is data that is packed to send to a feature. \n + * If the data is not empty and the length is not 0, the system automatically releases the data. \n + * + */ +struct Request { + /** Message ID */ + int16 msgId; + /** Data length */ + int16 len; + /** Data content */ + void *data; + /** Message value, which is defined by developers */ + uint32 msgValue; +}; + +/** + * @brief Defines a response. + * + * This structure is used to send a response after the message processing function of a service + * or feature processes a request. \n + * If the data is not empty and the length is not 0, the system automatically releases the data. \n + * + */ +struct Response { + /** Data content */ + void *data; + /** Data length */ + int16 len; +}; +#pragma pack() + +/** + * @brief Sends a request to a service or feature of a specified identity. + * + * This function is called by a service to send messages to its own features through the + * asynchronous function of {@link IUnknown}. \n + * + * @param identity Indicates the pointer to the ID of the feature or service that processes + * the message. + * @param request Indicates the pointer to the request. + * @param handler Indicates the function handling the response. If the value is NULL, + * no response is required. + * @return Returns EC_SUCCESS if the request is sent successfully; returns other error codes + * if the request fails to be sent. The caller needs to release the memory applied in the request. + * @since 1.0 + * @version 1.0 + */ +int32 SAMGR_SendRequest(const Identity *identity, const Request *request, Handler handler); + +/** + * @brief Sends a request to multiple services or features to save memory. + * + * This function is used to publish topics for the {@link Broadcast} service to broadcast messages. \n + * + * @param identity Indicates the pointer to the IDs of services or features, to which requests + * are sent. + * @param request Indicates the pointer to the request. + * @param token Indicates the pointer to reference counting. + * @param handler Indicates the function handling the response. If the value is NULL, + * no response is required. + * @retval Returns the token if the request is sent successfully; returns NULL if the + * request fails to be sent. + * @attention + *
    • Ensure that the thread specified by identity processes the message after + * all messages are sent. Common practice: Add a lock before sending a request and add + * the same lock during processing.
    • + *
    • If NULL is returned, the caller needs to release the memory of the request.
    + * @since 1.0 + * @version 1.0 + */ +uint32 *SAMGR_SendSharedRequest(const Identity *identity, const Request *request, uint32 *token, Handler handler); + +/** + * @brief Sends a request and response of a caller to the feature thread. The handler is directly + * called to process the request and response without using the message processing functions. + * (Customized function for the broadcast service) + * + * This function is used to publish topics for the {@link Broadcast} service to broadcast messages. \n + * The value of reference counting is incremented by one each time this function is called. \n + * + * @param id Indicates the pointer to the IDs of services or features, to which the request and + * response are sent. + * @param request Indicates the pointer to the request. + * @param resp Indicates the pointer to the response. + * @param ref Indicates the reference counting. + * @param handler Indicates the function for handling the request and response. This parameter + * cannot be NULL. + * @return Returns EC_SUCCESS if the request and response are sent successfully; returns + * other error codes if the request and response fail to be sent. + * @attention + *
    • Ensure that the thread specified by identity processes the message after all + * messages are sent. Common practice: Add a lock before sending a request and add the same lock + * during processing.
    • + *
    • If NULL is returned, the caller needs to release the memory of the request and + * response.
    • + *
    • If the response changes each time when a request is sent, ensure that the response + * will not be released. (Set len to 0, the data of response will be + * the resident memory.)
    + * @since 1.0 + * @version 1.0 + */ +int32 SAMGR_SendSharedDirectRequest(const Identity *id, const Request *req, const Response *resp, uint32 **ref, + Handler handler); + +/** + * @brief Sends a response after processing a request. + * + * This function is called to send a response after processing a request by {@link MessageHandle} + * of a service or {@link OnMessage} of a feature. \n + * + * @param request Indicates the pointer to the original request. + * @param response Indicates the pointer to the response content. + * @return Returns EC_SUCCESS if the response is sent successfully; returns other error + * codes if the response fails to be sent. + * @attention + *
    • This function can be called only in {@link MessageHandle} or {@link OnMessage}.
    • + *
    • The request must be the original one passed from {@link MessageHandle} or + * {@link OnMessage}. Otherwise, a memory exception occurs.
    • + *
    • When the caller sends a request, the handler callback function must be carried.
    • + *
    • The response is sent to the message queue of the service to which the requester belongs + * for processing. Therefore, the requester should wait for the response in non-blocking mode.
    + * @since 1.0 + * @version 1.0 + */ +int32 SAMGR_SendResponse(const Request *request, const Response *response); + +/** + * @brief Sends a response to a specified service or feature after processing the original request. + * (Customized function for bootstrap) + * + * This function is called to send a response after processing a request by {@link MessageHandle} + * of a service or {@link OnMessage} of a feature. \n + * This function can be customized to implement phased startup of different types of services. \n + * + * @param id Indicates the pointer to the ID of a service or feature. The response is sent to the + * thread of the service or feature for processing. + * @param request Indicates the pointer to the original request. + * @param response Indicates the pointer to the response content. + * @return Returns EC_SUCCESS if the response is sent successfully; returns other error + * codes if the response fails to be sent. + * @attention + *
    • This function can be called only in MessageHandle or OnMessage.
    • + *
    • The request must be the original one passed from MessageHandle or OnMessage. + * Otherwise, a memory exception occurs.
    • + *
    • When the caller sends a request, the handler callback function must be carried.
    • + *
    • The response is sent to the message queue of a specified ID for processing. Therefore, + * wait for the response in non-blocking mode.
    + * @since 1.0 + * @version 1.0 + */ +int32 SAMGR_SendResponseByIdentity(const Identity *id, const Request *request, const Response *response); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif +#endif // LITE_MESSAGE_H +/** @} */ diff --git a/interfaces/kits/samgr/samgr_lite.h b/interfaces/kits/samgr/samgr_lite.h new file mode 100755 index 0000000..5e55861 --- /dev/null +++ b/interfaces/kits/samgr/samgr_lite.h @@ -0,0 +1,321 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Samgr + * @{ + * + * @brief Manages system capabilities. + * + * This module provides the development framework base of the service-oriented architecture (SOA). + * You can develop your own abilities based on the Samgr development framework. \n + * This module provides basic models of services, features, and functions, and registration and + * discovery capabilities. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file samgr_lite.h + * + * @brief Manages system capabilities. + * + * This is used when services, features, and functions are registered with and discovered by Samgr. \n + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_SAMGR_H +#define LITE_SAMGR_H + +#include "common.h" +#include "iunknown.h" +#include "service.h" +#include "feature.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +/** + * @brief Starts a bootstrap service, which is used by samgr and implemented by system service + * developers. + */ +#define BOOTSTRAP_SERVICE "Bootstrap" + +/** + * @brief Defines the maximun num of system capabilities. + */ +#define MAX_SYSCAP_NUM 512 + +/** + * @brief Defines the maximun length of the system capabiliy name. + */ +#define MAX_SYSCAP_NAME_LEN 64 + +/** + * @brief Enumerates the IDs of the message to be processed for starting the bootstrap service. + * + * This function is implemented by developers of the system service. \n + * Messages sent to the bootstrap service when Samgr is started. \n + * + */ +typedef enum BootMessage { + /** Message indicating that the core system service is initialized */ + BOOT_SYS_COMPLETED, + /** Message indicating that the system and application-layer services are initialized */ + BOOT_APP_COMPLETED, + /** Message indicating service registration during running */ + BOOT_REG_SERVICE, + /** Maximum number of message IDs */ + BOOTSTRAP_BUTT +} BootMessage; + +/** + * @brief Represents the system ability management class. + * + * This class is used for registering and discovering services, features, and functions. \n + * + * @since 1.0 + * @version 1.0 + */ +typedef struct SamgrLite { + /** + * @brief Registers a service. + * + * You need to call this function in the startup entry of each service. \n + * {@link Service} and {@link Service} structure members to be registered cannot be empty. \n + * + * @param service Indicates the service to be registered. + * @return Returns TRUE if the registration is successful; returns FALSE + * if the registration fails. + * @since 1.0 + * @version 1.0 + */ + BOOL (*RegisterService)(Service *service); + + /** + * @brief Unregisters a service. + * + * You need to call this function when the service is no longer required. \n + * + * @param name Indicates the name of the service to be unregistered. + * @attention Before unregistering the service, you must unregister its features and functions. + * @return Returns the unregistered service object if the unregistration is successful. + * The memory is released by the caller. Returns NULL if the unregistration fails. + * @since 1.0 + * @version 1.0 + */ + Service *(*UnregisterService)(const char *name); + + /** + * @brief Registers a feature. + * + * You need to call this function in the startup entry of each feature. \n + * {@link Feature} and {@link Feature} structure members to be registered cannot be empty. \n + * + * @param feature Indicates the feature to be registered. + * @return Returns TRUE if the registration is successful; returns FALSE + * if the registration fails. + * @since 1.0 + * @version 1.0 + */ + BOOL (*RegisterFeature)(const char *serviceName, Feature *feature); + + /** + * @brief Unregisters a feature. + * + * You need to call this function when the feature is no longer required. \n + * + * @param serviceName Indicates the name of the service whose feature will be unregistered. + * @param featureName Indicates the name of the feature to be unregistered. + * @attention Before unregistering the feature, you must unregister its functions. Otherwise, + * the unregistration fails. + * @return Returns the unregistered feature object if the unregistration is successful. + * The memory is released by the caller. Returns NULL if the unregistration fails. + * @since 1.0 + * @version 1.0 + */ + Feature *(*UnregisterFeature)(const char *serviceName, const char *featureName); + + /** + * @brief Registers the API for the default feature of a service. + * + * You need to call this function after the service is registered. \n + * The pointers to the {@link IUnknown} and {@link IUnknown} members to be registered + * cannot be empty. \n + * + * @param service Indicates the name of the service whose default feature's API will be + * registered. + * @param publicApi Indicates the API to be registered. + * @return Returns TRUE if the registration is successful; returns FALSE + * if the registration fails. + * @since 1.0 + * @version 1.0 + */ + BOOL (*RegisterDefaultFeatureApi)(const char *service, IUnknown *publicApi); + + /** + * @brief Unregisters the API from the default feature of a service. + * + * You need to call this function to unregister {@link IUnknown} if the service to which + * the default feature belongs is no longer required. \n + * + * @param service Indicates the name of the service whose default feature's API will be + * unregistered. + * @return Returns the unregistered function object if the unregistration is successful. + * The memory is released by the caller. Returns NULL if the unregistration fails. + * @since 1.0 + * @version 1.0 + */ + IUnknown *(*UnregisterDefaultFeatureApi)(const char *service); + + /** + * @brief Registers the API for a feature. + * + * You can call this function only if the feature has been registered. \n + * The pointers to the {@link IUnknown} and {@link IUnknown} members to be registered cannot + * be empty. \n + * + * @param service Indicates the name of the service whose API will be registered. + * @param feature Indicates the name of the feature whose API will be registered. + * @param publicApi Indicates the API to be registered. + * @return Returns TRUE if the registration is successful; returns FALSE + * if the registration fails. + * @since 1.0 + * @version 1.0 + */ + BOOL (*RegisterFeatureApi)(const char *service, const char *feature, IUnknown *publicApi); + + /** + * @brief Unregisters the API from a feature. + * + * You must call this function before unregistering the feature no longer required. \n + * + * @param service Indicates the name of the service whose API will be unregistered. + * @param feature Indicates the name of the feature whose API will be unregistered. + * @return Returns the unregistered function object if the unregistration is successful. + * The memory is released by the caller. Returns NULL if the unregistration fails. + * @since 1.0 + * @version 1.0 + */ + IUnknown *(*UnregisterFeatureApi)(const char *service, const char *feature); + + /** + * @brief Obtains the API specific to the default feature. + * + * You need to call this function before using the system capabilities of the service involved. \n + * + * + * @param service Indicates the name of the service to which the default feature belongs. + * @return Returns the IUnknown * object that can be called if the operation is + * successful; returns NULL if the operation fails. + * @since 1.0 + * @version 1.0 + */ + IUnknown *(*GetDefaultFeatureApi)(const char *service); + + /** + * @brief Obtains the API specific to the feature. + * + * You need to call this function before using the system capabilities of the service involved. \n + * + * + * @param service Indicates the name of the service to which the feature belongs. + * @param feature Indicates the name of the feature whose API will be obtained. + * @return Returns the IUnknown * object that can be called if the operation is + * successful; returns NULL if the operation fails. + * @since 1.0 + * @version 1.0 + */ + IUnknown *(*GetFeatureApi)(const char *serviceName, const char *feature); + + /** + * @brief Adds system capablity. + * + * You can call this function to add the system capability. \n + * + * @param sysCap Indicates the name of the system capablity. + * @return Returns EC_SUCCESS if this function is successfully called; returns another error code otherwise. + * @since 1.0 + * @version 1.0 + */ + int32 (*AddSystemCapability)(const char *sysCap); + + /** + * @brief Checks system capability is existed. + * + * You can call this function to check whether the system capability is existed. \n + * + * @param sysCap Indicates the name of the system capablity. + * @return Returns TRUE if the system capablity is existed; returns FALSE otherwise. + * @since 1.0 + * @version 1.0 + */ + BOOL (*HasSystemCapability)(const char *sysCap); + + /** + * @brief Obtains all the available system capabilities. + * + * You need to ensure that there is enough memory to save all available system capabilities + * before call this function. \n + * + * @return Returns EC_SUCCESS if this function is successfully called; returns another error code otherwise. + * the num of available system capabilities saved in sysCapNum and + * all available system capabilities saved in sysCaps. + * @since 1.0 + * @version 1.0 + */ + int32 (*GetSystemAvailableCapabilities)(char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], int32 *sysCapNum); +} SamgrLite; + +/** + * @brief Obtains the singleton Samgr instance. + * + * You need to call this function before using the Samgr capabilities. \n + * + * @return Returns the pointer to the singleton instance {@link SamgrLite}. + * @since 1.0 + * @version 1.0 + */ +SamgrLite *SAMGR_GetInstance(void); + +/** + * @brief Starts system services and features. + * + * This function is called in the main function to start all services when an independent + * process is developed. \n + * This function is called after the dynamic library (containing system services and features) is + * loaded during system running. \n + * + * @attention This function cannot be called frequently. Otherwise, problems such as repeated + * service startup may occur. It is recommended that this function be called once in the + * main function or after the dynamic library is loaded. + * @since 1.0 + * @version 1.0 + */ +void SAMGR_Bootstrap(void); +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif + +#endif // LITE_SAMGR_H +/** @} */ diff --git a/interfaces/kits/samgr/service.h b/interfaces/kits/samgr/service.h new file mode 100755 index 0000000..53ebeda --- /dev/null +++ b/interfaces/kits/samgr/service.h @@ -0,0 +1,225 @@ +/* + * Copyright (c) 2020 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. + */ + +/** + * @addtogroup Samgr + * @{ + * + * @brief Manages system capabilities. + * + * This module provides the development framework base of the service-oriented architecture (SOA). + * You can develop your own abilities based on the Samgr development framework. \n + * This module provides basic models of services, features, and functions, and registration and + * discovery capabilities. \n + * + * @since 1.0 + * @version 1.0 + */ + +/** + * @file service.h + * + * @brief Provides basic types and constants of services. + * + * This file is mainly used for service development. \n + * This file provides basic capabilities such as lifecycle functions of services, inherited macros, + * and task configuration. \n + * + * @since 1.0 + * @version 1.0 + */ + +#ifndef LITE_SERVICE_H +#define LITE_SERVICE_H + +#include "message.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +typedef struct TaskConfig TaskConfig; +typedef struct Service Service; + +/** + * @brief Enumerates task types. + * + * These enumerations are used for configuring the task type. \n + * + * @since 1.0 + * @version 1.0 + */ +typedef enum TaskType { + /** Tasks shared based on their priority by services */ + SHARED_TASK = 0, + /** Task exclusively occupied by a service */ + SINGLE_TASK = 1, + /** A specified task shared by multiple services */ + SPECIFIED_TASK = 2, + /** No task for the service. Generally, this situation does not occur. */ + NO_TASK = 0xFF, +} TaskType; + +/** + * @brief Specifies the tag for the task shared by multiple services. + * + * These enumerations are used for specifying a multi-service sharing task. \n + * + * @since 1.0 + * @version 1.0 + */ +typedef enum SpecifyTag { + /** Preset tag */ + LEVEL_HIGH = 0, + /** Preset tag */ + LEVEL_MIDDLE = 1, + /** Preset tag */ + LEVEL_LOW = 2, + /** Customized tag */ + LEVEL_CUSTOM_BEGIN, +} SpecifyTag; + +/** + * @brief Enumerates task priority. + * + * These enumerations are used for configuring the task priority. \n + * The valid range of the priority is (9, 39). \n + * + * @since 1.0 + * @version 1.0 + */ +typedef enum TaskPriority { + /** Low-priority: (9, 15) */ + PRI_LOW = 9, + /** Lower than the normal priority: [16, 23) */ + PRI_BELOW_NORMAL = 16, + /** Normal priority: [24, 31). The log service is available. */ + PRI_NORMAL = 24, + /** Higher than the normal priority: [32, 39). The communication service is available. */ + PRI_ABOVE_NORMAL = 32, + /** Upper limit of the priority */ + PRI_BUTT = 39, +} TaskPriority; + +#pragma pack(1) +/** + * @brief Defines task configurations for a service. + * + * This structure defines task configurations for a service, including the task priority, + * stack size, queue size, task type, and shared task ID. \n + * + */ +struct TaskConfig { + /** + * ID of a multi-service sharing task. For details about the level definition, + * see {@link SpecifyTag}. + */ + int16 level; + /** Task priority. For details about the definition of priority, see {@link TaskPriority}. */ + int16 priority; + /** Size of a task stack */ + uint16 stackSize; + /** Size of a task queue */ + uint16 queueSize; + /** Task type. For details about the taskFlags definition, see {@link TaskType}. */ + uint8 taskFlags; +}; +#pragma pack() + +/** + * @brief Indicates the basic type of a service. + * + * You need to implement the function pointers of Service. \n + * + */ +struct Service { + /** + * @brief Obtains the name of a service. + * + * This function is called by Samgr during service registration and startup. You need to + * implement this function. \n + * + * @param service Indicates the pointer to the service. + * @return Returns a constant string no more than 16 bytes if the service name is obtained + * successfully; returns NULL if the service name fails to be obtained. + * @since 1.0 + * @version 1.0 */ + const char *(*GetName)(Service *service); + + /** + * @brief Initializes the service. + * + * After Samgr assigns tasks to a service, the service calls the function in its own tasks. + * You need to implement this function. \n + * + * @param service Indicates the pointer to the service. + * @param identity Indicates the ID allocated by the system to the service. For details, + * see {@link Identity}. + * @return Returns TRUE if the initialization is successful; returns FALSE + * otherwise. + * @since 1.0 + * @version 1.0 + */ + BOOL (*Initialize)(Service *service, Identity identity); + + /** + * @brief Processes service messages. + * + * This function is used to process requests sent by the caller through {@link IUnknown}. + * You need to implement this function. \n + * + * @param service Indicates the pointer to the service. + * @param request Indicates the pointer to the request data. + * @return Returns TRUE if the message processing is successful; returns FALSE + * if the processing fails. + * @since 1.0 + * @version 1.0 + */ + BOOL (*MessageHandle)(Service *service, Request *request); + + /** + * @brief Obtains task configurations of a service. + * + * This function is used to return task configurations. You need to implement this function. \n + * + * @param service Indicates the pointer to the service. + * @return Returns {@link TaskConfig}. + * + * @since 1.0 + * @version 1.0 */ + TaskConfig (*GetTaskConfig)(Service *service); +}; + +/** + * @brief Indicates the macro used to inherit the members from the service class. + * + * This macro provides the capability of inheriting the lifecycle functions of the service + * class. You can use this macro to customize the service structure. \n + */ +#define INHERIT_SERVICE \ + const char *(*GetName)(Service * service); \ + BOOL (*Initialize)(Service * service, Identity identity); \ + BOOL (*MessageHandle)(Service * service, Request * request); \ + TaskConfig (*GetTaskConfig)(Service * service) + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif +#endif // LITE_SERVICE_H +/** @} */ diff --git a/readme.md b/readme.md deleted file mode 100755 index 2b71b7a..0000000 --- a/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -详见:https://gitee.com/openharmony/docs/blob/master/readme/系统服务框架子系统README.md - -see: https://gitee.com/openharmony/docs/blob/master/docs-en/readme/service-framework-subsystem.md \ No newline at end of file diff --git a/samgr/BUILD.gn b/samgr/BUILD.gn index 4215297..9fae58d 100755 --- a/samgr/BUILD.gn +++ b/samgr/BUILD.gn @@ -18,8 +18,8 @@ config("samgr_public") { include_dirs = [ "adapter", "registry", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/registry", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/samgr", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/registry", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", "//utils/native/lite/include", ] } @@ -34,14 +34,12 @@ if (ohos_kernel_type == "liteos_m") { public_configs = [ ":samgr_public" ] cflags = [ "-Wall" ] - include_dirs = [ - "//base/hiviewdfx/interfaces/kits/hilog_lite", - "//kernel/liteos_m/kal/cmsis", - ] + include_dirs = + [ "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite" ] public_deps = [ - "//foundation/distributedschedule/services/samgr_lite/samgr/adapter:samgr_adapter", - "//foundation/distributedschedule/services/samgr_lite/samgr/source:samgr_source", + "//foundation/distributedschedule/samgr_lite/samgr/adapter:samgr_adapter", + "//foundation/distributedschedule/samgr_lite/samgr/source:samgr_source", ] } } @@ -60,12 +58,14 @@ if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") { include_dirs = [ "//kernel/liteos_a/kernel/include/", "//third_party/bounds_checking_function/include", + "//third_party/cJSON", ] public_deps = [ - "//foundation/communication/frameworks/ipc_lite:liteipc_adapter", - "//foundation/distributedschedule/services/samgr_lite/samgr/source:samgr_source", - "//foundation/distributedschedule/services/samgr_lite/samgr_client:client", + "//build/lite/config/component/cJSON:cjson_shared", + "//foundation/communication/ipc_lite:liteipc_adapter", + "//foundation/distributedschedule/samgr_lite/samgr/source:samgr_source", + "//foundation/distributedschedule/samgr_lite/samgr_client:client", ] public_configs += [ ":external_settings_shared" ] diff --git a/samgr/adapter/BUILD.gn b/samgr/adapter/BUILD.gn index 91a7dbf..ca0302b 100755 --- a/samgr/adapter/BUILD.gn +++ b/samgr/adapter/BUILD.gn @@ -14,7 +14,7 @@ config("samgr_adapter_public") { include_dirs = [ "./", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/samgr", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", "//utils/native/lite/include", ] } @@ -34,6 +34,7 @@ if (ohos_kernel_type == "liteos_m") { include_dirs = [ "//kernel/liteos_m/kal/", "//kernel/liteos_m/kal/cmsis", + "//kernel/liteos_m/kal/posix/include/malloc.h", ] } } diff --git a/samgr/adapter/cmsis/time_adapter.c b/samgr/adapter/cmsis/time_adapter.c index f8f51f5..a629659 100755 --- a/samgr/adapter/cmsis/time_adapter.c +++ b/samgr/adapter/cmsis/time_adapter.c @@ -16,6 +16,8 @@ #include #include +#define MS_PER_SECOND 1000 + int32 WDT_Start(uint32 ms) { return WDT_Reset(ms); @@ -39,5 +41,5 @@ uint64 SAMGR_GetProcessTime(void) if (ticksPerSecond == 0) { return 0; } - return (uint64)tick * 1000 / ticksPerSecond; + return (uint64)tick * MS_PER_SECOND / ticksPerSecond; } diff --git a/samgr/adapter/posix/lock_free_queue.c b/samgr/adapter/posix/lock_free_queue.c index 6f53448..91de561 100755 --- a/samgr/adapter/posix/lock_free_queue.c +++ b/samgr/adapter/posix/lock_free_queue.c @@ -14,7 +14,6 @@ */ #include "lock_free_queue.h" #include -#include #include #include diff --git a/samgr/adapter/posix/queue_adapter.c b/samgr/adapter/posix/queue_adapter.c index 6aa0636..7be92c6 100755 --- a/samgr/adapter/posix/queue_adapter.c +++ b/samgr/adapter/posix/queue_adapter.c @@ -90,4 +90,4 @@ int QUEUE_Destroy(MQueueId queueId) SAMGR_Free(queue->queue); SAMGR_Free(queue); return EC_SUCCESS; -} \ No newline at end of file +} diff --git a/samgr/adapter/posix/thread_adapter.c b/samgr/adapter/posix/thread_adapter.c index 3a3f977..adf7cb3 100755 --- a/samgr/adapter/posix/thread_adapter.c +++ b/samgr/adapter/posix/thread_adapter.c @@ -70,26 +70,13 @@ ThreadId THREAD_Create(Runnable run, void *argv, const ThreadAttr *attr) pthread_attr_t threadAttr; pthread_attr_init(&threadAttr); pthread_attr_setstacksize(&threadAttr, (attr->stackSize | MIN_STACK_SIZE)); - pthread_attr_setinheritsched(&threadAttr, PTHREAD_EXPLICIT_SCHED); #ifdef SAMGR_LINUX_ADAPTER struct sched_param sched = {attr->priority}; - int policy = SCHED_OTHER; - const int ROOT_UID = 0; - if (geteuid() == ROOT_UID) { - /* - * Real-time scheduling policy requires superuser privileges. - * Note: additionally, real-time thread can be scheduled before - * normal thread even if it yields CPU using sched_yield(). - * To actually yield real-time thread one could - * sleep() rather than yield(). - */ - policy = SCHED_RR; - } #else struct sched_param sched = {PRI_BUTT - attr->priority}; - int policy = SCHED_RR; #endif - pthread_attr_setschedpolicy(&threadAttr, policy); + pthread_attr_setinheritsched(&threadAttr, PTHREAD_EXPLICIT_SCHED); + pthread_attr_setschedpolicy(&threadAttr, SCHED_RR); pthread_attr_setschedparam(&threadAttr, &sched); (void) pthread_once(&g_localKeyOnce, KeyCreate); pthread_t threadId = 0; diff --git a/samgr/registry/service_registry.c b/samgr/registry/service_registry.c index f9df6ba..c9a8f3f 100755 --- a/samgr/registry/service_registry.c +++ b/samgr/registry/service_registry.c @@ -14,7 +14,6 @@ */ #include "service_registry.h" #include -#include int __attribute__((weak)) SAMGR_RegisterServiceApi(const char *service, const char *feature, const Identity *identity, IUnknown *iUnknown) @@ -33,12 +32,23 @@ IUnknown *__attribute__((weak)) SAMGR_FindServiceApi(const char *service, const return NULL; } -int __attribute__((weak)) SAMGR_RegisterFactory(const char *service, const char *feature, - Creator creator, Destroyer destroyer) +int32 __attribute__((weak)) SAMGR_RegisterSystemCapabilityApi(const char *sysCap, BOOL isReg) { - (void)service; - (void)feature; - (void)creator; - (void)destroyer; - return EC_INVALID; + (void)sysCap; + (void)isReg; + return EC_FAILURE; } + +BOOL __attribute__((weak)) SAMGR_QuerySystemCapabilityApi(const char *sysCap) +{ + (void)sysCap; + return FALSE; +} + +int32 __attribute__((weak)) SAMGR_GetSystemCapabilitiesApi(char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], + int32 *size) +{ + (void)sysCaps; + (void)size; + return EC_FAILURE; +} \ No newline at end of file diff --git a/samgr/registry/service_registry.h b/samgr/registry/service_registry.h index d4a3be4..ca68e73 100755 --- a/samgr/registry/service_registry.h +++ b/samgr/registry/service_registry.h @@ -23,10 +23,13 @@ extern "C" { #endif #endif - +#define MAX_SYSCAP_NUM 512 +#define MAX_SYSCAP_NAME_LEN 64 int SAMGR_RegisterServiceApi(const char *service, const char *feature, const Identity *identity, IUnknown *iUnknown); IUnknown *SAMGR_FindServiceApi(const char *service, const char *feature); - +int32 SAMGR_RegisterSystemCapabilityApi(const char *sysCap, BOOL isReg); +BOOL SAMGR_QuerySystemCapabilityApi(const char *sysCap); +int32 SAMGR_GetSystemCapabilitiesApi(char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], int32 *size); #ifdef __cplusplus #if __cplusplus } diff --git a/samgr/source/BUILD.gn b/samgr/source/BUILD.gn index 8cedbc7..5304241 100755 --- a/samgr/source/BUILD.gn +++ b/samgr/source/BUILD.gn @@ -15,8 +15,8 @@ config("samgr_source_public") { include_dirs = [ "../adapter", "../registry", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/registry", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/samgr", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/registry", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", "//utils/native/lite/include", ] } @@ -35,12 +35,11 @@ if (ohos_kernel_type == "liteos_m") { public_configs = [ ":samgr_source_public" ] cflags = [ "-Wall" ] - public_deps = [ "//foundation/distributedschedule/services/samgr_lite/samgr/adapter:samgr_adapter" ] - - include_dirs = [ - "//base/hiviewdfx/interfaces/kits/hilog_lite", - "//kernel/liteos_m/kal/cmsis", + public_deps = [ + "//foundation/distributedschedule/samgr_lite/samgr/adapter:samgr_adapter", ] + + include_dirs = [ "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite" ] } } @@ -63,8 +62,8 @@ if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") { public_configs = [ ":samgr_source_public" ] public_deps = [ - "//base/hiviewdfx/frameworks/hilog_lite/featured:hilog_shared", - "//foundation/distributedschedule/services/samgr_lite/samgr/adapter:samgr_adapter", + "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared", + "//foundation/distributedschedule/samgr_lite/samgr/adapter:samgr_adapter", ] include_dirs = [ diff --git a/samgr/source/samgr_lite.c b/samgr/source/samgr_lite.c index 608e429..d7491c5 100755 --- a/samgr/source/samgr_lite.c +++ b/samgr/source/samgr_lite.c @@ -42,7 +42,9 @@ static BOOL RegisterDefaultFeatureApi(const char *serviceName, IUnknown *publicA static IUnknown *UnregisterDefaultFeatureApi(const char *serviceName); static IUnknown *GetDefaultFeatureApi(const char *serviceName); static IUnknown *GetFeatureApi(const char *serviceName, const char *feature); - +static int32 AddSystemCapability(const char *sysCap); +static BOOL HasSystemCapability(const char *sysCap); +static int32 GetSystemAvailableCapabilities(char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], int32 *size); /* ************************************************************************************************** * Samgr Lite location functions * ************************************************************************************************* */ @@ -91,6 +93,9 @@ static void Init(void) g_samgrImpl.vtbl.UnregisterDefaultFeatureApi = UnregisterDefaultFeatureApi; g_samgrImpl.vtbl.GetDefaultFeatureApi = GetDefaultFeatureApi; g_samgrImpl.vtbl.GetFeatureApi = GetFeatureApi; + g_samgrImpl.vtbl.AddSystemCapability = AddSystemCapability; + g_samgrImpl.vtbl.HasSystemCapability = HasSystemCapability; + g_samgrImpl.vtbl.GetSystemAvailableCapabilities = GetSystemAvailableCapabilities; g_samgrImpl.status = BOOT_SYS; g_samgrImpl.services = VECTOR_Make((VECTOR_Key)GetServiceName, (VECTOR_Compare)strcmp); g_samgrImpl.mutex = MUTEX_InitValue(); @@ -352,6 +357,30 @@ static IUnknown *GetDefaultFeatureApi(const char *serviceName) return GetFeatureApi(serviceName, NULL); } +static int32 AddSystemCapability(const char *sysCap) +{ + if (sysCap == NULL || strlen(sysCap) == 0 || strlen(sysCap) > MAX_SYSCAP_NAME_LEN) { + return EC_INVALID; + } + return SAMGR_RegisterSystemCapabilityApi(sysCap, TRUE); +} + +static BOOL HasSystemCapability(const char *sysCap) +{ + if (sysCap == NULL || strlen(sysCap) == 0 || strlen(sysCap) > MAX_SYSCAP_NAME_LEN) { + return FALSE; + } + return SAMGR_QuerySystemCapabilityApi(sysCap); +} + +static int32 GetSystemAvailableCapabilities(char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], int32 *sysCapNum) +{ + if (sysCaps == NULL || sysCapNum == NULL) { + return EC_INVALID; + } + return SAMGR_GetSystemCapabilitiesApi(sysCaps, sysCapNum); +} + static IUnknown *GetFeatureApi(const char *serviceName, const char *feature) { ServiceImpl *serviceImpl = GetService(serviceName); @@ -532,4 +561,4 @@ static TaskPool *GetSpecifiedTaskPool(TaskConfig *config) } MUTEX_Unlock(samgr->mutex); return NULL; -} \ No newline at end of file +} diff --git a/samgr/source/samgr_maintenance.c b/samgr/source/samgr_maintenance.c deleted file mode 100755 index 51064fe..0000000 --- a/samgr/source/samgr_maintenance.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2020 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 "samgr_maintenance.h" -#include -#include "service_impl.h" -#include "samgr_lite_inner.h" -#include "time_adapter.h" - -void SAMGR_PrintServices(void) -{ - SamgrLiteImpl *samgr = GET_OBJECT(SAMGR_GetInstance(), SamgrLiteImpl, vtbl); - int16 num = VECTOR_Num(&samgr->services); - HILOG_INFO(HILOG_MODULE_SAMGR, "[Maintenance]Print Services(%d) Information:", num); - if (num == 0) { - return; - } - - MUTEX_Lock(samgr->mutex); - int16 size = VECTOR_Size(&(samgr->services)); - int i; - for (i = 0; i < size; ++i) { - ServiceImpl *impl = VECTOR_At(&(samgr->services), i); - if (impl == NULL) { - continue; - } - - MUTEX_Unlock(samgr->mutex); - const char *name = impl->service->GetName(impl->service); - HILOG_INFO(HILOG_MODULE_SAMGR, "[Service:%d]", - impl->serviceId, impl->inited, name, impl->defaultApi, VECTOR_Num(&impl->features), impl->taskPool); - - TaskPool *pool = impl->taskPool; - if (pool != NULL) { - HILOG_INFO(HILOG_MODULE_SAMGR, "[TaskPool:%p]", - pool, pool->tasks[0], pool->queueId, pool->ref, pool->priority, pool->stackSize); - } - - int16 featureSize = VECTOR_Size(&impl->features); - int j; - for (j = 0; j < featureSize; ++j) { - FeatureImpl *feature = VECTOR_At(&impl->features, j); - if (feature == NULL) { - continue; - } - name = feature->feature->GetName(feature->feature); - HILOG_INFO(HILOG_MODULE_SAMGR, "[Feature:%d]", j, name, feature->iUnknown); - } - MUTEX_Lock(samgr->mutex); - } - MUTEX_Unlock(samgr->mutex); -} - -void SAMGR_PrintOperations(void) -{ - SamgrLiteImpl *samgr = GET_OBJECT(SAMGR_GetInstance(), SamgrLiteImpl, vtbl); - int16 num = VECTOR_Num(&samgr->services); - HILOG_INFO(HILOG_MODULE_SAMGR, "[Maintenance]Print Services(%d) Statistics:", num); - if (num == 0) { - return; - } - - uint32 now = SAMGR_GetProcessTime(); - MUTEX_Lock(samgr->mutex); - int16 size = VECTOR_Size(&(samgr->services)); - int i; - for (i = 0; i < size; ++i) { - ServiceImpl *impl = VECTOR_At(&(samgr->services), i); - if (impl == NULL) { - continue; - } - MUTEX_Unlock(samgr->mutex); - const char *name = impl->service->GetName(impl->service); - uint8 abnormal = impl->ops.abnormal; - if (impl->inited == SVC_BUSY) { - if (GET_INTERVAL(impl->ops.timestamp, now) > MSG_PROC_THRESHOLD) { - abnormal = abnormal + 1; - } - } - - MQueueId queueId = ((impl->taskPool == NULL) ? NULL : impl->taskPool->queueId); - HILOG_INFO(HILOG_MODULE_SAMGR, "[Qid:%p] ", - queueId, impl->inited, name, abnormal, impl->ops.messages, impl->ops.timestamp); - MUTEX_Lock(samgr->mutex); - } - MUTEX_Unlock(samgr->mutex); -} \ No newline at end of file diff --git a/samgr/source/samgr_maintenance.h b/samgr/source/samgr_maintenance.h deleted file mode 100755 index f77eb48..0000000 --- a/samgr/source/samgr_maintenance.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2020 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 LITE_SAMGR_MAINTENANCE_H -#define LITE_SAMGR_MAINTENANCE_H -#ifdef __cplusplus -#if __cplusplus -extern "C" { -#endif -#endif -void SAMGR_PrintServices(void); -void SAMGR_PrintOperations(void); -#ifdef __cplusplus -#if __cplusplus -} -#endif -#endif -#endif // LITE_SAMGR_MAINTENANCE_H diff --git a/samgr/source/service_impl.h b/samgr/source/service_impl.h index d5e9d88..c4ef660 100755 --- a/samgr/source/service_impl.h +++ b/samgr/source/service_impl.h @@ -36,7 +36,6 @@ enum InitStatus { #ifndef MAX_FEATURE_NUM #define MAX_FEATURE_NUM 0x70 #endif -#pragma pack(1) typedef struct Operations Operations; struct Operations { uint8 abnormal; @@ -54,7 +53,6 @@ struct ServiceImpl { uint8 inited; Operations ops; }; -#pragma pack() inline static BOOL IsInvalidService(Service *service) { diff --git a/samgr_client/BUILD.gn b/samgr_client/BUILD.gn old mode 100755 new mode 100644 index bd78a1c..ab9bd12 --- a/samgr_client/BUILD.gn +++ b/samgr_client/BUILD.gn @@ -12,29 +12,27 @@ # limitations under the License. source_set("client") { - sources = [ - "source/remote_register.c", - ] + sources = [ "source/remote_register.c" ] - cflags = [ - "-fPIC", - "-Wall" - ] + cflags = [ + "-fPIC", + "-Wall", + ] - include_dirs = [ - "../samgr_endpoint/source", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/samgr", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/registry", - "//utils/native/lite/include", - "//kernel/liteos_a/kernel/include", - "//kernel/liteos_a/kernel/common", - "//third_party/bounds_checking_function/include", - "//base/security/services/iam_lite/include", - ] + include_dirs = [ + "../samgr_endpoint/source", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/registry", + "//utils/native/lite/include", + "//kernel/liteos_a/kernel/include", + "//kernel/liteos_a/kernel/common", + "//third_party/bounds_checking_function/include", + "//base/security/permission/services/permission_lite/include", + ] - public_deps = [ - "//foundation/distributedschedule/services/samgr_lite/samgr_endpoint:endpoint_source", - "//third_party/bounds_checking_function:libsec_shared", - "//foundation/communication/frameworks/ipc_lite:liteipc_adapter", - ] + public_deps = [ + "//foundation/communication/ipc_lite:liteipc_adapter", + "//foundation/distributedschedule/samgr_lite/samgr_endpoint:endpoint_source", + "//third_party/bounds_checking_function:libsec_shared", + ] } diff --git a/samgr_client/source/remote_register.c b/samgr_client/source/remote_register.c index 6f021da..71b453d 100755 --- a/samgr_client/source/remote_register.c +++ b/samgr_client/source/remote_register.c @@ -31,16 +31,12 @@ #define RETRY_INTERVAL 2 #define MAX_RETRY_TIMES 10 -#define MAX_POLICY_NUM 8 +#define ABILITY_UID_START 100 static void InitializeRegistry(void); -static SvcIdentity QueryRemoteIdentity(const char *service, const char *feature); -static int RegisterRemoteIdentity(const char *service, const char *feature, SvcIdentity *saInfo, - PolicyTrans **policy, uint32 *policyNum); -static void GetRemotePolicy(IpcIo *reply, PolicyTrans **policy, uint32 *policyNum); static RemoteRegister g_remoteRegister; +static BOOL g_isAbilityInited = FALSE; -int __attribute__((weak)) SAMGR_RegisterServiceApi(const char *service, const char *feature, - const Identity *identity, IUnknown *iUnknown) +int SAMGR_RegisterServiceApi(const char *service, const char *feature, const Identity *identity, IUnknown *iUnknown) { if (service == NULL) { return EC_INVALID; @@ -56,8 +52,11 @@ int __attribute__((weak)) SAMGR_RegisterServiceApi(const char *service, const ch return SAMGR_ProcPolicy(g_remoteRegister.endpoint, &saName, token); } -IUnknown *__attribute__((weak)) SAMGR_FindServiceApi(const char *service, const char *feature) +IUnknown *SAMGR_FindServiceApi(const char *service, const char *feature) { + if (service == NULL) { + return NULL; + } InitializeRegistry(); SaName key = {service, feature}; // the proxy already exits. @@ -65,142 +64,76 @@ IUnknown *__attribute__((weak)) SAMGR_FindServiceApi(const char *service, const if (index != INVALID_INDEX) { return VECTOR_At(&g_remoteRegister.clients, index); } - - SvcIdentity identity = QueryRemoteIdentity(service, feature); - if (identity.handle == INVALID_INDEX) { + IUnknown *proxy = SAMGR_CreateIProxy(g_remoteRegister.endpoint->context, service, feature); + if (proxy == NULL) { return NULL; } MUTEX_Lock(g_remoteRegister.mtx); index = VECTOR_FindByKey(&g_remoteRegister.clients, &key); if (index != INVALID_INDEX) { MUTEX_Unlock(g_remoteRegister.mtx); + proxy->Release(proxy); return VECTOR_At(&g_remoteRegister.clients, index); } - IUnknown *proxy = SAMGR_CreateIProxy(g_remoteRegister.endpoint->context, service, feature, identity); VECTOR_Add(&g_remoteRegister.clients, proxy); MUTEX_Unlock(g_remoteRegister.mtx); - HILOG_INFO(HILOG_MODULE_SAMGR, "Create remote sa proxy[%p]<%s, %s> id<%u,%u>!", - proxy, service, feature, identity.handle, identity.token); + HILOG_INFO(HILOG_MODULE_SAMGR, "Create remote sa proxy[%p]<%s, %s>!", + proxy, service, feature); return proxy; } -static SvcIdentity QueryRemoteIdentity(const char *service, const char *feature) +int32 SAMGR_RegisterSystemCapabilityApi(const char *sysCap, BOOL isReg) { - IpcIo req; - uint8 data[MIN_DATA_LEN]; - IpcIoInit(&req, data, MIN_DATA_LEN, 0); - IpcIoPushUint32(&req, RES_FEATURE); - IpcIoPushUint32(&req, OP_GET); - IpcIoPushString(&req, service); - IpcIoPushBool(&req, feature == NULL); - if (feature != NULL) { - IpcIoPushString(&req, feature); - } - IpcIo reply; - void *replyBuf = NULL; - SvcIdentity samgr = {SAMGR_HANDLE, SAMGR_TOKEN, SAMGR_COOKIE}; - int ret = Transact(g_remoteRegister.endpoint->context, samgr, INVALID_INDEX, &req, &reply, - LITEIPC_FLAG_DEFAULT, (uintptr_t *)&replyBuf); - ret = (ret != LITEIPC_OK) ? EC_FAILURE : IpcIoPopInt32(&reply); - SvcIdentity target = {INVALID_INDEX, INVALID_INDEX, INVALID_INDEX}; - if (ret == EC_SUCCESS) { - SvcIdentity *svc = IpcIoPopSvc(&reply); - if (svc != NULL) { - target = *svc; - } - } - if (ret == EC_PERMISSION) { - HILOG_INFO(HILOG_MODULE_SAMGR, "Cannot Access<%s, %s> No Permission!", service, feature); - } - if (replyBuf != NULL) { - FreeBuffer(g_remoteRegister.endpoint->context, replyBuf); - } - return target; + InitializeRegistry(); + return SAMGR_AddSysCap(g_remoteRegister.endpoint, sysCap, isReg); } -static int RegisterRemoteIdentity(const char *service, const char *feature, SvcIdentity *saInfo, - PolicyTrans **policy, uint32 *policyNum) +BOOL SAMGR_QuerySystemCapabilityApi(const char *sysCap) { - IpcIo req; - uint8 data[MIN_DATA_LEN]; - IpcIoInit(&req, data, MIN_DATA_LEN, 0); - IpcIoPushUint32(&req, RES_FEATURE); - IpcIoPushUint32(&req, OP_PUT); - IpcIoPushString(&req, service); - IpcIoPushBool(&req, feature == NULL); - if (feature != NULL) { - IpcIoPushString(&req, feature); + InitializeRegistry(); + BOOL isReg = FALSE; + if (SAMGR_GetSysCap(g_remoteRegister.endpoint, sysCap, &isReg) != EC_SUCCESS) { + return FALSE; } - IpcIoPushUint32(&req, saInfo->token); - IpcIo reply; - void *replyBuf = NULL; - SvcIdentity samgr = {SAMGR_HANDLE, SAMGR_TOKEN, SAMGR_COOKIE}; - int ret = Transact(g_remoteRegister.endpoint->context, samgr, INVALID_INDEX, &req, &reply, - LITEIPC_FLAG_DEFAULT, (uintptr_t *)&replyBuf); - ret = -ret; - if (ret == LITEIPC_OK) { - ret = IpcIoPopInt32(&reply); - } - if (ret == EC_SUCCESS) { - saInfo = IpcIoPopSvc(&reply); - GetRemotePolicy(&reply, policy, policyNum); - } - if (replyBuf != NULL) { - FreeBuffer(g_remoteRegister.endpoint->context, replyBuf); - } - return ret; + return isReg; } -static void GetRemotePolicy(IpcIo *reply, PolicyTrans **policy, uint32 *policyNum) +int32 SAMGR_GetSystemCapabilitiesApi(char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], int32 *size) { - if (reply == NULL) { + InitializeRegistry(); + return SAMGR_GetSystemCapabilities(g_remoteRegister.endpoint, sysCaps, size); +} + +static void ClearRegistry(void) +{ + if (g_remoteRegister.endpoint == NULL) { return; } - uint32 i; - uint32 j; - *policyNum = IpcIoPopUint32(reply); - if (*policyNum > MAX_POLICY_NUM) { - *policyNum = MAX_POLICY_NUM; - } - SAMGR_Free(*policy); - if (*policyNum == 0) { - *policy = NULL; - return; - } - *policy = (PolicyTrans *)SAMGR_Malloc(sizeof(PolicyTrans) * (*policyNum)); - if (*policy == NULL) { - return; - } - for (i = 0; i < *policyNum; i++) { - (*policy)[i].type = IpcIoPopInt32(reply); - switch ((*policy)[i].type) { - case RANGE: - (*policy)[i].uidMin = IpcIoPopInt32(reply); - (*policy)[i].uidMax = IpcIoPopInt32(reply); - break; - case FIXED: - for (j = 0; j < UID_SIZE; j++) { - (*policy)[i].fixedUid[j] = IpcIoPopInt32(reply); - } - break; - case BUNDLENAME: - (*policy)[i].fixedUid[0] = IpcIoPopInt32(reply); - break; - default: - break; - } - } + HILOG_INFO(HILOG_MODULE_SAMGR, "Clear Client Registry!"); + SAMGR_Free(g_remoteRegister.mtx); + g_remoteRegister.mtx = NULL; + VECTOR_Clear(&(g_remoteRegister.clients)); + VECTOR_Clear(&(g_remoteRegister.endpoint->routers)); + CloseLiteIpc(g_remoteRegister.endpoint->context); + SAMGR_Free(g_remoteRegister.endpoint); + g_remoteRegister.endpoint = NULL; } static void InitializeRegistry(void) { + if (getuid() >= ABILITY_UID_START && !g_isAbilityInited) { + ClearRegistry(); + g_isAbilityInited = TRUE; + } if (g_remoteRegister.endpoint != NULL) { return; } - HILOG_INFO(HILOG_MODULE_SAMGR, "Initialize Registry!"); - SAMGR_RegisterQueryIdentity(QueryRemoteIdentity); - SAMGR_RegisterRegisterIdentity(RegisterRemoteIdentity); - g_remoteRegister.mtx = MUTEX_InitValue(); - g_remoteRegister.clients = VECTOR_Make((VECTOR_Key)SAMGR_GetSAName, (VECTOR_Compare)SAMGR_CompareSAName); - g_remoteRegister.endpoint = SAMGR_CreateEndpoint("ipc client", NULL); + HILOG_INFO(HILOG_MODULE_SAMGR, "Initialize Client Registry!"); + MUTEX_GlobalLock(); + if (g_remoteRegister.endpoint == NULL) { + g_remoteRegister.mtx = MUTEX_InitValue(); + g_remoteRegister.clients = VECTOR_Make((VECTOR_Key)SAMGR_GetSAName, (VECTOR_Compare)SAMGR_CompareSAName); + g_remoteRegister.endpoint = SAMGR_CreateEndpoint("ipc client", NULL); + } + MUTEX_GlobalUnlock(); } diff --git a/samgr_endpoint/BUILD.gn b/samgr_endpoint/BUILD.gn old mode 100755 new mode 100644 index f67790a..1373f5b --- a/samgr_endpoint/BUILD.gn +++ b/samgr_endpoint/BUILD.gn @@ -12,58 +12,62 @@ # limitations under the License. config("endpoint_public") { - include_dirs = [ - "../samgr/adapter", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/samgr", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/registry", - "//utils/native/lite/include", - "//foundation/communication/interfaces/kits/ipc_lite", - "//third_party/bounds_checking_function/include", - "//base/security/services/iam_lite/ipc_auth/include", - "//kernel/liteos_a/kernel/include/", - "//kernel/liteos_a/kernel/common", - ] + include_dirs = [ + "../samgr/adapter", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/registry", + "//utils/native/lite/include", + "//foundation/communication/ipc_lite/interfaces/kits", + "//third_party/bounds_checking_function/include", + "//base/security/permission/services/permission_lite/ipc_auth/include", + "//kernel/liteos_a/kernel/include/", + "//kernel/liteos_a/kernel/common", + ] +} + +config("endpoint_internal") { + include_dirs = [ "../samgr/registry" ] } source_set("endpoint_source") { - sources = [ - "source/client_factory.c", - "source/default_client.c", - "source/endpoint.c", - "source/token_bucket.c" - ] + sources = [ + "source/client_factory.c", + "source/default_client.c", + "source/endpoint.c", + "source/token_bucket.c", + ] - cflags = [ - "-fPIC", - "-Wall" - ] + cflags = [ + "-fPIC", + "-Wall", + ] - if (ohos_kernel_type == "linux") { - defines = ["LITE_LINUX_BINDER_IPC"] - } + if (ohos_kernel_type == "linux") { + defines = [ "LITE_LINUX_BINDER_IPC" ] + } - public_configs = [":endpoint_public"] + configs += [ ":endpoint_internal" ] - public_deps = [ - "//third_party/bounds_checking_function:libsec_shared", - "//foundation/communication/frameworks/ipc_lite:liteipc_adapter", - "//base/hiviewdfx/frameworks/hilog_lite/featured:hilog_shared", - ] + public_configs = [ ":endpoint_public" ] + + public_deps = [ + "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared", + "//foundation/communication/ipc_lite:liteipc_adapter", + "//third_party/bounds_checking_function:libsec_shared", + ] } source_set("store_source") { - sources = [ - "source/sa_store.c", - ] + sources = [ "source/sa_store.c" ] - cflags = [ - "-fPIC", - "-Wall" - ] + cflags = [ + "-fPIC", + "-Wall", + ] - public_configs = [":endpoint_public"] + configs += [ ":endpoint_internal" ] - public_deps = [ - "//third_party/bounds_checking_function:libsec_shared", - ] + public_configs = [ ":endpoint_public" ] + + public_deps = [ "//third_party/bounds_checking_function:libsec_shared" ] } diff --git a/samgr_endpoint/source/client_factory.h b/samgr_endpoint/source/client_factory.h old mode 100755 new mode 100644 diff --git a/samgr_endpoint/source/default_client.c b/samgr_endpoint/source/default_client.c index ab17822..b624227 100755 --- a/samgr_endpoint/source/default_client.c +++ b/samgr_endpoint/source/default_client.c @@ -16,16 +16,17 @@ #include #include #include +#include #include "client_factory.h" #include "iproxy_client.h" #include "memory_adapter.h" #include "thread_adapter.h" +#include "endpoint.h" #undef LOG_TAG #undef LOG_DOMAIN #define LOG_TAG "Samgr" #define LOG_DOMAIN 0xD001800 - typedef struct IClientHeader IClientHeader; typedef struct IDefaultClient IDefaultClient; typedef struct IClientEntry IClientEntry; @@ -51,13 +52,14 @@ static int AddRef(IUnknown *iUnknown); static int Release(IUnknown *proxy); static int ProxyInvoke(IClientProxy *proxy, int funcId, IpcIo *request, IOwner owner, INotify notify); static int OnServiceExit(const IpcContext *context, void *ipcMsg, IpcIo *data, void *argv); +static SvcIdentity QueryIdentity(const IpcContext *context, const char *service, const char *feature); static const IClientEntry DEFAULT_ENTRY = {CLIENT_IPROXY_BEGIN, .Invoke = ProxyInvoke, IPROXY_END}; static MutexId g_mutex = NULL; -static QueryIdentity g_queryID = NULL; -IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, const char *feature, SvcIdentity identity) +IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, const char *feature) { - if (g_queryID == NULL) { + SvcIdentity identity = QueryIdentity(context, service, feature); + if (identity.handle == INVALID_INDEX) { return NULL; } @@ -84,26 +86,20 @@ IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, con return GET_IUNKNOWN(*entry); } -int SAMGR_RegisterQueryIdentity(QueryIdentity query) -{ - if (g_mutex == NULL) { - g_mutex = MUTEX_InitValue(); - } - - if (query == NULL || g_queryID != NULL) { - return EC_INVALID; - } - - g_queryID = query; - return EC_SUCCESS; -} - SvcIdentity SAMGR_GetRemoteIdentity(const char *service, const char *feature) { - if (g_queryID != NULL) { - return g_queryID(service, feature); - } SvcIdentity identity = {INVALID_INDEX, INVALID_INDEX, INVALID_INDEX}; + IUnknown *iUnknown = SAMGR_FindServiceApi(service, feature); + if (iUnknown == NULL) { + return identity; + } + IClientProxy *proxy = NULL; + if (iUnknown->QueryInterface(iUnknown, CLIENT_PROXY_VER, (void **)&proxy) != EC_SUCCESS || proxy == NULL) { + return identity; + } + struct IDefaultClient *client = GET_OBJECT(proxy, struct IDefaultClient, entry.iUnknown); + identity = client->header.target; + proxy->Release((IUnknown *)proxy); return identity; } @@ -175,7 +171,7 @@ static int ProxyInvoke(IClientProxy *proxy, int funcId, IpcIo *request, IOwner o IDefaultClient *client = GET_OBJECT(proxy, IDefaultClient, entry.iUnknown); IClientHeader *header = &client->header; if (header->target.handle == INVALID_INDEX) { - header->target = g_queryID(header->key.service, header->key.feature); + header->target = QueryIdentity(header->context, header->key.service, header->key.feature); if (header->target.handle == INVALID_INDEX) { return EC_INVALID; } @@ -210,6 +206,9 @@ static int OnServiceExit(const IpcContext *context, void *ipcMsg, IpcIo *data, v (void)data; IClientHeader *header = (IClientHeader *)argv; (void)UnregisterDeathCallback(header->target, header->deadId); +#ifdef __LINUX__ + BinderRelease(context, header->target.handle); +#endif header->deadId = INVALID_INDEX; header->target.handle = INVALID_INDEX; header->target.token = INVALID_INDEX; @@ -220,3 +219,39 @@ static int OnServiceExit(const IpcContext *context, void *ipcMsg, IpcIo *data, v HILOG_ERROR(HILOG_MODULE_SAMGR, "Miss the remote service<%u, %u>!", header->target.handle, header->target.token); return EC_SUCCESS; } + +static SvcIdentity QueryIdentity(const IpcContext *context, const char *service, const char *feature) +{ + IpcIo req; + uint8 data[MAX_DATA_LEN]; + IpcIoInit(&req, data, MAX_DATA_LEN, 0); + IpcIoPushUint32(&req, RES_FEATURE); + IpcIoPushUint32(&req, OP_GET); + IpcIoPushString(&req, service); + IpcIoPushBool(&req, feature == NULL); + if (feature != NULL) { + IpcIoPushString(&req, feature); + } + IpcIo reply; + void *replyBuf = NULL; + SvcIdentity samgr = {SAMGR_HANDLE, SAMGR_TOKEN, SAMGR_COOKIE}; + int ret = Transact(context, samgr, INVALID_INDEX, &req, &reply, LITEIPC_FLAG_DEFAULT, (uintptr_t *)&replyBuf); + ret = (ret != LITEIPC_OK) ? EC_FAILURE : IpcIoPopInt32(&reply); + SvcIdentity target = {INVALID_INDEX, INVALID_INDEX, INVALID_INDEX}; + if (ret == EC_SUCCESS) { + SvcIdentity *svc = IpcIoPopSvc(&reply); + if (svc != NULL) { +#ifdef __LINUX__ + BinderAcquire(svc->ipcContext, svc->handle); +#endif + target = *svc; + } + } + if (ret == EC_PERMISSION) { + HILOG_INFO(HILOG_MODULE_SAMGR, "Cannot Access<%s, %s> No Permission!", service, feature); + } + if (replyBuf != NULL) { + FreeBuffer(context, replyBuf); + } + return target; +} \ No newline at end of file diff --git a/samgr_endpoint/source/default_client.h b/samgr_endpoint/source/default_client.h index 96cd87f..2da93f8 100755 --- a/samgr_endpoint/source/default_client.h +++ b/samgr_endpoint/source/default_client.h @@ -28,9 +28,7 @@ struct SaName { const char *service; const char *feature; }; -typedef SvcIdentity (*QueryIdentity)(const char *service, const char *feature); -int SAMGR_RegisterQueryIdentity(QueryIdentity query); -IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, const char *feature, SvcIdentity identity); +IUnknown *SAMGR_CreateIProxy(const IpcContext *context, const char *service, const char *feature); SaName *SAMGR_GetSAName(const IUnknown *proxy); int SAMGR_CompareSAName(const SaName *key1, const SaName *key2); #ifdef __cplusplus diff --git a/samgr_endpoint/source/endpoint.c b/samgr_endpoint/source/endpoint.c index 97a8763..64495e3 100755 --- a/samgr_endpoint/source/endpoint.c +++ b/samgr_endpoint/source/endpoint.c @@ -18,6 +18,7 @@ #include #include #include +#include "policy_define.h" #include "iproxy_server.h" #include "memory_adapter.h" #include "thread_adapter.h" @@ -28,12 +29,17 @@ #define LOG_TAG "Samgr" #define LOG_DOMAIN 0xD001800 +#ifdef LITE_LINUX_BINDER_IPC +#define MAX_STACK_SIZE 0x100000 +#else #define MAX_STACK_SIZE 0x1000 +#endif #define MAX_OBJECT_NUM 5 #define MAX_RETRY_TIMES 3 #define RETRY_INTERVAL 5 #define MAX_REGISTER_RETRY_TIMES 10 #define REGISTER_RETRY_INTERVAL 2 +#define MAX_POLICY_NUM 8 #ifndef MAX_BUCKET_RATE #define MAX_BUCKET_RATE 1000 @@ -43,6 +49,13 @@ #define MAX_BURST_RATE (MAX_BUCKET_RATE + (MAX_BUCKET_RATE >> 1)) #endif +#ifndef MAX_SYSCAP_NUM +#define MAX_SYSCAP_NUM 512 +#endif + +#ifndef MAX_SYSCAP_NAME_LEN +#define MAX_SYSCAP_NAME_LEN 64 +#endif #define SAMGR_SERVICE "samgr" typedef struct Router { @@ -66,16 +79,9 @@ static boolean SearchFixedPolicy(uid_t callingUid, PolicyTrans policy); static int AddPolicyToRouter(const Endpoint *endpoint, const SvcIdentity *saInfo, const PolicyTrans *policy, uint32 policyNum); static int RegisterRemoteEndpoint(const IpcContext *context, SvcIdentity *identity); -static RegisterIdentity g_registerID = NULL; -int SAMGR_RegisterRegisterIdentity(RegisterIdentity action) -{ - if (action == NULL || g_registerID != NULL) { - return EC_INVALID; - } - - g_registerID = action; - return EC_SUCCESS; -} +static int RegisterIdentity(const IpcContext *context, const SaName *saName, SvcIdentity *saInfo, + PolicyTrans **policy, uint32 *policyNum); +static void GetRemotePolicy(IpcIo *reply, PolicyTrans **policy, uint32 *policyNum); Endpoint *SAMGR_CreateEndpoint(const char *name, RegisterEndpoint registry) { @@ -135,6 +141,144 @@ int SAMGR_AddRouter(Endpoint *endpoint, const SaName *saName, const Identity *id return index; } +int32 SAMGR_AddSysCap(const Endpoint *endpoint, const char *sysCap, BOOL isReg) +{ + if (endpoint == NULL) { + return EC_INVALID; + } + HILOG_DEBUG(HILOG_MODULE_SAMGR, "SAMGR_AddSysCap begin"); + IpcIo req; + uint8 data[MAX_DATA_LEN]; + IpcIoInit(&req, data, MAX_DATA_LEN, 0); + IpcIoPushUint32(&req, RES_SYSCAP); + IpcIoPushUint32(&req, OP_PUT); + IpcIoPushString(&req, sysCap); + IpcIoPushBool(&req, isReg); + + IpcIo reply; + void *replyBuf = NULL; + SvcIdentity samgr = {SAMGR_HANDLE, SAMGR_TOKEN, SAMGR_COOKIE}; + int ret = Transact(endpoint->context, samgr, INVALID_INDEX, &req, &reply, + LITEIPC_FLAG_DEFAULT, (uintptr_t *)&replyBuf); + ret = -ret; + if (ret == LITEIPC_OK) { + ret = IpcIoPopInt32(&reply); + } + + if (replyBuf != NULL) { + FreeBuffer(endpoint, replyBuf); + } + HILOG_DEBUG(HILOG_MODULE_SAMGR, "SAMGR_AddSysCap ret = %d", ret); + + return ret; +} + +int32 SAMGR_GetSysCap(const Endpoint *endpoint, const char *sysCap, BOOL *isReg) +{ + if (endpoint == NULL) { + return EC_INVALID; + } + HILOG_DEBUG(HILOG_MODULE_SAMGR, "SAMGR_GetSysCap begin"); + IpcIo req; + uint8 data[MAX_DATA_LEN]; + IpcIoInit(&req, data, MAX_DATA_LEN, 0); + IpcIoPushUint32(&req, RES_SYSCAP); + IpcIoPushUint32(&req, OP_GET); + IpcIoPushString(&req, sysCap); + + IpcIo reply; + void *replyBuf = NULL; + SvcIdentity samgr = {SAMGR_HANDLE, SAMGR_TOKEN, SAMGR_COOKIE}; + int ret = Transact(endpoint->context, samgr, INVALID_INDEX, &req, &reply, + LITEIPC_FLAG_DEFAULT, (uintptr_t *)&replyBuf); + ret = -ret; + *isReg = FALSE; + if (ret == LITEIPC_OK) { + ret = IpcIoPopInt32(&reply); + } + if (ret == EC_SUCCESS) { + *isReg = IpcIoPopBool(&reply); + } + if (replyBuf != NULL) { + FreeBuffer(endpoint, replyBuf); + } + HILOG_DEBUG(HILOG_MODULE_SAMGR, "SAMGR_GetSysCap ret = %d", ret); + return ret; +} + +static int SendGetAllSysCapsRequest(const Endpoint *endpoint, uint32 startIdx, IpcIo *reply, void **replyBuf) +{ + IpcIo req; + uint8 data[MAX_DATA_LEN]; + IpcIoInit(&req, data, MAX_DATA_LEN, 0); + IpcIoPushUint32(&req, RES_SYSCAP); + IpcIoPushUint32(&req, OP_ALL); + IpcIoPushUint32(&req, startIdx); + SvcIdentity samgr = {SAMGR_HANDLE, SAMGR_TOKEN, SAMGR_COOKIE}; + int ret = Transact(endpoint->context, samgr, INVALID_INDEX, &req, reply, + LITEIPC_FLAG_DEFAULT, (uintptr_t *)replyBuf); + HILOG_DEBUG(HILOG_MODULE_SAMGR, "SendGetAllSysCapsRequest startIdx:%d, ret:%d!", startIdx, ret); + return -ret; +} + +static int32 ParseGetAllSysCapsReply(IpcIo *reply, char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], + int32 *sysCapNum, BOOL *isEnd, uint32 *nextRequestIdx) +{ + int32 ret = IpcIoPopInt32(reply); + if (ret != EC_SUCCESS) { + *isEnd = TRUE; + return ret; + } + *isEnd = IpcIoPopBool(reply); + *nextRequestIdx = IpcIoPopUint32(reply); + uint32 size = IpcIoPopUint32(reply); + size = ((size > MAX_SYSCAP_NUM) ? MAX_SYSCAP_NUM : size); + int cnt = *sysCapNum; + for (int i = 0; i < size; i++) { + int len = 0; + char *sysCap = (char *)IpcIoPopString(reply, &len); + if (sysCap == NULL || len == 0) { + continue; + } + if (strcpy_s(sysCaps[cnt], sizeof(sysCaps[cnt]), sysCap) != EC_SUCCESS) { + continue; + } + cnt++; + } + *sysCapNum = cnt; + + return ret; +} + +int32 SAMGR_GetSystemCapabilities(const Endpoint *endpoint, + char sysCaps[MAX_SYSCAP_NUM][MAX_SYSCAP_NAME_LEN], int32 *sysCapNum) +{ + if (sysCapNum == NULL) { + return EC_INVALID; + } + *sysCapNum = 0; + if (endpoint == NULL) { + return EC_INVALID; + } + HILOG_DEBUG(HILOG_MODULE_SAMGR, "SAMGR_GetSystemCapabilities begin"); + IpcIo reply; + void *replyBuf = NULL; + int startIdx = 0; + BOOL isEnd = TRUE; + int ret; + do { + ret = SendGetAllSysCapsRequest(endpoint, startIdx, &reply, &replyBuf); + if (ret == EC_SUCCESS) { + ret = ParseGetAllSysCapsReply(&reply, sysCaps, sysCapNum, &isEnd, &startIdx); + } + if (replyBuf != NULL) { + FreeBuffer(endpoint, replyBuf); + } + } while (isEnd == FALSE && ret == EC_SUCCESS); + HILOG_DEBUG(HILOG_MODULE_SAMGR, "SAMGR_GetSystemCapabilities ret = %d", ret); + return ret; +} + int SAMGR_ProcPolicy(const Endpoint *endpoint, const SaName *saName, int token) { if (endpoint == NULL || saName == NULL || token == INVALID_INDEX) { @@ -148,7 +292,7 @@ int SAMGR_ProcPolicy(const Endpoint *endpoint, const SaName *saName, int token) ++retry; PolicyTrans *policy = NULL; uint32 policyNum = 0; - ret = g_registerID(saName->service, saName->feature, &saInfo, &policy, &policyNum); + ret = RegisterIdentity(endpoint->context, saName, &saInfo, &policy, &policyNum); if (ret != EC_SUCCESS || policy == NULL) { SAMGR_Free(policy); continue; @@ -156,11 +300,10 @@ int SAMGR_ProcPolicy(const Endpoint *endpoint, const SaName *saName, int token) HILOG_INFO(HILOG_MODULE_SAMGR, "Register server sa<%s, %s> id<%u, %u> retry:%d ret:%d!", saName->service, saName->feature, saInfo.handle, saInfo.token, retry, ret); ret = AddPolicyToRouter(endpoint, &saInfo, policy, policyNum); + SAMGR_Free(policy); if (ret == EC_SUCCESS) { - SAMGR_Free(policy); break; } - SAMGR_Free(policy); sleep(REGISTER_RETRY_INTERVAL); } return ret; @@ -320,8 +463,8 @@ static void HandleIpc(const Request *request, const Response *response) IpcIo req; IpcIoInitFromMsg(&req, ipcMsg); IpcIo reply; - uint8 data[MAX_DATA_LEN]; - IpcIoInit(&reply, data, MAX_DATA_LEN, MAX_OBJECT_NUM); + uint8 data[IPC_IO_DATA_MAX]; + IpcIoInit(&reply, data, IPC_IO_DATA_MAX, MAX_OBJECT_NUM); router->proxy->Invoke(router->proxy, request->msgValue, ipcMsg, &req, &reply); uint32_t flag = 0; GetFlag(ipcMsg, &flag); @@ -347,12 +490,41 @@ static IServerProxy *GetIServerProxy(const Router *router) return router->proxy; } +static int RegisterIdentity(const IpcContext *context, const SaName *saName, SvcIdentity *saInfo, + PolicyTrans **policy, uint32 *policyNum) +{ + IpcIo req; + uint8 data[MAX_DATA_LEN]; + IpcIoInit(&req, data, MAX_DATA_LEN, 0); + IpcIoPushUint32(&req, RES_FEATURE); + IpcIoPushUint32(&req, OP_PUT); + IpcIoPushString(&req, saName->service); + IpcIoPushBool(&req, saName->feature == NULL); + if (saName->feature != NULL) { + IpcIoPushString(&req, saName->feature); + } + IpcIoPushUint32(&req, saInfo->token); + IpcIo reply; + void *replyBuf = NULL; + SvcIdentity samgr = {SAMGR_HANDLE, SAMGR_TOKEN, SAMGR_COOKIE}; + int ret = Transact(context, samgr, INVALID_INDEX, &req, &reply, LITEIPC_FLAG_DEFAULT, (uintptr_t *)&replyBuf); + ret = -ret; + if (ret == LITEIPC_OK) { + ret = IpcIoPopInt32(&reply); + } + if (ret == EC_SUCCESS) { + saInfo = IpcIoPopSvc(&reply); + GetRemotePolicy(&reply, policy, policyNum); + } + if (replyBuf != NULL) { + FreeBuffer(context, replyBuf); + } + return ret; +} + static int RegisterRemoteFeatures(Endpoint *endpoint) { int nums = 0; - if (g_registerID == NULL) { - return nums; - } int size = VECTOR_Size(&endpoint->routers); int i; SvcIdentity identity; @@ -364,8 +536,8 @@ static int RegisterRemoteFeatures(Endpoint *endpoint) identity.handle = endpoint->identity.handle; identity.token = i; - int ret = g_registerID(router->saName.service, router->saName.feature, &identity, - &(router->policy), &(router->policyNum)); + int ret = RegisterIdentity(endpoint->context, &(router->saName), &identity, &(router->policy), + &(router->policyNum)); if (ret == EC_SUCCESS) { ++nums; } @@ -446,6 +618,47 @@ static int OnSamgrServerExit(const IpcContext *context, void *ipcMsg, IpcIo *dat return EC_SUCCESS; } +static void GetRemotePolicy(IpcIo *reply, PolicyTrans **policy, uint32 *policyNum) +{ + if (reply == NULL) { + return; + } + uint32 i; + uint32 j; + *policyNum = IpcIoPopUint32(reply); + if (*policyNum > MAX_POLICY_NUM) { + *policyNum = MAX_POLICY_NUM; + } + SAMGR_Free(*policy); + if (*policyNum == 0) { + *policy = NULL; + return; + } + *policy = (PolicyTrans *)SAMGR_Malloc(sizeof(PolicyTrans) * (*policyNum)); + if (*policy == NULL) { + return; + } + for (i = 0; i < *policyNum; i++) { + (*policy)[i].type = IpcIoPopInt32(reply); + switch ((*policy)[i].type) { + case RANGE: + (*policy)[i].uidMin = IpcIoPopInt32(reply); + (*policy)[i].uidMax = IpcIoPopInt32(reply); + break; + case FIXED: + for (j = 0; j < UID_SIZE; j++) { + (*policy)[i].fixedUid[j] = IpcIoPopInt32(reply); + } + break; + case BUNDLENAME: + (*policy)[i].fixedUid[0] = IpcIoPopInt32(reply); + break; + default: + break; + } + } +} + static boolean JudgePolicy(uid_t callingUid, const PolicyTrans *policy, uint32 policyNum) { if (policy == NULL) { diff --git a/samgr_endpoint/source/endpoint.h b/samgr_endpoint/source/endpoint.h index 27540ff..07dca6e 100755 --- a/samgr_endpoint/source/endpoint.h +++ b/samgr_endpoint/source/endpoint.h @@ -16,7 +16,6 @@ #define LITE_ENDPOINT_H #include -#include "policy_define.h" #include "common.h" #include "iproxy_server.h" #include "default_client.h" @@ -37,6 +36,7 @@ extern "C" { typedef enum ResourceID { RES_ENDPOINT, RES_FEATURE, + RES_SYSCAP, RES_BUTT, } ResourceID; @@ -45,10 +45,9 @@ typedef enum OptionID { OP_POST, OP_PUT, OP_DELETE, + OP_ALL, } OptionID; typedef struct Endpoint Endpoint; -typedef int (*RegisterIdentity)(const char *service, const char *feature, SvcIdentity *identity, - PolicyTrans **policy, uint32 *policyNum); typedef int (*RegisterEndpoint)(const IpcContext *context, SvcIdentity *identity); struct Endpoint { const char *name; @@ -62,7 +61,6 @@ struct Endpoint { TokenBucket bucket; }; -int SAMGR_RegisterRegisterIdentity(RegisterIdentity action); Endpoint *SAMGR_CreateEndpoint(const char *name, RegisterEndpoint registry); int SAMGR_AddRouter(Endpoint *endpoint, const SaName *saName, const Identity *id, IUnknown *proxy); int SAMGR_ProcPolicy(const Endpoint *endpoint, const SaName *saName, int token); diff --git a/samgr_server/BUILD.gn b/samgr_server/BUILD.gn old mode 100755 new mode 100644 index 9cf2124..8225e74 --- a/samgr_server/BUILD.gn +++ b/samgr_server/BUILD.gn @@ -12,31 +12,29 @@ # limitations under the License. shared_library("server") { - sources = [ - "source/samgr_server.c", - ] + sources = [ "source/samgr_server.c" ] - cflags = [ - "-fPIC", - "-Wall" - ] + cflags = [ + "-fPIC", + "-Wall", + ] - include_dirs = [ - "../samgr_endpoint/source", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/samgr", - "//foundation/distributedschedule/interfaces/kits/samgr_lite/registry", - "//utils/native/lite/include", - "//kernel/liteos_a/kernel/include/", - "//kernel/liteos_a/kernel/common", - "//third_party/bounds_checking_function/include", - "//base/security/interfaces/innerkits/iam_lite", - "//base/security/services/iam_lite/pms_base/include", - ] + include_dirs = [ + "../samgr_endpoint/source", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/samgr", + "//foundation/distributedschedule/samgr_lite/interfaces/kits/registry", + "//utils/native/lite/include", + "//kernel/liteos_a/kernel/include/", + "//kernel/liteos_a/kernel/common", + "//third_party/bounds_checking_function/include", + "//base/security/permission/interfaces/innerkits/permission_lite", + "//base/security/permission/services/permission_lite/pms_base/include", + ] - public_deps = [ - "//third_party/bounds_checking_function:libsec_shared", - "//foundation/distributedschedule/services/samgr_lite/samgr:samgr", - "//foundation/distributedschedule/services/samgr_lite/samgr_endpoint:store_source", - "//foundation/communication/frameworks/ipc_lite:liteipc_adapter", - ] + public_deps = [ + "//foundation/communication/ipc_lite:liteipc_adapter", + "//foundation/distributedschedule/samgr_lite/samgr:samgr", + "//foundation/distributedschedule/samgr_lite/samgr_endpoint:store_source", + "//third_party/bounds_checking_function:libsec_shared", + ] } diff --git a/samgr_server/source/samgr_server.c b/samgr_server/source/samgr_server.c index 8663c9d..b564136 100755 --- a/samgr_server/source/samgr_server.c +++ b/samgr_server/source/samgr_server.c @@ -13,12 +13,16 @@ * limitations under the License. */ #include "samgr_server.h" +#include #include +#include +#include #include #include #include #include #include +#include "cJSON.h" #include "policy_define.h" #include "samgr_lite.h" #include "memory_adapter.h" @@ -34,6 +38,8 @@ typedef int(*ProcFunc)(SamgrServer *server, int32 option, void *origin, IpcIo *r #define MAX_SA_SIZE 0x100 #define RETRY_TIMES 3 #define RETRY_INTERVAL 1 +#define UID_HAP 10000 +#define MAX_SYSCAP_NUM_PER_REPLY 118 static const char *GetName(Service *service); static BOOL Initialize(Service *service, Identity identity); @@ -45,14 +51,13 @@ static int ProcEndpoint(SamgrServer *server, int32 option, void *origin, IpcIo * static int32 ProcPutFeature(SamgrServer *server, const void *origin, IpcIo *req, IpcIo *reply, SvcIdentity *identity); static int32 ProcGetFeature(SamgrServer *server, const void *origin, IpcIo *req, IpcIo *reply, SvcIdentity *identity); static int ProcFeature(SamgrServer *server, int32 option, void *origin, IpcIo *req, IpcIo *reply); -static SvcIdentity QueryLocalIdentity(const char *service, const char *feature); -static int RegisterLocalIdentity(const char *service, const char *feature, SvcIdentity *identity, - PolicyTrans **policy, uint32 *policyNum); static int RegisterSamgrEndpoint(const IpcContext* context, SvcIdentity* identity); static void TransmitPolicy(int ret, const SvcIdentity* identity, IpcIo *reply, const PolicyTrans *policy, uint32 policyNum); static void TransmitFixedPolicy(IpcIo *reply, PolicyTrans policy); static IpcAuthInterface *GetIpcAuthInterface(void); +static int ProcSysCap(SamgrServer *server, int32 option, void *origin, IpcIo *req, IpcIo *reply); +static void ParseSysCap(void); static SamgrServer g_server = { .GetName = GetName, @@ -67,62 +72,35 @@ static SamgrServer g_server = { static ProcFunc g_functions[] = { [RES_ENDPOINT] = ProcEndpoint, [RES_FEATURE] = ProcFeature, + [RES_SYSCAP] = ProcSysCap, }; +static const char *GetSysCapName(const SysCapImpl *serviceImpl) +{ + if (serviceImpl == NULL) { + return NULL; + } + return serviceImpl->name; +} + static void InitializeRegistry(void) { HILOG_INFO(HILOG_MODULE_SAMGR, "Initialize Registry!"); - SAMGR_RegisterQueryIdentity(QueryLocalIdentity); - SAMGR_RegisterRegisterIdentity(RegisterLocalIdentity); g_server.mtx = MUTEX_InitValue(); - g_server.clients = VECTOR_Make((VECTOR_Key)SAMGR_GetSAName, (VECTOR_Compare)SAMGR_CompareSAName); SASTORA_Init(&g_server.store); g_server.samgr = SAMGR_CreateEndpoint("samgr", RegisterSamgrEndpoint); - g_server.endpoint = SAMGR_CreateEndpoint("ipc receive", NULL); SAMGR_GetInstance()->RegisterService((Service *)&g_server); + g_server.sysCapMtx = MUTEX_InitValue(); + g_server.sysCapabilitys = VECTOR_Make((VECTOR_Key)GetSysCapName, (VECTOR_Compare)strcmp); + ParseSysCap(); + HILOG_INFO(HILOG_MODULE_SAMGR, "InitializeRegistry ParseSysCap size: %d", VECTOR_Size(&(g_server.sysCapabilitys))); } SYS_SERVICE_INIT(InitializeRegistry); -int SAMGR_RegisterServiceApi(const char *service, const char *feature, const Identity *identity, IUnknown *iUnknown) +static BOOL CanRequest(const void *origin) { - if (service == NULL) { - return EC_INVALID; - } - MUTEX_Lock(g_server.mtx); - SaName saName = {service, feature}; - int32 token = SAMGR_AddRouter(g_server.endpoint, &saName, identity, iUnknown); - MUTEX_Unlock(g_server.mtx); - if (token < 0 || !g_server.endpoint->running) { - return token; - } - return SAMGR_ProcPolicy(g_server.endpoint, &saName, token); -} - -IUnknown *SAMGR_FindServiceApi(const char *service, const char *feature) -{ - SaName key = {service, feature}; - // the proxy already exits. - int index = VECTOR_FindByKey(&g_server.clients, &key); - if (index != INVALID_INDEX) { - return VECTOR_At(&g_server.clients, index); - } - - SvcIdentity identity = QueryLocalIdentity(service, feature); - if (identity.handle == INVALID_INDEX) { - return NULL; - } - MUTEX_Lock(g_server.mtx); - index = VECTOR_FindByKey(&g_server.clients, &key); - if (index != INVALID_INDEX) { - MUTEX_Unlock(g_server.mtx); - return VECTOR_At(&g_server.clients, index); - } - IUnknown* client = SAMGR_CreateIProxy(g_server.endpoint->context, service, feature, identity); - (void)VECTOR_Add(&g_server.clients, client); - MUTEX_Unlock(g_server.mtx); - HILOG_INFO(HILOG_MODULE_SAMGR, "Create proxy[%p]<%s, %s, %u, %u>", - client, service, feature, identity.handle, identity.token); - return client; + pid_t uid = GetCallingUid(origin); + return uid < UID_HAP; } static const char *GetName(Service *service) @@ -158,7 +136,7 @@ static BOOL MessageHandle(Service *service, Request *request) static TaskConfig GetTaskConfig(Service *service) { (void)service; - TaskConfig config = {LEVEL_HIGH, PRI_NORMAL, 0x400, 20, SINGLE_TASK}; + TaskConfig config = {LEVEL_HIGH, PRI_BUTT - 1, 0x400, 20, SINGLE_TASK}; // Cannot use PRI_BUTT directly, so minus 1 return config; } @@ -167,7 +145,7 @@ static int32 Invoke(IServerProxy *iProxy, int funcId, void *origin, IpcIo *req, SamgrServer *server = GET_OBJECT(iProxy, SamgrServer, iUnknown); int32 resource = IpcIoPopUint32(req); int32 option = IpcIoPopUint32(req); - if (resource >= RES_BUTT || resource < 0 || g_functions[resource] == NULL) { + if (server == NULL || resource >= RES_BUTT || resource < 0 || g_functions[resource] == NULL) { HILOG_ERROR(HILOG_MODULE_SAMGR, "Invalid Msg<%d, %d, %d>", resource, option, funcId); return EC_INVALID; } @@ -188,6 +166,9 @@ static int ProcEndpoint(SamgrServer *server, int32 option, void *origin, IpcIo * if (index == INVALID_INDEX) { SvcIdentity identity = {(uint32)INVALID_INDEX, (uint32)INVALID_INDEX, (uint32)INVALID_INDEX}; (void)GenServiceHandle(&identity, GetCallingTid(origin)); +#ifdef __LINUX__ + BinderAcquire(g_server.samgr->context, identity.handle); +#endif handle.pid = pid; handle.uid = GetCallingUid(origin); @@ -195,8 +176,8 @@ static int ProcEndpoint(SamgrServer *server, int32 option, void *origin, IpcIo * handle.deadId = INVALID_INDEX; (void)SASTORA_SaveHandleByPid(&server->store, handle); (void)UnregisterDeathCallback(identity, handle.deadId); - (void)RegisterDeathCallback(server->endpoint->context, identity, OnEndpointExit, (void*)((uintptr_t)pid), - &handle.deadId); + (void)RegisterDeathCallback(server->samgr->context, identity, OnEndpointExit, (void*)((uintptr_t)pid), + &handle.deadId); } MUTEX_Unlock(server->mtx); IpcIoPushUint32(reply, handle.handle); @@ -237,7 +218,7 @@ static int32 ProcPutFeature(SamgrServer *server, const void *origin, IpcIo *req, uint32 policyNum = 0; int ret = g_server.ipcAuth->GetCommunicationStrategy(regParams, &policy, &policyNum); if (ret != EC_SUCCESS || policy == NULL) { - MUTEX_Unlock(g_server.mtx); + MUTEX_Unlock(server->mtx); SAMGR_Free(policy); HILOG_DEBUG(HILOG_MODULE_SAMGR, "Remote Get Communication Strategy<%s, %s> No Permission<%d>!", service, feature, ret); @@ -368,57 +349,145 @@ static int ProcFeature(SamgrServer *server, int32 option, void *origin, IpcIo *r if (option == OP_GET) { ret = ProcGetFeature(server, origin, req, reply, &identity); IpcIoPushInt32(reply, ret); - IpcIoPushSvc(reply, &identity); + if (ret == EC_SUCCESS) { + IpcIoPushSvc(reply, &identity); + } } return ret; } -static SvcIdentity QueryLocalIdentity(const char *service, const char *feature) +static int32 ProcAddSysCap(SamgrServer *server, IpcIo *req) { - MUTEX_Lock(g_server.mtx); - SvcIdentity saInfo = SASTORA_Find(&g_server.store, service, feature); - MUTEX_Unlock(g_server.mtx); - return saInfo; -} - -static int RegisterLocalIdentity(const char *service, const char *feature, SvcIdentity *identity, - PolicyTrans **policy, uint32 *policyNum) -{ - pid_t selfPid = getpid(); - MUTEX_Lock(g_server.mtx); - PidHandle pidHandle = {INVALID_INDEX, INVALID_INDEX, INVALID_INDEX, INVALID_INDEX}; - int ret = SASTORA_FindHandleByPid(&g_server.store, selfPid, &pidHandle); - if (ret != INVALID_INDEX) { - identity->handle = pidHandle.handle; - ret = SASTORA_Save(&g_server.store, service, feature, identity); - } else { - ret = EC_NODEVICE; + size_t len = 0; + char *sysCap = (char *)IpcIoPopString(req, &len); + if (sysCap == NULL || len == 0 || len > MAX_SYSCAP_NAME_LEN) { + HILOG_ERROR(HILOG_MODULE_SAMGR, "ProcAddSysCap sysCap invalid"); + return EC_INVALID; } - HILOG_DEBUG(HILOG_MODULE_SAMGR, "RegisterIdentity <%s, %s> pid<%d> <%u, %u> ", - service, feature, selfPid, identity->handle, identity->token); - if (ret != EC_SUCCESS) { - MUTEX_Unlock(g_server.mtx); - HILOG_DEBUG(HILOG_MODULE_SAMGR, "SaStore Save FAILED(%d), <%s, %s> <%u, %u> ", - ret, service, feature, identity->handle, identity->token); - return ret; - } - MUTEX_Unlock(g_server.mtx); - - RegParams regParams = { - .service = (char *)service, - .feature = (char *)feature, - .uid = getuid(), - .pid = selfPid - }; - if (g_server.ipcAuth == NULL) { - g_server.ipcAuth = GetIpcAuthInterface(); - } - if (g_server.ipcAuth == NULL) { - HILOG_DEBUG(HILOG_MODULE_SAMGR, "g_server.ipcAuth is NULL"); + MUTEX_Lock(server->sysCapMtx); + Vector *sysCapablitys = &(server->sysCapabilitys); + int16 pos = VECTOR_FindByKey(sysCapablitys, (void *)sysCap); + if (pos < 0) { + MUTEX_Unlock(server->sysCapMtx); return EC_FAILURE; } - ret = g_server.ipcAuth->GetCommunicationStrategy(regParams, policy, policyNum); - return ret; + SysCapImpl *serviceImpl = (SysCapImpl *)VECTOR_At(sysCapablitys, pos); + if (serviceImpl == NULL || serviceImpl->name == NULL) { + MUTEX_Unlock(server->sysCapMtx); + return EC_FAILURE; + } + serviceImpl->isRegister = TRUE; + MUTEX_Unlock(server->sysCapMtx); + return EC_SUCCESS; +} + +static BOOL ProcGetSysCap(const SamgrServer *server, IpcIo *req) +{ + size_t len = 0; + char *sysCap = (char *)IpcIoPopString(req, &len); + if (sysCap == NULL || len == 0 || len > MAX_SYSCAP_NAME_LEN) { + HILOG_ERROR(HILOG_MODULE_SAMGR, "ProcGetSysCap sysCap invalid"); + return FALSE; + } + MUTEX_Lock(server->sysCapMtx); + Vector *sysCapablitys = &(server->sysCapabilitys); + int16 pos = VECTOR_FindByKey(sysCapablitys, (void *)sysCap); + if (pos < 0) { + MUTEX_Unlock(server->sysCapMtx); + return FALSE; + } + SysCapImpl *serviceImpl = (SysCapImpl *)VECTOR_At(sysCapablitys, pos); + if (serviceImpl == NULL) { + MUTEX_Unlock(server->sysCapMtx); + return FALSE; + } + + BOOL res = (serviceImpl->isRegister == TRUE); + MUTEX_Unlock(server->sysCapMtx); + return res; +} + +static int32 GetReplyNumAndNextReqIdx(const Vector *sysCapablitys, int32 startIdx, int32 *nextRequestIdx) +{ + int32 registerNum = 0; + int32 size = VECTOR_Num(sysCapablitys); + int32 i = startIdx; + for (; i < size && registerNum < MAX_SYSCAP_NUM_PER_REPLY; i++) { + SysCapImpl *serviceImpl = (SysCapImpl *)VECTOR_At(sysCapablitys, i); + if (serviceImpl->isRegister == FALSE) { + continue; + } + registerNum++; + } + *nextRequestIdx = i; + return registerNum; +} + +void ProcGetAllSysCap(const SamgrServer *server, IpcIo *req, IpcIo *reply) +{ + uint32_t startIdx = IpcIoPopUint32(req); + MUTEX_Lock(server->sysCapMtx); + Vector *sysCapablitys = &(server->sysCapabilitys); + int32 size = VECTOR_Num(sysCapablitys); + if (size == INVALID_INDEX) { + IpcIoPushInt32(reply, EC_FAILURE); + IpcIoPushBool(reply, TRUE); + IpcIoPushUint32(reply, startIdx); + IpcIoPushUint32(reply, 0); + MUTEX_Unlock(server->sysCapMtx); + return; + } + int32 nextRequestIdx = startIdx; + int32 replyNum = GetReplyNumAndNextReqIdx(sysCapablitys, startIdx, &nextRequestIdx); + HILOG_DEBUG(HILOG_MODULE_SAMGR, "ProcGetAllSysCap replyNum: %d, size: %d, startIdx: %d, nextRequestIdx: %d", + replyNum, size, startIdx, nextRequestIdx); + IpcIoPushInt32(reply, EC_SUCCESS); + // indicate is the last reply + IpcIoPushBool(reply, nextRequestIdx == size); + // indicate is the next start idx + IpcIoPushUint32(reply, nextRequestIdx); + IpcIoPushUint32(reply, replyNum); + int32 cnt = 0; + int32 i = startIdx; + for (; i < size && cnt < replyNum; i++) { + SysCapImpl *serviceImpl = (SysCapImpl *)VECTOR_At(sysCapablitys, i); + if (serviceImpl->isRegister == FALSE) { + continue; + } + IpcIoPushString(reply, serviceImpl->name); + cnt++; + } + MUTEX_Unlock(server->sysCapMtx); +} + +static int ProcSysCap(SamgrServer *server, int32 option, void *origin, IpcIo *req, IpcIo *reply) +{ + if (CanRequest(origin) == FALSE) { + HILOG_ERROR(HILOG_MODULE_SAMGR, "ProcSysCap no permission"); + IpcIoPushInt32(reply, EC_PERMISSION); + return EC_PERMISSION; + } + if (option != OP_PUT && option != OP_GET && option != OP_ALL) { + IpcIoPushInt32(reply, EC_INVALID); + return EC_INVALID; + } + HILOG_DEBUG(HILOG_MODULE_SAMGR, "ProcSysCap option: %d begin", option); + if (option == OP_PUT) { + int32 ret = ProcAddSysCap(server, req); + IpcIoPushInt32(reply, ret); + } else if (option == OP_GET) { + BOOL ret = ProcGetSysCap(server, req); + IpcIoPushInt32(reply, EC_SUCCESS); + IpcIoPushBool(reply, ret); + } else if (option == OP_ALL) { + ProcGetAllSysCap(server, req, reply); + } else { + HILOG_WARN(HILOG_MODULE_SAMGR, "ProcSysCap error option: %d", option); + IpcIoPushInt32(reply, EC_INVALID); + return EC_INVALID; + } + HILOG_DEBUG(HILOG_MODULE_SAMGR, "ProcSysCap end"); + return EC_SUCCESS; } static int RegisterSamgrEndpoint(const IpcContext* context, SvcIdentity* identity) @@ -439,7 +508,7 @@ static int OnEndpointExit(const IpcContext *context, void* ipcMsg, IpcIo* data, { (void)data; if (ipcMsg != NULL) { - FreeBuffer(g_server.endpoint->context, ipcMsg); + FreeBuffer(context, ipcMsg); } pid_t pid = (pid_t)((uintptr_t)argv); Request request = {0}; @@ -455,6 +524,13 @@ static int OnEndpointExit(const IpcContext *context, void* ipcMsg, IpcIo* data, sleep(RETRY_INTERVAL); --retry; } +#ifdef __LINUX__ + PidHandle handle; + int err = SASTORA_FindHandleByPid(&g_server.store, pid, &handle); + if (err != INVALID_INDEX) { + BinderRelease(context, handle.handle); + } +#endif HILOG_ERROR(HILOG_MODULE_SAMGR, "IPC pid<%d> exit! send clean request retry(%d), ret(%d)!", pid, retry, ret); return EC_SUCCESS; } @@ -470,3 +546,89 @@ static IpcAuthInterface *GetIpcAuthInterface(void) (void)iUnknown->QueryInterface(iUnknown, DEFAULT_VERSION, (void **)&ipcAuth); return ipcAuth; } + +static cJSON *GetJsonStream() +{ + const char *path = "/etc/system_capability.json"; + struct stat fileInfo; + int32_t size = 0; + + if (stat(path, &fileInfo) != 0 || (size = fileInfo.st_size) == 0) { + return NULL; + } + + int32_t fp = open(path, O_RDONLY, S_IRUSR); + if (fp < 0) { + return NULL; + } + + char *json = (char *)SAMGR_Malloc(size * sizeof(char)); + if (json == NULL) { + close(fp); + return NULL; + } + if (read(fp, json, size * sizeof(char)) != size * sizeof(char)) { + SAMGR_Free(json); + close(fp); + return NULL; + } + close(fp); + + cJSON *root = cJSON_Parse(json); + SAMGR_Free(json); + json = NULL; + return root; +} + +static void ParseSysCap(void) +{ + cJSON *root = GetJsonStream(); + if (root == NULL) { + HILOG_ERROR(HILOG_MODULE_SAMGR, "ParseSysCap GetJsonStream failed!"); + return; + } + cJSON *sysCaps = cJSON_GetObjectItem(root, "systemCapability"); + if (!cJSON_IsArray(sysCaps)) { + cJSON_Delete(root); + HILOG_ERROR(HILOG_MODULE_SAMGR, "ParseSysCap format failed!"); + return; + } + int32_t size = cJSON_GetArraySize(sysCaps); + int32_t sysCapNum = 0; + for (int32_t i = 0; i < size; i++) { + if (sysCapNum >= MAX_SYSCAP_NUM) { + HILOG_ERROR(HILOG_MODULE_SAMGR, "ParseSycCapMap system capability exceed"); + break; + } + cJSON *item = cJSON_GetArrayItem(sysCaps, i); + if (!cJSON_IsObject(item)) { + continue; + } + cJSON *name = cJSON_GetObjectItem(item, "name"); + cJSON *isRegister = cJSON_GetObjectItem(item, "register-on-startup"); + if (!cJSON_IsString(name) || !cJSON_IsBool(isRegister)) { + continue; + } + char *nameStr = cJSON_GetStringValue(name); + if (VECTOR_FindByKey(&(g_server.sysCapabilitys), nameStr) != INVALID_INDEX) { + HILOG_WARN(HILOG_MODULE_SAMGR, "Duplicate system capability %s register!", nameStr); + continue; + } + SysCapImpl *impl = (SysCapImpl *)SAMGR_Malloc(sizeof(SysCapImpl)); + if (impl == NULL) { + continue; + } + if (strcpy_s(impl->name, sizeof(impl->name), cJSON_GetStringValue(name)) != EC_SUCCESS) { + SAMGR_Free(impl); + continue; + } + impl->isRegister = cJSON_IsTrue(isRegister); + if (VECTOR_Add(&(g_server.sysCapabilitys), impl) == INVALID_INDEX) { + SAMGR_Free(impl); + HILOG_ERROR(HILOG_MODULE_SAMGR, "system capability %s register failed!", impl->name); + continue; + } + sysCapNum++; + } + cJSON_Delete(root); +} diff --git a/samgr_server/source/samgr_server.h b/samgr_server/source/samgr_server.h index aa346f9..8bd419c 100755 --- a/samgr_server/source/samgr_server.h +++ b/samgr_server/source/samgr_server.h @@ -27,8 +27,10 @@ extern "C" { #endif #endif #define SAMGR_SERVICE "samgr" +#define MAX_SYSCAP_NAME_LEN 64 typedef struct SamgrServer SamgrServer; typedef struct SamgrProxy SamgrProxy; +typedef struct SysCapImpl SysCapImpl; typedef enum MsgId { MSG_CLEAN, }MsgId; @@ -41,11 +43,16 @@ struct SamgrServer { INHERIT_IPROXY_ENTRY(SamgrProxy); Identity identity; Endpoint *samgr; - Endpoint *endpoint; - Vector clients; MutexId mtx; SAStore store; IpcAuthInterface *ipcAuth; + MutexId sysCapMtx; + Vector sysCapabilitys; +}; + +struct SysCapImpl { + char name[MAX_SYSCAP_NAME_LEN + 1]; + BOOL isRegister; }; #ifdef __cplusplus