From 6f3c8f7d99e8b7d2d39a43c74f9d9838716b540f Mon Sep 17 00:00:00 2001 From: zhanzeyi Date: Tue, 27 Sep 2022 16:19:50 +0800 Subject: [PATCH] update readme Signed-off-by: zhanzeyi --- OAT.xml | 1 + README.md | 28 +- build/config.gni | 39 --- ...zh-cn_certificate_manager_architecture.png | Bin 0 -> 114244 bytes .../kits/js/@ohos.security.certManager.d.ts | 239 ++++++++---------- 5 files changed, 126 insertions(+), 181 deletions(-) delete mode 100644 build/config.gni create mode 100644 figures/zh-cn_certificate_manager_architecture.png diff --git a/OAT.xml b/OAT.xml index 3ae5bf2..ce35cdb 100644 --- a/OAT.xml +++ b/OAT.xml @@ -67,6 +67,7 @@ + diff --git a/README.md b/README.md index 95338de..7af1174 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,10 @@ # 证书管理 -- [简介](#section11660541593) -- [目录](#section161941989596) -- [相关仓](#section1371113476307) - ## 简介 -证书管理主要提供系统级的证书管理能力,实现证书全生命周期(生成,存储,使用,销毁)的管理和安全使用 ,满足生态应用和上层业务的诉求。 +证书管理主要提供系统级的证书管理能力,实现证书全生命周期(生成,存储,使用,销毁)的管理和安全使用 ,满足生态应用和上层业务的诉求。 证书管理架构如下图所示: +图1 证书管理架构 +![](figures/zh-cn_certificate_manager_architecture.png) 证书管理模块可以分为如下三大部分: @@ -14,24 +12,32 @@ - Service层:实现证书全生命周期管理。 - Engine层:证书管理核心模块,负责证书的生成、存储、授权、使用、销毁等工作。其中密钥相关操作依赖于当前设备中的HUKS能力,证书管理通过HUKS组件提供对业务证书以及其关联密钥的生成,导入,存储,读取和删除等能力。 +证书生命周期管理: +- 证书安装。使用者可以通过安装接口,传入证书文件或密钥库文件,实现证书的安装。 +- 证书存储。证书管理模块将用户传入的证书、或设备端生成的证书,存储在/data/service/el1/public/cert_manager_service/certificates目录下,并使用UserID和UID对证书进行隔离。对应的密钥会存储在HUKS模块中。 +- 证书使用。通过查询对应的证书,使用者可获取到证书文件进行业务相关操作。 +- 证书销毁。删除接口允许使用者,批量或单张销毁存储在证书管理中的证书,相对应的密钥也会在HUKS模块中被删除 + ## 目录 ``` base/security/certificate_manager/ -├── build # 编译配置文件 ├── config # 系统根证书文件 -├── frameworks # 框架代码, 作为基础功能目录, 被interfaces和services使用. +├── frameworks # 框架代码, 作为基础功能目录, 被interfaces和services使用 ├── interfaces # 接口API代码 -│ └── innerkits -│ └── kits -├── services +│ └── innerkits # c接口代码 +│ └── kits # napi代码 +├── services # 服务层代码 │ └── cert_manager_standard # 证书管理核心功能代码 ├── test # 测试资源存放目录 ``` +## 说明 +### 接口说明 +证书管理相关接口将在后续API版本中体现,具体参见证书管理使用指南。 ## 相关仓 **安全子系统** - **security_huks** +**security_privacy_center** diff --git a/build/config.gni b/build/config.gni deleted file mode 100644 index e65619f..0000000 --- a/build/config.gni +++ /dev/null @@ -1,39 +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. - -declare_args() { - # for HUKS can compile on liteos_m - disable_huks_binary = false - - # cut abilities for authentication - disable_authenticate = false - - # if HUKS use mbedtls engine - huks_use_mbedtls = true - - # whether use lite storeage - huks_use_lite_storage = false - - # whether use hardware root key - huks_use_hardware_root_key = false - - # whether use hks config file - huks_config_file = "" - - # whether use hks key store path - huks_key_store_path = "/storage/" - - # whether huks enable log - huks_enable_log = false -} diff --git a/figures/zh-cn_certificate_manager_architecture.png b/figures/zh-cn_certificate_manager_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..a360f067b314677492c5faddb77d2efd84a88742 GIT binary patch literal 114244 zcmeFZc|4T;+b}#xL})=ZLN3Xk7E6&WW#5VHxr8yyAPkup6pDr-T#u_;^IY1x~m!9q& za}ekV3HW7WKMFh%SMc8h{$uhp*SQTU?>|2ed^zH-X`~4PRmF4eIkN)akNN1@_<=xY zPBMO(zFb;Y2Z88$dUrG}gB+Lk*;>xu+wY-gTHgNBnjNVwp&8@!>MsY4+>5+srmxCZ zyDn(nIl&cP5q9>^InWhZnWv-t0KXcqDrG5t*F zDEZ$9S+{8ETb!uR>`H$gWOcIxKr?>Az<>F${P_rd-of?fQ=tg+f4vy>e_s6GhMol_ zw@&=F|7<^}`l2@|bsV|!J9ANg2+lURx4XG`#$i#CiU4VZ4E8emH)^{QMi7{H<8NbUwG(ZSNvsxyka{^{Bm1_=puGnFTGpPm3MNKe*X)7!irHkwc? zINZ;?Ft^*Bxt2l?-WenR{Y=0%Vn3U`w|S+FIHLwC)8kV0T-sbAx6|m;RKzh*VOgbM zUR~0@x(vwH`dda$IxF7kMkl(1%SdjLV&P)y`uo=`4)(FfpR~ruoR=UIfCTO7N}ztxg z@R2Y?P0)LRHq9G8Qyoc%)7gplImRs^E=<&T1iz`1^HjHuK5j$C%RZK&Cv-0tU{+gpaWpB&b%JV52c}q9NO(=vTeD7dwAfT_ooj z?Rd~&TrJwuZcNdeOH&#Ywh*~lykNsg{CBIt8%N-f;L)@8j*#P*FUuc2BXj@61WT5n zhrn1}n+$=b&jKK}i*Ua;`Eq~(hu|tJCp#$&p##8mo>@s=VV}v=rmZDtPf_9M8ChH2 z3C=$=;TD45XdED{dq6R{$fnRc7AC{2lr@3tX9h^jqm_WbJI|A28lU6*EqHQ4v z*<;d>jSMI*FUfE%xHK3Du)yJ)y=*W|v#Gi#kE=A+^Dgth=n*T09OtKNfFMqU zZVwQ%#=ebe$rc~5h<8>xt2}qOfNj*i*;G8s;3VV-v&PIbs`P?m)_zqP3tDR`DtXBI zKx1z)?+nIsbA8LsyRkWRn@B-@(poeWi?@Tfh%{N*4eV`7IuYK&=0aSNY+;jb0kQ$` z^+D)cfcL9~$1HB%?b0{7bB?eUWc`i2TA)w6us$|)p3>B)|d(!&uE_+XZ1 zIf{Nz?$jRI1_DXB2znVw+co(Y*|k8b=rkqw{`1?ri{1?r+k0=?h0)pR5Wl(p%`tbi z4R_RUtOb3{>C(8%oFHi_aME{dGRVM<2HVG4Z^t87apJwuxgy!7^~=Js2iC~oecR%> z>N*B*hfo6va(lBcC1+?S0WRPC*kM#R>F=^V6ifH-5kf`qAQnE}7Kv2aR^8C`_YCF8 z%y_a_ML~_EJ(&#bVd~{L4A6pQV)~7}h zs4!8b58zFW@&Awlzm^{aH*!tL*hW<~FHum!r%lv{jZ*j0DH(g*1QeNK3zOI>Q2td^p>W%z zare*(b;Rz|>weT+i+>7SY2(;-T~ZaK!bacLPG6aAY|A@n?36YnDVCuR03khw<|aV} zFTh%<2tL-oHaR@M%V^lb05O2IH%njF(9fC5w+y-$SKIBXizXmBRvO3Dgtr&P?5!V5 z*w-F)cc0U(A5kRkE>_R<3vZ?@mNvt`H&tr8O(k< z+l}o;LY>wSdH0IO%V;>l$u_NTS&pwkthIvh)V!YxRUgF&4lP66nKthN%3+YwA*&{q zWh<)vk}{cgKmLjsulJ6nz!9+*N)WJMLy>0l$R&Zs*Ck~?9Ygo2lu>`@r)I-)Cc6ug zFQ)U*slCdM`nD`X;PC7oq2IB>3JufU0y_1%oC5Jj;L?L9j)d)s_;?Q5pk9AQ)W z9_2ILsH;tR5CT4PxAzfzjQbvQ{Vza!F2r_l$!6oi?Nsv=o_~lUm#n=O&(%Aneqf{8 zbz+#(L0yop@NrUEGZ2e+$PWk^TASIIXHihB$v2}YV8?8FTn*Bsz{agumn?}l!Blm+ zW0CXuD7U=0b^a73N-=-90B8et1io1SqBi*I{NDPg87;JYxozXuhgAdE%id6*7tK2n z>wEO!{1^h+t#x!{jBg;Kd_EIAF6^yhLrI#u;q6gtAAjKbQ$PAc<>{-rSl?eq;T#w0 ziPNGu*(4mdu`Fk}-ERgV_>RK&_Z2_^c^x{_cg=57D!cYwYUeJ`AKVff@V%K(s5v4P z>a!Mk@GDD;dp*T>S4J65xJ>k(P>r+{f2wP%6kM8LAk|^vV#L)|J5yaGQrh#x?^ojl zdiHdj;9R_KPIo!Za{+-{jN~%2tF!gUTj2tQwcW<7VMWc{dB@_EsfLys$%>th@%O&v zgY=_&bp@u~dakO_NPk}`*fvwSBl50Xpfw-8OkcYjUrPF51ClQgtI>Z<(E zrs|)YDZM!1ezzifj5*A$n_Wr13;~`_{-_<~O68KV&cNv? z%3h#;INpTn?WD4u_t*Vf3zuvs+O-tc?mJ2ub~kXbV6N6~D0*FZ!ANxUySpXUrNFRp zm6?13&wfLYcKH^vC~kI(R5P%%==anA_dr=sGMFhvp3tjJ_^1;$zI%LIO+aPKew5PE zBHHWEPYj%Vtm1217IDMKX`CL$Vj)1?BI?qN@w%gPx~a=2t5=dw!a;+!XQ!=@(1N|v zLA61$Nt&9nTSY6f_OAT3gAr@TwK1x9*+X<#Vy>CXXgRyLg@6X^I(pSa8D54q=8S)u zmVynrSklU$;V+VV(ii+1F`=NU)gcdcO1{pq{0Yg#>x!C8Wh=>e?>YH?Or=Pcst?6DY08Z_nWWH2!Ez--@Nbvo!Z;?u0eB!uLz> z5W%0rhSgkdOpN7UdA9fw{13+}Z}LZhJ`UDEvImmhQaf;thqTeS(KM|G{$M%mS+WdXe1Hg?kBsa@NtWCe2>J*)e? zJfvFdYm=awDC?o;Qq6LUJHmA&j`vIQTfQ8x?o6A4RmzZ7Q*KCCr`?q_=|~%nV)>+D z=BkOUvx{=BJ?ZKTI`!#FzrE-}IjWyi6SC(|aPZGmoT)Y)0*CO|86DRy9;c|NY7Ywx zY4?tApYXnr7BuC?MGBfxl$OBKhQP$X+tIZvcib(89~CMPgum)AeTai1s@Qa#t*1*ab?5qM z-ShZv>$Lt4@o2XmO!FfGR)KicK87Hbr@e=H#31HhK3WD8bcYd=?A3r$;N8fL)bSmC zC1q_jc=9M5?2zP-Fll!9UU3g9S9E_WneR;!j;c-D4DhNr(^gDXNWA2d?8a-#~V&I1G%hXs|- zDp-YqKs(8QtvMP~H=37Xk5@hAL@iD^fPI zn5mbn{=Od9rAr<74?-$(L*9+>k1o2R5yP|;Kui%)_ugp#mxY^TCzZZ7E6c^{c*rz- zy54EjBRtH0=`)A&cjxD&djY-%8?EYhlJ(F}A;=+{gXT|HK4_3c{7F-Zy@Zt>v z$yc|Ly&G&Tgz8BO4kztq@$@U?;#=?~8`qV1)L+5=kCzM!1L@O&2SbI~qN&;te3pf& z7!mbQ2Q_Y28_H{1WcH7^m&Nn^$}7i*!KS3^&<7O!S1Z~@SsL=zQzzULmit%R!{cw^j*|Lv&Nm6nKGSoaMzXyWtE z%bu~6f3P`ScOW+{@m7PLeGS`il#^sIPisEpaoI$oWo@F_uiD5iSE&M!M#+O`0;yKs zFMT}a1&ngL^$1l%x3_{6-h6joJpNHfI8QLKZ|h2w#p#56>5EmZ>Chi#w6<-X`mJ17 zK822&@LsmglYX`r1W(~JLSL2MZ57R>2lUq?ba`e6n_p>)C}9(BXh$v-9`s95hHAgO<=G!6^AEj@6c^cp2 zWa^=Mh6!#^%rngl>~<$28oSwvNTyaAa4;omH@r|Qi1;vKWv7bmORab4Wv`zE?yrS% z`EPQ>HX=J@2Q-(p^s)`#vEG3$jbA0o96yzwIuUm|f%ik6V5xfl?N(bo4w4txo$%IN z>=r^#Y-3zuVmLxc;h+{i0>U?uyjQLsAQT?um3SfoyKdO0=#h=gr;;xfT}|hIb7>#G z^x@R>wU6V!@TUN0p_U(T&uZG=Csj`YzVkGBd-cRwhWpJH039m|;q?~2|LUHUPj3Q$ zgWk|$^sn;?ca{P+ZuZ`E{s-rGj3o6Rm$L0dgH2biWrM3s*k|a&+{j1M&*hPFoO5@2 z_D^yCtd3*3#NSYaOVZ~0>vQne+9LJM#S4=sYF(wVDVB>r#8aFIGo=syc0YRBh>Ulf zE1i-)K31Cj55K9$#KL}O>sLKwQtvU+5V)!?qw7Ln=S_im$O?>Z;?j!=DE27VbA0^U zDb&GLRePyf%!egx^!Ah$a#x@nx4x?)cvLsl%A*GK>s``Brvg=ef2J#bcdTYhQ+M05 zskr~EP~ADNX!{+Ztv%Z#aK$f1u)LjqQxzeHj0>eC*BA@p^NzAZmHGWFT;sGUMqe`# zY~->)VWz?b}5h)n%2(iDIr;ilU$_U7XrH`@zr@K=SjRV z(~>LuCzn?GVPMGv-uhb`^?T$+!S7yqj&A&v`A**0@CKIyR5=RlE2W1t8G%@WTx&1; zcl^zoP-ks5a1WGE#7kJR7ac8Zb%J~h9G;i!-Nc`cr}ge!HNj`SIk#PUqd$iA#g^dy zL4Dv(?*PiVrQHy-a=&}I)g*r9f=p_R^sZyVay>H$6tfX%24g|%53f0FOYKodVTAV{ zu-CbWB*d0Yn*P#GH8lRd%5uk3o;BD>>TyfEJJb_>4+d!;=|V*Lk&~j@JH581$j`}U znbTi9#&#D8dPTH5FxyBNbl79H)AY0aOfk95ZM%B}e#k0aT(^d&S z7p+Odk=4zsq`qG4bvf2&Tw{2?nTy5`LaU#yYxr&_S z6vY~2t*y{X)M;6w446?Ahqrx)6uZO97shuym!I7D%jrocXtyDBUMg0dqSB1!g+?40T3&Syk z$wQ0Z3U9GS&enQ#oi<6b0A<|+{FK%Q-#?4*M#X@|38zz2xU21ABIVYmbVSfwsSCWT zBA#c9-n;hPmR9&~EG~J1^C{E_ZApHmvay<^y&zUqX~boOZc?GV>dHY5%|8R#(o=)8 z=ZasyyStJdRRB&_hQEs&`yqhTXRBBW<$9h+j0#CDwwaCR9T zP12T3wzVE!xg1r--^L7t%__AlC@YQH1u4qI%?ECaFEN0CD25aGZKhKsa)-$w*t>WH z4kG8-Ztu5w@8DY7%oQ|(mryl*yY4taq)0Gv_ZARXSgSvW{$U|t1QRym!dA+f2(W{8 zPcbWPJm$~EmwXT~fnKz!%ya%dyL7C!<092^k-zOCt9r1oLg&z=+={<><7W5wUt`h@ zRgwvL+JqP2ROO84;1G^<|4X=ATxwJ?tDV9*N+Ur)aM_tZG6npiFj0x}4FL@*b}m{m zS-hW}-$rKK4TPPbyCw4(zi_x|IoPh3xu{L%$NYv%pHK;qFgWmx(K;r^Gyxs(pgtZ@pIanSVz7j4QOd%2v)QFAPC<(c_yP0 zGjSu+uKWyC%ZO=JSQodO^z^yHm*A_){Z{4=a=YJAUl^*K&O`sIW?3oGe3P=}U;H|+ z+ivKSf}qx&6_4KR?(B3{1+<{M=win%;yb&Yi7gvP{jZj`^jjLWY6Hr1#1~xlWo!y} zhK(IhgvxQ8muuU2L|2|ZX9{bTc!-B+PEuU<;8>j)M~&CaF@;%rS1a(t$JT2lk(mZ8FF5OS|X&N^o*EWLVyf zf8;=T9&w{WL99)`>Rj4H^!q_xy-0{&DVo2I6Yc1}Hy6LLZSc*p>UvhOgFK=lgah{a z>cRc;E%0u02qTad|Ds;$13_c@tyWnXpLg>!YH_9N#a&{Bng4ESupI6YyzV#uGH^`| zAm?v=YRe?4`?+V!S`0OP(xUd3A~>oKugf)nRjjp`$`8{X)|GA1;~*LaUAa%S!TSz5 zKAC0}*4MLT=>qFPUwQmU2J2#PRhBBm$Xqbsthl|_VdOkfQql6gBG#Dq!Q#ayFPU3Q z11|Dk&}#`7-~r3N`2uB+4$p6`4;4tjpT+O0&6Qr?TP%K`TB~G-e249^Bfp3n5eI@o zoV>F5nicG5yH45Il?&1%4MrTK?~B)uyD#Ft<%zI^Hnpa#1USlgbLLmF5Aqoijb?h= zLL1|bE4 z&p!M3Gyw{EMnpLw`=YNp7p8~_HAF6o@Gif`;+*m#L{zNwzjY|oow@mjKPGY`HIbvY z;JTNq>gDsllQ+|KzXfp@iIlm_+PF-pReS#}K?vWCRaO#IvP>~|nNq4eUfS@M z;*mU=;D`kOmZ}?^dtPtxL217SGxq~9MeNhcW;6GOz;Pl9eH<`@}_^y z#(Un2iMjwtNw^&>4|{i`o{pvO^{8$yT`#Yx85Z8gCZm)_@|)(P7LhOIdvkiCf7MAV z2u#=L2s&(WE26&+>(vEiE7$07UR9#D60#@A7#6|1)e_ z2Gb498nhbfJE|ZE+_hl4V4t-g36rUNe0br#w#37XIvcjtt;h{R>&yvI1itl$cZ&cQ z!Ak9{{tOIrR>(NQn33FxSL7e8KTHd>7ekIYyZCf~LhC~Mj?KjTo_RvETQ)(p$ThK2 z4T%j3M?8)LVasRKlF-_!Ftu<5|KN@NZo_|eGs;Pir``9tG-`rYTDM6+DrhlT*6t_2 zob3|-WqXR-!15yphnfi$@AjF=;6<2{_p-f`_vDlMho4W?KlxpK+h%f~WR+aESGKEj zb!Gb`{mJfR#qZzr#mUQ0#kYhC|W5SavfW@ zjA7crCI`yW z-E1ZpLS1BSs_}i9N&|iADg&+S{lo+Ba&Pax3IUn zZN<95&^B2|_%U8}f6Se$KB* z&Z2u;)JJQ0NZ3f`iC^8Mt*{c32QV2R~VBJjj{- zD4<;?<=rKHaPABrc$ch9vxA#vi&PSqn;TOOekUN;KAyoKkp!>xK9cfc`HUh7qE+8d z_ZDO%5OAt@TU!qjMm1|t1$k}t`YBE(!+!UUa-XLNJl2Zl^6QG?3P=}?!n4npwJeh?h@<`%sl4F09Y{&f96w3~%=$v_fG2c_8m#Umt|~tKGsPe%LQY zEcoOb-UC5cRJ%jntvVT=gL%!so{ANp<|kff>gfgB+x2gK#`E6I#;ey0K{#`Vi*dVV zfW?y+0+K+ttIVuPEG6BOLt+LYE zm3dD%WiWf0mJ*`gG}0)Z88pS*i!_aaq?3hg=hZEih8h3siWM4@T|`b1ZJu%>5?xr9CR<{*d_Kof#f6S z^HTQk&)qXZFEwEc1Oq2=Xt2T;SmP`|{3(~xeGe%qaE}s&!?h!fsZF!ti_}w2*QDD| zeF_DX{YRFgrn59ZYG(;Clm%3DvfJEF|N607i~+3lZfp!y7TXGO!B&t-2Lei)1=fuw zf~%5B2eCcc^*Mrocn9+^5^xGfv23F&k+SmaeAPB)T7z*DZfG5(kS)2Tah=q&O&a48 zzDnAko+Rtk|6Gr6r(;YVS5r)G9XxA)IlKsOrYbH!rLSw&8%;k-qt?Ax)>O4|F;0O_ z6;aNLLN|)8Lhf3;C_7pB_W%>fa)5AO>R|AEq+$}b!t0@33;HgtxRn&tg@4#KJfZezybzAoMbT(BqyYo2RBon-p0)M+oobO|%y0cL;l3L8IT#Cc%2*XEf#P zw42(NkH6>aa_gL<(xUf3vyR)r$9<}I&E8@UY&YAexmO24dhe8@hA*tiQLU6x?*F8b z6wVSX&rJ0NoMLvOG1MRuR{A}lvknp1S4$srSWV|7;bsnm19z2-0qQn0sLKr;=1paG zK~!d>cW;W0d#{vz!O3qKKmGfB)8Km|W4Q5Yx7O8q$|wQ1MivTQ&F-9S=S)E%P?zmZ zs#nCf0@A!28)+1sKt!5%Ril#-KF<5cU9_soy;h^}%A*(18lb|~O7uN1yE2G-t0z^4 za38k#MLNH!W0*xq7Wdn0nXUfEcvF<^Y5S zk<&>@1QIQ8k+WfEsU8sP6^L^CNy)DX~G1~E#zo!!D* z@3(S0V69l4=Kj~|%OiBUG_DMt=NdG1px#)J8BExpKVaM2yhuX@s{^VUx9rkPT|i7w zUDPh#QF9iRn_R^(0bWzeXm?J?$YiMhc>KhCLB?|1Ueak2>lw!r{{zy}psx6+2gt?L ziP=e|g?%+2+JFE(4o(f>*;`}U{?c2~(5|*=E!;7G&A7J(V8|vO?@edn4r&vv9H**# z+Is`Xek80r8$GgZf6yh|SYfi)q_QUMgdn%>G~>!3)&N}H7kpR-Pw_UC)%b&7L4T)Omdf&dkesg;`(_vbmiev1@fx6mM z`TlQgn{V?lLZvyICAzVTN3Ao&{nz7AJaB;lfwEK?VQ<0G_JiH!LQMQGhKu8E^I~%R!=X7f;sD14132w#;wx@v*kNoopMRbtG zYQC9|RMP=kk4zC_-Tu|?xGco#F7i(M{XCsxE+M}dhz@{2sho@i(kb*K&Vn2$FG-jq z1AZXrZr(<)@9}cp5@Ps zY4V;n$4r&C{v>>;$v<3|QDXo~wSU5EPdIi?o?|)I=|;xsYm6N=1$Uw z4iC-ndq4z@M)8O2I`4gNGpegVg|dv8xR#Ch!y60hI*pqE8BpiNA2No*2#f{PI*mWA z4wsbsppeszB=LupWf{ zW89P(06fbs=yp`JFtV^m;)d}j#$(WLfCQjx;}SPiM4oEDpH&rkijMeq3ghMr(y)=| zxU9x^kLjKE$N8<*XU7#ejKy6BC2r*BFaW0jRU9DDJ&VEonKsEFgTqDg(qC!T`~887 z8Ues+dS(qc?Ii|k01Q7n4n79#&)B>y4j3Ig!7)B${3(k8(9^h0eqq)Em(G9DQud7T zf@i0h590PwbOb;&sfYib&h{7sAP)+#9IN%`W9Phh&s&%=0gG-ZGLCH#oB2vpbUMNK z(*w*D@NdVT9np6HG(jYlNA32W9Y;yny8&m#Ox+M+R5FEWivR^*wJi>TWNgmqYfE+w zKmOnj3RLfafN03!Ar<*H0nUE)_+PpmVVuIG^7J(bul*2%^v2)+v)-eV0B(0n0i=Oh zdybuBK#XUQ0ra|-@&3Q`eRYQM=$!xUqmeKV@rSSe=h!Y_cR`>pyuz$000JUm?_Mz= zq#$?EZ?9~&Qj|gRNv^SH8rVYps|6aqnAR_*$f4n^wq0rTC!MmX>&eKuk-3Q_l==#4 zz*kFo)L)d`{zBj?R26meN!ex&65zWEl)7&`ttUjOVcWYVg*GLma|e)ds57Hh3LvdK zz?ZeB_cQof`u5wcCzd3h8C3t&CN_u&dNz!V5F9$_W|_WRM56 zVFpwW&GL2>UC(Ks5Cet={HJKml4Au3-^l?0m%bx1pN1iK0|UpY5!-1!n{W&hr&mF z2?)_bA)`9;-e+cwVVk<3aO9MZcyoBk@qp&g-$N8D;D{qvYv}teX*5(t(|Cp2N`<(M z9|lHx6{kRgF2cTRx1mlui8E=G(6&!+H=sy?Pmy#*WFybA?;U?>fTi3F&ynLhxHN_V zIt@ZNCVuXdOW?}_6}yYEKU>aC)I=;?WcBXSDVwvBwqH;N)q(-g3p0hni5q&+I|58u zHeZ()9+iYV2vMr88E###NWs`KWmUnO*NwOF*G-yf2OHu}3FjNgq01~7o#wK-Z$s3z zs`%fFpuw+g^cmsiW9}K#ZHUfe@Gp<&bQq@cD&kk)fqA$c3dN`&eZiZbzP~v<@sdoM zoC$gnS&x5eX#{S7{a^Q>nwV~Rn>nD740 z%Yb>(SpUQ5V*kSqcpQ1B-FcN^5wjW(g-!lgq!*z70Mi19RZnnie8lk8=|jz|u@1N} zAQ0s5>3_{sq=gw@^`VIf`>A=zYPbD6S9#c>G5Y3lCNDJEOZJy7i@pYdmm0 zPAN-?)-bWlbwJnIMfFhw1OBTy?|ZQelG?w(2wLplg2Qa z#@!tZ>!9Iun*mE$F(fywvkur(_t2L(JargC>u@X;Knr6^r{bagCU7z630f%U7k~JG z7jUW|e1`|4@Xcnt5;_0J>S$a)M1_XMC&oc~Jl?$XVHmH$r9JgjXzaxCfn`ye3Q5#NH^*UKQzGqH9Q1p5(XElYX5O%1_l01LjWvx zXj^|}yn6rdn5iTK$)H+QbVRJl-Fu({Gv6lFTMUn5`14u$L){0;vi}1>B5&<{gEzHz~9>GSu!0Vbm)FgRl{BV4}+{2|0#cAZv*lyU4 z1Y?SX*C9bI|G-Ik3Izm9`#lrr6+>YI>}b7w>>S{L9WKjv2p#C+m;W0l1s|G4(5p0H zj~>*p@6;cfd-%W8{>%g#?Ef>#Qf%?raiGvO5A_lt_!`;&{GksDaX&;O2r6|;r0evy z`k>1n$7qA~&+~})KKxZ?bCWce^$5jN#GW0)OQ)sTh;ldn;6bq}%Iei(R7@%JOU!8HMuzY%m zPz~b$!Zp=!{5P;@nCbt#9oYXVxFL1uWc5r1<-QE`VzhtSmhIvxfOYxhi;Z9j1sRVC zPA1BuX#^n-ioZjSmv(nE82cRZwh$9-^ah+PxVWZlMX<4*nm zTx$dLby$A(OwkY3=T+cvWkpVag;ga>t3j7xsYR?nY~T8L#nMty-|gwt{NA5=9t~wD zE;4J>06a7J2A?%ji#D%yx8Zv4=J^%Kx^20OcJX$4=s4T57vO%Q&$1TGR=Eth;;QE5 z9qM>x>+=cBpf3Q6XL-z?o9(730vI!_9X5SGCM+xy7hwPZU^GF3#>#psa~Nx;PTHx6 z*8C7We6jF6qVJn~FkQEX)!K%78l5d_M^lzOTOPwDz0h>rjUEpQW>u0X9puB}gb~ z*8`G@NSJ%Z&<@z}&XZoj{r{Lyh4;N9CFjyt7b38{amiq0o{V2 z!ium?`#k{lC(h#NpscOKCInB1+Sag9*Pd|XuX*>J-XACFY)`5g7Qu)1-X!$=1R+sq zy~MKueNZ1U>C#nJA9GOO`I5ZX9UTlBJcBRk8++B!2S$3NfL_gxwbRN}b|@GOolmEJ z!jDLWm&n#VhcksO*tkejtCI$|mFZBlh(FZDAckef_S)h5o1?LC zN#!kRC*LvBYAglSAF_KoQ|8ukDg^}^4DGB-FYlo{NeA$d@RghbkJr9?%k8m*$*3%2 zQ)r&q;ga-$>FDOngDJKHWsqgb;8!U}ZLad5Dw^%xctxwhp9{V!Fu5$*mc50N<%$8d zMWXJUqraKIXA=;}4xAaWZk|xv#Zi*KdwMl>apUOkXaJ~N4ZwU|Kw56Hy*6#(lGSHx7r(!yGeRq4s8nVqr!Tqf1u_{>(Pg7XMPubO# z4pIcLveb6l*HQ&;_;l!VRocq8EkrVQc0l#X2X^kb z=uCF&~*RK&+&4d$`_WL~-DLrt&N0=DGg973atealzkqj@fEUNT< zz1QzYK&HUF9)ioE2!SLr!BI{JU#u~7CXM~VzH0yZYvib7I?ohnpRN!bHOLzs`>2=Y zWrj?|&`h<#mCC(gQInlV?>|~Jbt#@}JzyhkD$!#qxim6Q*Zsyv6Z$O{OR?JNH+h$W)H(=mw zHzuOAcT1x50~XMR*Lo2bUtJNj=&~p&S(=Kre@*a~bZKTUroXj z&l`<$8xom{XVY%Y3p5f+II_2h$d@YLvrK?G^5Ml|!Jy8n8U4C*X?={ka3VAj9lYPn zG8lx0N^c5WcP>U1%qMcMDOq;%BY=LVgX2!hWuas5Znm`?bPK=>OhUTJJhhk=rw!G> zt+!5rM6deR=FK?rHpJ_EExiqg{bH!L(#&W_;oFx>2U|mzbjK2sq;nKsH|t^~}>6fx>svQ33dmeDxbOIf%)x(Ff=ED}q&)_i$ekN@0Y@J4)@3JmbN$ z#3zE0YTsUoXpyqQSti1mSoZe!ck_52O1dunNZbFnFNW!!`GcJ9_ow4ko6IT63g2bo z&BIfwx-)=M&zuvpxidYqSxd|+P$ktAqPF&#GRaq4zfvq6x+GjP!7cm(?(kNvAQGJ? zRB{w!AJ`|4di%5XdjG<~`B`1gbL|16Z`)4(^OKfB{~+i`TEo#}^h4Z{%j>?|Kty?l z`v&Dz0@rn9S?SS|P?hb;O*WJ&l{WgkON-~*0KIJ)NqJ2f&CqX6(N;Q``py~RqVl4x zE5!*#bQ<$^O`+D8H!yM3N&((o5|I9Irtlx2EAC`;^uFOB;T_X~j)w_qPVLy}%ja_E zH*HW3unc*Q##+CA0?a0UBA7@eX-1#7dQ?#CXhDsCGz%a$QYB9M*zqz!d+FIHWKi*N zVFwy0mAq$u_9}JPX;(YBQ%0eDgUz1zNFJX8_Z_Y`xwL!G#uNjzdgMb!Gf~=pzlvIi zS>-A7E=?|NR#}cgpsXWudEivRT$FQ~P(jaJc26-=>ekMVvKh-A|8tWWqYcB=)VATR z3ABEQkm_hmm6_x0;3E|EgIps_k@jF&vdIIlQ6JR+4));sG1DzLTj3e+FSem(>&8j! z49E@;-8DM9Z&h2q8Klt91kz|S2;C8Fw=hH*DDVvvtf7IC)a0P6dfP?#YfsFOn+uEZ zRTY7|u!bNNZ51CtFT)BHZ(9L~OUr*9gDn$6{*XJk#)Cyw3kjD;*DBUvc@iNTse~Uk zu8i`S_>s90zGdY_X{_QatJXxw&JGlx^?w_<0H9(i$LKb>i zrh<8FEdDYYtv#afoOkPmLhuk|B|HBLqfVkN9D=8qOJKBngoQ)#0sj8Grh4IqH=rgP zHrNz%w3vWcei6q?%lel7uw=qF_xOr}+JL{2CuZWUXLNeAw5>no8&PUVfCGE_sSNdf z`tV4Sa;NNpqiv6^H>12*?M-c%K04P&HL6-WJrenZK2hsU-F^{<0ZT#+%rGfaoD!)!W#<<(VHw?Xc)bRJi6) z!|fl$ft|@e*lSwuDdx&|sVfTc8>R;C+ML+E#qsewOa;rbBH5Bja8tH?LEss6{H$Vb zn5pWaDprR8!H4J-ob0PO}QS#7S9ta2O*3u`^*&S?h^ z#Q8Xh7v~QuA@RB3+s?YV+V6n6M9cXG2WZ&*)#*Z2zQ`*a`~jKZqx|!buzZX!DV`h?K2rb58wfkU*R%eRI*m@*{BB|?Ptn#THD%E zF!47Po3OV=Z&vNigSwM6cPl2ONy*`yDM zbUqBiZfM_XLs@b0J>dw{TVl}sTYkq^?wdL3wWs0;!&iy&REr(~3l-BIR(|TBg`E~v zK#&7t^AIf~T`y61BN@h_{Z71~g>qvW$JOWo@O>n=OxT7(#F_zTD2z! z*noHpALBT%^4u)|JVocBedt`CS+kL5ns(j1cl)uxOLnx?SSPj5PEh5d!!HtollU#R_O$#EtRZJPkRLfT!pvpcUZ5%38`SMUR1wsJQZx=&hg7 zjkkLnIw`+zQ z*fN#vduwqE4*O=z!KgH+&CsG?H~6qjBmA{=&x`L0jri4!?^1OI)dQafj4rhqy}vKk zxs}oPL)TN-N?+wP_K63~eXVxNEuX zBWs8U=9T%1S=7oUS;YA%a}0e(JheFAQq*f@+>pD~EeJVU*!n8}>%yw=+5;mMH$KvY zFAav1Rh@qY<`6N6%p)8tyKs#Gib`JMvNdjnBCTTmp`t#qs`9q5}3x>%l*9qnp z5_iHKyoJ(ufb35uw_pOkyd+mXwtXOVR%d?S=gUW&>|N#FHp6!D#|1eAShe+wRa4EZ z&i35D-Jg!tk^mVf<`QROMEbKhrq|@9_FamKLJ5BSa;@j!-|*4;F|ymwPm1m-+jwt4 z=yV^s%G+0t6=Yf|&t7<;4TPpHDh?TG4qK&pS>o6$%;i}zZ-7R{BIHV5e`>1x2ZDvk ztz|i#3OW(%D@*6?yf2`)odT_= z*7e*ci|a}Wz+0+NUx6lu%WI*0s=^vbMmxVH>P_DtpE1H>m}R_R-%9j0I?l&C6MT{X zmRQx88H+{%d?4q<=crP<8>iecC0^bclqCy2G&@ZuNq2YeR4BKdBXzST>N)sfYFlBz zDJSE|1df=_o>=aT672+VlODcs=mlG6_HHmNog_j%o;NyW(Pe|qGVcW13C5||(yQW+ zO;R#9k@^YljeNPGK*Nk`+~XW_to9MNbV_Hk*orcf?Z{UZxF2TJwm0*ywi-+qm(ZC*(3mTCM2SdGEY^L3F)!_3ixCfQ>!#(usUCsvd??*2i0SI{sF$ z{oiRH)C|O`2^`aNgTK0oNT@hb`B=&@0qp@;ggWyU!MvIhfLoP4J-!_^Y<93PRgf|k z9Ue0FN!m-%5C8oGS&(6pDw0!%_^|L>Hk#6dKXi!4=%(SFij4IMUZV`S;dT3^vRk~Xo_iFOE z0dpSuv9d$F*!GV9#Qe3EiQA<>Jv&}Ec;Pn+A(xqfnSnrR?J$(DWr}4MnBHK|3M_cU zq(At*lGF%=R^|MH^c{?VqRZXDjo%_QqRm`Ck- zJy=_APGupl=X%le&YB(AC3|DfxqK|o`Zu66aDR4xyKgnctprxLnPSpI&_pZ|RtH5u zra(M5E5$=DcPr>)EH&M7mEZf>$5>|GM1NF^rQhwR!POpxK&kNcs*?r1s|eL{%RzCD zN&G8L^=9o>kNCf_OZPn!0*>BqZ5QmBdHz%_{hZH8+SZiX8cDrrtOQ(1qpIfr9EJg^ z(*roY&yU9~f+?0S3D5MlqwiwsQj-V)QqD+|Ua#%Qde6}?xCO0>SKwR$&dV9;&gh$y z>q^w}hHgY9~9nR+Rf-GN%63_@p8F&tJ|)rAZ1i~syfO=(pJdG zuCmgq*PmAQae4r_en0*|^ws-VX!MUi>i#bw;Vt00cd_nwLJT&#I1gbvS(mQ8yjZ0d zt%LI)e#LC)Nmt!Xd3#_E6i+*#ig1rcFV`qifu7oo@w%EBD)i^G{LV{!=ntm_Lod#U zCg~TfFhfEC2-5NEUx5}VZEGh?RAPR0%^TNzIjQvXW{Okbd|z=xfn?Q##1|Q*&ZDpAAjMYf;Gm+w{S&>1d&i zlv8mRp8$WPWp7rnp8Qh|28O1VmyaKqt2n?OI<|Zhxm7LXqIn@~3rLFK!#fp?Y)U^C zRs??%`1Q@P`_^oKv-^$+-DX(I0LKKKK^orkswldgxV(ZsS{BiC=rEU@Oq#pHo^#!G zyzrWl^*_L+;2_xEeNGp3&e+Cioq#$Jbg-)`s1qVII&*_G$_gEFTCuSMW;W~0o=OaUu!+V=Z}xYQ1kGvL;KU3D1`-}D46(MR^dZJ zzQ~(LfLQHFW`pzc$4s?K&V%o{^_ZApF3%s~Mw}p9J07I8e|GS~F`5%g{iEWShz!e@K66(WfK&dpMK9xIy`IPp8VE35h-?b@?-5&Y^t0yfH!<+E* zUcrzGL>9qsO)*2Cpm)0TgZcn)#r~Btea^_07QaN18_76Mj44R>O;&%O%#FP|GugZk z%gaxUk+l|s>48F6!UarSc4tbaw2-Cx``P8<3K#L;jtSf%oOYj%ORnM-w8$CyMILjE zbregFkV}sX0sgi_ptzv=WJS&Dg9fW1r^dc(HZ zQakUaDl)Bv96?2o_yOx2;m(PB&%{>NVoeBDZ&DZf3B;%}@Z5OvSA8NIHWy*CQ}47< zPbP5Xxrr5qB;dPyEq=Wm9Q(hxd(W??_UPRgWg`lTB1Hv3-Kca?X`0Xk1nIp60TC%7 zBp?uaRS;VM5kcv_1VSjGg{B~)B0U8ORYV{GLJK9dv*P}pd(OBo?jLY@#eg+dl9g4y zb3V`WnU6_?cr!4o91YOD;OF%aEVo#2%$g8!{J#v-mK}+Bjm%?`>6M%B()of%VUaL$ zE4cVAWJkgzR7hh2(E15c?I&T)3R=TgJ#WpiVW#dtlx^LOCW4aW#lyRu-1IyN$x?#x zolp@;3G)tWj7!%x1=s5}9Dzx2$|Vy;-4rJmYA%F)j2NRAAF(-0=!E|Kh0;|e>(tKs zQ9~<=ZeV6b-Jxmq)lT+< zj_9@hY&uv5M}7$W4m85T--ztz*|jTef163&*rH(b+V*a)tjinJSqb=Gsby5ZjCFZj zH*EoC+Z+z&j7%R9_w1T8cZQ6YRutNXdSX4$9{0d1#3DWB0z?NUo|0Dha529sls+wY z=ptb4F=ZbyD9XVA`_G?R_WU?JuB>>NagdH^8@gan{^nZC?|(1w+jZ!77ktSQa+7P@ zuWMrBN6yC?h3X<-D}-+ZJug0xem@wB{`5|pCXSJKG=v{ol`5BJs8ZHQ!m1#Ap}49O z$~QD)1N|&CSN1oa@ke;C@R)jP1#PV;Tr}JoO(HhX6+2waXNud35d_zcv?a;3#-VMVmH)OKS~fh z>&1L#Ccn!^d_oUxwfX(eS(Ozr5`USsmlfvF=WMHh~o6#5Oc z%IOC3KzCQ+LTwje;~2%2C^1XN>R|Pn_pFY=x};7C1I_0=`?Y~8cLAMFN+nk*p;cvh zQfu#PO^`&Xl5UXUcw$SDCa#?CxJNNfDLuTO6OpEb4#=&A!ak|J#axi>dt2l9e96d- z?mh8pBw)(f=8quND>KHRdsG$L z%6`|DztOp8AhXSM~NPo5tHAQ4^FBA&a0B<1~^!_H~n`4gZg&0QilKaO$sQ z3H)ZN^`Ghr^tn&`b!D*rt;jOX{r&m>&4y73Ah;nKs|g)4H_*eHHV+ibo=CqODD?r+@^o^5~!(!WBjAFtG@k;B>n^H&R|qPOlKs`wp;D&jWTJ!DDF zIM9z&P4~eHdtF77u0bkW*-1Io`08}by%f=F`ti@1wALWM=!58tlqU0ZF3 zoe)-2`3oC+upc&IXH|T2p)%zmGCmeYIKviV&@5VZ*&k*(`9+TpI7^r%*S+lVk6xTy zV#8qpa2OLF4iL-6rar_%3x}r}_kkB`x#E~GgXstX9{<3Jb|L>useq!jqPeSH?g~EW zhKNT_CW{(|u;}W*Uoq7Wjg`yeMHr-9Tgf+M%Nb}7G3)Cn!*8e_xB!KX(^6X9|b3gwkzu$eKxTZ2xol%yophD9+tu_i&o>NYn?T z_Zwr$xvgyd!oU`VNIS9rKKf(NatOPi#ts*_ zWhzWTG_D-k+4)+8jql1<^&1pq*_v=zLT|HKZ)uUT2}lQUj~6O$p&&v zq$Q16S#PUa-bX}Ry1!!zznNY88JIpxM~Rj(NMzbK$ln)WE_qzvVq%)rrxJ`u+NcQQ!( zT|jkr?qoM8`<-Bm&TUpxokb0sZ1o|ym+_3TR`!7_9JAX#^5ZuQAtYaYjLyRnc9p%Q zrcsRY-XIEiD(M7$w3vKM6j0xwm_S5U7WLe>yR{OwGTLNPsfh)f{odE-m7R=B-{~IQ z9BNtrr5=7Ze}=Ge8trcj8k&HfY5?mQt2WzfZfl zNbh37uP6^XP`mVh7jLBQO`bm3G+5vAovXR>&aO|DMvnw&LRZGUIsPtG&=ZO`!Ur$y zKhqx`KM@%+=h{7*clXu(|Ch!G_&v(q#vi8(*ODNJNAATe@%}02$$+PvCwu|ff3xs| zC1s;}I(rVs3NX}(r1RP>Hk<*LOlt)4$0v6@|>SJRTX-~vB?u9J< z5A?~mo+$*|ivREgU2$bzENbCKTlPxS$$kB*u1H!lU8nwcar|2loa>Bt%k<^|W_wQF zlRxLT14%(p>h*oNV&LqU{HWlC@$VBAeJMH#KXAZ+$&BOXs4Z_t_G{V%fk3l2%rJ5$--R8~f8%)VR zJ`BzL@kcf)J4TM7#zHSdMtXl^F2?YS!oWnO#4ZvALEdYjDd%nu(0zb((IzF4lx=nv z!=^L!H36F@I0hL3#7G)T#@r7X3H8`95Pp1Bu66mz$xrL!Knv}$Kg=Y!KA6LaE2^4$ zEY@`7wln4T74==Sz|0T0^13iP3jK|4!rCVEkyV4Sc63Gz1=cvxNOIo_FB|~A)Zxt! z+SuB~4RC`jH=~CKy!4wUf_dAVKd1C_U2Cj6Zx-sGma;NDZL&(D) z=-~w1HjaYFSdu2{Lz?L0p}QfL4od!Wm7)yW@r{v=w(WQJp#+JEKeV$z&*|LF&nJX# z^`8LvmJ=7S+}(c-v426Fe{XDDM@L7beJqOgEMBgf7B6Q8jvFtYdRA`X*3MG`asl{z z&*`TilWyeh!Uv16;(hP+Hi2mSE1BnM@2yTZ=$(}?jP!A<=!GR+xBNP!m+YCUnk?=k z&-}r4lsFI$008|sLNGaisl-$3slv*HJ>+5$MYdATCQSHb$Gc_KYTLxqkr@5o$3|c4 zgh4-hmV!QsZtitQ{))f7v^7V1R~Q~&@DbxU(b!VoI<%6lKFArFPd?_qr>A_Id1VgPv*4Jc$W6teMdl2cYWZ+hW)4bT^7eO!%K0Co*n zcxD)z-cAD5QFlGKer*=rr*3S277vYaq57z?^k6X?2}S0=q6-YS$*Z7>4@D4b@UL!w zchK_toSE%XH6;X{0xA;Y%DgVJRzkR0mjvW#t8LF#OpJJzVV2|=;6Zx6C0p|6cHV6k z3Pj_};VUSgG0$}PUU=bXr)})&VKzEL4 zQD^L`hrYi5N?P2fyPNt%CE7B@9GNKFv@`)vs2aei8l^KW+C-C5Is-gxzk-00-e$zE zAVhu_{6^9D`uR+#*Et4w4Cva)(-d}^gCi|kqCc_%6l}P&hwC?vk5+FC!c6u7>YwPI z9EGJ#6rXcLY7!&|tG=(dCK2^y>gCU>wcb~Hn49*|C>su_5bIGuTB_n@)=AV5nb7H{uq9n8DA(*#M_aJkf=d2{aw3*l7V>b@rm zhvf9?qxr5#tOxySj9fpeU7gJJZS^0!A_A`RMH zrB>oCcD13CZbNkb^R6N`X3jq!PsguP$|CG%j(AV4)FbeF#_H9ISd~LYj*K8oIUJM0 z_9Omh3E4n+8wn6Px9}2+eg!Srt$pU-Z$GmS(|%mS8*T3hXx1A*&`&_sB>&~&KgVs1 zn@Ftq_I`+j${%+iPh5{PpCsMK=mHD3oI|X#IL~PkAt;EE z*K5&uH-A@?>ND>ZDg;d-k40`d_+xH;znj_LOjsG3?#LT(drVFCTsQL`l(+!xs>C?V z*B5-Wr{sz(I9?hilE)J9aOsOfB?@pXQ&rk@V2uG{wxm4l+8kOFfJhwuCZz`y<|9s? z;Md+49*4ZHJ4sY-=_I{+^4@&i7QFJDgl*3%NZNeF{y3z^{O&}8hb3%q&pDXYKX$o` zOeEF5lQ+(s^tOpQGhShCEHdIzhft=3aYssm-j+V8^XpZe@Mh;){MD%wBkg5?cPdow zsI&ghQ(c#D9IbPA?xwK_1bIZUBn5WnQ1!{~Zx-dSIkNz8$tkYcb zR-8K5MYqtsh8k}h^(Eb&*btNUS28gxDd?SB29%hCwT8d_K91w7Ll+$W$gMT7796w3 zUlk>Pfo2vMal-k-Q$0=qy*U?dPjt;;@60XjLu){-YYYASLFf8>Yhs-R96N##(5E$# zX&#n|b?{ipmF3R5o>KL;UT<#ka7Oayi;|8>61%620#U%h0>C8>l4m_}zU?>QYk6kR z(4oKXBC&Jj1@BB9?xSt5muwo~)n(A)L$*FP2GF)L2#c$@ktzlP0ocI06>1r_e0|?q z<^kdHEI`p2OrP?W{-0H#@6`4zv-?#EvUSSl>&yF%#4Y-19u(3>9^0_a9Xnobn#_H&H(2s(RloQv z9$#;YF1WwFIpA+H0CY*EzO>tkoUA<0G@{l2N5sq#I^V$xI7GQL)b`yN#m%Zlq|_%O5v%7Z z;x95ej77Q&X3O}no2GG;eeC?bne(=)z437c*B=1#vrc`AZrAuAtfZ#wfgH?I_v^TQ z?lZOeqOVXw{Na~?=OTa3YxkS#ZJ8A-&uc6R)uz@D!LV00 z#y&&Otvdo8tN?$5P-wkNgXH`EO($w#(p^ebk;s?G(8o;pz1{k^>rIL)cnz-|J<5^G z`=T4$zbKfN6l!ci)MeV*=bx~`a6$VcD9Diim_i|ylh`M8?)YNQj>OhG}VtNjrU1)ah8L$WBu}{zuA<`8|7HaihO0 zTG?kGG2w@mY4-^RrSZWTvL=mv+>-pJoZow^?NG}PRtr6TCln38$jr3tuI_QWu>Q%R z(OpKCxbhmCfBmw-L#ze$G0`K{7>%Rp@h$9N9|?EwjN-1#%m>02HnaGPexGpqoN`0f z$G`<^(FeM5pA;0H3oTjcD}jC#`cT5YMR~#HwXF~M440@^_A`fjk5q{$tR$+#e`?JD z58qFDI#4QdJ=6f48!h`Z#em}3@b+?8WbBKy-uo5he1-~K0Nq92YL}m@um$irzcY{1 z%1jM1i@Qg#(*v#uCDhy}-R%4GYRGb8m8JMqlVexLvMmXpcuM^qPXKG{8METj!8~Ih z(x>0k3%^f8+y%?$8`I*YsfkLOBY}eS=EHz2{QSw=pi=i+{N`gRxNx9w;}kkkHekhd ztOKOUC~8+CVqG?5B4^{xljQ1*C>wAJ zh>eYCKKo54C^_v&sl0&adWvQiZvLfEV=lSdUOV$$!A{b5zzVjI%~w2Q_BFYF4oR3N z7VbOsdMF^J;Qn1u_lz02o`J6OG;ki%aK)!m8Cdai@Hm^rja(kPAjjMvfUJiaa2@F_OixRg1`o$CNU#e65#NtzDNgZtoxev2oz@p%rPp^3RPrzdIK16s1feg%x^m z4#q->{$BV3-~GE5dG0yqW%(NHx+wa9qXfzee3!NQ4JXQCa?@YJ4}ypNeswy&)y%~? z>WvgxMft{x$yIBLbNJ0>AfL5~p8TLm&A5Wp>{uO)oLCnz&UZO>MYZ>(s5hB-$9l5x zdRbZ$GI7y7U%?CirYMKH_N?6uA$}g*8(1W5HoqpMml=e6hMSZwi=lWF4r;#gO%Ojr zUZCinmDt~Px7eEjmg#?JoUtwtPDooC7Z&_o0%bT< zGL=XTHiE0JN9~Pvp2?W)3lbiLK`&=TTwuBL=131sOUQyEamLsosy~Ukb(B`%%Q9v5 zY1~fRKa1EHA$_!-wx_Q->bsoRpjF*oRicll9%9F1X%W&;ubq>$L)3qA!U4?92*dO7 z@%jzm`JeIR3hnueCs^P#9@W2;1gfX}R zhMg?avJ@Y_`6YqRjRM`>&>x1)IK-{=VR)VT)YjJZht76{SS3+k;`-jy^-e3`mtf)% z-<(b+oG9KDZR(D1jUV*iMNVu+1ojYZw#|H)p*aIV6B%KM1ec`PzACe-m5DeMVrXqO zj5D~+Z@^_}&O0VWdhznPtBbe%rgq{O&bK{R?8^j!+kzHADb;G}T5S(KF03{>!IPsZ z`(Aw_4uM`TUo|Y-vNZYpiu!690Q^fXussuLUk+$07mT*wIfBSDCa`R?Ec9<{$G<|s zD=bS=vE%|jH2_)OK7TiO9!bcxm<6(m+a{wox4}nm`o~$coBBZbrZwkf z4tK#4yMbw$_fFOxXTQ8+U6TrddLsd~Mlebp{v%gns?aP~yaGh~P=b-)ATEbNb{tFa zC{gmV&?q9Cb?Ib+kqDV`^XEmIR_-R5a>&y}XMlUmldu%J&8QE3t#9gXDw19);gufI z=b$F@Y9iILnx{IG@YC{o&|ju~?R`7v^pdqAC_WEaIy?J#v>|_&N%BZFzvSR;>f`xI z1`?-vfr2Jw^EH8{af65t*$hjkivFA|xDM^aienEThU3mGM8c zD8-ruEIfYXEV_QEBz`cS9b+Ouyv+nBTGLg4Vy$(*SN>tWD1URIK&(Svcfk(kvsQ}? zB$XMj&+3^7tFq5{Fh62+#qs^aj^-ZERt1SLqyac>!2N0u1r^rNP{mv%uZ1)S#iqQ@MBUOb&A5h3EJsxIw6#5_&g+ORGrdBnU1ElH882rC)|+&Iqi>D zGat+E*3sjBHQlLckz8ELt_;(#cZY~Mq{uk@(rsn)@a7hj@p+Xhb1mM-zE!1G3(k0| z)9S(hS`);!2wVB3*^IQyojlNX14-qYWzW_Vz{pM zopg|Y+WtEodf9YJshDg?uU=OIT}{+fl$z){Qu>6$D0I-b2zkCcx6ji#-O;|wsvG>> zBq2RuPp+xMz$nv-Q`MOELuZ#I&{8eSrYjzb7>L|+=q~M(U!isKdE_+Ce-<2h#%MAJ zj@p2?Lm$groM+Qrgx6|Yxz0bZg8L){G*GYA9S)EcqFgN7u=(G7vzW*4~D=$JpmO!}D$Y%X!%r;REfl5ux>OWTrd> zt7uY6vB|uZ8aqQu6>tYin5|q1n;oIlys|J#KN>O&wQ$!I@kWk&@y9$-MqX1KxfpQ- z?9$~}lVc=;-zqtZ1QAPFt<>F}af>;_QZdXMc!)O#SP5g5sVVEy%zm~QS}cgi)G?_a zJ`MkMoB`bbJ=fE+*=l8^I7fMv`1_8`(K^FC9z4n6EQG39TOs2$G>bEn-?+tbdJ3+D zl8gwo)yH7X32z7z=ZsLqKp>aSY%>-#TME&j_iq-!Z$*6ES6Nk2-bIxz_0x9^#IqI- zu##aR5u$?VD=4%@P$5Ou%VNyA?J}BZ%7YIdjTuH9yE$ zeu!aiK`cC&Y;v#r+7y1!1Jcq){Hd4UzaGrkM@N=dMD7m!I(n-tl#vEe8Y}K9i7@7x z_?~MP4^h|aq;@teH&yXIg4E9#9>b)xYPC3({&o4Vp5x4dV<8TTMSEZCG`m9gcefGa z&5cW$^%DW$g$9dt3AV*KfY9roDW;2$k2hBKpEFhVSbh+B{l{`tD_X4m4Sem)k4~K_9v=hu0y`xI_ni1^IA| zOSkrNY#`|q0c62xBQowOdHk!;%tJ!7O{D~v9y2ch1bq@g57yzak{Wee&|v1_r+*p9 znVd-1Zu67PR@I?AYEYH3)DyZZfEcO;$mo=a40r;%SnAkU?QHw}{_l1+c_CWvo;*-0 zhRWNbQ!1|mYmvP5%AzH_-#M=7DbH=M!sYu&`pM$^qpDP;ML+wNHvw&!`tp#kt=(IJ zyrk%my@E`oTowAe&sk?$BT2K>ZP~08hx1Wr!z z@Ltu}vopfFT%$(>h3;7^TMlXb%j)|XWlEyXb4!{sch7v;>3c73`I6Hcn)%ywH=GF2 z9?4%88Ux*mE$D^UfA8;Z^U}5xLX{8kEUJi1s}Sb1Sau~pccWJp zao&HlBIEaM8bt#4Jt{P!KVn)AE5|+neGG451!%_L`g;NXGB@G6!NnmXc8FgN?q>e%_S#K8Y zIh43h7Ac{04*%Jv{EOlmZO7j%K$g8}3yv^hXir*Cf9xqr>dgcfn||th?7cT}(CDyv zmUW_LiAwn2vV0@uZ}GJMurln_OQaxiYmH${_982W)?I)D5TJKLdk`b`7k}UU%8+jT zPZGT_AwgR@4)lmcVqfabKV0q*Fot>b)fz@^hR*um>#BRGYiV}tWznEUF0s~PlH|da z)crH-ZCw|V%!SjmVS5Tpgd#ZlH|{b+l?T2XmhSMN+OwnZaKh;8+-i@z_BU0&?2TifJ< zN2@ScLVdq5<6-gs)ZdHucDf{er2RkEasu+*pptPvpv*_PkstZxSBLGa%4^;HbSp3 z>7seIeV;62yJJ%?e}=eMm;zpm$ak%}IQ%l}OoUn}7835=@*+McqA&u?D4Hmwa*Nn1 z8+p_DHT^z`?-y!vMby{fM#FK)|Uc2nO`RA@I;=1cbq1aqx z=$BHy-4KH{z~8}~h>hTO3H&*bT{nt=9Vz6YmVxrdc(yR~9xq_djpykKakH;TK<{hJ zcG!6(>V9R=+r(WOtutZy#@T09P2^et-lJ-Ou& z-x@X;1L*2oOp8dqTQ>yyTlF)Or5xkF>^z!!v9OOdB`;LXIs#{>NAixl;U@C^$P<9z zYh~uHSA0tlsj?REk@&!REB~~*NbMZ5$l<`?AdSnFU-0L>)3Hv_yUuAPZ!`Sc^ku;f z)bnWhh=mpLE#3%fRG02UfTL9+yT03-yDyEK$~Vmtq0Z@tt?bX>5etF26YU9Dsrc5v1!yE^i8=L&1^4s&?Kkh}Z_Wx!o$!WH%1?YQ6}f;FVln&)6t^RIqx z$w|z+2K&eJ+tniDp@`6g6%pgudw7-AxyNcz-=%~Gin?ANPQkGmI`;y}-nqY;E_yC& z#EjEIq_H56*Y@gsg!Hs}WWi4R+BV9n#$uO&>8X;g+l^UN{zBwJ2f{xFBtjtkqg$JE^siN-CDW)*&(nEXrG zA^X`&t#P9Bj%V-{eMNo3gWlRS>-qinuCB)o;4F1XYo+W%!p0s-8SC8&C=Sui$Q?>yMbl7^L{GyrkHtAR1-=W3?b}U z(>qHeUYRiZ^5CY2TI+&2f<^*{+FP4(@wKn>7^!vPFm0?_oX*;xu}`N5cO-1PnPV|x z(G2@rbNwBA?!A1ZJk{+ZWkMCPHy=!X1h7Ag_b5S;sL8KC%}!jHroGfO)3wRhD3N1Z zKSER`A*w=3?QRs}45|K-iMHPBbD|bi+L?Ed5W@U%t%~we3nk4O0)?t}K_M&E8Do{LB z5VeqqEB%m1-yQX9{W%tGb+q{6#a=a7*x20m##m=D{R>q4t!4_Y4>p)WiGbxjz+~_= zwS!{0)uO_eE(jnuV5OPG$)4#o4=ic+hkgJVLXw!FwaD_Z;v1cXSuXt%NMUC3rzkMfzh`g zXoGh8J;o}Ld?j0>i{wpmX`hLYbe{@G!+JB;F`~%4x)s)lsGW_1nvmV1c1B5JYtoxq z)aT^EJWq+2U_s+$kA+=yB)0HsV^CA|Djwf-}qrO-+jHwqEb~M_^D?e z&cj9V4IIu>i!0ZSL`s*>xsm|Ew?Dd%w=QM*4D_clq+ym00 zM+X*#oGqljR-e)laYbo&C)JJC9S1h78Fv36TtcvDI)VuBx;YStDIFvJb3Q;tX>Un; zBGT47Id49Nf@ssK=t>oC_({h>n6fbYm)_vClu|PfbL!U9m05QVn_M4p9qYN2IwLfK zlpF{Y-#&f9A+ECZd#VEy#q%e74Kc7JQek-g%x*vkFp|ow7A{w&#Rx+tp3&`cO)Dcy z_-DAE0rjuV_N*~zNmmSZr`Ll*5oP!6Nxl){8$$0?x-8e4WNZfA5x;koYsPmSg*w&V zQe}`DR_Z(=NTC*=G+v z@AIa=sTZ}lSezqMCi+Uuhuf*XkuI0uXua(p^;q`B zq?6Q6R)BWHr(Rj!H18z2o9B#rES_zMZOb*!z2^ubr8=6lMG_MPHD*Mn-t)H>NGkgb zDP{dB60X>!Jku;$lS?~2HeylA{8V>NQu#rzaD!e$jhO5ylaZ?(Ogv#TQ+fG21hFG) zX|5jE2DC3`bSAAW;goKwsZ#ALPalO;=O<0I`FqBMuo@i3)eP(PkR>BYU>v z7RNeZszblAOu$rsKcz0Ej1jG=gNz4UjJDrOGZJhlM7{<@V=sRlm1eV9fD0VieLP{I zMbmC5QL|1Zw}7V@l(^!G@Sk+c9LDW*80TqXe0$v_X8u8(j`w{fXQAT5P4+A00UQj! z=NF1(0~?H`MO3YNeF+xeBZ!&(tNO>--8sDS-pby)atJpNPzdtKM3NU*gezzInpz&| zm7URI%DTn2O>NjN@l$;dD<3O9B#xmJzy}Y1Qi*O_{3@xas0M3XR2VgMhYlFXfM}z9v$0@ z29*nbEPX2!k1!}x?_g>oqfsxdCzhSn@_QNd$j~_YmgIxeNS%q`*+tOd@v*)P_iWQBb%ZEVjgF!oJZZuv!%IX>#|`>MP*I0N&l+~-nq?Wprn=lqMv z;~$%yW5VM-52r&sx`5N!%UbC9XS*D}XNv*$fK!M6_uB+@!9A=*t1Jb`mhE^xnoKFK zI9A`~TdetvVUqRH$m<`w!Cv6Tb}n8?R&k67;71o3GvtYQgi%WE=v1B4w++}K1STSz z0Ze*foo!j(A|3}IgA{(Px+|T%xDh9+2JME_#(B1$9;&7Q(Se$X&a!kzE>AuzwzAN} zh`|{4kiB!HGp&nOC1=78WYBT|Hs~(AI*=RrLe!gsP0AH%Yp(i-;t@-8R!y;vyK?F8 z1$tOnFKyq(c+y(xfmz8WFsoz~NLCDm`#jD!{s1!HiSUiQK!7TI|J(lFuPJSnzfipS z4j2^HG{`@Ib4@A#Xw;qQpW`PoszNU*shqYon!HL4DyxBh$}eG$0F?6H<7q6z1E{I) zTE{5`I&H+G3plKno{b&7t+vZ4?slH%(3bgQhn0a0IS5)U z;_%2|-LYihN5Ab5vb5OQY>L?Z0eT7H#=btsCDb4SxKB_@f4{~*796}BtFCk!_OP9x z0Z#}0c{#kAEZi_37(U0F{R-i5i54heLk)E6Hl+rZglJP78*1+Ky~uv2a1CZ}?9wf> zf^?%4XkH^OCd~%DekeAy>U97VYAWLylI{d7$NONi9$>?jM&G4$J8Gp$g~(oL6}Z-f z9Rdz#5-}DJ7>yGSo4we_nj5!3kFv zpgbBnx!uPXzy-rt>YCDQM24?>=ySJHc^jaatl6exVn0@!18z^0CfAHY{s41T$YNnV zLP(eFD$9N|@5S>C#D9NOO3v%G!MS~s+8Yx0;(>E>aF{l?jrOY^{yK&ms1CS!mZ%7f zuJG_LGuUf^{rm-%#vulE8m(8uW3ts{eYoGH>3fzhedYW7#|}Z2I?*&xr!u>t4VE4#w;dW@$psXX}y>>8NMM0+V`is6BrZvNr= zKc1>}rxe!}lkWT-q4a^QXyY^^ClK@*{DhiO`m{VpOGFIWI;eBSUohf);T(f_X$bZ% zjbzCaIu=ybmp^Hg`KdgQClgS%9SJMFS~LTiTv$9Piz;IyeVljw+>nRmn>{tc9rE+9 z<9YPELn#8)r9-kpnWgby$lE8u+@^1J(tg6ZviWp)S|w%SX+*f$H=s1CPPyH$)@R;z} zgZ`6#xKUxm?xKT(!~W?-lN0(dOX^_zT>(Xql^690V83s9NU3@Wr__y6>YU=28=b>> zTW!M5NdU4(+G%V@c?{CL=3k$(_I=Ltb8;PK{}h(wyCjhLvlWC~b9njmIzgFf#wkG9 zb6ux0N$_i|>rjtUf~dpsSbYKRwbemCet<`b@>n;hEi&3GZL>_Y@eF2-3SIh$bv#6l z2S+LZn$KaIOvwROlKw8a-=iigR0(hWA=@E1whi|{w+&PId~EX-47-wA`)KIrbmv^) zxs%hs?gCSYcMO5UyxOl+I%C>jFaXcXDIJ}Z?)lr?#u)1j4h+oK%VQ#2HUS5477#0a z8=yA#-e+X{0Z<(j?Y9;Ttmb>a49uIqWg)R>(H@V6PZRx3OXVc^_48j5<*g&_paK6N ztj^ZVj<;GALP5b`OYGk41frH`y$O8F)AJt5(V%;JotMYX2-19{gT5PB40sOQz!dwc zC4eTC9E>t2JazCM1&Jsr=J%Kv`!`>WhmJ5h*~`0mIm7W+#o*{;OA1fS+fIA{)U^GZ z6$DES%d5L%Y7U)r4I~Qnp5P4`;(q&biBH6&d>}eO4W{z?)tT6UYG976`1l368PhQ| zucHuA5^@IA>Y|9_fu~C%@3F((m3rzeKU$&6&FU^uwjW$7NGVm;9jklw)4^fM3EO;n z4;zltoEFg7_8hx|VbBg~IASd6ry8v8M87PGM9bTH0)z8(4TpC8@8`;-C6(})H_yc! z%HtIT0=HLG1~fziM#VGzbI&nI61--n0W5_NiGp;4Rc%Bfg{_K=56t33GPZ7eg;d4^ zb4xVsYkKiC9kOTNVO~PK5#3_gY@Qzcr6n*h4!V-4>iD|%VMd(s=l&n7#?s0o#*4Ry z=*B$n*9Jj2MwS9f*_aL&TjTdBjljhE_&*wN17F>3TAO6w)Fp>hn}yvg&VjdoaBpCN zTAS!5i?ah^-4ak)J680Ztd z>;g;q8!P%^&y@}d6`Q#i>io8QUiii>nCF3L@u~J+W-+;8;brN7>h_!}ya1*16^b)Z z@v54yW!ZoKcXYG0Y)j&s`JMQs8V%%vil&nhO8cs!k6Ebo|bjdVP8 z9%2=sz!0&E1yJg{Bhe^Ry%uO+)j;Vx)5(ZlJNGRb*Uh!~YGUtM;21J%36C$Y87f9F zh`*jo3E#Gl_t`5XrUTPV_6m)MpJuh^Ebgf9R~-QKDz-$x8WbyGIIw;liHleJGYmM3 zg2Ap_HRbG1(6hGO)PJ6J<(}qXQv!WH{LdO|Dy)1fi)0kBH=Jyws_UGAsGl^mh#Zo5 zWbS@TCS-{T!!BtZ<+vQ;jj}Ggj2rSeBVy=)tC)6vg`5=N`V4Mo-p3nd8__ zWxeTpS}y?n;8^OBfD0i>?l%P=#)<8J&s~%_KKiydAmeWScdr)eR{99fw3k9@EYuFs zvXZ)g6PgS!W$=<@p<=eOiB6m0^tDupBk63Ju)%V;Yojrn|04csxv?<+Jl z%kCjPRWmV`4CU=pi&`RGdeWvoc;il5K>FOPjOZ`TQl%z1&U=F zPR(+uv%W1NuV7u*yejfArytPX&?Z~=yT~NE?*y_!jhk)mCcYO&5%!x;vv*^1P5^Az zUOH=}PWS3ew{nQXsaT!|FD(Gn;NQ+DBKR4X3IY|x>wbIpy zgZN?Z*QMtmd!ZAqcV0b7!sT3fbSP8vd}iUb7mgI3KbeF9Yt#Iwdz zE%G#q%}n>!eijtSu{;X}vfR7JE7R!HaXp~1ZBju(2 z`%FWp%%C*zpN8qZgK7So63GMJ#$s0GYce4Yn3Je@L+%q^1#b_3@jYqj1mhAVv*HO& z=l^#+p+D!&n0ryx_W--xUb}_|(e{-OT0?0)%HiMmbQo7Tgn>|XE0|4@8F6J-Ni!OKLy9?+k%GOHajCZxpMhWlYVVFV+BZ8xL)%6{8W+y;C?hMcgpd4 zS9n|9kOpqw|Mauv+j*edYByzfcMIpXg-TNdbkMEIIAlKke)Rjfwb*=DD>)DG=(*!% zb>Sm7sXNCarS-CPz0SSPDt3)0b3h|?`IkMly-5=&H&ZmC-!%1htf5n@D4; zG^d>a!xU_$&lB+E+nu`yFa?;n0Jza0MdtAu7jkNMduZflh{wA5?IVjpe$qJ;NMDg~UkaarMUCLD5`$iTja{?V{5;BCp2nojw0hkwP;YG5f=MXWr<6AJoDbk| zT6T{FNO{t>Z$8l2WGwFk&?cY|`d4feUD$8f)id~93HifI`w6Ik>U9;#Y#%Ur49&kd zIH$T8wLt7AU{o>{57)o5i)$7XJKF6kvJZ)otnEK@SUJCPtqt1(RLp>7z3gxsAhmqP zx(Me=D&Yw_ug?kJ7Hm`Hk01Gw#NQC>l{shF9DGT9C*?zXwE&(&@w&BakI$e1ja9Ocg_mg~aade?OrB`| z)$l^EqIFjnF*<9lmgOi$s0IqymuHCBsc<%kg{|Bda8W>$gIiU|rxC|)u08qK9dyE> zoHvAtziCukkAoBEZ}pSm)@?I)Ck0#GE^v=3;I$!8|0ABd6Ky=n2fbi#n=osF@7$ih zn+5dq4zL*skUFj1EIfr(F-^+4B0&Hs6G064uCoPHCOx6D~#r#bHSV9F-n_B0$f*1(}H7t(+-AN>0AM;r@LdcWx(Fp6@NwqNI6?PoHb_iFzz4m8&Qg-}K z4;qZgG7ZlU(cG(!eI>{wj{q(TK2_|QFPh%aZADodaplT^UPeF%rVa6-5>sDtqsV75GqPnAcF4ZPcK8o?aDe{? z+oFNk5Do)NC)Z&?7f*7JDKM>`UP|G2)CH>?${7%py+230*p^>uDsHz&cnxHN6bgMe zOxYH-?-b~Z6(vKK^@dYSz#QJBTUKT+R$>(XI_OJas9hoaJ_Qe?OGnF-^SW#`u>D42 zFkpAMX$_>QidVNqf+ED=2*Mu#&ue&BO=3iJnzo;LDrEYvBy}PViCIV06|r^zDhnw8 zBIB$}`rbspM&}s=VxzdBj|m8A!riI(r*4FsKv^B&OyKTUuIypg2)ARm5^-0&kG$w_ zG{n~5ibKKd$pP4S&)fN<3papC!uh{}9qb-;SiJt6ighEIi;adAH<|iJnXoNllGtb&rKb9y;4MhAmqMRb-uHLkUipnd+&MB#hGU$D%x7 zmSyY}H9B(yEZazWonPkNvdWcNswKr`RYg#P_D~p$3evI~x=A=>qkCRshsr}4x95HT zZpf~-i<$(GpS?}ThNKuKZ8!Lem=Hf^f!6Mcca<;6eKT^FlkYOp)LvNqZavfxRF$qA znU$^_SP=>c8hbw}c)VLv#m}0(s-wGhQYkjA#YG=Jr>dLG<|WPMY+v3Bplv%8!KG2m zy}5Ayf|KX3_h%0V|KA!1=WF`;+k*hG5TC0RhyPSo4p5kcerMD5HUfS`;+66 z1a7o&z?h5SIuF}O4?93JVsv@= z%>uFQKRaBGuEx35+4eyvt#&~cv7*JZwor~48TY|dN9y*wT~oAO;7qgAZa8||tR5c{ zmQc9!%C7z#u9rQv(GtuKl^!p#nX#TcLzW- zTe+YUltw?6aW5SkPSEuAc=3}HISqFgJd^h#tLllGi}E}JP_O+<>_twwO^&D?PcIEq zQ9iwe9R0HHseKQ5_1>G!iRDaT@Dz`Et4LDypz4f#{r^y zrOfHZ$}2#^cdf3seX_{yNF1H@+Gr!)+ik#l;P^0ftO|$Ei{_CZcdKac5v`3eJ<2%* zgg@56=UK^)l!5T74!QMI845RjGdCF*`%k7a);<(or|BDY6}?C3!{ZPVJ+yjrOy8t9IhZT;YBM#_Nm3sBMt8{E<<^e+7jpKS@4 z%rHG>AFY}Gv-7p#RU1s2`Khk_<(>2KngbiFmh z>`D>X*Lu(#?!;W3hfm)^5o=lSu47+~sU2Y01>` zi(@>ky3rhY;AOmL$oV=RXeO`Ek@grbd#UYr#!Tw!AGv33+~;{zfsJT7%v@wotk3z4 zy#artE`Ac*%sAjEpg3-=2A$ZRiuw-aut$9^3iL~OPxsaXu1b$l5Eg<8p>(uwZ<|8r zhn@~uIv7F(CG1D@EOZvKKXF1w^mts-F`ud-YUaid(5ftXh(0E!H81TY;rc%JSP94E z4TXHaT$pqi4eqjFLFTlTkk4;r+wH>zb8M~B!wj?5Mcw=o5(E^hGydv*?Am58HqD-8 zK}D+E_VHRRBd7UFhThvW-X24{^D&ep`6po(fH@8NUn04|Ar?;((lKEzJ|YWYN!$W-_P^mjQW+poJfdXJfr z^;NeOx_kiJ=5fuh2+G^UPl)t#YDJtGl3S?TGYSda~u6!_Pe!Ie52`gQg1*T3TW;HD2578 z!KYg8R$ZJF;s-yKn!~hu6|bLqt+*B0elH*UWqdbOO$A(nguKTi;oo*jE=}0c)+)Mz zrMlzreN$hVY5C)<2j$&vnHiloE)s;rY(!*ypl!HxfKt>!5iPL*0ZiiK z@EVuqy+t649A48zpAytar>$CMCZ@ERf9;;^u^qt`!&`uvVRy@`08Mk>Y~&%h!3($R z)(<8fCtE4RmY5QRs03a!d4>_#lk&egdIY6>+3$RsEp?e#4U|I-*aj7cL|T|DiXc!eheV(}}#_+pjm$71zT zRs@;=G~qBQRFB5i#LS~Zb{)_wO_mS)JqFTT2jtXQ;q)G11bG4Z^Q_0hGDg%z6kbz6 z%vls&bpoydWi8lyzc)2&^9O3&`{nC{TG)9=CAs}X9-ud#KcM(cl@04VtJf^phTXtU z6}9GiNDV5{@E9%0f6hOj_hL$&O_yDr;anvdc9_S8*LvGt2!QZ>-X<`Ra5&0~1;f~@ zA_cqIf?;R6;5dZ<4`KxFmRe`OZ8z5~)uCd-=of&|*FI0>u_StL$K-AR)Rwz4FZ%do z8yg%3?Go_+9*uFO{Au3X?@4!z5b8t_v}sSVHup#iTae+^$<Vb5VVy3WH|BOoJWKEpb!Sp6++ zN}hRq^^~)k%=L1rkiqk8<$}9jY@#?DV@3N5MoBX(DJ;rp`OgQXMSXlBVZK$1=WNtA zVQFS*>^j;qoZ<(V7GWw+H85I6qA#@Ne^wj6M@xk%pW*)Krbt$2<5$D#XYsB^p`7+wbk~)iS{Y3%zS=BvCOa30@JCwz7ZRcA=c8T zn$)J3$U3?T_7D-7x4Bdwnycmcj(NKsTydz~{MKK@#U7~{8%`yeOMY3V^dmf>x{x|# zdB+uN>9C!f%uQCk_za`DOFyzW6sZE25KiafcvRNMdh+Ve(3^a$L%h|4w)?@2ro%33 zH!c<%xsq1SIe3lE7kQVp2l>UIRFo}%u;M_t99>{DPmze{n){5EsQMgIb$pR;x2C0~ z^+giv@i!j!D~?<{jOo+ws(Bbh_>R2pULH|omgl%pi+S+kMx(rzre*)qDJbd){V7*^ zVnDGsQ>1a4yOnz}jfwaW!Jk;ut|<>GVxHJ-?Jwap%rGmEni(GVGcI~_M-kduXcw2plm)y-3iFl`%i(?_-a ziZ_5D{9to*fbiyg$g=XF&4r%~()Qkok}mSBR`R*LoE0-W?Dcv5 zk=kt9^_y10?oA2r1h25_iP`((=-|Oa35gZQ{!_iuyw>=8^#uLOn&PM0esH?tyJGF$ z^}?Mz9NbkLb$U79Ryd6H<(h^1?Z>QP03zqz_-mhDcX`aYKz2qi2;?ouosYmKn?`uM zrK=FyizA}KNZ};y;_Hf6gin2Nmr|eG9@d1W(n-;6{*wQ4F{!l>mVWC3VhyZ7NkCs0 znP~_psc&-_roY49XmRS4_A`dF33hJ1%D*y^iOIQK{a)|N#5O~q93|}g=Cwd-R(6}< zAemP_Tv?;`S;xaXOW((-|6D{+qa&ed6}a$Bd^s|2-bKtLSCm|A&iUjty}xv&Y2)|= zoh@QlKfI+bI?wH6JP<7F5Emh?oqWJ7PQ>$}(R85f!CDjF-HQGSI=|;^SNjwe+nKyF zMH97st+Zv~4CD5OAD?yQjtu9{J}9CIcpfz*pxCTjpxt`dBDtO;f&Q`P^Vx55I_mB8 z^rf>OId<>&VRK-zz3ZzpuRPO*SslgHFU3>=^hTU(@J+Kh&wwpNxP83>>t< z`iGY)y0i*SOJQG_9ye+%=jXOQNet9m0tKbWXwK@j@!di=7IzuD?)N~b1@kaBTkr-T z!z_O~Pj2*zqz=i6IY-5i`GkRGk}-!*GD!}3UzXuMN~7<4$W-=i%_Ku)r#-_njzrBM ziK0>Tpob#b?9Nk#qZ%FD)#(B~yU{Oju0k$Ed;#zScrvo5Cd1gi zbvO-2)F@wTN<}@6Boloza*9&iN9IRlD-FB zZ^%U_%>FU#B1WW@mZ_#`jA!U{Cfk?XaQ%)<0>fej$h2@{5|0R?!b}ThK1vUkNkY0w3ehTPv$kPng{1GLnW)Z{HOW4?`p7{kIk=&Mmg=5uhD2++2AUBj z`eBf!APwln>xurpakw}CQI`&Fn=rgN?lQrf5FRT+S$@65=LaBq+%n+`WgWB;AwD!; zvKkEKNxf|NH0O7|&L|?|`}Sx9bG}Z=U5vaQrIlTrP@`#Ka(|_EaB~<=-Iyky!r^$x z{#m75+Hx!s#5)KVZ6C+dbg%VLWnl68A(>%2 zO=p*>a)#896sqF6LVa^o!BhNaebj69O%UIy%ZXd(^Jg+AYYC`6>v#p#+(jN!Fq zlPyIiFQy)DMzDMx`;%Kd7#F{DQ%Fm-Iatuh8pKi{0!-4pkrmE$^yfKlFh7^@JVP$^oWXkAiCC2Gwoktq``m8G3G3jc7 zM3sCF${F))c`}(jTEkzy!#fwg4)(e%CVG0$*;{!rCRk(v+NG{T<68%>l`21v!3~Xb z$_8_3CK>Dxw60R}&gL>_q{?8Ut38S5Z8J1bEm!ILS@UmH9dpoXYE*`~z8Rt+??6CH1bnQu!`@PKSzXhWWj7VY;a~ zr5HIsj@$t>Sy&Fu=@iw|n;2C7*7i8G^6{6!YAlV6h~`Z0f^L~*ye(zoWVXdX6V^RA zsNP5)_VA6rEGbq;!p^R&$TMK_01?rYQJLO+9-vfv)A7|F#)1KcSpQ)^BHNEA5Mn=f0q_E)FZ8@8EC-g4#ZZe zai)FFO8oP4K1{avp4M?DUc)A%lrYU32Qwenlx#ulM$hnvdpl^OZ<#mtQwbve5XkMP zQW}os{mjs=!a=%nEcY|5Mct&fM;S~mf%0PF4c(z8Lv};gLfrUTUr45?YOj~SPiDqd zvQ3s?Ws}V7RZBkn(y;rg?+C!gH%*N1@O)MqAC|2--OINmO^w*MJ$xB@L@oQDY8ja}|NF$+t_klI4-xZit~#+r z)nmiW*)6q|SG9a%ObILj(P6amL6450tj;!VV@z48%0`4B4@OQjXk|Si;=}X~2r#y$ z1Mabq>3kwsZUf86f1p<#l=?ez5^=nrRFVeWtt)C;wFE;$)w4cHb*o4z@vuLLb3ceX zp*41u^d#-1N~I-+L(7x`?$EVm&dA;I(z40ZQ1Poa6(#HCh77Km$7*-tvnl2ClAMQc zHocpSmK`*dO%dg|J5av7#fnN7n*Dx1YH#WOn0b5BQ5MdW7&Yq&bcn@t!qwtawRpUk z^6Qm~w7p88KLxM%WP1m0o1ARCjW|Y<+M)u2=^n3H$3zSeHX3=^$kL`F3xs9W_(Q9<-PX^?(FR0Kf zG%4Bnx7C?px+Atw4+XHXyNPbdxbXiROWa&srWoF(Q$sp&zAG*nh#j8h!kD(J?@uHsnS zbZ>UOT78pypjPCWZK!XwwO=TTwf{?r5IlDv{muJ!jtAF~)UB5Iw{4*t8CP!uVu@iP zGj+;04E^fuIlBJv?T0#rGKGJq#h;k>gBJkZL}>L#5^P;Zz+*QqC&Rv5nYlvHND*5s zR~bxnE9ti+Wj;&5rnZl_Nk`H-r}1niAD1>miJWOK{f@OKY56$p9w5p`LF+@j)&Df% zOBQ*#(iU{R4D;C=@*`X70NP8bUIf_9)aLp00`x+4Hop! zZqQ#_>%Ko|G&zCtTb#nu+$;Qw+O-4QS+@S{y%P_ekFsFL<8tc_o^r+gaXXpQ1t?&nlXP%OP}kTP zF_cP(ljE{A;iQ!K^_}_kX!cHlWqlS#Y9Zv?^`Z!ZqT}?nG(Lrm#S$7s1;b6n)zw(k z1Nv;$v?zkk0`JyoGi-2J->awQ|Re?~S?`pjK56Lp%4^DSvW& z)vo2y8(BHE)&A7~*D};7S&jBKtQOfgN?8WvtOw^u#mvj*4+*>4V7#&7))|`2(0UyU z=-{v0+0@H8w7~o;k@waCohyfB@gk>U=u((#7lbO0f5FTTIjz|bUig#(XX?IQ-BD1| zFel%JbF*iL?f7W+C02%j^rUnc$Eu!-ClI#q98wTMMPEmS0-+SXTxuYdNE!%D~TGyhaUN74spY+qo zuzg=PoFOfOiXU`M>(xixj(?oeE&WInQZQ1Ts!_wW)CE;JGhg-&zBfFyY?*j3jf;S~ei0Ai3oPLPHB^%DbWVPc0#eB-p)@QuL> znw?)uXk@ODVu!|REM`lyV}fdoKi+5-wx+}T; z2x#5v;enxGn{ID`tZ$^;hTFjAyw_e%1X4A-p>T5_iCr1jhHj_EMj|EwV{9rsJ0u11V(=!R+Y z>94sC6`v^__6-Qaq!_Ls!#l-_H6FVBxRW=+j@GiC2k@N|O={fUUF206oQiFyL4$L` zW4xhtar``6REwb0&#dV-5WxYb^R(#(D*E7zyic=hyY!*cjL~*Bh7Nag)NE33E2g;* zU*bn8l?zw}%GQ8+!O&+75fN8w0f`Z?TnG~-~41fE+#8Df<>Ez9JX2do>#F? z)99lHQQS#e* ze+5{T>(7+jvpt4Cz+`sFQwk%t#xg>8W3miLY-84HcDu5BdR;|d-$jcgsp{+IaC5mQ zIBiUx48U}E2JV5GlGdCS&fJyHgUZ&B-%)6|i~2dRs9S4Ef~~n8Xy{SgpDS{#H@_1M zRLA&$j+i)U$o3JNbz`69g$QYCVsq%+_JaUNk8Y4m{a71vM@+7ZZCr2L$Z&R^AOzD& zzh-k4b-&){o6Bhv^tLkG9(WOkP~ca$LdWbKeQxITI=1HxE%sZFsF4?lQians<_v=w z@b0ij^YX5!*HhZ!LqXVn2!@&SfP8gpY-1mQCVq{Sy>Bu;Ts^>MJgA(hwMJPKW}FCCkLybf?$VLa|qIXy7C=e4oBKhWgZn6p0OG4RKR0ayQ6 z{XZ>;b@m&U2H*!b1eQ4fvW)X+-J&#oXoU0u(_2~mD!@cL0U$-r$~f^)Y< zW)4g-KTF}YZM69r&{LVC$$}HKW1vGB_20LYYTOghsZfH$hc!@}sUk@=dx&v01Zs(_4=r zA>|l!TL4;4d-h-P*T&*IZUO@~X>3eBKbQtf2d4e1V|L`i)Lu7vy8#djl2BS@lnR<; zr143#sf>|k@3(n^C3g@Usm5;1xQ-!3n0kU{pVKwsnFW|!fqhDA5|F;*5|hWPb2^-k zi&Glqc^?iNTBAYmkvV})?RVZe$ah2@6ErZ?$v?{O1SF|GJZiAO+t%wbWb$csjrI4B znT#xpVgv{FJSe^N6_N47&yO}Ycdib+JhK$@_`2jYdx#T)M^?x!FV`YnQ=(+4mL=UPUcHXrgrnmL$lq{L*%VC2h`$@ZS}-cUuh?U)R@XWT<7y zS>I%^R$!(UG`f>FZ7hCJ4(~G^DLx(lnM)CGTBR?aj;?S zM|^|!EU2FM%7BE{7hLgNZz;<*ji531gRJIp#$`d+8llQzTNxZ$^^DDw&-`PwT!w`l zr8l0MHTs5h+j$X1XgB4QEzTfMQ^=#y=sSJ#HG+7k4Z{ThDguIpZ2$&iHDfiaeUyq3 z_R5{eGqWA^7u@-kDnq_Ch$tUjDt^&v@Omh2DfMvI2-dglh&YW(xu*l4xuI5aou@rk z41e$DT-%t(75Uz*GCWxhtW8Eh_0xc3fzIeKy&b=5sV>j~w?Y25*4DwE{3p=EOvP0F zrywXqay_tzdE^)5ZJH8F&)TkdBy(b?7tB6+VV!gb2{zSTMbyxJzCFD7#h~o@9TFy!xNI~q=VlEnhiv0^lYkNE5g3i#inXd z`@&Dc+`mVq?r>BrgHX}+N%Ss}7_ChbG^b)9(YIsM=p?gPsQntDJRt$XFXh<2Ou z#*W+s&}5U5)iH!r+P(hcu4vw^uo@3&)eW^%VF(g{D*=Cbl$FL(ITEw z-_9^1I?Ht0xM3<^^B}V}hp4F9O)X9Qz%k=iC}dzQurP@JlEWh`zV8gOY0lavdXKF2;O5 zO-wu4d>*_xiUA3D zN#mL77qczvw&vdPqgcoN&}~rGSF6l^x7@f|S9JSHPs5eP%3eLi*7|`R9aUyCyZxJ; zQHug177q{Z7nxCE4CCJm-N z5F-Vh*U4Gpk2*Oy_c>Qw3zD6lbe>T89x~3aCm;_%k#96xvZtjw6UGh9W5E4KFhJm0 zebfsyxN`zHToNXQu-z#ly-d?^+o51Y)-|rp=iD{3x5S$Vj>_bwH-~N2LwSJ?-M<*R7`ua1f>;8r%g8X}(A_w>-M2+zlg&pg1l52U&XW(o=KeY}SZlO=qTC4?iSMI=-m zW{D&YR2l47YzF-<#-|{)FitwLR?Jd@ovLTWVVR(P^6Z{nnu`eA!k$tOkOm;sK=0#C zHPkiqA-T~Q_@X4W0y>l_y14#sqPxIXfduhgK-56~`i zvDH>=J>XF%8N~U!YnoVW`#^H3Fsh0y4hhSr3uloUc&un^4dus390Nu)KWC?QtKaaf zdEn8;XuWYcb$@3mk{b3=n5rw=QdfYAtB_)DeEwf5BE4H>6o861wC^#5!5idGO?=F zMpV6?%2UfEX}`SACzlo<;9x$g*HDiRAE6qdI3BGFfuPQ|RekLN44b8vrup+~ zX&Ui0cj3*m!lp&Pk*yXR%D}Irid}IhM2TyLI}4nP*lUM7%e+;n$ec7)s4Z+VTBnn0 z__8e+v*DJ5&SHJ7AjOOxEhU1Di$)*Kd67mn1IpTEA=1<3YfWR8=PCnB1@h-sN|&@4 zl;rE29cC3u;)W{7D>iOME*8mpI*s*C@ z&+s`F6Z#4_Wx=!(@}91l!JSl+zJ&ZSr>AsOwL0Q(JVg1-pYi@|C$H8$Na!q>1mcy813+H{Y?{=eV(SgL8qU?XHyRb$ZZf1ZGx zJX|&?`*bH9V_wyMt?&F29KbDKWFqt!hX1wqxV<7-Ph$t zjCJ?>vrmPU%jG+kQoo1wL&jsOH-E>i)YP>{|>{YSvmeYicZ5%;k$wM^`5^<)a%~tPLE8!oWIh~6LknYKhQyp zM-e{VkAOP}kC{h=c)im2efxa^$|U17?K%cAZ*C&xbuLw;QfqS1@yFXdZ`&Mo*w<-| z%ZHzp=wiSQgTi7&$U2m_qmXfGE5XUG4tik$LV@ZVNS>Ip7l8}j1N_TqXgBVZYT0QL_jFaKmZ))GQ+ zGZA3sl$0R2FA6Hz8j{r;u_lu>J%`1I<9Vkmj@mC=L6CX4;sgpOYvkgq@0NVTIBL=O zVu@M+AdA~Gy+iy&p24-0zHZ#kyH4NC619{(w@9$DOh1isB-lQ>PAvda_i`lp`XaB7 z#Ju0v#Z{0{Sr2Y!L=ybKMOP9X@dj!?1qkLIxm6>s1j)B+%&-YgnZR1901w1x-*YD? z-pB8!{nDBw6?Qb`<*l)B&wS745vmf88wZHi>+y`IVnt=Y;t@-I=7{h41qU95iM#(- z=LG`v@~NGPK`5Xy_*9%(30)&ptRw>{p}D{ z!k)56d}}3`g<~lKB%IPcZx*BH+M6O0pA*tGL2zhACHJg?NTd9K=OT{)(}DB05=Qhi zodfaaipZZ7TR<&xbqhZ?lp+^{AYc&V3rgN2@>E`5D8LmMh2V+;U0re?5nu#7Vz&E~ zdy5SGWVD2t7Luw&cQgAw;)o{0SZ@>{z+9$FR-#4$n(X*HFBQrtg2JIRt(h!O#+|@f zgQzkuST%2j(&Ot|1#&*vW%@?*fK~p9`xVdWOpEY!?T5c-I<5P^+74j>Jp%oPTx{aZ z6osU&MieLMxOXBuy=CqtrW6mTI*Ls0Tng%>o4Tj$m-ICya~5k;V2&2 zJB4q@6Y&I}nlZGB;rDA#n_(%N99gajVsZpj;4ym%L0ZSnA0>Ssb)-eRQ(^Bjo0BkZ zNj18>Z#bAWWT+Pev`hEA4J(f<0+9&t~fBw)udqI!yAx=k;Fy z*O_Y_v0CGdN^s>n*kYZMpXNyQ0hd1n)R6pgKH_qXX2MkQ0ne>j`kc>*R+NZq%+YW8 zNo>)SJXq5kSri91Wp>5$3&L-`+O8eqz&q)M*|JHEQ@VqkKZ)$dLs04EKdy|a9Ej99 zTNFX?59^CsLVbnWs3+5{QeKdbuqpn#jv!|HJ>-w!j6=tP@(ALPI zht-w>x-#0|3(qI(`~Y4U$?nan=7ZmFLV8lZ7+{_C_!aR1EWy?LG8Ch|sMDiQ{XATw zlwF_kCDn38T79axRR3@Uj@CCrIP#wQK6*D1HqSAllFIp)LvyQ?P*#J z4nZhEy1*bxM`gf^(>#_kC)JqEwqH;aBO+(sn3VW@Zlw1eqDW2b4L7QKP%Ws^LMMoI zGR5Wot=klTA7rbZR$d!*I zmm%?3g1cgnE`iaUlO93)?BQ}jP9bHd?b|~C69SoXbK9BW4S$p6ZQG$Dwd7QWbB!H1 zqoh(|_Os0oM1xh-H5~c1u$2}(Wl`qs_m6zWBYOnn!}C5lK-;#DDth*-C7K2@JEj%I zrVNkVZD67Caz#rI9up*^Bw}A3J&Y>trHOti!Q}fZRkK)lPIpidm>n>y?D!sr!^U2$F8~VDY$fXhEK7X z%7xH=at{$qO*)HsAkWJM5aYR}d+hv&&2pJ}caP0VH1DZS4|uXya=ATL6k}na=S=iQ z0;4Tn!w_juDnho9)B(RwwBs4X84ek+6*PJ{5cJ!ZSp*f%lQ~O9f^RA?a=+ zXW$Z$Y~0O15Z=<@fk8np`@Q@x^U8gn-`$=Y`!O%NVtCz@V|biDQ1iSrasIXU=YZa^ zHc5QvrVn5bOIF0cYKJ3+jO^<^B_$RA4_?|@s@Q^d=a_rQ52U?G0y$mX{~dPk{WC*T z59*DMrW~<9I>j9Y!=kRA`Yg_Pd%q1jDd{%?3rVR`yWaKsZpIr^*%hJd0BIH6{$y~Q z7x|K^CkyqY0?${yI(taZQ)AjI9@GCv`Dph+qbrApV~3HICCCvPeo|wbq^;T=FLwT^ zAY$=2$oM%h=*!jUJu@o;HY_(hBu$t*Glrty>TcQsj(uJHvV&~2`gqI#4TJUkuzPt9gK8o)1OGcVa{AkGZWJlK++w|c$VBn+;n==Y?77W08% zfz6Ed1qvRZgTAmbayy=}Tq*`qwRWk2cOnd34nQ@?Wck7+*MSR3C>J31KZ!4Rra4*- ztPYMYL*vJQzV#9vuvtSrtBR=2WmE#NpimTT4CSwao=>3jh3unTcy}jTTwO&vHB3}A z!(I}kyYQIsWJ};w{M&E6dYeE%+kaN43`-!mS?wvKq_x{$O)Qe*Pu0`s zZ!?Ij=RVPH-j1WJ?)F|}sM)7Bma7q_VQ9Uwv?7Sq@{0*wj1{C)uKB{bqFM;&3 zrz;%2n-PLyiqE?y z48q-<>l+nT`&~deHWx6uuW`PTDI#I=8gL6iz9M*E^s~Y)Mnp?78?S#ZU)^{Xqa6I`8l}?!D?PnWHxUCbnoP))`ZKfTl->31#(rxpL=QEqy%S zEsgb;YqZ1aDF7SdZ|hZID@*LBGbj0G19CM1-mfu&5@=Tts`skf>q4wWFLau-x!FVm z!{Rypl}%73T@j}*5YNbEB>p#S>CAkgno;Cnl;JOo{4RJPRWs&tk3m%ROF|2q>IWU` zQMnH`I_-K14nK2L@|O%0!xvZGa38&$|I{_TDe_h6$`~2-7({uMg_;lW_Xz5)WMem; z*iwRuV#ds~^@+Mk=1!e$!@CWtZC@R0&fq~|xyf>oeEAm);)w1CoD6O>aiO!m2R#Km zoE64^>HH5m`jP2qTSAZuq&@|l$E&O51LkOa@UKr#OVl29n?-kJw{be$;K`u!s@?+- zA@BOAOxvx6JwUuav~G%*Bwi5M!pr=V(OX}&@Y@x%_`3Wu8oQb0DgZMb7+C!6(N+|A+B+46T_)%9hmEB)a8Yrn)k7`FRaU^hq=TO+zy)< zxpMx8!j29N`K?$ZnrO?_pK~`||I57A_cMyzrHJD~fva7lsf^#`JL#a*@I0fU#|-d( z{*8PSM+Lc=;e%DOG+~?$Wg?3HRMriMMBEKk7<6{I9i;3q3Yu=d82lYkPE^voG}#)!<19{9;lUaPGlL2(W$ zLS0&@lQL7|`KF}3Zcrq)^w-CyCsQujz8YxZA?CWm+$x=>zN98(|dCJs$LRbr7EpSnF1(iAgo-iB1x&)#|8EpvZjcwl@=i# z=~}BbN|FL8yc&aqHe80)Fd^l#vD~?>7_>*vxjE%|!ZPvaG^|m?FD5g0pe6%yhK9O^D_+SbNj>N|L&G>jDmL{7r++MV>}pD zW5iQmcdGtn8x+49ZarB6iaa*XzK_OL9#O^>Rw$no zFJXualisd0Su4mdgDm&h4-i68T zYr{<5(_+?BkC?Wu{D_@p)eq&r(@rzoipVipk0I@S=t1TW3KAgi($89}D5*{Cf$5Aw zEDvNMI>N0Rzq1-wx_>f$@^DyVp_WUp@b}@em=&ZiDRzccyUl4JQ?cnjEMso)q7|9@ ztg0}4+(iV5(-CQ!n=ed{*ZrasC!e|@K7g+_^}D@0Ipi7Q{bjw)rtt*P+C;Knx;g*t zFwk$=?rto9Yj?5+_NR!T9U~iFOomXc2{FHg4?py5`Mvlf7oRJOq|sZ+TYS+ zUlk+l4$1`ob_D)R5Q@+XjxH4z6#N;@V~pb(?26&p`X`ZdWL&KpD!GyRKK%!0L8nDT zt#F-1r(Ht&J%cD{K9a3U$xe@Wuv45!3{pwDWq$uMVpw5@{t74mc%|*&>+E77&e0}A zZ|*C9uL1o{RsV!O{z8jFrR~o5iY~@w(t1S?Jj;sy+#DYvgP`ee^u7+L(s~t{`|CKa zMp3t{Xb$`SS?`*HO+p$Q0r2&_sERe|18Yz zlatGsvC0M(9k<%`vm=x$n1U{sT}ibr>&&N_{DvyAs?VF_Y}PZRc@MARjNv@Jv<>Ma z|G^aJSRQzO|6VYn^$JPU16A)rg;puL3xtT*SNQ(;1(9odA-bQ2H-}lH>`q~07a@%u zF9NFOT6I3%ir|(>D^h5?zfDCr)x94+`*Qwe^9@U^5s(~ilMnsx5AL7;LfA&6qC(`p zsJ^9owgR>4>hx(n1Y!aFPs~*~)Acy6aOJcfQhq*qyMO6|2gHWtS4|*~t)R_N%;o>+ zgAuWad3%=;k>rL2ReRxcvF~iLcff!Y+}zcU%DU{pp9Xht_P>3WmZ|*I&s`hr!V;$> zAbI++_>r)7oZ$4wstXYIh(5Drp#Bnnt!?~)0uwVP{2W;bJti0?zvmANA z!4QOpnAM$KBJeg>wca8t`VzwYvwR;3_`6Y(wr1OiY_MRFFg|?4|LGl*&yeKDa4u4~Je~-LoA^1wIljY>w%QwOajX);5_5hG<)k3?M zl*jnyJ0WNp4dD!y?0QhkCcOX;%U`??+=@&m+&iVbWitv*>W7OAE4~#ORdrq|GMG&U z&l`_v!>HK)w)T2nPKv9##8!x>)r&qJCL_}^$Es{3IWD zln`-#dfSi`qCtNnn^lE&gHZoI2z&eN z26|`7pYm2vs9Y`aLBDkc$FBr_OLW+Nw%(lBWv3hA7l(_fC%Auu6-bw*)_6HEFz|J1 zjmy};>^d2je(@g@rq_M?`_@a15Qwb%^kuf%AYdYg&l2c$NoZPj^&81ljCeibUz$~6Oe|u-3r58k`IbMyLcHxIU4^PlfWZ$DWTy^q1II6I z?p(Ria*L+u%ZPs*Y)$IQ>Go`&T(dXPbqhrD6khOxXh=A|TI^q^pb%ebI_!3yR2IQ< zpWQvA>6AK(8WqJ^b~};Zvp;u{JZGtPsfPY-?Ni9riRl-_|MfIxP7jxBIlSOf?Y>mcqjbv zx*KAaqQt4>^?n!OlC`}fehRHV+Wu{s@6*)@Z7{lW_MCk__-fHKTg$sw|0A{}%Riy? zbMFr#vEu>+o)lDPM>mlr&dvL4UhBgtCqEi-R3!?8o`qQyD7_Qa*IPgW%eU3i(Er zcs+^#j@AQ1ezUPnQ{xLFQZGm#MNbnbn;0{|Wq;o7dq(+%c28)D<;T_N$-we*VJ^a z@kT>iqg|Iii~XHvYepO6Bh2<f-HI9yQv}*1?VOmSLNI^hahXz|@-{FW$wz`_#b!C?A7Kq$NEXN+74qU@@l-{86l`z5{~A5H37C=Jt%q+#9K(v(nUyLJs+4? zBvZ`e99XN1Xz7%y!3QNp(yezoqY46p{6I4&L?E6`4Z2)`r7TStt#%kI|9dvM?LyN! z3)zLSMmu-fOJFKp@&f&Z9Qc}lfiEc4q+f5~HF-}6()+rX48_1cL$Ab0EO8-l6tpTq zm>#zuP^TKlXkA8h#V`{hSr-8rnXY32~6BvvZc-z)Pf4j1;OoNjCU$rpxA zojY7z5Z^n&v)Y$GJWVjeAKG1p@EJ)uoQEtqe*0neq8R^YB>7dW**Qqx+G_2Z+PVn- z-9ARih*N#d$3SQr>_BzTueNn%$@8Px}G{Ry( z;xz5Jj`ZB%pN7{T7fjYoH+}COd-~>?a$=G2^pE4^Gzs(y^-21#hoepSlasJ@*#w99 zLO5BlzmLy$|IZSOAF=$FU%kK{o#gbmf(c#cEaF11bF>WhffJE=+7q=-^AjLQp9G%@ z2LVWG%-OvAa`vHo*x5aL{!0Iw_)%AvpNS>|*kZxsHzE zomXSOc-_KI)=EHt+SU=j)6ehYajbr{iM!+4os;xO)2-LU4Y(tY4JW-E&k3)}APN3V zW46a|>ZMF3LMgkF{2rAi0sAYF>mqy|EXQkC9Y z2vwv62)%{CUE%xo-e-?}&lzXjUpGG->RQQ~YtFge@;uM`E+PU=>%hNbmq(&;-tnSm zB%V zxPph=*ryG18+f)30l-1~{@ghs0WFC)XGpmYlWDqQDwFb;MAlDT;55G}>zP$>5mht? ztlE>#I}~L?eFr}u|0#~y-m;v8FKT>j$R*2pFUqoty;r_ArfEg;-6yzfNp`DEHJr{D z8ba)^QZpqoO6BCymV3276&_D()mVgzB(Sl~S8Tr*3>Q%ak&v*Q_^e1cb^i#uGF(7c zK<2hkXeQmu$678b(V4_ot3x}LqE4pVNRBG|cR7p2H8n>R+_o9h%vjpy zYy4n&U6fx_bs?Yk{*m}BX2RZImn8fU$i#oXd76Szw+O&?B_q8V{(8RQ!%}5PTUsA1X~xp2WU9!ejC4G#%O~ z3BaZ>z|w-SW|MfgpD$#`*jW^l2*up8H)W9ZVwQgWKD;#gr3+FAn&28i@mJgjZO|9>Kf@X9A4*Sj&|4b*-4U z#9XeN70M&r=PshNKIuM#^p&)g$p_^6#J^<0$cGL&iS6iJL0L(P4ka+J+V}4D{Yff$ z(?ilvqot8yD|n*{JToDZR_=Q|Svb$bDTr(YMmbbDmFz1u?r-~g-?=|dW9+vG4jV`UIikKEyb7xCoEy&PtT)v&}+Ol)C z?SEO%jGul573amHAUz*f(^*c5gY1?F5iK-xne6q-tayJVtm4IsZ8<3#(#QSNo{Lzd z^FCc#I++m;E?Bpu39nR|i7)uoU$=BZ2A7;H;`dW$-AavY>j^o5!wH8@#CG4-c=$UM zkmmO{ScOT_&}bsc6jm5%3(29$xS&INH$Yv#?s_Yi%B`nmo3YJnxvN_0*u4PANeUH$b;=!zUcN)3 z3oC;Dm(hr#G^5P&Fq7p1l+kk;ejd$y`1jv;qVi&jc>BB2b~nL;GY`#c)P&&uRqFBF zlbnJ%>AXpdi!(3mvupCqm(%jAw-|kF^ZZFcY7dhio)ul4e-5O5`rws$P6G#ABbNh5 z88xv$!gmtbk&|JbJ?w2OuNL{K2JjeXM`&7?1j+COP-%Ht%L;!8FZyt1xf^&7QXePd zvB8NNVnHX;vHj)f6w?|7!&X$e5>u~KLH15-8zm_Oh=%eY`6_In!$*@vhxN@Z-2Bi zm;Y|j1=YAC8d1L84mF#E)AA6CvP3#>zAJq{91|~tcypvr^40-2jMn3v5+?4UzBRX{ zC(lruJnJ1f&6zRDrP*oKRJZf#X=(+SFRUAin)U9I&|OX+n9n#eO7*3ZWX zl)`vN+lQ1bV8n@SJ^G<1JeaI%Uq)%o8A}m*|EcQ8+r2W&r8Rfu=ADJboYiiQ{PObP z*=lwK-=cS;yxy3S?azt;uQB{Seesqnzx__RLLSTR_#aRM(}iJ&xf?z79my z9hvm~$& zPGYXzr>Qre4>;IaMt+pTgK)aqmJJBe3_ewXE$pZ{WDWb*&2V?Ds1Ruhy-qx85~R@c zA*$K^Y)>EpMfI|d9np}?GkSnqtF(g+6*HD~h?;Mu;0&;5%FTNVh0sEXaAX?k(OJ;ygBmUJN?a=JuZ=}H+O8t5_lA>)SAmC!cop76SwlLOORmX3-On>Q{= zjpoM8va0NlNglaziBuU_n1zj#@W?C;-)z^A^4*cAIjip7Y@L+HgVdFhn}=+! z5jg3$>!#b1N9i6nc?WB-`h}hFT-+rik8~^N8xr;p-7QAGIDu1Eq-{^K|5QUbIzEli z(=pAknG+#R8C%d-WH_n8_n6bM-j_ZJ!ag#A*8%y%4Si)D)_nXxy-XKT%SesL-iWRny2EzVZ2*s6GVj`7=1 zPQqYFd6vo^{2X|xWULNFmK(zY;M~(*D@!pjohVJYHeEAxBrgzS2T1%A&|_}bVoe(k z$!whXj-Ka%BM^k252-g%wk+cPrU*)8jaDW<6{}U{CwNi4ZOakdNl(BdS3z_vx%-&= zR53Xb-!@giHuzY4dn|T9XO@jWCnFS+4!C}EQe*y4w8abYyl0Fa1peKggOWoqr(0Q^ zW{|1vjWqrB1A)}61SxA$R<|gu?f#SUKG19N!yj_M%luHh&Rd8G98sdcnEGfTjYBz@ zT&EREr_T-_0t(^Q9CcIzwF%D)%S#G$ZuJVj_Rt!7ve!@Kto2Fw zXuEKxt!wl*Ew&(%iPOR<7jt~lC-&;awpN?(*M#-r^5&Y17w@h1*>eFSAiLk&gbZ*~ z+y5rkFlz^G-OH@ZIA^eH8(DPVr0 zG)Yw5|01JiJCr%_7kqvo{eIyNEW5q!;CWJ|iCdLq%cAg=0j|m9OCsCB%l0&kvvO(l z*O$$_)zu(-3`H{2!>B+o!Adm6-SgESQanr8Y!gazot3>^z#J2VHc&F#=bKjRvkNq& z+!{s+M%^JIVNM2Xk8f^NX3BBCe`ST6c&jVk@d|STb^veA&~4ez#k|fiBO&N3{Z zli&FOk^VV&8jM{QAIj_DNIj*Ifv^AUY_NCM)0++20>48$Le5wFGion*31iucf1+sW z3l#lCwv*$1@?VE+_4Gq!>>kxjdypDJsldS*({9TV6qa`^p~SKHnmzQM<@Ak`Dq^Fq zYB94{KSD4ytjDz5H7gz+J;R(8BnC+7Rq0h38_wp|lXO!>R?gr!#}i0u-q(Xkl)R$Y zxckPXWxj)$aUdN#_i|B|^G+HzN`YTPhi*9ezs$@HOL{1h6!RRu6yB2@C*2oefk%V^1SF} zSp~!^lG1gnc?5~g?g$&I2}tdDgim8~ncnxMwN7tC$Br+X8&Gp`9LWf5(6nUQGklUr zp}sBpNwFBE%U4RVt(+;pDg*eqy+ax<6}Q^=P;7YGCwAEULL#GIdMzJ)(7x8cw^oRf zS(UG<-&w>Q(+$3jHbYprJNv9cuoTnTzqdvh=o4b<5k1XpMMQL3p2fk9&Y?87q^?zF z)hbVY`!tb*%YnSQyn2c8tzygYw1)^wKDubHj`4@z#i2Ud9n+uV>{ZyjwP}xWSNW6p z5xfvRA|nB!qG> z)8`O=@1!aVTqU%#lBR27fbpM@NqS*(A&oRIL%jsc1Md_r^r>(^Z#zby)B)&CEL+h0TL27dLu^izA$n6d5X1XVgoK6HDYy*&(D`n;Li%>l z=i9@giW(x9lCKWUL!l+&`@0hnmmy#p`)2h{slRzn)L)KNy3wi=l0`?vxjfX<=wDm z##tVwI5O|}n)PHRL5uE~qe|_WkJx;DU627Vza`Lk{dVm{|73FaD`%9-<-5z~84t9s z0u1$Z&0)P(peghsGT*g}U(|ZCiM4~%{!z=*+>Gu@Q)B;w09ZrruV&q&JO>Ga7!pAy z7YaETl{@4fD$7b@!ji}v_QGGNmpz%)^8|Bc*ef9Ayt^QY&d(C{l!ZvIislMBW@hoa zM*+CgXBx?X78<@{FNhC-!q6Q{0JUH+EY)@GfmrdKFtG$L2VTE<+e

Ef;K9`vp&k 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 z z7dQL9aAu01)PFq;E_Xe#N7*3)O+Cxm2Wk4OrDTH9*MlbrXR`4UC9Om~NZR;H=T|Rd+UMq?^Uz1NT;Xb0ivxn_!<&26E)0J?POf9F+ zeWcG?Q=@EV{lY6!vGfP$c0Mu9W+_rZJ(ZPJ+198QbiGL+5en}6a=@B2U9`_n=-Tk| zBvY?9DGk{p{5xUm%#_e|TcYvKtwG89$xX)LOvH<)Uwef$bH+CvhyF7(0Q)3O_NO?e zutyNfa1*Rhujcc@8ET|`=~lrY>ge+X!;J@a&PIn4Sj!%_WPcptfO;8PW9wkFu@YPU zGGT0EI$xeRx+khz!AA}5f>L0a&!G5<2UN5z$j1{vY4TR((e3L&G zna}WzgFM>N8R{eVfy?$JMth}k*^(2PA6_S!=#Bv130uXSnwj>4y52S0s(9v|h}10^ zRyRb^+XB3vk<=$Q4PE{^RlI%ENW0B9O-SC&gyWx%#(nsU5)V3iThg&sgx^Z@Q73YR?*Myv){?<<;>nBPTZ<~ zPQf)K!{Ywh^4i)k|3qNqP8mzi#_Bg&!)X3+f-xCpuDLE0P1g?BVHcA(Q`Gz3XtO-9 z@s>m;yJAEuC*W>go?@S|7U&!jk@ky04`5yPv-krehhC z)B$9a0Y{}GN#fsL#-2Q@*1@Kw@&H`b4hKNM&7spv<%oW#Bus`lsGTrR8&WTwurRRt z!qklo7~haEM<3)C?fFVmdyr^~rX3NilHy^GS@NeJ+FJXG5?>7=&0$il+}oObMZNb$ z!L^z{%ltwOHC?wZ)f)WZ&F;X zHmzaNSb*`(JgejgS<<7VZ(R89xX+9qzQ<`L~diZ5h z

  • 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 literal 0 HcmV?d00001 diff --git a/interfaces/kits/js/@ohos.security.certManager.d.ts b/interfaces/kits/js/@ohos.security.certManager.d.ts index f7127bd..dc80ab8 100644 --- a/interfaces/kits/js/@ohos.security.certManager.d.ts +++ b/interfaces/kits/js/@ohos.security.certManager.d.ts @@ -27,6 +27,7 @@ declare namespace certManager { * @since 9 * @syscap SystemCapability.Security.CertManager * @param context Indicates the context of the calling interface application. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ function getSystemTrustedCertificateList(context: CMContext, callback: AsyncCallback) : void; function getSystemTrustedCertificateList(context: CMContext) : Promise; @@ -37,6 +38,7 @@ declare namespace certManager { * @syscap SystemCapability.Security.CertManager * @param context Indicates the context of the calling interface application. * @param certUri Indicates the certificate's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ function getSystemTrustedCertificate(context: CMContext, certUri: string, callback: AsyncCallback) : void; function getSystemTrustedCertificate(context: CMContext, certUri: string) : Promise; @@ -45,10 +47,12 @@ declare namespace certManager { * Set the status of root certificates. * @since 9 * @syscap SystemCapability.Security.CertManager + * @param context Indicates the context of the calling interface application. * @param certUri Indicates the certificate's name. * @param store Indicates the type of certificate. - * @param context Indicates the context of the calling interface application. * @param status Indicates the status of certificate to be set. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ function setCertificateStatus(context: CMContext, certUri: string, store: number, status: boolean, callback: AsyncCallback) : void; function setCertificateStatus(context: CMContext, certUri: string, store: number, status: boolean) : Promise; @@ -57,255 +61,264 @@ declare namespace certManager { * Install the user root certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param certificate Indicates the certificate file. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function installUserTrustedCertificate(context: CMContext, certificate: CMBlob, callback: AsyncCallback) : void; - function installUserTrustedCertificate(context: CMContext, certificate: CMBlob,) : Promise; + function installUserTrustedCertificate(certificate: CertBlob, callback: AsyncCallback) : void; + function installUserTrustedCertificate(certificate: CertBlob,) : Promise; /** * Uninstall all user root certificates. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function uninstallAllUserTrustedCertificate(context: CMContext, callback: AsyncCallback) : void; - function uninstallAllUserTrustedCertificate(context: CMContext) : Promise; + function uninstallAllUserTrustedCertificate(callback: AsyncCallback) : void; + function uninstallAllUserTrustedCertificate() : Promise; /** * Uninstall the specified user root certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param certUri Indicates the certificate's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function uninstallUserTrustedCertificate(context: CMContext, certUri: string, callback: AsyncCallback) : void; - function uninstallUserTrustedCertificate(context: CMContext, certUri: string) : Promise; + function uninstallUserTrustedCertificate(certUri: string, callback: AsyncCallback) : void; + function uninstallUserTrustedCertificate(certUri: string) : Promise; /** * Get a list of user root certificates. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function getUserTrustedCertificateList(context: CMContext, callback: AsyncCallback) : void; - function getUserTrustedCertificateList(context: CMContext) : Promise; + function getUserTrustedCertificateList(callback: AsyncCallback) : void; + function getUserTrustedCertificateList() : Promise; /** * Get the detail of user root certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param certUri Indicates the certificate's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function getUserTrustedCertificate(context: CMContext, certUri: string, callback: AsyncCallback) : void; - function getUserTrustedCertificate(context: CMContext, certUri: string) : Promise; + function getUserTrustedCertificate(certUri: string, callback: AsyncCallback) : void; + function getUserTrustedCertificate(certUri: string) : Promise; /** * Install normal application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keystore Indicates the keystore file with key pair and certificate. * @param keystorePwd Indicates the password of keystore file. * @param certAlias Indicates the certificate name inputted by the user. - * @param keyProperties Indicates the properties of keys in keystore file. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function installAppCertificate(context: CMContext, keystore: CMBlob, keystorePwd: string, certAlias: string, keyProperties: CMKeyProperties, callback: AsyncCallback) : void; - function installAppCertificate(context: CMContext, keystore: CMBlob, keystorePwd: string, certAlias: string, keyProperties: CMKeyProperties) : Promise; + function installAppCertificate(keystore: Uint8Array, keystorePwd: string, certAlias: string, callback: AsyncCallback) : void; + function installAppCertificate(keystore: Uint8Array, keystorePwd: string, certAlias: string) : Promise; /** * Install private application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keystore Indicates the keystore file with key pair and certificate. * @param keystorePwd Indicates the password of keystore file. * @param certAlias Indicates the certificate name inputted by the user. - * @param keyProperties Indicates the properties of keys in keystore file. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function installPrivateCertificate(context: CMContext, keystore: CMBlob, keystorePwd: string, certAlias: string, keyProperties: CMKeyProperties, callback: AsyncCallback) : void; - function installPrivateCertificate(context: CMContext, keystore: CMBlob, keystorePwd: string, certAlias: string, keyProperties: CMKeyProperties) : Promise; + function installPrivateCertificate(keystore: Uint8Array, keystorePwd: string, certAlias: string, callback: AsyncCallback) : void; + function installPrivateCertificate(keystore: Uint8Array, keystorePwd: string, certAlias: string) : Promise; /** * Generate private application certificate locally. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyAlias Indicates the key alias inputted by the user. * @param keyProperties Indicates the properties of keys in keystore file. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function generatePrivateCertificate(context: CMContext, keyAlias: string, keyProperties: CMKeyProperties, callback: AsyncCallback) : void; - function generatePrivateCertificate(context: CMContext, keyAlias: string, keyProperties: CMKeyProperties) : Promise; + function generatePrivateCertificate(keyAlias: string, keyProperties: CMKeyProperties, callback: AsyncCallback) : void; + function generatePrivateCertificate(keyAlias: string, keyProperties: CMKeyProperties) : Promise; /** * Update private application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param type Indicates the type of the certificate used. * @param keyUri Indicates key's name. * @param certificate Indicates the certificate file. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function updatePrivateCertificate(context: CMContext, type: string, keyUri: string, certificate: CMBlob, callback: AsyncCallback) : void; - function updatePrivateCertificate(context: CMContext, type: string, keyUri: string, certificate: CMBlob) : Promise; + function updatePrivateCertificate(type: string, keyUri: string, certificate: CertBlob, callback: AsyncCallback) : void; + function updatePrivateCertificate(type: string, keyUri: string, certificate: CertBlob) : Promise; /** * Uninstall all application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function uninstallAllAppCertificate(context: CMContext, callback: AsyncCallback) : void; - function uninstallAllAppCertificate(context: CMContext) : Promise; + function uninstallAllAppCertificate(callback: AsyncCallback) : void; + function uninstallAllAppCertificate() : Promise; /** * Uninstall the specified normal application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyUri Indicates key's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function uninstallAppCertificate(context: CMContext, keyUri: string, callback: AsyncCallback) : void; - function uninstallAppCertificate(context: CMContext, keyUri: string) : Promise; + function uninstallAppCertificate(keyUri: string, callback: AsyncCallback) : void; + function uninstallAppCertificate(keyUri: string) : Promise; /** * Uninstall the specified normal application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyUri Indicates key's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function uninstallPrivateCertificate(context: CMContext, keyUri: string, callback: AsyncCallback) : void; - function uninstallPrivateCertificate(context: CMContext, keyUri: string) : Promise; + function uninstallPrivateCertificate(keyUri: string, callback: AsyncCallback) : void; + function uninstallPrivateCertificate(keyUri: string) : Promise; /** * Get a list of normal application certificates. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function getAppCertificateList(context: CMContext, callback: AsyncCallback) : void; - function getAppCertificateList(context: CMContext) : Promise; + function getAppCertificateList(callback: AsyncCallback) : void; + function getAppCertificateList() : Promise; /** * Get a list of private application certificates. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function getPrivateCertificateList(context: CMContext, callback: AsyncCallback) : void; - function getPrivateCertificateList(context: CMContext) : Promise; + function getPrivateCertificateList(callback: AsyncCallback) : void; + function getPrivateCertificateList() : Promise; /** * Get the detail of normal application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyUri Indicates key's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function getAppCertificate(context: CMContext, keyUri: string, callback: AsyncCallback) : void; - function getAppCertificate(context: CMContext, keyUri: string, ) : Promise; + function getAppCertificate(keyUri: string, callback: AsyncCallback) : void; + function getAppCertificate(keyUri: string, ) : Promise; /** * Get the detail of private application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyUri Indicates key's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function getPrivateCertificate(context: CMContext, keyUri: string, callback: AsyncCallback) : void; - function getPrivateCertificate(context: CMContext, keyUri: string) : Promise; + function getPrivateCertificate(keyUri: string, callback: AsyncCallback) : void; + function getPrivateCertificate(keyUri: string) : Promise; /** * Authorize the specified application certificate for the specified application. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyUri Indicates key's name. - * @param clientApp Indicates the context of the authorized application. + * @param clientAppUid Indicates the uid of the authorized application. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function grantAppCertificate(context: CMContext, keyUri: string, clientApp: CMContext, callback: AsyncCallback) : void; - function grantAppCertificate(context: CMContext, keyUri: string, clientApp: CMContext) : Promise; + function grantAppCertificate(keyUri: string, clientAppUid: string, callback: AsyncCallback) : void; + function grantAppCertificate(keyUri: string, clientAppUid: string) : Promise; /** * Whether the current application is authorized by the specified application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyUri Indicates key's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function isAuthorizedApp(context: CMContext, keyUri: string, callback: AsyncCallback) : void; - function isAuthorizedApp(context: CMContext, keyUri: string) : Promise; + function isAuthorizedApp(keyUri: string, callback: AsyncCallback) : void; + function isAuthorizedApp(keyUri: string) : Promise; /** * Get the list of applications authorized by the specified certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyUri Indicates key's name. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function getAuthorizedAppList(context: CMContext, keyUri: string, callback: AsyncCallback) : void; - function getAuthorizedAppList(context: CMContext, keyUri: string) : Promise; + function getAuthorizedAppList(keyUri: string, callback: AsyncCallback) : void; + function getAuthorizedAppList(keyUri: string) : Promise; /** * Deauthorize the specified application from the specified application certificate. * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param keyUri Indicates key's name. - * @param clientApp Indicates the context of the deauthorized application. + * @param clientAppUid Indicates the uid of the deauthorized application. + * @permission ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + * @systemapi Hide this for inner system use */ - function removeGrantAppCertificate(context: CMContext, keyUri: string, clientApp: CMContext, callback: AsyncCallback) : void; - function removeGrantAppCertificate(context: CMContext, keyUri: string, clientApp: CMContext) : Promise; + function removeGrantedAppCertificate(keyUri: string, clientAppUid: string, callback: AsyncCallback) : void; + function removeGrantedAppCertificate(keyUri: string, clientAppUid: string) : Promise; /** - * Init Operation. - * @since 8 + * Init operation for signing and verifying etc. + * @since 9 * @syscap SystemCapability.Security.CertManager - * @param context Indicates the context of the calling interface application. * @param authUri Indicates the authorization relationship between application and application certificate. * @param spec Indicates the properties of the signature and verification.. * @return The handle of the init Operation. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function init(context: CMContext, authUri: string, spec: CMSignatureSpec, callback: AsyncCallback) : void; - function init(context: CMContext, authUri: string, spec: CMSignatureSpec) : Promise; + function init(authUri: string, spec: CMSignatureSpec, callback: AsyncCallback) : void; + function init(authUri: string, spec: CMSignatureSpec) : Promise; /** - * Update Operation. - * @since 8 + * Update operation for signing and verifying etc. + * @since 9 * @syscap SystemCapability.Security.Huks - * @param context Indicates the context of the calling interface application. * @param handle Indicates the handle of the init operation. * @param data Indicates the input value. * @param token Indicates the value of token. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function update(context: CMContext, handle: number, data: Uint8Array, callback: AsyncCallback) : void; - function update(context: CMContext, handle: number, data: Uint8Array, token: Uint8Array, callback: AsyncCallback) : void; - function update(context: CMContext, handle: number, data: Uint8Array, token?: Uint8Array) : Promise; + function update(handle: number, data: Uint8Array, callback: AsyncCallback) : void; + function update(handle: number, data: Uint8Array, token: Uint8Array, callback: AsyncCallback) : void; + function update(handle: number, data: Uint8Array, token?: Uint8Array) : Promise; /** - * Finish Operation. - * @since 8 + * Finish operation for signing and verifying etc. + * @since 9 * @syscap SystemCapability.Security.Huks - * @param context Indicates the context of the calling interface application. * @param handle Indicates the handle of the init operation. * @param signature Indicates the sign data. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function finish(context: CMContext, handle: number, callback: AsyncCallback) : void; - function finish(context: CMContext, handle: number, signature: Uint8Array, callback: AsyncCallback) : void; - function finish(context: CMContext, handle: number, signature?: Uint8Array) : Promise; + function finish(handle: number, callback: AsyncCallback) : void; + function finish(handle: number, signature: Uint8Array, callback: AsyncCallback) : void; + function finish(handle: number, signature?: Uint8Array) : Promise; /** - * Abort Operation. - * @since 8 + * Abort operation for signing and verifying etc. + * @since 9 * @syscap SystemCapability.Security.Huks - * @param context Indicates the context of the calling interface application. * @param handle Indicates the handle of the init operation. + * @permission ohos.permission.ACCESS_CERT_MANAGER */ - function abort(context: CMContext, handle: number, callback: AsyncCallback) : void; - function abort(context: CMContext, handle: number) : Promise; + function abort(handle: number, callback: AsyncCallback) : void; + function abort(handle: number) : Promise; export interface CMContext { userId: string; @@ -322,7 +335,6 @@ declare namespace certManager { serial: string; notBefore: string; notAfter: string; - fingerprintSha1: string; fingerprintSha256: string; cert: Uint8Array; } @@ -349,9 +361,9 @@ declare namespace certManager { keyUri: string; } - export interface CMBlob { - readonly inData?: Uint8Array; - readonly alias?: string; + export interface CertBlob { + inData: Uint8Array; + alias: string; } export interface CMResult { @@ -360,7 +372,7 @@ declare namespace certManager { certInfo?: CertInfo; credentialList?: Array; credential?: Credential; - appList?: Array; + appUidList?: Array; authUri?: string; outData?: Uint8Array; isAuth?: boolean; @@ -392,45 +404,10 @@ declare namespace certManager { export enum CMErrorCode { CM_SUCCESS = 0, - CM_FAILURE = -1, - CM_ERROR_INSTALL_CERTIFICATE = -2, - CM_ERROR_SET_STATUS = -3, - CM_ERROR_INVALID_ARGUMENT = -3, - CM_ERROR_INVALID_STORE = -4, - CM_ERROR_NOT_SUPPORTED = -5, - CM_ERROR_UNINSTALL = -6, - CM_ERROR_NO_PERMISSION = -7, - CM_ERROR_INSUFFICIENT_DATA = -8, - CM_ERROR_GET_CERTIRICATE = -9, - CM_ERROR_STORAGE_FAILURE = -10, - CM_ERROR_HARDWARE_FAILURE = -11, - CM_ERROR_ALREADY_EXISTS = -12, - CM_ERROR_NOT_EXIST = -13, - CM_ERROR_NULL_POINTER = -14, - CM_ERROR_FILE_SIZE_FAIL = -15, - CM_ERROR_READ_FILE_FAIL = -16, - CM_ERROR_INVALID_PUBLIC_KEY = -17, - CM_ERROR_INVALID_PRIVATE_KEY = -18, - CM_ERROR_INVALID_KEY_INFO = -19, - CM_ERROR_REMOVE_CERTIFICATE_FAIL = -20, - CM_ERROR_OPEN_FILE_FAIL = -21, - CM_ERROR_INVALID_KEY_FILE = -22, - CM_ERROR_IPC_MSG_FAIL = -23, - CM_ERROR_REQUEST_OVERFLOWS = -24, - CM_ERROR_PARAM_NOT_EXIST = -25, - CM_ERROR_CRYPTO_ENGINE_ERROR = -26, - CM_ERROR_COMMUNICATION_TIMEOUT = -27, - CM_ERROR_IPC_INIT_FAIL = -28, - CM_ERROR_IPC_DLOPEN_FAIL = -29, - CM_ERROR_EFUSE_READ_FAIL = -30, - - CM_ERROR_CHECK_GET_ALG_FAIL = -100, - CM_ERROR_CHECK_GET_KEY_SIZE_FAIL = -101, - CM_ERROR_CHECK_GET_PADDING_FAIL = -102, - CM_ERROR_INVALID_DIGEST = -117, - - CM_ERROR_INTERNAL_ERROR = -999, - CM_ERROR_UNKNOWN_ERROR = -1000, + CM_ERROR_INNER_ERROR = 17500001, + CM_ERROR_NO_PERMISSION = 17500002, + CM_ERROR_NO_FOUND = 17500003, + CM_ERROR_X509_FORMATE = 17500004, } } -- Gitee