diff --git a/screenshot/resource/app_capture_screen_test_config.json b/screenshot/resource/app_capture_screen_test_config.json new file mode 100644 index 0000000000000000000000000000000000000000..928ad5c60e7dc3048506eb0ac7ce8ddb0e712dd9 --- /dev/null +++ b/screenshot/resource/app_capture_screen_test_config.json @@ -0,0 +1,89 @@ +[ + { + "return-x-y":[199, 1262], + "recent-x-y":[500, 1262], + "home-x-y":[350, 1262], + "recent_del-x-y":[350, 1140], + "permisson_ok-x-y":[495, 690], + "permisson_no-x-y":[241, 690], + "shot_cmd":[""], + "remount":["hdc_std shell mount -o rw,remount /"], + "cmp_cmd-level":["", 443200] + }, + { + "app_name": "crash_check", + "entry": "", + "compress_file_recv":["hdc_std shell \"cd /data/log/faultlog/temp && tar -cf crash_log.tar cppcrash*\""], + "crash_check":["hdc_std shell \"ls /data/log/faultlog/temp/ -al | wc -l\"", ""], + "all_actions": [ + [2, "remount"], [2, "crash_check"], [2, "compress_file_recv"], [2, "recv_log-file", "/data/log/faultlog/temp/crash_log.tar"] + ] + }, + { + "app_name": "wifi_connect", + "entry": "", + "check_ping_baidu":["hdc_std shell ping www.baidu.com", "64 bytes from"], + "all_actions": [[2, "connect_wifi"], [2, "check_ping_baidu"]] + }, + { + "app_name": "launcher", + "entry": "", + "rm_lock_cmd":["hdc_std shell uinput -T -m 350 900 350 300"], + "powermode_cmd":["hdc_std shell \"power-shell setmode 602\""], + "all_actions": [ + [2, "rm_lock_cmd"], [2, "powermode_cmd"], [2, "rm_lock_cmd"], [2, "powermode_cmd"], + [2, "rm_lock_cmd"], [2, "rm_lock_cmd"], [2, "shot_cmd"], [2, "cmp_cmd-level"] + ] + }, + { + "app_name": "audio_render", + "entry": "", + "remount":["hdc_std shell mount -o rw,remount /"], + "sendfile1":["hdc_std file send D:\\DeviceTestTools\\screenshot\\audiotest\\hdf_audio_hdi_server_function_test /data/"], + "sendfile2":["hdc_std file send D:\\DeviceTestTools\\screenshot\\audiotest\\audiorendertest.wav /bin/"], + "chmodfile1":["hdc_std shell chmod 777 /data/hdf_audio_hdi_server_function_test"], + "executefile1":["hdc_std shell ./data/hdf_audio_hdi_server_function_test"], + "audio_render_test":["hdc_std shell \"cd /data && ./hdf_audio_hdi_server_function_test --gtest_filter=AudioServerFunctionTest.SUB_Audio_Function_Render_Test_* && rm *.xml\"", "[ PASSED ] 12 tests."], + "audio_capture_test":["hdc_std shell \"cd /data && ./hdf_audio_hdi_server_function_test --gtest_filter=AudioServerFunctionTest.SUB_Audio_Function_Capture_Test_* && rm *.xml\"", "[ PASSED ] 10 test."], + "all_actions": [ + [2, "remount"], [2, "sendfile1"], [2, "sendfile2"], [2, "chmodfile1"], + [5, "audio_render_test"] + ] + }, + { + "app_name": "camera", + "entry": "", + "start_hilog":["hdc_std shell \"hilog -r && hilog -w start -f camera_log -l 400000000 -m none\""], + "start_camera":["hdc_std shell aa start -a com.ohos.camera.MainAbility -b com.ohos.camera"], + "stop_hilog":["hdc_std shell hilog -w stop"], + "check_result":["hdc_std shell \"cd /data/log/hilog && grep -nr PreviewOutputCallback\"", ""], + "compress_log":["hdc_std shell \"cd /data/log/hilog && tar -cf camera_log.tar camera_*\""], + "clear_log":["hdc_std shell rm /data/log/hilog/*"], + "all_actions": [ + [2, "clear_log"], [1, "start_hilog"], [4, "start_camera"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [4, "permisson_ok-x-y"], [2, "stop_hilog"], [3, "check_result"], [2, "recent-x-y"], [2, "recent_del-x-y"], [2, "compress_log"], [2, "recv_log-file", "/data/log/hilog/camera_log.tar"], [2, "clear_log"] + ] + }, + { + "app_name": "settings_keyboard", + "entry": "aa start -a com.ohos.settings.MainAbility -b com.ohos.settings", + "all_actions": [ + [3, "shot_cmd", "settings"], [3, "cmp_cmd-level"], [3, 400, 120], [3, 400, 120], [20, 400, 80], [3, 400, 80], + [3, "shot_cmd", "keyboard"], [3, "recent-x-y"], [3, "recent_del-x-y"], [3, "recent-x-y"], [3, "recent_del-x-y"], [3, "cmp_cmd-level", 200000] + ] + }, + { + "app_name": "photos", + "entry": "aa start -a com.ohos.photos.MainAbility -b com.ohos.photos", + "all_actions": [[2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "shot_cmd"], [2, "recent-x-y"], [2, "recent_del-x-y"], [2, "cmp_cmd-level"], [2, "recent-x-y"], [2, "recent_del-x-y"]] + }, + { + "app_name": "distributedcalc", + "entry": "aa start -a com.example.distributedcalc.default -b com.example.distributedcalc", + "all_actions": [[2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "shot_cmd"], [2, "recent-x-y"], [2, "recent_del-x-y"], [2, "cmp_cmd-level", 3686400], [2, "recent-x-y"], [2, "recent_del-x-y"]] + }, + { + "app_name": "note", + "entry": "aa start -a com.ohos.note.MainAbility -b com.ohos.note", + "all_actions": [[2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "permisson_ok-x-y"], [2, "shot_cmd"], [2, "recent-x-y"], [2, "recent_del-x-y"], [2, "recent-x-y"], [2, "recent_del-x-y"], [2, "cmp_cmd-level"]] + } +] diff --git a/screenshot/resource/capturescreentest.py b/screenshot/resource/capturescreentest.py new file mode 100644 index 0000000000000000000000000000000000000000..1bcf86d70e686b1afcb9360251c7a32d2e378cd2 --- /dev/null +++ b/screenshot/resource/capturescreentest.py @@ -0,0 +1,239 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2022 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. +from ast import parse +import json +import sys +import os +import time +import argparse +import re +import subprocess + +def MyPrint(str): + print(str) + with open(os.path.join(args.save_path, 'shot_test.log'), mode='a', encoding='utf-8') as log_file: + console = sys.stdout + sys.stdout = log_file + print(str) + sys.stdout = console + log_file.close() + +def EnterCmd(mycmd, waittime = 0, printresult = 1): + if mycmd == "": + return + with open(os.path.join(args.save_path, 'shot_test.bat'), mode='a', encoding='utf-8') as cmd_file: + cmd_file.write(mycmd + '\n') + cmd_file.close() + with os.popen(mycmd) as p: + result = ''.join(p.readlines()) + if printresult == 1: + MyPrint(mycmd) + MyPrint(result) + sys.stdout.flush() + if waittime != 0: + time.sleep(waittime) + with open(os.path.join(args.save_path, 'shot_test.bat'), mode='a', encoding='utf-8') as cmd_file: + cmd_file.write("ping -n {} 127.0.0.1>null\n".format(waittime)) + cmd_file.close() + return result + +def connect_to_wifi(tools_path): + EnterCmd("hdc_std shell mkdir /data/l2tool", 1) + EnterCmd("hdc_std file send {}\\l2tool\\busybox /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std file send {}\\l2tool\\dhcpc.sh /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std file send {}\\l2tool\\entry-debug-rich-signed.hap /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std file send {}\\l2tool\\hostapd.conf /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std file send {}\\l2tool\\iperf /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std file send {}\\l2tool\\p2p_supplicant.conf /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std file send {}\\l2tool\\p2p_supplicant1.conf /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std file send {}\\l2tool\\udhcpd.conf /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std file send {}\\l2tool\\wpa_supplicant.conf /data/l2tool".format(tools_path), 1) + EnterCmd("hdc_std shell wpa_supplicant -B -d -i wlan0 -c /data/l2tool/wpa_supplicant.conf", 1) + EnterCmd("hdc_std shell chmod 777 ./data/l2tool/busybox", 1) + cnt = 2 + while cnt: + try: + MyPrint("hdc_std shell ./data/l2tool/busybox udhcpc -i wlan0 -s /data/l2tool/dhcpc.sh") + p = subprocess.check_output("hdc_std shell ./data/l2tool/busybox udhcpc -i wlan0 -s /data/l2tool/dhcpc.sh", timeout=8) + MyPrint(p.decode(encoding="utf-8")) + with open(os.path.join(args.save_path, 'shot_test.bat'), mode='a', encoding='utf-8') as cmd_file: + cmd_file.write('hdc_std shell ./data/l2tool/busybox udhcpc -i wlan0 -s /data/l2tool/dhcpc.sh' + '\n') + cmd_file.close() + ret_code = 0; + except subprocess.TimeoutExpired as time_e: + MyPrint(time_e) + ret_code = 1 + if ret_code == 0: + ip = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", p.decode(encoding="utf-8")) + MyPrint(ip) + if len(ip) <= 0: + break + if len(re.findall(r'(?>>>>>>>>>>>>>>>>>>>>>>Try again:\n") + for single_action in single_app['all_actions']: + #shot_cmd is stable, different to other cmd,so handle it specialy + if type(single_action[1]) == str and single_action[1] == 'shot_cmd': + if len(single_action) == 3: + pic_name = single_action[2] + ".png" + raw_pic_name = single_action[2] + ".pngraw" + else: + pic_name = single_app['app_name'] + ".png" + raw_pic_name = single_app['app_name'] + ".pngraw" + EnterCmd(capture_screen_cmd.format(pic_name), 1) + EnterCmd(recv_file_cmd.format(pic_name, args.save_path), 1) + EnterCmd(recv_file_cmd.format(raw_pic_name, args.save_path), 1) + next_cmd = "" + #cmp_cmd-level is stable, different to other cmd,so handle it specialy + elif type(single_action[1]) == str and single_action[1] == 'cmp_cmd-level': + next_cmd = "" + MyPrint(send_file_cmd.format(os.path.join(args.anwser_path, raw_pic_name), "/data/screen_test/train_set")) + sys.stdout.flush() + EnterCmd(send_file_cmd.format(os.path.join(args.anwser_path, raw_pic_name), "/data/screen_test/train_set")) + new_cmp_cmd = cmp_cmd.format(raw_pic_name, raw_pic_name) + if len(single_action) == 3: + tolerance = single_action[2] + else: + tolerance = global_pos['cmp_cmd-level'][1] + p = EnterCmd(new_cmp_cmd, single_action[0]) + num = re.findall(r'[-+]?\d+', p) + MyPrint(num) + if type(num) == list and len(num) > 0 and int(num[0]) < tolerance: + testok = 1 + MyPrint("{} screenshot check is ok!\n\n".format(raw_pic_name)) + else: + testok = -1 + MyPrint("{} screenshot check is abnarmal!\n\n".format(raw_pic_name)) + sys.stdout.flush() + elif type(single_action[1]) == str and single_action[1] == 'recv_log-file': + next_cmd = "" + if len(single_action) == 3: + logfilepath = single_action[2] + next_cmd = "hdc_std file recv {} {}".format(logfilepath, args.save_path) + elif type(single_action[1]) == str and single_action[1] == 'connect_wifi': + next_cmd = "" + connect_to_wifi(args.tools_path) + #other cmd handle + elif type(single_action[1]) == str: + if single_action[1] not in single_app.keys(): + target_ = global_pos[single_action[1]] + else: + target_ = single_app[single_action[1]] + #this cmd is real cmd,and have a except answer + if type(target_[0]) == str: + next_cmd = "" + p = EnterCmd(target_[0], single_action[0]) + result = "".join(p) + if len(target_) > 1: + findsome = result.find(target_[1], 0, len(result)) + if findsome != -1: + testok = 1 + MyPrint("\"{}\" check execut result is ok, find \"{}\"!\n".format(target_[0], target_[1])) + else: + testok = -1 + MyPrint("\"{}\" check execut result is not ok, not find \"{}\"!\n".format(target_[0], target_[1])) + sys.stdout.flush() + #this cmd only is a name of x,y postion, to get x,y an click it + else: + next_cmd = "hdc_std shell uinput -M -m {} {} -c 0".format(target_[0], target_[1]) + #uinput x,y postion, to click it + else: + next_cmd = "hdc_std shell uinput -M -m {} {} -c 0".format(single_action[1], single_action[2]) + EnterCmd(next_cmd, single_action[0]) + if fail_idx_list.count(idx): + fail_idx_list.remove(idx) + if testok == 1: + MyPrint("testcase {}, {} is ok!\n\n".format(idx, single_app['app_name'])) + testcnt = 0 + elif testok == -1: + MyPrint("ERROR:testcase {}, {} is failed!\n\n".format(idx, single_app['app_name'])) + fail_idx_list.append(idx) + testcnt -= 1 + else: + testcnt = 0 + + if len(fail_idx_list) != 0: + MyPrint("ERROR: {}, these testcase is failed".format(fail_idx_list)) + MyPrint("End of check, test failed!") + else: + MyPrint("All testcase is ok") + MyPrint("End of check, test succeeded!") + sys.stdout.flush() + sys.exit(len(fail_idx_list)) \ No newline at end of file diff --git a/screenshot/resource/distributedcalc.png b/screenshot/resource/distributedcalc.png new file mode 100644 index 0000000000000000000000000000000000000000..54fa9c44f752b82d2f993c62ac45381e15622cc0 Binary files /dev/null and b/screenshot/resource/distributedcalc.png differ diff --git a/screenshot/resource/distributedcalc.pngraw b/screenshot/resource/distributedcalc.pngraw new file mode 100644 index 0000000000000000000000000000000000000000..9c7c13d2c68f805b4ae3f2c96e98a4b2c127ad80 Binary files /dev/null and b/screenshot/resource/distributedcalc.pngraw differ diff --git a/screenshot/resource/keyboard.png b/screenshot/resource/keyboard.png new file mode 100644 index 0000000000000000000000000000000000000000..eb07727925d3a10d301c9dde1803323129fc76d3 Binary files /dev/null and b/screenshot/resource/keyboard.png differ diff --git a/screenshot/resource/keyboard.pngraw b/screenshot/resource/keyboard.pngraw new file mode 100644 index 0000000000000000000000000000000000000000..5eeb31aefbcc88248c30f343c1cde75f4b2bf916 Binary files /dev/null and b/screenshot/resource/keyboard.pngraw differ diff --git a/screenshot/resource/launcher.png b/screenshot/resource/launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2ea505daa6c6ac80f15d33a1ea92f0a107538dc3 Binary files /dev/null and b/screenshot/resource/launcher.png differ diff --git a/screenshot/resource/launcher.pngraw b/screenshot/resource/launcher.pngraw new file mode 100644 index 0000000000000000000000000000000000000000..870f23135c360e5b6c98a289c008004dd98f7d4e Binary files /dev/null and b/screenshot/resource/launcher.pngraw differ diff --git a/screenshot/resource/note.png b/screenshot/resource/note.png new file mode 100644 index 0000000000000000000000000000000000000000..5ed429654bf1abde369b816a14701b56d67acd41 Binary files /dev/null and b/screenshot/resource/note.png differ diff --git a/screenshot/resource/note.pngraw b/screenshot/resource/note.pngraw new file mode 100644 index 0000000000000000000000000000000000000000..56ce26d95abbfbe05ed54f79167fabd2255c3074 Binary files /dev/null and b/screenshot/resource/note.pngraw differ diff --git a/screenshot/resource/photos.png b/screenshot/resource/photos.png new file mode 100644 index 0000000000000000000000000000000000000000..cab7f718de4c5e9e860650b0cfb71150918048f9 Binary files /dev/null and b/screenshot/resource/photos.png differ diff --git a/screenshot/resource/photos.pngraw b/screenshot/resource/photos.pngraw new file mode 100644 index 0000000000000000000000000000000000000000..c04377ba04dbb247e863fb8c42851be66d15bd96 --- /dev/null +++ b/screenshot/resource/photos.pngraw @@ -0,0 +1,136 @@ +$1$1$1/:F/:F/:F/:F/:F/:F/:F/:F/:F$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1`ir$1$1$1$1$1$1$1$17AM$1$1$1$1$1$1$1$1rz$1$1$1$1$1$1$1$19DO$1$1$1GQ[$1$1[dn$1$1$1$1$1$1$1$1$1$19DO$1$1$1dlu$1$1$1iqz$1$1$1$1$1$1$1$1$1$19DO$1$1$1HQ\$1$1$1ajsbktow\eo$1$1$1$1$1$1-8D/:F/:F/:F/:F/:F/:F/:F/:F$1$1$1%0$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1HQ\$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1(5 ,9 ,9 ,9 ,9 ,9 ,9 ,9 ,9 ,9 ,9 ,9$1$1$1$1$1$1$1$1$1$1$1$1HQ\$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1v~`ir`ir`ir`ir`ir`ir`ir`ir`ir`ir`ir`ir$1$1$1$1$1$1yCMX$1$1$1$1$1$1$1$1$1S\f ,9LV`|0;G$1*7$1$1$1$1$17AM$1$1$1px$1$1$1$1$1$1$1$1=HS/:F$1$17AMkt|$1$1$1$1$1$1$1$1$1enw$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1w$1$1$1%0<$1$1|QZd$1$1pxGQ[$1$1$1LV`$1$1$1bkt$1$1$1$1$1$1GQ[Ybk$1$1DNY$1$1#/;$1$1$1`irdlu$1$1$1$1$1$16@L$1$1$1$1$1$1,7CpxT^h$12?}@sHn4<];=>?{O}q<455DT;<>?SR4556DH:;<>Tr5568=:;;=Wh5789:;;gW789:;vG89:ڃ;:َ{ۣ]ezSZnOUi9;O;=R<>S<>SNThJPd9;P78L79M;=R;=Q<>Rjv14E68K;=Q;=R;=R9;P8:O;=Q,.>,.>-/?35H79N78L8;O;=R[dxǷ,.>,.>,.>,.>,.>13E67J57H78Kƽο;@P,.>,.>,.>,.>,.>,.>,.>-.>02D68KqºGP`,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>>CT*,=,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>-/?iklmnppqrttvwBL^+-=#%7+-=,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>-/?klmnppqrttvwxyz{}~.3E"$6%(8*-=%'7&(9,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>,.>=CSºlmnppqstuvwxy{{}~+2F%'8+-='):"$6!#5#%6#%6()9*,=+-=,.>,.>,.>,.>,.>,.>,.>mnppqstuvwxy{|}~ÿBOb"$6#$5 #4"$5$&8*-=&(9"%6"$5#%6"$6"$5$&7&(9&(9(*:)+;feoοnpprstuvxxz{|}~2"$6)+<,.>&(9"$5!#5 "4"$6!3&)9)+;+-=+-=),<)*;"$6hZ_Ѽ̾òϾwwnpprstuvxxzz|}~*0C "4!"5 2"%6&'8'):(*:!$6 1 1 12"4!#5 "4!#5JCLлѼлϺvvvwvwyypqrstuvxyz{|}~1!#5$&7(*;')9 !3 1!2!4"4 #4#%6$&8&'8'(9%(820>ϻѼмлκ͹˸uttuuuvvwwwxzy}qrstuvxyz{|}~12"3&(9*-=%'8%'7%'8"$6!3 2 1!$4"$6%'875CκѼѼмлκ̸ʷɶtrsssttttuuuuvvwxyxrstuvxyz{|}~11 3 !2!2!#5$'7'(9#%7!2%'7+-='*:*+<43B̸ѼѼѼлкι˸ɶƳñoooqqrsssssttuttuvvvwwxxstvvxyz{|}~$):11 2#&7 1 $5#%6 "3 "3!3$&6'):01@ųѼѼѼмлϺ͹˸ȵIJvmmnnoopqrrssssstttuuuuvvuvvwxxtuvxyz{|}ƻl111 3"%6!"4"4#%6$&7%(8(*;')9ЬҽѼѼѼллκ̸ʶdzñlllmllmnooopqqrrrsssstttuuuuuvvvwxuwxyz{|}"&711 11"3 #5 1 1 2"$6"%6$&7ijѼѼѼллκ˸ȵŲ°õklllllllmmnnoppppqrrsssssssttuuuvvvw|uwxyz{|}n1111 3!3 1 #6#%7!#4$&7(+;IEOҽѼѼлϻ͹˸ȵŲrjjkklllllllmmnooooopqrrrrrrssssstuuuuvvwxyz||~-3G 2 111 3 1 22"3"4 "4 "4κѼѼлϺι̸ɵƳñVvJlJkJlIkoojjjjjlllllllllmmnooooopqqqqqrrrrssssttuvvuxyz||~!#4 1111111(*9--=++;eY_ҽѼѼмлι̸ʶȴŲðJlIkIjIkIkjjjjjjjjkllllllllllmnnnnoooppqqrrrqrssssttuttvyz{|~Nby 211111y}ҽҽҽҽѼѼлϺ͹˸ʶȵdzƲdzKlHjHjGiGixjjjjjjjjjjkklllllllllmmmmnooopppqqqqqrrrsssssstux{{}~ij&+=2 2111ҽҽҽҽѼѼѼлκ͹̸ʸʶɶʷTqGhGiGhFhmkjjjjjjjjjjjkkkllllllllmmmmnnnnoooppppqqrrssssssstt|{}~ 21111̺ҽҽҽҽҽҽҽѼѼллκι͹͹͹ϻvFhEgEgEgkkkkkjjjjjjjjjkkkkllllllllllllmmmmnonoppppppqqrsrrsssss}~{ 1111cV]ҽҽҽҽҽҽҽѼѼѼмллϺϻлмEfDfDeEgwkjjjkjjjjjjjjjjjjkkkllllkllllllllmmmmnnnooopppqpqqrrrrssss~~Wm1111npлҽҽҽҽҽҽѼѼѼѼллммѼCeCdCdurkjjjjjjjjjjjjjjjjjjkkklkkkkkklllllllllmmmnnnooopppppqqrrrrsst~GXn11112/>๪ҽҽҽҽҽҽѼѼѼѼѼѼѼѼZsAcBcBcmkkkkjjjjjjjjjjjjjjjjkkkkkkkkkkkllllllllllmmmmnnnoooppppqqrrrrss{APe11111ҮҽҽҽҽҽҽѼѼѼѼѼѽq@b@b@a@b{kkkkkkkjjjjjjjjjjjjjjjjjkkkkkkkkkklllllllllllllmmmnnnoooooppqrqqrrsPd{ 1111乩ϻҽҽҽҽҽҽҽҽҽмMh>_?_?`?aAcqkkkkkkkkkjjjjjjjjjjjjjjjjkkkkkkkkkkkkkllllllllllllllmmnnnooooppqqqqrrr!$51TJSιικҽҽҽҽҽҽҽ@`<]<]<^=_>_Nk~okkkkkkkkkkkkjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkklllllllllllmmnnnoopppqqqrrrű̷͸͸͸̸лҽҽҽͺdv9Z:[9[:[;\<]<]}wmkkkkkkkkkkkkkkjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkklllllllllllmmnnnoppppqqqrκ͸͸̸̷˷ʵʶͺ~8Z8Y8Y8Y8Z9Z9[;[;\}tkkkkkkkkkkkkkkkkkkjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllmmmnnopppqqqr̸̷̷˷ʶɵDzİ7X6X6X6W6W7X7Y8Y9Z:[okkkkkkkkkkkkkkkkkkkkkjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllllllmmnoopppqqr̷˶ʶɵȴƲı¯6W5V5V5V5V6W6W7X7YIgokkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllllllmnnnooppquã˷ʶɵȴƲð5V4U4U4U4U4U5V6W7Xmwkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllllmnnnoppp~¡е©lb˶ɵȴƳı°3U3T3T3T3T4U4U5V6W~kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllmmnnoopp¡á؅MoMoMoMoɵȴƲı°7W3T3T3T3T3T3U4U5Vkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllmmnnoop¡áġTvMoMoMoMoMo`z±ðOf4U3U2T3T3T3T4UHekkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllmnnoo¡áššWyKmKmMoMoMoMoMoMoMoNoRtp}vr{h2S2S2S3T銙kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllllmnnp¡ġššǡcEgIkHiLnKmMoMoMoMoOql{}}}}vAa2S3T3TkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllmnnqáġšơǡΫ2S=_IkMoGhLnMoMoMoMo\{mn|}}}Ll2S2S3Ukkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllmnt¡áġšơǡȡӳ3T2S2S=^LnMoMoMoMoMoMoMoOpcYynoAa2S2Suzrqpoonmllllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkklllllm¡áġšơǡȡɡTv1R4U6W4U?aMoMoMoMoMoMoNoNoMoMoMoHj2S2S~uqonllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllm¡áġšơǡȡɡʡ6V1R1R1R1R1R2SEgMoMoMoMoMoMoMoMoMoMoMo;]{tomllkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkllllm¡áġšơǡȡɡʡˡ5V2S:[CdLnEg9Z2S1R7WMoMoMoMoMoMoMoMoMoMoMoNpRs]|}uolkkkkkkkkkkkkkkkkkkkkkkkkkllll¡áġšơǡȡɡʡˢ̢NpMoMoLnMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqQrRsUvYysqnlkkkkkkkkkkkkkkkkklllm¦¡áġšơǡȡɡʡˢ̢ШMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqPrRsTuWw\{dvmlkkkkkkkkkllnʮ¡áġšơǡȡɡʡˢ̢͢ٹMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNpOpOqQsSuWw[z`xzvlkkkkllsдġšơǡȡɡʡˢ̢͢΢NpMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqQrSsVvYy]|n||yxmklӷơǡȡɡʡˢ̢͢΢ϢStMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqOqQsSuWw[z^}r|xwzyոȡɡʡˢ̢͢΢ТТnMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqQrRsUuWw[z`s|zxwغˡ̢̢͢΢ТТѢNpMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNoOpOqQrSsUvXx[{_~o{|{z۽̢͢΢ТТѢҢMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqOrQrStVvWx[{^}er{{wzƼȽȾz_ݿ΢ТТѢҢ۵YzMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqOrQrStUvWw[{^}`fr{xr鞷¶¶ƺȼrz_z_z_gz_z_ݽѢѢҢӢQsMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqOrQsSsUuWwZz\|_cozzt~´ƹǼɾpz_z_z_z_z_z_z_z_|aøz_z_z_۷ҢӢԢMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNoNpOqOqQrRsTuWwXx[{^}ahyzwzµĸźǼȽqz_z_z_z_z_z_z_z_z_z_z_z_z_fyz_z_z_z_ٮԢգNqMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOpOqPrQsStUvWwZz\|_~dn{{v׼ɾµĸƺǼɾ¶oz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_ר֣TuMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnMoMoMoMoMoMoMoMoMoNoNoNpOqOqQrStTuWwYy\{^}afv{s䣻iabciҿоɹŸƹǼɾɾez_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_٨\|MoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnLnMoMoMoMoMoMoMoMoMoNoNpOpOqOqQrRsSuVvWwZz]|_djrsabcdefhj͹ķmnĵµöz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_{qMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnLnKmKmMoMoMoMoMoMoMoMoMoMoNoNpOqOqPqQsStTuVwYy[{_~bgnmwbddeghkϺιnppqձռ}az_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_rMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnLnKmJlIkKmMoMoMoMoMoMoMoMoMoMoNoNpNpOqOqQrRsTuUvWw[z^}`dhkqddfghnнлϻκ{pp|}~|NQ֍wz`z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_kNpMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnLnKmJlIkHjGhKmMoMoMoMoMoMoMoMoMoMoNoNpNpNpOqQrQsStTuWwZz\{_cgksf~{zѼѼϻϻqöȷdzIJ¯为|}RKKKKJJIPbՃfz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_iZ{MoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlIkHjFhEfCeLnMoMoMoMoMoMoMoMoMoMoMoNoNpOpOqOqQrRsSuVvXx[{_~bfks隲vuvuvwyϻѼлϻκ̸˷ɶdzŲñ°°°~eMLLKKKKJJIIIIHGMqݗpz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_f숢MoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnLnKmJkHjFhEfBd@a?aLoMoMoMoMoMoMoMoMoMoMoMoNoNpNpOpOqQrRsStUvWw[{^}bhmvҺonnnospssuѼѼлϻι̸˷ɶȴƳŲŲʴONMMLLKKKKJJJIIIHHGGGFFTǫvz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_~dMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlIkGiEgBd@a=^;\=^MoMoMoMoMoMoMoMoMoMoMoMoMoNoNpNpOqPrQsSsUuWwZz]|aekv߱nljiihgghnkopr}ѼѼѼлϺι̸˷ʷɶɵ鿾fONNMMMLLLKKJJJIIIHHHGGGJfz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_|bVwMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnLnKmIkHiFhCe@b=^;\8Y3U;\MoMoMoMoMoMoMoMoMoMoMoMoMoMoNpNpOqPqQrRsSuWwZz\{_~ukq榾߭vojhggfdcba~a~_}_}dggkmrѼѼѼѼлϻκ͹͹̸QOOONNNMMMLLLKJJJIIIIHHGSkz_z_z_z_z_uz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_{a柶MoMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlIkHiEgBc>`<\8Y6W2S1R@bMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNoNpOqPrRsSuVwYy[{_~jpvꞶվq`~]}_~_~`aaa`~_}]{[zZxYwXvVuVtZxa~`}bflϻҽѼѼѼлϻzPPOOOONNMMMMLLLKKKJIIIIHi|}bz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_}cOrMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlHjGhDf@b=_:\7X4U1S1R1RDeMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpNpOqPrRsStUvWx[{^}qo{떯昱}ja_~XxXwXxYyZyZz[{[{[z[zZyXwVuTtRrPpOoNmMlMmVuYwYv]{fϻҽ˼z|aQQPPOOONNNMMMMLLLKKKJIIJvo{`z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_qMoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlHjFhCe@a<]8Z5W3T1R1R1R1REgMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqPrQrSsUuWwYy^}rq|ݰplc`]|ZzXxVwUvUvUvUvUvVvVvVvUuTtSsQrPpMmKkIiGgFfEeEeFfQoTrSpd|uwxyzVRQQQPPOOOONNMMMLLLKKKJJO|~kz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_MoMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlHjEhCe?a<]8Y5W3T1R1R1R1R1RFhMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNoNpOqOqQrRsSuVvWxZzas|ӿ}}}jca`^}\{YyWxUvTuStRsRsRsRsRrRrQrPpNoMnKkIiGgDeBc@a>^=^<]BbFeKkofZTRQQQPPPOONNNMMMLLLKKKX|{gz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_XyMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlHjEhCe?a<]8Y5W3T1R1R1R1R1R1RGiMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoMoNpOpOqPrRsStUuVw[{w|}|lu{w}ya^}\|[{YyXxVwUuStQsQrPqOqOpOpNoMoMnKmJkHiFgCdBb?_=^:[9Z8Y7X8Y<\͹hVSPOOONNNMMLLLKbx~cz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_d߽MoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlHjFhCe@a<^9Z5X3T1R1R1R1R1R1R1RHjMoMoMoMoMoMoMoMoLnLnLnLnLnMnMoMoMoNpOqOqPrQsStUuUuXx_}lm`iaj^}YyYyXxWwUvUuStRsQrOqNpMoMnLnKmKlIkIjGhEfBcAc?_=];[9Z7W4U5U3THhjONNMMLLk~dz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_tPrMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlIjGhDfAb=`:\8X3T2S1R1R1R1R1R1R1REfMoMoMoMoLnLnLnLnLnLnLnLnLnLnLnMoMoNoNpOqOqQrQsRsStTuWwhdVwfWwVvUvUuTuTtSsQsQrPqOpMoMnKmKlJkHjGiFhDfCdAb?`=^:\7X5W5V4U2S3T xbz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_蓫MoMoMoMoMoMoMoMoMoMoMoMoLnLnKmKlIkHiEgBd@`<]9Z4U3T1R1R1R1R1R1R1R1RBdMoMoLnLnLnLnLmKmKmKmKmKmKmKmLnLnMoMoNoNpOpOqPqQrQrQsRsRsRsStSsRsRsRsQrQrPqOqNpMoLnLmKlIkHjGhFgDfBdAb>`=^9\5V4U5W3T2S2SHglz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_OqMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJkHjFhDe@b=`;\6W3T1R1R1R1R1R1R1R1R1R>`LnLnLnLmKmKmKlJlJlJlJlJlKmKmKmLnMnMoMoMoNpOpOqPqPqPqPrQrQrPrPrPrPqOqOqNpNoMnLmKmJlHjGiFhDfCdAb?a=_;\5V2S1R3T3S1R2S̓p~ez_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_sMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlIkHiEgBd@a<]6X5W1R1R1R1R1R1R1R1R1R1RދMoKmKmJlJlIkIkIjIjIjIkIkJkJlKmKmLnLnMoMoMoNoNpNpOpOpOpNpOpNpNpNpMoMoLnKmKmJkIkGiEgDfCeAc?a>`<]9Z3T2S3S2S1R1R8Yte{`z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_}aMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlIkGiDfBd?a8Z9Z1R1R1R1R1R1R1R1R1R1RԾLmJlIkHjHiGiGhFhGhGiGiHjIkIkJlKmKmKmLnLnMnMoMoMoMoMoMoMoMnMnLnKmKmJlIkIjGiFgEfCeAc@a>_<]:[9Z7X5U2S1R1R1Rnxz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_qRtMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmKlIkHiFhDfAc;]:[2S1R1R1R1R1R1R1R1R1R^~HiFhEgDfDeDeDfDfEgFgGiHjHjIkIkJlKmKmKmLnLnLnLnLnLnLnKmKmJlJlIkHjGiEgEeCeAc?a>_=]:[9Z7X1S2S1R1R1Rc}}az_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_tMoMoMoMoMoMoMoMoMoMoMoMoMoLnLnKmJlHjGiFhCe>_:[4U1R1R1R1R1R1R1R1R1RوDfCdAcAbAbAbAcBdCeEfFgGhGiHiHjIkIkJkJlJlKmKmKmJlJlJlIkHjHiGhFgDfCdBc@a>`<]8Z8X6W5U3S2S1R1R}fz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_ܻ嘰MoMoMoMoMoMoMoMoMoMoMoMoMoLnLnLnJlIkHjGhEg@a;]7X1R1R1R1R1R1R1R1R1RƼDe?a>_>_>`?`@bAcBdCeEfFgFhGhGiHjHjIkIkIkIkJkIkIjHjGiFhEgDfBdAc@a>_;\8X4V7X6W5V3T1S6Vȅwez_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_MoMoMoMoMoMoMoMoMoMoMoMoMoMoLnKmKlJlIkGiEh>_=_:[1R1R1R1R1R1R1R1R1R[z;\:\;\;]=^?_@aAbBcCeDeDfEgEgFhGiGiHiHiHiGiGhFhDfDeBdAc?a=^8Z8X6X7Y5V3U3T3S>^åk}az_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_KmKmKmMoMoMoMoMoMoMoMoMoMoMoMoKmKmJlHjHhEh?`>_<\2S1R1R1R1R1R1R1R2Rũ9Y7X8Z:[;]=_>_?a@a@bAcBcBdCeDeEfEgEgEfEfDfCdBc@b?`<]4U1R2T3T4V3S3T2SCbϪw|`z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_lNpKmGiMoLnHiMoJlJlMoMoMoMoMoLnKmKlIkHjFhEgAb=^<\5U1R1R1R1R1R1R1RIh]|6W7Y9[;\;]<^=^=_>_?`?a?aAbAcBcBcBcBc@b@a>`9Z3U1R3U5W5V2S1S1Rkz_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_~KlKmLnEgKmMoMoLmEgCe=^CeIkLnKmHjJlHjHiEhEf@c<]<\8Y1R1R1R1R1R1R1Ri<]7Y9Z9[:[:[:[:\;\;]<^=_>`>`>`>`>_;\6W3S2S3T2S1R1R1RBb̨ez_z_z_z_z_z_z_z_z_z_z_z_z_z_z_z_ˡFf9[;]?`FhJlGh@cDfIjJlGjCdCeKmJlIkHjFhEgCd@b<]:\8Y1S1R1R1R1R1R1RәǛ=]8Y8Y8Y8Y8Y8Y9Z:[:\;\;]:\8Y6V4V6W3U2R1S1R4Tzt}az_z_z_z_z_z_z_z_z_z_z_Aa2S5V4U5V7X8Y9[:[:\;]=^DeCeEgGiGhFgFgDeBd@`:\9Z7X3T1R1R1R1R1R1RȐ;[4U5V5V5V6W7X7X5V5V7W7Y7Y4T3T2S2SVuԠziz_z_z_z_z_z_z_<\4U6W5X7W6X5V7X<]<^<^;];\<^?`@a>_=_>_?aAb?`;\9Z7X4V1R1R1R1R1R1R=]3T3T3U5U5V5W5V4U4T2T2SBbƏj~bz_z_Ӹ5V4U5V3T3T<]DfBdCd@a>_Bc=_@c?aFhEgCdBc>`@a>`;\9[6X4U2S1R1R1R1R1Rӡʁ2S3T3U4T2S2S[zSq3T3T4U7W7X6X6W7X8Y<]CdCe>`DfBcBcCdBdAc@b@a=`;\8Y5W4U2T1R1R1R1R1Rh5V3T3T3T5V5V6W6W6W5V5V5V5V4U5V5V5V4U4VAb@b@`=_;\8Y6X4U3T1R1R1R1R1R7X3T3T3T3T6W5W4U4U4U3U4U5V5V4U4U3T4U4U8Y@b@a>`=_;]8Y7X4U4T2S1R1R1R1R1R;\2T4U:[5V6W6W5W5W5V5V4U4U4U4U5V8X<]=_>_?a?`?`>_<]8Z7X5V3T3T1R1R1R1R1RӇ2S2S6W:[:[@cCeCdCdBdBcAb@a?`@a>`?`?`?a?a?b?a?`=_<^:\8Y5X4U4T2S1R1R1R1RJi\z2S2S8Y8Z<]<]AbAcAbAb@b@a?`>`>`=_=_>_?`?a@b@b@a>`=_;\9Z7X5V4U3T1R1R1R1R1R5V2S2S7Y8Z:[;\=_?`?`?`>`=`=^=^=^=^=_>`?`?a@bAb@b?a>`<]9Z8Y5W5V4U3T1R1R1R1R2S2S4U7Y8Z9Z=^:[=^=_=_=^<^<]<^<^=^=_>`?a@bAbAbAb@b?a<^:\9Z7X6W4U3T1S1R1R1RӂYw2S2S5V8Y8Z9Z;\;]:[<^<]<]<]<]<]<^=^>_?`@aAbAcBcAdAb@a>_;\9[8Y6X5V3T3T1R1R1R@_5V2S2S6W8Y8Y:[9[;];\:[;]<]<]<]<^=_>_?`?bAbBcCeCdCeBd@b?`<]:\9Z7Y5V4T3T2S1R1R6Vз3T2S2S5W8Z9Z9[9Z9[;\;\:\;\<]=^=_>_?`?aAcBdCeDeDfDeBdBc@a>_;\9Z8Y5W4U2T2S2S1R1R[z3T2S2T5V8Y8Z9Z9Z9Z9[:\;\;\<]=^>_?_?aAbBcCeDfDfDfDeCdBd@a=_<]9Z8X6W4V3T2S2S1R1R8X2T2T2T3U8Y8Y8Y8Z8Z9Z9[:\;\;\<^>_?`@bAcBdDeDfEfEgDfDeCdAc?`<^:\8Y5W4U4U3T2S2S1Rўа2T3T2S2S2S7W7X7X7X7Y8Y8Z9Z:[;\;\<^>_@aAcBdDeDfEgFgEgDfCeBd@a=^;\8Y6X5V4U3T2S2S1Rb~^|2S2S2S2S2S4U5V5V5W6W6W7X7X8Y9Z;\;]<^>`@aBcCdDfEgEgEfDfCeAb?`=_;\9Z6X5V4U3T3T2T2S1R8X2S2S2S2S2S1R4U4U4U4U5V5V6W6W7Y9Z:[;\=^>`@bBdCeDeDfDfDfCd@b?`<^;\8Y6X4U4T3T2S2S2S1Rϸ2S2S2S1R1R1R1R1R2S3T3T3T4U4U4V5W7W7Y9Z;\<^>`@aAcBdCeCeCeBd@b?`<^:\8Y6X4U3T2S2S2S2S2S\{3T2S1R1R1R1R1R1R1R1R2S2S2S3T3T4U4V6W7X9Z:[<]>_@aAbAcBcBcAc@a?`<]:\8Y6W4U3T2S1R1R1R1RЧ7X5V4U2S1R1R1R1R1R1R1R1R1R2S2S2S3T3T4U5W7X8Z:[<]=_?`@b@a@b@a?a>_<]9[8Y5V4U2T2S1R1R1R1RsӁ4U4U4U3T2S1R1R1R1R1R1R1R1R1R1R2S2S2S3T4U5V7W8Y9Z;\<]=_>`>`>`=_<];\9Z8Y5V4U2T1S1R1R1R1R7W;[4U4V4U3T2S2S1R1R2S1R1R1R1R1R1R1R1R1R2S3T4U5V6W7X8Y9Z:[;]<]<]<];\:[8Y7X5V4U2T2S1R1R1R1R1R4U4U4V4V4U3T2S2S2S2S2S1R1R1R1R1R1R1R1R1R2S3T4U5V5V6W7X7Y9Z9[9Z9[9[9Z8Y7X5V4U3T2S1R1R1R1R1Rλ,E5V5W5V4V4U3T3T2S2S2S2S2S2S1R1R1R1R2S2S2S2S3T4U4V5V6W6W7X7X7Y8Y7Y7X6X5V4U3T2S2S1R1R1R1Rэ,,s(?5U6W5V4U4U3T3T2S2S2S2S2S2S1R1R2S2S2S2S2S2T3T4U5V5V5W6W6W6W7X6W6W5V4U3T2S2S1R1R1R1Rjds++*)$,.I4U6W5V4V4U3U3T3T3T2S2S2S2S2S2S2S2S2S2S3T3T4U4U4U4U5V6W6W6W5W4U3T2T2S1R1R1R1RNl,2B+**)('&'["65U6W5V5V4V4U4U3T3T3T2S2S1R1R1R2S2S3T3T3T3T3T3U5V5W6W6W5V4U3T2T2S2S2S1R6V /**)(('%$$#%,"4B%9,F4S5V5V4U4U3T2S1R1R1R2S2S2S2S2S2S2S3S4U5V6W6W6W5V4U3T2T2S2S1R1R+*))('&%$#"& 1!1!2!2!"2#"41#6K';d)@+F/K1P2S2S2S2S2S1R1R1R2S3U5V6W7X6X6W5V4U4U4U3U1R1R+*)(('%$#"!( 1 1!2!2!2 "3 "3 "3!#4!#4!#4"$4#$4$$5&$6'$6+%6:&9I';X(>e*Ap+C{-F/H0I0K0K1L0L1K1K0I/IYs+*)('&%#"" ( 1 1!1!2!2 "2 "3 "3!#4!#4!#4"$4"$5"$5"$5"$5"$5#%5#%5#%5#%6#&7%'7%'7%'7%'9&'9')9');'*;(*<)+=+->boiy*))('%$#"! % 1 1!1!2!2"2 "3 "3!#4!#4"$4"$4"$5"$5"$5#%5#%5#%6#%6#%6$'7%'7%'7%'8%'9')9'):');(*;)+<*,>+->,.?IQcDN_*)((&%$#"  ! 1 1!1!2!2"2 "3 "3!#4!#4"$4"$5"$5#%5#%5#%6#%6#&6$&6$&7%'8%'8&(8&(9')9');(*;)+=*+=*,>,.?-/@./A12D,1A*)((&%#"  !1!1!2!2!2 "3 "3!#3!#4"$4"$5"$5#%6#%6$&6$&6$&7$&7%'7&(8&(8&(9&(:(*:(*;)+<*,=*,>+.?,.?-/A./B/1B/1C(.>*)((&$#!  1!2!2!2"2 "3!#3!#4"$4"$5#%5#%6$&6$&7%'7%'7%'7&'8&(9')9'):'*;(+;)+;*+=+->+-?,.?-/A./B/1C/1C/2E02E(-=*)((%#"! -!2!2!2"2 "3!#4!#4"$5#%5#%6$&6%'7%'7%'8&(8&(9&(:'*:(*:(*;)+<*,=*,=+->,.?-/A./B/1C/2D02E13E13F23F).>*)('%#"! $!2!2"2 "3!#3!#4"$4"$5#%6$&7%'7&'8&(8')9')9'):(*;)+;)+;*,=+-=+->,.?,.?./A/0C/1C03E13E13F24G35H35H39I*('&%$"! !2"2 "3 "3!#4"$4"$5#%6$&6%'7&'8&(8')9'):(*:)+;*+<*,<+->+->,.?-/?-/@./B/1C/2D13E13F24G35H35I35I46Ip~Taq)('&%$"! ) "3 "3!#3!#4"$4#%5#%6$&7%'7&(8')9'):(*:)+;)+;*,=+-=+->,/?-/@./A.0B/1C/2D13E23F24G35I36I46J46J46JXat)('&%$"!  "3 "3!#4!#4"$5#%5#%6$&7%'7&(8')9'*:(*;)+;*+=+-=+->,.?-/?-/@.0A/1C/2D13F24G35G35I46I46J57K57K57KNUh)(('%$#! " "3!#4"$4"$5#%5#%6$&7%'7&(8')9'*:)+;)+;*,<+->,.>,.?-/?./A/1C02C13E23F24G35H36I46J57K57K57K57KBG[,(('&%"  ,!#4!#4!#4"$4"$5#%6$&7%'8&(8'*:(*;)+;*,=+->,.>,.?-/A/1B/2C02D13F24G35G36I46J57K57K57K57L57L8:O"2)('%$"!   0!#3!#4"$4"$5#%6$&6%'7%'7&)9(*:)+;*,<+->,.?-/?-/@/1B02C13E13F24G35I46J46J57K57K57L57L67L68L*)('%$#!    1"$4"$4#%5#%6$&6%'7%'7&(8'*:)+;*+<+-=+.?-/?./A/1C02D13E24G35G36I46J57K57K57K57L57L68L68L*)('&$"!     *"$5#%5#%6$&6$&7%'7&(8'):)+;)+;+-=+.>-/?./A/1C02D13F24G35H36I46J57K57K57L57L57L68L68L8?O))('%$"!      + "$5#%5$&6$&7%'7&(8')9'*;)+;*,=+->-/?./A/1C02D13F24G35H46J46J57K57K57L57L67L67L68L"2))(&%$"!     +  +  + -#%6$&7%'7%'8&(9'):)+;*+<+-=-/?-/A/1B02E13F24G35I46J57K57K57K57L57L67L57L67L**)(&&$#!       +  + +!#4#%6$&7%'7&(8')9(+;)+;+-=+.?./A/1B02E13F24G35I46J57K57K57K57L57L68L68L68L}+*)('&$"!      + + +   "2#%5#%6%'7&(8')9'*;)+;*,=+->-/A/1B/2C13F35G35I46J57K57K57K57L57L68L68L68Liw6=L+*)('%$#!      +  +   0#%5#%6$&7&'8&(9'):)+;*+<+->-/@.0B/2C02F24G35I46J57K57K57K57L57L57L57L68LU_s!1+*)('%%"!      + + +  ."$5#%5$&7%'8&(8')9(+;)+<+->,.?.0B/2C02E23G35I46J57K57K57K57K57L57L57L67LFL`+++)('&$#"     +  + +  +"$5#%5#%6%'7&(8&(9(*;)+;+->,.?.0B/2C02E23G35I46J46J57K57K57K57L57L57L57LDI]j|,+*)('&$#!     +  +  +  ("$5"$5#%6%'7%'8&(9'*:)+;*+<,.?-/A/1C02E23G35H46I46J57K57K57K57L57L57L57L?DX.3D,+*)('%$#!     +  +   !"$4"$5#%6$&7%'7&(8'):(*:*+<+.?-/A/1C02D13F24G35I46J57K57K57K57K57L57L57L=AV!1,+*)('&%#!     +  + +  !#4"$5#%6$&6%'7%'8'):(*:)+<+->-/@.0B/1C13F24G35I46I46J57K57K57K57L57L57L:=R,,+*)('%%#"     +  + +   !#4"$5#%6$&6$&7%'7'(9'):)+;+,=,.?.0B/1C13F24G35H36I46J57K57K57K57K57L57L7:OTbs,,+*)('&$#!     +  +   +"$4"$5#%5#%6$&6%'7&(9')9(+;*+<+.?-/A/1C02E13G35H35I46J46J57K57K57K57L57L57L*/?,,+*)('&$#!      +  + +   "$4"$4"$5#%5#&6%'7&(8&(9'*:*+<+->-/A.0B02E13F24H35I36I46J46K57K57K57K57L57L /,,+*)((&$#!      + +    HS]#&7"$4"$5#%5#%6$'7%'8&(8'):)+;+->,.@.0B/1C13F24G35I36I46J46J46K57K57K57K57L-,,+*)((&$#!    +  +  +   %(9!#4"$4"$5#%6$&7%'7%'8')9'*;*+=,.?-/A/1C02E23G24H35I46I46J46J57K57K57K57L-/@.0B02D13F24G35H36I46J46J46K57K57K57K"&7.,,+*)((&$"!     +  + +   9BJ(++.?.0B/1C02E13G24H35I46J46J46J57K57K57K/-,,+**((&$"!     +  +   39J"$5"$5#%5#%5#%6#%6$&6%'8&(9(*;*+=+.?-/A/1C02E13F23G35H35I46J46J46K57K57K.-,,+**((&$"!    +  +  +  ?J["$5"$5"$5#%5#%5#%6#&6%'7%'9'):)+=*,>+.@./C/1D13F23G35H35I46J46J46J46K57K/5F.-,,,*)((&$"     +  + + +  HT]MYj"$5"$5"$5"$5#%5#%6#%6$&7%'9'):(*;*,=+-@-/B/1C02F13G24G35I35J46J46J46K57K"2--,,+**('&$"     +  + +  [i{"$5"$5"$5"$5#%5#%5#%6$&7%'7&(:(*;)+=+-?-/A.0C02E13F23G35H35I46J46J46K57K.--,,,*)('&$"     + + +  i{"$5"$5"$5"$5"$5#%5#%5#%7%'7&(9(*;)+<+-?,.A.0B/2D02E23G35H35I35J46J46J46Kj|.---,,+)('%$"     + + +  Zit}"$5"$5"$5"$5"$5#%5#%5#%6%'7&(9');)+;*+>,.?./B/1C02E13G24G35I35I46J46J46K%(8.---,++)('%#"      + + +  "$5"$5"$5"$5"$5#%5#%5#%6%'7&'8'):(*;*+>+.?-/B/1C/1E13F23G35H35I36J46J46K/.---,++)('%#!      + + + "$5"$5"$5"$5"$5"$5#%5#%6$&7%'8'):'*;)+=+-?-/A./C/1D02F23G24G35I35J46J46J.----,++)('%#!    +  + + + m"$5"$4"$4"$4"$5"$5"$5#%5$&7$&8&(9');)*=*,>+.@./B/1C02E13F24G35I35I46J46JVcv.----,++)('%#     +  +  #&6"$4"$4"$4"$4"$5"$5"$5#&6$&7%'9'):(*<*+>+.?-/B.0C/2E13F23G24I35I36J46J|#&7.----,+*)(&%#     + + + + +"%(8"$4"$4"$4"$4"$4"$5"$5#%6$&7%'9&(:(*;*+>+-?-/B.0C/1D02F13G24H35I36I46Jx/.----,+*)(&$"      +  + + +'+;!#4!#4!#4!#4"$4"$4"$5#%6#%7%'7&':');)+=*,?,.A./B/1D02F13G24H35I35I46Ju{/.----,+*)(&$"      + + + +)->!#4!#4!#4!#4!#4!#4"$4#%5#%7$&7&'9');(*=*,>+.A-/B/1C02E13G24H35I35I46Jr?I[/.---,,+*('%$!     + + + + %*-1C!#4!#4!#4!#4!#4!#4!#4#%5#%6$&7%'9'):(*<*,>+-@-/A.0C/1E13G24G35H35I46Jr"3/.---,,+*('%#      +  + +=FW!#4!#3!#3!#4!#4!#4!#4"#5"$6$&7%'9&(:(*;)+>+-?,.A.0C/1D13F23G35H35I46Jo/..---,,*)('%#       + +P\n!#3!#3!#3!#3!#3!#3!#4"#5"$5#%7%'7&(:'*;)+=+-?,.A./C/1D02F23G35H35I46Jkz\l}...---,,*)(&$"       + +8ALdu!#3!#3 "3 "3 "3!#3!#3"#5"$5#%6%'7&':');)+=*,?,.@./B.0D02F13G24H35I46Jkz,2C...---,+*((%$"      +  + +v!#3 "3 "3 "3 "3 "3!#3"#4"$5#%6#&7&'9');)+=*,?+-@-/B.0C02F13G24H35I46Jkz 1....-,,+*('%#      +  "3 "3 "3 "3 "3 "3 "3"#4"$5#%6#&7&'9');(*=*,>+-@-/B.0C02E13G24G35I36Jr/....-,,**('$#      + Udp "3 "3 "3 "3 "3 "3 "3"#3"$5#%6#&7&'9'):(*=*,>+-@-/B.0C02E13F24G35I36Jq+-@-/B.0C/2E13F24G35H35Jq"3//...-,,*)(%$!     #* "3 "3 "3 "3 "3 "3 "3"#4"$5#%6#&7%'9'):(*=*+>+-@-/B./C/2E13F23G24I35Iq//...-,,,*((%#!     + q "3 "3 "3 "3 "3 "3 "3"#4"$4#%6#&7%'9'):(*=*+>+-?-/A./C/1E13F23G24H35Iw//...-,,**('%"      + $&8 "3 "3 "3 "3 "3 "3"#4"$4#%6#%7%'9'):(*=)+>+-?,.B./C/1E02F23G24H35Iy,2C//...-,,**(&$"     +1;'+< "3 "3 "3 "3 "3 "3!#4"$4#%6#&7%'9'):(*<*+>+-?,.B./C/1E02F23G24H35I} 1//...-,,*)(%$!     + */@ "3 "3 "3 "3 "3 "3!#4"$4#%6#&7%'9'(:(*<)+>+-?,.A./C/1E02F13G24H35I//...--,+*)'%#!     + 28I "3 "3 "3 "3 "3 "3!#4"$4#%6#&7%'9'(:(*<)+>+-?,.A./C/1E02F13G24H35I]m//...--,+))'$"     9DOIUg "3 "3 "3 "3 "3 "3!#4"$4#%6#&7%'9'):(*;)+>+-?,.A./C/1E02F13G24H35I!%7//...--,+)(&$!     ev "3 "3 "3 "3 "3 "3!#4"$4#%6#&7%'9'):(*;)+>+-?,.A./C/1E02F23G24H35I0//..---++)(&#!    } "3 "3 "3 "3 "3 "3!#4"$4#%6#%7%'8'):(*;)+>+-?,.A./C/1E02F13G24H35Iz///...--+*((%#    Q`l "3 "3 "3 "3 "3 "3!#4"#4#%6#&7%'9&(:(*;)+>+-?,.A./C/1E02F13G24H35I?I[///..---+*('%"     "3 "3 "3 "3 "3 "3 "3"#4#%5#&7%'9'):(*;)+>+-?,.A./C/1E02F13G24H35I"3///..--,+*(&$"   !* "3 "3 "3 "3 "3 "3!#4!#4#%5#&7%'9&(:(*;)+>+-?,.A./C/1E02F23G24H35I////.---,*)(&$!   i~ "3 "3 "3 "3 "3 "3!#3!#4#%5#%7%'9&(:(*<)+>+-?,.A./C/1E02F23G24H35IP^o////.---,*)(%#"   "3 "2 "3 "3 "3 "3!#4!#4#%5#&7%'9&(:(*;)+>+-?,.A./C/1E02F23G24H35I(->////.--,,*((%#! -5?$'8 "2 "2 "3 "3 "3!#4!#4#%5#&7%'9&(:(*;*+>+-?,.A./C/1E02F23G24H35I 1////.--,+*('$#!  )-? "2 "3 "3 "3 "3!#4!#4#%5#&7%'9&(:(*;)+>+-?,.B./C/1E02F23G24I35J/////.-,,+)(&$#  .4E "2 "3 "3 "3 "3!#4!#4#%5#&7%'9'):(*<)+>+-?-/A./C/2E13F23G24I35I).@/////.-,+*)(%$"! =HS=GX "2 "3 "3 "3 "3!#4!#4#%5#&7%'9'):(*<)+>+-?-/A./C/2E13F23G35H35I0////..-,+*((%$" `q "2 "3 "3 "3 "3!#4!#4#%5#&7%'8'(:(*;)+>+-?-/A./C/2E13F23G35H35I/////..-,+)('%#"   "2 "2 "3 "3 "3!#4!#4#%5#&7%'9'(:(*<*+>+-?-/A./C/2E13F23G35H35IUct////...-,*)(&%#"  JWd "2 "2 "3 "3 "3!#4"#4#%6#%7%'9'):(*<*+>+-?,.A./C/1E13F24G35H35I!%6////...-,*((&$#"! "2 "3 "3 "3 "3!#4"#4#%6#&7%'9'):(*<*+>+-?,.B.0C/1E13F24G35H46J0///...-,+)('%$#!  !$5 "3 "3 "3 "3!#4"$4#%6#%7%'8'):'*<*+>+-?-/B.0C/2E13G24G35H58Ln////...-,+*(&%$#"  ES_#%6 "3 "3 "3 "3"#4"$4#%6#&7%'8'):(*<*,>+-?,.B.0C/1E13G24G35H8;O"%6///...-,++)(&$#""! &*< "3 "3 "3 "3"#4"$5#%6#%7%'8');'*<*+>+-?,.B/1C/2E13G24H24I:>R////...-,+*)(%$#""!  +4;M "3 "3 "3!#3!#5"$5#%6#%7%'8');(+<*+>+-?-/B.0C/2E13G24G35I<@THSe////...-,+*('&$#"!!  ]n}BM` "3 "3!#3!#3!#4"$5#%6#&7%'8');(*<*+>+-?-/B.0C02E13F24G35I>CW 1////...-+*)('%$""!!   Vdu!#3!#3!#3!#3!#5"$5#%6$&7%'9&(:(*;*+>+-@-/B.0C02F13G24H35I@F[z/////..-,+*)(&%$#"!!  ;GVw!#3!#3!#4!#4!#5"$5#&6$&7%'9'):(*=*,?+.@-/B/1C02E23G35G35ICJ]06G////...-,+*)'&%$#"!!  !#4!#4!#4!#4!#5#%5#%6$&7%'9'):)+<*,?+.@-/B/1C02E23G35G35IMTi0////...-,+)('%$##"!  "'3!#4!#4!#4!#4"$5#%5#&7$&7&'9');)+<+,?,.@-/B/1C02F23G35H35IYeyWgy/////..-,+*)(&%$#"""! s"$4"$4"$4"$4"$5#%6#%7%'7&(:'*;)+=+,?,.@./B/1D13F23G35H35Ihw"%7/////..-,+*)(&%$#""!!"ew"$5"$5"$5"$5"$5#%6#&7%'8&(9'*;)+=+-?,.A.0C/1E13F23G35H36Iv/////...-,+*('&$$"""! cwVew#%5"$5"$5#%5#%5$&6$&7%'8')9'*;)+>+-?-/A.0C/1D13F24G35H36I;DV/////...-,+*('%$#""!  P]o#%5#%5#%5#%5#%6#&7%'7&'8&(:(*;*+=+-?-/A.0B02E13F24G35I36I0/////...-,*)('%$#"!! 17FJVh#%6#%6#%6#%6#%6$'7%'7&(9'):)+<*,>+.?-/A/1C02D13F34G35I36I//////..--+*)'&%#""   DOa$&6$&6$&6$&7$&7$&7%'8&(9');)+;+,>+.?-/A/1C/2E13F34G35I36I3:L//////..-,+*)'&$#"!  "&2?I[$&7$&7$&7$&7$&7%'7&(8&(:(*;)+;+-?,.?./A/1C02E13G35G35I46J 1//////..-,+*('%$"!  ;DT$&7%'7$&7%'7%'7%'7&(9'):'*:*+<*,>,.?./A/1C02E23G35H35I46Jw///////..-,+*('%$"! %7>O%'7%'7%'7%'7%'8%'9'(9'):(+;)+<+->,/@./A/1C02E23G35G35I46J,1C///////..-,+)(&%#" ]o~17H%'8%'8%'8%'8%'8&(8')9'):(*;*+=+->-/@-/B/1C02E23G35G36I46J0//////...-,+)(&%#! ,1A%'8%'8%'8%'8&(8&(8'):(*:(*;*,=+.?-/?./B/1C13E13F24G36I46Jas///////...-,+)(&%#! ER`),=%'8%'8&'8&(8&(8&(8'):(*:(*<*,=+.?,.@.0A/1C13E13F24G36I;>R'+<///////..--,+)'&%#! *,<&(8&(8&(8&(8&(8&(9'*:(*:)+<*,=+-?,.@./A/1C02E13F24G35IAG[////////..-,+*)'&$#! $)5(+;&(8&(8&(8&(8&(8&(9'):(*;)+;*,=+->-/@./A/1C02E13F34G35IHOcM[l////////..-,+*)'%$#! (+;&(8&(8&(8&(8&(9')9'):)+;)+;+-=+-?-/@./A/1C02D13E24G35IMXk#'8///////...-,+*('%$#"!(*;&(8&(8&(8&(8&(9')9');)+;)+;+-=+.?-/@.0B/1C02D13F24G35HS^s////////..-,++)('%$#"r'):&(8&(8&(8&(9&(9')9');)+;*+<+-=,.?-/@.0B/1C02D13F24G35H^lCMa///////...-,+*)(&%$#$')9&(8&(8&(8&(9')9')9'*;)+;*,<+->,.?-/@.0B/1C/2C13F24G35Hm"3///////..--++*)'&%$#AM['(9&(8&(8&(8&(9')9'):(*;)+;*,<+->,.?./@.0B/1C02C13F24G35H}///////...-,+*)('%$$#%'8&(8&(8&(8&(9')9'):(*;)+;*,<+->,.?./@.0B/1C02D13F24G35HFRc///////...-++*)'&%$$29H%'8%'8&(8&(8&(9')9'):(*;*+<*,<+->,.?./A.0B/1C/2D13F24G35G!3//////...-,+*)('&%$$%'8%'8&(8&(8&(9')9'*:(*;*,<*,<+->,.?./A.0B/1C02E13F24G35G///////..--,+*)''%%$"'4%'7%'8&'8&(8&(9')9'*:(*;*,<+-=+->,.@./A.0B/1C02E13F24G35GTdv///////..--++)('&%$$o%'7%'7&'8&(8&(9')9(*:(*;*,<+-=+->-/@./A.0B/1C02E13F24G35G"3//////...-,+*)''&%$$|%'7%'7%'8&'8&(9')9(*:)+;*+<+-=+->-/?./A.0A/1C02E13F24G35H///////..--,+*('&%%$Tetp$&7%'7%'7&'8&(9')9(*:)+;*+<+-=+->-/?./A.0B/2C13E13F24G35HRas//////...-,+*)('&%$$ev$&7%'7%'7&'8&(9')9'*:)+;*+<+-=+->-/?./A.0A/2C13E13F24G<@S!%6//////...-,+*)'&&%$+3AXgx$&6$&7%'7%'8&(9')9'*:)+;*+<+-=+-?-/?./A.0A/2C02E13F24GHPb///////..--++*)'&%%$KWi$&6$&7%'7%'7&(8')9'*:)+;*+<+-=+->-/?-/@.0A/2C02D13F24GT_raco///////..-,++)('&%$(AK\#%6$&7%'7%'7&(8')9'*:(*;)+<+-=+->-/?-/@.0A/1C02D13E24Gap')9///////..-,+*)('%%$4;L#%6$&6%'7%'7&(8')9'*:)+;)+;+-=+->-/?-/@.0A/1C02D13E23Go0//////...-,+*)'&%%(39J#%6$&6$&7%'7&(8')9'*:(*;)+;+-=+->-/?-/@./A/1C02C13E23Fpq{///////...-,+*)'&%%Raq16F#%6$&6%'7%'7&(8')9'*:(*;)+;+-=+-=,.?-/?-/A/1B/2C02E13F%'8///////...-,+*)'&%$/4F#%6$&6%'7%'7&(8')9'*:(*;)+;+,=+-=,.?-/?-/@/1B/2C02D13E////////...-,+*)'&%KLV.3D$&6$&7%'7%'7&(8')9'):(*;)+;+,=+-=+.?-/?-/@/1B/1C02D13E////////...-,+*)'&%,2B$&6$&7%'7%'8&(8')9'*:(*;)+;*+=+-=+.?-/?-/@.0B/1C02C13E+-<////////...-,+*)(&()6.1@$&7%'7%'7%'8&(8')9'*:(*;)+;*+=+-=+.>-/?-/?.0A/1B/2C02D0////////...-,+*)('-0@$&7%'7%'8&'8&(9')9'*:(*;)+;*+<+-=+.>,.?-/?./A/1B/2C02D/////////...-,++)()-/>%'7%'7%'8&(8&(9')9'*:(*;)+;)+<+-=+.>,.?-/?./A/1B/1C57IIJX//////////..--,+*)*,<%'7%'8&'8&(8&(9')9'*:(*;)+;)+<+-=+.>,.?-/?-/A/1B/1COP` "2//////////...-,,+)),;%'7%'8&(8&(8&(9')9'*:(*;)+;)+<+-=+.>,.?-/?-/A/1B/1Cklz///////////...--,+DFR(*:%'8%'8&(8&(8&(9')9'*:(*;)+;)+<+-=+.>,.?-/?-/A/1B/1Cno{////////////...-,,%'8%'8%'8&(8&(8&(9')9(*:(*;)+;)+<+-=+.>,.?-/?-/A/1B/1C')9////////////....-13B%'8%'8&(8&(8&(9')9')9'*:(*;)+;)+<+-=+.>,.?-/?-/A/1B/1C0/////////////....%'8&(8&(8&(8&(9')9')9'*:(*;)+;)+=+-=+.>,.?-/?-/@/1B/1C///////////////..%'7&(8&(8&(8&(8&(9')9')9'*:(*;)+;)+=+-=+.>,.?-/?-/A/1B/1CADQ///////////////..&(8&(8&(8&(8&(9')9')9'*:(*;)+;*+=+-=+.>,.?-/?-/A/1B/1C!2////////////////0&(8&(8&(8&(8&(9')9')9(*:(*;)+;*+=+-=+.>-/?-/?-/A/1B/1C/////////////////lmy&(8&(8&(8&(8&(9')9')9(*:(*;)+;*+=+-=+-?,.?-/?-/A/1B/1C\_k/////////////////&(8&(8&(8&(8&(9')9')9(*:(*;)+;)+=+-=+.?-/?-/?-/A/1B14E*,;////////////////;,.?-/?-/A/1B////////////////git&(8&(8&(8&(8&(9')9')9(*:(*;)+;*+<+-=+.?,.?-/?-/A/1B////////////////&(8&(8&(8&(8&(9')9')9(*:(*;)+;)+<+-=+.>,.?-/?-/@.0BPR_///////////////EGU&(8&(8&(8&(8&(9')9')9'*:(*;)+;)+=+-=+->,.?-/?-/@24F////////////////&(8&(8&(8&(8&(9')9')9(*:(*;)+;)+=+-=+->,.?,.?-/@79I////////////////2A&(8&(8&(8&(8&(9')9')9'*:(*;)+;)+<+-=+->,.?,.?-/?;=M///////////////&(8&(8&(8&(8&(9')9')9(*:(*;)+;)+;+-=+->,.>,.?-/?XYggiu//////////////0&(8&(8&(8&(8&(9')9')9(*:(*;)+;)+;*,=+->,.>,.>,.?"$5//////////////&(8&(8&(8&(8&(9')9')9(*:(*;)+;)+;*,<+->,.>,.>,.?///////////////&(8&(8&(8&(8&(9')9')9(*:(*;)+;)+;*,<+->,.>,.>,.?//////////////MN[&(8&(8&(8&(8&(9')9'):(*:(*;)+;)+;*,<*,=+->,.>,.?//////////////&(8&(8&(8&(8&(9')9'):(*:(*;)+;*+;*,<+-=+-=+.>,.>KMZ/////////////&(8&(8&(8&(8&(9&(9')9'):(*:)+;)+;*+<*,<+-=+-=+->/1B!#4/////////////&(8&(8&(8&(9&(9')9'):(*:)+;)+;*+<*,<+-=+-=+-==?P/////////////&(8&(8&(8&(8&(9&(9')9'):(*:)+;)+;*,<*,<+-=+-=+-=JL[/////////////&(8&(8&(8&(9')9')9'*:(*:)+;)+;*,<*,<+-=+-=+-=^an?@O//////////0&(8&(8&(8&(9')9')9(*:(*;)+;)+;*,<*,=+-=+-=+-=ϻ|no96C//////bcp&(8&(8&(9')9')9'):(*:)+;)+;*+<*,<*,=+-=+-=+-=кккк˹@;G!1//&(8&(9&(9')9')9(*:(*:)+;)+;*,<*,<+-=+-=+-=+->кккккккȵȯ&(9&(9')9')9'):(*:)+;)+;*+<*,<*,=+-=+-=+-=+->ккккккккк')9')9')9():(*:(*;)+;)+;*,<*,<+-=+-=+-=+-=+.>ѻккккккккк'):'):(*:(*:(*;)+;)+;*+<*,<*,=+-=+-=+-=+->46Fккккккккк(*:(*:(*:(*;)+;)+;*+<*,<*,<+-=+-=+-=+-=,.>OP^jsкккккккк(*;)+;)+;)+;)+;*+<*,<*,<+-=+-=+-=+-=+->,.>giuŧj֡wעyĩкккккк)+;)+;)+;)+<*,<*,<*,<+-=+-=+-=+-=+->,.>,.>\j֡x֡x֡xopкк͵ͺe`z|02F.0B,.?+->+-=+-=+->+-=+-=+-=+-=+.>,.>,.>x-y1֡x֡x֜ojjjjjójj\^q;=T;=T;=T;=T;=T;=T;=T;=T:=S9;Q79O68M57K35I13FjՐZ֡x֡xՂAjjjjjƹjjij|;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=Tj֡x֡x֡xnjjjjjɽjjsu;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=T;=Tkr&֡x֡x֡xkjjjjjj֗f;=T;=TWRcy}ymuiamYSdIH\;=T;=T;=T;=T=@Wt'Ւ]֡x֡x֟tjjjjjjײسкккккккккккj֡w֡x֡x֑]jjjjjjjיiкккккккккккތLw/֡x֡x֡xmjjjjjjשкккккккккккԷҴj֜o֡x֡x֠vjjjjjjjȼjڰкккккккккϹ- + +jk֡x֡x֡xՈLjjjjjjj²֎WккккккккϹ + + + +ޓXj֙k֡x֡x֞sjjjjjjjj֟sՈL黗ɯh̵ккккккœcd%  +jn֡x֡x֡xr$jjjjjjjjo֠vw,֝rjjjjp q"ojjĵjjY +_Pz/j֙i֡x֡xՐYjjjjjjjjjjj֚kv,jo氅֡wjjjjjjjjjjjj +,ѻju+֡x֡x֡xkjjjjjjjjjjׯՅFq$֪jjjr$֡xljjjjjjjjǹjjj + +q"jנv֡x֡xՄEjjjjjjjjjjjjɾՋRjjjjjä֡xnjjjjjjjjjjj-  +`RjՁ>֡x֡x֡wjjjjjjjjjjjjjj֒\ՃCjjjߔX֡xnjjjjjjjjؽjjjO +" q#j֠v֡x֡x}8jjjjjjjjjjjjjjjj֎U°֍T֡xkjjjjjjjj;֕bjji + +ȢՑ\֡x֡x֟tjjjjjjjjjjjjjjjjjjjlןsפ|֙ijjjjjjjjjjjjj@ + +ש֡x~:jjjjjjjjjjjjjjjjjjjv,֡xjjjjjjjjjjjՂB֕bjji$Q@ʣv,jjjjjjjjjjjjjjjjjj֚kຝ֙jjjjjjjjjjjjjp!j֞rjjjjjjjjjjjjjj׫֡xw.jjjjjjjjjjjjjj8mZ + +`Q֡xjjjjjjjjjjjjjjv-ǹjjjۣພՎVjjjjjjjjjjjjjjj~:Ƹjj쾚{4 +VFإ~s'jjjjjjjjjjjjjjjj|6ljjjϿټ*ؼ֡xjjjjjjjjjjjjjjjjjjlx/jj筀lC! +þ׼סvjjjjjjjjjjjjjjjjjjjj°֨jjjjj!  +! ̷Փ`jjjjjjjjjjjjjjjjjjjjj<ՇJjjjjjg&3 ^jjjk݊IjjjjjjjjjjjՀ?Հ=jjjjjjjjjjjjjjjjjjjjjjjjjjjjm֛mؾؼ֞sՆGx/jjjjjjjՄD׻֖dx0r&p"omlkjjjklkjjjjjjjjjjjjjjjjjjjx1רՌRjt(ػ֑Zljjjjjjjjjjjjjjjj֞s±ױ֗fՀ>p!jp"ՄE֡xؾ!,9Ybl$1W`imu}.9E$1$1}qydluV_hGQ[2=I$1$1$1$1$1(50;F'2?sz$1'2?S\f$1$14?JgoxV_h0;F0;F0;F0;F0;F0;F0;F$1w,7Cks{[dm[dm[dm[dm0;F0;F0;F0;F0;F0;F0;F0;F@JU5@K}:EPz0;F0;F0;F0;F0;F0;F0;F$1%1=0;F0;F0;F0;F0;F0;F0;FW`i^fpgoxowx+7V_h0;FFPZ!,9$1$1$1$1$1$1)4@OXb$1$1$1$1$1$1$1$1$1!,9iqz#/;X`j:DO$1IS]MVa$1u|#/;)4@|:EPlt|.9Ebkt)4@gpx@JU5@K}:EPIR](5$1'2?(5$10;F$1$1$1$1$1$1$1$1$1$1$11.QQ.Ht{t/e{0NtLt>??///......///]]^>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??>??NNONNO|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}|}}...|}}|}}lmm}}~>>>|}}///|}}|}}lmm|}}>>>|}}mnn>>>|}}>>>|}}|}}>>>|}}>??|}}|}}>>>|}}}}~>>>|}}...///>>>|}}|}}>>>|}}NNO]]^|}}>>>|}}...|}}......>>>|}}|}}///...>>>|}}MMNNNO|}}>>>|}}|}}>>>|}}|}}///|}}......>>>|}}>>>mnn|}}>>>|}}|}}|}}>>>|}}lmm>??|}}>>>|}}...}}~|}}lmm|}}>>>|}}|}}|}}|}}>>>|}}MMN|}}}}~}}~}}~}}~}}~}}~}}~}}~}}~}}~}}~}}~}}~}}~>>>...//////...]]^>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>MMN \ No newline at end of file diff --git a/screenshot/resource/printscreen b/screenshot/resource/printscreen new file mode 100644 index 0000000000000000000000000000000000000000..a787321593fae78d39d5ba6eb70199c91e8b6d78 Binary files /dev/null and b/screenshot/resource/printscreen differ diff --git a/screenshot/resource/process.txt b/screenshot/resource/process.txt new file mode 100644 index 0000000000000000000000000000000000000000..5ed23e4ce1566eebb70738eb5b015ee3a53039ac --- /dev/null +++ b/screenshot/resource/process.txt @@ -0,0 +1,69 @@ +hdf_devmgr +param_watcher +storage_manager +appspawn +hilogd +samgr +storage_daemon +udevd +uinput_inject +multimodalinput +token_sync_serv +huks_service +memmgrservice +bluetooth_servi +pulseaudio +accessibility +resource_schedu +faceauth +work_scheduler_ +bgtaskmgr_servi +audio_policy +deviceauth_service +softbus_server +wifi_hal_service +deviceinfoservi +faultloggerd +accountmgr +time_service +distributeddata +useriam +updater_sa +inputmethod_ser +ui_service +fms_service +distributedfile +distributedfile +netmanager +battery_stats +dslm_service +sensors +media_service +wifi_manager_se +distributedsche +installs +hiview +telephony +usb_service +camera_service +render_service +thermal +foundation +accesstoken_ser +hdcd +disp_gralloc_host +light_dal_host +vibrator_dal_host +sensor_dal_host +input_user_host +camera_host +audio_hdi_server_host +wifi_host +usbfnMaster_host +usb_host +blue_host +wifi_hal_service +com.ohos.systemui +device_usage_st +com.ohos.launcher +power_host \ No newline at end of file diff --git a/screenshot/resource/settings.png b/screenshot/resource/settings.png new file mode 100644 index 0000000000000000000000000000000000000000..ce67da14ab9366881d387902616408cce0ead32f Binary files /dev/null and b/screenshot/resource/settings.png differ diff --git a/screenshot/resource/settings.pngraw b/screenshot/resource/settings.pngraw new file mode 100644 index 0000000000000000000000000000000000000000..987afd3ee1301382d27b8451971c1d5e395333a4 Binary files /dev/null and b/screenshot/resource/settings.pngraw differ