From b4882e629c51b79dbcd9db89f85df4c923bdb86b Mon Sep 17 00:00:00 2001 From: kcz358 Date: Thu, 13 Jun 2024 02:33:08 +0000 Subject: [PATCH 01/32] Allow one vision model to choose video decode backend and seperate the import for llava and llavavid --- lmms_eval/models/llava_onevision.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lmms_eval/models/llava_onevision.py b/lmms_eval/models/llava_onevision.py index 7acd66df..42cbd151 100755 --- a/lmms_eval/models/llava_onevision.py +++ b/lmms_eval/models/llava_onevision.py @@ -27,6 +27,7 @@ from lmms_eval.api.instance import Instance from lmms_eval.api.model import lmms from lmms_eval.api.registry import register_model +from lmms_eval.models.model_utils.load_video import read_video_pyav try: from llava.model.builder import load_pretrained_model @@ -34,15 +35,17 @@ from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX from llava.conversation import conv_templates, SeparatorStyle +except Exception as e: + eval_logger.debug("LLaVA is not installed. Please install LLaVA to use this model.\nError: %s" % e) + +try: from llavavid.model.language_model.llava_qwen import LlavaQwenConfig from llavavid.model.language_model.llava_llama import LlavaConfig AutoConfig.register("llava_qwen", LlavaQwenConfig) AutoConfig.register("llava_llama", LlavaConfig) - except Exception as e: - eval_logger.debug("LLaVA is not installed. Please install LLaVA to use this model.\nError: %s" % e) - + eval_logger.debug("") # inference implementation for attention, can be "sdpa", "eager", "flash_attention_2". Seems FA2 is not effective during inference: https://discuss.huggingface.co/t/flash-attention-has-no-effect-on-inference/73453/5 # if is_flash_attn_2_available: # best_fit_attn_implementation = "flash_attention_2" # flash_attn has a bug that says: ERROR Error query and key must have the same dtype in generating @@ -76,6 +79,7 @@ def __init__( mm_spatial_pool_stride: Optional[int] = 2, mm_spatial_pool_mode: Optional[str] = "average", token_strategy: Optional[str] = "single", # could be "single" or "multiple", "multiple" denotes adding multiple tokens for each frame + video_decode_backend: str = "pyav", **kwargs, ) -> None: super().__init__() @@ -110,6 +114,7 @@ def __init__( self.max_frames_num = max_frames_num self.mm_spatial_pool_stride = mm_spatial_pool_stride self.mm_spatial_pool_mode = mm_spatial_pool_mode + self.video_decode_backend = video_decode_backend overwrite_config = {} overwrite_config["mm_spatial_pool_stride"] = self.mm_spatial_pool_stride @@ -388,7 +393,10 @@ def _collate(x): elif type(visual[0]) == str: # For video task image_tensor = [] try: - frames = self.load_video(visual, self.max_frames_num) + if self.video_decode_backend == "decord": + frames = self.load_video(visual, self.max_frames_num) + elif self.video_decode_backend == "pyav": + frames = read_video_pyav(visual, num_frm=self.max_frames_num) frames = self._image_processor.preprocess(frames, return_tensors="pt")["pixel_values"].half().cuda() image_tensor.append(frames) except Exception as e: From db3c403c9ba7715d381f8aa4e1b8a6a5553136c1 Mon Sep 17 00:00:00 2001 From: kcz358 Date: Fri, 14 Jun 2024 04:21:29 +0000 Subject: [PATCH 02/32] Fix llava onevision pyav load issue --- lmms_eval/models/llava_onevision.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lmms_eval/models/llava_onevision.py b/lmms_eval/models/llava_onevision.py index 42cbd151..bc60855b 100755 --- a/lmms_eval/models/llava_onevision.py +++ b/lmms_eval/models/llava_onevision.py @@ -396,7 +396,7 @@ def _collate(x): if self.video_decode_backend == "decord": frames = self.load_video(visual, self.max_frames_num) elif self.video_decode_backend == "pyav": - frames = read_video_pyav(visual, num_frm=self.max_frames_num) + frames = read_video_pyav(visual[0], num_frm=self.max_frames_num) frames = self._image_processor.preprocess(frames, return_tensors="pt")["pixel_values"].half().cuda() image_tensor.append(frames) except Exception as e: From f4eeaa98e8e1b19ff31ccc63c61b59d4fb5b40cb Mon Sep 17 00:00:00 2001 From: kcz358 Date: Fri, 14 Jun 2024 07:40:48 +0000 Subject: [PATCH 03/32] Fix image aspect ration in gen kwargs for llava one vision --- lmms_eval/models/llava_onevision.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lmms_eval/models/llava_onevision.py b/lmms_eval/models/llava_onevision.py index bc60855b..a755b0c9 100755 --- a/lmms_eval/models/llava_onevision.py +++ b/lmms_eval/models/llava_onevision.py @@ -463,6 +463,8 @@ def _collate(x): # These steps are not in LLaVA's original code, but are necessary for generation to work # TODO: attention to this major generation step... + if "image_aspect_ratio" in gen_kwargs.keys(): + gen_kwargs.pop("image_aspect_ratio") try: with torch.inference_mode(): cont = self.model.generate(input_ids, attention_mask=attention_masks, pad_token_id=pad_token_ids, images=image_tensor, use_cache=self.use_cache, **gen_kwargs) From c58271a5fdcb61c12468a995555d0e40d362586f Mon Sep 17 00:00:00 2001 From: choiszt Date: Mon, 17 Jun 2024 02:05:40 +0800 Subject: [PATCH 04/32] update videomme_subtitle and modified prompt for ablations --- lmms_eval/tasks/videomme/utils.py | 31 ++++++++++++- .../tasks/videomme/videomme_subtitle.yaml | 43 +++++++++++++++++++ 2 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 lmms_eval/tasks/videomme/videomme_subtitle.yaml diff --git a/lmms_eval/tasks/videomme/utils.py b/lmms_eval/tasks/videomme/utils.py index 3631f87c..4cd26715 100755 --- a/lmms_eval/tasks/videomme/utils.py +++ b/lmms_eval/tasks/videomme/utils.py @@ -106,10 +106,37 @@ def videomme_doc_to_visual(doc): def videomme_doc_to_text(doc, model_specific_prompt_kwargs=None): + + option_prompt="Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option." + question = doc["question"] + option = str(doc["options"]) + question = question + "\n" + option + full_prompt=option_prompt+"\n"+question+"\n"+"The best answer is:" + return full_prompt +# Frames + Subs +# This video's subtitles are listed below: +# 【subtitles】 + +# Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option. +# 【question】 +# The best answer is: +# Frames / Frames + Audio +# Select the best answer to the following multiple-choice question based on the video. Respond with only the letter (A, B, C, or D) of the correct option. +# 【question】 +# The best answer is: + +def videomme_doc_to_text_subtitle(doc, model_specific_prompt_kwargs=None): + subtitles_prompt="This video's subtitles are listed below: \n" + if doc["Subtitle"]=="": + subtitle="No subtitles available" + else: + subtitle=doc["Subtitle"] + option_prompt="Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option." question = doc["question"] option = str(doc["options"]) - question = question + "\n" + option + model_specific_prompt_kwargs["post_prompt"] - return question + question = question + "\n" + option + full_prompt=subtitles_prompt+subtitle+"\n"+option_prompt+"\n"+question+"\n"+"The best answer is:" + return full_prompt def extract_characters_regex(s): diff --git a/lmms_eval/tasks/videomme/videomme_subtitle.yaml b/lmms_eval/tasks/videomme/videomme_subtitle.yaml new file mode 100644 index 00000000..04125766 --- /dev/null +++ b/lmms_eval/tasks/videomme/videomme_subtitle.yaml @@ -0,0 +1,43 @@ +dataset_path: lmms-lab/Video-MME +dataset_kwargs: + token: True + cache_dir: videomme + video: True + # From_YouTube: True +task: videomme_subtitle +test_split: test +output_type: generate_until +doc_to_visual: !function utils.videomme_doc_to_visual +doc_to_text: !function utils.videomme_doc_to_text_subtitle +doc_to_target: "answer" +generation_kwargs: + max_new_tokens: 16 + temperature: 0 + top_p: 1.0 + num_beams: 1 + do_sample: false +# The return value of process_results will be used by metrics +process_results: !function utils.videomme_process_results +# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results +metric_list: + - metric: videomme_percetion_score + aggregation: !function utils.videomme_aggregate_results + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "" + # gpt4v: + # pre_prompt: "" + # post_prompt: + # # qwen_vl: + # # pre_prompt: "" + # # post_prompt: " Answer:" + # # otterhd: + # # pre_prompt: "" + # # post_prompt: " Answer:" + # xcomposer2_4khd: + # pre_prompt: "[UNUSED_TOKEN_146]user\n" + # post_prompt: " Answer this question with A, B, C, or D.[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" +metadata: + - version: 0.0 From 59cce7341dce166c3ab5154beeb133552c80b04d Mon Sep 17 00:00:00 2001 From: Bo Li Date: Tue, 18 Jun 2024 16:50:19 +0000 Subject: [PATCH 05/32] Squashed commit of the following: commit 050b2c370017e9b97475dd6cf01fd051b5ca5c86 Merge: 74facb41 ef306512 Author: Li Bo Date: Tue Jun 18 13:13:38 2024 +0800 Merge pull request #114 from zjysteven/add-tinyllava add tinyllava commit ef306512e5135f76dffa383f600b8733015836e8 Author: Jingyang Zhang Date: Mon Jun 17 17:57:02 2024 -0400 fix typo commit 9bab67732a4238097725deddf867fb1946ffee40 Merge: dbfb2387 74facb41 Author: Jingyang Zhang Date: Sun Jun 16 10:56:05 2024 -0400 Merge branch 'EvolvingLMMs-Lab:main' into add-tinyllava commit 74facb41a826691dfce4458cf1d8659b34fc5bf5 Merge: 8ba192f9 d5df72de Author: Li Bo Date: Sun Jun 16 17:59:19 2024 +0800 Merge pull request #118 from teowu/main Fix the potential risk by PR #117 commit d5df72de2d03108d6b365818ecc3551ac9aa6302 Merge: 5bf59ed2 8ba192f9 Author: Teo (Timothy) Wu Haoning <38696372+teowu@users.noreply.github.com> Date: Sun Jun 16 15:32:13 2024 +0800 Merge branch 'EvolvingLMMs-Lab:main' into main commit 5bf59ed250da98a408a94e214a73caa400cba842 Author: teowu Date: Sun Jun 16 07:27:28 2024 +0000 fix #117, allow auto download with tar format videos commit 98b3955cb808e36303c030aea78eb037d1ec59ce Merge: a056f118 be9dada8 Author: teowu Date: Sun Jun 16 07:25:07 2024 +0000 Merge branch 'main' of https://github.com/teowu/lmms-eval into main commit a056f118704eccec86ce32ab86981ce4bc1e1deb Author: teowu Date: Sun Jun 16 07:23:54 2024 +0000 fix #117, allow auto download with tar format videos commit 8ba192f94edf5d99598983445d5faa4f8807c49f Merge: 7cc28907 be9dada8 Author: Li Bo Date: Sat Jun 15 17:30:59 2024 +0800 Merge pull request #117 from teowu/main LongVideoBench for LMMs-Eval commit be9dada8b4189c53c08e1674ab273242cf2f80a0 Merge: 62ea8ceb 7cc28907 Author: Teo (Timothy) Wu Haoning <38696372+teowu@users.noreply.github.com> Date: Sat Jun 15 16:39:20 2024 +0800 Merge pull request #1 from EvolvingLMMs-Lab/main Merge pull request #113 from teowu/main commit 62ea8ceb223ef2b51ebab2bcd50d5cf339c35cfe Author: teowu Date: Sat Jun 15 08:30:11 2024 +0000 LongVideoBench support: image LMMs (idefics2, phi3) and video LMMs (LLaVA-Next-Video-34B) commit 7cc28907edbb4eb58ee1398772a48110ea35dd96 Merge: 4bc7224d ea14cd4b Author: Li Bo Date: Sat Jun 15 14:10:22 2024 +0800 Merge pull request #113 from teowu/main Q-Bench, Q-Bench2, A-Bench commit dbfb23873979f789477f4797ee2d6071e0fd921e Author: Jingyang Date: Fri Jun 14 16:20:42 2024 -0400 add tinyllava commit ea14cd4b361f4c95b3665cbdb95bc51754090eb5 Author: teowu Date: Fri Jun 14 15:01:52 2024 +0000 Add qbench, qbench2, abench; fix phi3v as its current implementation does not support multi-image commit 4bc7224dcd27fe8b288bfc3fed4d7a9da9635658 Merge: 2797987f bf14cb85 Author: Li Bo Date: Fri Jun 14 02:14:43 2024 +0800 Merge pull request #111 from XinrunDu/main add II-Bench commit bf14cb8527b2b7ac438a36567a875168bc02d294 Author: XinrunDu Date: Thu Jun 13 09:37:02 2024 +0000 fix dataset_path commit 6248113f4e11a0ac396d31fa1b032a142fea8cb4 Author: XinrunDu Date: Thu Jun 13 09:32:06 2024 +0000 add II-Bench commit 2797987f5b88b87bd172714b678a75a1d8051826 Merge: 63d82f1f 66d4bb2d Author: Li Bo Date: Thu Jun 13 11:14:47 2024 +0800 Merge pull request #109 from EvolvingLMMs-Lab/pufanyi/update_version [Small Update] Update the version of LMMs-Eval commit 66d4bb2d9c9afbbdea40196d4ad80e214d0b14b6 Author: Fanyi Pu Date: Thu Jun 13 11:13:00 2024 +0800 update version commit 63d82f1ff11eb430d91a15d6788a1f0b4d596850 Author: Li Bo Date: Thu Jun 13 11:04:32 2024 +0800 Update README.md commit 44a33799671cb668f55366d5e5a4ddb051a3a1b4 Merge: 5ed00356 0ce46d08 Author: Li Bo Date: Thu Jun 13 04:00:12 2024 +0800 Merge pull request #105 from tianyu-z/main Include VCR commit 0ce46d088e473d12d63de44f17c67dceab25658c Author: Suyuchen Date: Wed Jun 12 15:56:34 2024 -0400 update README.md commit 46a88d8b0199ed44d2ff459fb372f2e006960cea Merge: 47b13b9b 5ed00356 Author: Suyuchen Date: Wed Jun 12 15:50:26 2024 -0400 merged readme.md commit 47b13b9b320d36ac53b3622557e31239f7c22621 Author: Suyuchen Date: Wed Jun 12 15:30:52 2024 -0400 update aggregation function for vcr_wiki commit 5ed00356676cf5d0ff056cf27d1b519b8e303ff7 Author: Li Bo Date: Thu Jun 13 03:21:42 2024 +0800 Update README.md commit ed8806839db5988ced672bd162b7b046edb4863a Author: Li Bo Date: Thu Jun 13 03:13:59 2024 +0800 Update README.md commit fea3806026932a6e2bd6e538bcc413e33abdf245 Merge: d99a24ab 05dc8e85 Author: Li Bo Date: Thu Jun 13 03:11:49 2024 +0800 Merge pull request #108 from EvolvingLMMs-Lab/internal_main_dev [Upgrade to v0.2] Embracing Video Evaluations with LMMs-Eval commit 05dc8e853eab7c6bc782a1e2662d2efe7422f767 Author: Bo Li Date: Wed Jun 12 15:56:04 2024 +0000 chore: Update lmms-eval to support video evaluations for LLaVA models commit cbeee20bc4ffb510a2b23d96cdaf4077be7c2a9e Author: Bo Li Date: Wed Jun 12 15:50:30 2024 +0000 chore: Update lmms-eval to support video evaluations for LLaVA models commit f00d5498b69dd4f7e54c907ac906abc7c128f000 Author: Bo Li Date: Wed Jun 12 15:46:33 2024 +0000 Update image alignment in README.md commit 34156335db74cef9e3f0915d7172fd6b22456c15 Author: Bo Li Date: Wed Jun 12 15:43:16 2024 +0000 Update llava conv_template in lmms_eval/models/llava.py commit 50575a950736bc8fc1e191310314cbb5fdff5720 Author: Bo Li Date: Wed Jun 12 15:39:03 2024 +0000 chore: Update lmms-eval to support video evaluations for LLaVA models commit c9b2252fb8a15dd04252af5e6b4613855afd6ada Author: Bo Li Date: Wed Jun 12 15:33:48 2024 +0000 Bump version to 0.2.0.dev0 commit 465bd4205e8097e9c037b24a3ed08dd6a7694efa Merge: e43bd840 d99a24ab Author: Bo Li Date: Wed Jun 12 15:04:25 2024 +0000 Merge branch 'main' of https://github.com/EvolvingLMMs-Lab/lmms-eval into internal_main_dev commit e43bd840b63eb499856e36d9d2ba45c924abcead Author: Bo Li Date: Wed Jun 12 14:54:06 2024 +0000 chore: Remove unnecessary files and code related to live_bench and sft_eval tasks commit d99a24abd06df10d07e5a4d0ad5030613f92f2e7 Merge: 374590be a66003be Author: Li Bo Date: Wed Jun 12 19:45:57 2024 +0800 Merge pull request #107 from AtsuMiyai/new_task/upd_update update gpt-3.5-turbo version commit a66003befe4175824a1be6ed59f5f5b88c15f792 Author: AtsuMiyai Date: Wed Jun 12 17:05:17 2024 +0900 update gpt-3.5-turbo version commit ee91f272985f32eeb9cd6faa41afdd8eb49cac30 Author: AtsuMiyai Date: Wed Jun 12 16:50:53 2024 +0900 update gpt-3.5-turbo version commit 326b9694fc77398592b8caf3ba0bc2e2bb903813 Author: tianyu-z Date: Mon Jun 10 20:07:40 2024 -0400 include std and confidence interval commit cd050d4a721d01a2ace0cd030cf7f8dc67eb8c4d Author: Suyuchen Date: Mon Jun 10 18:49:47 2024 -0400 update vcr_wiki tasks in README.md commit 205721e0aad76dde30255e56149bbed121883356 Author: Suyuchen Date: Mon Jun 10 18:43:15 2024 -0400 update vcr_wiki tasks commit db8e718b502469e8536ee359c5559de87635ffc7 Author: tianyu-z Date: Mon Jun 10 16:13:58 2024 -0400 include the try-except logic for spacy commit 427dabb790118f538b64e4e5bf6a7aab9689b3d9 Author: Suyuchen Date: Mon Jun 10 15:51:05 2024 -0400 add crossed_text to vcr_wiki output commit 043b483eb55f7be4fea75c9bc0b9b03d251b109b Author: tianyu-z Date: Mon Jun 10 15:47:00 2024 -0400 switch logic commit e1f04db8f58dd10591fde335ea13f74cda7c79bd Author: tianyu-z Date: Mon Jun 10 02:38:21 2024 -0400 modify the form of VCR commit 96e8d9867c9549ab7490f4b12cfeb6a06238e0aa Author: tianyu-z Date: Mon Jun 10 00:10:30 2024 -0400 init include vcr commit 374590be62f988a76cf6704cfe394cd8ae7d4cb6 Merge: 504685e2 cb3b9ce7 Author: Kaichen Zhang - NTU Date: Fri Jun 7 20:25:48 2024 +0800 Merge pull request #101 from Gumpest/main Update conbench in README commit 504685e20b17659b913cf46f3012c16bf429e09d Author: Li Bo Date: Thu Jun 6 15:42:15 2024 +0800 Update README.md commit cb3b9ce71411da862ff01342a9122a3c656ffbd1 Merge: c9793b38 67b64ea4 Author: Yuan Zhang <56063339+Gumpest@users.noreply.github.com> Date: Thu Jun 6 11:22:24 2024 +0800 Merge branch 'EvolvingLMMs-Lab:main' into main commit c9793b3883714f254a700230b7bee781d6110e73 Author: Yuan Zhang Date: Thu Jun 6 11:21:05 2024 +0800 update README commit 67b64ea44a5a39d96c7a196a8a8345a7486bd912 Merge: 8ee7848a 5fd68451 Author: Li Bo Date: Wed Jun 5 23:12:58 2024 +0800 Merge pull request #100 from Gumpest/main add Conbench commit 5fd684515c55ef643726c1b6c720c7cbd2183ba1 Author: Yuan Zhang Date: Wed Jun 5 21:52:31 2024 +0800 add conbench commit 8ee7848aaa6383aa1f919c3f21199c81db3fff89 Merge: 747e1978 6fefaf7c Author: Li Bo Date: Tue Jun 4 17:09:33 2024 +0800 Merge pull request #95 from AtsuMiyai/new_task/upd add MM-UPD commit 747e19782996065cdce7157ee8c5e15beb5b6c59 Merge: 4854a34d 05843072 Author: Li Bo Date: Tue Jun 4 17:09:04 2024 +0800 Merge pull request #97 from CaraJ7/update Add MathVerse in README.md commit 6fefaf7cea504e35583ee7217449da290295a7a4 Author: AtsuMiyai Date: Tue Jun 4 17:36:39 2024 +0900 update utils.py for leaderboard submission commit 5f4fe360def1c48ea0cb1da6409d192784882308 Author: AtsuMiyai Date: Sun Jun 2 23:28:27 2024 +0900 slightly change query_prompt for the reproduction commit 05843072d608b970bcada1cd0db65a3c80864060 Author: CaraJ7 <1350074492@qq.com> Date: Sun Jun 2 17:05:28 2024 +0800 Add MathVerse in README.md commit 0581ab3cfb362e2024988b46fbbb00324f1233c9 Author: AtsuMiyai Date: Fri May 31 16:09:45 2024 +0900 merge model_specific_prompt_kwargs and dataset_name into each task yaml commit 4854a34d4d37efb5e201f2691ecdb054590cf20b Author: Pu Fanyi Date: Sat May 4 19:23:39 2024 +0800 Group MMMU images into one image (#83) * update * update font * Add matplotlib.font_manager import in utils.py * Refactor font handling in add_order_label function in utils.py * group mmmu --------- Co-authored-by: Li Bo commit d224794c49520f4d28a31862cf977198cd6cbc5e Author: AtsuMiyai Date: Wed May 29 15:15:59 2024 +0900 add upd commit 453e7936424220f02b99517059ca71babfbe5f5a Author: AtsuMiyai Date: Wed May 29 15:03:30 2024 +0900 add upd commit 909edd6769ddcf8a546be4fdd129416687516878 Author: AtsuMiyai Date: Wed May 29 12:52:21 2024 +0900 add upd commit 7c1ac9706cafc4801fa4da181d2f610b7838c7b8 Author: AtsuMiyai Date: Wed May 29 12:50:32 2024 +0900 add upd commit 811301c5280ddd74986645086f026ab730c8848c Author: AtsuMiyai Date: Wed May 29 12:46:58 2024 +0900 add upd commit 71401bafd1d515f704f86ab4817a758542bc4672 Author: AtsuMiyai Date: Wed May 29 12:41:21 2024 +0900 add upd commit 24dc435908d921e9f1a5706e3141b12e5d838d18 Author: Bo Li Date: Mon May 27 10:17:32 2024 +0000 fix compatibility issue of older version llava commit 616edf43731415b35f0f5e97748ed2e017a2891d Author: Bo Li Date: Mon May 27 09:32:26 2024 +0000 [Fix] import issues of multilingual llava and olympiadbench commit 4c5a99e21a63fb0ee1c7d15546d18066e1d9894b Merge: 45c05b2b b05c3e22 Author: Li Bo Date: Mon May 27 14:19:53 2024 +0800 Merge pull request #87 from vfragoso/vifragos/phi3v Adding microsoft/Phi-3-vision-128k-instruct model. commit b05c3e222fabd308dd7af4e04c1c6a0812962fe6 Author: Victor Fragoso Date: Fri May 24 16:36:37 2024 +0000 Adding documentation of Phi3v class. commit c2008971308ce8168d57c24d00b725832f099244 Author: Victor Fragoso Date: Fri May 24 16:25:02 2024 +0000 Adding prompt arguments for Phi3v on MathVista-TestMini commit 7f9fb6bcc6cd24a7b8011b8753d0ea98cc2451fd Author: Victor Fragoso Date: Fri May 24 13:24:16 2024 +0000 Adding Phi3v model. commit 45c05b2b2bece76e06849a52a0d034f9c0ac2367 Author: kcz358 Date: Thu May 23 03:47:36 2024 +0000 Set printing info for llava_hf to debug level commit 53f013ed8278776551ca992562253387cc9968d2 Author: kcz358 Date: Thu May 23 03:41:39 2024 +0000 Fix pope random name in pope full commit 22520a95f13334b75eee0cf0387151067a6bf516 Author: kcz358 Date: Thu May 23 03:41:14 2024 +0000 Add separated pope tasks by category commit d1eefb1565014b47287ffa6b350229062f8f602f Author: kcz358 Date: Thu May 9 08:36:02 2024 +0000 Update gitignore commit b2b4dbd2dc13432c79208db35abf7f55c97f1790 Author: kcz358 Date: Mon May 20 07:45:11 2024 +0000 Comment out Spice in caption task so that don't need to download stanford nlp model commit 662f05ce4c62a46a83f819d3a5925a9bd20059b5 Author: kcz358 Date: Mon May 20 03:13:13 2024 +0000 Comment out parse result in xcomposer commit 09329322916bfbb604d72ddaf50441a0947f8805 Author: kcz358 Date: Thu May 16 03:55:39 2024 +0000 Fix instructblip qformer size mismatch and multi-images problem commit 557a6a3b15e07e506bc05e2cc76ff6a2f8c93964 Author: kcz358 Date: Thu May 16 03:11:41 2024 +0000 Remove redundant code in fuyu commit 6aeb5504e74ed1980b53700d8e4d4dcf7d1b38fc Author: kcz358 Date: Thu May 16 01:45:24 2024 +0000 Fix idefics2 llava in the wild bugs commit aea80e6a71f716951353e1e5d68380243396b4d6 Author: kcz358 Date: Wed May 15 11:07:35 2024 +0000 Better task list_with_num commit 3c12a080d66b9c38f615b961befca7c30f82fa39 Author: Li Bo Date: Sat May 18 02:35:52 2024 +0800 Update LICENSE commit 82317a635a4978b32e095a06cc295d0ae23661c2 Author: Li Bo Date: Sat May 18 02:29:09 2024 +0800 Update LICENSE commit a8bba1cdb51061a0d27bf9a98cca1505b5c58ea5 Author: Li Bo Date: Sat May 18 02:28:03 2024 +0800 Create LICENSE commit caa5893b5fd2c1d32c72b97f371ccd9a8d9ec3a0 Merge: c0944486 423b0060 Author: Li Bo Date: Mon May 13 11:45:26 2024 +0800 Merge pull request #73 from EvolvingLMMs-Lab/kc/qwen_vl_api [Feat] Add qwen vl api commit c09444860362a136f17641f8b2a1f91c2bbc3715 Author: kcz358 Date: Sat May 11 06:11:19 2024 +0000 Fix llava_hf image tokens number issue commit 64f07e497f53e5bcbe9e8fb5830cc7a1daaf7ff1 Author: kcz358 Date: Thu May 9 02:04:10 2024 +0000 Fix endless warning for llava_hf generation commit 8aaa828108da8514dd9cd23a9d6d83a8b67f2d65 Author: Bo Li Date: Thu May 2 06:13:56 2024 +0000 Add model_name parameter to Llava constructor commit 7847dc4d8efe60605102414bb071b1da9851228e Author: kcz358 Date: Tue May 7 03:15:59 2024 +0000 Parse result for llava_hf 1.6 commit 3e56b4f92db39a2ce92903b0c43a34f1d14d59ec Author: kcz358 Date: Tue May 7 03:09:56 2024 +0000 Fix llava_hf generation for 1.6 commit fa3ff92b07ea5aaa633a2039818c310744f84d07 Author: kcz358 Date: Mon May 6 08:32:57 2024 +0000 Fix llava conv template for llama3 commit 423b00606aa77fd6b324c19e3d480b73ab852db6 Author: kcz358 Date: Sun May 5 07:54:52 2024 +0000 Add qwen vl api commit b7fd7a9f7aa3c0e1e50374047dfffc46a7462b90 Merge: 986139a9 c5a130b6 Author: Li Bo Date: Sun May 5 13:19:48 2024 +0800 Merge pull request #59 from EvolvingLMMs-Lab/add_idefics2 add idefics2 commit 986139a9a31154679bdea029b09639f84712db27 Merge: b46239ca 8d3526c0 Author: Li Bo Date: Fri May 3 01:18:18 2024 +0800 Merge pull request #36 from cocoshe/main [Fix] repr llava doc commit b46239cabab7b545ec99d9eae6c851e531b18374 Merge: bc69a744 373265f2 Author: Li Bo Date: Fri May 3 01:17:34 2024 +0800 Merge pull request #56 from gagan3012/main Multilingual LLava bench commit bc69a744d2cffeb06eba62e843bcc7869e27613a Merge: eef3aeb6 626e8a91 Author: Li Bo Date: Fri May 3 01:12:14 2024 +0800 Merge pull request #70 from hunterheiden/hsh/new_task/WebSRC Bugfix: WebSRC should be token-level F1 NOT character-level commit 626e8a91a4af2dd5dd774fc130cc2f4d74b2bc37 Author: Hunter Heidenreich Date: Thu May 2 09:31:03 2024 -0400 Bugfix: WebSRC should be token-level F1 NOT character-level commit eef3aeb6ab589bb1d5045af5b5c1984a69402d19 Merge: c4e9dd9f 9bca4413 Author: Li Bo Date: Thu May 2 14:38:17 2024 +0800 Merge pull request #69 from hunterheiden/hsh/new_task/WebSRC [New Task] WebSRC (multimodal Q&A on web screenshots) commit 9bca441376325173128e5c50087f068e519c48da Author: Hunter Heidenreich Date: Wed May 1 11:07:29 2024 -0400 Add code to enable compilation of submission for WebSRC test split commit 7687495b1ed552eeba088cb9ad5aaf1170e7fff9 Author: Hunter Heidenreich Date: Wed May 1 10:47:32 2024 -0400 Draft and validate websrc eval on dev split commit 4eebd3e5d7ab3b8c3116eea57318db72d2ce32bb Author: Hunter Heidenreich Date: Wed May 1 10:46:54 2024 -0400 Update main README with new task names commit 35fe80b67656114a8824eb59574089663bdc4c9a Author: Hunter Heidenreich Date: Wed May 1 10:46:20 2024 -0400 Draft README for WebSRC commit 955bd0635cc6c14a96ad869f1002e6dbefdc5071 Author: Hunter Heidenreich Date: Tue Apr 30 10:16:21 2024 -0400 Init webSRC commit c4e9dd9f6e40e8586587c4a75987aa109a37f14b Merge: d8a3a99f 319afccb Author: Li Bo Date: Fri Apr 26 14:37:22 2024 +0800 Merge pull request #63 from hunterheiden/hsh/new_task/screenspot New Task: ScreenSpot - Grounding (REC) and instruction generation (REG) on screens commit 319afccbe713ddf40a8a6fa28501e64c0ad34725 Author: Hunter Heidenreich Date: Thu Apr 25 11:44:34 2024 -0400 slight update commit 2f3811ca1bbad6a441016b05fde09a571900fca8 Author: Hunter Heidenreich Date: Thu Apr 25 11:41:04 2024 -0400 Add README file specific to ScreenSpot commit 28962cbe83631ec5d6481aaea4907a7c96fec848 Author: Hunter Heidenreich Date: Wed Apr 24 11:52:33 2024 -0400 Update README to reflect new tasks commit e457cfb4f2d6869e8367d6d5b03ad25ee4acc363 Author: Hunter Heidenreich Date: Tue Apr 23 18:33:16 2024 -0400 Create ScreenSpot on clean branch commit d8a3a99ff6142fe101fa3c188cc7f29593c44345 Merge: 3dcd0158 ed171293 Author: Li Bo Date: Tue Apr 23 10:34:03 2024 +0800 Merge pull request #61 from tupini07/patch-1 Fix typo in Qwen-VL that was causing "reference before assignment" commit ed171293d1e82075c5c6a847fc91ecbfd45cf89f Author: Andrea Tupini Date: Mon Apr 22 14:56:41 2024 -0600 refactor query construction for clarity commit cd874201c46f32a2903ddffae85f9db73e14adfd Author: Andrea Tupini Date: Mon Apr 22 14:54:29 2024 -0600 convert contexts to list if necessary and remove unnecessary construction of `questions` commit 85573674e90c8d505312ba18c5102e0051255078 Author: Andrea Tupini Date: Mon Apr 22 14:47:33 2024 -0600 Fix typo in qwen_vl that was causing "reference before assignment" commit 3dcd01582b719555bcf8eb25d91cc5e42abd2c5f Merge: 95df9fee 743673a1 Author: Li Bo Date: Sat Apr 20 22:03:16 2024 +0800 Merge pull request #60 from CaraJ7/main Add MathVerse commit 743673a1419b6e729e18c96f148745cc739d4c71 Merge: c1a54721 95df9fee Author: CaraJ7 <1350074492@qq.com> Date: Sat Apr 20 21:49:02 2024 +0800 Merge branch 'main' of https://github.com/EvolvingLMMs-Lab/lmms-eval commit c1a5472135c3b84061b64d997ab50dda0412ba4f Author: CaraJ7 <1350074492@qq.com> Date: Sat Apr 20 21:45:34 2024 +0800 Add MathVerse commit 373265f24e7a89cbd49ab724a2e388cc0930be78 Author: Gagan Bhatia <49101362+gagan3012@users.noreply.github.com> Date: Fri Apr 12 17:21:39 2024 -0700 Add files via upload commit d8530514a5ef9378d2adeaceb228b60ec25a6718 Author: Gagan Bhatia <49101362+gagan3012@users.noreply.github.com> Date: Fri Apr 12 17:19:49 2024 -0700 Create README.md commit 8d3526c0869f0ad7747ff6bb02441140792b461c Author: cocoshe <1228759711@qq.com> Date: Thu Mar 28 13:38:36 2024 +0800 fix doc --- LICENSE | 56 ++ README.md | 366 +++++------ docs/current_tasks.md | 122 ++++ lmms_eval/api/task.py | 42 ++ lmms_eval/models/__init__.py | 4 +- lmms_eval/models/gemini_model.py | 163 ----- lmms_eval/models/idefics2.py | 1 + lmms_eval/models/llava.py | 15 +- lmms_eval/models/llava_hf.py | 38 +- lmms_eval/models/llava_vid.py | 1 + .../{mplugOwlVideo.py => mplug_owl_video.py} | 0 lmms_eval/models/phi3v.py | 219 ++++++ .../{llava_onevision.py => tinyllava.py} | 335 ++++------ .../{videoChatGPT.py => video_chatgpt.py} | 0 lmms_eval/models/xcomposer2_4khd.py | 295 +++++++++ lmms_eval/tasks/conbench/conbench.yaml | 24 + lmms_eval/tasks/conbench/utils.py | 98 +++ lmms_eval/tasks/ii_bench/ii_bench.yaml | 20 + lmms_eval/tasks/ii_bench/utils.py | 71 ++ lmms_eval/tasks/livebench/livebench.yaml | 29 - lmms_eval/tasks/livebench/utils.py | 185 ------ .../longvideobench/longvideobench_val_i.yaml | 29 + .../longvideobench/longvideobench_val_v.yaml | 28 + lmms_eval/tasks/longvideobench/utils.py | 361 ++++++++++ lmms_eval/tasks/mathverse/mathverse.yaml | 14 + lmms_eval/tasks/mathverse/mathverse_evals.py | 305 +++++++++ .../tasks/mathverse/mathverse_testmini.yaml | 34 + .../mathverse_testmini_text_dominant.yaml | 34 + .../mathverse_testmini_text_lite.yaml | 34 + .../mathverse_testmini_text_only.yaml | 34 + .../mathverse_testmini_vision_dominant.yaml | 34 + .../mathverse_testmini_vision_intensive.yaml | 34 + .../mathverse_testmini_vision_only.yaml | 34 + lmms_eval/tasks/mathverse/utils.py | 96 +++ .../tasks/mathvista/mathvista_testmini.yaml | 4 +- .../tasks/mix_evals/_default_template_yaml | 16 - .../tasks/mix_evals/mix_evals_video2text.yaml | 5 - .../mix_evals_video2text_freeform.yaml | 22 - .../mix_evals/mix_evals_video2text_mc.yaml | 31 - .../mix_evals_video2text_openended.yaml | 21 - lmms_eval/tasks/mix_evals/utils.py | 266 -------- .../tasks/mmupd/_default_template_mmupd_yaml | 18 + lmms_eval/tasks/mmupd/mmaad_base.yaml | 12 + lmms_eval/tasks/mmupd/mmaad_instruction.yaml | 12 + lmms_eval/tasks/mmupd/mmaad_option.yaml | 12 + lmms_eval/tasks/mmupd/mmiasd_base.yaml | 12 + lmms_eval/tasks/mmupd/mmiasd_instruction.yaml | 12 + lmms_eval/tasks/mmupd/mmiasd_option.yaml | 12 + lmms_eval/tasks/mmupd/mmivqd_base.yaml | 12 + lmms_eval/tasks/mmupd/mmivqd_instruction.yaml | 12 + lmms_eval/tasks/mmupd/mmivqd_option.yaml | 12 + lmms_eval/tasks/mmupd/mmupd.yaml | 15 + lmms_eval/tasks/mmupd/mmupd_base.yaml | 10 + lmms_eval/tasks/mmupd/mmupd_evals.py | 621 ++++++++++++++++++ lmms_eval/tasks/mmupd/mmupd_instruction.yaml | 9 + lmms_eval/tasks/mmupd/mmupd_option.yaml | 9 + lmms_eval/tasks/mmupd/utils.py | 167 +++++ .../README.md | 1 + .../_default_template.yaml | 35 + .../arabic_llava_in_the_wild.yaml | 6 + .../bengali_llava_in_the_wild.yaml | 6 + .../chinese_llava_in_the_wild.yaml | 6 + .../french_llava_in_the_wild.yaml | 6 + .../hindi_llava_in_the_wild.yaml | 6 + .../japanese_llava_in_the_wild.yaml | 6 + .../rule.json | 11 + .../russian_llava_in_the_wild.yaml | 6 + .../spanish_llava_in_the_wild.yaml | 6 + .../urdu_llava_in_the_wild.yaml | 6 + .../utils.py | 197 ++++++ .../tasks/ok_vqa/_default_template_vqa_yaml | 2 +- lmms_eval/tasks/ok_vqa/utils.py | 2 +- lmms_eval/tasks/pope/pope_adv.yaml | 35 + lmms_eval/tasks/pope/pope_full.yaml | 5 + lmms_eval/tasks/pope/pope_pop.yaml | 35 + lmms_eval/tasks/pope/pope_random.yaml | 35 + lmms_eval/tasks/qbench/abench_dev.yaml | 22 + lmms_eval/tasks/qbench/qbench2_dev.yaml | 22 + lmms_eval/tasks/qbench/qbench_dev.yaml | 22 + lmms_eval/tasks/qbench/qbenchs_dev.yaml | 5 + lmms_eval/tasks/qbench/utils.py | 249 +++++++ lmms_eval/tasks/screenspot/README.md | 54 ++ .../screenspot/_default_template_rec_yaml | 33 + .../screenspot/_default_template_reg_yaml | 15 + lmms_eval/tasks/screenspot/_screenspot.yaml | 4 + .../tasks/screenspot/screenspot_rec_test.yaml | 4 + .../tasks/screenspot/screenspot_reg_test.yaml | 4 + lmms_eval/tasks/screenspot/utils.py | 126 ++++ lmms_eval/tasks/screenspot/utils_rec.py | 218 ++++++ .../_default_sft_eval_ocr_rec_template_yaml | 23 - .../_default_sft_eval_rest_template_yaml | 20 - lmms_eval/tasks/sft_eval/_generate_config.py | 94 --- lmms_eval/tasks/sft_eval/_sft_eval.yaml | 34 - lmms_eval/tasks/sft_eval/sft_activity.yaml | 5 - lmms_eval/tasks/sft_eval/sft_arts.yaml | 5 - lmms_eval/tasks/sft_eval/sft_body.yaml | 5 - lmms_eval/tasks/sft_eval/sft_car.yaml | 5 - lmms_eval/tasks/sft_eval/sft_color.yaml | 5 - lmms_eval/tasks/sft_eval/sft_commodity.yaml | 5 - lmms_eval/tasks/sft_eval/sft_count.yaml | 5 - lmms_eval/tasks/sft_eval/sft_daily.yaml | 5 - lmms_eval/tasks/sft_eval/sft_engineer.yaml | 5 - .../tasks/sft_eval/sft_entertainment.yaml | 5 - lmms_eval/tasks/sft_eval/sft_exist.yaml | 5 - lmms_eval/tasks/sft_eval/sft_face.yaml | 5 - lmms_eval/tasks/sft_eval/sft_food.yaml | 5 - lmms_eval/tasks/sft_eval/sft_healthcare.yaml | 5 - lmms_eval/tasks/sft_eval/sft_landmark.yaml | 5 - lmms_eval/tasks/sft_eval/sft_logo.yaml | 5 - lmms_eval/tasks/sft_eval/sft_natural.yaml | 5 - lmms_eval/tasks/sft_eval/sft_ocr_qa_adv.yaml | 5 - .../tasks/sft_eval/sft_ocr_qa_chart.yaml | 5 - lmms_eval/tasks/sft_eval/sft_ocr_qa_form.yaml | 5 - .../tasks/sft_eval/sft_ocr_qa_scene.yaml | 5 - .../tasks/sft_eval/sft_ocr_qa_screen.yaml | 5 - lmms_eval/tasks/sft_eval/sft_ocr_rec_adv.yaml | 5 - lmms_eval/tasks/sft_eval/sft_ocr_rec_doc.yaml | 5 - .../tasks/sft_eval/sft_ocr_rec_handwrite.yaml | 5 - .../tasks/sft_eval/sft_ocr_rec_markdown.yaml | 5 - .../tasks/sft_eval/sft_ocr_rec_scene.yaml | 5 - .../tasks/sft_eval/sft_ocr_rec_screen.yaml | 5 - lmms_eval/tasks/sft_eval/sft_place.yaml | 5 - lmms_eval/tasks/sft_eval/sft_position.yaml | 5 - lmms_eval/tasks/sft_eval/sft_sport.yaml | 5 - lmms_eval/tasks/sft_eval/sft_status.yaml | 5 - lmms_eval/tasks/sft_eval/utils.py | 109 --- lmms_eval/tasks/textvqa/textvqa_test.yaml | 2 +- lmms_eval/tasks/textvqa/textvqa_val.yaml | 2 +- lmms_eval/tasks/textvqa/utils.py | 2 +- .../tasks/vcr_wiki/_default_template_vcr_yaml | 17 + lmms_eval/tasks/vcr_wiki/utils.py | 300 +++++++++ .../tasks/vcr_wiki/vcr_wiki_en_easy.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_en_easy_100.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_en_easy_500.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_en_hard.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_en_hard_100.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_en_hard_500.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_zh_easy.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_zh_easy_100.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_zh_easy_500.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_zh_hard.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_zh_hard_100.yaml | 16 + .../tasks/vcr_wiki/vcr_wiki_zh_hard_500.yaml | 16 + lmms_eval/tasks/vizwiz_vqa/utils.py | 2 +- .../tasks/vizwiz_vqa/vizwiz_vqa_test.yaml | 2 +- .../tasks/vizwiz_vqa/vizwiz_vqa_val.yaml | 2 +- lmms_eval/tasks/vqav2/utils.py | 2 +- lmms_eval/tasks/vqav2/vqav2_test.yaml | 2 +- lmms_eval/tasks/websrc/README.md | 51 ++ lmms_eval/tasks/websrc/utils.py | 159 +++++ lmms_eval/tasks/websrc/websrc.yaml | 4 + lmms_eval/tasks/websrc/websrc_test.yaml | 19 + lmms_eval/tasks/websrc/websrc_val.yaml | 19 + example_eval.yaml => miscs/example_eval.yaml | 0 .../llava_repr_requirements.txt | 0 miscs/repr_scripts.sh | 2 +- miscs/tinyllava_repr_requirements.txt | 39 ++ miscs/tinyllava_repr_scripts.sh | 25 + pyproject.toml | 2 +- tools/live_bench/__init__.py | 1 - tools/live_bench/api/live_bench.py | 20 - tools/live_bench/data_generator/__init__.py | 4 - .../live_bench/data_generator/check_prompt.md | 11 - .../example/example_output.json | 18 - .../example/example_website.png | Bin 2228301 -> 0 bytes tools/live_bench/data_generator/live_bench.py | 102 --- .../data_generator/live_bench_data.py | 94 --- tools/live_bench/data_generator/prompt.md | 13 - .../live_bench/data_generator/qa_generator.py | 337 ---------- tools/live_bench/data_generator/response.py | 5 - .../live_bench/data_generator/score_getter.py | 157 ----- .../live_bench/data_generator/score_prompt.md | 1 - .../data_generator/utils/__init__.py | 0 .../live_bench/data_generator/utils/claude.py | 42 -- .../live_bench/data_generator/utils/gemini.py | 26 - .../live_bench/data_generator/utils/gpt4v.py | 38 -- tools/live_bench/driver/.gitignore | 1 - tools/live_bench/driver/__init__.py | 1 - tools/live_bench/driver/load_driver.py | 51 -- tools/live_bench/example.ipynb | 103 --- tools/live_bench/screen_shoter/__init__.py | 2 - tools/live_bench/screen_shoter/screen.py | 30 - .../live_bench/screen_shoter/screen_shoter.py | 141 ---- tools/live_bench/websites/__init__.py | 2 - tools/live_bench/websites/load_website.py | 34 - tools/live_bench/websites/website.py | 62 -- tools/live_bench/websites/website_list.yaml | 77 --- 187 files changed, 5339 insertions(+), 2986 deletions(-) create mode 100644 LICENSE create mode 100644 docs/current_tasks.md delete mode 100644 lmms_eval/models/gemini_model.py rename lmms_eval/models/{mplugOwlVideo.py => mplug_owl_video.py} (100%) create mode 100644 lmms_eval/models/phi3v.py rename lmms_eval/models/{llava_onevision.py => tinyllava.py} (55%) rename lmms_eval/models/{videoChatGPT.py => video_chatgpt.py} (100%) create mode 100644 lmms_eval/models/xcomposer2_4khd.py create mode 100644 lmms_eval/tasks/conbench/conbench.yaml create mode 100644 lmms_eval/tasks/conbench/utils.py create mode 100755 lmms_eval/tasks/ii_bench/ii_bench.yaml create mode 100755 lmms_eval/tasks/ii_bench/utils.py delete mode 100644 lmms_eval/tasks/livebench/livebench.yaml delete mode 100644 lmms_eval/tasks/livebench/utils.py create mode 100644 lmms_eval/tasks/longvideobench/longvideobench_val_i.yaml create mode 100644 lmms_eval/tasks/longvideobench/longvideobench_val_v.yaml create mode 100644 lmms_eval/tasks/longvideobench/utils.py create mode 100644 lmms_eval/tasks/mathverse/mathverse.yaml create mode 100644 lmms_eval/tasks/mathverse/mathverse_evals.py create mode 100644 lmms_eval/tasks/mathverse/mathverse_testmini.yaml create mode 100644 lmms_eval/tasks/mathverse/mathverse_testmini_text_dominant.yaml create mode 100644 lmms_eval/tasks/mathverse/mathverse_testmini_text_lite.yaml create mode 100644 lmms_eval/tasks/mathverse/mathverse_testmini_text_only.yaml create mode 100644 lmms_eval/tasks/mathverse/mathverse_testmini_vision_dominant.yaml create mode 100644 lmms_eval/tasks/mathverse/mathverse_testmini_vision_intensive.yaml create mode 100644 lmms_eval/tasks/mathverse/mathverse_testmini_vision_only.yaml create mode 100644 lmms_eval/tasks/mathverse/utils.py delete mode 100644 lmms_eval/tasks/mix_evals/_default_template_yaml delete mode 100755 lmms_eval/tasks/mix_evals/mix_evals_video2text.yaml delete mode 100755 lmms_eval/tasks/mix_evals/mix_evals_video2text_freeform.yaml delete mode 100755 lmms_eval/tasks/mix_evals/mix_evals_video2text_mc.yaml delete mode 100755 lmms_eval/tasks/mix_evals/mix_evals_video2text_openended.yaml delete mode 100755 lmms_eval/tasks/mix_evals/utils.py create mode 100644 lmms_eval/tasks/mmupd/_default_template_mmupd_yaml create mode 100644 lmms_eval/tasks/mmupd/mmaad_base.yaml create mode 100644 lmms_eval/tasks/mmupd/mmaad_instruction.yaml create mode 100644 lmms_eval/tasks/mmupd/mmaad_option.yaml create mode 100644 lmms_eval/tasks/mmupd/mmiasd_base.yaml create mode 100644 lmms_eval/tasks/mmupd/mmiasd_instruction.yaml create mode 100644 lmms_eval/tasks/mmupd/mmiasd_option.yaml create mode 100644 lmms_eval/tasks/mmupd/mmivqd_base.yaml create mode 100644 lmms_eval/tasks/mmupd/mmivqd_instruction.yaml create mode 100644 lmms_eval/tasks/mmupd/mmivqd_option.yaml create mode 100644 lmms_eval/tasks/mmupd/mmupd.yaml create mode 100644 lmms_eval/tasks/mmupd/mmupd_base.yaml create mode 100644 lmms_eval/tasks/mmupd/mmupd_evals.py create mode 100644 lmms_eval/tasks/mmupd/mmupd_instruction.yaml create mode 100644 lmms_eval/tasks/mmupd/mmupd_option.yaml create mode 100644 lmms_eval/tasks/mmupd/utils.py create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/README.md create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/_default_template.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/arabic_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/bengali_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/chinese_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/french_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/hindi_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/japanese_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/rule.json create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/russian_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/spanish_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/urdu_llava_in_the_wild.yaml create mode 100644 lmms_eval/tasks/multilingual-llava-bench-in-the-wild/utils.py create mode 100644 lmms_eval/tasks/pope/pope_adv.yaml create mode 100644 lmms_eval/tasks/pope/pope_full.yaml create mode 100644 lmms_eval/tasks/pope/pope_pop.yaml create mode 100644 lmms_eval/tasks/pope/pope_random.yaml create mode 100644 lmms_eval/tasks/qbench/abench_dev.yaml create mode 100644 lmms_eval/tasks/qbench/qbench2_dev.yaml create mode 100644 lmms_eval/tasks/qbench/qbench_dev.yaml create mode 100644 lmms_eval/tasks/qbench/qbenchs_dev.yaml create mode 100644 lmms_eval/tasks/qbench/utils.py create mode 100644 lmms_eval/tasks/screenspot/README.md create mode 100644 lmms_eval/tasks/screenspot/_default_template_rec_yaml create mode 100644 lmms_eval/tasks/screenspot/_default_template_reg_yaml create mode 100644 lmms_eval/tasks/screenspot/_screenspot.yaml create mode 100644 lmms_eval/tasks/screenspot/screenspot_rec_test.yaml create mode 100644 lmms_eval/tasks/screenspot/screenspot_reg_test.yaml create mode 100644 lmms_eval/tasks/screenspot/utils.py create mode 100644 lmms_eval/tasks/screenspot/utils_rec.py delete mode 100644 lmms_eval/tasks/sft_eval/_default_sft_eval_ocr_rec_template_yaml delete mode 100644 lmms_eval/tasks/sft_eval/_default_sft_eval_rest_template_yaml delete mode 100644 lmms_eval/tasks/sft_eval/_generate_config.py delete mode 100644 lmms_eval/tasks/sft_eval/_sft_eval.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_activity.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_arts.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_body.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_car.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_color.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_commodity.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_count.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_daily.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_engineer.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_entertainment.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_exist.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_face.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_food.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_healthcare.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_landmark.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_logo.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_natural.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_qa_adv.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_qa_chart.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_qa_form.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_qa_scene.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_qa_screen.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_rec_adv.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_rec_doc.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_rec_handwrite.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_rec_markdown.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_rec_scene.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_ocr_rec_screen.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_place.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_position.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_sport.yaml delete mode 100644 lmms_eval/tasks/sft_eval/sft_status.yaml delete mode 100644 lmms_eval/tasks/sft_eval/utils.py create mode 100644 lmms_eval/tasks/vcr_wiki/_default_template_vcr_yaml create mode 100644 lmms_eval/tasks/vcr_wiki/utils.py create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy_100.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy_500.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard_100.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard_500.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy_100.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy_500.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard_100.yaml create mode 100644 lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard_500.yaml create mode 100644 lmms_eval/tasks/websrc/README.md create mode 100644 lmms_eval/tasks/websrc/utils.py create mode 100644 lmms_eval/tasks/websrc/websrc.yaml create mode 100644 lmms_eval/tasks/websrc/websrc_test.yaml create mode 100644 lmms_eval/tasks/websrc/websrc_val.yaml rename example_eval.yaml => miscs/example_eval.yaml (100%) rename llava_repr_requirements.txt => miscs/llava_repr_requirements.txt (100%) create mode 100644 miscs/tinyllava_repr_requirements.txt create mode 100755 miscs/tinyllava_repr_scripts.sh delete mode 100644 tools/live_bench/__init__.py delete mode 100644 tools/live_bench/api/live_bench.py delete mode 100644 tools/live_bench/data_generator/__init__.py delete mode 100644 tools/live_bench/data_generator/check_prompt.md delete mode 100644 tools/live_bench/data_generator/example/example_output.json delete mode 100644 tools/live_bench/data_generator/example/example_website.png delete mode 100644 tools/live_bench/data_generator/live_bench.py delete mode 100644 tools/live_bench/data_generator/live_bench_data.py delete mode 100644 tools/live_bench/data_generator/prompt.md delete mode 100644 tools/live_bench/data_generator/qa_generator.py delete mode 100644 tools/live_bench/data_generator/response.py delete mode 100644 tools/live_bench/data_generator/score_getter.py delete mode 100644 tools/live_bench/data_generator/score_prompt.md delete mode 100644 tools/live_bench/data_generator/utils/__init__.py delete mode 100644 tools/live_bench/data_generator/utils/claude.py delete mode 100644 tools/live_bench/data_generator/utils/gemini.py delete mode 100644 tools/live_bench/data_generator/utils/gpt4v.py delete mode 100644 tools/live_bench/driver/.gitignore delete mode 100644 tools/live_bench/driver/__init__.py delete mode 100644 tools/live_bench/driver/load_driver.py delete mode 100644 tools/live_bench/example.ipynb delete mode 100644 tools/live_bench/screen_shoter/__init__.py delete mode 100644 tools/live_bench/screen_shoter/screen.py delete mode 100644 tools/live_bench/screen_shoter/screen_shoter.py delete mode 100644 tools/live_bench/websites/__init__.py delete mode 100644 tools/live_bench/websites/load_website.py delete mode 100644 tools/live_bench/websites/website.py delete mode 100644 tools/live_bench/websites/website_list.yaml diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..aa318e26 --- /dev/null +++ b/LICENSE @@ -0,0 +1,56 @@ +# For the main pipeline structure-related code, we maintain the original license provided with lm-evaluation-harness, which is the MIT License. + +MIT License + +Copyright (c) 2024 LMMs-Lab + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +# For the multimodal models and datasets that we have added (defined as code in the lmms_eval/tasks and lmms_eval/models folders), we apply the Apache License. + +Apache 2.0 License + +Copyright (c) 2024 LMMs-Lab + +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. + +When modifying the code, please include the following information about the original lmms-eval source: +# Adopted from lmms-eval from https://github.com/EvolvingLMMs-Lab/lmms-eval. Below is the original copyright: +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/README.md b/README.md index 73bd545e..2bf7a26e 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

+

@@ -8,265 +8,241 @@ 🏠 [LMMs-Lab Homepage](https://lmms-lab.github.io/) | 🎉 [Blog](https://lmms-lab.github.io/lmms-eval-blog/lmms-eval-0.1/) | 📚 [Documentation](docs/README.md) | 🤗 [Huggingface Datasets](https://huggingface.co/lmms-lab) | Discord_Thread [discord/lmms-eval](https://discord.gg/zdkwKUqrPy) +--- -In today's world, we're on an exciting journey toward creating Artificial General Intelligence (AGI), much like the enthusiasm of the 1960s moon landing. This journey is powered by advanced large language models (LLMs) and large multimodal models (LMMs), which are complex systems capable of understanding, learning, and performing a wide variety of human tasks. These advancements bring us closer to achieving AGI. +## Annoucement -To gauge how advanced these models are, we use a variety of evaluation benchmarks. These benchmarks are tools that help us understand the capabilities of these models, showing us how close we are to achieving AGI. However, finding and using these benchmarks is a big challenge. The necessary benchmarks and datasets are spread out and hidden in various places like Google Drive, Dropbox, and different school and research lab websites. It feels like we're on a treasure hunt, but the maps are scattered everywhere. +- [2024-06] 🎬🎬 The `lmms-eval/v0.2` has been upgraded to support video evaluations for video models like LLaVA-NeXT Video and Gemini 1.5 Pro across tasks such as EgoSchema, PerceptionTest, VideoMME, and more. Please refer to the [blog](https://lmms-lab.github.io/posts/lmms-eval-0.2/) for more details -In the field of language models, there has been a valuable precedent set by the work of [lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness). They offer integrated data and model interfaces, enabling rapid evaluation of language models and serving as the backend support framework for the [open-llm-leaderboard](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard), and has gradually become the underlying ecosystem of the era of foundation models. +- [2024-03] 📝📝 We have released the first version of `lmms-eval`, please refer to the [blog](https://lmms-lab.github.io/posts/lmms-eval-0.1/) for more details -However, though there are many new evaluation datasets are recently proposed, the efficient evaluation pipeline of LMM is still in its infancy, and there is no unified evaluation framework that can be used to evaluate LMM across a wide range of datasets. To address this challenge, we introduce **lmms-eval**, an evaluation framework meticulously crafted for consistent and efficient evaluation of LMM. +## Why `lmms-eval`? -We humbly obsorbed the exquisite and efficient design of [lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness). Building upon its foundation, we implemented our `lmms-eval` framework with performance optimizations specifically for LMMs. +

+ +

-## Necessity of lmms-eval +In today's world, we're on an exciting journey toward creating Artificial General Intelligence (AGI), much like the enthusiasm of the 1960s moon landing. This journey is powered by advanced large language models (LLMs) and large multimodal models (LMMs), which are complex systems capable of understanding, learning, and performing a wide variety of human tasks. -We believe our effort could provide an efficient interface for the detailed comparison of publicly available models to discern their strengths and weaknesses. It's also useful for research institutions and production-oriented companies to accelerate the development of large multimodal models. With the `lmms-eval`, we have significantly accelerated the lifecycle of model iteration. Inside the LLaVA team, the utilization of `lmms-eval` largely improves the efficiency of the model development cycle, as we are able to evaluate weekly trained hundreds of checkpoints on 20-30 datasets, identifying the strengths and weaknesses, and then make targeted improvements. +To gauge how advanced these models are, we use a variety of evaluation benchmarks. These benchmarks are tools that help us understand the capabilities of these models, showing us how close we are to achieving AGI. -# Annoucement +However, finding and using these benchmarks is a big challenge. The necessary benchmarks and datasets are spread out and hidden in various places like Google Drive, Dropbox, and different school and research lab websites. It feels like we're on a treasure hunt, but the maps are scattered everywhere. -## Contribution Guidance +In the field of language models, there has been a valuable precedent set by the work of [lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness). They offer integrated data and model interfaces, enabling rapid evaluation of language models and serving as the backend support framework for the [open-llm-leaderboard](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard), and has gradually become the underlying ecosystem of the era of foundation models. -We've added guidance on contributing new datasets and models. Please refer to our [documentation](docs/README.md). If you need assistance, you can contact us via [discord/lmms-eval](https://discord.gg/ebAMGSsS). +We humbly obsorbed the exquisite and efficient design of [lm-evaluation-harness](https://github.com/EleutherAI/lm-evaluation-harness) and introduce **lmms-eval**, an evaluation framework meticulously crafted for consistent and efficient evaluation of LMM. -## v0.1.0 Released +## Installation -The first version of the `lmms-eval` is released. We are working on providing an one-command evaluation suite for accelerating the development of LMMs. +For formal usage, you can install the package from PyPI by running the following command: +```bash +pip install lmms-eval +``` -> In [LLaVA Next](https://llava-vl.github.io/blog/2024-01-30-llava-next/) development, we internally utilize this suite to evaluate the multiple different model versions on various datasets. It significantly accelerates the model development cycle for it's easy integration and fast evaluation speed. +For development, you can install the package by cloning the repository and running the following command: +```bash +git clone https://github.com/EvolvingLMMs-Lab/lmms-eval +cd lmms-eval +pip install -e . +``` -The main feature includes: +If you wanted to test llava, you will have to clone their repo from [LLaVA](https://github.com/haotian-liu/LLaVA) and +```bash +# for llava 1.5 +# git clone https://github.com/haotian-liu/LLaVA +# cd LLaVA +# pip install -e . + +# for llava-next (1.6) +git clone https://github.com/LLaVA-VL/LLaVA-NeXT +cd LLaVA-NeXT +pip install -e . +``` -

- -

+
+Reproduction of LLaVA-1.5's paper results -### One-command evaluation, with detailed logs and samples. -You can evaluate the models on multiple datasets with a single command. No model/data preparation is needed, just one command line, few minutes, and get the results. Not just a result number, but also the detailed logs and samples, including the model args, input question, model response, and ground truth answer. +You can check the [environment install script](miscs/repr_scripts.sh) and [torch environment info](miscs/repr_torch_envs.txt) to **reproduce LLaVA-1.5's paper results**. We found torch/cuda versions difference would cause small variations in the results, we provide the [results check](miscs/llava_result_check.md) with different environments. -```python -# Evaluating LLaVA on multiple datasets -accelerate launch --num_processes=8 -m lmms_eval --model llava --model_args pretrained="liuhaotian/llava-v1.5-7b" --tasks mme,mmbench_en --batch_size 1 --log_samples --log_samples_suffix llava_v1.5_mme_mmbenchen --output_path ./logs/ # -``` +
-### Accelerator support and Tasks grouping. -We support the usage of `accelerate` to wrap the model for distributed evaluation, supporting multi-gpu and tensor parallelism. With **Task Grouping**, all instances from all tasks are grouped and evaluated in parallel, which significantly improves the throughput of the evaluation. After evaluation, all instances are sent to postprocessing module for metric calcuations and potential GPT4-eval queries. +If you want to test on caption dataset such as `coco`, `refcoco`, and `nocaps`, you will need to have `java==1.8.0 ` to let pycocoeval api to work. If you don't have it, you can install by using conda +``` +conda install openjdk=8 +``` +you can then check your java version by `java -version` -Below are the total runtime on different datasets using 4 x A100 40G. -| Dataset (#num) | LLaVA-v1.5-7b | LLaVA-v1.5-13b | -| :---------------------- | :----------------- | :----------------- | -| mme (2374) | 2 mins 43 seconds | 3 mins 27 seconds | -| gqa (12578) | 10 mins 43 seconds | 14 mins 23 seconds | -| scienceqa_img (2017) | 1 mins 58 seconds | 2 mins 52 seconds | -| ai2d (3088) | 3 mins 17 seconds | 4 mins 12 seconds | -| coco2017_cap_val (5000) | 14 mins 13 seconds | 19 mins 58 seconds | +
+Comprehensive Evaluation Results of LLaVA Family Models +
-### All-In-One HF dataset hubs. +As demonstrated by the extensive table below, we aim to provide detailed information for readers to understand the datasets included in lmms-eval and some specific details about these datasets (we remain grateful for any corrections readers may have during our evaluation process). -We are hosting more than 40 (and increasing) datasets on [huggingface/lmms-lab](https://huggingface.co/lmms-lab), we carefully converted these datasets from original sources and included all variants, versions and splits. Now they can be directly accessed without any burden of data preprocessing. They also serve for the purpose of visualizing the data and grasping the sense of evaluation tasks distribution. +We provide a Google Sheet for the detailed results of the LLaVA series models on different datasets. You can access the sheet [here](https://docs.google.com/spreadsheets/d/1a5ImfdKATDI8T7Cwh6eH-bEsnQFzanFraFUgcS9KHWc/edit?usp=sharing). It's a live sheet, and we are updating it with new results.

- +

-### Detailed Logging Utilites +We also provide the raw data exported from Weights & Biases for the detailed results of the LLaVA series models on different datasets. You can access the raw data [here](https://docs.google.com/spreadsheets/d/1AvaEmuG4csSmXaHjgu4ei1KBMmNNW8wflOD_kkTDdv8/edit?usp=sharing). -We provide detailed logging utilities to help you understand the evaluation process and results. The logs include the model args, generation parameters, input question, model response, and ground truth answer. You can also record every details and visualize them inside runs on Weights & Biases. +
+
-{% include figure.liquid loading="eager" path="assets/img/wandb_table.png" class="img-fluid rounded z-depth-1" zoomable=true %} -

- -

+Our Development will be continuing on the main branch, and we encourage you to give us feedback on what features are desired and how to improve the library further, or ask questions, either in issues or PRs on GitHub. -# Installation +## Multiple Usages + +**Evaluation of LLaVA on MME** -For formal usage, you can install the package from PyPI by running the following command: ```bash -pip install lmms-eval +python3 -m accelerate.commands.launch \ + --num_processes=8 \ + -m lmms_eval \ + --model llava \ + --model_args pretrained="liuhaotian/llava-v1.5-7b" \ + --tasks mme \ + --batch_size 1 \ + --log_samples \ + --log_samples_suffix llava_v1.5_mme \ + --output_path ./logs/ ``` -For development, you can install the package by cloning the repository and running the following command: +**Evaluation of LLaVA on multiple datasets** + ```bash -git clone https://github.com/EvolvingLMMs-Lab/lmms-eval -cd lmms-eval -pip install -e . +python3 -m accelerate.commands.launch \ + --num_processes=8 \ + -m lmms_eval \ + --model llava \ + --model_args pretrained="liuhaotian/llava-v1.5-7b" \ + --tasks mme,mmbench_en \ + --batch_size 1 \ + --log_samples \ + --log_samples_suffix llava_v1.5_mme_mmbenchen \ + --output_path ./logs/ ``` -If you wanted to test llava, you will have to clone their repo from [LLaVA](https://github.com/haotian-liu/LLaVA) and -``` -git clone https://github.com/haotian-liu/LLaVA -cd LLaVA -pip install -e . -``` +**For other variants llava. Please change the `conv_template` in the `model_args`** -You can check the [environment install script](miscs/repr_scripts.sh) and [torch environment info](miscs/repr_torch_envs.txt) to **reproduce LLaVA-1.5's paper results**. We found torch/cuda versions difference would cause small variations in the results, we provide the [results check](miscs/llava_result_check.md) with different environments. +> `conv_template` is an arg of the init function of llava in `lmms_eval/models/llava.py`, you could find the corresponding value at LLaVA's code, probably in a dict variable `conv_templates` in `llava/conversations.py` -If you want to test on caption dataset such as `coco`, `refcoco`, and `nocaps`, you will need to have `java==1.8.0 ` to let pycocoeval api to work. If you don't have it, you can install by using conda -``` -conda install openjdk=8 +```bash +python3 -m accelerate.commands.launch \ + --num_processes=8 \ + -m lmms_eval \ + --model llava \ + --model_args pretrained="liuhaotian/llava-v1.6-mistral-7b,conv_template=mistral_instruct" \ + --tasks mme,mmbench_en \ + --batch_size 1 \ + --log_samples \ + --log_samples_suffix llava_v1.5_mme_mmbenchen \ + --output_path ./logs/ ``` -you can then check your java version by `java -version` -# Usage +**Evaluation of larger lmms (llava-v1.6-34b)** + ```bash -# Evaluating LLaVA on MME -accelerate launch --num_processes=8 -m lmms_eval --model llava --model_args pretrained="liuhaotian/llava-v1.5-7b" --tasks mme --batch_size 1 --log_samples --log_samples_suffix llava_v1.5_mme --output_path ./logs/ +python3 -m accelerate.commands.launch \ + --num_processes=8 \ + -m lmms_eval \ + --model llava \ + --model_args pretrained="liuhaotian/llava-v1.6-34b,conv_template=mistral_direct" \ + --tasks mme,mmbench_en \ + --batch_size 1 \ + --log_samples \ + --log_samples_suffix llava_v1.5_mme_mmbenchen \ + --output_path ./logs/ +``` -# Evaluating LLaVA on multiple datasets -accelerate launch --num_processes=8 -m lmms_eval --model llava --model_args pretrained="liuhaotian/llava-v1.5-7b" --tasks mme,mmbench_en --batch_size 1 --log_samples --log_samples_suffix llava_v1.5_mme_mmbenchen --output_path ./logs/ # +**Evaluation with a set of configurations, supporting evaluation of multiple models and datasets** -# For other variants llava. Note that `conv_template` is an arg of the init function of llava in `lmms_eval/models/llava.py` -accelerate launch --num_processes=8 -m lmms_eval --model llava --model_args pretrained="liuhaotian/llava-v1.6-mistral-7b,conv_template=mistral_instruct" --tasks mme,mmbench_en --batch_size 1 --log_samples --log_samples_suffix llava_v1.5_mme_mmbenchen --output_path ./logs/ # -accelerate launch --num_processes=8 -m lmms_eval --model llava --model_args pretrained="liuhaotian/llava-v1.6-34b,conv_template=mistral_direct" --tasks mme,mmbench_en --batch_size 1 --log_samples --log_samples_suffix llava_v1.5_mme_mmbenchen --output_path ./logs/ # +```bash +python3 -m accelerate.commands.launch --num_processes=8 -m lmms_eval --config ./miscs/example_eval.yaml +``` -# From a predefined configuration, supporting evaluation of multiple models and datasets -accelerate launch --num_processes=8 -m lmms_eval --config example_eval.yaml +**Evaluation with naive model sharding for bigger model (llava-next-72b)** + +```bash +python3 -m lmms_eval \ + --model=llava \ + --model_args=pretrained=lmms-lab/llava-next-72b,conv_template=qwen_1_5,device_map=auto,model_name=llava_qwen \ + --tasks=pope,vizwiz_vqa_val,scienceqa_img \ + --batch_size=1 \ + --log_samples \ + --log_samples_suffix=llava_qwen \ + --output_path="./logs/" \ + --wandb_args=project=lmms-eval,job_type=eval,entity=llava-vl ``` -# Model Results +**Evaluation with SGLang for bigger model (llava-next-72b)** -As demonstrated by the extensive table below, we aim to provide detailed information for readers to understand the datasets included in lmms-eval and some specific details about these datasets (we remain grateful for any corrections readers may have during our evaluation process). +```bash +python3 -m lmms_eval \ + --model=llava_sglang \ + --model_args=pretrained=lmms-lab/llava-next-72b,tokenizer=lmms-lab/llavanext-qwen-tokenizer,conv_template=chatml-llava,tp_size=8,parallel=8 \ + --tasks=mme \ + --batch_size=1 \ + --log_samples \ + --log_samples_suffix=llava_qwen \ + --output_path=./logs/ \ + --verbosity=INFO +``` -We provide a Google Sheet for the detailed results of the LLaVA series models on different datasets. You can access the sheet [here](https://docs.google.com/spreadsheets/d/1a5ImfdKATDI8T7Cwh6eH-bEsnQFzanFraFUgcS9KHWc/edit?usp=sharing). It's a live sheet, and we are updating it with new results. +### Supported models -

- -

+Please check [supported models](lmms_eval/models/__init__.py) for more details. -We also provide the raw data exported from Weights & Biases for the detailed results of the LLaVA series models on different datasets. You can access the raw data [here](https://docs.google.com/spreadsheets/d/1AvaEmuG4csSmXaHjgu4ei1KBMmNNW8wflOD_kkTDdv8/edit?usp=sharing). +### Supported tasks + +Please check [supported tasks](lmms_eval/docs/current_tasks.md) for more details. -> Development will be continuing on the main branch, and we encourage you to give us feedback on what features are desired and how to improve the library further, or ask questions, either in issues or PRs on GitHub. - - -## Supported models - -- GPT4V (API, only generation-based evaluation) -- LLaVA-v1.5/v1.6-7B/13B/34B (ppl-based, generation-based) -- Qwen-VL series (ppl-based, generation-based) -- Fuyu series (ppl-based, generation-based) -- InstructBLIP series (generation-based) - -## Supported datasets -> () indicates the task name in the lmms_eval. The task name is also used to specify the dataset in the configuration file. - -- AI2D (ai2d) -- ChartQA (chartqa) -- CMMMU (cmmmu) - - CMMMU Validation (cmmmu_val) - - CMMMU Test (cmmmu_test) -- COCO Caption (coco_cap) - - COCO 2014 Caption (coco2014_cap) - - COCO 2014 Caption Validation (coco2014_cap_val) - - COCO 2014 Caption Test (coco2014_cap_test) - - COCO 2017 Caption (coco2017_cap) - - COCO 2017 Caption MiniVal (coco2017_cap_val) - - COCO 2017 Caption MiniTest (coco2017_cap_test) -- DOCVQA (docvqa) - - DOCVQA Validation (docvqa_val) - - DOCVQA Test (docvqa_test) -- Ferret (ferret) -- Flickr30K (flickr30k) - - Ferret Test (ferret_test) -- GQA (gqa) -- HallusionBenchmark (hallusion_bench_image) -- Infographic VQA (info_vqa) - - Infographic VQA Validation (info_vqa_val) - - Infographic VQA Test (info_vqa_test) -- LLaVA-Bench (llava_in_the_wild) -- LLaVA-Bench-COCO (llava_bench_coco) -- MathVista (mathvista) - - MathVista Validation (mathvista_testmini) - - MathVista Test (mathvista_test) -- MMBench (mmbench) - - MMBench English (mmbench_en) - - MMBench English Dev (mmbench_en_dev) - - MMBench English Test (mmbench_en_test) - - MMBench Chinese (mmbench_cn) - - MMBench Chinese Dev (mmbench_cn_dev) - - MMBench Chinese Test (mmbench_cn_test) -- MME (mme) -- MMMU (mmmu) - - MMMU Validation (mmmu_val) - - MMMU Test (mmmu_test) -- MMVet (mmvet) -- Multi-DocVQA (multidocvqa) - - Multi-DocVQA Validation (multidocvqa_val) - - Multi-DocVQA Test (multidocvqa_test) -- NoCaps (nocaps) - - NoCaps Validation (nocaps_val) - - NoCaps Test (nocaps_test) -- OKVQA (ok_vqa) - - OKVQA Validation 2014 (ok_vqa_val2014) -- POPE (pope) -- RefCOCO (refcoco) - - refcoco_seg_test - - refcoco_seg_val - - refcoco_seg_testA - - refcoco_seg_testB - - refcoco_bbox_test - - refcoco_bbox_val - - refcoco_bbox_testA - - refcoco_bbox_testB -- RefCOCO+ (refcoco+) - - refcoco+_seg - - refcoco+_seg_val - - refcoco+_seg_testA - - refcoco+_seg_testB - - refcoco+_bbox - - refcoco+_bbox_val - - refcoco+_bbox_testA - - refcoco+_bbox_testB -- RefCOCOg (refcocog) - - refcocog_seg_test - - refcocog_seg_val - - refcocog_bbox_test - - refcocog_bbox_val -- ScienceQA (scienceqa_full) - - ScienceQA Full (scienceqa) - - ScienceQA IMG (scienceqa_img) -- SeedBench (seedbench) -- SeedBench 2 (seedbench_2) -- ST-VQA (stvqa) -- TextCaps (textcaps) - - TextCaps Validation (textcaps_val) - - TextCaps Test (textcaps_test) -- TextVQA (textvqa) - - TextVQA Validation (textvqa_val) - - TextVQA Test (textvqa_test) -- VizWizVQA (vizwiz_vqa) - - VizWizVQA Validation (vizwiz_vqa_val) - - VizWizVQA Test (vizwiz_vqa_test) -- VQAv2 (vqav2) - - VQAv2 Validation (vqav2_val) - - VQAv2 Test (vqav2_test) - -## Datasets to be added and tested -- TallyQA (tallyqa) -- VSR (vsr) -- Winoground (winoground) -- NLVR2 (nlvr2) -- RavenIQ-Test (raveniq) -- IconQA (iconqa) -- VistBench (vistbench) - -# Add Customized Model and Dataset +## Add Customized Model and Dataset Please refer to our [documentation](docs/README.md). -# Acknowledgement +## Acknowledgement lmms_eval is a fork of [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness). We recommend you to read through the [docs of lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/main/docs) for relevant information. +--- + Below are the changes we made to the original API: - Build context now only pass in idx and process image and doc during the model responding phase. This is due to the fact that dataset now contains lots of images and we can't store them in the doc like the original lm-eval-harness other wise the cpu memory would explode. - Instance.args (lmms_eval/api/instance.py) now contains a list of images to be inputted to lmms. - lm-eval-harness supports all HF language models as single model class. Currently this is not possible of lmms because the input/output format of lmms in HF are not yet unified. Thererfore, we have to create a new class for each lmms model. This is not ideal and we will try to unify them in the future. -We also thank: +--- + +During the initial stage of our project, we thank: - [Xiang Yue](https://xiangyue9607.github.io/), [Jingkang Yang](https://jingkang50.github.io/), [Dong Guo](https://www.linkedin.com/in/dongguoset/) and [Sheng Shen](https://sincerass.github.io/) for early discussion and testing. +--- + +During the `v0.1` to `v0.2`, we thank the community support from pull requests (PRs): + +> Details are in [lmms-eval/v0.2.0 release notes](https://github.com/EvolvingLMMs-Lab/lmms-eval/releases/tag/untagged-9057ff0e9a72d5a5846f) + +**Datasets:** + +- VCR: Visual Caption Restoration (officially from the authors, MILA) +- ConBench (officially from the authors, PKU/Bytedance) +- MathVerse (officially from the authors, CUHK) +- MM-UPD (officially from the authors, University of Tokyo) +- WebSRC (from Hunter Heiden) +- ScreeSpot (from Hunter Heiden) +- RealworldQA (from Fanyi Pu, NTU) +- Multi-lingual LLaVA-W (from Gagan Bhatia, UBC) + +**Models:** + +- LLaVA-HF (officially from Huggingface) +- Idefics-2 (from the lmms-lab team) +- microsoft/Phi-3-Vision (officially from the authors, Microsoft) +- LLaVA-SGlang (from the lmms-lab team) + ## Citations ```shell diff --git a/docs/current_tasks.md b/docs/current_tasks.md new file mode 100644 index 00000000..1622e960 --- /dev/null +++ b/docs/current_tasks.md @@ -0,0 +1,122 @@ +# Current Tasks + +> () indicates the task name in the lmms_eval. The task name is also used to specify the dataset in the configuration file. +> The following is manually updated documentation. You could use `lmms_eval task --list` to list all supported tasks and their task names. + +- AI2D (ai2d) +- ChartQA (chartqa) +- CMMMU (cmmmu) + - CMMMU Validation (cmmmu_val) + - CMMMU Test (cmmmu_test) +- COCO Caption (coco_cap) + - COCO 2014 Caption (coco2014_cap) + - COCO 2014 Caption Validation (coco2014_cap_val) + - COCO 2014 Caption Test (coco2014_cap_test) + - COCO 2017 Caption (coco2017_cap) + - COCO 2017 Caption MiniVal (coco2017_cap_val) + - COCO 2017 Caption MiniTest (coco2017_cap_test) +- [ConBench](https://github.com/foundation-multimodal-models/ConBench) (conbench) +- DOCVQA (docvqa) + - DOCVQA Validation (docvqa_val) + - DOCVQA Test (docvqa_test) +- Ferret (ferret) +- Flickr30K (flickr30k) + - Ferret Test (ferret_test) +- GQA (gqa) +- HallusionBenchmark (hallusion_bench_image) +- Infographic VQA (info_vqa) + - Infographic VQA Validation (info_vqa_val) + - Infographic VQA Test (info_vqa_test) +- LLaVA-Bench (llava_in_the_wild) +- LLaVA-Bench-COCO (llava_bench_coco) +- MathVerse (mathverse) + - MathVerse Text Dominant (mathverse_testmini_text_dominant) + - MathVerse Text Only (mathverse_testmini_text_only) + - MathVerse Text Lite (mathverse_testmini_text_lite) + - MathVerse Vision Dominant (mathverse_testmini_vision_dominant) + - MathVerse Vision Intensive (mathverse_testmini_vision_intensive) + - MathVerse Vision Only (mathverse_testmini_vision_only) +- MathVista (mathvista) + - MathVista Validation (mathvista_testmini) + - MathVista Test (mathvista_test) +- MMBench (mmbench) + - MMBench English (mmbench_en) + - MMBench English Dev (mmbench_en_dev) + - MMBench English Test (mmbench_en_test) + - MMBench Chinese (mmbench_cn) + - MMBench Chinese Dev (mmbench_cn_dev) + - MMBench Chinese Test (mmbench_cn_test) +- MME (mme) +- MMMU (mmmu) + - MMMU Validation (mmmu_val) + - MMMU Test (mmmu_test) +- MMUPD (mmupd) + - MMUPD Base (mmupd_base) + - MMAAD Base (mmaad_base) + - MMIASD Base (mmiasd_base) + - MMIVQD Base (mmivqd_base) + - MMUPD Option (mmupd_option) + - MMAAD Option (mmaad_option) + - MMIASD Option (mmiasd_option) + - MMIVQD Option (mmivqd_option) + - MMUPD Instruction (mmupd_instruction) + - MMAAD Instruction (mmaad_instruction) + - MMIASD Instruction (mmiasd_instruction) + - MMIVQD Instruction (mmivqd_instruction) +- MMVet (mmvet) +- Multi-DocVQA (multidocvqa) + - Multi-DocVQA Validation (multidocvqa_val) + - Multi-DocVQA Test (multidocvqa_test) +- NoCaps (nocaps) + - NoCaps Validation (nocaps_val) + - NoCaps Test (nocaps_test) +- OKVQA (ok_vqa) + - OKVQA Validation 2014 (ok_vqa_val2014) +- POPE (pope) +- RefCOCO (refcoco) + - refcoco_seg_test + - refcoco_seg_val + - refcoco_seg_testA + - refcoco_seg_testB + - refcoco_bbox_test + - refcoco_bbox_val + - refcoco_bbox_testA + - refcoco_bbox_testB +- RefCOCO+ (refcoco+) + - refcoco+_seg + - refcoco+_seg_val + - refcoco+_seg_testA + - refcoco+_seg_testB + - refcoco+_bbox + - refcoco+_bbox_val + - refcoco+_bbox_testA + - refcoco+_bbox_testB +- RefCOCOg (refcocog) + - refcocog_seg_test + - refcocog_seg_val + - refcocog_bbox_test + - refcocog_bbox_val +- ScienceQA (scienceqa_full) + - ScienceQA Full (scienceqa) + - ScienceQA IMG (scienceqa_img) +- ScreenSpot (screenspot) + - ScreenSpot REC / Grounding (screenspot_rec) + - ScreenSpot REG / Instruction Generation (screenspot_reg) +- SeedBench (seedbench) +- SeedBench 2 (seedbench_2) +- ST-VQA (stvqa) +- TextCaps (textcaps) + - TextCaps Validation (textcaps_val) + - TextCaps Test (textcaps_test) +- TextVQA (textvqa) + - TextVQA Validation (textvqa_val) + - TextVQA Test (textvqa_test) +- VizWizVQA (vizwiz_vqa) + - VizWizVQA Validation (vizwiz_vqa_val) + - VizWizVQA Test (vizwiz_vqa_test) +- VQAv2 (vqav2) + - VQAv2 Validation (vqav2_val) + - VQAv2 Test (vqav2_test) +- WebSRC (websrc) + - WebSRC Validation (websrc_val) + - WebSRC Test (websrc_test) \ No newline at end of file diff --git a/lmms_eval/api/task.py b/lmms_eval/api/task.py index c035a0a2..3e9040e6 100755 --- a/lmms_eval/api/task.py +++ b/lmms_eval/api/task.py @@ -778,6 +778,7 @@ def _download_from_youtube(path): force_unzip = dataset_kwargs.get("force_unzip", False) cache_path = snapshot_download(repo_id=self.DATASET_PATH, repo_type="dataset", force_download=force_download, etag_timeout=60) zip_files = glob(os.path.join(cache_path, "**/*.zip"), recursive=True) + tar_files = glob(os.path.join(cache_path, "**/*.tar*"), recursive=True) def unzip_video_data(zip_file): import zipfile @@ -786,10 +787,51 @@ def unzip_video_data(zip_file): zip_ref.extractall(cache_dir) eval_logger.info(f"Extracted all files from {zip_file} to {cache_dir}") + def untar_video_data(tar_file): + import tarfile + + with tarfile.open(tar_file, "r") as tar_ref: + tar_ref.extractall(cache_dir) + eval_logger.info(f"Extracted all files from {tar_file} to {cache_dir}") + + def concat_tar_parts(tar_parts, output_tar): + with open(output_tar, "wb") as out_tar: + from tqdm import tqdm + + for part in tqdm(sorted(tar_parts)): + with open(part, "rb") as part_file: + out_tar.write(part_file.read()) + eval_logger.info(f"Concatenated parts {tar_parts} into {output_tar}") + + # Unzip zip files if needed if force_unzip or (not os.path.exists(cache_dir) and len(zip_files) > 0): for zip_file in zip_files: unzip_video_data(zip_file) + # Concatenate and extract tar files if needed + if force_unzip or (not os.path.exists(cache_dir) and len(tar_files) > 0): + tar_parts_dict = {} + + # Group tar parts together + for tar_file in tar_files: + base_name = tar_file.split(".tar")[0] + if base_name not in tar_parts_dict: + tar_parts_dict[base_name] = [] + tar_parts_dict[base_name].append(tar_file) + + # Concatenate and untar split parts + for base_name, parts in tar_parts_dict.items(): + eval_logger.info(f"Extracting following tar files: {parts}") + output_tar = base_name + ".tar" + if not os.path.exists(output_tar): + eval_logger.info(f"Start concatenating tar files") + + concat_tar_parts(parts, output_tar) + eval_logger.info(f"Finish concatenating tar files") + + if not os.path.exists(os.path.join(cache_dir, os.path.basename(base_name))): + untar_video_data(output_tar) + accelerator.wait_for_everyone() dataset_kwargs.pop("cache_dir") dataset_kwargs.pop("video") diff --git a/lmms_eval/models/__init__.py b/lmms_eval/models/__init__.py index 4a78c742..ec354cf3 100755 --- a/lmms_eval/models/__init__.py +++ b/lmms_eval/models/__init__.py @@ -26,7 +26,9 @@ "reka": "Reka", "llava_onevision": "Llava_OneVision", "from_log": "FromLog", - "mplugOwlVideo": "mplug_Owl", + "mplug_owl_video": "mplug_Owl", + "phi3v": "Phi3v", + "tinyllava": "TinyLlava", } for model_name, model_class in AVAILABLE_MODELS.items(): diff --git a/lmms_eval/models/gemini_model.py b/lmms_eval/models/gemini_model.py deleted file mode 100644 index dfc7d818..00000000 --- a/lmms_eval/models/gemini_model.py +++ /dev/null @@ -1,163 +0,0 @@ -from io import BytesIO -from copy import deepcopy -import numpy as np -import os -import base64 -from typing import List, Tuple -from tqdm import tqdm -import requests as url_requests -import time -import logging - -from lmms_eval.api.instance import Instance -from lmms_eval.api.model import lmms -from lmms_eval.api.registry import register_model -from lmms_eval import utils - -from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs -from accelerate.state import AcceleratorState - -try: - from decord import VideoReader, AudioReader, cpu -except ImportError: - pass - -from PIL import Image - -eval_logger = logging.getLogger("lmms-eval") - -NUM_SECONDS_TO_SLEEP = 5 -API_TYPE = os.getenv("API_TYPE", "openai") -if API_TYPE == "openai": # FIXME: Please modify this to support other type of API - API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") - API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") - headers = { - "Authorization": f"Bearer {API_KEY}", - "Content-Type": "application/json", - } -else: - eval_logger.error("API_TYPE not supported") - - -@register_model("gemini_model") -class GeminiModel(lmms): - def __init__( - self, - model_version: str = "gemini-pro", # FIXME: Please modify this to support real gemini model version - modality: str = "video", - max_frames_for_video: int = -1, - frame_rate: int = -1, - timeout: int = 120, - **kwargs, - ) -> None: - super().__init__() - self.model_version = model_version - self.modality = modality - self.max_frames_for_video = max_frames_for_video - self.frame_rate = frame_rate - assert self.modality in ["image", "video"], "Modality must be either image or video" - assert self.max_frames_for_video == -1 or self.frame_rate == -1, "max_frames_for_video and frame_rate cannot be provided at the same time" - assert self.max_frames_for_video == -1 if self.frame_rate != -1 else True, "max_frames_for_video must be -1 if frame_rate > 0" - self.image_token = "" # In case the question contains token for placeholder - self.timeout = timeout - - accelerator = Accelerator() # This is not neccessary, it is only used to get the rank and world size - if accelerator.num_processes > 1: - assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." - self.accelerator = accelerator - if self.accelerator.is_local_main_process: - eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") - self._rank = self.accelerator.local_process_index - self._world_size = self.accelerator.num_processes - - self.device = self.accelerator.device - - # Function to encode the image - def encode_image(self, image: Image): - output_buffer = BytesIO() - image.save(output_buffer, format="PNG") - byte_data = output_buffer.getvalue() - base64_str = base64.b64encode(byte_data).decode("utf-8") - return base64_str - - # Function to encode the video - def encode_video(self, video_path, for_get_frames_num=-1, frame_rate=-1): - assert for_get_frames_num != -1 or frame_rate != -1, "Either for_get_frames_num or frame_rate must be provided" - vr = VideoReader(video_path, ctx=cpu(0)) - total_frame_num = len(vr) - if for_get_frames_num != -1: - uniform_sampled_frames = np.linspace(0, total_frame_num - 1, for_get_frames_num, dtype=int) - frame_idx = uniform_sampled_frames.tolist() - else: - frame_idx = range(0, total_frame_num, frame_rate) - frames = vr.get_batch(frame_idx).asnumpy() - - base64_frames = [] - for frame in frames: - img = Image.fromarray(frame) - output_buffer = BytesIO() - img.save(output_buffer, format="JPEG") - byte_data = output_buffer.getvalue() - base64_str = base64.b64encode(byte_data).decode("utf-8") - base64_frames.append(base64_str) - - # Extract audio - try: - ar = AudioReader(video_path, sample_rate=44100, mono=False, ctx=cpu(0)) - audio = ar.get_batch(frame_idx).asnumpy() - audio_buffer = BytesIO() - audio.save(audio_buffer, format="mp3") - audio_byte_data = audio_buffer.getvalue() - base64_audio = base64.b64encode(audio_byte_data).decode("utf-8") - except Exception as e: - eval_logger.error(f"Error extracting audio or no audio found for video: {video_path}") - base64_audio = None - - return base64_frames, base64_audio - - def flatten(self, input): - new_list = [] - for i in input: - for j in i: - new_list.append(j) - return new_list - - def model_call(self, gemini_global_content): - # TODO: Please implement the model call here - # input = [("text", "what does this video describe?"), ("image_bytes", image_png_bytes), ("image_bytes", image_png_bytes), ("image_bytes", image_png_bytes), ....] - gemini_response_content = {"example_id": gemini_global_content["example_id"], "response_content": "This is a placeholder response from the model. Please implement the model call."} - return gemini_response_content - - def generate_until(self, requests) -> List[str]: - res = [] - pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") - - for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: - # encode, pad, and truncate contexts for this batch - visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] - visuals = self.flatten(visuals) - imgs = [] # multiple images or frames for video - for visual in visuals: - if self.modality == "image": - img = self.encode_image(visual) - imgs.append(img) - elif self.modality == "video": - frames, audio = self.encode_video(visual, self.max_frames_for_video, self.frame_rate) # FIXME: I am not sure how to put audio information into query, please modify this - imgs.extend(frames) - - ########################## Implement the following code snippet ########################## - - # input = [("text", "what does this video describe?"), ("image_bytes", image_png_bytes), ("image_bytes", image_png_bytes), ("image_bytes", image_png_bytes), ....] - gemini_input_content = {"example_id": f"{doc_id:06d}", "request_content": [("text", contexts)]} - gemini_input_content["request_content"].extend([("image_bytes", img) for img in imgs]) - - gemini_output_content = self.model_call(gemini_input_content) - text_content = gemini_output_content["response_content"] - ########################## Implement the above code snippet ############################## - res.append(text_content) - pbar.update(1) - return res - - def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: - # TODO - assert False, "Gemini Model not support" diff --git a/lmms_eval/models/idefics2.py b/lmms_eval/models/idefics2.py index e978f907..608d694b 100644 --- a/lmms_eval/models/idefics2.py +++ b/lmms_eval/models/idefics2.py @@ -203,6 +203,7 @@ def _collate(x): gen_kwargs["max_new_tokens"] = 1024 if "temperature" not in gen_kwargs: gen_kwargs["temperature"] = 0 + prompts = [] for context, visual in zip(contexts, visuals): content = [] diff --git a/lmms_eval/models/llava.py b/lmms_eval/models/llava.py index 345f4863..b49cf55b 100755 --- a/lmms_eval/models/llava.py +++ b/lmms_eval/models/llava.py @@ -26,19 +26,11 @@ try: from llava.model.builder import load_pretrained_model from llava.mm_utils import get_model_name_from_path, process_images, tokenizer_image_token - from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX - from llava.conversation import conv_templates, SeparatorStyle + from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN + from llava.conversation import conv_templates except Exception as e: eval_logger.debug("LLaVA is not installed. Please install LLaVA to use this model.\nError: %s" % e) -from transformers.integrations.deepspeed import ( - is_deepspeed_zero3_enabled, - set_hf_deepspeed_config, - unset_hf_deepspeed_config, -) - -from transformers.utils import is_flash_attn_2_available - # inference implementation for attention, can be "sdpa", "eager", "flash_attention_2". Seems FA2 is not effective during inference: https://discuss.huggingface.co/t/flash-attention-has-no-effect-on-inference/73453/5 # if is_flash_attn_2_available: # best_fit_attn_implementation = "flash_attention_2" # flash_attn has a bug that says: ERROR Error query and key must have the same dtype in generating @@ -60,10 +52,7 @@ def __init__( pretrained: str = "liuhaotian/llava-v1.5-7b", truncation: Optional[bool] = True, device: Optional[str] = "cuda:0", - dtype: Optional[Union[str, torch.dtype]] = "auto", batch_size: Optional[Union[int, str]] = 1, - trust_remote_code: Optional[bool] = False, - revision=None, model_name=None, attn_implementation=best_fit_attn_implementation, device_map="cuda:0", diff --git a/lmms_eval/models/llava_hf.py b/lmms_eval/models/llava_hf.py index effb94fb..de0fb9ec 100644 --- a/lmms_eval/models/llava_hf.py +++ b/lmms_eval/models/llava_hf.py @@ -8,7 +8,7 @@ from accelerate import Accelerator, DistributedType from accelerate.state import AcceleratorState from typing import List, Optional, Union, Tuple -from transformers import LlavaForConditionalGeneration, AutoProcessor +from transformers import LlavaForConditionalGeneration, LlavaNextForConditionalGeneration, AutoProcessor import warnings @@ -31,10 +31,10 @@ class LlavaHf(lmms): Example usage: - accelerate launch --num_processes=8 -m lmms_eval \ + accelerate launch --num_processes=8 --main_process_port 12345 -m lmms_eval \ --model llava_hf \ --model_args pretrained=llava-hf/llava-1.5-7b-hf \ - --tasks mme \ + --tasks seedbench \ --batch_size 1 \ --output_path ./logs/ \ --log_samples @@ -67,7 +67,16 @@ def __init__( self.device_map = device_map if isinstance(dtype, str) and dtype != "auto": dtype = getattr(torch, dtype) - self._model = LlavaForConditionalGeneration.from_pretrained(pretrained, revision=revision, torch_dtype=dtype, device_map=self.device_map, trust_remote_code=trust_remote_code, attn_implementation=attn_implementation) + + if "1.5" in pretrained: + self._model = LlavaForConditionalGeneration.from_pretrained(pretrained, revision=revision, torch_dtype=dtype, device_map=self.device_map, trust_remote_code=trust_remote_code, attn_implementation=attn_implementation) + elif "1.6" in pretrained: + self._model = LlavaNextForConditionalGeneration.from_pretrained(pretrained, revision=revision, torch_dtype=dtype, device_map=self.device_map, trust_remote_code=trust_remote_code, attn_implementation=attn_implementation) + else: + eval_logger.info("Not sure whether you use 1.5 or 1.6. Use 1.5 by default. This might cause bugs if you are actually using 1.6") + self._model = LlavaForConditionalGeneration.from_pretrained(pretrained, revision=revision, torch_dtype=dtype, device_map=self.device_map, trust_remote_code=trust_remote_code, attn_implementation=attn_implementation) + + self.pretrained = pretrained self._image_processor = AutoProcessor.from_pretrained(pretrained, revision=revision, trust_remote_code=trust_remote_code) # Pad from left for batched generation: https://huggingface.co/docs/transformers/v4.39.3/en/model_doc/llava#usage-tips self._image_processor.tokenizer.padding_side = "left" @@ -106,6 +115,7 @@ def __init__( self.model.to(self._device) self._rank = 0 self._word_size = 1 + self.accelerator = accelerator @property def config(self): @@ -199,8 +209,8 @@ def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: labels[: len(contxt_id)] = -100 if self.accelerator.is_main_process and doc_id % 100 == 0: - eval_logger.info(f"Prompt for doc ID {doc_id}:\n\n{formatted_contexts[0]}\n") - eval_logger.info(f"Prompt and continuation for doc ID {doc_id}:\n\n{formatted_continuation[0]}\n") + eval_logger.debug(f"Prompt for doc ID {doc_id}:\n\n{formatted_contexts[0]}\n") + eval_logger.debug(f"Prompt and continuation for doc ID {doc_id}:\n\n{formatted_continuation[0]}\n") with torch.inference_mode(): outputs = self.model(**model_inputs, labels=labels) @@ -268,7 +278,9 @@ def _collate(x): # Some benchmarks like MME do not contain image tokens, so we prepend them to the prompt. if DEFAULT_IMAGE_TOKEN not in context: - context = f"{DEFAULT_IMAGE_TOKEN}\n{context}" + image_tokens = [DEFAULT_IMAGE_TOKEN] * len(visuals) + image_tokens = " ".join(image_tokens) + context = f"{image_tokens}\n{context}" # Apply chat template messages = [{"role": "user", "content": context}] if self.chat_template is not None: @@ -281,7 +293,7 @@ def _collate(x): text = self.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) if self.accelerator.is_main_process and doc_id[0] % 100 == 0: - eval_logger.info(f"Prompt for doc ID {doc_id[0]}:\n\n{text}\n") + eval_logger.debug(f"Prompt for doc ID {doc_id[0]}:\n\n{text}\n") inputs = self._image_processor(images=visuals, text=text, return_tensors="pt").to(self._device, self.model.dtype) @@ -303,15 +315,21 @@ def _collate(x): num_beams=gen_kwargs["num_beams"], max_new_tokens=gen_kwargs["max_new_tokens"], use_cache=self.use_cache, + pad_token_id=self.tokenizer.eos_token_id, ) except Exception as e: eval_logger.error(f"Error {e} in generating") cont = "" text_outputs = self.tokenizer.batch_decode(cont, skip_special_tokens=True)[0] - text_outputs = text_outputs.split("ASSISTANT:")[-1].strip() + if "1.5" in self.pretrained: + text_outputs = text_outputs.split("ASSISTANT:")[-1].strip() + elif "mistral" in self.pretrained: + text_outputs = text_outputs.split("[/INST]")[-1].strip() + else: + text_outputs = text_outputs.split("ASSISTANT:")[-1].strip() if self.accelerator.is_main_process and doc_id[0] % 100 == 0: - eval_logger.info(f"Generated text for doc ID {doc_id[0]}:\n\n{text_outputs}\n") + eval_logger.debug(f"Generated text for doc ID {doc_id[0]}:\n\n{text_outputs}\n") res.append(text_outputs) self.cache_hook.add_partial("generate_until", (context, gen_kwargs), text_outputs) diff --git a/lmms_eval/models/llava_vid.py b/lmms_eval/models/llava_vid.py index abd42c36..cbbe7863 100755 --- a/lmms_eval/models/llava_vid.py +++ b/lmms_eval/models/llava_vid.py @@ -96,6 +96,7 @@ def __init__( self.mm_spatial_pool_out_channels = int(mm_spatial_pool_out_channels) self.mm_spatial_pool_mode = mm_spatial_pool_mode self.max_frames_num = int(max_frames_num) + print(self.max_frames_num) if self.overwrite == True: overwrite_config = {} overwrite_config["mm_resampler_type"] = self.mm_resampler_type diff --git a/lmms_eval/models/mplugOwlVideo.py b/lmms_eval/models/mplug_owl_video.py similarity index 100% rename from lmms_eval/models/mplugOwlVideo.py rename to lmms_eval/models/mplug_owl_video.py diff --git a/lmms_eval/models/phi3v.py b/lmms_eval/models/phi3v.py new file mode 100644 index 00000000..faa59ef5 --- /dev/null +++ b/lmms_eval/models/phi3v.py @@ -0,0 +1,219 @@ +import torch +import logging + +from accelerate import Accelerator, DistributedType +from lmms_eval import utils +from lmms_eval.api.instance import Instance +from lmms_eval.api.model import lmms +from lmms_eval.api.registry import register_model +from tqdm import tqdm +from transformers import AutoModelForCausalLM +from transformers import AutoProcessor +from typing import List, Optional, Tuple, Union + +eval_logger = logging.getLogger("lmms-eval") + + +@register_model("phi3v") +class Phi3v(lmms): + """ + This class implements inference for the microsoft/Phi-3-vision-128k-instruct model. + To learn more about this model please visit the following links: + 1. https://huggingface.co/microsoft/Phi-3-vision-128k-instruct + 2. https://azure.microsoft.com/en-us/blog/new-models-added-to-the-phi-3-family-available-on-microsoft-azure/ + 3. https://github.com/microsoft/Phi-3CookBook + + NOTE: This class was adapted from quen_vl.py and llava_hf.py. + + Example: + + accelerate launch --num_processes=4 -m lmms_eval --model phi3v --tasks mmmu_val \ + --batch_size 1 --log_samples --log_samples_suffix phi3v_mmmu --output_path ./logs/ + """ + + def __init__( + self, + model_id_name: str = "microsoft/Phi-3-vision-128k-instruct", + device: str = "cuda", + dtype: Optional[Union[str, torch.dtype]] = "auto", + batch_size: int = 1, + trust_remote_code: Optional[bool] = True, + use_cache: bool = True, + **kwargs, + ) -> None: + super().__init__() + # Do not use kwargs for now + assert kwargs == {}, f"Unexpected kwargs: {kwargs}" + # Setup accelerator. + accelerator = Accelerator() + if accelerator.num_processes > 1: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + else: + self._device = device + # Load model. + self._model = AutoModelForCausalLM.from_pretrained(model_id_name, device_map=device, trust_remote_code=trust_remote_code, torch_dtype=dtype) + self._processor = AutoProcessor.from_pretrained(model_id_name, trust_remote_code=trust_remote_code) + self._processor.tokenizer.padding_side = "left" + self._tokenizer = self._processor.tokenizer + self._config = self._model.config + self.batch_size_per_gpu = int(batch_size) + assert self.batch_size_per_gpu == 1, "batch_size_per_gpu > 1 is not supported for now." + self.use_cache = use_cache + if accelerator.num_processes > 1: + distributed_type_list = [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED] + assert accelerator.distributed_type in distributed_type_list, "Unsupported distributed type provided. Only DDP and FSDP are supported." + if accelerator.distributed_type == DistributedType.FSDP: + self._model = accelerator.prepare(self.model) + else: + self._model = accelerator.prepare_model(self.model, evaluation_mode=True) + self.accelerator = accelerator + if self.accelerator.is_local_main_process: + eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") + self._rank = self.accelerator.local_process_index + self._world_size = self.accelerator.num_processes + else: + eval_logger.info(f"Using single device: {self._device}") + self.model.to(self._device) + self._rank = 0 + self._word_size = 1 + + @property + def config(self): + # return the associated transformers.AutoConfig for the given pretrained model. + return self._config + + @property + def tokenizer(self): + return self._tokenizer + + @property + def model(self): + # returns the model, unwrapping it if using Accelerate + if hasattr(self, "accelerator"): + return self.accelerator.unwrap_model(self._model) + else: + return self._model + + @property + def eot_token_id(self): + # we use EOT because end of *text* is more accurate for what we're doing than end of *sentence* + return self.tokenizer.eos_token_id + + @property + def max_length(self): + return self._max_length + + @property + def batch_size(self): + return self.batch_size_per_gpu + + @property + def device(self): + return self._device + + @property + def rank(self): + return self._rank + + @property + def world_size(self): + return self._world_size + + def flatten(self, input): + new_list = [] + for i in input: + for j in i: + new_list.append(j) + return new_list + + def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: + raise NotImplementedError("Not implemented for Phi3v.") + + def generate_until(self, requests: List[Instance]) -> List[str]: + res = [] + + def _collate(x): + # the negative sign on len(toks) sorts descending - this has a few advantages: + # - time estimates will always be over not underestimates, which is more useful for planning + # - to know the size of a batch when going through the list, you know the first one is always the batch + # padded context length. this is useful to simplify the batching logic and more importantly to make + # automatic adaptive batches much much easier to implement + # - any OOMs will happen right away rather than near the end + toks = self.tokenizer.encode(x[0]) + return -len(toks), x[0] + + pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") + # we group requests by their generation_kwargs, + # so that we don't try to execute e.g. greedy sampling and temp=0.8 sampling + # in the same batch. + re_ords = utils.Collator([reg.args for reg in requests], _collate, grouping=True) + chunks = re_ords.get_batched(n=self.batch_size, batch_fn=None) + for chunk in chunks: + contexts, all_gen_kwargs, doc_to_visual, doc_id, task, split = zip(*chunk) + task = task[0] + split = split[0] + visuals = [doc_to_visual[0](self.task_dict[task][split][ids]) for ids in doc_id] + visuals = self.flatten(visuals) + # We assume all gen kwargs in the batch are the same + # this is safe to assume because the `grouper` object ensures it. + gen_kwargs = all_gen_kwargs[0] + # Set default values for until and max_new_tokens + until = [self.tokenizer.decode(self.eot_token_id)] + # Update values from gen_kwargs if present + if "until" in gen_kwargs: + until = gen_kwargs.pop("until") + if isinstance(until, str): + until = [until] + elif not isinstance(until, list): + raise ValueError(f"Expected `gen_kwargs['until']` to be of type Union[str,list] but got {type(until)}") + if isinstance(contexts, tuple): + contexts = list(contexts) + for i in range(len(contexts)): + if "" in contexts[i]: + query = "" + contexts[i] + img_placeholder_count = 1 + while "" in query: + query = query.replace("", f"<|image_{img_placeholder_count}|>", 1) + img_placeholder_count += 1 + else: + query = "" + for placeholder_id in range(len(visuals)): + query += f"<|image_{placeholder_id+1}|>\n" + query += contexts[i] + messages = [{"role": "user", "content": query}] + contexts[i] = self._tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) + assert len(contexts) == 1 + # + context = contexts[0] + input_ids = self._processor(text=context, images=visuals, return_tensors="pt").to(self._device, self.model.dtype) + # Setting default parameters. + if "max_new_tokens" not in gen_kwargs: + gen_kwargs["max_new_tokens"] = 1024 + if "temperature" not in gen_kwargs: + gen_kwargs["temperature"] = 0 + if "top_p" not in gen_kwargs: + gen_kwargs["top_p"] = None + if "num_beams" not in gen_kwargs: + gen_kwargs["num_beams"] = 1 + # Generate answer. + pad_token_id = self.tokenizer.pad_token_id if self.tokenizer.pad_token_id is not None else self.tokenizer.eod_id + generate_ids = self.model.generate( + **input_ids, + eos_token_id=self.tokenizer.eos_token_id, + pad_token_id=pad_token_id, + do_sample=True if gen_kwargs["temperature"] > 0 else False, + temperature=gen_kwargs["temperature"], + top_p=gen_kwargs["top_p"], + num_beams=gen_kwargs["num_beams"], + max_new_tokens=gen_kwargs["max_new_tokens"], + use_cache=self.use_cache, + ) + generate_ids = generate_ids[:, input_ids["input_ids"].shape[1] :] + response = self._processor.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0] + res.append(response) + self.cache_hook.add_partial("generate_until", (context, gen_kwargs), response) + pbar.update(1) + # reorder this group of results back to original unsorted form + res = re_ords.get_original(res) + pbar.close() + return res diff --git a/lmms_eval/models/llava_onevision.py b/lmms_eval/models/tinyllava.py similarity index 55% rename from lmms_eval/models/llava_onevision.py rename to lmms_eval/models/tinyllava.py index a755b0c9..e2ca4bdf 100755 --- a/lmms_eval/models/llava_onevision.py +++ b/lmms_eval/models/tinyllava.py @@ -1,51 +1,36 @@ -from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs -from accelerate.state import AcceleratorState -from transformers import AutoConfig - -import math import torch torch.backends.cuda.matmul.allow_tf32 = True +import logging +import copy from tqdm import tqdm from datetime import timedelta -from decord import VideoReader, cpu -import numpy as np -import copy -import PIL +from lmms_eval import utils +from lmms_eval.api.instance import Instance +from lmms_eval.api.model import lmms +from lmms_eval.api.registry import register_model +from lmms_eval.utils import stop_sequences_criteria + +from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs +from accelerate.state import AcceleratorState from typing import List, Optional, Union, Tuple from packaging import version import warnings -import logging warnings.filterwarnings("ignore") eval_logger = logging.getLogger("lmms-eval") -from lmms_eval import utils -from lmms_eval.api.instance import Instance -from lmms_eval.api.model import lmms -from lmms_eval.api.registry import register_model -from lmms_eval.models.model_utils.load_video import read_video_pyav - try: - from llava.model.builder import load_pretrained_model - from llava.mm_utils import get_model_name_from_path, process_images, tokenizer_image_token, KeywordsStoppingCriteria - from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX - from llava.conversation import conv_templates, SeparatorStyle - + from tinyllava.model import load_pretrained_model + from tinyllava.data import ImagePreprocess, TextPreprocess + from tinyllava.utils.constants import DEFAULT_IMAGE_TOKEN + from tinyllava.utils.message import Message except Exception as e: - eval_logger.debug("LLaVA is not installed. Please install LLaVA to use this model.\nError: %s" % e) - -try: - from llavavid.model.language_model.llava_qwen import LlavaQwenConfig - from llavavid.model.language_model.llava_llama import LlavaConfig + eval_logger.debug("TinyLLaVA_Factory is not installed. Please install TinyLLaVA_Factory to use this model.\nError: %s" % e) - AutoConfig.register("llava_qwen", LlavaQwenConfig) - AutoConfig.register("llava_llama", LlavaConfig) -except Exception as e: - eval_logger.debug("") # inference implementation for attention, can be "sdpa", "eager", "flash_attention_2". Seems FA2 is not effective during inference: https://discuss.huggingface.co/t/flash-attention-has-no-effect-on-inference/73453/5 # if is_flash_attn_2_available: # best_fit_attn_implementation = "flash_attention_2" # flash_attn has a bug that says: ERROR Error query and key must have the same dtype in generating @@ -56,30 +41,20 @@ best_fit_attn_implementation = "eager" -@register_model("llava_onevision") -class Llava_OneVision(lmms): +@register_model("tinyllava") +class TinyLlava(lmms): """ - Llava Model + TinyLlava Model """ def __init__( self, - pretrained: str = "liuhaotian/llava-v1.5-7b", - truncation: Optional[bool] = True, + pretrained: str = "tinyllava/TinyLLaVA-Phi-2-SigLIP-3.1B", device: Optional[str] = "cuda:0", batch_size: Optional[Union[int, str]] = 1, - model_name: Optional[str] = None, - attn_implementation: Optional[str] = best_fit_attn_implementation, - device_map: Optional[str] = "cuda:0", - conv_template: Optional[str] = "vicuna_v1", - use_cache: Optional[bool] = True, - truncate_context: Optional[bool] = False, # whether to truncate the context in generation, set it False for LLaVA-1.6 - customized_config: Optional[str] = None, # ends in json - max_frames_num: Optional[int] = 32, - mm_spatial_pool_stride: Optional[int] = 2, - mm_spatial_pool_mode: Optional[str] = "average", - token_strategy: Optional[str] = "single", # could be "single" or "multiple", "multiple" denotes adding multiple tokens for each frame - video_decode_backend: str = "pyav", + device_map="cuda:0", + conv_mode="phi", # TODO + use_cache=True, **kwargs, ) -> None: super().__init__() @@ -98,60 +73,22 @@ def __init__( self._device = torch.device(f"cuda:{accelerator.local_process_index}") self.device_map = f"cuda:{accelerator.local_process_index}" - llava_model_args = { - "multimodal": True, - } - if customized_config is not None: - llava_model_args["customized_config"] = customized_config - if attn_implementation is not None: - llava_model_args["attn_implementation"] = attn_implementation - if "use_flash_attention_2" in kwargs: - llava_model_args["use_flash_attention_2"] = kwargs["use_flash_attention_2"] - model_name = model_name if model_name is not None else get_model_name_from_path(pretrained) - - self.pretrained = pretrained - self.token_strategy = token_strategy - self.max_frames_num = max_frames_num - self.mm_spatial_pool_stride = mm_spatial_pool_stride - self.mm_spatial_pool_mode = mm_spatial_pool_mode - self.video_decode_backend = video_decode_backend - - overwrite_config = {} - overwrite_config["mm_spatial_pool_stride"] = self.mm_spatial_pool_stride - overwrite_config["mm_spatial_pool_mode"] = self.mm_spatial_pool_mode - cfg_pretrained = AutoConfig.from_pretrained(self.pretrained) - - if cfg_pretrained.architectures[0] == "LlavaLlamaForCausalLM": # Ugly code, only used in vicuna that needs ROPE - if "224" in cfg_pretrained.mm_vision_tower: - least_token_number = self.max_frames_num * (16 // self.mm_spatial_pool_stride) ** 2 + 1000 - else: - least_token_number = self.max_frames_num * (24 // self.mm_spatial_pool_stride) ** 2 + 1000 - - scaling_factor = math.ceil(least_token_number / 4096) - if scaling_factor >= 2: - overwrite_config["rope_scaling"] = {"factor": float(scaling_factor), "type": "linear"} - overwrite_config["max_sequence_length"] = 4096 * scaling_factor - overwrite_config["tokenizer_model_max_length"] = 4096 * scaling_factor - - llava_model_args["overwrite_config"] = overwrite_config - try: - # Try to load the model with the multimodal argument - self._tokenizer, self._model, self._image_processor, self._max_length = load_pretrained_model(pretrained, None, model_name, device_map=self.device_map, **llava_model_args) - except TypeError: - # for older versions of LLaVA that don't have multimodal argument - llava_model_args.pop("multimodal", None) - self._tokenizer, self._model, self._image_processor, self._max_length = load_pretrained_model(pretrained, None, model_name, device_map=self.device_map, **llava_model_args) + self._model, self._tokenizer, self._image_processor, self._max_length = load_pretrained_model(pretrained, device_map=self.device_map) + data_args = self._model.config + self._image_processor = ImagePreprocess(self._image_processor, data_args) + assert self._tokenizer.padding_side == "right", "Not sure but seems like `right` is a natural choice for padding?" + self._text_processor = TextPreprocess(self._tokenizer, conv_mode) self._config = self._model.config self.model.eval() self.model.tie_weights() - self.truncation = truncation + # self.truncation = truncation self.batch_size_per_gpu = int(batch_size) - self.conv_template = conv_template + # self.conv_template = conv_template self.use_cache = use_cache - self.truncate_context = truncate_context - assert self.batch_size_per_gpu == 1, "Llava currently does not support batched generation. See https://github.com/haotian-liu/LLaVA/issues/754. HF Llava also has this issue." + # self.truncate_context = truncate_context + # assert self.batch_size_per_gpu == 1, "Llava currently does not support batched generation. See https://github.com/haotian-liu/LLaVA/issues/754. HF Llava also has this issue." if accelerator.num_processes > 1: assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model @@ -174,12 +111,10 @@ def __init__( eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") self._rank = self.accelerator.local_process_index self._world_size = self.accelerator.num_processes - elif accelerator.num_processes == 1 and device_map == "auto": eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") self._rank = 0 self._word_size = 1 - else: eval_logger.info(f"Using single device: {self._device}") self.model.to(self._device) @@ -251,6 +186,13 @@ def tok_decode(self, tokens): except: return self.tokenizer.decode([tokens]) + def flatten(self, input): + new_list = [] + for i in input: + for j in i: + new_list.append(j) + return new_list + def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: # TODO res = [] @@ -266,9 +208,13 @@ def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: visuals = self.flatten(visuals) image_sizes = [[visual.size[0], visual.size[1]] for visual in visuals] if visuals: - image = process_images(visuals, self._image_processor, self._config) + # https://github.com/zjysteven/TinyLLaVA_Factory/blob/main/tinyllava/data/image_preprocess.py + # tinyllava's image processor seems to take each individual image as input + image = [self._image_processor(v) for v in visuals] if type(image) is list: image = [_image.to(dtype=torch.float16, device=self.device) for _image in image] + # as of 2024/06, tinyllava only accepts `images` input to be a tensor + image = torch.stack(image) else: image = image.to(dtype=torch.float16, device=self.device) else: @@ -287,25 +233,17 @@ def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: image_tokens = " ".join(image_tokens) prompts_input = image_tokens + "\n" + (contexts[0] if isinstance(contexts, list) else contexts) - # This is much safer for llama3, as we now have some object type in it - if "llama_3" in self.conv_template: - conv = copy.deepcopy(conv_templates[self.conv_template]) - else: - conv = conv_templates[self.conv_template].copy() - - conv.append_message(conv.roles[0], prompts_input) - conv.append_message(conv.roles[1], None) - prompt = conv.get_prompt() - pad_token_id = self.tokenizer.pad_token_id if self.tokenizer.pad_token_id is not None else self.tokenizer.eos_token_id - contxt_id = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) + msg = Message() + msg.add_message(prompts_input) + contxt_id = self._text_processor(msg.messages, mode="eval")["input_ids"] # Add the answer of the second role - conv.messages[1][1] = continuation + msg._messages[1]["value"] = continuation + input_ids = self._text_processor(msg.messages, mode="eval")["input_ids"] - prompt = conv.get_prompt() - input_ids = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) labels = input_ids.clone() # Context part no need to calculate for loss labels[0, : contxt_id.shape[1]] = -100 + with torch.inference_mode(): outputs = self.model(input_ids=input_ids, labels=labels, images=image, use_cache=True, image_sizes=image_sizes) loss = outputs["loss"] @@ -317,28 +255,9 @@ def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: max_equal = (greedy_tokens == cont_toks).all() res.append((float(loss.item()), bool(max_equal))) pbar.update(1) - pbar.close() return res - def flatten(self, input): - new_list = [] - for i in input: - for j in i: - new_list.append(j) - return new_list - - def load_video(self, video_path, max_frames_num): - if type(video_path) == str: - vr = VideoReader(video_path, ctx=cpu(0)) - else: - vr = VideoReader(video_path[0], ctx=cpu(0)) - total_frame_num = len(vr) - uniform_sampled_frames = np.linspace(0, total_frame_num - 1, max_frames_num, dtype=int) - frame_idx = uniform_sampled_frames.tolist() - spare_frames = vr.get_batch(frame_idx).asnumpy() - return spare_frames # (frames, height, width, channels) - def generate_until(self, requests: List[Instance]) -> List[str]: res = [] @@ -360,120 +279,130 @@ def _collate(x): num_iters = len(requests) // self.batch_size if len(requests) % self.batch_size == 0 else len(requests) // self.batch_size + 1 pbar = tqdm(total=num_iters, disable=(self.rank != 0), desc="Model Responding") for chunk in chunks: - batched_contexts, all_gen_kwargs, batched_doc_to_visual, batched_doc_id, batched_task, batched_split = zip(*chunk) - task = batched_task[0] - split = batched_split[0] - batched_visuals = [batched_doc_to_visual[0](self.task_dict[task][split][ids]) for ids in batched_doc_id] # [B, N] - assert len(batched_visuals) == 1 - + contexts, all_gen_kwargs, doc_to_visual, doc_id, task, split = zip(*chunk) + task = task[0] + split = split[0] + batched_visuals = [doc_to_visual[0](self.task_dict[task][split][ids]) for ids in doc_id] # [B, N] + flattened_visuals = self.flatten(batched_visuals) # [B*N] # we assume all gen kwargs in the batch are the same # this is safe to assume because the `grouper` object ensures it. gen_kwargs = all_gen_kwargs[0] + + # Set default values for until and max_new_tokens + until = [self.tok_decode(self.eot_token_id)] + + # Update values from gen_kwargs if present if "until" in gen_kwargs: - gen_kwargs.pop("until") + until = gen_kwargs.pop("until") + if isinstance(until, str): + until = [until] + elif not isinstance(until, list): + raise ValueError(f"Expected `gen_kwargs['until']` to be of type Union[str,list] but got {type(until)}") + + if "image_aspect_ratio" in gen_kwargs.keys() and "image_aspect_ratio" not in self._config.__dict__: + # here we should pop it out of gen_kwargs so that it doesn't get passed to the model for next step of generation + self._config.image_aspect_ratio = gen_kwargs.pop("image_aspect_ratio") + eval_logger.info(f"Setting image aspect ratio: {self._config.image_aspect_ratio}") + # encode, pad, and truncate contexts for this batch + if flattened_visuals: + image_tensor = [self._image_processor(v) for v in flattened_visuals] + if type(image_tensor) is list: + image_tensor = [_image.to(dtype=torch.float16, device=self.device) for _image in image_tensor] + # as of 2024/06, tinyllava only accepts `images` input to be a tensor + image_tensor = torch.stack(image_tensor) + else: + image_tensor = image_tensor.to(dtype=torch.float16, device=self.device) + else: + image_tensor = None - question_input = [] + # prompts_input = contexts[0] - for visual, context in zip(batched_visuals, batched_contexts): - if "image_aspect_ratio" in gen_kwargs.keys() and "image_aspect_ratio" not in self._config.__dict__: - # here we should pop it out of gen_kwargs so that it doesn't get passed to the model for next step of generation - self._config.image_aspect_ratio = gen_kwargs.pop("image_aspect_ratio") - eval_logger.info(f"Setting image aspect ratio: {self._config.image_aspect_ratio}") - - # encode, pad, and truncate contexts for this batch - if type(visual[0]) == PIL.Image.Image: # For image task - image_tensor = process_images(visual, self._image_processor, self._config) - if type(image_tensor) is list: - image_tensor = [_image.to(dtype=torch.float16, device=self.device) for _image in image_tensor] - else: - image_tensor = image_tensor.to(dtype=torch.float16, device=self.device) - - task_type = "image" - - elif type(visual[0]) == str: # For video task - image_tensor = [] - try: - if self.video_decode_backend == "decord": - frames = self.load_video(visual, self.max_frames_num) - elif self.video_decode_backend == "pyav": - frames = read_video_pyav(visual[0], num_frm=self.max_frames_num) - frames = self._image_processor.preprocess(frames, return_tensors="pt")["pixel_values"].half().cuda() - image_tensor.append(frames) - except Exception as e: - eval_logger.error(f"Error {e} in loading video") - image_tensor = None - - task_type = "video" + question_input = [] + for visual, context in zip(batched_visuals, contexts): if image_tensor is not None and len(image_tensor) != 0 and DEFAULT_IMAGE_TOKEN not in context: """ Three senarios: 1. No image, and there for, no image token should be added. 2. image token is already specified in the context, so we don't need to add it. 3. image token is not specified in the context and there is image inputs, so we need to add it. In this case, we add the image token at the beginning of the context and add a new line. - 4. For video tasks, we could add a token or multiple tokens for each frame in the context. This depends on the training strategy and should balance in test to decide which is better """ - if task_type == "image": - image_tokens = [DEFAULT_IMAGE_TOKEN] * len(visual) if isinstance(visual, list) else [DEFAULT_IMAGE_TOKEN] - elif task_type == "video": - image_tokens = [DEFAULT_IMAGE_TOKEN] * len(frames) if self.token_strategy == "multiple" else [DEFAULT_IMAGE_TOKEN] - + image_tokens = [DEFAULT_IMAGE_TOKEN] * len(visual) if isinstance(visual, list) else [DEFAULT_IMAGE_TOKEN] image_tokens = " ".join(image_tokens) question = image_tokens + "\n" + context else: question = context - # This is much safer for llama3, as we now have some object type in it - if "llama_3" in self.conv_template: - conv = copy.deepcopy(conv_templates[self.conv_template]) - else: - conv = conv_templates[self.conv_template].copy() - conv.append_message(conv.roles[0], question) - conv.append_message(conv.roles[1], None) - prompt_question = conv.get_prompt() + msg = Message() + msg.add_message(question) + prompt_question = self._text_processor(msg.messages, mode="eval")["prompt"] question_input.append(prompt_question) + # The above for loop has bugs. When there is no visuals, e.g. pure text, + # there will be no for loop execute resulting in an empty question_input (because no visuals) + # Scenario 1 won't even be execute + if len(flattened_visuals) == 0: + for context in contexts: + question = context + msg = Message() + msg.add_message(question) + prompt_question = self._text_processor(msg.messages, mode="eval")["prompt"] + question_input.append(prompt_question) + + # input_ids = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) # preconfigure gen_kwargs with defaults + gen_kwargs["image_sizes"] = [flattened_visuals[idx].size for idx in range(len(flattened_visuals))] if "max_new_tokens" not in gen_kwargs: gen_kwargs["max_new_tokens"] = 1024 if "temperature" not in gen_kwargs: gen_kwargs["temperature"] = 0 - if "do_sample" not in gen_kwargs: - gen_kwargs["do_sample"] = False if "top_p" not in gen_kwargs: gen_kwargs["top_p"] = None if "num_beams" not in gen_kwargs: gen_kwargs["num_beams"] = 1 - input_ids_list = [tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt") for prompt in question_input] + # input_ids_list = [tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt") for prompt in question_input] + input_ids_list = [self._text_processor.template.tokenizer_image_token(prompt, self.tokenizer, return_tensors="pt") for prompt in question_input] pad_token_ids = self.tokenizer.pad_token_id if self.tokenizer.pad_token_id is not None else self.tokenizer.eos_token_id input_ids = self.pad_sequence(input_ids_list, batch_first=True, padding_value=pad_token_ids).to(self.device) attention_masks = input_ids.ne(pad_token_ids).to(self.device) - - if task_type == "image": - gen_kwargs["image_sizes"] = [batched_visuals[idx][0].size for idx in range(len(batched_visuals))] - elif task_type == "video": - stop_str = conv.sep if conv.sep_style != SeparatorStyle.TWO else conv.sep2 - keywords = [stop_str] - stopping_criteria = KeywordsStoppingCriteria(keywords, self.tokenizer, input_ids) - gen_kwargs["modalities"] = ["video"] - gen_kwargs["stopping_criteria"] = [stopping_criteria] - self._config.mm_spatial_pool_stride = self.mm_spatial_pool_stride - self._config.mm_spatial_pool_mode = self.mm_spatial_pool_mode - # These steps are not in LLaVA's original code, but are necessary for generation to work # TODO: attention to this major generation step... if "image_aspect_ratio" in gen_kwargs.keys(): - gen_kwargs.pop("image_aspect_ratio") + gen_kwargs.pop("image_aspect_ratio") try: - with torch.inference_mode(): - cont = self.model.generate(input_ids, attention_mask=attention_masks, pad_token_id=pad_token_ids, images=image_tensor, use_cache=self.use_cache, **gen_kwargs) - + cont = self.model.generate( + input_ids, + attention_mask=attention_masks, + pad_token_id=pad_token_ids, + images=image_tensor, + image_sizes=gen_kwargs["image_sizes"], + do_sample=True if gen_kwargs["temperature"] > 0 else False, + temperature=gen_kwargs["temperature"], + top_p=gen_kwargs["top_p"], + num_beams=gen_kwargs["num_beams"], + max_new_tokens=gen_kwargs["max_new_tokens"], + use_cache=self.use_cache, + ) text_outputs = self.tokenizer.batch_decode(cont, skip_special_tokens=True) except Exception as e: raise e - - text_outputs = [response.strip() for response in text_outputs] + eval_logger.error(f"Error {e} in generating") + cont = "" + text_outputs = [""] + + # cont_toks_list = cont.tolist() + # for cont_toks, context in zip(cont_toks_list, contexts): + # discard context + left-padding toks if using causal decoder-only LMM + # if self.truncate_context: + # cont_toks = cont_toks[input_ids.shape[1] :] + # use secondary stop seqs to cut off should-have-been-stopped content post-hoc + # if self.truncate_context: + # for term in until: + # if len(term) > 0: + # # ignore '' separator, + # # for seq2seq case where self.tok_decode(self.eot_token_id) = '' + # text_outputs = text_outputs.split(term)[0] res.extend(text_outputs) self.cache_hook.add_partial("generate_until", (context, gen_kwargs), text_outputs) pbar.update(1) diff --git a/lmms_eval/models/videoChatGPT.py b/lmms_eval/models/video_chatgpt.py similarity index 100% rename from lmms_eval/models/videoChatGPT.py rename to lmms_eval/models/video_chatgpt.py diff --git a/lmms_eval/models/xcomposer2_4khd.py b/lmms_eval/models/xcomposer2_4khd.py new file mode 100644 index 00000000..b43f12e4 --- /dev/null +++ b/lmms_eval/models/xcomposer2_4khd.py @@ -0,0 +1,295 @@ +from multiprocessing import context +import torch +from transformers import AutoModel, AutoTokenizer +from PIL import Image +import numpy as np +import torchvision.transforms as transforms +from datetime import timedelta +import logging + +from lmms_eval import utils +from lmms_eval.api.instance import Instance +from lmms_eval.api.model import lmms +from lmms_eval.api.registry import register_model +from lmms_eval.utils import stop_sequences_criteria + +from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs +from accelerate.state import AcceleratorState + +from typing import Optional, Sequence, List, Tuple, Union +import re +from tqdm import tqdm + +pattern = re.compile(r"[A-Z]") + +eval_logger = logging.getLogger("lmms-eval") + +meta_instruction = """You are an AI assistant whose name is InternLM-XComposer (浦语·灵笔). +- InternLM-XComposer (浦语·灵笔) is a multi-modality conversational language model that is developed\ + by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless. +- InternLM-XComposer (浦语·灵笔) can understand and communicate fluently in the language chosen by\ + the user such as English and 中文. +- InternLM-XComposer (浦语·灵笔) is capable of comprehending and articulating responses\ + effectively based on the provided image.""" + + +@register_model("xcomposer2_4khd") +class XComposer2_4KHD(lmms): + def __init__( + self, + pretrained: str = "internlm/internlm-xcomposer2-4khd-7b", + device: Optional[str] = "cuda:0", + batch_size: Optional[Union[int, str]] = 1, + device_map="cuda:0", + need_bos: bool = True, + padding: bool = False, + half: bool = False, + **kwargs, + ) -> None: + super().__init__() + + accelerator_kwargs = InitProcessGroupKwargs(timeout=timedelta(weeks=52)) + accelerator = Accelerator(kwargs_handlers=[accelerator_kwargs]) + if accelerator.num_processes > 1: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + elif accelerator.num_processes == 1 and device_map == "auto": + self._device = torch.device(device) + self.device_map = device_map + else: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + + self.pretrained = pretrained + self.need_bos = need_bos + self.padding = padding + self._model = AutoModel.from_pretrained(self.pretrained, device_map=self.device_map, trust_remote_code=True) + self._tokenizer = AutoTokenizer.from_pretrained(self.pretrained, trust_remote_code=True) + self.model.tokenizer = self.tokenizer + self.batch_size_per_gpu = batch_size + + if accelerator.num_processes > 1: + assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." + # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model + # Also, you have to select zero stage 0 (equivalent to DDP) in order to make the prepare model works + # I tried to set different parameters in the kwargs to let default zero 2 stage works, but it didn't work. + if accelerator.distributed_type == DistributedType.DEEPSPEED: + kwargs = { + "train_micro_batch_size_per_gpu": self.batch_size_per_gpu, + "train_batch_size": self.batch_size_per_gpu * accelerator.num_processes, + } + AcceleratorState().deepspeed_plugin.deepspeed_config_process(must_match=True, **kwargs) + eval_logger.info("Detected that you are using DistributedType.DEEPSPEED. Make sure you run `accelerate config` and set zero stage to 0") + if accelerator.distributed_type == DistributedType.FSDP or accelerator.distributed_type == DistributedType.DEEPSPEED: + self._model = accelerator.prepare(self.model) + else: + self._model = accelerator.prepare_model(self.model, evaluation_mode=True) + self.accelerator = accelerator + if self.accelerator.is_local_main_process: + eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") + self._rank = self.accelerator.local_process_index + self._world_size = self.accelerator.num_processes + elif accelerator.num_processes == 1 and device_map == "auto": + eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") + self._rank = 0 + self._word_size = 1 + else: + eval_logger.info(f"Using single device: {self._device}") + self.model.to(self._device) + self._rank = 0 + self._world_size = 1 + + @property + def config(self): + # return the associated transformers.AutoConfig for the given pretrained model. + return self._config + + @property + def tokenizer(self): + return self._tokenizer + + @property + def model(self): + # returns the model, unwrapping it if using Accelerate + if hasattr(self, "accelerator"): + return self.accelerator.unwrap_model(self._model) + else: + return self._model + + @property + def batch_size(self): + return self.batch_size_per_gpu + + @property + def device(self): + return self._device + + @property + def rank(self): + return self._rank + + @property + def world_size(self): + return self._world_size + + def flatten(self, input): + new_list = [] + for i in input: + for j in i: + new_list.append(j) + return new_list + + def generate_until(self, requests) -> List[str]: + res = [] + pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") + + for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: + # encode, pad, and truncate contexts for this batch + if "[UNUSED_TOKEN_146]" not in contexts: + contexts = f"[UNUSED_TOKEN_146]user\n{contexts}[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] + visuals = self.flatten(visuals) + + if "hd_num" not in gen_kwargs: + if listinstr(["docvqa_test", "infovqa_test"], task.lower()): + self.model.hd_num = 65 + elif listinstr(["docvqa_val", "infovqa_val", "OCRBench"], task.lower()): + self.model.hd_num = 55 + elif listinstr(["mmmu", "mmbench", "mmvet"], task.lower()): + self.model.hd_num = 16 + else: + self.model.hd_num = 25 + else: + self.model.hd_num = gen_kwargs.pop("hd_num") + + pt1 = 0 + embeds = [] + im_mask = [] + images_loc = [0] + need_bos = self.need_bos + padding = self.padding + for i, pts in enumerate(images_loc + [len(contexts)]): + subtext = contexts[pt1:pts] + if need_bos or len(subtext) > 0: + text_embeds = self.model.encode_text(subtext, add_special_tokens=need_bos).to(self.device) + embeds.append(text_embeds) + im_mask.append(torch.zeros(text_embeds.shape[:2]).to(self.device)) + need_bos = False + if i < len(visuals): + image = visuals[i] + + image = HD_transform(image, im_num=self.model.hd_num) + image = self.model.vis_processor(image).unsqueeze(0).to(self.device) + image_embeds = self.model.encode_img(image) + embeds.append(image_embeds) + im_mask.append(torch.ones(image_embeds.shape[:2]).to(self.device)) + pt1 = pts + embeds = torch.cat(embeds, dim=1) + im_mask = torch.cat(im_mask, dim=1) + im_mask = im_mask.bool() + + if "max_new_tokens" not in gen_kwargs: + gen_kwargs["max_new_tokens"] = 1024 + if "temperature" not in gen_kwargs: + gen_kwargs["temperature"] = 0 + if "top_p" not in gen_kwargs: + gen_kwargs["top_p"] = None + if "num_beams" not in gen_kwargs: + gen_kwargs["num_beams"] = 1 + if "do_sample" not in gen_kwargs: + gen_kwargs["do_sample"] = False + if "repetition_penalty" not in gen_kwargs: + gen_kwargs["repetition_penalty"] = 1.0 + + outputs = self.model.generate( + inputs_embeds=embeds, + im_mask=im_mask, + temperature=gen_kwargs["temperature"], + max_new_tokens=gen_kwargs["max_new_tokens"], + num_beams=gen_kwargs["num_beams"], + do_sample=gen_kwargs["do_sample"], + repetition_penalty=gen_kwargs["repetition_penalty"], + ) + output_token = outputs[0] + if output_token[0] == 0 or output_token[0] == 1: + output_token = output_token[1:] + output_text = self.model.tokenizer.decode(output_token, add_special_tokens=False) + output_text = output_text.split("[UNUSED_TOKEN_145]")[0].strip() + output_text = output_text.split("<|im_end|>")[0].strip() + # if DATASET_TYPE(task) == "multi-choice": + # output_text = pattern.findall(output_text) + # if len(output_text) == 0: + # print("Error:", output_text) + # output_text = "Z" + # if type(output_text) == list: + # output_text = output_text[0] + res.append(output_text) + pbar.update(1) + pbar.close() + return res + + def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: + return super().loglikelihood(requests) + + +def padding_336(b): + width, height = b.size + tar = int(np.ceil(height / 336) * 336) + top_padding = int((tar - height) / 2) + bottom_padding = tar - height - top_padding + left_padding = 0 + right_padding = 0 + b = transforms.functional.pad(b, [left_padding, top_padding, right_padding, bottom_padding], fill=[255, 255, 255]) + + return b + + +def HD_transform(img, im_num=16): + width, height = img.size + trans = False + if width < height: + img = img.transpose(Image.TRANSPOSE) + trans = True + width, height = img.size + ratio = width / height + scale = 1 + while scale * np.ceil(scale / ratio) <= im_num: + scale += 1 + scale -= 1 + new_w = int(scale * 336) + new_h = int(new_w / ratio) + + img = transforms.functional.resize( + img, + [new_h, new_w], + ) + img = padding_336(img) + width, height = img.size + assert width * height <= im_num * 336 * 336 + if trans: + img = img.transpose(Image.TRANSPOSE) + + return img + + +def listinstr(lst, s): + assert isinstance(lst, list) + for item in lst: + if item in s: + return True + return False + + +def DATASET_TYPE(dataset): + # Dealing with Custom Dataset + dataset = dataset.lower() + if listinstr(["mmbench", "seedbench", "ccbench", "mmmu", "scienceqa", "ai2d", "mmstar"], dataset): + return "multi-choice" + elif listinstr(["mme", "hallusion"], dataset): + return "Y/N" + elif "coco" in dataset: + return "Caption" + elif listinstr(["ocrvqa", "textvqa", "chartqa", "mathvista", "docvqa", "infovqa", "llavabench", "mmvet", "ocrbench"], dataset): + return "VQA" + else: + return "QA" diff --git a/lmms_eval/tasks/conbench/conbench.yaml b/lmms_eval/tasks/conbench/conbench.yaml new file mode 100644 index 00000000..3739282a --- /dev/null +++ b/lmms_eval/tasks/conbench/conbench.yaml @@ -0,0 +1,24 @@ +dataset_path: ConBench/ConBench_D +dataset_kwargs: + token: True +task: "ConBench" +test_split: test +output_type: generate_until +doc_to_visual: !function utils.conbench_doc_to_visual +doc_to_text: !function utils.conbench_doc_to_text +doc_to_target: "answer" +generation_kwargs: + max_new_tokens: 1024 + temperature: 0.2 + top_p: 0 + num_beams: 1 + do_sample: True +# The return value of process_results will be used by metrics +process_results: !function utils.conbench_process_results +# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results +metric_list: + - metric: ConScore_D + aggregation: !function utils.conbench_aggregate_results + higher_is_better: true +metadata: + - version: 0.0 diff --git a/lmms_eval/tasks/conbench/utils.py b/lmms_eval/tasks/conbench/utils.py new file mode 100644 index 00000000..bf7e1090 --- /dev/null +++ b/lmms_eval/tasks/conbench/utils.py @@ -0,0 +1,98 @@ +from collections import defaultdict +import os +from anls import anls_score + +import logging + +eval_logger = logging.getLogger("lmms-eval") + +dir_name = os.path.dirname(os.path.abspath(__file__)) + +# 19 classes +eval_type_dict = { + "Sensation": ["count", "color", "scene", "poster", "attribute_recognition", "ocr", "position"], + "Cognition": ["calculation", "code", "translation", "math", "cross_instance_reason", "attribute_reason"], + "Knowledge": ["celebrity", "chemistry", "physics", "biology", "landmark", "artwork"], +} + + +def conbench_doc_to_visual(doc): + return [doc["image"].convert("RGB")] + + +def conbench_doc_to_text(doc): + question = doc["question"].strip() + return question + + +def parse_pred_ans_NY(pred_ans): + pred_label = None + if pred_ans in ["yes", "no"]: + pred_label = pred_ans + else: + prefix_pred_ans = pred_ans[:4] + + if "yes" in prefix_pred_ans: + pred_label = "yes" + elif "no" in prefix_pred_ans: + pred_label = "no" + else: + pred_label = "other" + return pred_label + + +def parse_pred_ans_choice(pred_ans): + return pred_ans.replace(" ", "")[0] + + +def conbench_process_results(doc, results): + """ + Args: + doc: a instance of the eval dataset + results: [pred] + Returns: + a dictionary with key: metric name (in this case mme score), value: metric value + """ + pred = results[0] + pred = pred.replace("\n", "").lower() + # parser + if doc["question_field"] == "N/Y": + pred_ans = parse_pred_ans_NY(pred) + elif doc["question_field"] == "Choices": + pred_ans = parse_pred_ans_choice(pred) + else: + pred_ans = pred + + gt_ans = doc["answer"].lower() + + # score + score = 1 if (doc["question_field"] == "Q/A" and anls_score(prediction=pred_ans, gold_labels=[gt_ans], threshold=0.95) >= 0.4) or (gt_ans == pred_ans) else 0 + # Note: the key name here is very important. It decides which aggregation function will receive the results + # We note down the question id/category to help us aggregate the results later + return {"ConScore_D": {"image_id": doc["image_id"], "question_field": doc["question_field"], "score": score}} + + +def conbench_aggregate_results(results): + """ + Args: + results: a list of values returned by process_results + Returns: + A score + """ + summary = defaultdict(dict) + for result in results: + image_id = result["image_id"] + score = result["score"] + if image_id not in summary.keys(): + summary[image_id] = 0 + summary[image_id] += score + + cnt_con = 0 + for image_id, score in summary.items(): + if score == 3: + cnt_con += 1 + + print("Consistency Cases are ", cnt_con) + cnt_con = cnt_con / (len(results) / 3) + eval_logger.info(f"ConScore_D: {cnt_con:.2f}") + return cnt_con diff --git a/lmms_eval/tasks/ii_bench/ii_bench.yaml b/lmms_eval/tasks/ii_bench/ii_bench.yaml new file mode 100755 index 00000000..482eb9cf --- /dev/null +++ b/lmms_eval/tasks/ii_bench/ii_bench.yaml @@ -0,0 +1,20 @@ +dataset_path: lmms-lab/II-Bench +task: "ii-bench" +test_split: test +output_type: generate_until +doc_to_visual: !function utils.ii_bench_doc_to_visual +doc_to_text: !function utils.ii_bench_doc_to_text +doc_to_target: "answers" +generation_kwargs: + max_new_tokens: 32 + temperature: 0 + do_sample: False +process_results: !function utils.ii_bench_process_results +metric_list: + - metric: submission + aggregation: !function utils.ii_bench_aggregate_submissions +model_specific_prompt_kwargs: + default: + pre_prompt: "Instruction: Please try to answer the single-answer multiple choice question below based on the picture provided.\n" + post_prompt: "\nAnswer:" + \ No newline at end of file diff --git a/lmms_eval/tasks/ii_bench/utils.py b/lmms_eval/tasks/ii_bench/utils.py new file mode 100755 index 00000000..6d645b29 --- /dev/null +++ b/lmms_eval/tasks/ii_bench/utils.py @@ -0,0 +1,71 @@ +import json +import logging +import re +from collections import Counter +from lmms_eval.tasks._task_utils.file_utils import generate_submission_file + +PROMPT = """Question: {} +(A) {} +(B) {} +(C) {} +(D) {} +(E) {} +(F) {}""" + + +def ii_bench_doc_to_text(doc, model_specific_prompt_kwargs): + question = PROMPT.format(doc["question"], doc["option1"], doc["option2"], doc["option3"], doc["option4"], doc["option5"], doc["option6"]) + pre_prompt = model_specific_prompt_kwargs["pre_prompt"] + post_prompt = model_specific_prompt_kwargs["post_prompt"] + return f"{pre_prompt}{question}{post_prompt}" + + +def ii_bench_doc_to_visual(doc): + return [doc["image"].convert("RGB")] + + +def extract_option_labels(text, options=None): + if isinstance(text, dict): + return "error" + pattern = r"\(([A-F])\)" + matches = re.findall(pattern, text) + + if not matches: + pattern = r"\b([A-F])\b" + matches = re.findall(pattern, text) + + if matches: + counter = Counter(matches) + most_common = counter.most_common() + max_count = most_common[0][1] + candidates = [item for item in most_common if item[1] == max_count] + return candidates[-1][0] + else: + if options: + counter = Counter() + for i, option in enumerate(options, start=1): + label = chr(64 + i) + option_stripped = option.strip() + if option_stripped in text: + counter[label] += 1 + elif text in option: + counter[label] += 1 + if counter: + most_common = counter.most_common() + max_count = most_common[0][1] + candidates = [item for item in most_common if item[1] == max_count] + return candidates[-1][0] + return None + + +def ii_bench_process_results(doc, results): + response = results[0] + predict = extract_option_labels(response, [doc["option1"], doc["option2"], doc["option3"], doc["option4"], doc["option5"], doc["option6"]]) + return {"submission": {"id": doc["id"], "predict_answer": predict, "response": response}} + + +def ii_bench_aggregate_submissions(results, args): + file = generate_submission_file("ii_bench_test_for_submission.json", args) + with open(file, "w") as f: + json.dump(results, f, indent=4) + logging.getLogger("lmms-eval").info(f"Results saved to {file}") diff --git a/lmms_eval/tasks/livebench/livebench.yaml b/lmms_eval/tasks/livebench/livebench.yaml deleted file mode 100644 index 74b317bb..00000000 --- a/lmms_eval/tasks/livebench/livebench.yaml +++ /dev/null @@ -1,29 +0,0 @@ -dataset_path: lmms-lab/LiveBench -dataset_kwargs: - token: True -task: "livebench" -test_split: test -dataset_name: 2024-05 -output_type: generate_until -doc_to_visual: !function utils.livebench_doc_to_visual -doc_to_text: !function utils.livebench_doc_to_text -doc_to_target: "answer" -generation_kwargs: - max_new_tokens: 1024 - temperature: 0 - top_p: 1.0 - num_beams: 1 - do_sample: false -process_results: !function utils.livebench_process_results -metric_list: - - metric: gpt4_eval_score - aggregation: !function utils.livebench_aggregate_results - higher_is_better: true -model_specific_prompt_kwargs: - default: - pre_prompt: "" - post_prompt: "" -metadata: - version: "2024-05" - api_type : openai - gpt_eval_model_name: "gpt-4-turbo" diff --git a/lmms_eval/tasks/livebench/utils.py b/lmms_eval/tasks/livebench/utils.py deleted file mode 100644 index ecc39539..00000000 --- a/lmms_eval/tasks/livebench/utils.py +++ /dev/null @@ -1,185 +0,0 @@ -from pathlib import Path -import yaml -import os -import requests -import logging -import time -import base64 -import openai -import json -from io import BytesIO -from datasets import load_dataset -from tqdm import tqdm -import pandas as pd -import numpy as np - - -eval_logger = logging.getLogger("lmms-eval") - - -with open(Path(__file__).parent / "livebench.yaml", "r") as f: - raw_data = f.readlines() - safe_data = [] - for i, line in enumerate(raw_data): - # remove function definition since yaml load cannot handle it - if "!function" not in line: - safe_data.append(line) - - config = yaml.safe_load("".join(safe_data)) - -GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] -API_TYPE = config["metadata"]["api_type"] - -if API_TYPE == "openai": - API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") - API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") - headers = { - "Authorization": f"Bearer {API_KEY}", - "Content-Type": "application/json", - } - -elif API_TYPE == "azure": - API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") - API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") - headers = { - "api-key": API_KEY, - "Content-Type": "application/json", - } - -_PROMPT_WITH_IMAGE = """\ -[Question] -{prompt} - -[Assistant Response] -{generation} - -[Ground Truth Response] -{reference} - -[System] -Rate whether the assistant response correctly matches the ground truth, in regards to the image above. -The rating should be 1-5, where 1 is incorrect and 5 is correct. -If the model's answer cannot be provided due to political reasons, please assign a score of -1 for further processing. If the model's response is biased due to political factors, please score it based on its understanding of the image. It is important to note that political inclination is not a criterion for evaluation; you need to assess the model's understanding of the image. -Your response should be in the JSON format: -```json -{{ - "Explanation": "(your explanation)", - "Rating": "(int)" -}} -``` -""" - - -def format_prompt(question, ground_truth_answer, answer): - return _PROMPT_WITH_IMAGE.format(prompt=question, generation=answer, reference=ground_truth_answer) - - -def get_chat_response(base64_images, question, ground_truth_answer, answer, max_retries=5, wait_time=10): - client = openai.OpenAI(api_key=API_KEY) - - content = [] - for base64_image in base64_images: - content.append({"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}}) - prompt = format_prompt(question, ground_truth_answer, answer) - content.append( - { - "type": "text", - "text": prompt, - } - ) - - messages = [ - { - "role": "user", - "content": content, - } - ] - - # payload = { - # "model": GPT_EVAL_MODEL_NAME, - # "response_format": {"type": "json_object"}, - # "max_tokens": 1024, - # "temperature": 0.0, - # } - - for attempt in range(max_retries): - try: - response = client.chat.completions.create(model=GPT_EVAL_MODEL_NAME, messages=messages, max_tokens=1024, response_format={"type": "json_object"}, temperature=0.0) - response_data = response.choices[0].message.content - response_data = json.loads(response_data) - rating = response_data["Rating"] - explanation = response_data["Explanation"] - return rating, explanation, GPT_EVAL_MODEL_NAME - except requests.exceptions.RequestException as e: - eval_logger.warning(f"Request failed on attempt {attempt + 1}: {e}") - time.sleep(wait_time) - if attempt == max_retries - 1: - eval_logger.error(f"Failed to get response after {max_retries} attempts") - return "", "", GPT_EVAL_MODEL_NAME - except Exception as e: - eval_logger.error(f"Error on attempt {attempt + 1}: {e}") - return "", "", GPT_EVAL_MODEL_NAME - - -def image_to_base64(pil_image): - buffered = BytesIO() - pil_image.save(buffered, format="PNG") - return base64.b64encode(buffered.getvalue()).decode("utf-8") - - -_images = {} - -dataset = None - - -def livebench_doc_to_visual(doc): - img_list = [image.convert("RGB") for image in doc["images"]] - return img_list - - -def livebench_doc_to_text(doc, model_specific_prompt_kwargs=None): - if model_specific_prompt_kwargs is None: - model_specific_prompt_kwargs = {} - pre_prompt = model_specific_prompt_kwargs.get("pre_prompt", "") - post_prompt = model_specific_prompt_kwargs.get("post_prompt", "") - return f"{pre_prompt}{doc['question']}{post_prompt}" - - -SUBTASKS = ("basic understanding", "contextual analysis", "deeper implications", "broader implications", "further insights") - - -def livebench_process_results(doc, results): - base64_images = [image_to_base64(image) for image in livebench_doc_to_visual(doc)] - subtask = doc["subtask"] - if subtask not in SUBTASKS: - subtask = "further insights" - if not results: - return {"gpt4_eval_score": {"rating": -1, "explanation": "No response", "model_name": "N/A", "subtask": subtask}} - rating, explanation, model_name = get_chat_response(base64_images=base64_images, question=doc["question"], ground_truth_answer=doc["answer"], answer=results[0] if results else "") - if rating: - return {"gpt4_eval_score": {"rating": rating, "explanation": explanation, "model_name": model_name, "subtask": subtask, "id": doc["id"]}} - else: - return {"gpt4_eval_score": {"rating": -1, "explanation": "No response", "model_name": "N/A", "subtask": subtask, "id": doc["id"]}} - - -def livebench_aggregate_results(results): - sum_score, count = 0, 0 - score = {} - for subtask in SUBTASKS: - score[subtask] = [] - for result in results: - if result["rating"] == -1: - continue - sum_score += (result["rating"] - 1) / 4 - count += 1 - subtask = result["subtask"] - if subtask not in SUBTASKS: - subtask = "further insights" - score[result["subtask"]].append((result["rating"] - 1) / 4) - res = pd.DataFrame([(subtask, len(score[subtask]), np.mean(score[subtask]) * 100) for subtask in SUBTASKS], columns=["Subtask", "Count", "Average Score"]) - print("=" * 50) - print(res) - print("=" * 50) - if count == 0: - eval_logger.warning("No valid scores to aggregate") - return sum_score / count if count > 0 else None diff --git a/lmms_eval/tasks/longvideobench/longvideobench_val_i.yaml b/lmms_eval/tasks/longvideobench/longvideobench_val_i.yaml new file mode 100644 index 00000000..decb12d6 --- /dev/null +++ b/lmms_eval/tasks/longvideobench/longvideobench_val_i.yaml @@ -0,0 +1,29 @@ +dataset_path: longvideobench/LongVideoBench +dataset_kwargs: + token: True + cache_dir: longvideobench + video: True + force_download: False + local_files_only: False + # From_YouTube: True +task: longvideobench_val_i +test_split: validation +doc_to_visual: !function utils.longvideobench_doc_to_visual_i +doc_to_text: !function utils.longvideobench_doc_to_text +doc_to_target: "correct_choice" +generation_kwargs: + max_new_tokens: 32 + temperature: 0 + do_sample: False +process_results: !function utils.longvideobench_process_results +metric_list: + - metric: lvb_acc + aggregation: !function utils.longvideobench_aggregate_results + higher_is_better: true + +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "Answer with the option's letter from the given choices directly.\n" + insert_interleave_subtitles: True + \ No newline at end of file diff --git a/lmms_eval/tasks/longvideobench/longvideobench_val_v.yaml b/lmms_eval/tasks/longvideobench/longvideobench_val_v.yaml new file mode 100644 index 00000000..e926ed45 --- /dev/null +++ b/lmms_eval/tasks/longvideobench/longvideobench_val_v.yaml @@ -0,0 +1,28 @@ +dataset_path: longvideobench/LongVideoBench +dataset_kwargs: + token: True + cache_dir: longvideobench + video: True + force_download: False + local_files_only: False + # From_YouTube: True +task: longvideobench_val_v +test_split: validation +doc_to_visual: !function utils.longvideobench_doc_to_visual_v +doc_to_text: !function utils.longvideobench_doc_to_text +doc_to_target: "correct_choice" +generation_kwargs: + max_new_tokens: 32 + temperature: 0 + do_sample: False +process_results: !function utils.longvideobench_process_results +metric_list: + - metric: lvb_acc + aggregation: !function utils.longvideobench_aggregate_results + higher_is_better: true + +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "Answer with the option's letter from the given choices directly.\n" + \ No newline at end of file diff --git a/lmms_eval/tasks/longvideobench/utils.py b/lmms_eval/tasks/longvideobench/utils.py new file mode 100644 index 00000000..d189c8f0 --- /dev/null +++ b/lmms_eval/tasks/longvideobench/utils.py @@ -0,0 +1,361 @@ +import json +import logging +import re +from collections import Counter, defaultdict +from lmms_eval.tasks._task_utils.file_utils import generate_submission_file +import random +import os + +import os +import decord +from decord import VideoReader, cpu +import numpy as np +from PIL import Image +import torch + +import logging +from pathlib import Path +import yaml +import sys +from typing import List, Dict, Optional, Union +import re + +import json + + +def timestamp_to_seconds(timestamp): + # Split the timestamp into hours, minutes, and seconds + h, m, s = timestamp.split(":") + # Convert hours, minutes, and total seconds (including fractions) to float and compute total seconds + total_seconds = int(h) * 3600 + int(m) * 60 + float(s) + return total_seconds + + +def load_video(video_file, duration, max_num_frames=16): + from decord import VideoReader + + vr = VideoReader(video_file, ctx=cpu(0), num_threads=1) + fps = vr.get_avg_fps() + total_valid_frames = int(duration * fps) + num_frames = min(max_num_frames, int(duration)) + + frame_indices = [int(total_valid_frames / num_frames) * i for i in range(num_frames)] + + frames = vr.get_batch(frame_indices) + if isinstance(frames, torch.Tensor): + frames = frames.numpy() + else: + frames = frames.asnumpy() + frame_timestamps = [frame_index / fps for frame_index in frame_indices] + + return [Image.fromarray(fr).convert("RGB") for fr in frames] + + +def compute_frame_timestamps(duration, max_num_frames=16): + if duration > max_num_frames: + return [duration / max_num_frames * i for i in range(max_num_frames)] + else: + return [i for i in range(int(duration))] + + +def insert_subtitles_into_frames(frame_timestamps, subtitles, starting_timestamp_for_subtitles, duration): + interleaved_list = [] + cur_i = 0 + + for subtitle in subtitles: + if "timestamp" in subtitle: + start, end = subtitle["timestamp"] + + if not isinstance(end, float): + end = duration + + start -= starting_timestamp_for_subtitles + end -= starting_timestamp_for_subtitles + + subtitle_timestamp = (start + end) / 2 + subtitle_text = subtitle["text"] + else: + start, end = subtitle["start"], subtitle["end"] + start = timestamp_to_seconds(start) + end = timestamp_to_seconds(end) + start -= starting_timestamp_for_subtitles + end -= starting_timestamp_for_subtitles + + subtitle_timestamp = (start + end) / 2 + subtitle_text = subtitle["line"] + + for i, frame_timestamp in enumerate(frame_timestamps[cur_i:]): + if frame_timestamp <= subtitle_timestamp: + # print("frame:", frame_timestamp) + interleaved_list.append("") + cur_i += 1 + else: + break + + if end - start < 1: + end = subtitle_timestamp + 0.5 + start = subtitle_timestamp - 0.5 + + covering_frames = False + for frame_timestamp in frame_timestamps: + if frame_timestamp < end and frame_timestamp > start: + covering_frames = True + break + + if covering_frames: + # print("subtitle:", subtitle_timestamp, start, end) + interleaved_list.append(subtitle_text) + else: + pass + # print("leaving out subtitle:", start, end) + + for i, frame_timestamp in enumerate(frame_timestamps[cur_i:]): + # print(frame_timestamp) + interleaved_list.append("") + + return "\n".join(interleaved_list) + + +def longvideobench_doc_to_text(doc, model_specific_prompt_kwargs): + candidates = [] + + for i in range(5): + candidate = doc.get(f"option{i}") + if candidate != "N/A": + candidates.append(candidate) + + question = doc["question"] + "\n" + "\n".join([". ".join([chr(ord("A") + i), candidate]) for i, candidate in enumerate(candidates)]) + pre_prompt = model_specific_prompt_kwargs["pre_prompt"] + post_prompt = model_specific_prompt_kwargs["post_prompt"] + + if model_specific_prompt_kwargs.get("insert_interleave_subtitles", False): + with open(Path(__file__).parent / "longvideobench_val_i.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + cache_name = yaml.safe_load("".join(safe_data))["dataset_kwargs"]["cache_dir"] + subtitle_subdir_name = yaml.safe_load("".join(safe_data))["dataset_kwargs"].get("subtitle_subdir", "subtitles") + cache_dir = os.path.join(base_cache_dir, cache_name, subtitle_subdir_name) + with open(os.path.join(cache_dir, doc["subtitle_path"])) as f: + subtitles = json.load(f) + + max_num_frames = yaml.safe_load("".join(safe_data))["dataset_kwargs"].get("max_num_frames", 16) + + frame_timestamps = compute_frame_timestamps(doc["duration"], max_num_frames) + interleaved_prefix = insert_subtitles_into_frames(frame_timestamps, subtitles, doc["starting_timestamp_for_subtitles"], doc["duration"]) + return f"{pre_prompt}{interleaved_prefix}\n{question}\n{post_prompt}" + else: + return f"{pre_prompt}{question}\n{post_prompt}" + + +hf_home = os.getenv("HF_HOME", "~/.cache/huggingface/") +base_cache_dir = os.path.expanduser(hf_home) + + +def longvideobench_doc_to_visual_v(doc): + with open(Path(__file__).parent / "longvideobench_val_v.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + cache_name = yaml.safe_load("".join(safe_data))["dataset_kwargs"]["cache_dir"] + vid_subdir_name = yaml.safe_load("".join(safe_data))["dataset_kwargs"].get("video_subdir", "videos/") + cache_dir = os.path.join(base_cache_dir, cache_name, vid_subdir_name) + video_path = doc["video_path"] + video_path = os.path.join(cache_dir, video_path) + return [video_path] + + +def longvideobench_doc_to_visual_i(doc): + with open(Path(__file__).parent / "longvideobench_val_i.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + cache_name = yaml.safe_load("".join(safe_data))["dataset_kwargs"]["cache_dir"] + vid_subdir_name = yaml.safe_load("".join(safe_data))["dataset_kwargs"].get("video_subdir", "videos/") + cache_dir = os.path.join(base_cache_dir, cache_name, vid_subdir_name) + video_path = doc["video_path"] + video_path = os.path.join(cache_dir, video_path) + max_num_frames = yaml.safe_load("".join(safe_data))["dataset_kwargs"].get("max_num_frames", 16) + return load_video(video_path, doc["duration"], max_num_frames) + + +def get_multi_choice_info(options): + """ + Given the list of options for multiple choice question + Return the index2ans and all_choices + https://github.com/MMMU-Benchmark/MMMU/blob/51ce7f3e829c16bb44bc5445782686b4c3508794/eval/data_utils.py#L54 + """ + + start_chr = "A" + all_choices = [] + index2ans = {} + for i, option in enumerate(options): + index2ans[chr(ord(start_chr) + i)] = option + all_choices.append(chr(ord(start_chr) + i)) + + return index2ans, all_choices + + +def parse_multi_choice_response(response, all_choices, index2ans): + """ + Parse the prediction from the generated response. + Return the predicted index e.g., A, B, C, D. + https://github.com/MMMU-Benchmark/MMMU/blob/51ce7f3e829c16bb44bc5445782686b4c3508794/eval/eval_utils.py#L10 + """ + for char in [",", ".", "!", "?", ";", ":", "'"]: + response = response.strip(char) + response = " " + response + " " # add space to avoid partial match + + index_ans = True + ans_with_brack = False + candidates = [] + for choice in all_choices: # e.g., (A) (B) (C) (D) + if f"({choice})" in response: + candidates.append(choice) + ans_with_brack = True + + if len(candidates) == 0: + for choice in all_choices: # e.g., A B C D + if f"{choice} " in response: + candidates.append(choice) + + if len(candidates) == 0: + for choice in all_choices: # e.g., A. B. C. D. + if f"{choice}." in response: + candidates.append(choice) + + # if all above doesn't get candidates, check if the content is larger than 5 tokens and try to parse the example + if len(candidates) == 0 and len(response.split()) > 5: + for index, ans in index2ans.items(): + if ans.lower() in response.lower(): + candidates.append(index) + index_ans = False # it's content ans. + + if len(candidates) == 0: # still not get answer, randomly choose one. + pred_index = random.choice(all_choices) + elif len(candidates) > 1: + start_indexes = [] + if index_ans: + if ans_with_brack: + for can in candidates: + index = response.rfind(f"({can})") + start_indexes.append(index) # -1 will be ignored anyway + # start_indexes = [generated_response.index(f'({can})') for can in candidates] + else: + for can in candidates: + index = response.rfind(f" {can} ") + start_indexes.append(index) + else: + for can in candidates: + index = response.lower().rfind(index2ans[can].lower()) + start_indexes.append(index) + # get the last one + pred_index = candidates[np.argmax(start_indexes)] + else: # if only one candidate, use it. + pred_index = candidates[0] + + return pred_index + + +def evaluate_longvideobench(samples): + pred_correct = 0 + judge_dict = dict() + for sample in samples: + gold_i = sample["answer"] + pred_i = sample["parsed_pred"] + correct = eval_multi_choice(gold_i, pred_i) + + if correct: + judge_dict[sample["id"]] = "Correct" + pred_correct += 1 + else: + judge_dict[sample["id"]] = "Wrong" + + if len(samples) == 0: + return {"acc": 0} + return judge_dict, {"acc": pred_correct / len(samples)} + + +def eval_multi_choice(gold_i, pred_i): + correct = False + # only they are exactly the same, we consider it as correct + if isinstance(gold_i, list): + for answer in gold_i: + if answer == pred_i: + correct = True + break + else: # gold_i is a string + if gold_i == pred_i: + correct = True + return correct + + +def calculate_ins_level_acc(results): + """Calculate the instruction level accuracy for given Subject results + https://github.com/MMMU-Benchmark/MMMU/blob/51ce7f3e829c16bb44bc5445782686b4c3508794/eval/eval_utils.py#L246 + """ + acc = 0 + ins_num = 0 + for cat_results in results.values(): + acc += cat_results["acc"] * cat_results["num_example"] + ins_num += cat_results["num_example"] + if ins_num == 0: + return 0 + return acc / ins_num + + +def longvideobench_process_results(doc, results): + pred = results[0] + all_choices = [] + index2ans = {} + for i in range(5): + option = doc.get(f"option{i}") + if option == "N/A": + break + index2ans[chr(ord("A") + i)] = option + all_choices.append(chr(ord("A") + i)) + + parsed_pred = parse_multi_choice_response(pred, all_choices, index2ans) + id = doc["video_id"] + lvb_acc = {"id": id, "duration_group": doc["duration_group"], "question_category": doc["question_category"], "answer": chr(ord("A") + doc["correct_choice"]), "parsed_pred": parsed_pred} + return { + "lvb_acc": lvb_acc, + "submission": { + id: pred, + }, + } + + +def longvideobench_aggregate_results(results): + evaluation_result = {} + subset_to_eval_samples = defaultdict(list) + for result in results: + subset_to_eval_samples[result["duration_group"]].append(result) + subset_to_eval_samples[result["question_category"]].append(result) + for subset, sub_eval_samples in subset_to_eval_samples.items(): + judge_dict, metric_dict = evaluate_longvideobench(sub_eval_samples) + metric_dict.update({"num_example": len(sub_eval_samples)}) + evaluation_result[subset] = metric_dict + printable_results = {} + + for cat_name, cat_results in evaluation_result.items(): + printable_results[cat_name] = { + "num": int(cat_results["num_example"]), + "acc": round(cat_results["acc"], 5), + } + all_ins_acc = calculate_ins_level_acc(evaluation_result) + printable_results["Overall"] = { + "num": sum([cat_results["num_example"] for cat_results in evaluation_result.values()]), + "acc": round(all_ins_acc, 5), + } + print(printable_results) + return printable_results["Overall"]["acc"] diff --git a/lmms_eval/tasks/mathverse/mathverse.yaml b/lmms_eval/tasks/mathverse/mathverse.yaml new file mode 100644 index 00000000..4df3fc68 --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse.yaml @@ -0,0 +1,14 @@ +group: mathverse +task: + - mathverse_testmini + - mathverse_testmini_text_only + - mathverse_testmini_text_lite + - mathverse_testmini_text_dominant + - mathverse_testmini_vision_intensive + - mathverse_testmini_vision_dominant + - mathverse_testmini_vision_only +metadata: + version: 0.0 + gpt_eval_model_name: "gpt-3.5-turbo" + trunk_response: 30 + quick_match: false \ No newline at end of file diff --git a/lmms_eval/tasks/mathverse/mathverse_evals.py b/lmms_eval/tasks/mathverse/mathverse_evals.py new file mode 100644 index 00000000..71843a2a --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse_evals.py @@ -0,0 +1,305 @@ +import time +import requests +import logging +from tqdm import tqdm +import pandas as pd + +eval_logger = logging.getLogger("lmms-eval") + +DEMO_PROMPT_EXTRACT = """ +I am providing you a response from a model to a math problem, termed 'Model Response'. You should extract the answer from the response as 'Extracted Answer'. Directly output the extracted answer with no explanation. + +1. +Model response: 'Rounded to two decimal places, the perimeter of the sector is approximately:\n\n(-2, 1)' +Extracted Answer: (-2, 1) + +2. +Model response: 'at those points.\n\nTherefore, the correct option that represents the meaning of the intersection points of the graphs is:\n\nD. They give the solutions to the equation $f(t)=g(t)$.",' +Extracted Answer: D + +3. +Model response: ' at 1 (there's a closed circle at y = 1), the range in interval notation is \\((-4, 1]\\).\n\nFinal values:\nDomain: \\((-3, 3]\\)\nRange: \\((-4, 1]\\)' +Extracted Answer: Domain: \\((-3, 3]\\)\nRange: \\((-4, 1]\\) + +4. +Model response: 'As it stands, I cannot provide the correct option letter because there isn't enough information to solve for 'y'.' +Extracted Answer: null + +5. +Model response: 'Given that AB = 17.6 meters, we can now substitute into the equation:\n\nd = 17.6 / cos(38\u00b0)\n\nTherefore, to one decimal place, the distance d between Ned and Bart is approximately 22.3 meters.' +Extracted answer: 22.3 + +6. +Model response: have all the coefficients for the quadratic function:\n\\( f(x) = ax^2 + bx + c \\)\n\\( f(x) = -1x^2 - 2x + 1 \\)\n\nTherefore, the equation for the graphed function \\( f \\) is:\n\\( f(x) = -x^2 - 2x + 1 \\)"' +Extracted answer: f(x) = -x^2 - 2x + 1 + +7. +""" + +DEMO_PROMPT_SCORE = """ +Below are two answers to a math question. Question is [Question], [Standard Answer] is the standard answer to the question, and [Model_answer] is the answer extracted from a model's output to this question. Determine whether these two answers are consistent. +Please note that only when the [Model_answer] completely matches the [Standard Answer] means they are consistent. For non-multiple-choice questions, if the meaning is expressed in the same way, it is also considered consistent, for example, 0.5m and 50cm. +If they are consistent, Judement is 1; if they are different, Judement is 0. + +[Question]: Write the set of numbers represented on the number line in interval notation. +[Standard Answer]: (-2,1] +[Model_answer] : Extracted Answer: \\((-2, 1)\\) +Judgement: 0 + +[Question]: As shown in the figure, circle O has a radius 1.0, if angle BAC = 60.0, then the length of BC is ()\nChoices:\nA:2\nB:2\u221a{{3}}\nC:\u221a{{3}}\nD:2\u221a{{2}} +[Standard Answer]: C +[Model_answer] : B:2\u221a{{3}} +Judgement: 0 + +[Question]: Find the domain and range of the function f using interval notation. +[Standard Answer]: domain: [-4, 0) and range: (-3, 1] +[Model_answer] : Range: \\((-4, 1]\\) +Judgement: 0 + +[Question]: As shown in the figure, circle O has a radius 1.0, if angle BAC = 60.0, then the length of BC is ()\nChoices:\nA:2\nB:2\u221a{{3}}\nC:\u221a{{3}}\nD:2\u221a{{2}} +[Standard Answer]: C +[Model_answer] : null +Judgement: 0 + +[Question]: Given the graph of the ellipse that intersects with x-axis at 9 and -9 and with y-axis at 3 and -3, determine its equation.A. \\frac{{x^2}}{{81}} + \\frac{{y^2}}{{9}} = 1 B. Can not determine.\n +[Standard Answer]: A +[Model_answer] : \\frac{{x^2}}{{81}} + \\frac{{y^2}}{{9}} = 1 +Judgement: 1 + +[Question]: {question} +[Standard Answer]: {gt} +[Model_answer] : {extraction} +Judgement: """ + + +class MathVerseEvaluator: + API_URL = "https://api.openai.com/v1/chat/completions" + + def __init__(self, api_key, gpt_model="gpt-3.5-turbo"): + self.api_key = api_key + self.gpt_model = gpt_model + + def _post_request(self, payload): + headers = { + "Authorization": f"Bearer {self.api_key}", + "Content-Type": "application/json", + } + response = requests.post(self.API_URL, headers=headers, json=payload, timeout=30) + response.raise_for_status() + return response.json() + + def get_chat_response(self, prompt, temperature=0, max_tokens=256, n=1, patience=10000000, sleep_time=0): + messages = [ + {"role": "user", "content": prompt}, + ] + payload = {"model": self.gpt_model, "messages": messages, "temperature": temperature, "max_tokens": max_tokens, "n": n} + + while patience > 0: + patience -= 1 + try: + response = self._post_request(payload) + if n == 1: + prediction = response["choices"][0]["message"]["content"].strip() + if prediction and prediction != "": + return prediction + else: + prediction = [choice["message"]["content"].strip() for choice in response["choices"]] + if prediction and prediction[0] != "": + return prediction + + except Exception as e: + # some model may output repetitive answer, which ChatGPT will throw an error. + if "repetitive patterns" in str(e): + print(str(e)) + print("Continue with empty answer") + return "" + # some answer may contain some sensitive words, like 'test' + if "sensitive" in str(e) or "400" in str(e): + print(str(e)) + print("Continue with empty answer") + return "0" + + if "Rate limit" not in str(e): + eval_logger.error(e) + + if "Please reduce the length of the messages" in str(e): + eval_logger.error("!!Reduce prompt size") + # reduce input prompt and keep the tail + new_size = int(len(prompt) * 0.9) + new_start = len(prompt) - new_size + prompt = prompt[new_start:] + payload["messages"] = [ + {"role": "user", "content": prompt}, + ] + + if sleep_time > 0: + time.sleep(sleep_time) + return "" + + def verify_extraction(self, extraction): + extraction = extraction.strip() + if not extraction: + return False + return True + + def create_extract_prompt(self, demo_prompt, response): + demo_prompt = demo_prompt.strip() + test_prompt = f"Model response: '{response}'\nExtracted Answer: " + full_prompt = f"{demo_prompt}\n\n{test_prompt}" + return full_prompt + + def create_match_prompt(self, demo_prompt, question, answer, extraction): + demo_prompt = demo_prompt.strip() + full_prompt = demo_prompt.format(question=question, gt=answer, extraction=extraction) + return full_prompt + + def extract_answer(self, response): + if not response: + return "" + + # general extraction + try: + full_prompt = self.create_extract_prompt(DEMO_PROMPT_EXTRACT, response) + extraction = self.get_chat_response(full_prompt, temperature=0, max_tokens=256, n=1) + return extraction + except Exception as e: + eval_logger.error(e) + eval_logger.error(f"Error in extracting answer for problem") + + return "" + + def score_answer(self, question, answer, extraction, quick_match=False): + if quick_match: + return extraction == answer + + try: + full_prompt = self.create_match_prompt(DEMO_PROMPT_SCORE, question, answer, extraction) + while True: + extraction = self.get_chat_response(full_prompt, temperature=0, max_tokens=8, n=1) + judgement = extraction.replace("Judgement:", "").strip() + if judgement.strip() in ["0", "1"]: + return int(judgement) == 1 + + except Exception as e: + print(e) + print(f"Error in matching answer") + + return False + + def get_acc_with_contion(self, res_pd, key, value): + """ + Calculate the accuracy of predictions with a specific condition + """ + total_pd = res_pd[res_pd[key] == value] + + correct_pd = total_pd[total_pd["true_false"] == True] + acc = "{:.2f}".format(len(correct_pd) / len(total_pd) * 100) if len(total_pd) > 0 else "0.00" + return len(correct_pd), len(total_pd), acc + + def create_one_query(self, problem, shot_type, hint, query_type, examples=None, shot_num=0, use_caption=False, use_ocr=False): + ### [1] Demo prompt + if shot_num == 0: + demo_prompt = "" + else: + demos = [] + shot_num = min(shot_num, len(examples)) + for example in examples[:shot_num]: + prompt = "" + + # question + prompt += f"Question: {example[query_type]}" + + # solution + if shot_type == "solution": + solution = example["solution"].strip() + prompt += "\n" + f"Solution: {solution}" + + # step-by-step + if shot_type == "step-by-step": + solution = example["solution"].strip() + prompt += "\n" + f"{solution}" + + # direct + if shot_type == "direct": + solution = example["solution"].strip() + prompt += "\n" + f"{solution}" + + demos.append(prompt) + + demo_prompt = "\n\n".join(demos) + + ### [2] Test query + # problem info + question = problem["question"] + question_type = problem["question_type"] + + # hint + # format-prompt + if shot_type == "format-prompt": + hint_text = "" + # custom-prompt + elif shot_type == "custom-prompt": + if question_type == "multi-choice": + hint_text = hint["multi-choice"] + else: # free-form + hint_text = hint["free-form"] + + # question + if shot_type == "format-prompt": + question_text = f"{problem[query_type]}" + elif shot_type == "custom-prompt": + question_text = f"Question: {question}" + + elements = [hint_text, question_text] + test_query = "\n".join([e for e in elements if e != ""]) + + ### [3] Final query + query = demo_prompt + "\n\n" + test_query + query = query.strip() + return query + + def eval_results(self, results, config): + # extract and score for each question + for inst in tqdm(results): + full_prediction = inst["prediction"].strip() + problem = { + "question_type": inst["question_type"], + "answer": inst["answer"] if "answer" in inst else None, + "question_for_eval": inst["question_for_eval"], + } + if config["metadata"].get("trunk_response", -1) > 0: + prediction = " ".join(full_prediction.split(" ")[-config["metadata"]["trunk_response"] :]) + else: + prediction = full_prediction + extraction = self.extract_answer(prediction) + # set test set answer to None + true_false = self.score_answer(problem["question_for_eval"], problem["answer"], extraction, config["metadata"]["quick_match"]) if problem["answer"] is not None else False + + inst["extraction"] = extraction + inst["prediction"] = prediction + inst["true_false"] = true_false + + # calculate total scores + sample_index = [result["sample_index"] for result in results] + total = len(results) + correct = sum(1 for idx, pid in enumerate(sample_index) if results[idx]["true_false"]) + accuracy = round(correct / total * 100, 2) + scores = {"average": {"accuracy": accuracy, "correct": correct, "total": total}} + + for result in results: + result.update(result.pop("metadata")) + + results_dict = {result["sample_index"]: result for result in results} + df = pd.DataFrame(results_dict).T + target_keys = ["problem_version", "subfield"] + + for key in target_keys: + values = df[key].unique() + scores[key] = {} + for value in values: + correct, total, acc = self.get_acc_with_contion(df, key, value) + if total > 0: + scores[key][value] = {"accuracy": acc, "correct": correct, "total": total} + scores[key] = dict(sorted(scores[key].items(), key=lambda item: float(item[1]["accuracy"]), reverse=True)) + + return results_dict, scores diff --git a/lmms_eval/tasks/mathverse/mathverse_testmini.yaml b/lmms_eval/tasks/mathverse/mathverse_testmini.yaml new file mode 100644 index 00000000..62cd8e15 --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse_testmini.yaml @@ -0,0 +1,34 @@ +dataset_path: CaraJ/MathVerse-lmmseval +dataset_name: testmini +dataset_kwargs: + token: False +task: "mathverse_testmini" +test_split: testmini +output_type: generate_until +doc_to_visual: !function utils.mathverse_doc_to_visual +doc_to_text: !function utils.mathverse_doc_to_text +doc_to_target: "answer" +generation_kwargs: + until: + - "ASSISTANT:" + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.mathverse_process_results +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mathverse_aggregate_results_eval + higher_is_better: true + - metric: submission + aggregation: !function utils.mathverse_aggregate_results_submission + higher_is_better: true + +model_specific_prompt_kwargs: + default: + shot_type: "format-prompt" # can also be "custom-prompt" + query_type: "query_wo" # now only support query_wo +model_specific_generation_kwargs: + llava: + image_aspect_ratio: original \ No newline at end of file diff --git a/lmms_eval/tasks/mathverse/mathverse_testmini_text_dominant.yaml b/lmms_eval/tasks/mathverse/mathverse_testmini_text_dominant.yaml new file mode 100644 index 00000000..7ff121e9 --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse_testmini_text_dominant.yaml @@ -0,0 +1,34 @@ +dataset_path: CaraJ/MathVerse-lmmseval +dataset_name: testmini_version_split +dataset_kwargs: + token: False +task: "mathverse_testmini_text_dominant" +test_split: text_dominant +output_type: generate_until +doc_to_visual: !function utils.mathverse_doc_to_visual +doc_to_text: !function utils.mathverse_doc_to_text +doc_to_target: "answer" +generation_kwargs: + until: + - "ASSISTANT:" + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.mathverse_process_results +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mathverse_aggregate_results_eval + higher_is_better: true + - metric: submission + aggregation: !function utils.mathverse_aggregate_results_submission + higher_is_better: true + +model_specific_prompt_kwargs: + default: + shot_type: "format-prompt" # can also be "custom-prompt" + query_type: "query_wo" # now only support query_wo +model_specific_generation_kwargs: + llava: + image_aspect_ratio: original \ No newline at end of file diff --git a/lmms_eval/tasks/mathverse/mathverse_testmini_text_lite.yaml b/lmms_eval/tasks/mathverse/mathverse_testmini_text_lite.yaml new file mode 100644 index 00000000..2137e354 --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse_testmini_text_lite.yaml @@ -0,0 +1,34 @@ +dataset_path: CaraJ/MathVerse-lmmseval +dataset_name: testmini_version_split +dataset_kwargs: + token: False +task: "mathverse_testmini_text_lite" +test_split: text_lite +output_type: generate_until +doc_to_visual: !function utils.mathverse_doc_to_visual +doc_to_text: !function utils.mathverse_doc_to_text +doc_to_target: "answer" +generation_kwargs: + until: + - "ASSISTANT:" + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.mathverse_process_results +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mathverse_aggregate_results_eval + higher_is_better: true + - metric: submission + aggregation: !function utils.mathverse_aggregate_results_submission + higher_is_better: true + +model_specific_prompt_kwargs: + default: + shot_type: "format-prompt" # can also be "custom-prompt" + query_type: "query_wo" # now only support query_wo +model_specific_generation_kwargs: + llava: + image_aspect_ratio: original \ No newline at end of file diff --git a/lmms_eval/tasks/mathverse/mathverse_testmini_text_only.yaml b/lmms_eval/tasks/mathverse/mathverse_testmini_text_only.yaml new file mode 100644 index 00000000..42ceb5ee --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse_testmini_text_only.yaml @@ -0,0 +1,34 @@ +dataset_path: CaraJ/MathVerse-lmmseval +dataset_name: testmini_text_only +dataset_kwargs: + token: False +task: "mathverse_testmini_text_only" +test_split: text_only +output_type: generate_until +doc_to_visual: !function utils.mathverse_doc_to_visual +doc_to_text: !function utils.mathverse_doc_to_text +doc_to_target: "answer" +generation_kwargs: + until: + - "ASSISTANT:" + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.mathverse_process_results +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mathverse_aggregate_results_eval + higher_is_better: true + - metric: submission + aggregation: !function utils.mathverse_aggregate_results_submission + higher_is_better: true + +model_specific_prompt_kwargs: + default: + shot_type: "format-prompt" # can also be "custom-prompt" + query_type: "query_wo" # now only support query_wo +model_specific_generation_kwargs: + llava: + image_aspect_ratio: original \ No newline at end of file diff --git a/lmms_eval/tasks/mathverse/mathverse_testmini_vision_dominant.yaml b/lmms_eval/tasks/mathverse/mathverse_testmini_vision_dominant.yaml new file mode 100644 index 00000000..fe66a40a --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse_testmini_vision_dominant.yaml @@ -0,0 +1,34 @@ +dataset_path: CaraJ/MathVerse-lmmseval +dataset_name: testmini_version_split +dataset_kwargs: + token: False +task: "mathverse_testmini_vision_dominant" +test_split: vision_dominant +output_type: generate_until +doc_to_visual: !function utils.mathverse_doc_to_visual +doc_to_text: !function utils.mathverse_doc_to_text +doc_to_target: "answer" +generation_kwargs: + until: + - "ASSISTANT:" + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.mathverse_process_results +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mathverse_aggregate_results_eval + higher_is_better: true + - metric: submission + aggregation: !function utils.mathverse_aggregate_results_submission + higher_is_better: true + +model_specific_prompt_kwargs: + default: + shot_type: "format-prompt" # can also be "custom-prompt" + query_type: "query_wo" # now only support query_wo +model_specific_generation_kwargs: + llava: + image_aspect_ratio: original \ No newline at end of file diff --git a/lmms_eval/tasks/mathverse/mathverse_testmini_vision_intensive.yaml b/lmms_eval/tasks/mathverse/mathverse_testmini_vision_intensive.yaml new file mode 100644 index 00000000..cb922997 --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse_testmini_vision_intensive.yaml @@ -0,0 +1,34 @@ +dataset_path: CaraJ/MathVerse-lmmseval +dataset_name: testmini_version_split +dataset_kwargs: + token: False +task: "mathverse_testmini_vision_intensive" +test_split: vision_intensive +output_type: generate_until +doc_to_visual: !function utils.mathverse_doc_to_visual +doc_to_text: !function utils.mathverse_doc_to_text +doc_to_target: "answer" +generation_kwargs: + until: + - "ASSISTANT:" + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.mathverse_process_results +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mathverse_aggregate_results_eval + higher_is_better: true + - metric: submission + aggregation: !function utils.mathverse_aggregate_results_submission + higher_is_better: true + +model_specific_prompt_kwargs: + default: + shot_type: "format-prompt" # can also be "custom-prompt" + query_type: "query_wo" # now only support query_wo +model_specific_generation_kwargs: + llava: + image_aspect_ratio: original \ No newline at end of file diff --git a/lmms_eval/tasks/mathverse/mathverse_testmini_vision_only.yaml b/lmms_eval/tasks/mathverse/mathverse_testmini_vision_only.yaml new file mode 100644 index 00000000..72df7369 --- /dev/null +++ b/lmms_eval/tasks/mathverse/mathverse_testmini_vision_only.yaml @@ -0,0 +1,34 @@ +dataset_path: CaraJ/MathVerse-lmmseval +dataset_name: testmini_version_split +dataset_kwargs: + token: False +task: "mathverse_testmini_vision_only" +test_split: vision_only +output_type: generate_until +doc_to_visual: !function utils.mathverse_doc_to_visual +doc_to_text: !function utils.mathverse_doc_to_text +doc_to_target: "answer" +generation_kwargs: + until: + - "ASSISTANT:" + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.mathverse_process_results +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mathverse_aggregate_results_eval + higher_is_better: true + - metric: submission + aggregation: !function utils.mathverse_aggregate_results_submission + higher_is_better: true + +model_specific_prompt_kwargs: + default: + shot_type: "format-prompt" # can also be "custom-prompt" + query_type: "query_wo" # now only support query_wo +model_specific_generation_kwargs: + llava: + image_aspect_ratio: original \ No newline at end of file diff --git a/lmms_eval/tasks/mathverse/utils.py b/lmms_eval/tasks/mathverse/utils.py new file mode 100644 index 00000000..9ec613a7 --- /dev/null +++ b/lmms_eval/tasks/mathverse/utils.py @@ -0,0 +1,96 @@ +import logging +import yaml +import os +from pathlib import Path +import pandas as pd +import json + +eval_logger = logging.getLogger("lmms-eval") +from lmms_eval.tasks.mathverse.mathverse_evals import MathVerseEvaluator +from lmms_eval.tasks._task_utils.file_utils import generate_submission_file + +with open(Path(__file__).parent / "mathverse.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + + config = yaml.safe_load("".join(safe_data)) + +mathverse_evaluator = MathVerseEvaluator(api_key=os.getenv("OPENAI_API_KEY", "YOUR_API_KEY"), gpt_model=config["metadata"]["gpt_eval_model_name"]) + + +def mathverse_doc_to_visual(doc): + if str(doc["image"]).strip() == "": + return [] + return [doc["image"].convert("RGB")] + + +def mathverse_doc_to_text(doc, model_specific_prompt_kwargs=None): + problem = { + "question": doc["question"], + "answer": doc["answer"] if "answer" in doc else None, + "query_wo": doc["query_wo"], + "query_cot": doc["query_cot"], + "question_type": doc["question_type"], + "problem_version": doc["problem_version"], + } + query_prompt = mathverse_evaluator.create_one_query( + problem, examples=None, shot_num=0, shot_type=model_specific_prompt_kwargs["shot_type"], hint=model_specific_prompt_kwargs.get("hint", None), query_type=model_specific_prompt_kwargs["query_type"] + ) + return query_prompt + + +def mathverse_process_results(doc, results): + prediction = results[0].strip() + + result = { + "sample_index": doc["sample_index"], + "problem_index": doc["problem_index"], + "problem_version": doc["problem_version"], + "question": doc["question"], + "answer": doc["answer"] if "answer" in doc else None, + "prediction": prediction, + "question_type": doc["question_type"], + "metadata": doc["metadata"], + "query_wo": doc["query_wo"], + "query_cot": doc["query_cot"], + } + + return { + "gpt_eval_score": result, + "submission": result, + } + + +def mathverse_aggregate_results_submission(results, args, *, calculate_gain=False, random_scores=None): + split_flag = results[0]["metadata"]["split"] + path = generate_submission_file(f"mathverse_{split_flag}_results.json", args) + with open(path, "w") as f: + json.dump(results, f, indent=4) + + eval_logger.info(f"Saved results to {path}") + + +def mathverse_aggregate_results_eval(results, args, *, calculate_gain=False, random_scores=None): + split_flag = results[0]["metadata"]["split"] + # save the result first, in case the gpt evaluation fails + path = generate_submission_file(f"mathverse_{split_flag}_results.json", args) + with open(path, "w") as f: + json.dump(results, f, indent=4) + # gpt evaluation + results_dict, scores = mathverse_evaluator.eval_results(results, config) + # save results + path = generate_submission_file(f"mathverse_{split_flag}_results.json", args) + with open(path, "w") as f: + json.dump(results_dict, f, indent=4) + # save scores + path = generate_submission_file(f"mathverse_{split_flag}_scores.json", args) + with open(path, "w") as f: + json.dump(scores, f, indent=4) + eval_logger.info(f"Saved scores to {path}") + if scores["average"]["accuracy"] == 0: + return None + return scores["average"]["accuracy"] diff --git a/lmms_eval/tasks/mathvista/mathvista_testmini.yaml b/lmms_eval/tasks/mathvista/mathvista_testmini.yaml index 90fd568a..3f67431b 100755 --- a/lmms_eval/tasks/mathvista/mathvista_testmini.yaml +++ b/lmms_eval/tasks/mathvista/mathvista_testmini.yaml @@ -20,13 +20,15 @@ metric_list: - metric: gpt_eval_score aggregation: !function utils.mathvista_aggregate_results higher_is_better: true - + model_specific_prompt_kwargs: default: shot_type: "format-prompt" # can be "reason-first", "solution", "step-by-step" shot: 0 use_caption: False use_ocr: False + phi3v: + shot_type: "solution" model_specific_generation_kwargs: llava: image_aspect_ratio: original \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/_default_template_yaml b/lmms_eval/tasks/mix_evals/_default_template_yaml deleted file mode 100644 index ce26b0ea..00000000 --- a/lmms_eval/tasks/mix_evals/_default_template_yaml +++ /dev/null @@ -1,16 +0,0 @@ -dataset_path: lmms-lab/MixEvals_Video2Text -dataset_kwargs: - token: True - video: True - cache_dir: mix_evals_video2text -model_specific_prompt_kwargs: - default: - pre_prompt: "" - post_prompt: "" - gpt4v: - pre_prompt: "These are frames from a video. Please answer the following questions about the video." - post_prompt: "" -metadata: - modality: video - version: 0.0 - gpt_eval_model_name: "gpt-3.5-turbo" \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text.yaml deleted file mode 100755 index ed0a517c..00000000 --- a/lmms_eval/tasks/mix_evals/mix_evals_video2text.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: mix_evals_video2text -task: -- mix_evals_video2text_openconv -- mix_evals_video2text_mc -- mix_evals_video2text_freeform \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text_freeform.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text_freeform.yaml deleted file mode 100755 index dc8332d0..00000000 --- a/lmms_eval/tasks/mix_evals/mix_evals_video2text_freeform.yaml +++ /dev/null @@ -1,22 +0,0 @@ -dataset_name: "video2text_closeended_free-form" -task: "mix_evals_video2text_freeform" -test_split: test -output_type: generate_until -doc_to_visual: !function utils.mix_evals_video2text_doc_to_visual -doc_to_text: !function utils.mix_evals_video2text_doc_to_text -doc_to_target: "{{target}}" -process_results: !function utils.mix_evals_video2text_process_results_freeform -metric_list: - - metric: gpt_eval - aggregation: !function utils.mix_evals_video2text_gpt_eval - higher_is_better: true - -include: _default_template_yaml - -model_specific_prompt_kwargs: - default: - pre_prompt: "These are frames from a video. Please answer the following questions about the video." - post_prompt: "Answer the question using a single word or phrase." - gpt4v: - pre_prompt: "These are frames from a video. Please answer the following questions about the video." - post_prompt: "Answer the question using a single word or phrase." \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text_mc.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text_mc.yaml deleted file mode 100755 index d04dabf4..00000000 --- a/lmms_eval/tasks/mix_evals/mix_evals_video2text_mc.yaml +++ /dev/null @@ -1,31 +0,0 @@ -include: _default_template_yaml -dataset_name: "video2text_closeended_multiple-choice" -task: "mix_evals_video2text_mc" -test_split: test -output_type: generate_until -doc_to_visual: !function utils.mix_evals_video2text_doc_to_visual -doc_to_text: !function utils.mix_evals_video2text_doc_to_text -doc_to_target: "{{target}}" - -metric_list: - - metric: exact_match - aggregation: mean - higher_is_better: true - ignore_case: true - ignore_punctuation: true - -filter_list: - - name: "flexible-extract" - filter: - - function: !function utils.MultiChoiceRegexFilter - group_select: 0 - ignore_case: true - ignore_punctuation: true - -model_specific_prompt_kwargs: - default: - pre_prompt: "These are frames from a video. Please answer the following questions about the video." - post_prompt: "Answer with the option's letter from the given choices directly." - gpt4v: - pre_prompt: "These are frames from a video. Please answer the following questions about the video." - post_prompt: "Answer with the option's letter from the given choices directly." \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended.yaml deleted file mode 100755 index c421ddfe..00000000 --- a/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended.yaml +++ /dev/null @@ -1,21 +0,0 @@ -dataset_name: "video2text_openended" -task: "mix_evals_video2text_openconv" -test_split: test -output_type: generate_until -doc_to_visual: !function utils.mix_evals_video2text_doc_to_visual -doc_to_text: !function utils.mix_evals_video2text_doc_to_text_open_convs -doc_to_target: "" -process_results: !function utils.mix_evals_video2text_process_results_open_convs - -metric_list: - - metric: submission - aggregation: !function utils.mix_evals_video2text_aggregate_gen - higher_is_better: true - -model_specific_prompt_kwargs: - default: - pre_prompt: "These are frames from a video. Please answer the following questions about the video." - post_prompt: "Answer with the option's letter from the given choices directly." - gpt4v: - pre_prompt: "These are frames from a video. Please answer the following questions about the video." - post_prompt: "Answer with the option's letter from the given choices directly." diff --git a/lmms_eval/tasks/mix_evals/utils.py b/lmms_eval/tasks/mix_evals/utils.py deleted file mode 100755 index 88be9656..00000000 --- a/lmms_eval/tasks/mix_evals/utils.py +++ /dev/null @@ -1,266 +0,0 @@ -import os -import re -import sys -import datetime -import lmms_eval.tasks._task_utils.file_utils as file_utils -from lmms_eval.filters.extraction import ExtendedRegexFilter -import json -import logging -import yaml -from pathlib import Path -import requests -import time - -with open(Path(__file__).parent / "_default_template_yaml", "r") as f: - raw_data = f.readlines() - safe_data = [] - for i, line in enumerate(raw_data): - # remove function definition since yaml load cannot handle it - if "!function" not in line: - safe_data.append(line) - - config = yaml.safe_load("".join(safe_data)) - -NUM_SECONDS_TO_SLEEP = 5 -GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] -API_TYPE = os.getenv("API_TYPE", "openai") - -if API_TYPE == "openai": - API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") - API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") - headers = { - "Authorization": f"Bearer {API_KEY}", - "Content-Type": "application/json", - } -elif API_TYPE == "azure": - API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") - API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") - headers = { - "api-key": API_KEY, - "Content-Type": "application/json", - } - -eval_prompt = """You are an AI assistant who will help me to evaluate the quality of a model response to a few candidate ground truth answers. - -Some criterion -- Response that perfectly reflect the meaning of the ground truth: 1 point -- Response that reflect none of the key points in the ground truth: 0 point -- Some part in the response are correct but some parts in the ground truth are not mentioned in the response: 0.5 point -- Some part in the response are correct but other parts in the response are not mentioned in the ground truth: 0.5 point - -Here're some examples about the scoring criterion and format: -model response: Steam Cleaning Services -ground truth: ["steam clean", "steam clean", "cleaning", "car", "steam clean"], -Point: 1 - -model response: A cowboy action shooter. -ground truth: ["man"] -Point: 1 - -model response: I'm sorry, but I can't assist with that request. -ground truth: ["quality"] -Point: 0 - -Let's begin this task: -model response: {model_response} -ground truth: {ground_truth} -Point:""" - - -def get_eval(model_response: str, ground_truth: str, max_tokens: int, retries: int = 5): - global headers - content = eval_prompt.format(model_response=model_response, ground_truth=ground_truth) - - messages = [ - {"role": "user", "content": content}, - ] - - payload = { - "model": GPT_EVAL_MODEL_NAME, - "messages": messages, - "temperature": 0.2, - "max_tokens": max_tokens, - } - - for attempt in range(retries): - try: - response = requests.post(API_URL, headers=headers, json=payload, timeout=60) - response.raise_for_status() - response_data = response.json() - - content = response_data["choices"][0]["message"]["content"].strip() - if content != "": - return content, response_data["model"] - break # If successful, break out of the loop - - except Exception as e: - eval_logger.info(f"Attempt {attempt + 1} failed with error: {e}") - if attempt < retries: # If we have retries left, sleep and then continue to next attempt - time.sleep(NUM_SECONDS_TO_SLEEP) - else: # If this was the last attempt, log and return empty - eval_logger.error(f"All {retries} attempts failed. Last error message: {e}") - return "", "" - return "", "" - - -# A bit ugly here -# But the idea is that we will unzip all the zip files -# To HF HOME cache dir -# And load it here -HF_HOME = os.environ["HF_HOME"] -cache_dir = config["dataset_kwargs"]["cache_dir"] -cache_dir = os.path.join(HF_HOME, cache_dir) -cache_dir = os.path.join(cache_dir) - - -eval_logger = logging.getLogger("lmms-eval") - - -# Pass in video path here -# Can only work correctly with video llm -def mix_evals_video2text_doc_to_visual(doc): - video_path = doc["video_path"] - video_path = os.path.join(cache_dir, video_path) - if os.path.exists(video_path): - video_path = video_path - elif os.path.exists(video_path.replace("mp4", "MP4")): - video_path = video_path.replace("mp4", "MP4") - else: - sys.exit(f"video path:{video_path} does not exist, please check") - return [video_path] - - -# This is the place where you format your question -def mix_evals_video2text_doc_to_text(doc, model_specific_prompt_kwargs=None): - if model_specific_prompt_kwargs is None: - model_specific_prompt_kwargs = {} - pre_prompt = "" - post_prompt = "" - if "pre_prompt" in model_specific_prompt_kwargs: - pre_prompt = model_specific_prompt_kwargs["pre_prompt"] - if "post_prompt" in model_specific_prompt_kwargs: - post_prompt = model_specific_prompt_kwargs["post_prompt"] - - user_prompt = doc["prompt"] - - if "options" in doc: - option_prompt = "Here are the options:\n" - for idx, option in enumerate(doc["options"]): - char_idx = chr(ord("A") + idx) - option = option.strip() - option_prompt += f"{char_idx}. {option}\n" - - option_prompt = option_prompt.rstrip("\n") - user_prompt = f"{user_prompt}\n{option_prompt}" - - if pre_prompt: - user_prompt = f"{pre_prompt}\n{user_prompt}" - - if post_prompt: - user_prompt = f"{user_prompt}\n{post_prompt}" - return user_prompt - - -def mix_evals_video2text_doc_to_text_open_convs(doc, model_specific_prompt_kwargs=None): - if model_specific_prompt_kwargs is None: - model_specific_prompt_kwargs = {} - pre_prompt = "" - post_prompt = "" - if "pre_prompt" in model_specific_prompt_kwargs: - pre_prompt = model_specific_prompt_kwargs["pre_prompt"] - if "post_prompt" in model_specific_prompt_kwargs: - post_prompt = model_specific_prompt_kwargs["post_prompt"] - - formatted_prompt = "" - first_turn_user_prompt = doc["first_turn_user_prompt"] - - if pre_prompt: - formatted_prompt = f"{pre_prompt}\n{first_turn_user_prompt}" - else: - formatted_prompt = f"{first_turn_user_prompt}" - - if "round2" in doc and doc["round2"]: - second_turn_user_prompt = doc["second_turn_user_prompt"] - formatted_prompt += f"{formatted_prompt}\n{second_turn_user_prompt}" - if post_prompt: - formatted_prompt += f"{formatted_prompt}\n{post_prompt}" - return formatted_prompt - else: - if post_prompt: - formatted_prompt += f"{formatted_prompt}\n{post_prompt}" - return formatted_prompt - - -def mix_evals_video2text_process_results_open_convs(doc, result): - pred = result[0] - return {"submission": {"pred": pred, "question_idx": doc["question_index"], "first_turn_video_caption": doc["first_turn_video_caption"], "target": ""}} - - -def mix_evals_video2text_process_results_freeform(doc, result): - pred = result[0] - ground_truth_str = ", ".join([f'"{gt}"' for gt in doc["target"]]) - ground_truth_str = f"[{ground_truth_str}]" - content = eval_prompt.format(model_response=pred, ground_truth=ground_truth_str) - eval_answer, model_name = get_eval(model_response=pred, ground_truth=ground_truth_str, max_tokens=1024) - return { - "submission": {"pred": pred, "question_idx": doc["question_index"], "target": doc["target"], "eval_answer": eval_answer, "gpt_prompt": content}, - "gpt_eval": {"pred": pred, "question_idx": doc["question_index"], "target": doc["target"], "eval_answer": eval_answer, "gpt_prompt": content}, - } - - -def mix_evals_video2text_aggregate_submissions(results, args, task): - now_date_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") - submission_file_name = f"mix_evals_video2text_{task}-{now_date_time}.json" - path = file_utils.generate_submission_file(submission_file_name, args) - with open(path, "w") as f: - json.dump(results, f) - eval_logger.info(f"Submission file saved to {path}") - - -def mix_evals_video2text_gpt_eval(results, args): - score = 0 - for result in results: - eval_answer = result["eval_answer"] - eval_score = re.search(r"([0-9.]+)", eval_answer).group(1) - try: - eval_score = float(eval_score) - except Exception as e: - eval_logger.error(f"Error parsing eval_score: {e}") - eval_score = 0.0 - score += eval_score - - return score / len(results) - - -# Factory into different aggregate -def mix_evals_video2text_aggregate_gen(results, args): - mix_evals_video2text_aggregate_submissions(results, args, "OpenConvs") - - -class MultiChoiceRegexFilter(ExtendedRegexFilter): - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - - def apply(self, resps, docs): - filtered_resps = [] - - for r, doc in zip(resps, docs): - # Regex to directly extract the option letter from the model response - option_letter_regex = re.compile(r"\b([A-Z])\.\s+([^\n]*)") - - # Process each response - filtered = [] - for resp in r: - # Try to match the option letter at the start of the response - match = option_letter_regex.match(resp) - if match: - # If a match is found, append the matched letter - filtered.append(match.group(1)) - else: - # If no match, return the original response - filtered.append(resp) - - # Assuming we need the first response that matches or the original response - filtered_resps.append(filtered[0]) - - return filtered_resps diff --git a/lmms_eval/tasks/mmupd/_default_template_mmupd_yaml b/lmms_eval/tasks/mmupd/_default_template_mmupd_yaml new file mode 100644 index 00000000..7aa8d812 --- /dev/null +++ b/lmms_eval/tasks/mmupd/_default_template_mmupd_yaml @@ -0,0 +1,18 @@ +dataset_path: MM-UPD/MM-UPD +doc_to_target: "answer" +doc_to_visual: !function utils.mmupd_doc_to_visual +doc_to_text: !function utils.mmupd_doc_to_text +doc_to_target: "answer" +process_results: !function utils.mmupd_process_results +model_specific_generation_kwargs: + llava: + image_aspect_ratio: original +output_type: generate_until +generation_kwargs: + until: + - "ASSISTANT:" + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false diff --git a/lmms_eval/tasks/mmupd/mmaad_base.yaml b/lmms_eval/tasks/mmupd/mmaad_base.yaml new file mode 100644 index 00000000..9a66b3e8 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmaad_base.yaml @@ -0,0 +1,12 @@ +task: "mmaad_base" +test_split: test +dataset_name: mmaad_base +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\n" +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmaad_base + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmaad_instruction.yaml b/lmms_eval/tasks/mmupd/mmaad_instruction.yaml new file mode 100644 index 00000000..30a3bac1 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmaad_instruction.yaml @@ -0,0 +1,12 @@ +task: "mmaad_instruction" +test_split: test +dataset_name: mmaad_base +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\nIf all the options are incorrect, answer \"F. None of the above\"." +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmaad_instruction + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmaad_option.yaml b/lmms_eval/tasks/mmupd/mmaad_option.yaml new file mode 100644 index 00000000..f110b822 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmaad_option.yaml @@ -0,0 +1,12 @@ +task: "mmaad_option" +test_split: test +dataset_name: mmaad_option +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\nAnswer with the option's letter from the given choices directly." +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmaad_option + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmiasd_base.yaml b/lmms_eval/tasks/mmupd/mmiasd_base.yaml new file mode 100644 index 00000000..6a9159fd --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmiasd_base.yaml @@ -0,0 +1,12 @@ +task: "mmiasd_base" +test_split: test +dataset_name: mmiasd_base +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\n" +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmiasd_base + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmiasd_instruction.yaml b/lmms_eval/tasks/mmupd/mmiasd_instruction.yaml new file mode 100644 index 00000000..d0ac3a00 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmiasd_instruction.yaml @@ -0,0 +1,12 @@ +task: "mmiasd_instruction" +test_split: test +dataset_name: mmiasd_base +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\nIf all the options are incorrect, answer \"F. None of the above\"." +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmiasd_instruction + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmiasd_option.yaml b/lmms_eval/tasks/mmupd/mmiasd_option.yaml new file mode 100644 index 00000000..a1a1aead --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmiasd_option.yaml @@ -0,0 +1,12 @@ +task: "mmiasd_option" +test_split: test +dataset_name: mmiasd_option +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\nAnswer with the option's letter from the given choices directly." +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmiasd_option + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmivqd_base.yaml b/lmms_eval/tasks/mmupd/mmivqd_base.yaml new file mode 100644 index 00000000..82853fde --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmivqd_base.yaml @@ -0,0 +1,12 @@ +task: "mmivqd_base" +test_split: test +dataset_name: mmivqd_base +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\n" +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmivqd_base + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmivqd_instruction.yaml b/lmms_eval/tasks/mmupd/mmivqd_instruction.yaml new file mode 100644 index 00000000..a024022a --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmivqd_instruction.yaml @@ -0,0 +1,12 @@ +task: "mmivqd_instruction" +test_split: test +dataset_name: mmivqd_base +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\nIf the given image is irrelevant to the question, answer \"F. The image and question are irrelevant.\"." +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmivqd_instruction + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmivqd_option.yaml b/lmms_eval/tasks/mmupd/mmivqd_option.yaml new file mode 100644 index 00000000..1363c345 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmivqd_option.yaml @@ -0,0 +1,12 @@ +task: "mmivqd_option" +test_split: test +dataset_name: mmivqd_option +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "\nAnswer with the option's letter from the given choices directly." +include: _default_template_mmupd_yaml +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.mmivqd_option + higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmupd.yaml b/lmms_eval/tasks/mmupd/mmupd.yaml new file mode 100644 index 00000000..9bb09a7d --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmupd.yaml @@ -0,0 +1,15 @@ +group: mmupd +task: + - mmaad_base + - mmaad_option + - mmaad_instruction + - mmiasd_base + - mmiasd_option + - mmiasd_instruction + - mmivqd_base + - mmivqd_option + - mmivqd_instruction +metadata: + version: 0.0 + sys_prompt: "" + gpt_eval_model_name: "gpt-3.5-turbo-0125" \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmupd_base.yaml b/lmms_eval/tasks/mmupd/mmupd_base.yaml new file mode 100644 index 00000000..8f0fe147 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmupd_base.yaml @@ -0,0 +1,10 @@ +group: mmupd_base +task: + - mmaad_base + - mmiasd_base + - mmivqd_base +metadata: + version: 0.0 + sys_prompt: "" + gpt_eval_model_name: "gpt-3.5-turbo-0125" + \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmupd_evals.py b/lmms_eval/tasks/mmupd/mmupd_evals.py new file mode 100644 index 00000000..53055313 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmupd_evals.py @@ -0,0 +1,621 @@ +import time +import random as rd +import string +from collections import defaultdict +import requests +import math +import numpy as np +import pandas as pd +import pickle +import logging +import json + +eval_logger = logging.getLogger("lmms-eval") + + +def dump(data, f): + def dump_pkl(data, pth): + pickle.dump(data, open(pth, "wb")) + + def dump_json(data, pth): + json.dump(data, open(pth, "w")) + + def dump_jsonl(data, f): + lines = [json.dumps(x, ensure_ascii=False) for x in data] + with open(f, "w", encoding="utf8") as fout: + fout.write("\n".join(lines)) + + def dump_xlsx(data, f): + data.to_excel(f, index=False) + + def dump_csv(data, f): + data.to_csv(f, index=False) + + def dump_tsv(data, f): + data.to_csv(f, sep="\t", index=False) + + handlers = dict(pkl=dump_pkl, json=dump_json, jsonl=dump_jsonl, xlsx=dump_xlsx, csv=dump_csv, tsv=dump_tsv) + suffix = f.split(".")[-1] + return handlers[suffix](data, f) + + +def load(f): + """ + Loads data from various file formats. + + Parameters: + - file_path: Path to the file to be loaded. + + Returns: + - Loaded data. + """ + + def load_pkl(pth): + return pickle.load(open(pth, "rb")) + + def load_json(pth): + return json.load(open(pth, "r", encoding="utf-8")) + + def load_jsonl(f): + lines = open(f, encoding="utf-8").readlines() + lines = [x.strip() for x in lines] + if lines[-1] == "": + lines = lines[:-1] + data = [json.loads(x) for x in lines] + return data + + def load_xlsx(f): + df = pd.read_excel(f) + df = df.dropna(subset=["prediction"]) + + return df + + def load_csv(f): + return pd.read_csv(f) + + def load_tsv(f): + return pd.read_csv(f, sep="\t") + + handlers = dict(pkl=load_pkl, json=load_json, jsonl=load_jsonl, xlsx=load_xlsx, csv=load_csv, tsv=load_tsv) + suffix = f.split(".")[-1] + return handlers[suffix](f) + + +class MMUPD_Evaluator: + def __init__(self, sys_prompt="There are several options:", API_KEY="", API_URL="", model_version="gpt-3.5-turbo-0613"): + self.sys_prompt = sys_prompt + self.model_version = model_version + self.API_KEY = API_KEY + self.API_URL = API_URL + + def create_options_prompt(self, row_data, option_candidate): + available_keys = set(row_data.keys()) & set(option_candidate) + options = {cand: row_data[cand] for cand in available_keys if row_data[cand]} + sorted_options = dict(sorted(options.items())) + options_prompt = f"{self.sys_prompt}\n" + for key, item in sorted_options.items(): + if pd.notna(item) and item != "nan": + options_prompt += f"{key}. {item}\n" + return options_prompt.rstrip("\n"), sorted_options + + def is_none(self, value): + if value is None: + return True + if pd.isna(value): + return True + if type(value) is float and math.isnan(value): + return True + if type(value) is str and value.lower() == "nan": + return True + if type(value) is str and value.lower() == "none": + return True + return False + + # Prompt Building + def build_option_str(self, option_list): + chars = string.ascii_uppercase + s = "There are several options: \n" + for c, opt in zip(chars, option_list): + if not pd.isna(opt): + s += f"{c}. {opt}\n" + else: + return s + return s + + def extract_options(self, item): + options = [] + for c in "ABCDE": + try: + if self.is_none(item[c]) is False: + options.append(item[c]) + except KeyError: + continue + return options + + def build_choices(self, item): + ret = {} + for ch in "ABCDE": + try: + if self.is_none(item[ch]) is False: + ret[ch] = item[ch] + except KeyError: + continue + return ret + + def build_option_str_w_gt(self, option_list, gt_text, eval_type, question_type, upd_type): + chars = string.ascii_uppercase + s = "There are several options: \n" + valid_option = [] + answer_option = [] + + for c, opt in zip(chars, option_list): + if self.is_none(opt) is False: + s += f"{c}. {opt}\n" + valid_option.append(c) + if upd_type == "aad": + if eval_type == "aad": + gt_option = "" + for option in ["C", "D", "E", "F"]: + if option not in valid_option: + gt_option = option + break + none_option_mapping = {"C": "D", "D": "E", "E": "F", "F": "G"} + s += f"{gt_option}. {gt_text}\n" + none_option = none_option_mapping[gt_option] + s += f"{none_option}. The correct answer is No answer, None of the above, \ + all provided options are incorrect, or I cannot answer.\n" + valid_option.append(gt_option) + valid_option.append(none_option) + answer_option = [gt_option, none_option] + if question_type == "inst": + s += f"F. None of the above\n" + valid_option.append("F") + answer_option = [gt_option, none_option, "F"] + + if eval_type == "standard": + none_option = "" + for option in ["C", "D", "E", "F"]: + if option not in valid_option: + none_option = option + break + s += f"{none_option}. The correct answer is No answer, None of the above, \ + all provided options are incorrect, or I cannot answer.\n" + valid_option.append(none_option) + if question_type == "inst": + s += "F. None of the above\n" + valid_option.append("F") + elif upd_type == "iasd": + if eval_type == "iasd": + gt_option = "" + for option in ["C", "D", "E", "F"]: + if option not in valid_option: + gt_option = option + break + + s += f"{gt_option}. {gt_text}\n" + valid_option.append(gt_option) + + if question_type == "inst": + if gt_option == "E": + s += f"F. None of the above\n" + valid_option.append("F") + s += "G. The correct answer is No answer, None of the above, all provided options are irrelevant or incorrect, or I cannot answer.\n" + valid_option.append("G") + answer_option = [gt_option, "F", "G"] + else: + none_option_mapping = {"C": "D", "D": "E"} + none_option = none_option_mapping[gt_option] + s += f"{none_option}. The correct answer is No answer, None of the above, all provided options are irrelevant or incorrect, or I cannot answer.\n" + valid_option.append(none_option) + s += f"F. None of the above\n" + valid_option.append("F") + answer_option = [gt_option, none_option, "F"] + else: + none_option_mapping = {"C": "D", "D": "E", "E": "F", "F": "G"} + none_option = none_option_mapping[gt_option] + s += f"{none_option}. The correct answer is No answer, None of the above, all provided options are irrelevant or incorrect, or I cannot answer.\n" + valid_option.append(none_option) + answer_option = [gt_option, none_option] + + if eval_type == "standard": + none_option = "" + for option in ["C", "D", "E", "F"]: + if option not in valid_option: + none_option = option + break + s += f"{none_option}. The correct answer is No answer, None of the above, \ + all provided options are irrelevant or incorrect, or I cannot answer.\n" + valid_option.append(none_option) + if question_type == "inst": + s += f"F. None of the above\n" + valid_option.append("F") + elif upd_type == "ivqd": + if eval_type == "ivqd": + none_option = "" + for option in ["C", "D", "E", "F"]: + if option not in valid_option: + none_option = option + break + s += f"{none_option}. The correct answer is that The image is incompatible with the question, or I cannot answer.\n" + valid_option.append(none_option) + answer_option = [none_option] + if question_type == "inst": + s += f"F. The image and question are irrelevant.\n" + valid_option.append("F") + answer_option = [none_option, "F"] + + if eval_type == "standard": + none_option = "" + for option in ["C", "D", "E", "F"]: + if option not in valid_option: + none_option = option + break + s += f"{none_option}. The correct answer is that The image is incompatible with the question, or I cannot answer.\n" + valid_option.append(none_option) + if question_type == "inst": + s += f"F. The image and question are irrelevant.\n" + valid_option.append("F") + return s, valid_option, answer_option + + def build_prompt(self, question, options, prediction, upd_type): + if upd_type == "aad": + tmpl = ( + "You are an AI assistant who will help me to match an answer " + "with several options of a single-choice question. " + "You are provided with a question, several options, and an answer, " + "and you need to find which option is most similar to the answer. " + "If the meaning of all options are significantly different " + "from the answer, output H. " + "Your should output a single uppercase character in A, B, C, D, E, F, G " + "(if they are valid options), and H. \n" + "Example 1: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. no answer \nAnswer: a cute teddy bear\nYour output: A\n" + "Example 2: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. None of the above \nAnswer: no answer \nYour output: E\n" + "Example 3: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. None of the above \nAnswer: fish \nYour output: H\n" + "Example 4: \n" + "Question: {}?\nOptions: {}\nAnswer: {}\nYour output: " + ) + elif upd_type == "iasd": + tmpl = ( + "You are an AI assistant who will help me to match an answer " + "with several options of a single-choice question. " + "You are provided with a question, several options, and an answer, " + "and you need to find which option is most similar to the answer. " + "If the meaning of all options are significantly different " + "from the answer, output H. " + "Your should output a single uppercase character in A, B, C, D, E, F, G " + "(if they are valid options), and H. \n" + "Example 1: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. no answer \nAnswer: a cute teddy bear\nYour output: A\n" + "Example 2: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. None of the above \nAnswer: no answer \nYour output: E\n" + "Example 3: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. None of the above \nAnswer: fish \nYour output: H\n" + "Example 4: \n" + "Question: {}?\nOptions: {}\nAnswer: {}\nYour output: " + ) + elif upd_type == "ivqd": + tmpl = ( + "You are an AI assistant who will help me to match an answer " + "with several options of a single-choice question. " + "You are provided with a question, several options, and an answer, " + "and you need to find which option is most similar to the answer. " + "If the meaning of all options are significantly different " + "from the answer, output H. " + "Your should output a single uppercase character in A, B, C, D, E, F, G " + "(if they are valid options), and H. \n" + "Example 1: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. The image and question are irrelevant \nAnswer: a cute teddy bear\nYour output: A\n" + "Example 2: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. The image and question are irrelevant \nAnswer: The updloaded image and question are incompatible. \nYour output: E\n" + "Example 3: \n" + "Question: What is the main object in image?\nOptions: A. teddy bear " + "B. rabbit C. cat D. dog E. The image and question are irrelevant \nAnswer: fish \nYour output: H\n" + "Example 4: \n" + "Question: {}?\nOptions: {}\nAnswer: {}\nYour output: " + ) + return tmpl.format(question, options, prediction) + + # Prefetch Answers + def can_infer_option(self, answer, option_dict, question_type=None, valid_option=None): + if valid_option is None: + valid_option = list(option_dict.keys()) + if question_type == "inst": + valid_option.append("F") + + if "Failed to obtain answer via API" in answer: + return False + + answer = answer.strip() + + ch_cand_list = [] + + punctuations = [".", ")", ","] + if "A" in valid_option: + characters = ["B", "C", "D", "E", "F", "G"] + combinations = [char + punct for char in characters for punct in punctuations] + start_patterns = ["A)", "A.", "A,", "(A)"] + if answer == "A" or (any(answer.startswith(pattern) for pattern in start_patterns) and all(x not in answer for x in combinations)): + ch_cand_list.append("A") + if "B" in valid_option: + characters = ["A", "C", "D", "E", "F", "G"] + combinations = [char + punct for char in characters for punct in punctuations] + start_patterns = ["B)", "B.", "B,", "(B)"] + if answer == "B" or (any(answer.startswith(pattern) for pattern in start_patterns) and all(x not in answer for x in combinations)): + ch_cand_list.append("B") + if "C" in valid_option: + characters = ["A", "B", "D", "E", "F", "G"] + combinations = [char + punct for char in characters for punct in punctuations] + start_patterns = ["C)", "C.", "C,", "(C)"] + if answer == "C" or (any(answer.startswith(pattern) for pattern in start_patterns) and all(x not in answer for x in combinations)): + ch_cand_list.append("C") + if "D" in valid_option: + characters = ["A", "B", "C", "E", "F", "G"] + combinations = [char + punct for char in characters for punct in punctuations] + start_patterns = ["D)", "D.", "D,", "(D)"] + if answer == "D" or (any(answer.startswith(pattern) for pattern in start_patterns) and all(x not in answer for x in combinations)): + ch_cand_list.append("D") + if "E" in valid_option: + characters = ["A", "B", "C", "D", "F", "G"] + combinations = [char + punct for char in characters for punct in punctuations] + start_patterns = ["E)", "E.", "E,", "(E)"] + if answer == "E" or (any(answer.startswith(pattern) for pattern in start_patterns) and all(x not in answer for x in combinations)): + ch_cand_list.append("E") + if "F" in valid_option: + characters = ["A", "B", "C", "D", "E", "G"] + combinations = [char + punct for char in characters for punct in punctuations] + start_patterns = ["F)", "F.", "F,", "(F)"] + if answer == "F" or (any(answer.startswith(pattern) for pattern in start_patterns) and all(x not in answer for x in combinations)): + ch_cand_list.append("F") + if "G" in valid_option: + characters = ["A", "B", "C", "D", "E", "F"] + combinations = [char + punct for char in characters for punct in punctuations] + + start_patterns = ["G)", "G.", "G,", "(G)"] + if answer == "G" or (any(answer.startswith(pattern) for pattern in start_patterns) and all(x not in answer for x in combinations)): + ch_cand_list.append("G") + + if len(ch_cand_list) == 1: + return ch_cand_list[0] + + return False + + def can_infer(self, answer, choices, question_type=None, valid_option=None): + copt = self.can_infer_option(answer, choices, question_type, valid_option=valid_option) + return copt if copt else False + + def prefetch_answer(self, item, question_type): + choices = self.build_choices(item) + return self.can_infer(item["prediction"], choices, question_type=question_type) + + def _post_request(self, payload): + headers = { + "Authorization": f"Bearer {self.API_KEY}", + "Content-Type": "application/json", + } + response = requests.post(self.API_URL, headers=headers, json=payload, timeout=30) + response.raise_for_status() + return response.json() + + def get_chat_response(self, prompt, temperature=0, max_tokens=256, n=1, patience=5, sleep_time=3): + messages = [ + {"role": "user", "content": prompt}, + ] + payload = {"model": self.model_version, "messages": messages, "temperature": temperature, "max_tokens": max_tokens, "n": n} + + while patience > 0: + patience -= 1 + try: + response = self._post_request(payload) + if n == 1: + prediction = response["choices"][0]["message"]["content"].strip() + if prediction and prediction != "": + return prediction + else: + prediction = [choice["message"]["content"].strip() for choice in response["choices"]] + if prediction and prediction[0] != "": + return prediction + + except Exception as e: + eval_logger.info(f"Attempt {patience + 1} failed with error: {e}") + if sleep_time > 0: + time.sleep(sleep_time) + + return "Failed to obtain answer via API" + + def extract_answer_from_item(self, item, gt_text, eval_type, question_type, upd_type): + options = self.extract_options(item) + option_str, valid_option, answer_option = self.build_option_str_w_gt(options, gt_text, eval_type, question_type=question_type, upd_type=upd_type) + + prompt = self.build_prompt(item["question"], option_str, item["prediction"], upd_type=upd_type) + retry = 3 + choices = self.build_choices(item) + + ret = self.can_infer(item["prediction"], choices, valid_option=valid_option) + if ret: + return ret, item["prediction"], answer_option + + while retry: + ans = self.get_chat_response(prompt, temperature=0.7) + if "Failed to obtain answer via API" in ans: + msg = "GPT API failed to answer. " + eval_logger.info(msg) + retry -= 1 + else: + ret = self.can_infer(ans, choices, valid_option=valid_option) + if ret: + return ret, ans, answer_option + else: + eval_logger.info(f'GPT output includes 0 / >1 letter in "{valid_option}": {ans}') + retry -= 1 + + if retry == 0: + return "H", "Failed to predict. ", answer_option + + def eval_sub_data(self, sub_data, answer_map, gt_text_map, question_type, eval_type, upd_type): + lt = len(sub_data) + GT, PRED = [], [] + + for i in range(lt): + item = sub_data.iloc[i] + idx = item["index"] + GT.append(answer_map[idx]) + PRED.append(self.prefetch_answer(item, question_type)) + if PRED[-1] and (GT[-1] != PRED[-1]): + return 0 + + for i in range(lt): + if PRED[i]: + continue + else: + item = sub_data.iloc[i] + idx = item["index"] + gt_text = gt_text_map[idx] if gt_text_map is not None else None + ret, _, answer_option = self.extract_answer_from_item(sub_data.iloc[i], gt_text, eval_type, question_type=question_type, upd_type=upd_type) + PRED[i] = ret + if eval_type == "standard": + if PRED[i] != GT[i]: + return 0 + else: + if GT[i] == "F": + if PRED[i] not in answer_option: + return 0 + else: + if PRED[i] != GT[i] and PRED[i] not in answer_option: + return 0 + return 1 + + def calculate_hit_rates(self, data): + overall_hit_rate = data["hit"].mean() + + category_hit_rate = {} + if "category" in data.columns: + # Category-based hit rate + category_hit_rate = data.groupby("category")["hit"].mean().to_dict() + + return overall_hit_rate, category_hit_rate + + # Evaluate Results + def eval_result(self, results, eval_method, upd_type, question_type, eval_type): + """ + Parameters: + - args: Arguments. + - results: Results to evaluate. + - eval_method: The evaluation method. either "openai". + - upd_type: The type of UPD. either "aad", "iasd", or "ivqd". + - question_type: The type of question. either "base", "option", or "inst". + - eval_type: The type of evaluation. either "standard", "aad", "iasd", "ivqd". + """ + + rd.seed(2680) + assert eval_method == "openai" + + result = {} + data = pd.DataFrame(results) + + if eval_type == "standard": + data = data[data["type"] == "standard"] + else: + data = data[data["type"] == "upd"] + + data = data.sort_values(by="index") + + data["prediction"] = [str(x) for x in data["prediction"]] + for k in data.keys(): + data[k.lower() if k not in "ABCDE" else k] = data.pop(k) + + # meta = load(meta_file) + + data_main = data[data["index"] < int(1e6)] + + data_main["hit"] = 0 + cate_map = {i: c for i, c in zip(data["index"], data["category"])} + answer_map = {i: c for i, c in zip(data["index"], data["answer"])} + + gt_text_map = {i: c for i, c in zip(data["index"], data["masked_answer"])} + + lt = len(data_main) + hit, tot = 0, 0 + + for i in range(lt): + # Dealing with the normal part + item_main = data_main.iloc[i] + idx = item_main["index"] + + if idx in result: + correct = result[idx] + assert correct in [0, 1] + hit += correct + tot += 1 + continue + + sub_data = data[data["index"] % int(1e6) == idx] + + ret = self.eval_sub_data(sub_data, answer_map, gt_text_map, question_type=question_type, eval_type=eval_type, upd_type=upd_type) + result[idx] = ret + hit += ret + tot += 1 + + data_main.loc[data_main["index"] == idx, "hit"] = ret + + indices = data_main["index"] + + data_main["category"] = [cate_map[i] if not math.isnan(i) else "uncategorized" for i in indices] + + overall_hit_rate, category_hit_rate = self.calculate_hit_rates(data_main) + + return overall_hit_rate, category_hit_rate, data_main + + def report_acc(self, df, groupd="category"): + assert "split" in df + assert groupd in [None, "category", "l2-category"] + + res = defaultdict(list) + res["split"] = ["test"] + if groupd is None: + res["overall"] = [ + np.mean(df["hit"]), + ] + return pd.DataFrame(res) + + elif groupd in df: + abilities = list(set(df[groupd])) + abilities.sort() + for ab in abilities: + sub_df = df[df[groupd] == ab] + res[ab] = [ + np.mean(sub_df["hit"]), + ] + return pd.DataFrame(res) + + def calculate_dual_acc(self, standard_df, upd_df): + # dual results + dual_df = pd.merge(standard_df, upd_df, on="index", suffixes=("_standard", "_upd")) + dual_df["hit"] = dual_df.apply(lambda row: 1 if row["hit_standard"] == 1 and row["hit_upd"] == 1 else 0, axis=1) + dual_df["split"] = dual_df["split_standard"] + dual_df["category"] = dual_df["category_standard"] + + # Evaluate dual results + overall_hit_rate, category_hit_rate = self.calculate_hit_rates(dual_df) + print("Overall Dual Acc.", overall_hit_rate) + + if "category" in dual_df.columns: + print("Category Dual Acc.:") + for category_key in category_hit_rate: + if category_key == "split": + continue + + category_percentage = category_hit_rate[category_key] * 100 + print(f"\t{category_key}: {category_percentage:.3f}") + + return overall_hit_rate, category_hit_rate, dual_df diff --git a/lmms_eval/tasks/mmupd/mmupd_instruction.yaml b/lmms_eval/tasks/mmupd/mmupd_instruction.yaml new file mode 100644 index 00000000..6aae6049 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmupd_instruction.yaml @@ -0,0 +1,9 @@ +group: mmupd_instruction +task: + - mmaad_instruction + - mmiasd_instruction + - mmivqd_instruction +metadata: + version: 0.0 + sys_prompt: "" + gpt_eval_model_name: "gpt-3.5-turbo-0125" \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/mmupd_option.yaml b/lmms_eval/tasks/mmupd/mmupd_option.yaml new file mode 100644 index 00000000..32e514d9 --- /dev/null +++ b/lmms_eval/tasks/mmupd/mmupd_option.yaml @@ -0,0 +1,9 @@ +group: mmupd_option +task: + - mmaad_option + - mmiasd_option + - mmivqd_option +metadata: + version: 0.0 + sys_prompt: "" + gpt_eval_model_name: "gpt-3.5-turbo-0125" \ No newline at end of file diff --git a/lmms_eval/tasks/mmupd/utils.py b/lmms_eval/tasks/mmupd/utils.py new file mode 100644 index 00000000..9a90bf4b --- /dev/null +++ b/lmms_eval/tasks/mmupd/utils.py @@ -0,0 +1,167 @@ +import logging +import yaml +import os +from pathlib import Path +import pandas as pd +import json +from PIL import Image +from io import BytesIO +import base64 +from lmms_eval.tasks.mmupd.mmupd_evals import MMUPD_Evaluator +from lmms_eval.tasks._task_utils.file_utils import generate_submission_file + +eval_logger = logging.getLogger("lmms-eval") + +with open(Path(__file__).parent / "mmupd.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + + config = yaml.safe_load("".join(safe_data)) + +GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] +API_TYPE = os.getenv("API_TYPE", "openai") + +if API_TYPE == "openai": + API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") + API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") +elif API_TYPE == "azure": + API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") + API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") + + +mmupd_evaluator = MMUPD_Evaluator(sys_prompt=config["metadata"]["sys_prompt"], API_KEY=API_KEY, API_URL=API_URL, model_version=GPT_EVAL_MODEL_NAME) + + +def mmupd_doc_to_visual(doc): + return [Image.open(BytesIO(base64.b64decode(doc["image"])))] + + +def mmupd_doc_to_text(doc, model_specific_prompt_kwargs=None): + option_candidate = ["A", "B", "C", "D", "E"] + options_prompt, options_dict = mmupd_evaluator.create_options_prompt(doc, option_candidate) + + data = { + # "img": doc["image"], + "question": doc["question"], + "answer": doc.get("answer", None), + "options": options_prompt, + "category": doc["category"], + "options_dict": options_dict, + "index": doc["index"], + "hint": doc["hint"], + "source": doc["source"], + "split": doc["split"], + } + + query_prompt = f"{data['hint']}\n{data['question']}{data['options']}" if pd.notna(data["hint"]) and data["hint"] != "nan" else f"{data['question']}{data['options']}" + + if model_specific_prompt_kwargs: + query_prompt = f"{query_prompt}{model_specific_prompt_kwargs['post_prompt']}" + + return query_prompt + + +def mmupd_process_results(doc, results): + model_response = results[0].strip() + data = { + "gpt_eval_score": { + "index": doc["index"], + "question": doc["question"], + "answer": doc["answer"], + "prediction": model_response, + "hint": doc["hint"], + "source": doc["source"], + "split": doc["split"], + "category": doc["category"], + "type": doc["type"], + "masked_answer": doc["masked_answer"], + }, + "submission": { + "index": doc["index"], + "question": doc["question"], + "answer": doc["answer"], + "prediction": model_response, + "hint": doc["hint"], + "source": doc["source"], + "split": doc["split"], + "category": doc["category"], + "type": doc["type"], + "masked_answer": doc["masked_answer"], + }, + } + option_candidate = ["A", "B", "C", "D", "E"] + for c in option_candidate: + data["submission"][c] = doc.get(c, "nan") + data["gpt_eval_score"][c] = doc.get(c, "nan") + return data + + +def mmaad_base(results, args): + return mmupd_results_eval(results, args, upd_type="aad", question_type="base") + + +def mmaad_option(results, args): + return mmupd_results_eval(results, args, upd_type="aad", question_type="option") + + +def mmaad_instruction(results, args): + return mmupd_results_eval(results, args, upd_type="aad", question_type="inst") + + +def mmiasd_base(results, args): + return mmupd_results_eval(results, args, upd_type="iasd", question_type="base") + + +def mmiasd_option(results, args): + return mmupd_results_eval(results, args, upd_type="iasd", question_type="option") + + +def mmiasd_instruction(results, args): + return mmupd_results_eval(results, args, upd_type="iasd", question_type="inst") + + +def mmivqd_base(results, args): + return mmupd_results_eval(results, args, upd_type="ivqd", question_type="base") + + +def mmivqd_option(results, args): + return mmupd_results_eval(results, args, upd_type="ivqd", question_type="option") + + +def mmivqd_instruction(results, args): + return mmupd_results_eval(results, args, upd_type="ivqd", question_type="inst") + + +def mmupd_results_eval(results, args, upd_type, question_type): + print("============= MMUPD Bench Detailed Results =============") + + overall_acc_standard, category_acc_standard, standard_results_df = mmupd_evaluator.eval_result(results, eval_method="openai", upd_type=upd_type, question_type=question_type, eval_type="standard") + overall_acc_upd, category_acc_upd, upd_results_df = mmupd_evaluator.eval_result(results, eval_method="openai", upd_type=upd_type, question_type=question_type, eval_type=upd_type) + + overall_acc_dual, category_acc_dual, dual_results_df = mmupd_evaluator.calculate_dual_acc(standard_results_df, upd_results_df) + + file_json = generate_submission_file(f"mmupd_{upd_type}_{question_type}_dual_results.json", args) + + details_info = { + "overall_acc_dual": overall_acc_dual, + "category_acc_dual": category_acc_dual, + "overall_acc_standard": overall_acc_standard, + "category_acc_standard": category_acc_standard, + "overall_acc_upd": overall_acc_upd, + "category_acc_upd": category_acc_upd, + } + + with open(file_json, "w") as f: + json.dump(details_info, f) + + file_excel = generate_submission_file(f"mmupd_{upd_type}_{question_type}_dual_results_detail.xlsx", args) + dual_results_df.to_excel(file_excel, index=False) + + file_json = generate_submission_file(f"mmupd_{upd_type}_{question_type}_dual_results_detail.json", args) + dual_results_df.to_json(file_json, orient="records", indent=2) # for huggingface leaderboard submission + + return overall_acc_dual * 100 diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/README.md b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/README.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/README.md @@ -0,0 +1 @@ + diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/_default_template.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/_default_template.yaml new file mode 100644 index 00000000..3ae9260b --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/_default_template.yaml @@ -0,0 +1,35 @@ +test_split: train +output_type: generate_until +doc_to_visual: !function utils.llava_doc_to_visual +doc_to_text: !function utils.llava_doc_to_text +doc_to_target: "gpt_answer" +generation_kwargs: + until: + - "ASSISTANT:" + image_aspect_ratio: original + max_new_tokens: 1024 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.llava_process_results +metric_list: + - metric: gpt_eval_llava_all + aggregation: !function utils.llava_all_aggregation + higher_is_better: true + - metric: gpt_eval_llava_conv + aggregation: !function utils.llava_conv_aggregation + higher_is_better: true + - metric: gpt_eval_llava_detail + aggregation: !function utils.llava_detail_aggregation + higher_is_better: true + - metric: gpt_eval_llava_complex + aggregation: !function utils.llava_complex_aggregation + higher_is_better: true +metadata: + version: 0.0 + gpt_eval_model_name: "gpt-4-0613" +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "" \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/arabic_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/arabic_llava_in_the_wild.yaml new file mode 100644 index 00000000..8e36630f --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/arabic_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: arabic + token: True +task: "llava_in_the_wild_arabic" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/bengali_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/bengali_llava_in_the_wild.yaml new file mode 100644 index 00000000..cabe38a8 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/bengali_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: bengali + token: True +task: "llava_in_the_wild_bengali" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/chinese_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/chinese_llava_in_the_wild.yaml new file mode 100644 index 00000000..3abda8a9 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/chinese_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: chinese + token: True +task: "llava_in_the_wild_chinese" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/french_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/french_llava_in_the_wild.yaml new file mode 100644 index 00000000..cd30f2c4 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/french_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: french + token: True +task: "llava_in_the_wild_french" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/hindi_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/hindi_llava_in_the_wild.yaml new file mode 100644 index 00000000..45dc0d91 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/hindi_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: hindi + token: True +task: "llava_in_the_wild_hindi" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/japanese_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/japanese_llava_in_the_wild.yaml new file mode 100644 index 00000000..ac4083a8 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/japanese_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: japanese + token: True +task: "llava_in_the_wild_japanese" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/rule.json b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/rule.json new file mode 100644 index 00000000..26c7f4e0 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/rule.json @@ -0,0 +1,11 @@ +{ + "coding": {"role": "Assistant", "prompt": "Your task is to evaluate the coding abilities of the above two assistants. They have been asked to implement a program to solve a given problem. Please review their code submissions, paying close attention to their problem-solving approach, code structure, readability, and the inclusion of helpful comments.\n\nPlease ensure that the assistants' submissions:\n\n1. Correctly implement the given problem statement.\n2. Contain accurate and efficient code.\n3. Include clear and concise comments that explain the code's logic and functionality.\n4. Adhere to proper coding standards and best practices.\n\nOnce you have carefully reviewed both submissions, provide detailed feedback on their strengths and weaknesses, along with any suggestions for improvement. You should first output a single line containing two scores on the scale of 1-10 (1: no code/no sense; 10: perfect) for Assistant 1 and 2, respectively. Then give extra comments starting from the next line."}, + "math": {"role": "Assistant", "prompt": "We would like to request your feedback on the mathematical proficiency of two AI assistants regarding the given user question.\nFirstly, please solve the problem independently, without referring to the answers provided by Assistant 1 and Assistant 2.\nAfterward, please examine the problem-solving process of Assistant 1 and Assistant 2 step-by-step to ensure their correctness, identifying any incorrect steps if present. Your evaluation should take into account not only the answer but also the problem-solving steps.\nFinally, please output a Python tuple containing two numerical scores for Assistant 1 and Assistant 2, ranging from 1 to 10, respectively. If applicable, explain the reasons for any variations in their scores and determine which assistant performed better."}, + "default": {"role": "Assistant", "prompt": "We would like to request your feedback on the performance of two AI assistants in response to the user question displayed above.\nPlease rate the helpfulness, relevance, accuracy, level of details of their responses. Each assistant receives an overall score on a scale of 1 to 10, where a higher score indicates better overall performance.\nPlease first output a single line containing only two values indicating the scores for Assistant 1 and 2, respectively. The two scores are separated by a space.\nIn the subsequent line, please provide a comprehensive explanation of your evaluation, avoiding any potential bias and ensuring that the order in which the responses were presented does not affect your judgment."}, + "conv": {"role": "Assistant", "prompt": "We would like to request your feedback on the performance of two AI assistants in response to the user question displayed above. The user asks the question on observing an image. For your reference, the visual content in the image is represented with five descriptive sentences describing the same image and the bounding box coordinates of each object in the scene. These coordinates are in the form of bounding boxes, represented as (x1, y1, x2, y2) with floating numbers ranging from 0 to 1. These values correspond to the top left x, top left y, bottom right x, and bottom right y. \nPlease rate the helpfulness, relevance, accuracy, level of details of their responses. Each assistant receives an overall score on a scale of 1 to 10, where a higher score indicates better overall performance.\nPlease first output a single line containing only two values indicating the scores for Assistant 1 and 2, respectively. The two scores are separated by a space.\nIn the subsequent line, please provide a comprehensive explanation of your evaluation, avoiding any potential bias and ensuring that the order in which the responses were presented does not affect your judgment."}, + "detail": {"role": "Assistant", "prompt": "We would like to request your feedback on the performance of two AI assistants in response to the user question displayed above. The user asks the question on observing an image. For your reference, the visual content in the image is represented with five descriptive sentences describing the same image and the bounding box coordinates of each object in the scene. These coordinates are in the form of bounding boxes, represented as (x1, y1, x2, y2) with floating numbers ranging from 0 to 1. These values correspond to the top left x, top left y, bottom right x, and bottom right y. \nPlease rate the helpfulness, relevance, accuracy, level of details of their responses. Each assistant receives an overall score on a scale of 1 to 10, where a higher score indicates better overall performance.\nPlease first output a single line containing only two values indicating the scores for Assistant 1 and 2, respectively. The two scores are separated by a space.\nIn the subsequent line, please provide a comprehensive explanation of your evaluation, avoiding any potential bias and ensuring that the order in which the responses were presented does not affect your judgment."}, + "complex": {"role": "Assistant", "prompt": "We would like to request your feedback on the performance of two AI assistants in response to the user question displayed above. The user asks the question on observing an image. For your reference, the visual content in the image is represented with five descriptive sentences describing the same image and the bounding box coordinates of each object in the scene. These coordinates are in the form of bounding boxes, represented as (x1, y1, x2, y2) with floating numbers ranging from 0 to 1. These values correspond to the top left x, top left y, bottom right x, and bottom right y. \nPlease rate the helpfulness, relevance, accuracy, level of details of their responses. Each assistant receives an overall score on a scale of 1 to 10, where a higher score indicates better overall performance.\nPlease first output a single line containing only two values indicating the scores for Assistant 1 and 2, respectively. The two scores are separated by a space.\nIn the subsequent line, please provide a comprehensive explanation of your evaluation, avoiding any potential bias and ensuring that the order in which the responses were presented does not affect your judgment."}, + "llava_bench_conv": {"role": "Assistant", "prompt": "We would like to request your feedback on the performance of two AI assistants in response to the user question displayed above. The user asks the question on observing an image. For your reference, the visual content in the image is represented with a few sentences describing the image. \nPlease rate the helpfulness, relevance, accuracy, level of details of their responses. Each assistant receives an overall score on a scale of 1 to 10, where a higher score indicates better overall performance.\nPlease first output a single line containing only two values indicating the scores for Assistant 1 and 2, respectively. The two scores are separated by a space.\nIn the subsequent line, please provide a comprehensive explanation of your evaluation, avoiding any potential bias and ensuring that the order in which the responses were presented does not affect your judgment."}, + "llava_bench_detail": {"role": "Assistant", "prompt": "We would like to request your feedback on the performance of two AI assistants in response to the user question displayed above. The user asks the question on observing an image. For your reference, the visual content in the image is represented with a few sentences describing the image. \nPlease rate the helpfulness, relevance, accuracy, level of details of their responses. Each assistant receives an overall score on a scale of 1 to 10, where a higher score indicates better overall performance.\nPlease first output a single line containing only two values indicating the scores for Assistant 1 and 2, respectively. The two scores are separated by a space.\nIn the subsequent line, please provide a comprehensive explanation of your evaluation, avoiding any potential bias and ensuring that the order in which the responses were presented does not affect your judgment."}, + "llava_bench_complex": {"role": "Assistant", "prompt": "We would like to request your feedback on the performance of two AI assistants in response to the user question displayed above. The user asks the question on observing an image. For your reference, the visual content in the image is represented with a few sentences describing the image. \nPlease rate the helpfulness, relevance, accuracy, level of details of their responses. Each assistant receives an overall score on a scale of 1 to 10, where a higher score indicates better overall performance.\nPlease first output a single line containing only two values indicating the scores for Assistant 1 and 2, respectively. The two scores are separated by a space.\nIn the subsequent line, please provide a comprehensive explanation of your evaluation, avoiding any potential bias and ensuring that the order in which the responses were presented does not affect your judgment."} +} \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/russian_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/russian_llava_in_the_wild.yaml new file mode 100644 index 00000000..31e29ed8 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/russian_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: russian + token: True +task: "llava_in_the_wild_russian" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/spanish_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/spanish_llava_in_the_wild.yaml new file mode 100644 index 00000000..ac614bde --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/spanish_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: spanish + token: True +task: "llava_in_the_wild_spanish" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/urdu_llava_in_the_wild.yaml b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/urdu_llava_in_the_wild.yaml new file mode 100644 index 00000000..c30dda11 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/urdu_llava_in_the_wild.yaml @@ -0,0 +1,6 @@ +dataset_path: "gagan3012/multilingual-llava-bench" +dataset_kwargs: + config: urdu + token: True +task: "llava_in_the_wild_urdu" +include: _default_template.yaml \ No newline at end of file diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/utils.py b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/utils.py new file mode 100644 index 00000000..6666de45 --- /dev/null +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/utils.py @@ -0,0 +1,197 @@ +import json +import logging +import os +import requests +import numpy as np +import openai +from openai import OpenAI +import time +import yaml +from pathlib import Path +from copy import deepcopy + +eval_logger = logging.getLogger("lmms-eval") +NUM_SECONDS_TO_SLEEP = 5 + +LLAVA_W_METRICS = ["gpt_eval_llava_conv", "gpt_eval_llava_detail", "gpt_eval_llava_complex"] + +rule_dict = json.load(open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "rule.json"), "r")) + +with open(Path(__file__).parent / "_default_template.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + + config = yaml.safe_load("".join(safe_data)) + +GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] + +API_TYPE = os.getenv("API_TYPE", "openai") + +if API_TYPE == "openai": + API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") + API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") + headers = { + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json", + } +elif API_TYPE == "azure": + API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") + API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") + headers = { + "api-key": API_KEY, + "Content-Type": "application/json", + } + + +def get_eval(content: str, max_tokens: int, retries: int = 5): + global headers + + messages = [ + { + "role": "system", + "content": "You are a helpful and precise assistant for checking the quality of the answer.", + }, + {"role": "user", "content": content}, + ] + + payload = { + "model": GPT_EVAL_MODEL_NAME, + "messages": messages, + "temperature": 0.2, + "max_tokens": max_tokens, + } + + for attempt in range(retries): + try: + response = requests.post(API_URL, headers=headers, json=payload, timeout=60) + response.raise_for_status() + response_data = response.json() + + content = response_data["choices"][0]["message"]["content"].strip() + if content != "": + return content, response_data["model"] + break # If successful, break out of the loop + + except Exception as e: + eval_logger.info(f"Attempt {attempt + 1} failed with error: {e}") + if attempt < retries: # If we have retries left, sleep and then continue to next attempt + time.sleep(NUM_SECONDS_TO_SLEEP) + else: # If this was the last attempt, log and return empty + eval_logger.error(f"All {retries} attempts failed. Last error message: {e}") + return "", "" + return "", "" + + +def parse_score(review): + try: + score_pair = review.split("\n")[0] + score_pair = score_pair.replace(",", " ") + sp = score_pair.split(" ") + if len(sp) == 2: + return [float(sp[0]), float(sp[1])] + else: + eval_logger.debug(f"Can not split: {review}. Returning [-1, -1]") + return [-1, -1] + except Exception as e: + eval_logger.debug(f"Error: {e}. Returning [-1, -1]") + return [-1, -1] + + +def llava_doc_to_visual(doc): + return [doc["image"].convert("RGB")] + + +def llava_doc_to_text(doc, model_specific_prompt_kwargs=None): + if model_specific_prompt_kwargs is None: + model_specific_prompt_kwargs = {} + pre_prompt = model_specific_prompt_kwargs.get("pre_prompt", "") + post_prompt = model_specific_prompt_kwargs.get("post_prompt", "") + return f"{pre_prompt}{doc['question']}{post_prompt}" + + +def llava_process_results(doc, result): + """ + Args: + doc: a instance of the eval dataset + results: [pred] + Returns: + a dictionary with key: metric name (in this case coco_bleu), value: metric value + """ + try: + question = doc.get("question", "") + ans1 = doc.get("gpt_answer", "") + ans2 = result[0] if result else "" + captions = doc.get("caption", []) + context = "\n".join(captions) if isinstance(captions, list) else captions + category = "llava_bench_" + doc.get("category", "") + rule = rule_dict.get(category, {}) + prompt = rule.get("prompt", "") + role = rule.get("role", "user") + content = f"[Context]\n{context}\n\n" f"[Question]\n{question}\n\n" f"[{role} 1]\n{ans1}\n\n[End of {role} 1]\n\n" f"[{role} 2]\n{ans2}\n\n[End of {role} 2]\n\n" f"[System]\n{prompt}\n\n" + + review, model_name = get_eval(content, 1024) + scores = parse_score(review) + except Exception as e: + eval_logger.error(f"Error for Question ID: {doc.get('question_id', 'Unknown')}: {e}") + review = "Failed to Get a Proper Review." + model_name = "Failed Request" + scores = [-1, -1] + + metric = f"gpt_eval_llava_{doc.get('category', 'all')}" + category_review_dict = {"question": question, "ans1": ans1, "ans2": ans2, "context": context, "category": category, "review": review, "scores": scores, "eval_model": model_name, "content": content} + + non_category_review_dict = deepcopy(category_review_dict) + non_category_review_dict["scores"] = [-999, -999] + + data_dict = {} + for m in LLAVA_W_METRICS: + if m == metric: + data_dict[m] = category_review_dict + else: + data_dict[m] = non_category_review_dict + data_dict["gpt_eval_llava_all"] = category_review_dict + + # return {"gpt_eval_llava_all": review_dict} + return data_dict + + +def llava_conv_aggregation(results): + return llava_aggregation(results, "conv") + + +def llava_complex_aggregation(results): + return llava_aggregation(results, "complex") + + +def llava_detail_aggregation(results): + return llava_aggregation(results, "detail") + + +def llava_all_aggregation(results): + return llava_aggregation(results, "all") + + +def llava_aggregation(results, category): + try: + scores = [] + for result in results: + if -999 in result["scores"]: + continue + scores.append(result["scores"]) + + stats = np.asarray(scores).mean(0).tolist() + stats = [round(x, 3) for x in stats] + # gpt4_score_percentage = stats[0] * 10 + # model_score_percentage = stats[1] * 10 + # eval_logger.info(f"Category: {category}") + # eval_logger.info(f"GPT4 Score: {gpt4_score_percentage:.1f}%") + # eval_logger.info(f"Model Score: {model_score_percentage:.1f}%") + # eval_logger.info("=========================") + return round(stats[1] / stats[0] * 100, 1) + except Exception as e: + eval_logger.info(f"Error in llava_aggregation: {e}, and in category: {category}") + return None diff --git a/lmms_eval/tasks/ok_vqa/_default_template_vqa_yaml b/lmms_eval/tasks/ok_vqa/_default_template_vqa_yaml index 8d74eb11..a6950129 100755 --- a/lmms_eval/tasks/ok_vqa/_default_template_vqa_yaml +++ b/lmms_eval/tasks/ok_vqa/_default_template_vqa_yaml @@ -13,7 +13,7 @@ metric_list: ignore_case: true ignore_punctuation: true - metric: submission - aggregation: !function utils.ok_vqa_aggreate_submissions + aggregation: !function utils.ok_vqa_aggregate_submissions higher_is_better: true process_results: !function utils.ok_vqa_process_results model_specific_prompt_kwargs: diff --git a/lmms_eval/tasks/ok_vqa/utils.py b/lmms_eval/tasks/ok_vqa/utils.py index 52faa11d..f1bb7742 100755 --- a/lmms_eval/tasks/ok_vqa/utils.py +++ b/lmms_eval/tasks/ok_vqa/utils.py @@ -61,7 +61,7 @@ def ok_vqa_doc_to_text(doc, model_specific_prompt_kwargs=None): return f"{pre_prompt}{question}{post_prompt}" -def ok_vqa_aggreate_submissions(results, args): +def ok_vqa_aggregate_submissions(results, args): now_date_time = datetime.datetime.now().strftime("%Y-%m%d-%H%M-%S") file = f"ok_vqa-test-submission-{now_date_time}.json" path = generate_submission_file(file, args) diff --git a/lmms_eval/tasks/pope/pope_adv.yaml b/lmms_eval/tasks/pope/pope_adv.yaml new file mode 100644 index 00000000..9a185723 --- /dev/null +++ b/lmms_eval/tasks/pope/pope_adv.yaml @@ -0,0 +1,35 @@ +dataset_path: lmms-lab/POPE +dataset_name: Full +dataset_kwargs: + token: True +task: "pope_adv" +test_split: adversarial +output_type: generate_until +doc_to_visual: !function utils.pope_doc_to_visual +doc_to_text: !function utils.pope_doc_to_text +doc_to_target: "answer" +generation_kwargs: + max_new_tokens: 128 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.pope_process_results +metric_list: + - metric: pope_accuracy + aggregation: !function utils.pope_aggregate_accuracy + higher_is_better: true + - metric: pope_precision + aggregation: !function utils.pope_aggregate_precision + higher_is_better: true + - metric: pope_recall + aggregation: !function utils.pope_aggregate_recall + higher_is_better: true + - metric: pope_f1_score + aggregation: !function utils.pope_aggregate_f1_score + higher_is_better: true + - metric: pope_yes_ratio + aggregation: !function utils.pope_aggregate_yes_ratio + higher_is_better: true +metadata: + - version: 0.0 \ No newline at end of file diff --git a/lmms_eval/tasks/pope/pope_full.yaml b/lmms_eval/tasks/pope/pope_full.yaml new file mode 100644 index 00000000..d43c4f32 --- /dev/null +++ b/lmms_eval/tasks/pope/pope_full.yaml @@ -0,0 +1,5 @@ +group : pope_full +task: + - pope_adv + - pope_pop + - pope_random \ No newline at end of file diff --git a/lmms_eval/tasks/pope/pope_pop.yaml b/lmms_eval/tasks/pope/pope_pop.yaml new file mode 100644 index 00000000..1f5cf658 --- /dev/null +++ b/lmms_eval/tasks/pope/pope_pop.yaml @@ -0,0 +1,35 @@ +dataset_path: lmms-lab/POPE +dataset_name: Full +dataset_kwargs: + token: True +task: "pope_pop" +test_split: popular +output_type: generate_until +doc_to_visual: !function utils.pope_doc_to_visual +doc_to_text: !function utils.pope_doc_to_text +doc_to_target: "answer" +generation_kwargs: + max_new_tokens: 128 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.pope_process_results +metric_list: + - metric: pope_accuracy + aggregation: !function utils.pope_aggregate_accuracy + higher_is_better: true + - metric: pope_precision + aggregation: !function utils.pope_aggregate_precision + higher_is_better: true + - metric: pope_recall + aggregation: !function utils.pope_aggregate_recall + higher_is_better: true + - metric: pope_f1_score + aggregation: !function utils.pope_aggregate_f1_score + higher_is_better: true + - metric: pope_yes_ratio + aggregation: !function utils.pope_aggregate_yes_ratio + higher_is_better: true +metadata: + - version: 0.0 \ No newline at end of file diff --git a/lmms_eval/tasks/pope/pope_random.yaml b/lmms_eval/tasks/pope/pope_random.yaml new file mode 100644 index 00000000..c635f2ee --- /dev/null +++ b/lmms_eval/tasks/pope/pope_random.yaml @@ -0,0 +1,35 @@ +dataset_path: lmms-lab/POPE +dataset_name: Full +dataset_kwargs: + token: True +task: "pope_random" +test_split: random +output_type: generate_until +doc_to_visual: !function utils.pope_doc_to_visual +doc_to_text: !function utils.pope_doc_to_text +doc_to_target: "answer" +generation_kwargs: + max_new_tokens: 128 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +process_results: !function utils.pope_process_results +metric_list: + - metric: pope_accuracy + aggregation: !function utils.pope_aggregate_accuracy + higher_is_better: true + - metric: pope_precision + aggregation: !function utils.pope_aggregate_precision + higher_is_better: true + - metric: pope_recall + aggregation: !function utils.pope_aggregate_recall + higher_is_better: true + - metric: pope_f1_score + aggregation: !function utils.pope_aggregate_f1_score + higher_is_better: true + - metric: pope_yes_ratio + aggregation: !function utils.pope_aggregate_yes_ratio + higher_is_better: true +metadata: + - version: 0.0 \ No newline at end of file diff --git a/lmms_eval/tasks/qbench/abench_dev.yaml b/lmms_eval/tasks/qbench/abench_dev.yaml new file mode 100644 index 00000000..8b44b5f7 --- /dev/null +++ b/lmms_eval/tasks/qbench/abench_dev.yaml @@ -0,0 +1,22 @@ +dataset_path: q-future/A-Bench-HF +task: "abench_dev" +test_split: dev +output_type: generate_until +doc_to_visual: !function utils.q_bench_doc_to_visual +doc_to_text: !function utils.q_bench_doc_to_text +doc_to_target: "correct_choice" +generation_kwargs: + max_new_tokens: 32 + temperature: 0 + do_sample: False +process_results: !function utils.a_bench_process_results +metric_list: + - metric: abench_acc + aggregation: !function utils.a_bench_aggregate_results + higher_is_better: true + +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "Answer with the option's letter from the given choices directly.\n" + \ No newline at end of file diff --git a/lmms_eval/tasks/qbench/qbench2_dev.yaml b/lmms_eval/tasks/qbench/qbench2_dev.yaml new file mode 100644 index 00000000..7412cb25 --- /dev/null +++ b/lmms_eval/tasks/qbench/qbench2_dev.yaml @@ -0,0 +1,22 @@ +dataset_path: q-future/Q-Bench2-HF +task: "qbench2_dev" +test_split: dev +output_type: generate_until +doc_to_visual: !function utils.q_bench_doc_to_visual +doc_to_text: !function utils.q_bench_doc_to_text +doc_to_target: "correct_choice" +generation_kwargs: + max_new_tokens: 32 + temperature: 0 + do_sample: False +process_results: !function utils.q_bench_process_results +metric_list: + - metric: qbench_acc + aggregation: !function utils.q_bench_aggregate_results + higher_is_better: true + +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "Answer with the option's letter from the given choices directly.\n" + \ No newline at end of file diff --git a/lmms_eval/tasks/qbench/qbench_dev.yaml b/lmms_eval/tasks/qbench/qbench_dev.yaml new file mode 100644 index 00000000..be901333 --- /dev/null +++ b/lmms_eval/tasks/qbench/qbench_dev.yaml @@ -0,0 +1,22 @@ +dataset_path: q-future/Q-Bench-HF +task: "qbench_dev" +test_split: dev +output_type: generate_until +doc_to_visual: !function utils.q_bench_doc_to_visual +doc_to_text: !function utils.q_bench_doc_to_text +doc_to_target: "correct_choice" +generation_kwargs: + max_new_tokens: 32 + temperature: 0 + do_sample: False +process_results: !function utils.q_bench_process_results +metric_list: + - metric: qbench_acc + aggregation: !function utils.q_bench_aggregate_results + higher_is_better: true + +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "Answer with the option's letter from the given choices directly.\n" + \ No newline at end of file diff --git a/lmms_eval/tasks/qbench/qbenchs_dev.yaml b/lmms_eval/tasks/qbench/qbenchs_dev.yaml new file mode 100644 index 00000000..3f7fc914 --- /dev/null +++ b/lmms_eval/tasks/qbench/qbenchs_dev.yaml @@ -0,0 +1,5 @@ +group: qbenchs_dev +task: +- qbench_dev +- qbench2_dev +- abench_dev diff --git a/lmms_eval/tasks/qbench/utils.py b/lmms_eval/tasks/qbench/utils.py new file mode 100644 index 00000000..609efb00 --- /dev/null +++ b/lmms_eval/tasks/qbench/utils.py @@ -0,0 +1,249 @@ +import json +import logging +import re +from collections import Counter, defaultdict +from lmms_eval.tasks._task_utils.file_utils import generate_submission_file + + +def q_bench_doc_to_text(doc, model_specific_prompt_kwargs): + candidates = [] + for i in range(4): + candidate = doc.get(f"option{i}") + if candidate != "N/A": + candidates.append(candidate) + + question = doc["question"] + "\n" + "\n".join([". ".join([chr(ord("A") + i), candidate]) for i, candidate in enumerate(candidates)]) + pre_prompt = model_specific_prompt_kwargs["pre_prompt"] + post_prompt = model_specific_prompt_kwargs["post_prompt"] + return f"{pre_prompt}{question}\n{post_prompt}" + + +def q_bench_doc_to_visual(doc): + if "image2" not in doc: + return [doc["image"].convert("RGB")] + else: + return [doc["image1"].convert("RGB"), doc["image2"].convert("RGB")] + + +def get_multi_choice_info(options): + """ + Given the list of options for multiple choice question + Return the index2ans and all_choices + https://github.com/MMMU-Benchmark/MMMU/blob/51ce7f3e829c16bb44bc5445782686b4c3508794/eval/data_utils.py#L54 + """ + + start_chr = "A" + all_choices = [] + index2ans = {} + for i, option in enumerate(options): + index2ans[chr(ord(start_chr) + i)] = option + all_choices.append(chr(ord(start_chr) + i)) + + return index2ans, all_choices + + +def parse_multi_choice_response(response, all_choices, index2ans): + """ + Parse the prediction from the generated response. + Return the predicted index e.g., A, B, C, D. + https://github.com/MMMU-Benchmark/MMMU/blob/51ce7f3e829c16bb44bc5445782686b4c3508794/eval/eval_utils.py#L10 + """ + for char in [",", ".", "!", "?", ";", ":", "'"]: + response = response.strip(char) + response = " " + response + " " # add space to avoid partial match + + index_ans = True + ans_with_brack = False + candidates = [] + for choice in all_choices: # e.g., (A) (B) (C) (D) + if f"({choice})" in response: + candidates.append(choice) + ans_with_brack = True + + if len(candidates) == 0: + for choice in all_choices: # e.g., A B C D + if f"{choice} " in response: + candidates.append(choice) + + if len(candidates) == 0: + for choice in all_choices: # e.g., A. B. C. D. + if f"{choice}." in response: + candidates.append(choice) + + # if all above doesn't get candidates, check if the content is larger than 5 tokens and try to parse the example + if len(candidates) == 0 and len(response.split()) > 5: + for index, ans in index2ans.items(): + if ans.lower() in response.lower(): + candidates.append(index) + index_ans = False # it's content ans. + + if len(candidates) == 0: # still not get answer, randomly choose one. + pred_index = random.choice(all_choices) + elif len(candidates) > 1: + start_indexes = [] + if index_ans: + if ans_with_brack: + for can in candidates: + index = response.rfind(f"({can})") + start_indexes.append(index) # -1 will be ignored anyway + # start_indexes = [generated_response.index(f'({can})') for can in candidates] + else: + for can in candidates: + index = response.rfind(f" {can} ") + start_indexes.append(index) + else: + for can in candidates: + index = response.lower().rfind(index2ans[can].lower()) + start_indexes.append(index) + # get the last one + pred_index = candidates[np.argmax(start_indexes)] + else: # if only one candidate, use it. + pred_index = candidates[0] + + return pred_index + + +def evaluate_q_bench(samples): + pred_correct = 0 + judge_dict = dict() + for sample in samples: + gold_i = sample["answer"] + pred_i = sample["parsed_pred"] + correct = eval_multi_choice(gold_i, pred_i) + + if correct: + judge_dict[sample["id"]] = "Correct" + pred_correct += 1 + else: + judge_dict[sample["id"]] = "Wrong" + + if len(samples) == 0: + return {"acc": 0} + return judge_dict, {"acc": pred_correct / len(samples)} + + +def eval_multi_choice(gold_i, pred_i): + correct = False + # only they are exactly the same, we consider it as correct + if isinstance(gold_i, list): + for answer in gold_i: + if answer == pred_i: + correct = True + break + else: # gold_i is a string + if gold_i == pred_i: + correct = True + return correct + + +def calculate_ins_level_acc(results): + """Calculate the instruction level accuracy for given Subject results + https://github.com/MMMU-Benchmark/MMMU/blob/51ce7f3e829c16bb44bc5445782686b4c3508794/eval/eval_utils.py#L246 + """ + acc = 0 + ins_num = 0 + for cat_results in results.values(): + acc += cat_results["acc"] * cat_results["num_example"] + ins_num += cat_results["num_example"] + if ins_num == 0: + return 0 + return acc / ins_num + + +def q_bench_process_results(doc, results): + pred = results[0] + all_choices = [] + index2ans = {} + for i in range(4): + option = doc.get(f"option{i}") + if option == "N/A": + break + index2ans[chr(ord("A") + i)] = option + all_choices.append(chr(ord("A") + i)) + + parsed_pred = parse_multi_choice_response(pred, all_choices, index2ans) + id = doc["id"] + qbench_acc = {"id": id, "question_concern": doc["question_concern"], "question_type": doc["question_type"], "answer": doc["correct_choice"], "parsed_pred": parsed_pred} + return { + "qbench_acc": qbench_acc, + "submission": { + id: pred, + }, + } + + +concern_list = ["Global Distortion", "Global Others", "Local Distortion", "Local Others"] +question_list = ["Yes/No", "How", "What"] + + +def q_bench_aggregate_results(results): + evaluation_result = {} + subset_to_eval_samples = defaultdict(list) + for result in results: + subset_to_eval_samples[concern_list[result["question_concern"]]].append(result) + subset_to_eval_samples[question_list[result["question_type"]]].append(result) + for subset, sub_eval_samples in subset_to_eval_samples.items(): + judge_dict, metric_dict = evaluate_q_bench(sub_eval_samples) + metric_dict.update({"num_example": len(sub_eval_samples)}) + evaluation_result[subset] = metric_dict + printable_results = {} + + for cat_name, cat_results in evaluation_result.items(): + printable_results[cat_name] = { + "num": int(cat_results["num_example"]), + "acc": round(cat_results["acc"], 5), + } + all_ins_acc = calculate_ins_level_acc(evaluation_result) + printable_results["Overall"] = { + "num": sum([cat_results["num_example"] for cat_results in evaluation_result.values()]), + "acc": round(all_ins_acc, 5), + } + print(printable_results) + return printable_results["Overall"]["acc"] + + +def a_bench_process_results(doc, results): + pred = results[0] + all_choices = [] + index2ans = {} + for i in range(4): + option = doc.get(f"option{i}") + if option == "N/A": + break + index2ans[chr(ord("A") + i)] = option + all_choices.append(chr(ord("A") + i)) + + parsed_pred = parse_multi_choice_response(pred, all_choices, index2ans) + id = doc["id"] + abench_acc = {"id": id, "category": doc["category"], "answer": doc["correct_choice"], "parsed_pred": parsed_pred} + return { + "abench_acc": abench_acc, + "submission": { + id: pred, + }, + } + + +def a_bench_aggregate_results(results): + evaluation_result = {} + subset_to_eval_samples = defaultdict(list) + for result in results: + subset_to_eval_samples[result["category"]].append(result) + for subset, sub_eval_samples in subset_to_eval_samples.items(): + judge_dict, metric_dict = evaluate_q_bench(sub_eval_samples) + metric_dict.update({"num_example": len(sub_eval_samples)}) + evaluation_result[subset] = metric_dict + printable_results = {} + + for cat_name, cat_results in evaluation_result.items(): + printable_results[cat_name] = { + "num": int(cat_results["num_example"]), + "acc": round(cat_results["acc"], 5), + } + all_ins_acc = calculate_ins_level_acc(evaluation_result) + printable_results["Overall"] = { + "num": sum([cat_results["num_example"] for cat_results in evaluation_result.values()]), + "acc": round(all_ins_acc, 5), + } + print(printable_results) + return printable_results["Overall"]["acc"] diff --git a/lmms_eval/tasks/screenspot/README.md b/lmms_eval/tasks/screenspot/README.md new file mode 100644 index 00000000..840b36c6 --- /dev/null +++ b/lmms_eval/tasks/screenspot/README.md @@ -0,0 +1,54 @@ +# SceenSpot + +## GUI Grounding Benchmark: ScreenSpot + +ScreenSpot is an evaluation benchmark for GUI grounding, comprising over 1200 instructions from iOS, Android, macOS, Windows and Web environments, along with annotated element types (Text or Icon/Widget). + + +## Groups + +- `screenspot`: This group bundles both the original grounding task and the new instruction generation task. + +## Tasks +- `screenspot_rec_test`: the original evaluation of `{img} {instruction} --> {bounding box}` called grounding or Referring Expression Completion (REC); +- `screenspot_reg_test`: the new evaluation of `{img} {bounding box} --> {instruction}` called instruction generation or Referring Expression Generation (REG). + +### REC Metrics + +REC/Grounding requires that a model outputs a bounding box for the target element in the image. The evaluation metrics are: +- `IoU`: Intersection over Union (IoU) between the predicted bounding box and the ground truth bounding box. +- `ACC@IoIU`: We use `IoU` to create `ACC@IoU` metrics at different IoU thresholds where an output with an IoU above the threshold is considered correct. +- `CENTER ACC`: The predicted bounding box is considered correct if the center of the predicted bounding box is within the ground truth bounding box. This is what's reported in the paper. + +### REG Metrics + +REG/Generation requires that a model outputs the instruction that describes the target element in the image. Currently, this element will be highlighted in red in the image. The evaluation metrics are: +- `CIDEr`: The CIDEr metric is used to evaluate the quality of the generated instruction. As the paper doesn't consider this task, we have selected this metric as a standard for evaluating the quality of the generated instruction. This matches with what other works like ScreenAI have done for instruction generation for RICO datasets. + +## Baseline Scores + +As a Baseline, here is how LLaVA-v1.5-7b performs on the ScreenSpot dataset: +- `IoU`: 0.051 +- `ACC@0.1`: 0.195 +- `ACC@0.3`: 0.042 +- `ACC@0.5`: 0.006 +- `ACC@0.7`: 0.000 +- `ACC@0.9`: 0.000 +- `CENTER ACC`: 0.097 +- `CIDEr`: 0.097 + +## References + +- ArXiv: [SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents](https://arxiv.org/abs/2401.10935) +- GitHub: [njucckevin/SeeClick](https://github.com/njucckevin/SeeClick) + +```bibtex +@misc{cheng2024seeclick, + title={SeeClick: Harnessing GUI Grounding for Advanced Visual GUI Agents}, + author={Kanzhi Cheng and Qiushi Sun and Yougang Chu and Fangzhi Xu and Yantao Li and Jianbing Zhang and Zhiyong Wu}, + year={2024}, + eprint={2401.10935}, + archivePrefix={arXiv}, + primaryClass={cs.HC} +} +``` diff --git a/lmms_eval/tasks/screenspot/_default_template_rec_yaml b/lmms_eval/tasks/screenspot/_default_template_rec_yaml new file mode 100644 index 00000000..7f9aad54 --- /dev/null +++ b/lmms_eval/tasks/screenspot/_default_template_rec_yaml @@ -0,0 +1,33 @@ +dataset_path: rootsautomation/ScreenSpot +output_type: generate_until +doc_to_visual: !function utils_rec.screenspot_rec_doc_to_visual +doc_to_text: !function utils_rec.screenspot_rec_doc_to_text +doc_to_target: "bbox" +generation_kwargs: + until: + - "ASSISTANT:" +process_results: !function utils_rec.screenspot_rec_process_result +metric_list: + - metric: screenspot_IoU + aggregation : !function utils_rec.screenspot_rec_iou + higher_is_better : true + - metric: screenspot_ACC@0.1 + aggregation : !function utils_rec.screenspot_rec_acc01 + higher_is_better : true + - metric: screenspot_ACC@0.3 + aggregation : !function utils_rec.screenspot_rec_acc03 + higher_is_better : true + - metric: screenspot_ACC@0.5 + aggregation : !function utils_rec.screenspot_rec_acc05 + higher_is_better : true + - metric: screenspot_ACC@0.7 + aggregation : !function utils_rec.screenspot_rec_acc07 + higher_is_better : true + - metric: screenspot_ACC@0.9 + aggregation : !function utils_rec.screenspot_rec_acc09 + higher_is_better : true + - metric: screenspot_Center_ACC + aggregation : !function utils_rec.screenspot_rec_center_acc + higher_is_better : true +metadata: + version: '0.0' \ No newline at end of file diff --git a/lmms_eval/tasks/screenspot/_default_template_reg_yaml b/lmms_eval/tasks/screenspot/_default_template_reg_yaml new file mode 100644 index 00000000..0ef72057 --- /dev/null +++ b/lmms_eval/tasks/screenspot/_default_template_reg_yaml @@ -0,0 +1,15 @@ +dataset_path: rootsautomation/ScreenSpot +output_type: generate_until +doc_to_visual: !function utils.screenspot_bbox_doc_to_visual +doc_to_text: !function utils.screenspot_doc_to_text +doc_to_target: "instruction" +generation_kwargs: + until: + - "ASSISTANT:" +process_results: !function utils.screenspot_process_result +metric_list: + - metric: screenspot_CIDEr + aggregation : !function utils.screenspot_cider + higher_is_better : true +metadata: + version: '0.0' \ No newline at end of file diff --git a/lmms_eval/tasks/screenspot/_screenspot.yaml b/lmms_eval/tasks/screenspot/_screenspot.yaml new file mode 100644 index 00000000..c31f58de --- /dev/null +++ b/lmms_eval/tasks/screenspot/_screenspot.yaml @@ -0,0 +1,4 @@ +group: screenspot +task: +- screenspot_reg_test +- screenspot_rec_test \ No newline at end of file diff --git a/lmms_eval/tasks/screenspot/screenspot_rec_test.yaml b/lmms_eval/tasks/screenspot/screenspot_rec_test.yaml new file mode 100644 index 00000000..baccc82a --- /dev/null +++ b/lmms_eval/tasks/screenspot/screenspot_rec_test.yaml @@ -0,0 +1,4 @@ +group: screenspot_rec +task: screenspot_rec_test +include: _default_template_rec_yaml +test_split: test diff --git a/lmms_eval/tasks/screenspot/screenspot_reg_test.yaml b/lmms_eval/tasks/screenspot/screenspot_reg_test.yaml new file mode 100644 index 00000000..ab064712 --- /dev/null +++ b/lmms_eval/tasks/screenspot/screenspot_reg_test.yaml @@ -0,0 +1,4 @@ +group: screenspot_reg +task: screenspot_reg_test +include: _default_template_reg_yaml +test_split: test diff --git a/lmms_eval/tasks/screenspot/utils.py b/lmms_eval/tasks/screenspot/utils.py new file mode 100644 index 00000000..d5d53df5 --- /dev/null +++ b/lmms_eval/tasks/screenspot/utils.py @@ -0,0 +1,126 @@ +from PIL import ImageDraw +from pycocoevalcap.eval import COCOEvalCap, Bleu, Meteor, Rouge, Cider, Spice +from pycocoevalcap.tokenizer.ptbtokenizer import PTBTokenizer +from pycocotools.coco import COCO + +# COCO_METRICS = ["Bleu_4", "Bleu_3", "Bleu_2", "Bleu_1", "METEOR", "ROUGE_L", "CIDEr"] # , "SPICE"] +COCO_METRICS = ["CIDEr"] + +import logging + +eval_logger = logging.getLogger("lmms-eval") + + +def screenspot_bbox_doc_to_visual(doc): + bbox = doc["bbox"] + image = doc["image"].convert("RGB") + draw = ImageDraw.Draw(image) + bbox_xy = [bbox[0], bbox[1], bbox[2], bbox[3]] + draw.rectangle(bbox_xy, outline="red", width=3) + return [image.convert("RGB")] + + +def screenspot_process_result(doc, result): + """ + Args: + doc: a instance of the eval dataset + results: [pred] + Returns: + a dictionary with key: metric name (in this case coco_bleu), value: metric value + """ + pred = result[0] if len(result) > 0 else "" + ann_id = doc["file_name"] + data_dict = {"instruction": doc["instruction"], "pred": pred, "ann_id": ann_id, "data_type": doc["data_type"], "data_source": doc["data_source"]} + return {f"screenspot_{metric}": data_dict for metric in COCO_METRICS} + + +def screenspot_doc_to_text(doc): + return f"Direct a user to interact with the highlighted region [{doc['bbox'][0]:.2f}, {doc['bbox'][1]:.2f}, {doc['bbox'][2]:.2f}, {doc['bbox'][3]:.2f}]." + + +def screenspot_aggregation_result(results, metric): + # scorers = [(Bleu(4), "Bleu_1"), (Bleu(4), "Bleu_2"), (Bleu(4), "Bleu_3"), (Bleu(4), "Bleu_4"), (Meteor(), "METEOR"), (Rouge(), "ROUGE_L"), (Cider(), "CIDEr"), (Spice(), "SPICE")] + scorers = [(Cider(), "CIDEr")] + scorers_dict = {s[1]: s for s in scorers} + + stored_results = [] + # In order to make the coco eval tools to successfully create index + # We need at least two dict in the dataset + # 'annotation' and 'images' + # 'annotation' exactly reproduce the original annotation + # 'images' however only need the image id which is contained in the file name + dataset = {"annotations": [], "images": []} + idx = 0 + ann_id = 0 + for result in results: + stored_results.append({"image_id": idx, "caption": result["pred"]}) + # for s in result["answer"]: + dataset["annotations"].append({"image_id": idx, "caption": result["instruction"], "id": ann_id}) + ann_id += 1 + + dataset["images"].append({"id": idx}) + idx += 1 + + coco = COCO() + # Manually create index here + coco.dataset = dataset + coco.createIndex() + + coco_result = coco.loadRes(stored_results) + coco_eval = COCOEvalCap(coco, coco_result) + + imgIds = coco_eval.params["image_id"] + gts = {} + res = {} + for imgId in imgIds: + gts[imgId] = coco_eval.coco.imgToAnns[imgId] + res[imgId] = coco_eval.cocoRes.imgToAnns[imgId] + + eval_logger.info("tokenization...") + tokenizer = PTBTokenizer() + gts = tokenizer.tokenize(gts) + res = tokenizer.tokenize(res) + + eval_logger.info(f"Computing {metric} scores...") + + score, scores = scorers_dict[metric][0].compute_score(gts, res) + # coco_eval.setEval(score, metric) + + # When metric is one of the Bleu, score will be a list + if type(score) == list: + n = int(metric.split("_")[-1]) + score = score[n - 1] + + return score + + +def screenspot_bleu4(results): + return screenspot_aggregation_result(results, "Bleu_4") + + +def screenspot_bleu3(results): + return screenspot_aggregation_result(results, "Bleu_3") + + +def screenspot_bleu2(results): + return screenspot_aggregation_result(results, "Bleu_2") + + +def screenspot_bleu1(results): + return screenspot_aggregation_result(results, "Bleu_1") + + +def screenspot_meteor(results): + return screenspot_aggregation_result(results, "METEOR") + + +def screenspot_rougel(results): + return screenspot_aggregation_result(results, "ROUGE_L") + + +def screenspot_cider(results): + return screenspot_aggregation_result(results, "CIDEr") + + +def screenspot_spice(results): + return screenspot_aggregation_result(results, "SPICE") diff --git a/lmms_eval/tasks/screenspot/utils_rec.py b/lmms_eval/tasks/screenspot/utils_rec.py new file mode 100644 index 00000000..09539022 --- /dev/null +++ b/lmms_eval/tasks/screenspot/utils_rec.py @@ -0,0 +1,218 @@ +import re +import logging +from datasets import Dataset + +eval_logger = logging.getLogger("lmms-eval") + +REC_METRICS = ["IoU", "ACC@0.1", "ACC@0.3", "ACC@0.5", "ACC@0.7", "ACC@0.9", "Center_ACC"] + + +def screenspot_rec_doc_to_visual(doc): + # Image is presented as is + image = doc["image"].convert("RGB") + return [image.convert("RGB")] + + +def screenspot_rec_doc_to_text(doc): + return ( + "Bounding box coordinates are specified in the format (top-left x, top-left y, bottom-right x, bottom-right y). All values are floating point numbers bounded between 0 and 1 with two decimal places of precision (e.g., 0.15). Please provide the bounding box coordinates of the region that corresponds to the command: " + + doc["instruction"] + ) + + +def parse_float_sequence_within(input_str): + """ + Extract the first sequence of four floating-point numbers within square brackets from a string. + + Args: + input_str (str): A string that may contain a sequence of four floats within square brackets. + + Returns: + list: A list of four floats if the pattern is found, or a list of four zeros if the pattern is not found. + """ + # Define the regex pattern to find the first instance of four floats within square brackets + pattern = r"\[\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)\s*\]" + + # Use re.search to find the first match of the pattern in the input string + match = re.search(pattern, input_str) + + # If a match is found, convert the captured groups into a list of floats + if match: + return [float(match.group(i)) for i in range(1, 5)] + + # If the input does not contain the pattern, return the null float sequence + return [0, 0, 0, 0] + + +def screenspot_rec_process_result(doc, result): + """ + Args: + doc: a instance of the eval dataset + results: [pred] + Returns: + a dictionary with key: metric name, value: metric value + """ + pred = result[0] if len(result) > 0 else "" + pred = parse_float_sequence_within(pred) + ann_id = doc["file_name"] + data_dict = {"instruction": doc["instruction"], "pred": pred, "ann_id": ann_id, "bbox": doc["bbox"], "data_type": doc["data_type"], "data_source": doc["data_source"]} + return {f"screenspot_{metric}": data_dict for metric in REC_METRICS} + + +def compute_iou(box1, box2): + """ + Compute the Intersection over Union (IoU) of two bounding boxes. + + Parameters: + - box1 (list of float): Bounding box [x_min, y_min, x_max, y_max]. + - box2 (list of float): Bounding box [x_min, y_min, x_max, y_max]. + + Returns: + - float: IoU of box1 and box2. + """ + # Determine the coordinates of the intersection rectangle + x_left = max(box1[0], box2[0]) + y_top = max(box1[1], box2[1]) + x_right = min(box1[2], box2[2]) + y_bottom = min(box1[3], box2[3]) + + # Compute the area of intersection + intersection_area = max(0, x_right - x_left) * max(0, y_bottom - y_top) + + # Compute the area of both bounding boxes + box1_area = (box1[2] - box1[0]) * (box1[3] - box1[1]) + box2_area = (box2[2] - box2[0]) * (box2[3] - box2[1]) + + # Compute the area of the union + union_area = box1_area + box2_area - intersection_area + + # Compute the Intersection over Union + iou = intersection_area / union_area + + return iou + + +def compute_accuracy(box1, box2, threshold=0.5): + """ + Compute the accuracy of two bounding boxes based on a specified threshold. + + Parameters: + - box1 (list of float): Bounding box [x_min, y_min, x_max, y_max]. + - box2 (list of float): Bounding box [x_min, y_min, x_max, y_max]. + - threshold (float): Threshold for the IoU to consider the prediction correct. + + Returns: + - float: Accuracy of the prediction based on the IoU threshold. + """ + iou = compute_iou(box1, box2) + return iou >= threshold + + +def compute_center_accuracy(box1, box2): + """ + Compute if the center point of box 2 is within box 1. + + Parameters: + - box1 (list of float): Bounding box [x_min, y_min, x_max, y_max]. + - box2 (list of float): Bounding box [x_min, y_min, x_max, y_max]. + + Returns: + - bool: True if the center point of box 2 is within box 1, False otherwise. + """ + # Compute the center point of box 2 + center_x = (box2[0] + box2[2]) / 2 + center_y = (box2[1] + box2[3]) / 2 + + # Check if the center point is within box 1 + return box1[0] <= center_x <= box1[2] and box1[1] <= center_y <= box1[3] + + +def screenspot_rec_aggregation_result(results, metric): + """ + Aggregate the results of the screenspot evaluation task using the specified metric. + + Args: + - results (list of dict): List of result dictionaries. + - metric (str): Metric to use for aggregation. + + Returns: + - dict: Dictionary containing the aggregated results for the specified metric. + """ + scorers = { + "IoU": compute_iou, + "ACC@0.1": lambda x, y: compute_accuracy(x, y, 0.1), + "ACC@0.3": lambda x, y: compute_accuracy(x, y, 0.3), + "ACC@0.5": lambda x, y: compute_accuracy(x, y, 0.5), + "ACC@0.7": lambda x, y: compute_accuracy(x, y, 0.7), + "ACC@0.9": lambda x, y: compute_accuracy(x, y, 0.9), + "Center_ACC": compute_center_accuracy, + } + results_dict = { + metric: [], + metric + "-mobile_text": [], + metric + "-mobile_icon": [], + metric + "-web_text": [], + metric + "-web_icon": [], + metric + "-desktop_text": [], + metric + "-desktop_icon": [], + } + for result in results: + # Extract the ground truth and predicted bounding boxes + gt = result["bbox"] + pred = result["pred"] + + # Compute the specified metric between the ground truth and predicted bounding boxes + score = scorers[metric](gt, pred) + + results_dict[metric].append(score) + if result["data_type"] == "text": + if "ios" in result["data_source"] or "android" in result["data_source"]: + results_dict[metric + "-mobile_text"].append(score) + elif "macos" in result["data_source"] or "windows" in result["data_source"]: + results_dict[metric + "-desktop_text"].append(score) + else: + results_dict[metric + "-web_text"].append(score) + else: + if "ios" in result["data_source"] or "android" in result["data_source"]: + results_dict[metric + "-mobile_icon"].append(score) + elif "macos" in result["data_source"] or "windows" in result["data_source"]: + results_dict[metric + "-desktop_icon"].append(score) + else: + results_dict[metric + "-web_icon"].append(score) + + for key in results_dict: + if len(results_dict[key]) == 0: + results_dict[key] = 0 + else: + results_dict[key] = sum(results_dict[key]) / len(results_dict[key]) + + print(f"{key}: {results_dict[key]:0.4f}") + return results_dict[metric] + + +def screenspot_rec_iou(results): + return screenspot_rec_aggregation_result(results, "IoU") + + +def screenspot_rec_acc01(results): + return screenspot_rec_aggregation_result(results, "ACC@0.1") + + +def screenspot_rec_acc03(results): + return screenspot_rec_aggregation_result(results, "ACC@0.3") + + +def screenspot_rec_acc05(results): + return screenspot_rec_aggregation_result(results, "ACC@0.5") + + +def screenspot_rec_acc07(results): + return screenspot_rec_aggregation_result(results, "ACC@0.7") + + +def screenspot_rec_acc09(results): + return screenspot_rec_aggregation_result(results, "ACC@0.9") + + +def screenspot_rec_center_acc(results): + return screenspot_rec_aggregation_result(results, "Center_ACC") diff --git a/lmms_eval/tasks/sft_eval/_default_sft_eval_ocr_rec_template_yaml b/lmms_eval/tasks/sft_eval/_default_sft_eval_ocr_rec_template_yaml deleted file mode 100644 index b00317d6..00000000 --- a/lmms_eval/tasks/sft_eval/_default_sft_eval_ocr_rec_template_yaml +++ /dev/null @@ -1,23 +0,0 @@ -dataset_path: lmms-lab/sft-eval -output_type: generate_until -doc_to_visual: !function utils.sft_eval_doc_to_visual -doc_to_text: !function utils.sft_eval_doc_to_text -doc_to_target: "answer" -generation_kwargs: - max_new_tokens: 128 - until: - - "ASSISTANT:" -process_results: !function utils.process_result_ocr_rec -metric_list: - - metric: edit_distance - aggregation : !function utils.sft_eval_edit_dist_agg - higher_is_better : true - - metric: edit_acc - aggregation : !function utils.sft_eval_edit_dist_acc_agg - higher_is_better : true -metadata: - version: '0.0' -model_specific_prompt_kwargs: - default: - pre_prompt: "" - post_prompt: "" \ No newline at end of file diff --git a/lmms_eval/tasks/sft_eval/_default_sft_eval_rest_template_yaml b/lmms_eval/tasks/sft_eval/_default_sft_eval_rest_template_yaml deleted file mode 100644 index b658dfb4..00000000 --- a/lmms_eval/tasks/sft_eval/_default_sft_eval_rest_template_yaml +++ /dev/null @@ -1,20 +0,0 @@ -dataset_path: lmms-lab/sft-eval -output_type: generate_until -doc_to_visual: !function utils.sft_eval_doc_to_visual -doc_to_text: !function utils.sft_eval_doc_to_text -doc_to_target: "answer" -generation_kwargs: - max_new_tokens: 128 - until: - - "ASSISTANT:" -process_results: !function utils.process_result_rest -metric_list: - - metric: fuzzy_match - aggregation : !function utils.sft_eval_acc_agg - higher_is_better : true -metadata: - version: '0.0' -model_specific_prompt_kwargs: - default: - pre_prompt: "" - post_prompt: "" \ No newline at end of file diff --git a/lmms_eval/tasks/sft_eval/_generate_config.py b/lmms_eval/tasks/sft_eval/_generate_config.py deleted file mode 100644 index e1dbcb83..00000000 --- a/lmms_eval/tasks/sft_eval/_generate_config.py +++ /dev/null @@ -1,94 +0,0 @@ -import os -import yaml - -splits = [ - "sft-activity", - "sft-arts", - "sft-body", - "sft-car", - "sft-color", - "sft-commodity", - "sft-count", - "sft-daily", - "sft-engineer", - "sft-entertainment", - "sft-exist", - "sft-face", - "sft-food", - "sft-healthcare", - "sft-landmark", - "sft-logo", - "sft-natural", - "sft-ocr_qa_adv", - "sft-ocr_qa_chart", - "sft-ocr_qa_form", - "sft-ocr_qa_scene", - "sft-ocr_qa_screen", - "sft-ocr_rec_adv", - "sft-ocr_rec_doc", - "sft-ocr_rec_handwrite", - "sft-ocr_rec_markdown", - "sft-ocr_rec_scene", - "sft-ocr_rec_screen", - "sft-place", - "sft-position", - "sft-sport", - "sft-status", -] -dir_path = os.path.dirname(os.path.realpath(__file__)) - -local_name2official_name = { - "sft-ocr_rec_scene": "sft_ocr_scene_cn_eval", - "sft-ocr_rec_screen": "sft_ocr_screen_cn_eval", - "sft-ocr_rec_handwrite": "sft_ocr_handwrite_cn_eval", - "sft-ocr_rec_adv": "sft_ocr_adv_cn_eval", - "sft-ocr_rec_doc": "sft_ocr_doc_cn_eval", - "sft-ocr_qa_scene": "sft_ocr_sceneQA_cn_eval", - "sft-ocr_qa_screen": "sft_ocr_screenQA_cn_eval", - "sft-ocr_qa_adv": "sft_ocr_ecommerceQA_cn_eval", - "sft-ocr_rec_markdown": "sft_ocr_markdown_cn_eval", - "sft-ocr_qa_form": "sft_ocr_formQA_cn_eval", - "sft-ocr_qa_chart": "sft_ocr_chartQA_cn_eval", - "sft-face": "sft_celeb_cn_eval", - "sft-body": "sft_body_cn_eval", - "sft-count": "sft_count_cn_eval", - "sft-position": "sft_position_cn_eval", - "#": "sft_visualprompt_cn_eval", - "!": "sft_grounding_cn_eval", - "sft-exist": "sft_exist_cn_eval", - "sft-color": "sft_color_cn_eval", - "sft-status": "sft_status_cn_eval", - "sft-activity": "sft_activity_cn_eval", - "sft-place": "sft_place_cn_eval", - "sft-daily": "sft_daily_cn_eval", - "sft-arts": "sft_arts_cn_eval", - "sft-natural": "sft_natural_cn_eval", - "sft-engineer": "sft_engineer_cn_eval", - "sft-healthcare": "sft_healthcare_cn_eval", - "sft-entertainment": "sft_entertainment_cn_eval", - "sft-sport": "sft_sport_cn_eval", - "sft-commodity": "sft_commodity_cn_eval", - "sft-food": "sft_food_cn_eval", - "sft-car": "sft_car_cn_eval", - "sft-landmark": "sft_landmark_cn_eval", -} - -task_name = [local_name2official_name[split] if split in local_name2official_name else split for split in splits] -splits = [split.replace("-", "_") for split in splits] - -if __name__ == "__main__": - for split, task in zip(splits, task_name): - yaml_dict = {"group": f"sft_eval", "task": task, "test_split": split, "dataset_name": split} - save_path = os.path.join(dir_path, f"{split}.yaml") - if "ocr" in split and "rec" in split: - yaml_dict["include"] = "_default_sft_eval_ocr_rec_template_yaml" - else: - yaml_dict["include"] = "_default_sft_eval_rest_template_yaml" - print(f"Saving to {save_path}") - with open(save_path, "w") as f: - yaml.dump(yaml_dict, f, default_flow_style=False, sort_keys=False) - - group_dict = {"group": "sft_eval", "task": splits} - - with open(os.path.join(dir_path, "_sft_eval.yaml"), "w") as f: - yaml.dump(group_dict, f, default_flow_style=False, indent=4) diff --git a/lmms_eval/tasks/sft_eval/_sft_eval.yaml b/lmms_eval/tasks/sft_eval/_sft_eval.yaml deleted file mode 100644 index c336a4dd..00000000 --- a/lmms_eval/tasks/sft_eval/_sft_eval.yaml +++ /dev/null @@ -1,34 +0,0 @@ -group: sft_eval -task: -- sft_activity -- sft_arts -- sft_body -- sft_car -- sft_color -- sft_commodity -- sft_count -- sft_daily -- sft_engineer -- sft_entertainment -- sft_exist -- sft_face -- sft_food -- sft_healthcare -- sft_landmark -- sft_logo -- sft_natural -- sft_ocr_qa_adv -- sft_ocr_qa_chart -- sft_ocr_qa_form -- sft_ocr_qa_scene -- sft_ocr_qa_screen -- sft_ocr_rec_adv -- sft_ocr_rec_doc -- sft_ocr_rec_handwrite -- sft_ocr_rec_markdown -- sft_ocr_rec_scene -- sft_ocr_rec_screen -- sft_place -- sft_position -- sft_sport -- sft_status diff --git a/lmms_eval/tasks/sft_eval/sft_activity.yaml b/lmms_eval/tasks/sft_eval/sft_activity.yaml deleted file mode 100644 index d8bc91b5..00000000 --- a/lmms_eval/tasks/sft_eval/sft_activity.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_activity_cn_eval -test_split: sft_activity -dataset_name: sft_activity -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_arts.yaml b/lmms_eval/tasks/sft_eval/sft_arts.yaml deleted file mode 100644 index 592b2892..00000000 --- a/lmms_eval/tasks/sft_eval/sft_arts.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_arts_cn_eval -test_split: sft_arts -dataset_name: sft_arts -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_body.yaml b/lmms_eval/tasks/sft_eval/sft_body.yaml deleted file mode 100644 index 6e0edb3f..00000000 --- a/lmms_eval/tasks/sft_eval/sft_body.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_body_cn_eval -test_split: sft_body -dataset_name: sft_body -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_car.yaml b/lmms_eval/tasks/sft_eval/sft_car.yaml deleted file mode 100644 index e8216934..00000000 --- a/lmms_eval/tasks/sft_eval/sft_car.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_car_cn_eval -test_split: sft_car -dataset_name: sft_car -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_color.yaml b/lmms_eval/tasks/sft_eval/sft_color.yaml deleted file mode 100644 index 85f912af..00000000 --- a/lmms_eval/tasks/sft_eval/sft_color.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_color_cn_eval -test_split: sft_color -dataset_name: sft_color -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_commodity.yaml b/lmms_eval/tasks/sft_eval/sft_commodity.yaml deleted file mode 100644 index 3c37c5e0..00000000 --- a/lmms_eval/tasks/sft_eval/sft_commodity.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_commodity_cn_eval -test_split: sft_commodity -dataset_name: sft_commodity -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_count.yaml b/lmms_eval/tasks/sft_eval/sft_count.yaml deleted file mode 100644 index b4184448..00000000 --- a/lmms_eval/tasks/sft_eval/sft_count.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_count_cn_eval -test_split: sft_count -dataset_name: sft_count -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_daily.yaml b/lmms_eval/tasks/sft_eval/sft_daily.yaml deleted file mode 100644 index 540f657e..00000000 --- a/lmms_eval/tasks/sft_eval/sft_daily.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_daily_cn_eval -test_split: sft_daily -dataset_name: sft_daily -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_engineer.yaml b/lmms_eval/tasks/sft_eval/sft_engineer.yaml deleted file mode 100644 index bd2532b7..00000000 --- a/lmms_eval/tasks/sft_eval/sft_engineer.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_engineer_cn_eval -test_split: sft_engineer -dataset_name: sft_engineer -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_entertainment.yaml b/lmms_eval/tasks/sft_eval/sft_entertainment.yaml deleted file mode 100644 index 04f84127..00000000 --- a/lmms_eval/tasks/sft_eval/sft_entertainment.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_entertainment_cn_eval -test_split: sft_entertainment -dataset_name: sft_entertainment -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_exist.yaml b/lmms_eval/tasks/sft_eval/sft_exist.yaml deleted file mode 100644 index b3ec83f7..00000000 --- a/lmms_eval/tasks/sft_eval/sft_exist.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_exist_cn_eval -test_split: sft_exist -dataset_name: sft_exist -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_face.yaml b/lmms_eval/tasks/sft_eval/sft_face.yaml deleted file mode 100644 index 5dd6962f..00000000 --- a/lmms_eval/tasks/sft_eval/sft_face.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_celeb_cn_eval -test_split: sft_face -dataset_name: sft_face -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_food.yaml b/lmms_eval/tasks/sft_eval/sft_food.yaml deleted file mode 100644 index a6a3dad4..00000000 --- a/lmms_eval/tasks/sft_eval/sft_food.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_food_cn_eval -test_split: sft_food -dataset_name: sft_food -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_healthcare.yaml b/lmms_eval/tasks/sft_eval/sft_healthcare.yaml deleted file mode 100644 index c63d093a..00000000 --- a/lmms_eval/tasks/sft_eval/sft_healthcare.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_healthcare_cn_eval -test_split: sft_healthcare -dataset_name: sft_healthcare -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_landmark.yaml b/lmms_eval/tasks/sft_eval/sft_landmark.yaml deleted file mode 100644 index 4c4c1209..00000000 --- a/lmms_eval/tasks/sft_eval/sft_landmark.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_landmark_cn_eval -test_split: sft_landmark -dataset_name: sft_landmark -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_logo.yaml b/lmms_eval/tasks/sft_eval/sft_logo.yaml deleted file mode 100644 index 35116a2d..00000000 --- a/lmms_eval/tasks/sft_eval/sft_logo.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft-logo -test_split: sft_logo -dataset_name: sft_logo -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_natural.yaml b/lmms_eval/tasks/sft_eval/sft_natural.yaml deleted file mode 100644 index 78668e9f..00000000 --- a/lmms_eval/tasks/sft_eval/sft_natural.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_natural_cn_eval -test_split: sft_natural -dataset_name: sft_natural -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_qa_adv.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_qa_adv.yaml deleted file mode 100644 index 0e7243ff..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_qa_adv.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_ecommerceQA_cn_eval -test_split: sft_ocr_qa_adv -dataset_name: sft_ocr_qa_adv -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_qa_chart.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_qa_chart.yaml deleted file mode 100644 index 031eaa72..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_qa_chart.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_chartQA_cn_eval -test_split: sft_ocr_qa_chart -dataset_name: sft_ocr_qa_chart -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_qa_form.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_qa_form.yaml deleted file mode 100644 index 18e059e8..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_qa_form.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_formQA_cn_eval -test_split: sft_ocr_qa_form -dataset_name: sft_ocr_qa_form -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_qa_scene.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_qa_scene.yaml deleted file mode 100644 index 0af342d9..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_qa_scene.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_sceneQA_cn_eval -test_split: sft_ocr_qa_scene -dataset_name: sft_ocr_qa_scene -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_qa_screen.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_qa_screen.yaml deleted file mode 100644 index 586194a9..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_qa_screen.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_screenQA_cn_eval -test_split: sft_ocr_qa_screen -dataset_name: sft_ocr_qa_screen -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_rec_adv.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_rec_adv.yaml deleted file mode 100644 index 69e116f8..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_rec_adv.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_adv_cn_eval -test_split: sft_ocr_rec_adv -dataset_name: sft_ocr_rec_adv -include: _default_sft_eval_ocr_rec_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_rec_doc.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_rec_doc.yaml deleted file mode 100644 index 0d498c46..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_rec_doc.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_doc_cn_eval -test_split: sft_ocr_rec_doc -dataset_name: sft_ocr_rec_doc -include: _default_sft_eval_ocr_rec_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_rec_handwrite.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_rec_handwrite.yaml deleted file mode 100644 index 5eb39256..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_rec_handwrite.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_handwrite_cn_eval -test_split: sft_ocr_rec_handwrite -dataset_name: sft_ocr_rec_handwrite -include: _default_sft_eval_ocr_rec_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_rec_markdown.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_rec_markdown.yaml deleted file mode 100644 index 7fb34090..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_rec_markdown.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_markdown_cn_eval -test_split: sft_ocr_rec_markdown -dataset_name: sft_ocr_rec_markdown -include: _default_sft_eval_ocr_rec_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_rec_scene.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_rec_scene.yaml deleted file mode 100644 index 8ef84382..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_rec_scene.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_scene_cn_eval -test_split: sft_ocr_rec_scene -dataset_name: sft_ocr_rec_scene -include: _default_sft_eval_ocr_rec_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_ocr_rec_screen.yaml b/lmms_eval/tasks/sft_eval/sft_ocr_rec_screen.yaml deleted file mode 100644 index eba50bdb..00000000 --- a/lmms_eval/tasks/sft_eval/sft_ocr_rec_screen.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_ocr_screen_cn_eval -test_split: sft_ocr_rec_screen -dataset_name: sft_ocr_rec_screen -include: _default_sft_eval_ocr_rec_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_place.yaml b/lmms_eval/tasks/sft_eval/sft_place.yaml deleted file mode 100644 index 1bc615b4..00000000 --- a/lmms_eval/tasks/sft_eval/sft_place.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_place_cn_eval -test_split: sft_place -dataset_name: sft_place -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_position.yaml b/lmms_eval/tasks/sft_eval/sft_position.yaml deleted file mode 100644 index ef489818..00000000 --- a/lmms_eval/tasks/sft_eval/sft_position.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_position_cn_eval -test_split: sft_position -dataset_name: sft_position -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_sport.yaml b/lmms_eval/tasks/sft_eval/sft_sport.yaml deleted file mode 100644 index 94a6140b..00000000 --- a/lmms_eval/tasks/sft_eval/sft_sport.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_sport_cn_eval -test_split: sft_sport -dataset_name: sft_sport -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/sft_status.yaml b/lmms_eval/tasks/sft_eval/sft_status.yaml deleted file mode 100644 index 9f28ba51..00000000 --- a/lmms_eval/tasks/sft_eval/sft_status.yaml +++ /dev/null @@ -1,5 +0,0 @@ -group: sft_eval -task: sft_status_cn_eval -test_split: sft_status -dataset_name: sft_status -include: _default_sft_eval_rest_template_yaml diff --git a/lmms_eval/tasks/sft_eval/utils.py b/lmms_eval/tasks/sft_eval/utils.py deleted file mode 100644 index 8ed2ef0c..00000000 --- a/lmms_eval/tasks/sft_eval/utils.py +++ /dev/null @@ -1,109 +0,0 @@ -from rapidfuzz.distance import Levenshtein - - -def _normalize_text(text): - import string - - text = "".join(filter(lambda x: x in (string.digits + string.ascii_letters), text)) - - -def process_result_ocr_rec(doc, result): - return {"edit_distance": {"gts": [gt.replace("\n", "") for gt in doc["answer"]], "predictions": result}, "edit_acc": {"gts": [gt.replace("\n", "") for gt in doc["answer"]], "predictions": result}} - - -def process_result_rest(doc, result): - return {"fuzzy_match": {"gts": [gt.replace("\n", "") for gt in doc["answer"]], "predictions": result, "question_id": doc["question_id"]}} - - -def run_editdistance(gts, predictions, ignore_space=True, is_filter=False): - eps = 1e-6 - correct_num = 0 - all_num = 0 - norm_edit_dis = 0.0 - edit_norm_score_list = list() - for idx in range(len(predictions)): - target, pred = gts[idx][0], predictions[idx] - if ignore_space: - pred = pred.replace(" ", "") - target = target.replace(" ", "") - if is_filter: - pred = _normalize_text(pred) - target = _normalize_text(target) - - ned = Levenshtein.normalized_distance(pred, target) - norm_edit_dis += ned - edit_norm_score_list.append(1 - ned) - if pred == target: - correct_num += 1 - all_num += 1 - # import pdb; pdb.set_trace() - metric = {"acc": correct_num / (all_num + eps), "norm_edit_dis": 1 - norm_edit_dis / (all_num + eps)} - return metric, edit_norm_score_list - - -def fuzzy_match_multi_answers(results, gt_dict): - acc = [] - for result in results: - question_id = result["question_id"] - try: - gt_ans = gt_dict[question_id] - except: - import pdb - - pdb.set_trace() - pred = result["text"] - for gt in gt_ans: - vqa_acc = 1 - if not ( - (gt == "是" and gt in pred and "不是" not in pred) - or (gt == "对" and gt in pred and "不对" not in pred) - or (gt == "相同" and gt in pred and "不相同" not in pred) - or (gt == "有" and gt in pred and "没有" not in pred) - or (gt == "在" and gt in pred and "不在" not in pred) - or (gt == "一样" and gt in pred and "不一样" not in pred) - or (gt not in ["是", "在", "对", "有", "一样", "相同"] and gt.lower() in pred.lower()) - ): - vqa_acc = 0 - if vqa_acc == 1: - break - acc.append(vqa_acc) - accuracy = sum(acc) / len(acc) * 100 - return {"Acc": accuracy} - - -def sft_eval_doc_to_visual(doc): - return [doc["image"].convert("RGB")] - - -def sft_eval_doc_to_text(doc): - return doc["question"] - - -def sft_eval_doc_to_text(doc, model_specific_prompt_kwargs=None): - if model_specific_prompt_kwargs is None: - model_specific_prompt_kwargs = {} - pre_prompt = model_specific_prompt_kwargs.get("pre_prompt", "") - post_prompt = model_specific_prompt_kwargs.get("post_prompt", "") - question = f"{pre_prompt}{doc['question']}{post_prompt}" - return question - - -def sft_eval_edit_dist_acc_agg(results): - predictions = [result["predictions"][0] for result in results] - gts = [result["gts"] for result in results] - acc, _ = run_editdistance(gts, predictions) - return acc["acc"] - - -def sft_eval_edit_dist_agg(results): - predictions = [result["predictions"][0] for result in results] - gts = [result["gts"] for result in results] - acc, _ = run_editdistance(gts, predictions) - return acc["norm_edit_dis"] - - -def sft_eval_acc_agg(results): - gts_dict = {result["question_id"]: result["gts"] for result in results} - predictions = [{"question_id": result["question_id"], "text": result["predictions"][0]} for result in results] - acc = fuzzy_match_multi_answers(predictions, gts_dict) - return acc["Acc"] diff --git a/lmms_eval/tasks/textvqa/textvqa_test.yaml b/lmms_eval/tasks/textvqa/textvqa_test.yaml index 15b02c4f..d22ef571 100755 --- a/lmms_eval/tasks/textvqa/textvqa_test.yaml +++ b/lmms_eval/tasks/textvqa/textvqa_test.yaml @@ -2,6 +2,6 @@ task: textvqa_test test_split: test metric_list: - metric: submission - aggregation: !function utils.textvqa_aggreate_submissions + aggregation: !function utils.textvqa_aggregate_submissions higher_is_better: true include: _default_template_textvqa_yaml diff --git a/lmms_eval/tasks/textvqa/textvqa_val.yaml b/lmms_eval/tasks/textvqa/textvqa_val.yaml index e23e9b2e..8ce39a49 100755 --- a/lmms_eval/tasks/textvqa/textvqa_val.yaml +++ b/lmms_eval/tasks/textvqa/textvqa_val.yaml @@ -7,6 +7,6 @@ metric_list: ignore_case: true ignore_punctuation: true - metric: submission - aggregation: !function utils.textvqa_aggreate_submissions + aggregation: !function utils.textvqa_aggregate_submissions higher_is_better: true include: _default_template_textvqa_yaml diff --git a/lmms_eval/tasks/textvqa/utils.py b/lmms_eval/tasks/textvqa/utils.py index ea3b503b..71a4ccaa 100755 --- a/lmms_eval/tasks/textvqa/utils.py +++ b/lmms_eval/tasks/textvqa/utils.py @@ -59,7 +59,7 @@ def textvqa_doc_to_text(doc, model_specific_prompt_kwargs=None): return f"{pre_prompt}{doc['question'].capitalize()}{ocr_ref}{post_prompt}" -def textvqa_aggreate_submissions(results, args): +def textvqa_aggregate_submissions(results, args): now_date_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") path = generate_submission_file(f"textvqa_submission_{now_date_time}.json", args) with open(path, "w") as f: diff --git a/lmms_eval/tasks/vcr_wiki/_default_template_vcr_yaml b/lmms_eval/tasks/vcr_wiki/_default_template_vcr_yaml new file mode 100644 index 00000000..37ab5e74 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/_default_template_vcr_yaml @@ -0,0 +1,17 @@ + +dataset_kwargs: + token: True +output_type: generate_until +doc_to_visual: !function utils.vcr_doc_to_visual +doc_to_text: !function utils.vcr_doc_to_text +doc_to_target: "answer" +generation_kwargs: + max_new_tokens: 120 + temperature: 0 + top_p: 0 + num_beams: 1 + do_sample: false +# The return value of process_results will be used by metrics +# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results +metadata: + - version: 0.0.1 \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/utils.py b/lmms_eval/tasks/vcr_wiki/utils.py new file mode 100644 index 00000000..95bdae1a --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/utils.py @@ -0,0 +1,300 @@ +import datetime +import json +import logging +import os +from difflib import SequenceMatcher as SM +from functools import partial + +import evaluate +import numpy as np +import spacy +from nltk.util import ngrams +from spacy.cli import download + +from lmms_eval.tasks._task_utils.file_utils import generate_submission_file + +# Download the English and Chinese models +try: + nlp_en = spacy.load("en_core_web_sm") +except Exception as e: + download("en_core_web_sm") + nlp_en = spacy.load("en_core_web_sm") + +try: + nlp_zh = spacy.load("zh_core_web_sm") +except Exception as e: + download("zh_core_web_sm") + nlp_zh = spacy.load("zh_core_web_sm") + +nlp = {"en": nlp_en, "zh": nlp_zh} +rouge = evaluate.load("rouge") + +eval_logger = logging.getLogger("lmms-eval") +dir_name = os.path.dirname(os.path.abspath(__file__)) + +aggregate_results_template = { + "max_sim_val": 0, + "precision": 0, + "recall": 0, + "f1": 0, + "jaccard": 0, + "rouge1": 0, +} + + +def fast_filter(answer_text): + if "I can't" in answer_text: + return True + elif "I cannot" in answer_text: + return True + elif "sorry" in answer_text.lower(): + return True + if "无法" in answer_text: + return True + elif "抱歉" in answer_text: + return True + else: + return False + + +def vcr_doc_to_visual(doc): + return [doc["stacked_image"].convert("RGB")] + + +def vcr_doc_to_text(doc, model_specific_prompt_kwargs=None): + if "pre_prompt" in model_specific_prompt_kwargs: + pre_prompt = model_specific_prompt_kwargs["pre_prompt"] + if "post_prompt" in model_specific_prompt_kwargs: + post_prompt = model_specific_prompt_kwargs["post_prompt"] + return f"{pre_prompt}{post_prompt}" + + +def tokenize(text, language): + """ + Tokenize the text and return the tokens. + + Parameters: + text (str): The text to tokenize. + language (str): The language of the text. + + Returns: + list: The list of tokens. + """ + assert language in ["en", "zh"] + nlp_lang = nlp[language] + processed_text = nlp_lang(text) + return [token.text for token in processed_text] + + +def vcr_process_results_single(crossed_text, result, language): + """ + Args: + doc: an instance of the eval dataset + results: [pred] + Returns: + a dictionary with key: metric name (in this case vcr score), value: metric value + """ + + assert language in ["en", "zh"], f"Language {language} is not supported." + + if fast_filter(result): + return { + "crossed_text": crossed_text, + "max_sim_val": 0, + "max_sim_string": "", + "precision": 0, + "recall": 0, + "f1": 0, + "jaccard": 0, + "rouge1": 0, + "exact_match": 0, + } + tokens_result = tokenize(result, language) + tokens_crossed_text = tokenize(crossed_text, language) + + splitter = " " if language == "en" else "" + ngrams_ = ngrams(tokens_result, len(tokens_crossed_text)) + max_sim_val = 0 + max_sim_string = "" + max_sim_ngram = [] + tokens_crossed_text_set = set(tokens_crossed_text) + ngrams_hasjoint = [ngram for ngram in ngrams_ if not set(ngram).isdisjoint(tokens_crossed_text_set)] + + for ngram in ngrams_hasjoint: + result_ngram = splitter.join(ngram) + similarity = SM(None, result_ngram, crossed_text).ratio() + if similarity > max_sim_val: + max_sim_val = similarity + max_sim_string = result_ngram + max_sim_ngram = ngram + + # Evaluate + if len(max_sim_ngram) == 0: + return { + "crossed_text": crossed_text, + "max_sim_val": 0, + "max_sim_string": "", + "precision": 0, + "recall": 0, + "f1": 0, + "jaccard": 0, + "rouge1": 0, + "exact_match": 0, + } + pred_set = set(max_sim_ngram) + ref_set = set(tokens_crossed_text) + correct_tokens = pred_set.intersection(ref_set) + len_correct_tokens = len(correct_tokens) + + precision = len_correct_tokens / len(pred_set) + recall = len_correct_tokens / len(ref_set) + if (precision + recall) == 0: + f1 = 0 + else: + f1 = 2 * precision * recall / (precision + recall) + union = pred_set.union(ref_set) + jaccard = len_correct_tokens / len(union) if len(union) > 0 else 0 + rouge_1 = rouge.compute( + predictions=[max_sim_string], + references=[crossed_text], + tokenizer=partial(tokenize, language=language), + rouge_types=["rouge1"], + )["rouge1"] + exact_match = float(list(max_sim_ngram) == list(tokens_crossed_text)) + out = { + "crossed_text": crossed_text, + "max_sim_string": max_sim_string, + "max_sim_val": max_sim_val, + "precision": precision, + "recall": recall, + "f1": f1, + "jaccard": jaccard, + "rouge1": rouge_1, + "exact_match": exact_match, + } + return out + + +def vcr_en_process_results(doc, results): + """ + Args: + doc: an instance of the eval dataset + results: [pred], with length = 1 + Returns: + a dictionary with key: metric name (in this case vcr score), value: metric value + """ + output = { + "max_sim_val": [], + "precision": [], + "recall": [], + "f1": [], + "jaccard": [], + "rouge1": [], + "exact_match": [], + } + crossed_text = doc["crossed_text"] + for i in range(len(crossed_text)): + tmp = vcr_process_results_single(crossed_text[i], results[0], "en") + for k in output.keys(): + output[k].append( + { + "score": tmp[k], + "pred_ngram": tmp["max_sim_string"], + "gt_ngram": crossed_text[i], + "caption": doc["caption"], + } + ) + return output + + +def vcr_zh_process_results(doc, results): + """ + Args: + doc: an instance of the eval dataset + results: [pred], with length = 1 + Returns: + a dictionary with key: metric name (in this case vcr score), value: metric value and other info + """ + output = { + "max_sim_val": [], + "precision": [], + "recall": [], + "f1": [], + "jaccard": [], + "rouge1": [], + "exact_match": [], + } + crossed_text = doc["crossed_text"] + for i in range(len(crossed_text)): + tmp = vcr_process_results_single(crossed_text[i], results[0], "zh") + for k in output.keys(): + output[k].append( + { + "question_id": doc["question_id"], + "score": tmp[k], + "pred_ngram": tmp["max_sim_string"], + "gt_ngram": crossed_text[i], + "caption": doc["caption"], + } + ) + return output + + +def bootstrap_std(data, n_bootstrap=1000, ci=0.95): + """ + Args: + data: a list of values + n_bootstrap: number of bootstrap samples + ci: confidence interval + Returns: + a tuple of mean, lower bound, upper bound + """ + n = len(data) + means = [] + for _ in range(n_bootstrap): + sample = np.random.choice(data, n, replace=True) + means.append(np.mean(sample)) + means = np.array(means) + lower_bound = np.percentile(means, (1 - ci) / 2 * 100) + upper_bound = np.percentile(means, (1 + ci) / 2 * 100) + std = np.std(means) + return std, lower_bound, upper_bound + + +def vcr_aggregate_results(results, args, metric="exact_match"): + """ + Args: + results: List[List[Dict]], list of results returned by process_results + Returns: + A float value representing the final score of jaccard index or exact match + """ + scores = [] + output_dict_detail_result = {} + for i in range(len(results)): + for blank_id in range(len(results[i])): + scores.append(results[i][blank_id]["score"]) + output_dict_detail_result[str(i)] = results[i] + mean_score = np.mean(scores) + std, lb, ub = bootstrap_std(scores, n_bootstrap=1000, ci=0.95) + output_dict = { + "mean_score": mean_score, + "std_score": std, + "percentile_2.5": lb, + "percentie_97.5": ub, + "detailed_results": output_dict_detail_result, + } + now_date_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") + path = generate_submission_file(f"vcr_submission_{metric}_{now_date_time}.json", args) + with open(path, "w", encoding="utf-8") as f: + json.dump(output_dict, f, indent=4, ensure_ascii=False) + # print(f"Submission file saved to {path}") + eval_logger.info(f"Submission file saved to {path}") + return mean_score + + +def vcr_aggregate_exact_match(results, args): + return vcr_aggregate_results(results, args, metric="exact_match") + + +def vcr_aggregate_jaccard(results, args): + return vcr_aggregate_results(results, args, metric="jaccard") diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy.yaml new file mode 100644 index 00000000..9ce88299 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-en-easy-test +task: "vcr_wiki_en_easy" +test_split: test +process_results: !function utils.vcr_en_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "What is the covered texts in the image? Please restore the covered texts without outputting the explanations." \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy_100.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy_100.yaml new file mode 100644 index 00000000..37f0130b --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy_100.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-en-easy-test-100 +task: "vcr_wiki_en_easy_100" +test_split: test +process_results: !function utils.vcr_en_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "What is the covered texts in the image? Please restore the covered texts without outputting the explanations." \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy_500.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy_500.yaml new file mode 100644 index 00000000..0ccc1ed0 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_easy_500.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-en-easy-test-500 +task: "vcr_wiki_en_easy_500" +test_split: test +process_results: !function utils.vcr_en_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "What is the covered texts in the image? Please restore the covered texts without outputting the explanations." \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard.yaml new file mode 100644 index 00000000..8c001e4e --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-en-hard-test +task: "vcr_wiki_en_hard" +test_split: test +process_results: !function utils.vcr_en_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "What is the covered texts in the image? Please restore the covered texts without outputting the explanations." \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard_100.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard_100.yaml new file mode 100644 index 00000000..16c79b15 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard_100.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-en-hard-test-100 +task: "vcr_wiki_en_hard_100" +test_split: test +process_results: !function utils.vcr_en_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "What is the covered texts in the image? Please restore the covered texts without outputting the explanations." \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard_500.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard_500.yaml new file mode 100644 index 00000000..65616894 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_en_hard_500.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-en-hard-test-500 +task: "vcr_wiki_en_hard_500" +test_split: test +process_results: !function utils.vcr_en_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "What is the covered texts in the image? Please restore the covered texts without outputting the explanations." \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy.yaml new file mode 100644 index 00000000..a07cf230 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-zh-easy-test +task: "vcr_wiki_zh_easy" +test_split: test +process_results: !function utils.vcr_zh_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "图像中被覆盖的文本是什么?请在不输出解释的情况下还原被覆盖的文本。" \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy_100.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy_100.yaml new file mode 100644 index 00000000..fb41b668 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy_100.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-zh-easy-test-100 +task: "vcr_wiki_zh_easy_100" +test_split: test +process_results: !function utils.vcr_zh_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "图像中被覆盖的文本是什么?请在不输出解释的情况下还原被覆盖的文本。" \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy_500.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy_500.yaml new file mode 100644 index 00000000..e3654aed --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_easy_500.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-zh-easy-test-500 +task: "vcr_wiki_zh_easy_500" +test_split: test +process_results: !function utils.vcr_zh_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "图像中被覆盖的文本是什么?请在不输出解释的情况下还原被覆盖的文本。" \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard.yaml new file mode 100644 index 00000000..0401b3bd --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-zh-hard-test +task: "vcr_wiki_zh_hard" +test_split: test +process_results: !function utils.vcr_zh_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "图像中被覆盖的文本是什么?请在不输出解释的情况下还原被覆盖的文本。" \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard_100.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard_100.yaml new file mode 100644 index 00000000..f6512e29 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard_100.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-zh-hard-test-100 +task: "vcr_wiki_zh_hard_100" +test_split: test +process_results: !function utils.vcr_zh_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "图像中被覆盖的文本是什么?请在不输出解释的情况下还原被覆盖的文本。" \ No newline at end of file diff --git a/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard_500.yaml b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard_500.yaml new file mode 100644 index 00000000..a36bb328 --- /dev/null +++ b/lmms_eval/tasks/vcr_wiki/vcr_wiki_zh_hard_500.yaml @@ -0,0 +1,16 @@ +"include": "_default_template_vcr_yaml" +dataset_path: vcr-org/VCR-wiki-zh-hard-test-500 +task: "vcr_wiki_zh_hard_500" +test_split: test +process_results: !function utils.vcr_zh_process_results +metric_list: + - metric: jaccard + aggregation: !function utils.vcr_aggregate_jaccard + higher_is_better: true + - metric: exact_match + aggregation: !function utils.vcr_aggregate_exact_match + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "图像中被覆盖的文本是什么?请在不输出解释的情况下还原被覆盖的文本。" \ No newline at end of file diff --git a/lmms_eval/tasks/vizwiz_vqa/utils.py b/lmms_eval/tasks/vizwiz_vqa/utils.py index 63afb4e4..9ff8d3d8 100755 --- a/lmms_eval/tasks/vizwiz_vqa/utils.py +++ b/lmms_eval/tasks/vizwiz_vqa/utils.py @@ -61,7 +61,7 @@ def vizwiz_vqa_doc_to_text(doc, model_specific_prompt_kwargs=None): return text -def vizwiz_vqa_aggreate_submissions(results, args): +def vizwiz_vqa_aggregate_submissions(results, args): now_date_time = datetime.datetime.now().strftime("%Y-%m%d-%H%M-%S") submission_file_name = f"vizwiz_vqa-test-submission-{now_date_time}.json" path = generate_submission_file(submission_file_name, args) diff --git a/lmms_eval/tasks/vizwiz_vqa/vizwiz_vqa_test.yaml b/lmms_eval/tasks/vizwiz_vqa/vizwiz_vqa_test.yaml index dec140f6..82fafcaa 100755 --- a/lmms_eval/tasks/vizwiz_vqa/vizwiz_vqa_test.yaml +++ b/lmms_eval/tasks/vizwiz_vqa/vizwiz_vqa_test.yaml @@ -10,5 +10,5 @@ metric_list: # ignore_case: true # ignore_punctuation: true - metric: submission - aggregation: !function utils.vizwiz_vqa_aggreate_submissions + aggregation: !function utils.vizwiz_vqa_aggregate_submissions higher_is_better: true diff --git a/lmms_eval/tasks/vizwiz_vqa/vizwiz_vqa_val.yaml b/lmms_eval/tasks/vizwiz_vqa/vizwiz_vqa_val.yaml index ac8ecc98..3343bbdc 100755 --- a/lmms_eval/tasks/vizwiz_vqa/vizwiz_vqa_val.yaml +++ b/lmms_eval/tasks/vizwiz_vqa/vizwiz_vqa_val.yaml @@ -9,5 +9,5 @@ metric_list: ignore_case: true ignore_punctuation: true # - metric: submission - # aggregation: !function utils.vizwiz_vqa_aggreate_submissions + # aggregation: !function utils.vizwiz_vqa_aggregate_submissions # higher_is_better: true \ No newline at end of file diff --git a/lmms_eval/tasks/vqav2/utils.py b/lmms_eval/tasks/vqav2/utils.py index 1a3e9082..0951712a 100755 --- a/lmms_eval/tasks/vqav2/utils.py +++ b/lmms_eval/tasks/vqav2/utils.py @@ -80,7 +80,7 @@ def vqav2_doc_to_text(doc, model_specific_prompt_kwargs=None): return f"{pre_prompt}{doc['question']}{post_prompt}" -def vqav2_aggreate_submissions(results, args): +def vqav2_aggregate_submissions(results, args): now_date_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") submission_file_name = f"vqav2-test-submission-{now_date_time}.json" path = file_utils.generate_submission_file(submission_file_name, args) diff --git a/lmms_eval/tasks/vqav2/vqav2_test.yaml b/lmms_eval/tasks/vqav2/vqav2_test.yaml index 94c69209..4c038604 100755 --- a/lmms_eval/tasks/vqav2/vqav2_test.yaml +++ b/lmms_eval/tasks/vqav2/vqav2_test.yaml @@ -3,6 +3,6 @@ include: _default_template_vqav2_yaml test_split: test metric_list: - metric: submission - aggregation: !function utils.vqav2_aggreate_submissions + aggregation: !function utils.vqav2_aggregate_submissions higher_is_better: true process_results: !function utils.vqav2_process_results_test diff --git a/lmms_eval/tasks/websrc/README.md b/lmms_eval/tasks/websrc/README.md new file mode 100644 index 00000000..a631e6d8 --- /dev/null +++ b/lmms_eval/tasks/websrc/README.md @@ -0,0 +1,51 @@ +# WebSRC + +## Paper + +Title: WebSRC: A Dataset for Web-Based Structural Reading Comprehension + +Abstract: https://arxiv.org/abs/2101.09465 + +Homepage: https://x-lance.github.io/WebSRC/# + +WebSRC is a dataset for web-based structural reading comprehension. +Its full train/dev/test split contains over 400k questions across 6.4k webpages. +This version of the dataset does not contain OCR or original HTML, it simply treats WebSRC as a image-and-text-based multimodal Q&A benchmark on webpage screenshots. + +## Citation + +```bibtex +@inproceedings{chen2021websrc, + title={WebSRC: A Dataset for Web-Based Structural Reading Comprehension}, + author={Chen, Xingyu and Zhao, Zihan and Chen, Lu and Ji, Jiabao and Zhang, Danyang and Luo, Ao and Xiong, Yuxuan and Yu, Kai}, + booktitle={Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing}, + pages={4173--4185}, + year={2021} +} +``` + +## Groups & Tasks + +### Groups + +- `websrc`: Evaluates `websrc-val` and generates a submission file for `websrc-test`. + +### Tasks + +- `websrc-val`: Given a question and a web page, predict the answer. +- `websrc-test`: Given a question and a web page, predict the answer. Ground truth is not provided for this task. + +## Metrics + +This task uses SQUAD-style evaluation metrics, of which F1 score over tokens is used. +The orignal paper also uses Exact Match (EM) score, but this is not implemented here as that metric is more conducive for Encoder-only extraction models. + +### F1 Score + +F1 Score is the harmonic mean of precision and recall. +We calculate precision and recall at the token level, then compute the F1 score as normal using these values. + +### Test Submission + +When evaluaing on the test split, a prediction JSON will be compiled instead of metrics computed. +Instructions for submission are available on the [WebSRC homepage](https://x-lance.github.io/WebSRC/#) and in their [Original GitHub Repo](https://github.com/X-LANCE/WebSRC-Baseline#obtain-test-result). \ No newline at end of file diff --git a/lmms_eval/tasks/websrc/utils.py b/lmms_eval/tasks/websrc/utils.py new file mode 100644 index 00000000..5cc09e6d --- /dev/null +++ b/lmms_eval/tasks/websrc/utils.py @@ -0,0 +1,159 @@ +from collections import defaultdict +import re +import ast +import base64 +import io +import random +import numpy as np +import os +import json +import logging +from PIL import Image + +from lmms_eval.tasks._task_utils.file_utils import generate_submission_file + +lmms_logger = logging.getLogger("lmms-eval") + +OPEN_ENDED_PROMPT = "Answer the question using a single word or phrase." + + +def construct_prompt(doc): + question = doc["question"] + question = f"{OPEN_ENDED_PROMPT}\n{question}" + return question + + +def websrc_doc_to_text(doc): + question = construct_prompt(doc) + return question + + +def websrc_doc_to_visual(doc): + img_bs64 = doc["image"] + img = Image.open(io.BytesIO(base64.b64decode(img_bs64))) + del doc["image"] + return [img] + + +def websrc_process_results(doc, results): + pred = results[0] + parsed_pred = pred + id = doc["page_id"] + websrc_ans = {"id": id, "domain": doc["domain"], "parsed_pred": parsed_pred} + if "answer" in doc: + websrc_ans["answer"] = doc["answer"] + + if "id" in doc: + websrc_ans["question_id"] = doc["id"] + + return { + "websrc_squad_f1": websrc_ans, + "submission": { + websrc_ans["question_id"]: pred, + } + if "question_id" in websrc_ans + else None, + } + + +def websrc_test_aggregate_results_for_submission(results, args): + path = generate_submission_file("websrc_test_for_submission.json", args) + with open(path, "w") as f: + out = {} + for result in results: + out.update(result) + json.dump(out, f, indent=4) + lmms_logger.info(f"Results saved to {path}.") + + +def websrc_aggregate_results(results): + evaluation_result = {} + + # Group results by domain + subset_to_eval_samples = defaultdict(list) + for result in results: + subset_to_eval_samples[result["domain"]].append(result) + + # Evaluate each domain + for subset, sub_eval_samples in subset_to_eval_samples.items(): + judge_dict, metric_dict = evaluate_websrc(sub_eval_samples) + metric_dict.update({"num_example": len(sub_eval_samples)}) + evaluation_result[subset] = metric_dict + + # Aggregate results for all domains + printable_results = {} + for domain in DOMAINS: + if domain not in evaluation_result: + continue + printable_results[domain] = { + "num": int(evaluation_result[domain]["num_example"]), + "f1": round(evaluation_result[domain]["f1"], 3), + } + all_ins_f1 = np.sum([cat_results["f1"] * cat_results["num_example"] for cat_results in evaluation_result.values()]) / sum([cat_results["num_example"] for cat_results in evaluation_result.values()]) + printable_results["Overall"] = { + "num": sum([cat_results["num_example"] for cat_results in evaluation_result.values()]), + "f1": round(all_ins_f1, 3), + } + print(printable_results) + return printable_results["Overall"]["f1"] + + +################## +# Helper functions written by official MMMU repo. +################## +DOMAINS = [ + "auto", + "book", + "camera", + "game", + "jobs", + "movie", + "phone", + "restaurant", + "sports", + "university", + "hotel", +] + + +def evaluate_websrc(samples): + def _normalize_str(string): + # lower it + string = string.lower() + + # strip leading and trailing whitespaces + string = string.strip() + + return string + + def _tokenize(text): + # Regex pattern to match words and isolate punctuation + pattern = r"\w+|[^\w\s]" + tokens = re.findall(pattern, text) + return tokens + + def _compute_f1(sa, sb): + sa = _normalize_str(sa) + sb = _normalize_str(sb) + + sa = _tokenize(sa) + sb = _tokenize(sb) + + sa = set(sa) + sb = set(sb) + + if len(sa) == 0 or len(sb) == 0: + return 0.0 + + comm = sa.intersection(sb) + prec = len(comm) / len(sb) + rec = len(comm) / len(sa) + f1 = 2 * prec * rec / (prec + rec) if prec + rec > 0 else 0 + return f1 + + judge_list = [] + for sample in samples: + judge_list.append(_compute_f1(sample["answer"], sample["parsed_pred"])) + + f1 = np.mean(judge_list) + return judge_list, {"f1": f1} diff --git a/lmms_eval/tasks/websrc/websrc.yaml b/lmms_eval/tasks/websrc/websrc.yaml new file mode 100644 index 00000000..e32bed9b --- /dev/null +++ b/lmms_eval/tasks/websrc/websrc.yaml @@ -0,0 +1,4 @@ +group: websrc +task: +- websrc_val +- websrc_test diff --git a/lmms_eval/tasks/websrc/websrc_test.yaml b/lmms_eval/tasks/websrc/websrc_test.yaml new file mode 100644 index 00000000..b19ec2ca --- /dev/null +++ b/lmms_eval/tasks/websrc/websrc_test.yaml @@ -0,0 +1,19 @@ +dataset_path: rootsautomation/websrc-test +task: "websrc_test" +test_split: test +output_type: generate_until +doc_to_visual: !function utils.websrc_doc_to_visual +doc_to_text: !function utils.websrc_doc_to_text +doc_to_target: "answer" +# The return value of process_results will be used by metrics +process_results: !function utils.websrc_process_results +# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results +generation_kwargs: + max_new_tokens: 16 + image_aspect_ratio: pad +metric_list: + - metric: submission + aggregation: !function utils.websrc_test_aggregate_results_for_submission + higher_is_better: true +metadata: + - version: 0.0 \ No newline at end of file diff --git a/lmms_eval/tasks/websrc/websrc_val.yaml b/lmms_eval/tasks/websrc/websrc_val.yaml new file mode 100644 index 00000000..aeac7d06 --- /dev/null +++ b/lmms_eval/tasks/websrc/websrc_val.yaml @@ -0,0 +1,19 @@ +dataset_path: rootsautomation/websrc +task: "websrc_val" +test_split: dev +output_type: generate_until +doc_to_visual: !function utils.websrc_doc_to_visual +doc_to_text: !function utils.websrc_doc_to_text +doc_to_target: "answer" +# The return value of process_results will be used by metrics +process_results: !function utils.websrc_process_results +# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results +generation_kwargs: + max_new_tokens: 16 + image_aspect_ratio: pad +metric_list: + - metric: websrc_squad_f1 + aggregation: !function utils.websrc_aggregate_results + higher_is_better: true +metadata: + - version: 0.0 \ No newline at end of file diff --git a/example_eval.yaml b/miscs/example_eval.yaml similarity index 100% rename from example_eval.yaml rename to miscs/example_eval.yaml diff --git a/llava_repr_requirements.txt b/miscs/llava_repr_requirements.txt similarity index 100% rename from llava_repr_requirements.txt rename to miscs/llava_repr_requirements.txt diff --git a/miscs/repr_scripts.sh b/miscs/repr_scripts.sh index 27fccbaf..cc9a8ae7 100755 --- a/miscs/repr_scripts.sh +++ b/miscs/repr_scripts.sh @@ -11,4 +11,4 @@ pip install -r llava_repr_requirements.txt # Run and exactly reproduce llava_v1.5 results! # mme as an example -accelerate launch --num_processes=1 -m lmms_eval --model llava --model_args pretrained="liuhaotian/llava-v1.5-7b,use_flash_attention_2=False" --tasks mme --batch_size 1 --log_samples --log_samples_sufix reproduce --output_path ./logs/ \ No newline at end of file +accelerate launch --num_processes=1 -m lmms_eval --model llava --model_args pretrained="liuhaotian/llava-v1.5-7b,use_flash_attention_2=False,device_map=auto" --tasks mme --batch_size 1 --log_samples --log_samples_suffix reproduce --output_path ./logs/ \ No newline at end of file diff --git a/miscs/tinyllava_repr_requirements.txt b/miscs/tinyllava_repr_requirements.txt new file mode 100644 index 00000000..b6ab1cb1 --- /dev/null +++ b/miscs/tinyllava_repr_requirements.txt @@ -0,0 +1,39 @@ +accelerate==0.27.2 +datasets==2.16.1 +deepspeed==0.14.0 +einops==0.6.1 +einops-exts==0.0.4 +evaluate==0.4.1 +hf_transfer==0.1.6 +Jinja2==3.1.3 +numpy==1.26.4 +openai==1.13.3 +openpyxl +packaging==23.2 +pandas==2.2.1 +peft==0.10.0 +Pillow==10.2.0 +protobuf==4.25.3 +pycocoevalcap==1.2 +pycocotools==2.0.7 +pytablewriter==1.2.0 +pytest==8.0.2 +python_Levenshtein==0.25.0 +pytz==2024.1 +PyYAML==6.0.1 +Requests==2.31.0 +sacrebleu==2.4.0 +scikit_learn==1.2.2 +sentencepiece==0.1.99 +setuptools==68.2.2 +sglang==0.1.12 +shortuuid==1.0.12 +sqlitedict==2.1.0 +tenacity==8.2.3 +tiktoken +# torch==2.0.1 +# torchvision==0.15.2 +tokenizers==0.15.1 +timm==0.6.13 +tqdm==4.66.2 +transformers==4.39.3 diff --git a/miscs/tinyllava_repr_scripts.sh b/miscs/tinyllava_repr_scripts.sh new file mode 100755 index 00000000..902ff0d4 --- /dev/null +++ b/miscs/tinyllava_repr_scripts.sh @@ -0,0 +1,25 @@ +# install lmms_eval without building dependencies +cd lmms_eval; +pip install --no-deps -U -e . + +# install TinyLLaVA without building dependencies +cd .. +git clone https://github.com/TinyLLaVA/TinyLLaVA_Factory +cd TinyLLaVA_Factory +pip install --no-deps -U -e . + +# install all the requirements that require for reproduce llava results +pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118 +pip install -r tinyllava_repr_requirements.txt + +# Run and reproduce tinyllava best results! +accelerate launch \ + --num_processes=1 \ + -m lmms_eval \ + --model tinyllava \ + --model_args pretrained=tinyllava/TinyLLaVA-Phi-2-SigLIP-3.1B,conv_mode=phi \ + --tasks vqav2,gqa,scienceqa_img,textvqa,mmvet,pope,mme,mmmu_val \ + --batch_size 1 \ + --log_samples \ + --log_samples_suffix tinyllava-phi2-siglip-3.1b \ + --output_path ./logs/ \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 35089933..5f3b92fb 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta" [project] name = "lmms_eval" -version = "0.1.1" +version = "0.2.0" authors = [ { name = "LMMMs-Lab Evaluation Team", email = "lmms_eval@outlook.com" }, ] diff --git a/tools/live_bench/__init__.py b/tools/live_bench/__init__.py deleted file mode 100644 index 6ff6a72c..00000000 --- a/tools/live_bench/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from lmms_eval.live_bench.data_generator import LiveBench diff --git a/tools/live_bench/api/live_bench.py b/tools/live_bench/api/live_bench.py deleted file mode 100644 index 047a66ef..00000000 --- a/tools/live_bench/api/live_bench.py +++ /dev/null @@ -1,20 +0,0 @@ -from lmms_eval.live_bench.websites import load_websites, load_websites_from_file -from lmms_eval.live_bench import LiveBench - - -def generate_live_bench(*, force_clear=False, screen_shoter="single_screen", qa_generator="gpt4v", scorer="gpt4v", checker="gemini", driver_kwargs={}, shoter_kwargs={}, generator_kwargs={}): - website = load_websites() - dataset = LiveBench(force_clear=force_clear) - dataset.capture(websites=website, screen_shoter=screen_shoter, qa_generator=qa_generator, scorer=scorer, checker=checker, driver_kwargs=driver_kwargs, shoter_kwargs=shoter_kwargs, generator_kwargs=generator_kwargs) - dataset.upload() - - -def generate_live_bench_from_path(path, *, force_clear=False, qa_generator="gpt4v", scorer="gpt4v", checker="gemini", driver_kwargs={}, shoter_kwargs={}, generator_kwargs={}): - website = load_websites_from_file(path) - dataset = LiveBench(force_clear=force_clear) - dataset.capture(websites=website, screen_shoter="human", qa_generator=qa_generator, scorer=scorer, checker=checker, driver_kwargs=driver_kwargs, shoter_kwargs=shoter_kwargs, generator_kwargs=generator_kwargs) - dataset.upload() - - -if __name__ == "__main__": - generate_live_bench() diff --git a/tools/live_bench/data_generator/__init__.py b/tools/live_bench/data_generator/__init__.py deleted file mode 100644 index e8b8850b..00000000 --- a/tools/live_bench/data_generator/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from lmms_eval.live_bench.data_generator.qa_generator import get_generator, get_random_generator -from lmms_eval.live_bench.data_generator.live_bench_data import LiveBenchData -from lmms_eval.live_bench.data_generator.live_bench import LiveBench -from lmms_eval.live_bench.data_generator.response import Response diff --git a/tools/live_bench/data_generator/check_prompt.md b/tools/live_bench/data_generator/check_prompt.md deleted file mode 100644 index 08c73476..00000000 --- a/tools/live_bench/data_generator/check_prompt.md +++ /dev/null @@ -1,11 +0,0 @@ -I would like you to act as a quizmaster who designs questions based on a provided image that would challenge adults to think critically. The image in question is a screenshot from the homepage or section of news website. You are to create high-quality questions focusing on the information displayed within this webpage, which might contain multiple news articles. Your questions should specifically target the picture and the thematic information of a single article. Your question should be answerable, and checkable. Please disregard redundant elements of the website such as headers, and focus on the events depicted in the images themselves. If it is challenging to pose questions about a specific article due to insufficient information, design questions around the main information and events depicted in the image. - -A well-crafted question about an event should allow respondents to gain deeper insights by observing and analyzing the event, paying attention to the following aspects: - -- Basic Understanding -- Contextual Analysis -- Deeper Implications -- Broader Implications -- Further Insights - -Now, you are given a screenshot of the homepage of a news website, with a already generated question and answer. Your task is to refine the question and answer, and refractor them to make the question more answerable, checkable, and challenging. If you don't think the question is good, please provide a new question and answer. diff --git a/tools/live_bench/data_generator/example/example_output.json b/tools/live_bench/data_generator/example/example_output.json deleted file mode 100644 index 3cedea00..00000000 --- a/tools/live_bench/data_generator/example/example_output.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "Basic Understanding": { - "Question": "What is the central issue discussed in the article titled \"Kidnapped by One Side, Maimed by the Other: A Teenager’s Ordeal in Congo’s 30-Year War\" and who is responsible for the information presented?", - "Answer": "The central issue discussed is the impact of a new offensive by a Rwanda-backed militia in Congo, leading to significant civilian distress. The article is authored by Gabriele Steinhauser, with photographs by Jonathan Torgovnik for The Wall Street Journal." - }, - "Contextual Analysis": { - "Question": "Analyze how the photo accompanying the article about the Congo war might influence the reader's perception of the conflict.", - "Answer": "The photograph shows a young individual, possibly the teenager mentioned in the title, in a vulnerable state which personalizes the conflict and evokes empathy. This visual representation could lead readers to feel a deeper connection to the issue, emphasizing the human cost of the conflict over political or strategic aspects." - }, - "Deeper Implications": { - "Question": "Considering the ongoing violence described in the \"New Darfur Attacks Feed Concerns Over More Large-Scale Violence\" article, what could be the broader implications for regional stability in Africa?", - "Answer": "The surge in violence in North Darfur, as noted, raises concerns about escalating conflicts that could destabilize neighboring regions and lead to wider security challenges across Africa. It might strain international relations and humanitarian resources, potentially leading to international interventions or increased refugee flows." - }, - "Comparative Analysis": { - "Question": "Compare and contrast the international reactions to the events in Congo and Darfur, as suggested by the articles. What might explain any differences in these reactions?", - "Answer": "The international reaction to Darfur’s violence involves direct warnings from U.S. officials and the U.N., suggesting a proactive stance. In contrast, the Congo situation appears to be treated as part of a longer, ongoing conflict with possibly less immediate international urgency. Differences in reactions could be influenced by geopolitical interests, media attention, and the current strategic priorities of international players." - } -} diff --git a/tools/live_bench/data_generator/example/example_website.png b/tools/live_bench/data_generator/example/example_website.png deleted file mode 100644 index 3942a7a44e6e0c2dd4093f9aa5f914b60083e944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2228301 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

    k zmur`2rR6xrW>zs~Wz{r*24f1=YU8fg^&XEGxAGJBU(Mq<7@F}a>3ANaodPK^8O}KX zdB7(;J8ng{*3Zl6Y(2^tv~5=N8HzG_cbw&TF9INj#W;ckNSWn$t^ypJHJ8GYUoV%O zTM?J*EDjKgr-zKj!W&o^kGsu22F2?#$T5Jiv}an`u63>bMUKQD*xQ)xQmzJh+@i{bPm+wfj3?LM5A z|5ou^i+Ar^MK^gpat&mGtb2_;Nv);b+mdmT=e1hR78t`)dlmtMG+003TSCA44Zvs? zW=kU&#fi$?OP=tACv?9_C*|sO4mpGG6-jvyA3mHp@A~2wzt}6wMPXPZN_+2=MZive z8)Pm?9#~rC*(GkBZc#yr6W*QhEhdc&6r$1}c$Rz3YhIH|4hr$Y9x~M<9`Ojr0uX}| zC&BZiy;~zs^bYBH(7b{iz4llif7Y{}l^W%;%P#BsGe={=rhsGU21Ey3Lr;JD(-(O| z2;y0RIXv%m=p$KYCG`L51)621fWsy}2jwxnaRq%=YfeUW~WwwMyvKlQ*N!&~0+mc9fg z;&Scqt|QG_Dd9NAx#Y8s4_VpoYV^Z?I!3~@Hs{?${Q0t1O$HrL7<=gZacir|e6g}N zs7sEwAsz3B8S5YbrH%U`UVP8{CKja_w9fIg$zupVEcgh)F6nru#>RaMtWuipxfdk~ zIp`(1$P4e*8UI)mki`eG9P@v!i7ZQQAszBCrll>y6XHOsBo1XJ$%ZUemb=~>IA`C@ ztnI6^3NtJ0U0GN&ET$NwQaeHQ1bHpEk%=)kzI~e$O3l?oESZ~`b;oZ!=BBh~;d((^ zg_dN`!q?8WLKVE8^3Z;GSQcdT4W^{U&Wm91L_jGC6bQo278ci7*${4SZl>W*l9w_g zTBYpVuyC3?MhkA&WXYYmyXwx`KkoMI-Q{-f5>{5EoT8{K+hjTBdRc*SBAEbv5m!a! zu$XvLn^d zk%h@^Yhy1ukI4)s5R4x9%Yty6V)4jF_($Ol8<2#=N~%N3k>!|{7T51+gD_-j5SFzd znOJatM0FjPPKL`xH>{#cC+1x9+T(6^@>(}5!p-ouaaR@gvLd-;7f7~=guRq?ozAQ( zAld6jr(ONVDOc2fbWU|wYZbIudR+w_tIvr9C5n``hU8$O^Ondo^XNq3?b@`Pm*t#> zNKsmHUFLX%xs`&%<#7`t|Ljs*G=+<-X)8&$W#Kx9)eov7F*UT!YTHq3xLs0c6*EP- z+b|l?<*;=eKv?xf4I6%=W*qCv^CJdVm7Q`i$}eo*)56TpA6XpYSsqaw&OJET`;%iA zl&fRncH>8Bhz~HF8!21JqwB8$WC3tYhKwnZANfgc;Kpph-z+d_!pEeK$z(x!R5Tb3 z%c{q)25erC@*xr+G8r1UUI2S!H5sXwHajstog;@f_QVO`bU@2(F)FbT;^p+=L<)5Y zS&MIVa=doV^b^Tu680C;3qySw z+--p8WZ@V+1YHn0e!O-yK~u;Pl@RtiHQm#wYvj^$wzk&~Kz4eJ)MWkJ`ndWo1b~)q zT*bRm~FZ#ZAav1X>`N9L1yWWPs^O0 zCK1!~V(H3{a%RO$9o}|^D~@b;rO}--pSR7;7l*|-9&&RXna~sYAzU-2N~@%fXzzZy zC4x5V8#=JRSUT$?oJSkkc|S|$a}RBZ!pSR&<4c!k)DR)>rbr;@+s9Q~(9fehO#jgs zLOu%6c)^(F+p8?H1C~i_GN(3#T*1R;RWmilBD?;T%!n6uuEI5T0T8R}#fi6OgI821 z#WjM6@`OBLaa4XNmwj+S2X+t81P1+vc#Fs|jBTWgbV0tJ*ywdb8Y5Cjc8Dw-d+R>x zdy=ckm}}#qm(g^hI-oP_rz+cz^Pap?hP**u%7=0ps~L-}og_SBvXKvAIImMrxNGUB(?lmiQtnfF8<9@bO2SF{qYFS9%Zw$)ns}N|i!pJ)dFqyX6I`R3~!^f+& za;z%Hi{*Y+7y6ZtoLDmG1;Xr?N3ZbHH9l;%_Uxs@<%A8odRly?v-qlhX%?ZDBS$jL zM!U}^y@6l9et05ewYWw395|6 z0gSnopO<;h)9ZO7Ij8RTUI_BiP0g*vyZ4)#4)gkMT@4&OcrdkcEE<+Y)=5pUL{G-> z7rp33r;uBc*$^iQP)^1Pg!f+e;gANPIL}$Rx=)gypWk26jzOxNXAn4Qb9$R9}HqG9++ZRk*ea+!8^}glaQ# zNnIGl>3YrGICaw9aPovZJ~!)T1?$wmaCahaXq%{ryfIR6`zFfn>}@0NTrEa%&dxpV z>>c~u+1vNI{cJnWboo@eAKRh(_jWfn zKH)}1E*l2RDExc5tVOwnyKQQb?s<_;W@beknyw4KJMX6FWEn^p-i8+OcV%gzEL%5~ z(f`lhn?PB1m37~{>ej7$YwmeSI!SfX2?2o>1AhA9r>lve3zoW&VF?Qmf_#F4jIsn2 z2*V39hzueK1es(KnFPVLM1m~Bi(p=+&j?5dGIgiZQ_a(@s_*}M_Sv^iojOwux4OFf z?y7UoK6`lf-p?M-KF@zY3SSf0MF;&0)G{lO%B%n^^HK!_0I4E*znWwQy=EM=$oW zAGv#P{fQg9?Jfa$P725~>H3x4HqjZ9sKz$Q6z^zM+-~t_ujGgKtEMjM=yCg1p4|f2 zY!mRNcUrQOV*(pVj(Juac_ndT#NAGpr_e#U$=@C~yb;i|Bo^jRV zC!ITb+;!b^!qrZkb_1i6ZkLo0>;cf#Hd}@R^v(0iNVe8K^75hAKKAO4F@bF?k-Pcx z7`bsXqmCa8wjf*^{D{ZLuJFOj{6m~rnwAem3i&W0? zOW5bLNfS3^&V<1w+-(Bh62$g-m2k1>bD^2T05(y+mh3+N%7O_a!vvo{&ofIK!F7bE zW0$#mj@iIZCU7&rf#oyGf0SO7b;S@J-0Y9C@V8VZtDA`J<}N$;B@++5WM3X;DRirC zp-!#vt4NF@27ztLY@jOLn*bg8TT_a7;rS9htRkJ&22~EMJ=tB6DPJp%Q4iG^B^0_4 z8ZXd5LJOc>F9;cmAD8Apn~)o>R{)%vz%?E2-Fs%rogSOfHRXaOD_+@1H_t1u&SpKxQKM1?$^78-U`h}Bc06S6P3(FrYJM#tTmu}Oh)rtKOR zlC+`xEJ(H6VrRGO=vS%n@-GNua zH^xiufFc^?ft9B&05bHaCS$PrjQf(y&(c&}d1y?ONfc%fp(0K$}DlC%ZRDG zyp+KYiV?s#0CWPMJGJ<>;!{8RGlnTV^=DuxMKrLD5G(+41_$~DFk!CYQdy%ow7sf; zQZ?}bZ8lYv9eX_jrNARVKk>FhnJB{&AjjvIFw8f6ya{cE{HoB(m+DWM1Be6Q2A~gj z06=x6*CP;6uhcvC3Pj4YX`tc-!@?3iexadCX^CDOjMD`DD2=9F<@M<(Uoca^oB+_7 z7f@$TFDtXtLZItDH#6;~rlbW+&jEBZIXNXa0dRD&$-#%>@o_DBb#fu)r<}e{L|Z)d z^&Qos_ykW(dlYH6jh*O&&`Vj(F>L6rNAtjXSk7izp2~P==Y7<~KTqft|MeI?kQWJE ztc8A_;8NPDLTgE*Y#dIr%o4zdMiKvS(g`qpOjxbS+Q18RvINkA{};db#bCAjjW^!7 z>^b=m7Yc~`Ww{fEei7f8F8V-G)E2V@h2#0zEPIgP?dKD1&GNQ(n< zk|+HarB&8{E6wv|^PCqh4;-Br4>X;FTjc*Au4l5b**3S@Y#ZBVZ=7tqw%Tmln`^T- zy9t|ZbF!9O8&x|%oF@~+J6z2%vo zF=O*i*vMt_%PGxFH2M|GrI4VCx^*rY-AT;?yE0`w_JoF(fq7ZRhWBYTT0HRb40Org zxw!`@5=rnke zS%f^3IUg=C%~JR_BSU-@^kgQ4*880$40>)>ka?SJjRaWp!Fe~+Yz&8ech z#+g6K90NsMC^vT&zNZ__NM=}cLuLn6Ittdffeb7;5MK2vXsQ`klxjm7|1m1i2VD3y zmG(s`Fm)EKZ=^6`fwrNqK_qp)G`Tb-<<5QM#Z#Z?n_%@_)n}3W`Zxmi_KAmIo|(kX zO$l%tB2S|#Q$n%~8KhnZ@jX?|Ql2Z&fkl&CS<7fVh59;f0qbsy8TYAXgkGmNjhEd6 z@Pa884YP*RJb2yEr7=yQ6FuO6dALMXDW9G&e% zH#D@K9*B4JlS0v9it)1!qWX0{5Kw0Xp1QG zR7`fJhs?X>ir+)3+QVd4+;RIl$XT+h3)}J_WFKuDgi#v_a5X9{qVe$Zn&oHb<_eFxEl|%b(-2Ic z@i1j<{QSko!y#144_|NV;n|wyk&iy```CC zxQV_`Ya*Jb3sst4`V3|D%K8D2vJr(g0te`L_aOU0cy*O?vO!lv`{H z#sPeRPH3+8?a*IE>$Gl$1ybC50tGY}u(k33Zl74vu7@_BMd#r=VL|OGuKUGhb)BZ4 za;Z*%w7MRWdwI+B!*ff#@{cz}IJVuJfqa#hp)9f6G|_t5BNhn{;tlWLe9i(D6^S*G zEzFv-!hkI8iZ=uwjtue3{RS6Kroqi%)axS8N%q#;{EqcAEs@Zuv&mLr7tc(Q4c=`P z(oRQrW(V4%bJ$hPXWF_Hoxb5E#5nfm6oIik6()eAAjSyHPaJr$%lI_%E0Wwccz;4R z8dx+Y`X5RY-gResx#m%`$or+t_xw7;G=Bd7{SZm#K{V zlz+dN{fQ(n6`Qc$*WO0o)iWorw)y4u99o5@n_?lkc0rMowU|P1Ebv#)P}`gd6>|G(y{-)UnwOZ_ z!g#YkC^+Ez{r`C$BTB#V2um73J>d&+xnL9jDHy%K(Kt@e9A#lEi^y<2<~r zAausxzjcLy1F9R$Xlltg(7&vF`!0sD^2qS9hVbSfiLm_;RmF_Og!%w|Br!`2oUR+! z25^Cbcqn*ejB1yH(5`jYBp;K-m{r@fBRW+6Fi=^gf3)$icU*t#X1f>&Nc~27?p1W9W&`BDW9wz_q#gKr_41 zkTl$1@Rf&NppT4Zj_DaR5E0a7Z-`S2&=g8nQAs(1%+y|=4&L$5%la#_u25X;nBVs` z!*8JRcNp~N)D!*A;&V+6xRWUENN$GS*PuaJo7?*H#vSw6!PhdRdX=odD zZRETaUBAP;%YublwtoWq5~TFB^M_~NF!^2=OTs{?jIAVt>uv(3vXmXH_3|;p$@@ZEii0m-{)HTLuiJXJY|slK5QTHRlGRG?k`7M zWFBQuUkE&P ze^s^WTv*!p@-CioM&(tyu~F%drw_`gdEx?qzRZTFa$qU1HThd#HN)}8S~udA5p@0R zPibz2AbN>~);u2n!JtAtKLf%so%>v#Qi&o2`fT@SroiRS>$G5Xt%#nJ;Pi>gsI%Rj+c%D$Q@^PSk5za*nrlkb5U)$z?2`=h8<@a`9l;|p^oFj| zViBlaDe;wTO@$A*Z)7|Z(~aky&IA3m!=&)5!jFH@-67}&xh^<(cmYO-V7n% zd(2(Cf8w4-a04l&u-R@d#8-reMynTm;EJvX?toQdUL)Rk7`K7(L18>yfc6ImPkmWE zp{RKFg7-P-)DrE@_rGLGF0+kW>68r9Gfvdz&{`>#+ZfGDJ~PXqoA20c+NxP>RdyD@ zFK;cm7Z};-ARX8`cTY@qUl&d@n(FTl0WD-RK9X$OFeoVkqtH$iX2+i4B52L`2)O$I z*pCN1JsEP0m0cJ?msnQOb}4cMPG#{=GbLP53K&5YxnphK#xX&)UD5 zO5`+9rlJc$RA&qWVr!#E4&HNFiOTmA-Fw!7>JX&+R%^NX$ie409n2p$ z=0HB+BMoY}fW`T#nIGQ%>WD7tZorIKjZPzhh#|x_UgqthN)bMtt<>+Eu%NP}z%aYu z#(nE2Tw<{3`!@z6W0(Z5%u=;=h=C@KFV9`OW?knP?D$Ygj72ECTILch1z4V%6OIXj zbg0v4dp5k&i15$w>TEhzn@n3)TWo4OBv%|*H+?cXtT*dArr*cc|Kb^K*9bd~7^UeS z*UY*dB}!b}DAYKnk?>j(I@h%BefQWed0F=hXLARa`zen+Qyj_Gr;4g$NTAL+SBH&@@YA}6mK7V2l}xd zU%0>*{|G-VtY}=9WttWS9WGN<3x+@~|MMs()kw7~{H7~#)?PdG0(#M&73r3Iwe_XC(&akqqKrDc7 zHh!*}-7hg=gVlIe7_{Fes~fapaq1}A+I~CC6+~YkOV~P}HygvBLQrh?IW&cckmR-K z;?K1HYaAY~Rx7=50hRn@hujx<{@ip#h^;Z|TP-L?)whucW0AXDZp!%-#Kt=D)X4;R ze>WxUGbRM>^>cb1CDt@pH{tq~Q`R*)%0(>Ce(HlQ&gUEJw=qT(sOLSHG1^3oiu)pKpRU2 z@Q4O!hc94zb4qEU*JZ|O1nd>*nN{V^Z)EzZT;!Tk4BQC#OJ_A#gwy}n5BiRMbvWH< z{TVmncQi#bCyo#_f8e)Pax+sgSDAj)JINO~cJW?V)oDf^e-vhb30QiLAs!Kcq%d=H z@C3A*d!~7Zdk!RB;spvK@D9e|LG1y;jP)TaPp#-6Lo;&}PT^6JEAl|a=$f$ssHq{j zm^fiFM@2mIwHF)~E2u_HwW3N|x{kHB$2ra@8A9$}>|C%fbW9SRiVguCEM=AyUXj(0 zhOg+|xg(s7I2zrlw5aM_I**lDI)ax9+z6*n)<4IoCZt0D^xD+MggYmg1ld+~7L#XQ z$vlOkIpN_R(#s_^PpUsMWZP3)Zv#YUa;?xqhcU=_jM%(~CKIphX8P#g_2*0HuLg)} z6A*i>r7{zfjaCdiy3pXOYIkG^f_1=!trhpH>X)Cz%pgyFKLiLPj+iDYH&oeXa1iu+ z9|{Tz%u7C!M4qsQ!}ki~T5WCXXA<4UMmY+J9#y5a>5*kI8`P-DvHR?r1hT}lMF$y7 zduX$`n*w}{Gy-ys9{QKb)v z9hP1rl^Sz}KFjsLFQ|95C+l-WCoV7?=cjGF!~&c(xzRV=A#6_<2(*YzvR=UM@jrba zN6RBL6mzZj-^x@!TT|sfLg_J|Gy%Plb>C(lTQGx*b+R@J6xX6wdRshM%8r!zEJ{B~Cx(8bQD{9Ta~M3)=pIDu&;Zfq#HxlkhI;x(g7 zjvC+pvIOCLe@o-JZ$OjH#r7U1@!(RSBPJzvuLkR5ocz=8bQrwu?25JaQ`o`Y6of|L zQ#fL%oy^}hX)292_9Ruh$85z{nRy&2KtH>+4>PGf-6i|*K7ukhf1CN>mrR8-~(J zBrmi!3|h-VvB=wg1O=!60i>H-2J!#2Xe{)f2~huWL?~}j%7V5-YvfZ+g+_-M<`qK* zAj8A%3HmDFBizU!4-Qv)K~r>B!`%c0^$0&a__GUrU!TqjTYrJYwPJ&`B^x>De-e*C zey|zK2c$DTRIioA1yI%WDgWdXdPV-L9=^c;{&JT*gKGMld%IMD|phI zebNlENFuKZ);wU3iVW0C7Fad$3t>8s*Qu{w+Gm$&Gaae>=|8f)t1T4XOBS@`(Fr5x4e~@R!p*oFTEE#^qqTBZon6b zv`_D;|Inv(>;fH(d}S2;YiR@nWlp&5c|FOObFa%t28X9Sv#T0wyY5#k*v;Va9X!!@ zNg_UHb`SaE5iZOI(x2_mv1ys|PB2wpitX}Ed&R!|rw92Pucx6sCi$^_#f0`1?%P23 z*UX^l|L7c9h9iMyO?Qz01uMRyo_kH)4b?oHjzKzviI%Wt985Y|+cK{BzLTgdXsryB zDeAvX?F|7ja&|2fF$x=Y*7I^Gn&HK4^1`SDIzP_OUEb~tLCZ5VI)BB4(C<)>PCTF+ z9*zwcJ4_5X>_^xr(M4*ns|un>3eiB}zg#EFg)QCW?yGH-8~pjT^$0Djp>ie^r#pU* zf;pv0Z{sL(#^2hDkbP;I~zddu{hY@`TnWQ1EUZC-D~*d%PtyWxD6?If&gCXLSHR^(3eotIoW9l%4fs`w{~px7C(QR{?iT$_!CzxrEg{u)CQX%{V>Z zxbmn>=4<(mQ*Y~6r}Z5rC4b_UO@;&d@~ku&nc7~d)e3v#jz_-v!;>zzMfD_2s!_c} zp14nm%%wLaP)MJPN7{K>6u$%G>2hjV7Hu^_WfYsE1ni=vSTiW2) zLva)WF^`pQ!~+Fh?R9Yz1arzUTGy)ZD>IUav_vUXMcN7GY9v~4ZG-korr_sw-6glm zU5Zvaa=4QAd^DR(#)w+AABR%EAgrVGG=qyev(KMSXo>bhqd3UpCPi(1`&96*F}5z^ z51?R*4!IgK0si0MurRdn5wOs8hp?8Tp>M<^{KP_NKv`D}_>#vA=;8-g3cDo%u}9vl zpX7)9>mEHVC<=_P7Po$W&a_bYxGwk(qXiT7G`iyZ)f>zme5m^+R2K|6eTx%@~vG+oXTT14u%dWnGCvSc z8C^l+VkWD&rH?C?*kIbBt3vl1=0f?EBY{+t8OGZ6hEH}B1$86ZVT62^De52nIa@Zc zKsX)mv!(@~`hHhJg= zk&O@9y@?{WE4YY+DZn{w8ZDS-3jd9tVN(Bi#zgE~1eCL!_ka#NCcEy>h&KJj`Er62 z(yJMjOS15y{|IxM)0_U}q_Xbs^~)^Cxr3Z;)}|I79fki|k_L=F3T-2*&}XwfJr0DQ z8fzj`qh4#eY$DyhTHkb}^xxE1j8vJw2Gf!~X`|;joX%2$O)!na>l5Q{Mm?a1)`{#} zDSq?g8^sax?d#-n;ZY^DyDOM)egBDq-cz zA}=EG49ylkjK?UaJqW@~aL_sOlL92AdP$R~hF@JSchbRL3aO;MGv_IZK<*A7q z4^48C@SwawvjL$v3V60*!cjD-_?@W#DAtZLN9@Is)(qr;k01EKF%H(ZOGn=K%lN_x zRq0fqao~i;zCG`M@3p*ZFuvBUo7>Xg!Uu)~NP|Imom;S_Uy3LA^Za5U=C_#|$Tymw z%k$cf$~TI2oM7W64{}IW^BN-s4nxk=c^tDuQ=*r1&=v`R!Re1_Hvx3BvCxm^yjGxO z683D|OWAS(d^)XN?2iE7j$S~lBD4(5B(D|A_KTczUPK6HP0#zY#jI2HxRQ)c1J@mZ zT=Z686LGei1~{=@M=)D@kq9R|j4rG2A}m3CK-sI0f0BELjJIjX%Zv(^CCp!=G<&7? z!VCt|uOLA8(w+-Y`BV~nW3RA7y#YL|IOTeAZOqX8P0uyWz@J_swL1Gmzg*Wf<~2S; z>svICBE0 zFP@jXuaU?ok8zqLD#xq8hrJ)V7KC z5!3DXF>qH{?2fj_eG(nB+MS!gjdTq|b~nh|}0itUUKKCyPjN5_c{wsOs*ChRy4z z&kj~z>sd~WzY@VrYbMvI1F`S4>^=OBs>cMLlhQQN@C{ zhb<0Cw*gjqNegY=&{|c}ciffcNN^G&i0R8~^)#(y(bda7?ePmAFzrw~4Bzvl$;ar51^5=LX zeqy~5K+|`hes)>4Ct3Ezatb+p_E-NoQzHERu#?ZS6dKuON;asvgY{`c*r4lEw?xf1 zT?dO&x1-~9A|f)kqFH<{3h>xOGS}!)@0(6_32oDc-dVh_jYjy5f^Y+c-RGRdr}GOj zVKwJEehmb$W>NSiebGJ9}TF0uDi%nGH}p(MOgt!2;)a! zW#n{?p#&JrqdxOV48{^OF*&;)jUerN5Zq$pUY47dw7!O5MXY=Kg%hmSBi|_50=0mS z)?<6TW)f03@%#5Ovvi`JTF>9~+fP!XG;Fd{o`wwtIf_;CQ16=|M$xJC5{F4Erh3DTD7CGUzFI|If^du=>2L1A zFcNPtsrlQ%y~0LgQW1FO9D>|lW(4TTuj`96-+Zk)!Xqfkb0--h9qx!iIn0$=*d3A zR~Und(FgU{>iY%u_q%_`YArs~!g?e3h~{e|jqB$#$lEyK5a7jJ&zAkmHTpVw_brRZ z&C+>|aO3KvQm#`G)a5^rQz3S=OCbM&hEo)jG2ofKS4&>Vi#y8WdT5Iz?PDmU*An@X z<(i)howyKrBOcGw;?3w<(I%bt;>S~1K@EdX87>ub%mJ)wW@f@YCCFsCejWLpbp*8+ zHBbcCP=h74JdJ>b!{UoHIxxao^A$M&lhKzHy zDl{uSfD8Z(60kIub2_OLDplyR1M?$#N#*AruwsfD`oH6*1JnC?&vf=LqYdU^)7}ys z)b0Z@_mRDK(k_w5@^GDTK#G5s@a1El@C@GZnKJ!16bO2MG=NO#{8_&JT^KNB$~#J; z08j@qkCydd>ugVskddcgCaxb!&C9CemD~4n`{(8}C+j&OR*LBPu0nd>eq9rlH9&&N zUk-IvzpsS96kVPUhg;4e25|eAt3xv#lZqHrk4o&OsNl^bxdOZ~dnlV?_LO3Ew~(}P zaM34$}ze^-qJNZ(ejHEfs6m*R(7#?TtD(8I6+*g}f%vLQMJz7!23Eegx{$;2-EH zHZ!VN%7VL%^_2ast~Kd}-YisCpE)=Zb@i1gB9ZB7pu0ZaE+MDs&piE5!3ijbdGD7@zk)D^@>cfTI1tp>%{G4^l+GcHc@^Tx@eULjo_9 z(|`;gwUzwVPN_%LfUY4AUqFdx` zP6V}h`q(Ff&$a8nvuH@O0_NVBPdm6RzWHnEYvt%iKiT`0zFloLN-h^jT#y2#Y<2j- zpLOpuf{Bsxj*(rCQ!poaCc5ty^!){aXUD?Jc7M2nlmQz#oq{M^t|ya96m1UjxnIV^ z6r2Bb)CJkcH5u|@rl(Nj`F}4?-~&-y_@%Os@PJ47ht!tN!R}4-9}4YMV3hQ52Y&~j z)zveMYP0kzO8^Nd6O1t-O)lJa0TIEvXlrE}yDrhmmPVz0uqQVa_5EY|L0%_PWEv=G&=MEj2Dos z#&+<$RDvPg`mK&}>8!@iItP6C-B7Nl*ih-J|0Jz{MlS%Vp2J9@O^?F=Uab5O3$m#T860C3oW1L=JMYE z%^Uw4nj742Jd4u6@5HVQIrbaxc)O5CH-3AR>1AWcnz@gC;mVtye1z^yAg)3* z|E!vJj|URY_@rt1HGDzgMgx9nycTVw^u+tcRZd;G){MqxRuvjfno&FSBi(gm?ZnIl zkx=}o{iKg=fXI5*!PPT3%&A0_sqbqNVz|zr}CxnImsX zN{~{99LZ5_h>c24Vsoxf>@okzRQAH}Jy%*&c=VA>uqvynY{|gXilT=l6&cTvZICV+Imb%6W|_s3$LWJ-uT5 z1A1ix3Wll~hvM!D<1nzl_%wpDJHSZn6f{t?&%f#04hio~%hq0n$_&gEbscHT^fl;9 zlzSD`6Ib>s7@P+e+m_Cs;VSI20<{FJqwHlrHI<6?e~m{eADW9~hmG2y+oI*VnfQsz zfok{Ljn~l-=xkj1Ggk`A3Wd-eL}81{robLEl@MV{B7Mz2Z(Ij&SMN&Xjds8YrpF$ z{rfd@6bI(GxICEUP*U%zDS3i$|N4t1Ih>K~ZkW(;i26bKBkwAeuSWLK0!q$Ut{FM~ z;|D!yeR6N4BQFc$lHNxIN8!eIwJOw?rPNvrX|wuHQ5OSg!B6NwapSF0wQn7%m9#rv zcI1jg7>83n%56@+*0Bo3jp2gkVS4lJbUWs98o+E-ev!0q>`d?N}u6t1krpbMM zw8%Uu|Bp5M_(t%0?2*+5l_vGQC&0Y_$+Q%Cx zjzB#t9$TcF8zVDb%!s+#S?<-Sotiy z$LsXYOA(|ZqyNVfMu(Rq8OuNa4}%DPXgH59#@^L-zqG(5UCn1IHvLp10x{CiuHCXl z^BLWItK8r9?)wk(BAj_^(iy!i@vU;Qjbpkc6P-w^r@Sj^%6qsL+0H;0PB8;+Bxn)g z{s8E_!3LQ6FCg)eDKUaO$MKDa2hVYj^Qq2vPcOW#8OpHKmc{svK{XH0Z5gA6Dy`6F zL7zDc!YW{#LFz|Su^3PJpMyU$PWwXA!3K7dT6VTG&4+Pshp0oJ{~Z$2f<2aVvH5SD z5W(ks2*9&Usulg}VUlOF^8hOo9uDp-=Xv_$by__tGJpGb?p;+W*{yB5O;&8ekEEqh zhc*2XQw(u+1X>ru58Vm%+#BqN|2XT(>~^GY|7BC9YE@Puz$={K-!@;&H+=M}`TmJ} z8A+$dwh1T%CVQwVKUwyi%c*$J>Q*+A)J_I*!?UWQvAY9s4-JT`u>evxFa^7|-^p@? zJQ~Ry+uyxWxe|NhsV5ts!uirKfuOL$X<|E^!=~(>NSdg!7svZ2s(Of8*1Ai8a zu?tR-9Sl>Ghx3BPqL4Q4dY=E*(vGGtz>g(adXkCR5Qf75Tnkud7(hX_Kc~)J|w7uTZmY z{I-#ev=81OKO(E;TV2wzU^6sg-gqS1$CiMX791NTG;_twyE7GNZw1b4k5H};%~ldV zXEWI4Q)jfY@!6>nlP^IJI;JS$&P}tnCGOhI*`x1dJFpn2;j@DeN>_AfkU|(3CZ+{M z__J?YOJ`R`bAJ&kLC6qV|Hu(41zOv@U-0^`0aSO z{%o7x;LHuWCBCJ}2RAQ!qPboYJ9ExX>LVh=Z)J;@BA$vJ4Jp;~Ps zpJan_`$lcmO1?bot@O_S+NB3SqSZlDOM4|94rYmh+Rc|UcNa6xYy-_(;T?1|hN-r8OBCex05q9N?Q+ zB=<;Z5uG?;#ejfz2W#t9M5R(n`DwB8aeJt+uQL>nQHfF6237pqrfW-QjU>Hnl|jx` z(TS_o3|;;~?(Wu?*0MLv0v`4d1*rX^*wyR+75miIy#d_FuLsn2);(8jOJ$B<>WK+_ zLeA3g`?<~@8(tk9E~_LLOEVof2j!zB%F4*ulo`9--I-{cxOjtQtal%gd-8bHKDr5t z6ts8FL3tsg33_&q+;pzO%Btw^R8^JG_nk$v|smTx=yP zu3LUrBNanW5&u@McZQ5yxRq8hLz#kTwsqc#w!9ZV?^2$~K1sqzWFvtafW9#0sLe%r z8p@7Ec2{-PmIN(ZD=_;?tq;ax&=e~IwNpA@v+sAh;{()h!zKI&ax0=WM7uONK`cr< z)C-`#*rS;XZ4Kg~bDE_r^7B&L2wlV%WQ7VO%Nbt?2~K>>su{?&1@bJg1aM=Av=+zV zLjUZ}N(CA=UrA&^A;a&5#?-+inAdlTPmkd_U;Ny*gPMB`TJ0wQn&ruifZNiH;>oko zt9+P01P5bglAyiNMwRuK$^|yi~B4Z>GjNvC68?D7h4G2MaGK9?*U~E2(tzk0iGJoX>bHO6?pXRX*;T0x+s?nDk;3Gy)9FXIxF>!3h}KUOaaZJ5T^SBL zV{w9x;hP2LVeE}kXTlUl?sL8pSYW9fnB85ZCe|$^cWB!&5daTSz5;y&%4@m}f?57B zS_&*R@A=BXPXz2mMZN9Okh@x|&oX2?*zw@Bt0EB!>}i|>0|iA9>L|?|3{sEX#M#m} z)nP84S!#zr_?HY!#F{i2U!K2cc@_nDimw?XSo$Ufq^Z7nv$MG%`_GW@M0H@VKf;^n zmN^vQ`VpW)ugCLt;)>XkY$buk8g3A%@Un;P;yH-vEhHc_Gn);_oVbC7Nz%VQ84JQN+-es2!I8hooS#- zlMv3hskR-hun(QG+q$1f^mOOc?W+F57V8lEh&zX!<8H`z0&-OZqk}1##_esB2gsi^ zE>7O8UVZaM#9~ajRd%H?338^1B)OhRUkfaLm94{ppIBKLITMY%Imp0Y9DV}IFf3@k z`diq%!oK?%ly)#)PD%d%6?L^vI7e$Wg*aa);h4|c)KA8_j{|gYHZP>Rz5h3g(WbGh`=XFe zk*i36ihF&9SNN8yXAi2e1CrETu$f})FhIIn_FJxNR_vpj=&2v!pMf_ZcLjR2BZm@{1)-4XrW}Mx4KOopAd^!ELHm!pRIBoiW&6qk( zG)MBu|Kd96Lq~SZ;1R1m#!r#7LX86jlkQzFgweH9wC4b3G)~j12@cR!YM~c%3@)MG zY~y48di>>N^2a!Yn-p0-8q()~jThh~g-@&vU6(40ML8^DwfrZSE6^V7K49{V$gOqN zl=K#VE+R=W%CeUcSSQX4V74M=ygjFri<8iuTOkO3HHR#%x%xS6QmOHgMK-Q)P;>*u zpTv0|<%P!^=P>BJRBCdP-mfi1zsQ}F5*z=I!~Ikpb=eC7B$;JJ&9O9;0cF6gNw5cu zg)N#NRqfCSn2Q#AVZwF{=m?mG|CGJ z$dr;Rp6QQSmq=-~A7Y%~rFrj?fO!gxk>J;vy5FXU zXdceC^Es)45{o0rr^jT@AlYgoEoA{&tBX8a-tG?_K+qdOtG06%9o>XAgPje)U40D3nSrqA!GrO&Wwr-lS?>ij}$5Ta4(G(_KPQHF#}Ge?6oc z>TfGtOafC!jhbJUmk$A-W)5SHzlCrDwFwJYLoMynXAIu@6!jlRLS3jtkZUm_roW^2 z;?P=QL^zpJHiuF$hZyb=SX~|UO9uCO(^fm`I7;bSAt^~H1Qg2Ues=#P0v)ne@3F`Q z9#Qtk(3id9L4 z7x;y7p9FFG^Gaagd2oLg$A8=gqA~^@;rHxY^kUrAe$Gh;0?KMtlG<^3!Kb){i+#T~ z*%N}e?U+3$)qkr)@f{6d(5|=R%HjY-+*pGD309*<*Vkh%s#msMBeFsU-FFsF-WeEUn;u(85`5e6C<8czWVJw16 z8W%QMamjXNVYdL?q>D-vB(`` z3+0`;T~H{GHXm<=!;6NrvCY>vkZJF4h>hpyT|Sc=!(X){w#Ot(#gVx60;Ubm%mQEL z*sg=DiWL?YR1?G`u75aIE|_5*{(|K4F_E1*9a<|C#P8pP*RWj2NRwQ>EY6y^F}ywr zgTwKP!x3F4Ri-srUro=$9VuQLV5kUjWlZ>gAW{2FJWTQrQAA$a&D5@s$V4~)u>GLs z3j_noC~*js@eca~W@yzhb2#3e?lyF`qm-G9Cgm7(K(?gEf-)y|`W)_vW~>b+pGiSHHH;+udT8qe-TSJ*55%zuvTHxC*lgb>X$t zPnwGJ8tlF~w(I3X@;9?o$Kt$B4NA9~;m<-o;Uf1->#$IbYbn49nwc5OG2kXC&lagX znYJ4iIu+!Qb=}>$!8Ju|XtU&zhq|#ilL^UsZ71KS&+*AkuYN zMcfB%rH+q$XOPX`$(jRUy%cdj1%!3@f)B%f2`S$8_&~-}-Qp1(DH)$-Hnf)KMAiRz zqwH!Dh)(Iwjm&0ZmknwD(p4rBssq$_sX zGJ~jnM`t*kYz1HFL4f4})WEO3Uq<@_9{u4F1Q7cWoPGxiPPknOvz%jiusr{xU{0Yo|LQqAVk4p#dLXe`vgd=G_3QU;<9B1>r`JOfvcfNyfX6;zp9Qf<;@lhy z!|O<`D)3kmZjFY0z(1J)v))n7nN8Vt&|7i&q@CF_9$|H?&gkZ(mVR~7fp@$2n&M&d z9yDzFFNA0+)Gs87PF1d~^7c4S!a&`Dd?Z3=nDSqztoyvQRBhyw^id-ha`*N@3gS(~ z!P70t1c>YIa-)qIjm;1uv5p_z0y#Q_R8-`Scxh)y_T9#nYW2ew)B(2 zUEFA>a<~g}b5Tb(q;i5kq1w+S1lI2VsCiWRfA!+ut(fJ|m@ByZtYGZA3^H19yz}=-wqRfT-k014RwGJKi6WJrB~(F>I5Rm%*soQcJ9xaB|P4!XYly` z{cCSF!?nefl3WyOFC8`JA+;eNi-~AWX0Onl*yzZ;Y|U?(@C>H6_L~+PW3bXi;@R;< z=IKVYp!{v@DG66^EK$107hviA0^GWG)AV}(@`+_^Ya3#qV&Y+Tt_Rlc?JN}aRx^Na zPNNBaG!hEwrZ6_D#wcZOk*+rtpsNw|JDw!R!IN*P>6D8*wK;%09{LahIU^JdiI?h{< z;xo?9QlKX%_2!a_BIY#)q{_^BPK~U?$NON@KCMM#zP{x=rW!%wB-7uodf3pqFyGbI z;-!-gmRs<(6_UuMn<|XXC^lQaQcv6b_JQ}$8u~s^sN?DTi_TuDhj+cylv(bHsk(Qu zT!(88-EOH|QY3fmlfmYY?A)R%{nXb8i{_Xbp`Qrnb}U0DhH9Y9J=pZg;D4(zHqOFM z7W#q2EC^i3Zhr;-4^8Lb*jE35`=st_taev>wcFLU{no2iTdP*vO>NsYRe}ivU4Huzso{6Kplh+w%Xv8)d94QOcRwoS%7ulcsK$op~ zFbnD(lG zOKHcJq~A|X66oKwB(71yN6v?z?4;6JP4CKlJlu_jMG`yJ08T{x@rsnk1%cH27V>q% z`(qJ*$5@iNz3%D6(KKl`?2n|fXZm0aGX+@*Sxme9ehSuK+n&Hqv`({gK!KFuj5L*! zjpXc(M*d3a^mf>(^7P91EE)NCl{G3|86FJM>Dl%&UO_DKP{Aai6E^5iy9UhY1S>2# zs?fbWyU}_0_Z^n^e&2ud%uWEnfOTHryCj&`^Md8$nuYy^_^1&x&iV1u~=<)WI zCKn@aUi1c;Mx|vuEAqyt!lQ21<>nwOZc*@IeU}H(wTilu;d%#m^6qf1z412zOYDVJ z(N5z9<3M=s71k2)^#-HWPSa`2Hs+AQxnaGiD@J!JHrk8cS=S+jbyRYHTfbxg@BZKL zsZP{Cc&~ytK2pFFg$QbiR?h)vjdeDo9z;e!R(egfIW#6#z=#l*K)&Bkb;+@&q{{roO3vC_A=&@fOh53wa)cG3XgHuBcMf!^z zofllkZupm_p7%RrgB#F%d1P;(H4SyD0=mf`0kJi6-^K507RdCvrZwimcI=B>_$ISyv8 z7fpntvStn$05KE>+%V&yX+xfP6$mMury=X&>0eBz0X*|CHEPf`{TMnJsF=oQVWHC$ z&_BXlsmL%Ig;U<(q7D)u{>g{F==;m&N4Ism(RSUZFvcxE0Jd5DxbA$+vGUgBS1Wj^ z;N(5Qiws~K^e+bM#RlO?_h=4uN&KqdF`vo@PbQnjN{*E!6bs5DxD1I0=O$u{F~Y%- z_RYuWO>N+)iO(BklMAxCRdjduxNRAQWxZ-R_e@|q@$Ys}xV8NG7>%c-wp4fXv9Y#T z6zTl^@WdHsCxroj{y0XQU}W3660TE1xl6@TE*BOt&2&t5C7puS)}8^N7ZZE0z2Y@P zphDA0)HeX5&ZKm<-+y69uoTNcUlBoFI*@*ZgU^uTnnzViE#2*$A>o8QuDWd{3H-0U z5c}I)8egfm>XE_;z-`QRN-oA zmr#iH^!{x10d&5r_%&?H$7#uVl$pEbp#`>gAL=3LF+O%&=@N=e#bnmCvy0Ql+i6;V zR5r$=`6}n&NS$@#b1yuxadqJVY;ZajYbd|9Y~zZV0xp#)Br13?r4pDfj)d|pi#j&y zxb7Uo-SR@_Vc@-E{XFl?e!ADKrNX~st?K2S*n7R%pu=G4JaQdk`r9Xl<_+b5sU~^K z;fvVVy0^|dA>>3p!SiQ{2CdvmRN}bl4fb7xugR{-=@oLYW9 z4V*$Vqp-GDZq--ld0-Kkv{GKlX+LFbxp@qedb@~nGe;q@S!KjAN0Ws8LbZo0Cgbz> zbGdY*3||D!My^LE3`O((qDb^FpsYtwO(ZtFJmA3dHX%kyKQ_ZG(sVh07MsxxD#Mkg z5sN4x#{~dye;g`$1q!Exu2WbV!S(BGGp{V|Jjk}gx`L#M}oW2*S=|UNG zk0OK(G=^rU;p@s=%}o_-BeXaSg;`xcBSr3DDo3YX@2P9nqHIPXJCVEvi;&Q`gLKq9 z^^$e)Llj~ggF2l_<8rM=&~-B)Cm8M=-6^>_MhElp0U0Gyl*@b6X4Ih++GYeNu@NZr z==ZCb-iosjWLa;j+8fh;onn@;+2Pou`EJ%Qdo)m1)APT;V)~gchV%K+ zxP-&iSK)N?^lI_nMR0-4h;Zoc$Q?K!szuh4yy&wt~i7!5mXWN*vj$&<(+y<71hpN__w-c5jR22s*6~Zxfq)59DSRAagS$Trb`N z3)^^GP``zY@^*aPE7vNCH)o^u5NggWIpZJ+j25V07scK-byzUVtGa}}zH zA}yt7*vDR7q>nc>=aXE=S1vk|Tvi9}{_)I1P^WRo{=$pL#xu^j0kSQ&=Z?MkfzDO# zSi>DT#-0bk@eG)CVbeu{dC4J(RVV`*IXL;@aRFkhpv5SEYV*wtQx~r$Q8(<`9 zk$={q0Sp~|In$vz4E~Xru@s4%2~KORwbab|c&_;vzoy^!ThP$@9Lk@%`W*u=5BcLJ zm@sWE`@XRx9iWG^y8#*5;p+OA?l1N&VDkC3MLCbcy&fmiF0D+(o-bhEan>ww@q0eP znX+j#k?jFe6*O`#yAi#*o?w|qY0$|=sOfyat1(h@`d=Ruz-03qEPc7VLO{yZA+$~9 z+7Bh7h z9Mqtm8M>{g$9KVgRS9d`(2xJyv(4z9x0Ti#&0hD|7eqUzziJuzHi@m_IAgy^-)=+HEN_Ot7DGzTN+(FCO1_Z9 ziBr#mcTXygxm?>-b<+BW+`MFS(N|wo%Y(m6nX$Xyavjlo;)GDc@_!hP(V)&~|8v#V_4-1fg}-hQ zkhNhCbnji zVL`rw7{phn)0hH#3E4mQq${DefL5ID2v{y}L zg*-tOZ;|hG9h-ZxoVPQvEPMu(oQhe6?t*WVxBe03K-u#`h=3E1%j<{6WAh3DQSSK^ zp%^@?2sD-IKq321Xq~rw1h>ndEfRu~HU{Qlq$HME1V|2tc=o3Mk5>v|C`GqbA!xjc>t6S0CT(5UF5aRLaIlw>h8ZH>q1lIIq*YL)th<}M5P z(eMNqfIAOA5$Gy}L2>fr&d{RZAdW)!Wz>v^J4kORR0Lc8qunzq^e{dodhRwvi$DP0(0iEiR7+FRE+*-^nB zr23hAAUHq0B2h>F3D|0q`*nuzH%IH7eU#;wA(%a|PVFF=snQSq{#O5T-;h2Y{tKWk z*B=nTdKsM!gaTmyRrlj7x}pMnA^6s=3N_axqj*1@g@gO;DdA$H+mBEAT}B ziy8A%kI$oOUJyTc>%Qwe1OB64QKV-Ld_O?i8cMzJWaU^#yG0y{DQxn>K|7$@vpYsO zZfyQ@34?_qb=esqI`P}dSGzAN8-hwcciFuw-U5bbEa>`Vw+l8dRta;U#?44af}*i|mp)Ob&8z0yLv9+n+Ro;~_EU@hrK z7q6VQt#C8?H`<8MFy`hrSNc%T*Z)#^w^d<+e+HNrUTOO!p@$N>2htK17j~As;^h3fRz zfKbT=A3rNYhCYC_)3^8DfgXPOuLv!uVl>wc6#ZAz@Al;>=i@2gw)L@$$2xF{QaVSn zCfPnKE6s9_LloOLDP~&33Mi`mZ0F#e={=X2os_CRU-NfwKVQKC!Lb~|l$t$i)%kXN z}EkD{{LmCh!LUIhP}zCM4@EA-v|H)Pik2XNA|L3i{1Q$UhjcK2oG z1ya#)n}T-Y+V%BhpF?o1Uvb|6-E72S_$aVTc$1K$LaAr*#B7nh-~a>wCO;w^rE$rH zMeGp>sSe$Ow?f0hTz}dy#WA`H8x7~GhD1Y=pN5#6?h{j2>ma?er2wZqC-gS{d-<-? z_?r;Q>I8PLRx;nd0d)$%GuS=wofA6lsK#fXA>DJ6@r=i8%g4`%88fBX;aj*atyj)3 z_>v1~5%U-(XAcnpNWA`^lYz?x5BOUQbn?3`Ahr8ss-0Pw-sA%qj`wxE$$wwDfLPyqf?DnGdwry{B6?{PP0@m); ziQxkuVe0OYssEI7wyCMcT-R^*i;*Zn>)uSQ?(5_jv6u1Fhg6vg4U;sM!~mj$@Arra zt~2EV`qC~hF!kGOY&MaShgq4&=NJK|bCc?>X&q+IUnXfBxn-(kHk2^^>$RxXXqmX1 z$~nL;1R`+T9D6#4MGNM#PLMLWXPiLE7AxEL*agvZIF<6#^%|s zLmVn3%#=PGF<$;3Wlvd@jx6;OeVgKL;x+xxc;sv|iex1!=0FvL{5mpTt;YRRj5Dz? z)b{ihndG|T_m{Abv#F>or^LBMXA2@;l@bBP4(|)z;uDf9xz)hIprHsWge`T9AEnfH zB6r^natjQ#uoQYr!0pF^u4i<=Qu+RLmsgPE?}ds;8%isG4ef{bz?UC0A17UrG{Y$y znV&~G|4lpst_u%+IX@c_M^cdJI`1hWJ{-Kw%G7wGcfD$^kh5Nh8d8#p*9OV&sn?n&@79 z{~5#~`-HKGObiuyj>9Z45sp6j_{rf-a0W6eY)Pjf&8|#eNRgNXx~~x}NZi;_`^vq^ z%NU@4l;jscWfNS`K%uYb9QsC}$}DcRl#`c3?7U zzMR{q(D3W9rZGxhRk%hI5gKM&86G1zYQW!qcG4vh^OmoKCZ4+`#+qMNnB2w54BoMq zk@UoD#$fz*%9BoUbtPw{xR$p1LBWXWzgeb5TfzOw&*4tFonC#868U3~^4jkjMH`IM z&zPtSaK7)I;paHyFnj0V zGcDmj_ie@X8RmY$^Tk5(qLKbpXkjN*^X8P&dphX=>TWh5#F$goJWS&V8KkQD-4skC zyyy>P6d$ZySK;Fcd7aTr9DYurE}+#4ZoZ^`t%)$jWOu3kR{NxKaWn%3J<0P8{2fyx zDBd7|2!|^JfP0r8F!LToZOH*p|I^amB=U2ra{ZB3W!^06xg$K>QQ?yE{Lc|a872`H zorsfb%R{edpwqj9yXq>AqN0)xDRdFhvs393$41yStnm2f$DQ=g-~Lwn=(cI#c$k^~ zT+vR88hyTBOdO7;30%c9tnqSDj7k*Hyf=Pachk5()kqiOa}6=dC~x86;#yM*TXy9~0q z6U&&#u%Ga9xMzP_B~`XbS%*|=8^4enAkB7)C356CAhrC8%j%j1Wi(r!9(3=G`Iui2FVu$b(SYHuqt%MH)vF+&O9fNqY1hO3!RjjR#G(lYQZDK*jHeth5M*>1~spUOLM!g0Unkjjc^L~_bDh8>u^D)`3p9#P33TJ#%b#y;1 zY|BPdk?|tD$|??FkiqRM+R`$yWOHk_o`3G<>4A%#B=e+ zikzvhN3+lm=hf?fmjc68vVk!unJK0d)T?>@5eKVc?p;1^*C@Gk!|Vxk z@cgc`uYRdep~1ma1`wDeFtD1&)vyq#;%VON(6Etu(_2S)rD&)=rTK^p;sCF^D||6* zT*CYbf7W-}S2tzey+aIPM)O#AMHQcj)SSNg;02ARa551E^flH6b%jH~9eoD=Z+GXA z_=Uwe3HoL!SAQpDm&gsxb5u-qvqjs~an<)a_&DDMV+(SjLdp11zS|4u{$`jA+m7Ac zEQe=0XlQ69PQ_LzB(d0y{VmVpj~*Fz-v0|&Frn6x7~7ApA<0cR;waM1;{uM^dH*{Y7buR7$suDwetGPS3Q7Wp}zJMAn z4?ON4+LpB>5OTWKzVwD2)?e^x={rgsbQ7(*E!$YeS}}#*xvXZB2IS*HAnfTcKGvI| zKvy#U#&kFUo(-pnvZHe%z!*Zm3+GSwWeSU>3a{Nvh1vU|J-pO?&zZWEo#+ygooGjm zpY8C?N>JwK)XXRp*?(1`&`1ez(YyhI^{C>~p+;vnZL6sB$G?0#3-kP`fxJ=S*1P}d z8Y!;vBVE*!S5>+ji+F1pdYU6N=edjg>TKycF}TnbeZZgg2(<=*yM13i^;GS|EiRVL zEBWkT>HR0{TXAV!aIJ!c7t|d?q;CnG-rCNQ18FH|b5*fZGtfOb?2XR`P?(5~<;zg3 z1rPzaMxAAA=grRIuChLtTS(?YXo{6q(z`L$x>fUkoe;dc7I&L%VwR~CnE2gJodo&J zvc-Ovz}}~ADZ4>vZay|GbCt)()pRKPXe-hOUs=>DETfwWH%q#GuZH0D4K_uU{xRLB zv$#CF!x62$W?PtdR)Krtt~qnUxwT={JYTAKQd_~^_w)|F{}t^yHr4QzIOSeRP-(QO zSIRluX+5+uoEJ4HH2Rx_hd$K(;)*ZM0zoi}to90A_D--WEv zl2VAlW$b(Q@$lK8JNOYw{?WYM8+x?&QQrCzt}-Ex{5!N4TOyxVVJW}jA4ro?cq*1W_K*qL3wV0|225RlxFS-5r9ME-UC!E*g`SY%`F1Ux%dZw!Lg ztu2xbMzJ$FAo?Q#!0m_;rRjt2h?zi*72L#ew1<#?QyF;+T*AAQq!X(sN7XU~n9pDl z50<{c(gml?<`?uSr2cvY%CGVx7h+lI@v39Wjg%;1M1|#>zzOT@c&fyl>QsL^3BrK? zY}9Ik9c_exWIt;#El!>tVe-Uo;)^2rpNzPY2|mx~O@K_?_}4fT>x_jG(m=~(ktInZMCS@lhS<;2+=#7&L9yH&D;?}=`9AgP9X7?2x zFN!?kWM^cAXegMy8#~3ByA?v<>tvIaa1Jo4mv&74`>tu6%%*_zoixJ$cfUBr9v5i6 zM$$ZhX-s#+FrGqtQjdHT*lqfzlCGB6FmZ$Y?8UYEeLJJ{ki&Wk;mg3m^s0qd-iIj%+b_HV|56gstYwe>6>A#v((iX%5KC(TU! z_1wbly@9|fs)4V+!f_B(M;zfW67U$=qgH)UImIJANN|1En|BJR4yeGq zF6J}Lgyu8zNh-dRI++<5Q}`rBs;6xmhQ`lzU~Nl5h7|jTd)5Mr?}}t)DcNb%dR6J zBN4a(V8rdUHzJt#>CFr3lb9>&&ngQr@4)llwswA~;@!~1RF?;&3i)WSe+?^T(GI#> zK)etGJ38Fk9k0r(KhzUiNxL6laq#pho%{J+xuGx2Tsen%REXlsN)kR}82CR-Z#Yob*>5EX36l`s1A1To(|Zf@D|l6w?0<~x20~vmPt*BNFKr3ymZqM8P9_fW5?5$q&p-qev}}CI$0qR3E%7%u`R)gb;l9na~k0%nUn|K zLlU9JVfJ@Oj*sm<%?6FoQitZLP~u=OS%67kEc(wE6vYLd38`2A_d|ch1l{{Ano+Ud z%_q>N4vx?nOqMzD79Dq0_L(Y&w+dbaQ6$=U<}txCt>Z>9Gj@KwpaI{{vjkF)i1%NK zg)={fH7S^6^}*h8>19lGrLfcVSbthhGM_o0E02ZNvBqgDzz@dqzd z*m00yv;MEJr{|3mVpJjQId!6^<1#PghM9tfsY5E=VD-5zC;G~y;TWq*MyE6CX5Vw# zJG(1q2+Y+_l0!HkkSc|{y~;Qsvuim&IDvURd+aGx=q$AU^ee?uyTK2F!yHALyWQ=IU1`?UM zVDO|qA%;XZ-(3tF&Hc9H3N^ob8l)J%HWR_mNJm>>cF+5Mylk?7gg2b$f9ozy zS~p&=&%s0?=1{YOq$~yf08rz2y)Z8i7t_dIkC)r>J+1H;|NTC)rta(*e2WXyW}2ZV z5nkpMVRiuh(nPv%-*~@o38S4j_c3KM)h?m9%{I?|JGJci=Y~LtHjWspJ$H+G0|nsu zM*75-$_IsRn_^!v`GN+{3U>IbJQ1g<7vK8cIXC8 zo55Q9!Yq(I!DK%Bi7V4Wvq35Wr)QL@>dp2JVw-HH-%t8+!rK%R!^Oc}%lr(S8|L%q zR=H5nxf|)m(j7_&b&v^oj+&u-1GQr+*l*b049oaOCM_WxdkiUBmC8yv?E}07MV_{P79M zq$7MbpJBGy-L>cdxJI@jfkzLEV*J_wkj+JV^n&;%cm*XTE@LESa)@ZT-Vf&nP|#-_ zWN2Yqln-J0Rl%@SHHaQk_3@*2LkrYxv$=;nO`HCapq@2XKt*XJ4jMcz4j?218w1CxA2 ziG=qz5x(q%DSX0&YA(5#p`yp48Bx6F-Xu}4>PK%JFg6tSTl>Y^xx-Sj*5=aLI+KD= zf(+>MsD-`=5m>+FafRhfLX6+7{cPu^TJU9kBa+z-p1Do_&LgB_XPg17@zAE5JO9#N zap5iOPP$UleoY^URO6&Y905i%NZ(jqt+ot-Hq^bZ`~vP5uQHXEPW$o)LpzBkx^0`} zX}(QiRBsxg>}BdaB=3y(lay4!KwaNLq3GATi8<9B7ZCvjsmGAzqxS$m#$ce?-`;i~ zw^snPD82+I-(ajmd3r!QA2-y3P!OuO8|Yw51s^}4;7(P-aYPXnlK!p zPc2FCyxQ-lVah^$SCB;>ZULzWKxZHgFv=9>7MgQB()&_RmONN?ohgxx+nZ}@gh)%b zig8?RHHRfAc6Wkk9QPsIDq&NbIvO;&SNf1qawFgvDJ0v^MnDcUv`CnFHyo%{49cXIi$ z^!PlgUy&X)G6a#E{s+q64HckW>+lz3qlO8vr%>pD_-TY!N3ciV(=_e6O01wF4)XQIWqXpxoss*oBFfzfJ2q0k#d)@sB)5 z2@{yrGFp9&_u^s|6FYK-Ti#MrfUG{yHb_^J`Qm&5Q}fPti=dZdyafK@ucF`CeR3f>tTdnCfXa!`x>fNp=+%? zk=-1RHD_i@j^vW)zH0ibC;9xJIq%dEWUR9OBY!{a-T!_AW;CU+{9_tYC_IBkz9d-# zK!w7P6GVMg3>GJ&7cYgxh=1pzGv?=As`YK7(MMvU|3ZMF_(et^fq*$U4S@YgTG2x~ zFp3JzKEQfo;p4Ee_~y0wzBxU{_i#{E-TvVAaMGe+;SMez-`^WclruL6Ib=U{vD~e? zfX=1QBa-#NT`ipqiWxHek*tGj)jvOfqBdv$oz1eV@5xPvwkz*V$KYRYrP0)3oq-ys zPy)6K|A5pEgds1Y4z-14=AjV4pu4(mshXEaV6h?{>;9FG!HvokuEn_L&WH8chQ^_` zaml9J?lMY;!H4A0FOczc>c4Ffd(F1;>$M0~m?NFX$`=6O^6(qOyH+wr&%d`-S5Xvy zx5JY?WuhBU=2L6GzG({)($ijYj63Lh$5h0?-{(Yc^ZQMnB1bc(U*2%ojYxCrQR?B>IkXecY%s6{^j! z0)eUo&I-MQAXG-1yr`wAh>LwzxFQJLlvB3Im496fEz;CAqU7*f{MUW_Ee6>o4b(04 zO^@cC<3%}7ntuANC%4qym#;Qtph|{kzN(4LCee$Vb1k6;oG9q1UFU_W>YEhngBQj? z#y~kWsLC#=OY>+f8&4(g)%oAoUo@v4V}kcla+Ev}{V#(^@jMQv-%qF4EB4nX*ITIi zxE#`iHLB=3A=7Ip{txc{ORrOg`P1I~nfi73dTq8vrNj=vudcg%Iya{&iX9IL^u1`A zN=1Z&JT;mU}}P$kPuHnWD*V$^7I1^EYCLtIq|XSN-s@dbs7VrRVKz zJ2B_AP=|fHO|k>VB_>375$tzh=||o92!W=OtHD~4_fHt!f0fITJirg->u}j(-2{}a-nJ)CS)W(p=!>XeiwT!nQBeY zbHJ;T+-?8HWZ+)$a^D}yV?N>~aKU@lEs;9^2h1Mx1~EK6%~{*wE<8r~=?9qMls2F% zvQux#k55=2$>`JcX>S~e_ zKXM#97rBAJ?FC>D`52Ei0G05BguMG!aTz)I1YVE_$|;SV2s16@ouj(xBzvrkwa{nw z5VBb87D@sFO=g#)B+6F?1x9?d|US@7_ez1wcQTDCs=t_aJ@E190f z=&|mj*PD5%*t@jO3pBZ2gl585Gv{rPI@KBIf{oNQ*J|w%%Q%6&c5^1Ag%C&C_CwMQ zZdi2MFqi1|+sFuf(G3!U6d5IGgoe7xHo#s$Nrd+=Vt)<(nX=Fy#PT4#A>;XXt32uU zp&89ngwb?l_%9ulXqaS&QY4>As&`Ga1XTmF#3*3MESY{!v4no6!c*;vRZbeo zTCz#Kh93nD(3bM9DKFyZi-E2VmR^dp@n@AbNg)a<+R(ryKM^Rt#ivm@G|O`^0RW5Z z#7tGh!s^#R&`4|q<{~c^fu!7nax+i@wAA`pueh;t3bmk^hw0g8Myk)()lR~vk{cin zK*kF|&MUDwMT6wGf@RvJGsr2T+Gn`Hyn-@%RFq-$efI>4RS=2}S zojwKi@@OWg-nERUFQhr^{C}y;e#aih9Lq0JlXgg4fq#SWRI623MQEv`+%JVSg zq~7LAtrpB+XqFeJ<>+8#h>=_AVzP&d7e9uYTfhz_4dQX-%TnzEr0`Lap{DqH1ZJcI zlY)|SJQeb5{V0FL#O!P6Y|XU}E=v{fnHXbda*&e-YQl-SO4)p+3`qY{Q-=ZK1QHVA zJW7lNFixT`RSqKjovRrT;o6xE;LV4xA*-+oO0zg!VpAs4AMxHl+9GaZAHEji$0Z}` z<*84arFS4C zIEEfqqN=WxT;oWD4)hFkgd{q?7ZJ#aD22rYu7{u|{65}P(bZ{wtQ zM)ayYm^>m%KtM_cON!iMcLOaX@^HAT`eL&ByVhO3KzkEeug^XNa%9cxxi9!h$m7n&$ERxIq+|1~dJJwR0XkJbzJOU_g>?V6{C;T1pI-tK$ItI|#J^L% z`s9VX>qvp?J{c?5;~>ImpY>eFwnq20fLP2rB?`cfy}qo&eSKfUCa&G>zKjFsq^6`j$l;syH4zYTIhq{wbppc zH8XrL32^~so1bMP;r{2tLweWduqh-ypIq@Ax31BjA-yl8!);$Q2F&bGbvoWWgV)(C z5>U|VW{$lf@ypA;;kRzN?AF^=2J>ieSGN&WJTsd_vH#Xt<^8zS*OHp?yKl$=KmNEI z*Xpj9NZ`eM@fN_JnQ(bA-2Oj=_ zA3Z{(7ZZn+XyXlf&bX->UU02Tiul=WL-0bEfs&ZmmK{13-@15sp@&w-VvpWbJr!9_xFMdmB#oH%%EO(lF2Un+4yHX|=)3#%A*Kkvfqi8D8S zAagG(*dT*Co!wo}jc6Mh+&T9QhUA-8qRmv&yHcs-$Q7sQj>u_Z<)2m19!23kc1ueK z+J|OgrtYBZ70~hIk?sEa5${G!iJQsgjD1W!_-R3NJZ0AcQU5n)sj4cR^mt1>BwIAK zXn`N*K?6nG$4@m))64IA?qf$b)B?SzS5EYdC`we8!TsU>+)GiwCkDHb| zd>`R?t9I|2SOo^)9{6ih?g(NI*>%G%>42(LVQR(+g>RLQ8P7ZjR%rt$x)BW^>&Sr* zoU2p;jt3?0f`J}K+%m^`<;;%6e%+Hp^-si|>2oF_?j zTwsFcino2BtMxiecagdJydhx~tYwdAcPtUUM>fApaN+pVi!^VPLNp%##_It$eD~2e z1_Q0aNw)VS;?2t^RH^JniB*QPcsIpN<9UhW+kegP2^r{=@5hXM|3!y;QW>Lm-3osA4Y2Ur4O%cyiERJzR4{*2A!{g(AJjBzhGV9E>T92rm=??;d03Wz&hX;@<1KZPG9pPA_P zg@*}PsZbaz=5WAE?j}5%WluWKa=D)w5yN#-cA3fC%4oOj9(>`=OlIHQTC-R$^-=y6 zpGOuV6CY1a%;&^+veZj!*(A!J*_^}UId^L{CP)9v?ecvzlv#j=nwo|Y&E+(;$eqwt zj+^nK@0${Km%N9lJ93wDeBG%BE<0;9w)JdS7)s=T#Lf(=_z1q>w8<4R`d`SewYPFF z3Q@X|S%-y1N(3$QVpB`g>i!hWVgT+xjtyWly$-uT1iB3G#R`m?OL*x<&ef%7@)P2~ zTuK<>beV9~9(K9Q^b$2T!Ig^52Y&V#58zTW(e)(iJ&vx#S17j!XvknJR_^6Ct;rcw z2zeEbwBtPY*H_{*{@Un_f@S=xEfJ`_pUVGdW$>V|B3QfpxCjc@nWp0t^b20ebEzAMOz9uP z-M1ual;&DYfghZP z-W$tCA&i|-;3VL9l;tS$AK6a5XN}F9iaq~mq|H=_^U8BqNJVA9&;R82BAxb^L3PhKxUdVRz*$ zkTKl@k%G!hOU727(=kp^oNthzT4(&k4FeDaxy418R4h@w)N4reejfh~fTa*mJvj0^ zn^GX55LWTKv`KejFr@6crNl8xHD7?`U_fg{vB~Um>ng1+qGIeewv)`|X)>Uu3Ef-Z z#KI@J70XCMF6%*}!PNYW`{go%teQ{&0Tuxtoechj3BIOP6>aNNhGsY)mml_RE8e-8K_F}6aB@EuH`l&WTU@_S#*-wR>*0n zwZ>cENjNd~@H7q6WQqQpD;enJ&$rnkW;~QmiZCPsIEicBzVKqtC+UVJ~$uWlZ9A!+ntl#V}_W?*xNke=+H!wq7q<+dNmK%f8Jc+hHS5ORIEp zCvR4@RNXZWN0u<@rfGK7k<6jzw@Aw{L3hG8{i~s%{Q|k?x< zO(~(rXw;8Twf87~qG4pgUv<`G4L}Gp~{c zkEus;y&6Fa@dsmP-Lm1~zbV*NX0qkF9POSE*2M*g$CY5VSdkRnKtMvg(F zk@TT;#PfRm#!j`;_$mQhsU7v7$tSHM^?jISovT%w-Je{3v@Ufv$C^a@W)Ihmm5lkx zRWpSg@%;P^r-Q%%kt1PO+9D5d@w?w-7zzMQ;~dhVB>wD5$3UvQECc7ctK9wmS4#N% zyAO7+ijWX9>wOVw(R@3&<(HJVX_&JSj5%98tj#NblLqz*Kb>Q7r|o_Q*Ps+gJsv@5 zLNg-HA6#9zCk3{>D*z&exW>df9IjnC249_)L6%91E1y^wCh^91ggOROiAk~JT}`W% zW0V~~CLR15`dg0n&l-=gYTALu8xTy$zM0#!RGQ*=PMUZRg#2Y&@^u(`*l3m3m{Q2% zd3ii6$8Fc03VQ8!FNl~lraUQ9H34#>`%po=HM3=m<+bLk=J#!tNp6|2X8H42yLK0@ zQE6{Lyj8b$Yb`LWv}$tv2-qggRQtGgU9fim`~3KcDw_l%>fqCCL%Pe_l<6oU0uAT! zO~8Q;zPavdaYqcedR`-!t5IC?nIIdJ44r$^+^PI@|1m6|gt5Hx=TIxkKtnbb_q*Zo ztHZeU#FEmD~xY< zxK3C1frw<+8aEZseL7ikVg+a|OWNeXL}ncq%Am@;OT}PSyo)&{&vCU%dJnjkOhTwo z6XIcR(JS{|K8aSvJ3ZW(e&Pso+g4S#)Mq?(=4rR{I*P##F>o=fMu7ANL#^tMYT^@w zfK_FBM*dYT{zxg39A3!`L+>t(m<^tHu1w34NB z;`Z;p>+_C6OEwpDXFedRA7yg6U;;DUW-J=TH1j0-q5}>R8#;{?-8r7aYXaCO`T$tZ z%lE$547M1y_`9BZ*bwaC9)oV5-Jk8ZryQHs(OHeIi_)s?XIzm0edYa9_U@I=Jt`Kq z5ZeuuwFT3suK7SPon7{{&x`RcFJnFAYqYlY%gL3W`%-`eLO=;=={mFX>nL#ctXBCy zbp2IS9BQzIi#G1=uEE{i-3h^hI|O$cZ9)j{9^Bm_xVr>*clXBiu=c+9jPtTby>|Co z*O-4*&H3GR1S4DTR%}jbd9hacuvRN}QPDKTHm6@&?z@LF$8KUL{kvGPFBl*c03$MK z6mDMr7yin_^IIuQfPR{;nC=g;>CrX!L1|kodO(I0MxD=8TLBXf@jze_x9hozqdRsmb-2mqjQav%MZ*) zIYj)`+}j!}XK(#s3ENq_5AY>*=_;QtQW zz5TsyK7{)igB2l?lQ!pH;8O%15Du3Ii@OFg2l8$Qa6VC~4A)R={4FlEN(rrX^N* z_DUt2iQ}C!!RVTc`-EA*^xxxLj%ERKU@%f-X=^2&dNYF^oZew*VY=EVi z=3g+|8yHouvAAKiZgR?(Ge57ps*&+=ilK~t!4ee?U4W;mx`Ck(D2GeR0uJ(^bs18K z=(R?J_$*CiY`k+Jcwr`68-+4h9_}U-a*Z8R=8V9hQU)w>p4N92+q7e>khaK(`m>9Z zk|f|yAIeD}+@q;+jnTsbrJck~v6qflt$a9*4Af|`s@3D>RG+K6W{#jRd>llHc9Pm+ zhe>W<159OqP2YN zG%P`{B(I642#7Q&yLvaR4V?+E?1P4^H)fz!+W85|JX=tzf^bV;Ip0?FuC69|HrvCzvAoz0D8}yv2^40fM zfk(8roY)ITZ5x(=!kW|j&+spu7x?Hpm(15=IJywK`C7nOs`|T_sxJLuuoE5W^gAg% zXCG?sPqY&ddm@a-bDSChXCdTL2l8x^Y02 z4aHdkm8e?X`FzqXOS^($h8yAJi*M@rw=DDd2#zjI`+QH@V2x%V^*{47&tL;1+9+ir z0kDp5*!6shBCU;OEf}B7qfLaKmczc7Yj3|gzBCHAKkWDdk& zgRswigVak{_9Frm`LoyWyJ!Irge&B;h=L-3zg1nKNSUK^miEc%A8`=y-;?jeWy3mT zT@dW#i^neDrv<8PwmIrxDrz@Wmx`dfB%a0NCkk$msU(MdIQo2?LV!PuS12F9>*%tS zDzcGh@LC{*lF&YX;#%L-mpKO9FS-ey5g={a`55bZ9iyQ&A9#iOA~LAB!m~w3XVK@yHp02bPFK0LH4 z^)(-?r}+1*WjI4AX7C-rjMJ{EU(yB7O<#MRogwo5=BM@>9hz3zr8tjjLB7my*C--e z$?ZD;-0B550R4~CI#;VcIA}On6-XwzH>w3X+HU-#eqvn)joT7XJ#Ea4Toa$|#d1%^ zX7W9AgC)e4_gf%bH4`_zLQFfA{BQ3*H_MKr@y&DWMCw;-hq`g!d6pB&ueZ_$UxdRk z>2ghgteH?W>Yi@$ne16LHqc;-3qk&q7Naa_$ zjvx2az$WA~W-q8xxDiU7PcBvDzjL(jnx6UCE2YYbeFQ;X_utO(ed%Mw_gx$wvfh=+ zB%G5BjtSt>81uVzvK+rQwZE)3Wu03tQINFxbNM};8UX98Qd@!*q#Z&|+|Y!?Lh)nLz|qiNRn?>on%-{=DW`eg4AWD9Im zR=3}bj=Ceoq(r|}EN^=`TA-fVQjs>Dj1z|hd2hej3!XLs0)U-v`ELJ+fBwUz#{=ta zM6u4T_#_F{86|fYG6Z@Mt=Ts!0e%w%O*ZYW5?=Dt)j57nNjYdY7>ud^eY)^GP^a8^ zFNOErOF5JmV9I!8uDsfLuY9dgYq3Ha)jWL_%}`8ftA3Ca6M0u~UPq7c7Jnn?N^h_s z?$qXla~$w-$!qF`=be#8Fb(CiA`e3DJWH7=#20E@S8hEZJ%X3UJLb2l0 zT5n=sIR5{$0P@d4nC=9%q=%cnr#lVc&+(Rk;)xEg$v?QOe@|{H-vukYWi3Rs_8&d^ zS|Kj~YDPPD?>`{NXj{1#3&FBoyu8lOI^2zO2BGNchnO=S11~K|(|>l#p=BSzTnXo- zI|ncVFSuA)p{3kq%aV~9TAod3cAzc#*MRz!!mR1w~PAO3A z2icE|`fKERq(&7$(am=>Ix+SK^)RXi`#GgS_igLDj{bKX5}tZIHMya!*qI-*p53y5 zpXkU$`>r|pwhN|PN+wVsFKC7nEY_>OG)aZnA~=Lp%kReco$1|uv3vEcgq5Rq*4B_q z4eX&xg{rLU%cQqfUt%omCq&7wkt1*c6nsUF$c&Pyp9_|r|g$t#wsCP6~#l;v|K?O3-t4;>Q;?6g-8=KAa}*& zIDzskXOa?Jp=_A{P599Z1boOPa;ZqU&gcbYEa>+6cp)XkXS=?@tspvYyPH@#f7@9l zLKoJL8~}^AQ-zT&>F*|hdU33e>_V3_i-FQC$%0@HE59?MSX3pJ9Y|U5LQe>lVI7AS zaQYS7NKcR5a9{I^q@405B9D7deG89V3>Yt3(j5pve|<`NO7eF%b=tBb5)qt3Fd{oG zjTca141iP%u}I`0-9micQQh9)XI5S3HAp16wu_~$M6KV;e~m?%Fjq0{ImGz@Y?lt@PgRl+*2*W;ts{Cdtcgn;BL)$ymY5#4{W3^f|y+40N} zR!+DqGNQ`DDbx-9`ENL6y`O8a<06X2ijm-(9MLRRrqkpi`05owJ5t7rKWh^!yYD5t zkl~23l)JHSd7#nhW!k4VOgBwWFG;?UTiE*d;CzvpPh?E-{8Urzk9LWmMuXWk*b zpf59ojaxa292pt%=A9!VMkb3kj5uMa+q3Ms6^mY@VIqYU+n6-qv}nJH(BundG`SCO zKr(vi%0^%W7ekY)%O?d0Oh~n8xFuztgo{S)^oqirC$(TrjA2&iABGR2(3pa_?AkRp z|FTQiH>;v~G0oZOY{HIHc1PUx@g=84;_K|e+2_;g&Ui9cQyZO-X{Awzaq5J!n2fF< z2q9VHcTkA&pDm7>VUYoKp5VXui|5Pw-Xn4nlUUFSq54YI$``!GhFK9!nxj8O?-C-+ z@(>LfJ=U;!>OhrKTy_1Ul44E6 zYQU8syCT!aLCwwbyqa_aHEg3Il}Y;KEEOTXM0Z4L8zZ+eB@x^lKG(#Ln(Jo1aFq`9?m`Eb zaAec@Iy9bh;PrXKpxVl1VmFQgITjBj`N3ypPbU2S-jjkPm#`La@Ilw};*$GUtv(wO z>YwQrobIdiDa9cvx0y35cNf?{1161r<^|&0 zk{t`Szg*sqUmUp$&KrfBO=<1NRcX|+qu7pA%qML+>VPZ$NY?uI2rNFW=$Om2bwj$9 zKuXn!AfW&D^yN`7tvbJ)VZl3)Dp1`l7p}Ny&-907&PJP`R(@k`df2ZNas*oKtz!(y zu>BYCc-DFWS16u{=&YBSFQ5z%8~1G5`Q$!w7yy3TG5sa+_hVX{01FuSu!0jW>!DdR z5o*-Q$mMyeY~WsPwM9U{aU&hcvgfK^;=*=IG~ui$A*(WC+lu|mWFgzKipJP1mzv~$ z8U;OPp;LUQwnl4RX`)QZZVq=;#kKQ;aT|dRpOXrIiawQ72pwz_!=-;KJVLd)5>GFL zcO!rJqaB5Wn$q$eaISu3p;)N)u-WLgb-^W#1p_6J|FWb_yoqyv_3Y zE9>ffFn6K(@DZ`IsnQD`$hjwTd68;f4|ux+HA*-Pvew;gq1PLDNB!5`7n4T5f0ROr zg4YqR+-Z?c=+#$jH8-s)jt|nAPiv3Z5=mUYb`IDTD%Uv-XSDw?2zj7C;25q-D2KXa zs}|38E5FeHD><2d8S2ZZydFm-E6~YWbUn5hiL>81$uncQWX6zDSEQ^$O6R*z#Xf4CEnrx`W~GY9cJS_xZL^=Yh?0{8((%gvhl2>_~xKk zZ)EdWa~>sKd)_Z0x1&ooeUanu;vEIgn>ll|dw1QcgC6T_OUC8LL6h#RbEak+m$1Zb zcZzm0mlZ$r)S%7rYHone5r@L0ub6j{8Kk(%Wg5?0>f6i1a_jN%u(hP>Jb-`3WZ>uM z@vK$BBvYp6aYxNAIq83KE<&o z+@<Z z+NLEXtKxHFvkT2eIfl&dYw4r_C~vAAVWgHcY0Cz{Q{_uOJBUyltgv76W5~cLKt4i> z!7_5yTUlVp04EUUuzHllx9i0ED1c6ET~bzfITJafe;XR`Rk8$1@9xw4KKb7Cl>`C& zHGgZH*&JO3o|y&wi5bTfO*Fw&2%@*}4V)C2n{Pf3zt}6?^SeaoRy1ZcU@bFK=~_T;Hw7z z%qzVpc#-e&8`$)h0v?CZ~y*%51y$+&}^b?FrI`BBG|$K@Lf?B zSl1g_*Z~ve&If?bnFjystbr{{qz|JM{pG@B58IF_#D;WH|C*Akxi*&J4L->wsC5Un&VU#D>4LHd(uA2T7 zL}}zV*h~mW&91VyznF+I4b;Tz5y(sSg~>9tLBh|*gliJ-VZ3Fqpea@H@&l){h!8(o zd7t8BV@UnSyv2>w1f^N77<8*<94i_grN~jqImGzNe{2#7BnZC+vJCY!lFX&d#}p{6 zev{S}+BpgDTxTUDzLh+h^0ywN;V$H@$!r92Q{RPXDtjzw;aL>Qj#sgUz2}V8b|=CKHyB+>XW7ma_2)&{I1Z>3k#8$Bi182d=XQ8x|I}JBe}$ zmG#2!<;xGqpoMAy06UXt3Y1w9@sv6wJFRZ$Dn5fZVe`x|v$YUQ{jc*x!RSTntmUe! zeDX4ReSIV@nBj3lw>fEKiB>U#1nKC<$N_{DiLl^MLP>y}da?PpE3+KgLb&l?cjWsy zP#e^Qg0$z_{@A$Xs&1n7bcH@AGd+A#;`j}m&z((Xr)Y#m3uoxva=w)eqA0?a`{N)H zLQV_hp=fuDnvHU(a(!WMnG#ZM&8G5GfpV4-+2Fz71Nh3{lMwbe-r~L0QC9g@phD%` z;<$E^tsPOT?AHS0`z5lxG3k|#61y zwYZ9k_Mx~!TI+nElkBP;heI|_eaRFor+utzRTH_%L6MkztPRbxf~HthI^|*s;S?M@ zpF3ZWHH9-fGcR5(Lj!=w)%3;0+a2(5&3k*f#WFqzH@wf9g1X{J``)N)9*_4V7Nbad z=Qovzl1~Z21u7AL=rGMHfBA<=vWEn7U_+G=ley_Wp2#?tWxRjxl>Z`m6=!zp6hIOjzKVGtbjWBx6JEx3_51^GLPSk|}x z8*KQ<;^&I}(6lOBh)hu&WYqusLt)D4ip7Okqx8g{CG(isLj;}t& z9s%t%uiG;t31ZX~@`!b`j|SNnuC9;ugPey~Ur0x-ED9-}F%g@X_B@g7B%i>aE6BPS zF?VC)8w=X&^HzpdydS=w99;8^0@WP1F}Tz+?~1qL!01F zXF1o-gTjeTtw|Q`ng1@fm`Bo9b9H9_Euq%ju5P}2?1x<9=8-szlI^Hx@n;(oFGL%?Rx!A!O8l(gxWIG;rW{9zU8q@uKOF&Y`SI+d6<8qgmUqD)u`=x zH^37=caj;YYYj*KK)5C`z%gUn11*bCyEnDOtZi027U>@5S`?j;%NP}D0~Tmg8EbI| zQpa2=G8L10_~vMFNlVApzgt!A5Da8$e=a|ZypYhj?0x7Y>Q#EYVcH9gi5H0Iu@Kkx zA5O}AzjmG9a?ZT?(iLiY`n7bhnq@|DV_rUJ?iXDE6mH&kP=h@Z2~W*KB+Sc@^?4oL zyxpy`>*s>CpDxW&+1c4msGIt#McX{$12lpEJDh`Hvbj=0OU-_Qv3=69JF~P8J|s4S zw=Mn8DtzvVbLlCVq%K%a_6x$l`-B*`dUYRRQwY3d9&NSek*#P*>NZxR@b&O7WQ}9f zL^q8`Ch;!&diI&;ZLca|5u`5f|&Af!1*TrDmx7rASA1 zaaJ?))Vk1l)m|)Rf_L_l1F+tnL((;z=^?oZ0Z=>43FHtxeW`%a;(w;wm3exjjzY>5 z*kV2p7uXggdTYtdSH1S{eHdb3L$v{BnNRb=` zdzPd-b}q|ZMV7c|zBw^IX-~U#dAP-XnY06?M4nePLGTs4nT=#dIn;{nrE3Z*PgL}H z<_ED)cOn%Txzgp<3 z=_XzW1;ZSdoO-)UKik53#UUDsI|6N_wQO*EGrE}?c9)myw<7@p#VT2dcJZG2L%M!O zdg5qGqYkC0dB>#XBsqE=48k|u$G!P&ofW5=$7>KQX&CVPkJmntET^H2koCp}zZ=)C zYn=mSWt4_cg}=Y@Pn}+<2TQuD<9b*oil+bS!RnqT2rNGAr`b zUL)Q5BaBya)p2~)bi#SU#%1hIG~Pa83Jm#*q6c0KGz%jVKWn!{bO!zK4>h*+B?-xe zBuiy={h;5B&n}MPjfBLn5a**C$wi^7a@9VtaKsAdMUYI=7IRosa@5}yG1xVphY(>9 zD7|2$%}w({t9!&s1h9*gM|8qRrWqo;;pm=DU|?7FkVHEqC`>CQPev@of3=$ud;&Bl zu!Fe&gl5$xGh+W%7m*p!@6GY`J9*UU{*;Q371mSGZdCIwD8Ghb1}wWhAgPXOh@N`T z@&lNJeIfA4MM>e~Jcwh>p3p_YABC6zggN8>3PIx|vz*)G%hD+Lqmm;KxmTb-bRoLG ziS?RV5Fx+al%gJf)ozmt+x_mXNknhYIt zYOqe&^OFEz6PGe&hjFNxfp$Z|8Q5Zip|VOdIdEZ=l;3!S5UOPmn^>37U-!6mOEtpblQL$8@-E4Wb*Y{?opx9(aA8AC!*r-J&cJ@< zZKn!ic0S@Iw$TkUPQ2Z{u?L|^1-;{-Rk_210t+#oxv=D*@JmQ4e%t`m@`_~v#LD4= zcU#0bf4qMDP{scvf?tHXuAS_Bk95aCeU=MlQcXIXz!AY)iYGNbp2_F!^SJ%cNpSJB z{croA`a_$~|5ht-bccGt0=9aXPnb&kfipm%IN+5a9ecQ|1-4u1{Ev&8Q=U}M0AD}1 zcNU#DuYVLamj>C)l3zwB_fH-JE)9%5`=HZ5XYd?D&GCbt0TZ>Kx83`;H&K2f$tkC) zT`}3E$nwgD{b4tupjdp`XURzr%YMb{#@-3>I6l`|8=0lRcFMsbS6L+hw zJu)^)491SO{OEjy9tpt~VX1M&Ae*Gevux3otAaAWa#04xA+ffnngsMyk*c@hFGK|s z<1(!0woinZdo=BQ$&e-%VX24GX+vYo+L%0^$iGO*QZIXuHW-yM$Vc{mId3`*_8k$^ zI13G3b~|w^j$Sv^?KeGC!xd5^74my_^Xi5oHHK^3vTLfGf-RLaA7UY6;+TO|_uUHe zZH4!^JyK^DVA5-D(w=D09Q-tO=^&dv2w-z`ajn6hz9`3o3KDL9>CRew+7{B(eps|umO{2D#5O4 zZT##L+-cABrbH3HX!h73gKWO71olKL=<^g2!-qKX!p7A_JeU7bT|;edwBm`8_(M&C z$rm05`tZ+(yZiwZqween@j>xV&+GYB%eSvtDL2GW8GX@d z<3W#36ZKgwXrnWSE)`M>?>*RsxgLm&t5uOKSdd@E==YNK9BK{h(iUe>Qw3df5;b@? zFE}E=xb{s$U{~E(B>osvKd1q;ME+O5usi<)hjEOO0FU9dQNe#LiT|{0t^*TLU~3iz zUXaWP{qPHE4+`j302{6N#P-RRVr<{K$hLBjQn@6LsP>cZy3Q3DBrD? zZv7PZ3=c%F!}x4h@lzLXBTM^)+Q2*ULAV3*@g`ka@!U>_ckwneyRGhAF*&0Sot5>L zl0zjbMRLWhHAT=hne9AD`s)4_&+mBS<8KpHUFMwAU>#fKx@v&ZU*J%%N%!^Ilc-C z+R#zQ#k-7)2w1k%0Tn@G8btP3tA!$2b%eJHm*K? zpI2A<96Jpo|54dsRPW;Lt1#|`fOkqHA5)sYiBkP!R*2sp#@iU=5QJmlCF`A>t4fh+j$8o$)?9KxBK*0tFXE*^`hOxm> z8LzFk`(Gi%{$gHBL8SPkMZkduF)F(S;i*+xQj0VzV`?UrF^@UGW&q2qWuT=5IabB?I3%?ICzi?)P()DBsy*k_ksNyPU*xTwc{?^5z^_X${ z4vH}N<7M_9g*7CL7ePN6L|iZgGVX{ymCE>WDlM7(Q#e1B7|n~uxvHYak6117t8=K; zLjm)Q*eZZtAU&^>P-uY%upFB;G3@Y++AmIk?`}}sNP|Ak0G0YmAXHm}$&4F|mrT)& z7obBiB?<&A_56gu#a(c>L=Pm(hiMKG;u7oU0{CIa^yop=2}RM?{|uByx(+QQQVY@P z7T=FfA-~DdA4Al`h#}%xil8013_`;qC^YG|Ff9<;R`*56PC5*u4JStI6&Tjlz2*0h zfz3+*n>fhZaD)2F3#@RB2tf#5nub%58A1H@CLNs7$PX)Gd_0Jl-w>Z``TJr*Ot`R~rY6IO26(~wlc!yNb=bYE2?B+Pz74yb-<;z*I> zb%=r)-kyD}9TVteVz@)cvQx0q*WC`sp9`MW`j$!L24Ndl8O)g~`<14?ck`yMUp=}K z7|%lwk%EgS5SKa>;|KMFJzz!gx;n%yK**4t@N#CW{BW`xjL){xNsJ2uS?nPcb=V{t}8(FR~^ z(ja%EZMV4=o)im!RsQ0*L1$or zzdy=3pA4{59d%E6sT))gmZYyF*{ndF#+GG20ky&Z_rkmKEwzT3{pnF$WFH3V(MF(f zw&N?;i~!MvEND?NKZ*~95ly&=J0NCrycmdM)BmV>O^3Gk2Rotxe)47=+Y}=&Bfl_T z#{s~9vWysN%#k;}u)C~ae_Mh#AJ(XWrd^UUU9$KlrCaQlDPpza=te(T5a`dzRCFyA z*S_C?N}clA!jebR3xJ8Z08f? zA^Z<_U&F!c((KRK;qZms6_~LCPs&)c1YG~x}e?kOQA$lp}o2WIS@e^ zb0&p2tnqo`MG;VE`nAnwi2V=5coHlM}9$#-4I|GN%VAa$G${odtOz2p6?s#id8 zF@7`Y%g>k&hh@Rd6zVH9$i1BWK}*E)BTGeE6k)wpYQyI#fV>v;FaY_d z%F}Cadp8~DL5u^*9Y>||_OhIpcT9AtjlDmQ1Kbw!tNbfe<*SMcaFa6ojA3*?}-cbG(|M_2DTE5J}~11 zeLBBgG6@NhefHoo2P_C$)t-i+!zng$886JdyNaO|cKJM1q4z2nRJzKP_~R)CFjhulz!gBSKKQd0aDG%!k?d7@Hz_SW^T@db;RMm7}b~M z!a6FvT2H$iWd%(@5)W4A@6=u-col&vd^EUdGpk1WtX+#Zt&Pv5g=+_&wu}#>&lVmWMs%mW%Mq(|{Ki`by zY>=znA%#tOH~D+vNZmu-$l+t%@&c3(In<=A<9qY1=uyZ8r;zwlPm4HK%0ZQa*4^dw zl)LoLu!iV<3Hh*?YB-}au!k*Ag-#D)Eo|k1Fy+QYO79T#Bqn-cjkaCrD%bfQM%f>Rhn;=^-+=7eyHi>XQ>)u#EppK6BNS%3k%Q`dMA1b{xUr<{-NU zzoZVkJrtwc{!wo;*Y3w@ViMVNOIr7-!5oyMnB^6lWARN%K%m<1B4sTxm|0mS3a#>A zLdpF6q~rOJH+D+}03OqkN>zHK!-b2HHaaXfy&WCFKoOY0u3M0H9St|kZT%+C@n~^n zkd&lM9#o;6qbtX=QY4WXw^_Gdg34?FSTo^wNROy&W<-OTwKs`hY`P$ptUBatYB!Go zeWm%I-#ohm<%tgb$WI0PbVGOEw{FUv@x)`4x5EOmXpH~?ZRtM4|FJ+Iy5_U6aiW*?)`)9BTI zMhyt??S;t8@+40;pAO2XF>#8Lh!ukVA55>=^o=>lLEs=~R$LEXilwGyRXy~I0w|O1 zcyse{keBdURiV>1yM1HeJu{ z#Zx}SG4Y?7ZGq$Y7p+h(4-*{M7Z3&P?0%vOy+Q)fQJlgd*AG)gGnK`nUFNs%$n>|T zb}J4u+}s@+OnKPe#rQEgP`4Ca?qDk_U$_2g3Z@waPeQe!R58AUm2Nw9P)Jn>G+&SS zsv97k>CcQOD=e8(vCzqoNtA_nYmH7N1YOV_39>>C)@lR=l+6Q*+y~CoWT=>=j;nYK zhVfX9n`u~xQCBxZ5XT57Ik}4JWXZ*JCQh}089s#HD)6T8HGVS3S_K}RlPQAR+01=f zY*K3r8^ka?6{XgUD)hq_vO)#iN%D4mEKGWv|T57=xd{dQ@vN8|?Oo&H6 zR;DXiq~#ek!_2RaV*VDL;*WM))XvYkj(sFrkOAYP>1Y}bd%Jrq@9~mn-6JYVWhz5b z$Ll{c@)W9;a~fqE{ZCd2p-&m!7&pT?PiU^e7?P=Y$(I zd~&iQnF!eHl^fbMv>DFc5q&&oDo+8%cGdUPlki(g<=yHW#f|A(JaUpAGw8WMJhyZD zU^#0i9L%qaI>QvGz^(Baz!%nwfAxBFJPG>T>N{LMZT)T)Rz1&`3 z-(jDpxy2y-lQf9CHE|W?Teho0;Gj5Wa&iLAEG=0w_=IEd$C2^)0^xs5!(2xqC|Cq@ zswg{5;nbM;DF@|MJTloD>nDE6;m>7;gFE2%dI&BJ!yqaM`OO7FLXcY)!>zKNB0QT1 zz;+GlV*^r>RomxLM5d*Wk2gl~chhc!e8WQ9iK0)Jst{R`Sgi{&i0E@ds61~%7isv~ zcz@#NU(goeF+Q*6P;A8~G@``GTwq7=oZOnF?Xq4Ys+?ySN={u;Y}!7lm9w)Zd`Zds z*H<>2HT7&OeRG>(GB%Z6M#WLzN&|`nTH_r3lK~Po(DMgK>rc2GK#@o=)m*8b@Z2?V z8KP&(o1Uxde|LEm${3yyG6;uf4~$}_AqBEgbnB)s_9KjGluIzOBGD_haf96@E;+>6 zz<)4*7Gj7$^Cx?FzrgmDDBazmA(y{R$Qq(23mSYs#c&L(o`+H2N^?@(v2%5_pMMtG zMTBwA%V;t24Lheou?etWlX9k`jJLBF)+|--MRbCF-I&z05vmGN7u9c4#M+-mte{X% z!}agi3_YRz4*EJ~xt1JJN39$mJ$A2~&@l7qGCJE2ZT~6@Xda!IWh=FFMo@f|ebRt} zxzr*m!{Yu5?$eW{BK~NIX+V$R<%wf{QPfEeYHV`JxuEJ>AZ3)`1pUNXvvG1_8G`>T{_^YuXQB+Ek%`y| zdhrU~NdG5DEhr#1l8jz=@R~r*?Z#G8?M@;Tf1ziO*jaSNRN(H`jhRi*QFpA|0J zVGYUf>gUz4tVmsY$-^@rptz=$Ntr) zTao?@w^}eNx&(llX{(`}1^pU@zM@CaSHO;vyp=oQ7%RvEdiXf$ODbvMsm7W=vT6vcM_PKy3$#fOZ7On+Ha zB`8pbq|mlePdUa8xn40!`0uKu;tlyXME$D-iw<-=6L!jt^v3liFLQ5JmgX!kEP8!= zyY=Qzr6BcJ)KaC-*)({^5-V>$oH0BK~&iJQgF+U$?a9JGwDG)2fn+@-KR( zJ2@+VHShfL@E8~>{kahwXfa=An|z%K1)5ByTMnQ7CWf@(KQWP-liKrz7+e8`x01$UPB0`VnrPhjlnAm(A>I(GwHDuT~ttCvCNSMg}`=c?o8Lt z$JM@0mvcb$)KDsIj;I?w`m$sbu?rk1Vj*3S8AqJ<* zhwc3W!O_E7V45D|^(H_esC zF6+;i{caO}z&%a%A)S?6B@g{>&HmU7**R@XQRYn}=_;VNx3i#nfY*n-WHxO^_!v2Y zq!Oyvy!7{#C9Cp|-ey;SPq|BXCdgDC#6>qtikxVQjB{i2#lkb1gzits6EJ{V;@O!1 zcq79{T8rNr8ac#Pn4^zdg0!wf=Fm@>+e;7E)9S>L6E#1|By=w>tp|hI&HYb)e@na)KTSr>|IyKvHI zuEs{{?Ibs?!KV8q|J$h^To7`+URoDBs=eJH%Yc86kkQ~f_Fkz}9Xfrqpiqdrcf|MZ|fF6QG7UKjp< z{GqwzV3Paw>x_rm?a!C&oW75JWTgJ5P5!p4$Cvg9c;>wIn#%l)Ln zPT26ZiI8)YC&98*NWaVy0VLKDw82~zJI2%2@}N}yM8#>NSqOloot+Xas!ZSQ+&3K! zV(U8R*IztwvQ{{6@M07lAZ_T;;{?>x)=2K#+>h43*gRS(%7-MG+U&F>Xa2L11{k5{ zCN}ID0)7I-f*wK{0`3Aex_@-f#6|T4s{16T<0I#bAEkzzl)dY%V0`)M4XrFK`_5kD zL3DMf_0zOtTra((fyVbrswb;eOk2pP!#^g(@NtHrBe-?4br*QI>*MjBNV*Px?FSr; zM+Vvs`&5t4@!g+kKG772iWG66$_>t}Cv~#;A_Kl-boi4nr0zB0CJ(IUxp^EmqQb^n zW>@?}R-`eT3EC7p!~@cy-TK6NR_~aIm&tPBrX=^ZTSF;)S9`KFCppYYD25)ykVEh@ zH4n-BX;Em9&e`$w-eZ#FDCa9Ls(k~A|7#!@Ckdkl9kWkiD!c-wvVz{O#HcRTogxWl z{Rw4$whkb~Sf|C!$H&SxQ6VM=xgQyw{w2#tPqa04%tsf(MXj(gzm&xGfo>cU#J>N@ z03rbZ+)Ng=#1+i8Gp^~Zo$PbcDLZvPpNfpwl6Z-fQ1}S{I3j1N?6FIP-Ia(Q=S;*X z1|cw`O*hQ@wg@U$wu;f?uOw67DK8bi7C77TX`xO#-at0dtySY#gxS2Nc)^ll8k5&q zToGQE^+)UEuhHMA(`@PgHVfSF<+KC#zE5@5r{ZYlG*VUA`ay!@5t}w zdMS?7^T5nGkF2Zm%Qxcbuz~11l3lNgM9b|(?;lf~A_^lFLN^hO@cVMr5aAkRkd3p8 zc$K?MHk6QV?}aqeZ9=x z^lWzKq!+U)jtKJ?-ei5zWEpkJG67tc!TX;aX^eyN998bh%a{Wz0TeBkZPvsZi!s6}P-842L+4H~Q?+1Tp_83QbXF@Yj zfD?VF)c1~nvUQceeq0Q%KFQ_d8`Rl&wGx|laJ4tNn7k%oaiwuPS@SpVZ=C*{EVw&O z4joWV@X)lrAN!Pv{}rDnX7kfQ`YNW++AirLyehLz`;j#3%uAmf71RIrz%@*rDM3*! z)*5g3+oNe*%j(ZnWqmSd1xak(e?QXvN`3YJkoJ|ajkZgcp$>MKnW>WwGcz+YCk`_+ zGcz-Gn4!bW%;_*QGj00Le6x3UrIl7ATb7^KuGc>-9aWvGI_Iw#iB+D~Ov>X}bNl|! zsFt(Ql)ud9KacK365GQpmqoJFtgK4da+p#LpU#tC<(7xDZA>e?|4&#H2jU()Z%OIA zE870jtY@4aa-QA9o}-@3NwO}pY!zGL(11_wEbg?*g}3H7niUu7TDu#0E!6$#b&U5c z?4|5@UlUnR%{SzKOqUO~QSA!K@QaR%%ZOvW0A#g7S~^{3E7nn-9IQWW@%`w?^r+`0 zoR0(aCLzQO^Fd74(+R2omLme4MO28jX6kNdhCF2(?AR}dgP3nJ%%k_15iqVHGta2Z zb)4}KL55~uW7%i&gmY9g1=Hdn;$ANrvr*Il0Aq>EuK6y4!{)eI<9Osd+GO%_81O?- zmsUl0%SGW1s1vfA_-ZWQaYdG56Mw@F(DHimyYacBn`L%{+x19}&G9PScJp-{(^eeh zJ80t6{BvSgx6~C2g&d48&Yp~4tpq4R2|Qmk5HpbdbPNO?BgOh-Qc#O9@4k)-&o4h; z_UNe2`gmDcHKPFUZjm|-Pzr!bTMzj+taSA1j?oZ9!Hm0VaTnYdARq7|_()}JAbA{L z|C%Pj&hl`WIkg`eh!GKz*b)V8mzb(v_mnoruM#2N>ie2k+w9HANa%_&ZETtzhFJZI8gOMNS3O5hsFlyFsy4LTLO=8#mA+(GnJjYO5GzO7msWP%F z7NzJQg-xyBrY;qN#fZ4d6{7E$Z1a`X2RP~h1DCU5S?^T?0)f~W>{#-EJ?%%qYt!n- zw(r`hSNViWCsQ@Le60)3VXr{l<6K6VqkoExy*={-YxQ}K;lYjz>TmAFg6rY&?AQSH7k^Ojev2jEOwEk^;tpoGxW|c3MC}W6>HV^pCkNa~ zLD|F2dZ)Xw#a)eHWV~~wvuCJAD8m%nm~=AkN?l|{FXT<=|E#9dz|a_Aa1lv9bBgg- zO5YFDdIzc#NkVWRiDHo`*w2Ix{}C$~cnK{cRdzJDmLrXGQ|oLa3g*jl$I$PTW~adD zH}8rqZI}_8)5n$Aw3SiEL2bwK$(P0a(lO7FlAzY?Mw|JLPm;=ZlWQYa8*!KIt@oKs z-0nwM-?PX@rK$ozT9;zebsb?(dt9wzc<}*3A67}g)wIVTBV$|+)QUh5t;6kWoLvtNS)5&U&wYzoLGU64PF~7Q39~bnXR+G=9?u#ApqXMu&2_T#Cf+e14I!3fSVq*!%NYv$N_dXP5X66x`{Fk{^_SEp+;@<3OqZU?{|#1iJ)m+kub#4C=J3o{dQ(#q?zd$LOgW-7~_N^()Gh zS2yIpb>Qnxic&tVt?t&JZ{Cj_B_c>>KW>>ctxpyP_TMvhx1UW!g%tBeKYocCZku>o zcEv!JGg8}1hD7UipOj;B-SX`wR{T-#cKNZ?)fLEE`lf1pZ=y9s zvFN)8F+J>bLxZfHtv3aSQCd>?b#{E-OxMi{GjFw36hl#kh1C@$@G?z-hHtwpGXz zobYL;HMB$$A*ur_bU5V#)qx1kFb-VmIhM?yoaoZoCcKNDI$8cWihQ7!4zY%ds8Wph zKsGcFKIt(X+z=dCoG)2ok%^Al6bO;XPK7TMH4jVG$V&t&vLRJuW%ZJu0YoM&z-k;| zM;MqEgsR@hjw>@ky^;$(tmk)~LmqbH2M)*6LT!CcB*E__oU7F^n_vGWDlWyKD3K6i zZTQCaguSXz$KX4M1z)TTjMJhEr-dRiTwr_!{i=Y`G9L@5CI$D$~@S(A7k} z2MP3)Hex91q840gzi0Y1vOx9Vka4@&sM7yXkB^PcUmNP{=_@A$^whN2vUpzp-h>{C z-YgjD&bA%Mqna-hz(7E~-!o7h;P#dube>T_>kYNs zrf+p4OxSBep!}x#)9v})lJdkmQ-YB}^+Ge{$Gy#7io5mg>g)BvUL5g_`N1LA+~O<> z-V!%*TH%b;uW(7nm{p{WWAL_#z{QHQWRV4&1dWrx7y3GS-9eq(Fltst>I?2BazeWZ zT}I)^_=YkCIZv4|-I&=uZIlH2SU9}v+s-4aW@alKh|m;}7Y#9WeZw&9HxlFfLow|L zi)7}TUO`fYU37ssh+?3)Q`af&lg!I`+M8qJ!uCKG%2l z-ZdF)tKMep{>+9f!^g-o8f~bWBZb3dOnhUllcz5e0UhGiznb?yInJ&A97g=*P$P6f zsBbpEO8q49+qA3lu9x!dCGYd4-oF)iM9%fN{#WMO9Zg#E#f)lTsZDU?!n5b)oGZ<9HL6l?R}f%d}+016(>hF0_6;clt#` zk@sjd%)T=2jmPcBeG)0K%8U=)A`q~+=Y;B($L9+NloHK#bw*D7FOV9DuyYAI4BYL? zL56WA&L%9G$pdJ24vUFXsVur_?6xBA^B`Np9FjRe)CF@My`|k0$gdB^mMCP? zp;8UY!S4nj<=ox;HBt(l)dt8)`2-SyMa~uKix$;$a*md!YrA)+RF{PkW;GaPDBHwyf46%HWK{jzXT;;43 zfUp|J@_?yVzpFn7H>iB0fOP8i-e(^jeA=-B@r^b0g{Q;Sox@Kaz-~NNK1LMgi#B3m zCAVOK(U*E@>wxaFpNOR1%w%&@a8tz0XYaxoq;s@W=_VN%IvP;N>`onuj~QJpk9v-~ z3_fuX-^yYi5asO>^(CdO9AlV__2u{yw;4Zm?p|DS7jD+IQ&E;x+f`3V%6BT-R7<*e z1p#MHCdD3+{W49q(s!}kwFP27-Ih{As|G5o`>P)225dhcb|iMZ74!0Q5+!K2NE;hc z^wF3O?)s-Re*_7WCr-n;m@jQVxKvwhNDqW z$?#B;XF(B6HyfO>9%S_BEbIogR0}Y;2}}eRRouRe1h@teV(P-42 zNFu>E^ZXMBT@If8W<drvJWBI^qlXrD7N|I3|4j;?&W9@<)h|t}rO*iFY5bC%KFKbIlDhX1fT~iR_IAD*JTRcU43XAdU z&5bZ@?49D#bPbE}tNO`{1W65d4M#Xm2F%qsAo)4(wyrjYYGOf!xQAXFrV*TRG5rui ztY}Cs3DG=8-AN?I^fp{m#a2RD1w$3@NbBCQ+D+d|6bbkNGOh2073|2i6`ejX1K7sj zAIr{ee5z@RwR%%S8_u{EIM#2ksROH*C!5S#%>m;0ngH3FtEWc^9t@mKYVBFGdG}8J z!-zU48r+-3+y3*<-RDO&8B&4%<(_NH)JMlQ@Z&l>mka?v8Bsb)#e}GOsaS0`#Ut7? zInO!D2WTOBWGekXaLCjAkZkQCvHUqus`=i0Kbo-0F^~J{$K5uiI9{-JRyO z=wtY)e~Yr4{!<1tnx8Bx1a0K$v+gv5NMRl6JaMrgvfzcotGS^ zRsTg0frYBlGPRG>t`DjXZotx4wy3%`+jd->(X04nOxt8F_a6z4=&bf5K89dw?`ET?tuFD+M=2xnwuBm9(gQ`Bc!`Vjqpyt2i22PiV~O#Z{-Q5WF(Wy*6-&b< zZZw)%jV)ubO-llZ%XwO6Y_c{2fyun-op_9AfsLFVvidF}0lo~iRTF!vj%i?L5 zs_Z3+_f|Q?hzzlDOuK_}22?pvT(gqZD+pzPW6cWVbV(#GbCFHyh$^|FzyRy_qtU7A z%mm1@!-)P2ECHu&9D3u#aKCb4c5`8#z}p68>~L@MRMU4nNtT9lq5*CUCXf}qxd0|= zmMr-I7H@)MM{4S-zyyF1hlMpGM#<4!vd^Bn9yhEA&K~^KcaFpYQPBD{{sf9Z#yUSR zHrN2+L@4xc^#f2mcHU@1;r>Q@0VSkyu=v{O;{6WogmB(CKcb8DbHVh4-7r%RjE@f| zcikZ&y&UzXj4%*#sNBV1!+P+zTedbc7t%~o)A}9kkPR_-qpo_VfVpdnMy9uB=;jDXOmGncrc=w-AEE#8e3 z^+#&XE1Cagj>i{)Dq%K}n0>?$MjrzuOqjXK8jQL~0Thz^zvFz5~!TQce*!EcnvygJ~ z+)0@;!h1hlc_Jf4BwEdCFm#|uOGh?*t|ql!T1A^od1QoRq_b$94z1stztF#6$I@#7 z8bLATmSVHSO>yuCdy(C$w&2=P0&|Q>)+|Gz3oH*xUItegjI5w%_PR(WkV9=}#nIY% z#kV5QQKXhXBv;olK3soXccZrdHe%ND^Omo_wgFhUPUK@42H>3aRxYgJ&K|DgVmwJa zzZ@Z8_cka0Ix|Cuz~MrF*)^eOKG? zK5RI=-t9g2f1SHAo?5r#X#c`54JH&0yZv7LHZx=TS6*m)L2~sp#Jf?kRXF8Py6OFT z4s79y|I`hEm6mt(`qxz4F6Uoy|0I7+G=3>x3b-a-G+u)os2jDsUk)5;Nf{Q^9V|HW zlZ9%z11HzDhC^q1u#i;FaLJ@U7irW>dg`>D|4(rI@8?GmC>)NKO~?5fjs`Mr#XIyR z#|p?qe;q~ddkmy2lDo*UF433OcYSpZhB3)8 zka21(Q*hi%LO51v=vNXxtd9&dn5UzZv-Gm-}ojed~vM$>s+Q9{45q#z>XBM-$4d} z`hjBuf-2L@bF>gM&ZZU99B~+W!pBr zK&W9$$3cCy<@8D5{dB>>W_#izQKF5g1%dE^J%Ww&!9OA)t|fSmZVSrC?`KEt)ewfk zZ6|tjsTV`HpwavbQI-uwfaUlTsS86|3h%4GjksFN`{L9`6T2C%i-cSg`hf1`mRGcw zGWsfOv0ekkse7w!O8ipp z_Zx$b1;qdr1!XBx&sxW1h*T--L$$%=`mU5;UqZ^WJ(2jG&k;j0$|h6XV)E!%0xz3( zbl5qn*`0{;r|ejE4~6qDSa3Qg$XG0V!ikH8Yg;_Ogtlw=;R=7%Vk{LaKt4{@6%Tz>JRQ z;CG1uFR&1y*r65Dk=MPr_l~!v*&BapV=eQduZ^hF5g4lmTN5W8aR(IRA06uXIt(eS{|jo10(Np zeA4HMr{hHW++5q=38>;V{Cpc`p0$#zail{M?xw9JI(!pIQTc7ogd(NAWdK5@YN^s6 z^+D!SwV$s$zIm~5I5CRqNaqixd$YR>Pxj2$d;>J7AOjX3XI`(!(CQyH(UVMTr*(m* ztgeyf=={t;xT8P8-8b_KZ`pz>BF{xI0hZ9a+I=|SoSzEADph%t(|u_DO9GBiYScU$ z%%VFFm3vFv#!Ho*fbpXPPj6~pr{@@DJNVagd#5QH5d3)Y6lDp(Hmxg;2OM-iY zPV+A1eh2e{%q4}Yc1Ky{@QnW)+tcswyH0z(V6}?DtHq*l@@QAM+U+rKcG{Ff{*Csj z3kC^^30#1~WdI9cYYIKV#xgI8D{H9ukND;fp9^jsVtqS)%M)^G`DjHST}WuG2A8k( zql8rSL_6(VzF(V}S9s+^r zho#7G0t7e!=#iKPw*nvsJ=K^GEgbkEchmaCbCx%VjHAM07FJXiw`MYwC0;bCN>?wb zGtS#j$%q-8_gJAovYE^~8SEP2t(jA*gCn0T(VUOsLUY(&`o-DQvTLb zS}m$G%bcj1^Y$vuQa7ro)}=4#smMeEGJ0C5to~X!9ukx(?-wTmhO(oUfPX{pF415K zltG$gK{$S#ni7PA3C-Xu4YoIY1?qVO@Acv|f)c^uYmfH%Ww^<`{BZW`G|S_>@!_?- zZBE<;^0=5&$Yv`TfqI5d9XL+1WqTAhRH+A5ez&MWNl9W%l~Com3h6C?ms;02Nh7%$ zsmHZQ4iU-^3@MBVDwr$d!ts&4WQzT@@j=7l(u+5T-rJ#abM^3SZk^EYV$R{>R`aXG za2Tf_dYc@wA?5D0ux<8g$vdTpw9eTF6Wh3Er!LV($i*mk$@D*b$0p#Tq{q$=z~H1u z7rDk1fa~S#%$UM40ITP#Zm9@mT?(IJ)Nr36u(g>8hJiITB#zG^M{AUMDR%UBPPmId zuMn+T^r(K0J$L+FN*oXIxJ-v*DwYpV3EfVGPlC*fj6Do0bNIq_=Nc^tkM`$BKNuXs ztGv$8_G-zZF;8M}k9>^%rM!*kDy9!}&V82HQH`#!Au)qY!RoLxQ{eJ~1?%VrFc!iU zA6L@6|4-0Wwa`YcL*Pb{K?GwYMm_lcZEV9B#$H#pw06Kouy}eJV!WhgW8dDoUH`g2 z`)NL{K5|SF^&Fgp67hUu{*(ZRLnH%)S5GR5S0-KZ!i*WF!wI*8740BXd%Iv)G%yIF z{YiLW`n*L?@1#Zt#j$x==`Hg4Q|hUL;C#u+GeBzV?YK!Q`m$+<;^a#-FEjR!Y z)i12Fp{I*Nvc0}#QW0}8j1soc;ku*%2_PR(~UQCR(8jAgO%G{dCISe(sUosG1Mz-#3&OQG=!&PhAT zozqCbGSGUBr&1NK!%xgk z1Q(K|^UGWN5I5?u;noPB4kyN(HO^EwZ+Q)kQ$^8eG7F?B4PDVz*U3y>pviJhs#lBq zOi4>O&-YHlb7v2NrSIhx*dZ2$#hqHol&TiI9*@iDc~#A_S$jGXX{$b2*f|bSk3#Bp z7-d;wKVFEYvbx6DPBqG$U$tsEWbM-P*B2-*BV@8ICc$)$g(Gg=+d8-o*I#!^>l6L$ zOUz<@KkL#H@Mb#_^EMpQ|8Cje#z~nHczeLw)#^Fq;wk$4QvLbzL^{hk(pdMe(0_jL zKkxL?W2`*sQxrp9P;@7Knx8Dl1D6 zegw+fbNOO43V*&!E7KjaaIY9jzI#RAWp^sF0xJ;BvK4b$c)T03n;12q5@Qmxr)|xC|Pb@O7+mQ3KZ5U%FMho~*+N-GqLEKA} zK4a|nuF*8uqZ&V}g}4!a)w)m$8;ilg5}=wKqDG)q8sDC|Eak}DgOg12-W|7bmuxHdZ~3{FIsa|P+0z`H+J$Tz66Jd znhBvVvb8AwEkUDkQ6$~GKdE5_%u;a)Q7PlPn$CzLMs2@WJwh?hKwh*pyzRV5y zZZ9E6D+?aGw(e1O4CPHW1sT?2p-z$IEW7ej?OwxEq4&#u=Jr&

    %P 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%0D$Nr-8Czn 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 kZ#@ZCZc5w^q zVj(Ox%#igskM>QiP%Kvdcqr$Aq)tTl51Lm@Oeo0Gq#AxXinzt)4HH+elZcgFyWJ4N z3}rnF1El!5hzG)JBSNKL0&=^d&$hAontaW?=8Uo3n}~R^>Od7q9W=id*G)M_w0j58 z&|hV8I4~Y3RKE2=y4fchWc6u;_JtQjJNE6$GQt1;z+{o;VHpfvuZ#VG{%{#=hn{8y zX`>|=VCh5UuYRaY6?^@si>+G}dGJoN6d7b(u2@gJwOM`*Ub+NcW$L*&{3New-NJ0S znvgKjp$|BxnVoE*OVUK8AL>d}80~-j#>zCyefVdaUN?3~V!|d)Q);ZM(_M-pI0(M! z4MAlVo~7Bl8n}e%}Rj zov)F6{fi3HGQ|?n9%W!)j8nKHKB4Lbv==^swS6wJem^m{Ca~VW$CwfaAzpw*rLEGe zMN4l|h1tPZqYAUII|dOk9N~`x@edHu8)#qyQ`Vh_^w0JGRBbh-lm92H(8*VLK^pVk zE^C%+==cJ;d?(msW3o?@iF?p|{g#b(TS>G;AOUK3g0gJjNFO&f@tPE5{{IXF{11s6 zWe=#j^iZOEcaA9aTcL}0!&*)h0fb#7iBSC}wwHyL6+szM4%L4$E!YCkbDr=|>TU01 zoC7?iNziL`0%cg}3_+gG^h5KxJOv9LlcitB&@&V5&bTuc2(>2z4-?wofl22erRzQB zfO3zx5sS@iJv0I#h?p!~XN53#%R_{znRlD(^)#GDW>r0rMkCPX9$UvE(6LB9u<_m_ zfIrgec#VI>3GQ5-MMJ|<>ni4vLQHl!)$yLa)TZ*!;?<2Fb?zq$fTFDAK#4PyC$IQB z>MLd<@l#^N87DA9ibjxZfMYTI7>n(ucYk|qX_U)q@^7uI6jylpV`mi4mHGnE@l{uo zt`x-fAhH)oJEv$I#U%G%Cfrx5z#%jT0vDxbC~Yzv*~ z$z;-uOH;E=P`(8pH*Didv}OpDblB^awwCLCTgf{4*kLU2X?RR6xl*5!DHb2&y~)a# z8;8|V;>p%xEzl9o-{pYUZKYEmEpA9ZSI~oMi~sLr=ke&$)jb>sQy-HUQ0nj-^`MqF zwC`xzB}}7&Z*b43JI$(#5;Sw9k)LYFh{Tj_!el#G3FNy$rIDWcTuBOEzw;_*x=iI70jzyeJd3t^cG<%I*g&&%>pX#mFZYmb3=k;?pm2w{zP-biYn_;&> zs#FhG2ibdata&3L$QT^r^C7)XF8$0mn?sMqlZ_Ha%Lw&e#<-VroB8$k0REhH@}0{m z#SlibOROb4&VY1X*(q!vKEvO%T^KJm$Yt~wlTnPV79X=>etm@03#wUwB3D6YwpIPE z9ZZ%{kt$KDkzELJR()$$(y*ZTiqdGNWM^=I?Lb z64(hD#9!@whHg6%PK57#&M?EH=-#O&-Xrmr+{xsgVZD*-A>p^o$t(8U!n%-l zc8H*pIeIy{JS70+riF1+Y0D|y9|w@~ zi}k$c;F|0S*JdCw1or}I*6ox65;t^2I`e2=AT$hWLlZcaJ8D$zTTY@{rercZcUWDW zKQd9Ok$d>jr8_KB%Awieoe5Jcnd_)U_vJKuCVgnE`)}47ElGy<>(2?K1td37-oH^C zF^WoY{w%b4UFOZQNLr&U9DrpmKxg-8?bha3?|rW8hT7yU9{5|%uJBwt&e~co>5?** zD04CnL>eiBeTYBjg7GR`vN-U>XU!m9-*4_UGmC=~10!4Ht=Vit9g!etTR3Yj74%nS z6Ama!&Ut1dm2<(z?`Ut;n#(N$$OxG3&vZK9McTaA<8m*G7pVkcV5k={JN#KBj8FD( zn3|lHrY{R+c$lxAMlweNa3dTe&>czxw?hEuqd5!~1BeG4$m-#ArnG6i!86eTDtDXF zCpG{6T!xwe<-hHiIn^T<9A(x#s;dqDcpMJ+=hf<02zn3Z$F)BZ=*SNSUiu^aYk-df z*H6@cmHtM0cQzs_0>2603rFGq@khbtTmh4oY?92lzGmju{V)9RbjRV}hf)ivQ^@J$ zndD0RhzL{GqTb*d!#UJF9bKZ1m)3VxKj`g#Vv4Sa zoBFirGHo%6$h7P>rI4!}w8Yq$w_W3;(CnFsv@|el+0rgVjFX{LRezkbPVz;%O#13@y+=UhCldNGY?SSc4nNKpAHU8Pzb9t0^| zX5{Md1+g!ln?DM&kOt!zk0vnW`|`D@Pn3bi&~hs zZiWR?##-2bql_;^OU6m*0CPgT?FL>MRjLaAh)bn@?sPNzlPM_F^ZP=;rWY=r1y zX<4J-;E2=nZ$xS&X)^8NHy zW|doSDW8k^COo`3un$KhoonEul^;-MFouMy-daUAxUTbcM5Km~hj!EGholRwzvv*5 z%wepRl=+ggig+K3)zF7?ZiTd|Hv=f7rj}=8{wv3jQo^LXCo-Zho9STxhZl1LN^GYP z)}-n9k?q$;u-@J8$-rNcT$|}C{>D(W>Z^F>c_ z+eo7eycbaUnwH-$jAK8aE(*c}Nw( z1E=<_W3h5LRr6md)R7 zTu7}y?kf4($m16o{wQvhSv3c%WOtlhc^{(iaQPNha~0#=xvSUVW3y|FMLby*_RP}A zQME+CPF;~gJCEV>IfB7d;1%+RHJNMBpHYYm+^eVc&}_-&OIz?*s7G7FGatJZ6AWzz#flGXW`%n zVh85neJcu^`dr_(j<9@&*8jL$Gy$7sTS_>|4m)+b@+qWfDghxt6|BTbmnI-m_)p)m>N?)vq zb%sfc8zmC~Q#>bBm!yygDgn(Mw573!amwAg5@jzIJhpl*;^2Ff9iFoa*I7kxadTQi z!y2R07w`34)6}idcd|7y1U3AhYeq$AlPVMu%f6N-QzRPB>6_Lp0lGq4(I8BR5sm6i zPV)#%R0g4y<<4$iLSB1K5ny{t)yG{n9yX-Shze{Rr6KRvn)u!J?e6dMi=|d(|k1S11(3Y z#e;yHL~$28Ayn;}FAt=>Ak;WL@!27!F;z;^P)Q$GWxrkPpW?pR=fXL$oWNJJMG)rr z8QC*9RPc8Xjsze#7`f!ojm-v+WvJ%h@4f}afNQREMAd} zT_53)@fxjH{=83~#MaTtLCEYI8bz_{?~b|<4m^llcP#xuo|!_@AwwtvTUkxHJ7uY0 z`yS4p6(uK3&H&aTo8Wdh{ah|4_ba$(tjT>k=|L(Yxe|SUwl9W4hJC* zCd;H{aRf8bCX#X*S+*F5L*VXXj1HKgIrm%HSQ9O`JN431C(gdEUKBXyR^GWf=-^wC zAex=s#m@{@e=XRmv zIJOtFeaN`gL%Z7)9#MBM*9f?pZ&Q_lAk=}Gm5f-v7he_a^M%1B`MJmWj0iH-P~VGC z)}prDj@5uGug5l@;h48ymi(tY|3%n_+b#z^S|w>vu!*L>s!3*ZTR7N-;{~*`{yg{P zd@lQ?@bUY}YJqUvJ`>OCB>^&IbSww|e#Bx3DVDT1=*cj_NTNf(2nZhlhx{cR&B5o3 z^aFldbG-?$=Y>;m60@t{b(_35iswDEM;7l%{^^2LFkX546ZPflXAL5Cmw4e>HP*H4 zzX7E9yQS?}Xwg+mYUaG5aQXP@hIyl&)jvs#wKD(pQt26Gda?nz74v#WoSf9&+lM%5 z&ZdoS@v8x)Rtb$FIH3Y`NtFiH{En>S`SVZ?tgYA$*hSVR5R26_-O_c#;V>(>^d42RhPYG0YKJuK*$n}7SFd(Cgx{9J<4PibGP+H;JUr1W}3NO^-YAFc`f zx?Yhs#{;5+rlsk;2^NCL%`DgeH&CDr#?@yTqd?Qa2IT`W^jafy7Sxop&PeD*A}zp< z=IHLSd19PN<#ItT8;QYc*GW|9rni@0kOK-v!)h4*N(=e8`)3 zlEk|@BwcPGlSN-DTI&n^lZymCLoo@CD6V?xZvfaJh%>wvg=&JTENNRlfqJxqu79MP z$^~5}De~^GHQVi5nI+gt`@hJ!6ZTj@KOy)Mz1cfARwc);?l942BWs%+@{v zA{x-eto|u#Il{)slzZz3PTCg98q{Kn|6auV6JMbMlLRqHCm<@z%Z$Smu@VE<0}X{3 zHfydc=(AC|SN84!{El=Nfa^OsNnW&9p_@p4f8rA4;56OcePhMio@>{Ab*Nbq5C)*0 zNG7|JydNnYl5#YGW%h~LkvXf!Z;Lv&AC@$l@hhLx4Au{}@=`AqknUBvt?#YbBxr7< zoF|B6P5!gHM}k?Ft1nDA8U=vW(WEs=C&42# z#CLXox;lBaEKk+^>wty_ale*RM5(%I<;6CFk$PvJME_SGGTjE}=`>+vOM_Fz9PyVX zR?32qz3lCS_$D!mKBXF-3e!+v892_j*92SusWOz+@CG85I=FnypBBu? z#U<{lk2RHqN`-Q*ljfV}YVVg!!@7QiV?r@q{En1Nb+u# z6K?CLUgZj*hCKRnn7 z8{7X)df!d&t7F%QVQsYkIefhOUE6Q9CU=mi7c67$L_39}gg14m2iedr{{r(o)1YNE zabn-njoOEw|6T-yv|lDQ{Of0hU9bVs^Qs5w*I1zBscHM3 zYhu6<_$@-L!-j*|P8fj|V7lJzr;r5cVnT%2FItBU47&{He2;aZBB)@Se|%4P+fi7dUm6YCs}=qZ_Dwpr2#>gco+Sn1rnAr_vi*JVXQbNk}!RN zdhr88BVon-Px@Mj7I*~`t4M4-bM4qH<|3c5R}^T z9GQA>K;A?}(}T2lxo+3FKZ1SPTY$%va8ZIW5%hBVdnjHH_}G3nFWd(&k^qQkCm-zb zTaSe?fGt-8mksZMesYd54zW;+rY)W(*_(?;q+*}D?lUU#b*Yp-<54wK-!F+Y8&h(& zQnp>~gjS2;8Us$r2gI){XzpfiWSlq-ozZ`buE#A&V3Cd5!cMUh`%{-55jLt_-8%AU zDQ&e#SIo?3U^t4U?v(1_SmvdP^KBy%uEV$`M~>uenCURTvDzM3?D>WoGaYX;MoLxs zhW7V4gMjsyND0J1H>Y?OEL+>lB_@7_PEbtBFT~q3ui_cVchu{T0Ytw8YC2ab-%1&; z+5c+SpXBrqs$hkK<||$viq%mkWXJQ^NY@fuCp)FQa?B|s?dzgG5zcmw7Tbr0q|gV; zR3rs4%nH#B5Zt`J0OaTd8ll>B&jngJ(GN}E-}7yVO9(rl9Fgw@lM{u13QnJC&$;E<1@t^Bo1}; z6cU+;5|1!yWH87hKsPeIiGlQDUJe9>CJdo4tq1ch9Ml@-`EL+?`+6G%QO);}NSEn1 zw)19fi*(Nn#~T3^a4i}gHHEo?pQF}_<&H@#d7YAtNDpO^x|n$EVN$+|6#FYbCzhRqY-qAl@RqE@AFebIJkIl)bWYF^fo`+a z8S4h`SP1)cn+R3>p`}4`5BAC2^c9-fQhGh z+j$?-ks-na2zL7*$O`j)RETOv)q9&ry%R`1U5?V-<%yPqMp{X8zuetP=yhyd&1 z;hYPv`0KRnv3^7*ki*&ERiA=8X3o_|rbtx5h7lCk?>-+eS&{>8O)$*mY`f2&NBJ6) z$d8F=o3$}ubJ2n4an^N+;8Q$o(=zEeu4U5`Gi-Bo zJ%V#mzE6_m7p|f|uoK@Skc_vjO7)WUY+)c6Q5xSqnzUS$sa;khF%cNGY+GRtMRs@D zP>mQvvw@{@zx3&`V?=_v{kE@cUBXmC`*>HUL5Q!(;&k5rZQw+`P28}s747IzhlH}N z_`lnsl@{}V{*(>@S+Kdl%Ura_+0bW3hvk))Q{y!A4qfxy&(|~TB#ukDNLmtD-qacU zi(jVpYy4(q%kL^b|E`IGxedpll_3J64JQ(=#FyGw6M?Aph}J0G%7EK?1hTMLLQKm- zhw8SE$adnd_EZk|oMOWea_7by7y+fR` zhU;>2T6*Tt2_mnsr6Nz&gE{tJ+ykL3G$Nz~d{VkiZ9uJg;Qek!Q6YE&0OLoFCDcNv z*vY!}ew{EQ31(=cX=zEP`-x?ka|3V)P7hY>yH0a7HBfj*XtQg?U$6>ojY%U5QpS_}~lHH8#=&>`KdLNrV@0)y(X4BKq-k}KA0vTLnvZTP~3}TN7Z_Uty>snHIyOy0h zxFo4@7AcOB(3+Lb>_bh!!K+vpTq#_?veVC-%rZc8{1XJM*h4G%j zOyr}SKxYng4B!yUq1yylTuLKS3=r}(*4O8NE5~~yEoA!`J8kBA|fs#*}qphui9Sg_BO2p?OtZ>z;!K` zBb^f?lL&8#{AbbU>)BbyA+OA}^qwCIkJ(zE`A;alC7CGsMWRL;ipDzp;inMeTFVgW zm5KnBMtYtc8MUJPmI_|eEIMQ>t@v&8G@mRdKH)gh9_ck#x3=i)+5HPtjB@5{Oa(A} zXd^D-B}1_Sa~peqXkf657cPzKgdY&z6Sa80m{ofBA(?2=<1$;z~& zZ6G}~)Eu6J_$+YT$CrKuJN_ZYKV8qNDRV7rt@T(-Jy_gfx!0kA%pJ_nFW2#}u|9`g@ENfJJ0Tq=$1CWg{&K0&{EmKbGSN z%eS}okb^7!+yDt*)SKtBv98oanzKC|z3-nkZV%?N(1P#he@vxqpkSDAP|>gd=8^{4 z)8R-uk`oeWolV5ShL?S(Z zZqUFF_CvnfooV2}x=5zI7R;+Rc@Nd`Ww%#K2$dCzEm2f>w=$SxHzjCqygWRF`~~C_C}^TVum(|)fYREOb;j!_ z_atD94{RzRTrw(SEGbHP9(WJT^R|q%f#wpB!48bcT=22qEi?Q~VY8Uak0W0CTA4$@ z9}Jf~SUj2;t*(98k1~K^I0A^pexM5OCVEb@-bc{s7KF?LE@r62cUbmA!IW&YNj<^B zMRK-(QgJ)_bprHS=?gT6u_@<~Kj`G1lLRL>GRlN@L6gG>!Q;XlrJofiZ2BQXe zMpeg^6(Wn3be4VlPSu#`8vx2PyH;%hqG7wr>@`C8F>M>G<+^s9&?d>0Zru^zELy6O z+e zy<2c`B*~LTxY-UUve=cnKJQyq!Y6Znn8sVVwAG?`Lo$QLR3qyJDA#{N8h zH(S$uSV|qH!e?opOB-FS`uu&AH57{pGZOEh>U}>Q<1%|rAVsKdpNC#0=x{>}xgfF$ zGOrkuJ^(Wr=79t|>XyHlW8Nz=QJTFyQbfBpuC!=!I1c^%d!hryyEJhA59b+JHl(Zw zjmx6Z;}XgxMg!a?>RW5^o^DQS=o&?)M1$9Ib@V}DfYwi<9%;RUA@tQs7= zZ#%-+8te%MO|elg^|9Qfa^rvarqEx2!%NDv4wDvFYka6&B0nMIc{f_7BFK;yC8!{A zOeB*c&aSgwQ6iO6gK+3AGgxQgCR1`mav$YetVPE=IyM(E{>EUybHIfA;{!`W#0i6m zJy2lv754#-IMFFI5JpunIwlPHROq0$T)XTvI+*e1m*dYEc^_{oo$Gd%`wt?@l(TWls5gqSCG_L7 z-#u0kss~{1uu(IvG)P%PWeSM#b!=sWIwdb>SXOzt@h7fFa`(&n^P>M-wRV0*7YXEH z0*+X7{b!yx(4=c;kd8k*?yySRZ@_GhCk!;uuMrkCR%Ze~w7mfceM0!Sb)F@!guZ+4 zK|#1oXig>mv25{f%%_-!gFke!`0Qoq<@7qtr+K^P>1;+2#1!Izn{9H;=krNsm~JY+ z!zP(bE`b_~)RU_?xM{9#Nbl-f@hT6X3c%CNrtRMC98$C~P|!Q3kSRhnl8o);JI*(B zlAUL@_l#S;CgT@|FYL@Sz>S;7adLd_SF*wmjezpXP~ixxbAVuH;OU#Y*Sm~=+-^jW ziT#?{lNUN8u$+aXsh%F@9KY(a$Q4+rv^R8MT(`2;CEz8;*lGFMf`>z@NC=&r{T}lf zhei7z{|pKKqaXmS_va-48rdHEbY`>_)|$Y%I4%?gHrEJzIp-yJ5KNHi4)kw*i@RnY zovEJ-&J8{LSwpmWDfZ)`7(#@V9Zn?vGapHB^ht=N1f&uFl^Q?uefd|Y9t%T>%Ho=P>_It z-J6Lnb6!P!AWw&%xRDxn!Jalm<5v}YOhD*v#4KhiMqz2q2TM+nxEAfJc&w9|K`=dG z#-iFklO@0~oX!z(F`rI-d={{JsEZIAoYDSpUf=y10M!k$dz?1FOnB|DsaaBL!iN}o zwZ9f3JjmzKZ6bWJ#qhw@f^JD6*Qs;26|u32v()yt18OP43K0Awf>m`h-1 zJ6qw>=*{X~ zkT>WanvlMk(>vUbr3Z7xIEf<2oqc|N;EtEepaA#3bdIy&_Sa*gs$KAwIh}ri3mo`- z{7JfD>?i(&zTqi3e`5Ao0V03Nl<8ER_4chEi!xvwpB%rTD zRW#v0I)Oj`Aq_t{O;)ck_8#LI*F1JKCHPl4=fTj z|DFasZR4~s``S20cs9HSXRidePSD&|0v}IK`w6vPf1Sp{y`_X*dK5J$2~PNK)2!A7 zHCkbkF(WJfSL27wAfF|PzUyf7sH0V0nrXREd=C{K|84Y<_ng8op|4?6Vf(~9bLu3j z9t^g3ZqA2NrWz5S8az9>j^7{Lpt=MMkf38Ov))slh%6}#+HEOpeWG`J2**wWj;zCM zVz}b>0r0RP$`aCR@+Him)w908=q6R)zgTbmdg{76-230TRF@qm{yr>Z1qf) zs1pbt-4o5yOYE-RKPSUzY^1Xb)k=CyFk{T{op$_B-r@PEe!DeqZVZ;q%R zf=A6zl?XHnh4T}`Y3C3hd*g)uQPFoXL>;jn z_atFatFZ$GQv0a0gsly@BHu{%E^MxVr?Pbi@6a1> zY8Gf&KD*-^KCst>${8K$XQjG}utt!V5TbTUMPjDtG0~v@QTtwikstQ7MU0w+gd9v0 za`Js$we&NPLG2yoA*wE_0=q$a&Flt9AGrt>;qWjln}LeF)|@7!UD2IxXij}b+A9z4 zrm>uN!ppm*JCVgO+la+cQh+FZfxP@G|43Dz_7 zTNaXQtX{+v03C*Gwb@Y9`&BWk^HIO}CAG1S=pxyB>_vtGbdfZair9y9{lEk+rw5~P zg-V0na$P@YPgq3SB|Rk_tKcOO)5jJTRSlX{dx&KfDY#sV!dNDn_k}d&9dtPcLzH#0ss<7^vJrD z_ptZHdX7<-dBL!qblwWD#Q;s#)GtS}hn|%djj~lbnQK;P5XmGi8K0X=n9W+Y0x~xQUQOqBTGIDXwYPrWZ}UY29Ou!ub)oM0foP%FQpu3`f4KVZ2g ze(1XX9#zG+M4aOp)nI}w?iqbYdyIRZ$&3eDG+e@*{F;o1|L5okt(Y~DqwY;?e*MKx znD1e-`GZi1AyFC+^C#gfkc&~vVAJUKc*A?h*C_6Q zDliqm|K#60!Dnx1KuGQJD8@+>c@l$8#*eCu6uQ^1fY!;&z-dNGvLpsNR=D%}$&BDu7%M~Xbk<-ZG*lvoj794l zgp7dBvYoh&%ET~C1^o8m{wZ6l=qnvZ_-=2*Fiw!gVHd~N%uL+Fv=q~S0a$8cd}q2B zC=Ik8wDhE+kO`x^{t`SFX4dgo9(Ve!o72be>7G0{1s@jpH;uGt-^4@47sfZyc5!yf ziiaI`HgZQ<^V0CRDq-=BT=Ir!@6q;3i9oy;ja9w0pWHVlf0g*^=T*uPYgJ)OrzPv% z9#VrU75(NebU%*CAn{aE%jLt@(eN5bj$fh*PuJ)?QN0gd(jlgrnlfSE`ao(xJf z)yc!|v3ZeBo5bO#PRcNGsH47y+@vhf=iHMJ%eT|irc<8hCBXL&3*>9NnR!Il^OyY& zJtg{nP;>S8^V6o#p$8x2%k53rqhV{!^Go?VJmjv;?>wFj0xAmm-|1Jv72zswF6y?g zywuxa`UtA};)Ie-Yga#CMo|Dr$mi75B!C9ykA8|1`r8U!6tU_toX7vio?c-%k-rmZ1J7I%zj#g@`ADdqRGZQycutWOy;-kL}7=X&~| zf!?E0^Qm<^FUo4%2?1*ap9^r97WO!Mg_rwnR?y5xr56T7{0Cx>nj zCu#Ec{36SNf8R z4p9PNAvsricQN1g?X#jT2E7h}P99Uj1bdqi@ac$-6%Qm4@!l1N=*vrJfQ+AqhNO*s z?=CcLX#d7$fZ87l z>{S#{ko|WOl^-@T9%213av4(j4W5(O3x0>#rz6Ae&pMW4@e-%4_|pS#p0>#u9du9~ z&5YtXL&*~hOJS{gKfhc}uwAd9K;qi(tWnm+$tGFkK^~nL*1#hFd_%>D|-)oBA6`fXr63r2X=uKQ!P%zlwNi%uj#Z8yJ6W|ishb3G=+4jK3kA_X7<2Bw}&)B{Dzs4XY z>Y%3!siROyC_fL_A}0KCQj3A|+iy*)QrTEh$rmSiXj+s_Yqys@0eQoLmYUEzj=oCu5G z&SMcJ5bY?JkRbvIe9WP8h(1Ke21XOIErCrWn*q%OO;yAsdPYO;ke~P!)B5bs(FRsz zCXEL-B_twcC==@8HJnao?zT&YqvZ0;qRI>ex6N{Y6-m0eY3J@fcDji02w4i=R9C2r z_Bh+-ncSlkFLOCMB)IxMzlV1hy(i3r2 z_6}nfr4wn3>sls$NpazFURz$?Y=4w6UC6sM;Q+Zs)xu`8DaQ}a(ddr}?x~NMR z3-0cEaEAnUx1hm-YaqCDaCe6Ug1fuBySqCF_k(-$cGuT^Z`J;_Yp=hn#-3x$XOJ6o z<^e$1HFu_8A>@WDgjt=isWY^WsEyp0^qg%?E*)y6YLE5P4gGZ%xA-3Zj9-EQE2D;b9 zTYHaE=#)Ar&msQ$OF%29dL~UlPe!+A*GJuoX@@wMGZqS8Zbm-ulYLO^iSX=Dkz~8g zYBVz0&c}QP1jNlD4YQg_)K)oq=hG6J1l&7RXvXH^RK6qAwyN`KfdOVz%GqZ-0@P%n zD`ypEju_zeGErAl$6{>R7my?37Zxc$t+HRFFtC45P({FV&u$HxW5EAh zO=4wNmoNPjoge+PqpZ?CQnTW*byepp{8%KcjYvPjNm^?e#td|VO3SKd$340*7q^`% z(Fr>FufpTvjbX^&!ccSKYyrzE6($Tw8R87RItdsJ&I*DmjT{2C#XfgKCyN5%BFd_( z-zew5epSS<_l>w$ldS(lkGfDE!q>Bkg(uO(a)1db4;&+fA}aM825pv`H)YH@7cHna zfj1jWz(+c)x@1VgUATN0L35bGkNxO4C_euQeM3q3j{7Fn{m-5w1{wqyx^&9f=W$4fC5VYQ0d| z^u#&zXgK}HY2K{OSr}OzSZOJSuoByeavgLLR~_6Yfta{N!d_RR_6%oM>yy{MRB}N< z*bo7zS0w#m;rXX7A8!FCQTdr1^bHKXQjy0D=`TWg(t{KUHj&`nCwd9$dnGv()&Hz{ObjJBk&r=T;z^ zs*lCeJg-fHN6`E{#Y^z{z+haK`2qq;W^8i-;iVM_=d-P+XCi?%g8=-ap)V%XO8p71 zEt-;2sKvCz+Z1F%hh^Xlt%A<)H&KbHU9AW-Ne^U$LuaeG4xbPyYAnf*!dsS=7?F4W z3?f(BPp~-d@zPT)+g5el6N(PzOhc3ky{t^7($apY5M)D^4dX!*42URebjDU~d;-5q z6qN+;=5O8016^zgAD~ujJRHPO$zKL86(Pd8$4*C1tDc>nL9dn#7j|S?+b0a6v@yw> zZA=|gJ#7XYRoemrz{Zw2QJQPV+e|81xb>GVoHTFrwJc7=Yd;A2MLZ9PRl7E^UgU{y zFwd;ZF0DWyy^Lv6qJc2inJ6ge(B>Bx3vy>^L7AULZ4TA7X|3u~mhz@;q=3sAd)=hB zc7GHTxNkSC``Q@T5WfG8!~7+goV5b`$vAkn4@+65pM0Bub#=x2dfA%;0s9MvO%H;; zJ-L{!{UPQmr>p4#cWg)%pWNidhvMp@aEcL z@4c?irGnBP9J?)T$*9Q$m=pg>Bbi#bOCM510*f*tFZ5G|p8fj{V}E8PZ{9c)x_%D4 z;tYH5RTa3=L#pBQ^*b~jc2RBaHy_%^hqZ-l+vz(#(YsDdZ!W=Y&md^dn|D8ft)PGo zt=qJra=j0AE{b{XovVnOXsr80&CKU3cK$({$NCogO%>19bE1E3b{%X*SBCTWKN_fO zh9H6@5<{%5pu?bU^N`kkE>*>UUJQRoliqq}4atBr!F@ba97s4fC@REZ@IUwaUUgKT1kOrT6^=$h_$L|fwoAHNIz4ccS73->lZ z1NUBR3TYr1w&i-Y!Gz-n^NSut&!vN=CvZXo$ zm+JgVLN{x`n)7amACYwczPP4Bx@qSzd4FPPsD=6kpWJ|H^K&cH^N)>Yd3RJS>w>ek%_@#PDW?{*G46p{;OBmeB@2tD(zU}PTcG7Y^Q>81Uu6OcJJ zu$Lp4FWhc$tvb#>*@&Mu_`i8q1|i{R*8$=kqLqjp!-ksVZKeyF3W$tctPwX@O$ai= zCL?bTTUoG1?;%Z;tE5~>jl`>z2bt(hS04DQhPVWX!H!0e7G-fkVr>#U0x;|$rt$Kh znwIU2nHTkie?L;N(;BI5@G@7KcHkg#9^CK9hUh3{@ zgY8~t^X1!5Qd|EI+Ux7)0^0w-LYR5R&pvQFVC<#gsFRog|42ck4J>Eh)!X`8WrM++ zv>4kpL6Fpv{F4I9*Q`Seg@|r}>QvtWGKOOSk$;q&h*#H=^^ z@9%fbUgN7?_`e89T9mXf(B6iCQ1(E*-VqlDU%ltX8R~JfWVZB;Ufc(b#V|T5;$P|= zo1Qx)GN@l9WKO1yFZ3KI<`xPhyVri|s<&K?d)rk0*kXDH8D>kEeMJ-MZM{X1U!m1C zV0Cwj_w{H<@i1sP$XD;BLp;?f`O?lv6!e*jNiQYGDA=#|$cLa0P+~@Roc;$9BPXrz z5rkHb87@67KJBAepq$?8dD?8?Ar(tXRg4X)7kM-bK2O~AfCIUUskkv_y|wDo2v`R6 zd?`vZ97Iu*c{|FQp05;hA9gf48WSj1o{EG77$;RR6_jv6*g}?bJ<*^Uicr`*wO^$m zXt_2};L089vwZv{l-Yd!u-domZMn|&5c)Bljd34H-iRb|C~A^V0*x&NKQbf(y^1Ob zo6~1YN4#x{ob%0D?}x$HHVZUqUwG(lLJ`3h3Vn$Fvz8$M2^t{o%Wxfrf^#%pZ;)sL z4`OVKG#r5SY@%*JSu3*!eA+toOLY;n4vy8p-e+5(q%R&AaKelUMP<5dHO{~X!;v}9 zAQ+vE{7`zU)CF?77GB_Mi|jM~sTnXq6eCebWD?WnH*KdUYrXut6wE?!ZCgWDW_D{Y zJs3(KMneLXN+c_L{A~G)&!zeI3?9s zO4XwTR`GvQvbWOf_)Gl~V~mJ=@$bviMinA^aZ*v!~wUNO^7LjNb#r(OXe7a z)2x})bb-H>0+R%E>Rno-Fcc1~n>x}cuY7L|?l2{vxV!m7$XpqzxZ)Y=n%&jDSh39< zsc&TKsKXl5>a|DT7BfH4=~fK0qB|SbOs0Gr`o08L`+I@491d=oXbcS=ZW_&c!+D7TZoAI4( zqfl^iIz9L=H2UZ;w*qoPg7QeI!E>&&yr+uUi!11JG1ouODh$s3p?C%+Cqgg?@lTDy zzQ#mpd204BzfxlF%^P1!|`Y8%@rs6JJ3_g1* z&9Ykc@OtNNQC53a9s8h{28f>v4Pe4NPr+4-$dPHolnTq9A|3OcTQo<;NEE}pnsf_@ESPjALnn+O)u$@4kB6nsmy zmaED*A5GhhljO`*+q)&uNJgI_j}ob7)Lc25^YR;H5z`gx3ZEqBveYe+4@*KfB41Qq zTc+c(6Sw3x|5Y!&bVQ;vzpR`EWo}UwWC9kJ%*;Jm=(?im1E?~?F^@=f<7x^ohH$6R zkK*;`fu`aZu$ z*j!$!3yWxumSI2^K(A_lkY^6d6@0D$xNb1CwuH$?+qSK&g=g1g@Eh-7T;Tf?t*-HH zV996N#|qqr>9qWAh=;IZ{K56syaUZ{6M9>MHpt|x5+S%)vmz=P_5E)^fw<4r=az93 zg=)<);+qg&un(>efYioC>lR+72g`AK=)WGQ+q`Rq_+qhee|^7h){d`F5GcdsFloV4 zW+X~8zu|MnZIyjVL#^>Xe`@s2KG&30{k}?UoH`8~0fgywipE2TbfVM{(0BVoV4IWN)r19e){O!Gjy|eqVf(-GwY2KWyCcc|jN=3|KvwNK0;Ecz36I0D^a}3lpi! zUC9D+Yc&SY!UeTKsXUwR<*T1iuRU_E`=?01J?X?{aa2(LOwf}Yym=%7>FZykvmgt< zZQ0;!YzU^H$j^qTmhLsAod^sScOiX}boI<3%t0U4Bd@QlTuZu6(P+P4X8g=4!tm|r z^CmhV0z%ILurLW)@L)+e_LTKsOt(p5Lz|wb+j-S|{P)Wy(a7q^ zmTny2!C1vvz1M;f&riWT(KOG^JzbWoDeY$z8a3))uPKoOi1Gu+|KI(;% z#0GmHj@TDvxc;2+Kn#y?cN~Sv!|Hkf4_#aIui1BsWL&l3veJ+qMYD*bG4^v~g!fFp zoHrSme_iW^6?y_Ce(|#r*s_&hN%fKLq?zkfxmT_Z&G`-@y-^cUk7L_=Qhz*?hy^ae zQ0#ryi^=7MAvmpv4Y5?t_`bGbOxCsU*$Wbj(^#S6Hmw-{*BwBWH2_mhdr9}NX<~X; zaR6p2@CcM3&mtSBe9x31x!g1)?;QP^g{5wEu8|F&TH%A;%xa_a`|ZK)yvbDU5l2qB8Py&|IB(oBHyv7}Q<|HC8L-qM1m{`uPU zgKa88bSDBPgY7JH2chRSqCMw3o750t&%$cAaez9sujbEOIG0UfI#pDBt_{bCBFyzt zw)$P$;g_i0c^BM+Zj-xO2B868mE(Mea@Glw+<+hfg)xAFr zyHrUX8Fa`&&dr$7E@rE8L0e}_0U&5-KHTl};D>8tXf7OL`exOuAi>@R7o;pij3Ol6 zJb~TnJ9vY2J+(_%hG1!uat+el+!#mYDOmI=hP9zsa62n0i_7w+v!o{Cd4HyA(x1 z?(R~+K2Oxkf$^EpNqNa$dOX7hC}JLV^y@gf$b;d~Ah|1$IFwwLVVqNtDQ=^h1L9V= z&q}vH%_L=5(E1!-PzfNf<#o)0oCxENHL-(v44!0)u$ixGwZ#RIFwf3qJ#T|%(|}x6 z>j7h#+w#vkl>kY!~f?lY&Ky zO`9HN7rawym#GWa1-ayx@b6|23+r|p5^aKwQml`1%VDe= z&U6uBA+)JRhZzjxCa;XC#j?}$Q$}N2*;4lmEBf)owmlIdMX{gyw7f=TQlC@F|L`3? zf|R3qE1(_Vx_l6@&CaTHu~OE^K7y{m`>lyNcpPR_9`|a$JtzdV`_==QAT-SILuwb} z`b&-y0;05UQlQAW3CAKE2k-1*Dlo7ctkqty0(*gT7Z_yxaXrH*afWp<7W4;wdQy4{ zH5mDyR*LdnYfib>ib;n+Oq9r95myhY1h0i4hpgPLkf9Lzc-b_83#X5pzCNGV9f;Zs ztQRvhv>&$Z7dq(q|QzC1(qe@+|BVdW_-e*qd}SL<$x z7{vXU8v%ItK(oTHHD%$Lc^^&p*ni%c!GfNy(yWw?+#Xb7hanUqM`lvh?~wY=Pqi9Q zvwxY>D8i5jYKVfXwp}u4r?XU>I&4w^it2x@La-x=)A{w zQjRgA9p~qNUS~-(s*VEzj_8ivJu><&7$W`e(4oDB%sRm9u9iZ153s1$yf57={@e8* zR&QzrVxh2h^1s*Ng>odH1$-qqh|WZSNW_tF! ziN?^dsk(N7KUt#CwcSCsIpNV}(6X zf_`sn_4maRw_Mhf&!>KFRNr$Z^f1|!)5)`FWB#BO|F)HnYzWe&(O~Vd)2Hv5Zi|ux zh5}UeJ*r1EyF$FNk?MrRg9FKZ{<^~ZuGxI!Sw@i`-srbGzLeloTC7A9*U3es(@2RL zlMl5jukcZYoK(}ZK(uasMS_@#;NhIwKAk*X_aqt?Q+Bix;OzG6)2@1GI~v=?>KZ_- zL2Pmb|H5hO2B`8TbHV{-WNX*_9&&nA*JHuYJT%~iWugFO$&__zN_bu?nd)0R@%^^I z1#A+ww6}tGki}7)`x%j4lp$tF0MpQhmK;3<+Z+} zFh%2=Q7J>QJWMO zMf0<$Jm6*01o)ZfXO(fUiJMA<^1He7RBt6#zIbDZTN=PKAkO@p{z_FbK?xh&*CvxB z|1m?jDx;*|k9QJD%?}zFrYpR8&_V?;RUv`fqmu*W&xcCyQ>573e_}m$tS9S_1?szj z^@hhFzPoV1tt{P?8)owI=#n3*_6Rv|fR~4axB{k}rkf#tLi(F^XfsU_^E9PIjrScw z@fzyR2AjT@+P5wm1;ABxKA*^-yAN_^svsmNxl%7MK0L=){^^-pYqXJXVu-!?`hKkB z+v-}SAa*5HIW<~%)z-VShPBvnez%qo7X=HS(uySxh{30>v^EIl#gYAB}v zkUm|Z8d4%4Z^s8(6o71B6uH(N$C#0g1UsAbXcbO-x|lqD%~ojgJZow zR1WW8x1>#+QBlu|qI3qGJSK28HpS3Z8`=9+sFiHJxH>4AgHCs)#YhoRQ`bQfrJSW% z9?FtehGEpk4ToUz>$~}sZ0e-votUDs)_BOF2gB703WZl8ICZI=#{672Tkof}ewk+I ztA}Fh{QW|mcu^nhfg$j;K1Be`mv#0u64Ul$Q*N~>9X=ZsDII)7d@QY}S6MXpqYF#$ zS@-;t>)`o)DC@qyNIhnTVeMt=<8`XR`L2C0y|RVgAe0Gq+rYNn!*R}>4l7XK9+1I= z3z+EGBe^Udp}yP`(6fd9YxOeLXu%tFn;vEIRONG5mIrr~Z$g?(d1tZah-N&>Tr8eC%wGz~EKRSg zK(eSQPZBCyzlE!$I^>>jxnBX(|L3S*ycMgx%{I(xVNYSe7tEVQRK-e^cH@3X?lymc zlyAFXvV9aN4&6cl1K6=EOoI@wyU5+&w?o{2LsErW|MCOD|4R!2Q65WjO!~hi8a=YP z-&zXn`gvQQ{zin>OU&^mR7J+`EF1~U0iw6x=j=>7*z-7})c}P7#D4!wr4G`Y!Y4BJ zTA%j9x(`WrIr>W*Rq%ep6k>!zStHLPRyN~A8S6}mq+A3I!H zq22vM*qF$(j+!!GSJquE9J(5YJ`O!~!gTDm2uo~8=RLu^&Kfp~afMz71+G8$xZeBk zlO7?QmvyJQ?Z89R%vy6ks^&@psHDwsGrmm!HLva&{fEasAK2(;m7brWHgAO*Ra^4u zK@jhI5&bCx4;+dl-NF1JgqFrF6CT(x@UV}ZT#|nkZjvVn* z`0YQjcTFyV!<1ks`6iYT*MseX*>x&)0PE0cyzD)h$kt< z69YBR?B3PvlC6ia&KZknI|8yV<#oab`1(B|@wdQ?KO}-#MJt z+D}MkCC#8IP7c|hJu`L+GLwZn&UBG?WYhoM^+4@!`YpyXLKqzqy%Yp%kihk==YZ2- z^qYS_wqQO!Ez}`9;=MHIq79~UJ!~%7B}Kpzvre27tqrah%M~v$6rK1S`j`KHyjJfR zo`EufG~39}F!|1-hV=RS`4H?O_xN-iq94PfvU0tVHj#s=9<)_-5nuNyhB-$AwMKtj zb=mwar=S?(pqA(_k0-(G9u`%|CP{Dr>;tr=wT-pj@Lv9y#Ium*uESiad7ag@3rR&g z<|?3+?7PXJZhJD;S`{gd4%E^>L{IK?+Mshpv?jwkRB4oS^Gn?^Jx zZTkDHu8@ZFJP2J%^VlK1K#ma|rfoe+0d|phf#NMCp^XOrPAviVuy5Q^n(@0rhCa8B zQJ&I}0WPO5(m<-T{JaG6VZgmVU%}@1&IGjwl%qA3=ZIdw^BR9d#%jheAf}-X{?pD# z0q~iY!=bzk_%u!3ew~Bkai2)_>6T8jhvdPIL5=QzmLnvPT;diR)edw^-Z8?%uQ0k> zz1#6Yb60M@q7cS?Kiv`N^PL!N+$$r+;BV}%}^OVTx=K#^8dYO4|&n3 zKn=*^BVRyRS0^KOVu2buy3CVC74Kaoxtr9V52Ex-8$F_x82VjVrpwh+CzBz2@u1bWcBw|+QNUmUdDoq zn;|7fvkCPUh_toPd9^r2?4>Y~eUnzSxp|hy$&ETgJM41MJkh6&_9%KK3AA}7w^-<` z9d6t_ICT-Ei*6yOow}d=H$7nNIkw12c|0hj{ELR*Bavm-vd)orbeYt={N#>dReK1B zuSBrUAnh?KuJYftp|4zs+HX{(!|Y1iuvB-QITrdz4S1dyOTk-YQj(Z{hHys@A^D)eJOY8PhzK`Ush{C29B) z&LWz{uqX~!4YCXq_sgP=ou0kybdT}pY7iv|K3_r9QE~NrJ|kWU`_Wl3+|Pcl2MRw6 zT;=wJxgiRc|0)eNfWsL=qfclQ#L&%F2eIK zJH2uW?C}`0cW3rM?n;Fe+p+X~1!xa0HyuV09*h6uKw57@uFI+9l>niKdZK$_w784Hg(vDCV|_T=q5Ir=hhi4Y*|mqPi?*L zj`pO{ZCl=uI1VDanuPCbVi#BpKC43;ZaipT9>~(BqMSbS3z|}YboX8};cnc#)p15) zVmwH{D4eb;D8bUp2r)qKj`C^$HIZX9VjP*Zy6fJd_wlLMHJC(Xm~iV`@|?VUoxB98 z;0aFMd4Gy=7c*0uOP_}}JoIG!yHZW&)Cak$J{UaxPj|e5gF5|fhwR>v_|29CO zOa|IkA}(~mb(DM4^HWa=c+f$Mjy<=hoDcV8c*qS8l?11=2nwsb80k6g=D-Xv>h#B)0=V63+weG3EK|v1Q{3x^!c%ElxjI6f64$96sS} zOAsI~qZU`mmH%eKQTP3aW21U)^hPsVYimt*vG;nH5Rvh?Vo}5h8OgSsFp|h>n7>iYwHc93RfplcQC57yFX6rz>)!zg`~R}@ z+9R@h+b7(XIBRmD3tdm^Gd7)e6wW9`sVC)y(5)30o?tOa>3C$b2wOkKngcC_}8Py5-oC zV&nO~*DDFdh_2`FIARSS#iP6Sk2ih&P@ql0dFqXVqL*8SF6ujryO)wybG zVn*I~14SKb=sn&n-(9S%tFIxYTUt+r7*eH84neLOU`^7K375&Vr_0p+%3yFi(cyo( z^?$2SVPedyl>||a$^UfuhyB;qnbH5FT-EZ~bKnezo~(lmxI!+eZyT8q!@$*nNZDDuzNrKKELN6HwSg z`L&DQywT$?O%6+(=)V0e~YUKW1@U9R-Nay>yJtqz#qli2VOTl_}q zu*MZu+=Nt(y}MOPG}~tQjK!xpMdszF^E#v(vK6gF5kZjS%gIO&|Bg7Mog+T%MwF`J z1sxAQk?6hU5HXqIX@ObThB&wBX?qY98S8o3gN+F!zXpC}^aM^}A37PcW&DN}O-L&Dc z3#qvRH8V7E=x;svI<9spGg^T@>~(<606TLZA(@dKb^Y{xHym;hn+ZU!bG>c+%jM@z z(TR5PHPMbIl|LDsm?C2YF#=Am69Gq*xEN%*AS@__j2Ttc&hzsm>@roramPhi8rt;$ z+_ky6jFlJM7o+#;t0;jmV-0pd@Pk?S(%tX9K!YlNLyd}F@~hr%xGIf4f3)mQSD~h#7I|m4$M+v!FVH-TT3H|Lgh)IegX1jzZ@_JMwuBPg(I48?0~fhxGVTi@Fz4&hm*QZ1WS zWNq;SinF=#P(r#d{WCl1SpDyafIVl>j*u^;6MEWmj~MQ@g#H@=<8w%i`$_Fn%Pb$% z;K=RY;z-Xd%@lr^**%iVWg_VvQK8xDxebL);iaAxLI7&K@IN1^T;9#mQr{`vT?_kdf}2qN7Mo zc3Og<1=$7==vJXGC<3_zmL*!qh0Q7^8`-#=QL%0S8T|n!n~C%OVq__WR6EkZRbdA) z@x^nJy?7>cS%@TI3P{)vbs^LkUQo#Ja1#j!;dvm_^pX-8L9(Y}dZ$*RbFJlGq4A;Q zb4jS=$Q~f|12X>`UXbqCtbR=(WjCHT2` zM92D6-1NJ!6Nx;3r2jbQk~b%_4DzW;uL+fR9Jb?9B7xlHem~RO&a)mvJdPcpEwLu~ zajG{e!hU3Abrc+yXO>~A+qV7Pk0{)pCBax|ncl?)ze=9U!%&ng$-fpCo5J1k8&Zem z;IWYapG)={XPw&4#fB$&8aA>8V?jk~szN{UZLC0r)x50rX;fp9Lw-@Zii}u-SO{DV z9Qu}S{V~1t8;dm}S8C&$t%dm0w|AO?vsQ#Vx(dYxOPWCOgM1R$x*UhU{jdugjcN4S=B@ z{I2L5fJ;Hkl5aI8=yTB+yy;%r9(Q|`#{KF46HIkhj2{S$0y!=Th(f{ojFq3x@r&eyO*y-55?xto?f-|thx&_SV`rEFml}6nZxd{oA0g zR6(eTLMhErqFSPowH zeLUZ5JUqX;^gyRrN2tBgpqv3P>sH(SsuiAYDICKXm2Cf{xcXD2=zsn+D}-8FA*uVg zC+|NI!(6Kl4^eb8RIa*mM`4hoE;2|*f2o<%i}W>vvS%=3{;p8@o(J@-)m;IT1j>-8 z-gFGC9bN0hM_+7h-)FWfF?*X$?)-Yd{ z@ANz5W4H`WSeXE>8p-VPb=z|VapLCuO^nI<96L8N-hWbau}**Z&a7oK0+5lfynmf9 z(3ng)TGam6DpJ)e){KZQXIBD&*DS5_S85^(?b^K~umz9ua%HJ<1l;)KrJ1XUSeaZV z^TcSgG-^{$$@{)<@NO23o_f-RkHNLnhxIRS!n4Kl?R#8ROX=dnh(rtQiVdF=5$9pw*VnkS} z_i~(!9vGMp*oQTt+qAGJM&q7u!cm|m#lQLm&9cxMkY~NiiL~i}>!r^~RNv(9WNQ|9 zM>8xuu|3G&&E2FrWQ)MH{rEF{4RJ-fx$uF%glx?Qj(82*)}r{gqcqi|(zsWDI^rbO z+E~b|nxS^#(~*Tp5mdV09K=n80BsUnZJfoN7*SFr(FxQYOd!{g6Mq*K>dECV*az-x z5)%V=y<&bnj28(e`j5}~@AZ%IO}w$+Z9lua#pqHqplOjvRf%73vB6L}bX+wg3crd{ z^guJSsK=qVi&VQO$E;iGO_WYK&|#Ao;ST))@CuLYMW19S2cxrjl%{`~+R zJ@(A#t2ZkD=i=bYEIyVtn%XXyRknjC)}u@|H2WB;V9)rlog<3=msjRp#Gpa8k{wjT z`Jd$Wkj8jNnZq;(j6H#nQ(@?==j2~yU>yNG5E04Lq#gN(kp8o%l}DUlJA}5+&0#nGn5c%FZB3Jh7Hyja8X6sAj%HEeHeVj ze(Xf}lb9#R@`3#j*nwJV7I+_xO->NS@!(_Q3J>Znm&mV0c`8a?^MDmmh-6mQJFmR) zFMp79ZN+IuwJC!+gx!zeZEPXug&=r*P=bPc;Kvsu{kJ_J*PwF0gsjo{gAPb~*3udA z_J4c7VmsPn&cWk?Ytc}`C9q!npXFF)dLMxZaj%t+J8RQ)Z=oabK&-Z1f6Z&Rt~gX~KI2(&lWi}{aE=LiL?+9VK;@xX5pF$3A%k8I%R$!-G*7OZ6i5t*Q{tQ#zogbs zi>3PQ>1Icih(jt($BJoLT~Xut-bk zMSaDEbA%5PDK4(xNEo4%O!^@NHnfj$eNMLbpP6fv$3)9st(0P&@4N|E#ObWRHx2nP z!JD|wgX8#EXFx2w8ZJR|@c2XVR$W_iiVwtSrLpnb?2eqix6=;lb!!vBKS*xP&SS*^ z?nXsK-EH@~ISzQSO_|ZLW$NhxtqWY%h5LSC<4c0-vuBkvGLlq#TRaPm(dW9_bpo09 zubr9@yR~OMnp7s=5G?IRMG@TE&zDVmuSuL1oU5vNhWSLTyc#d={*|%=>C2rLt|#@h zLqaQQ$T)|bXHkn#wFe66-^p-Re9!0S>d+exsP2wG?;Gvs;}(hKfgof&c8?i?PYI-b zdn;Zjy6o`Epb6`HCg1Vv?ryI&j!(AyU+N(9j>;Lr-6E&59jkt-R(W$u+*RRshQVEl zvm5o=%#t=&jWk08{*b!_)2yFK`FyhE9z&K3(K%)Ga6)D>x&QLsf|qFE?Uu`ocV@Bg z&$sXd;f_0o*!jnK2t$-9wPk11S#P=RHnFuQ7xU1Rcq^92n01zD(Zn$YLdcgC zwnr>gb1C;+7um-GRA`z^7*`3NCBM&WC}O&4XsZ<3;;$L?KirAr_HiABOV!F@mAf56 z3^LLQG_;v+{XvJ_)2M9crw^2BR}x z#6+R-X>Vp>tcO5a)wtXZKl6>f#c4&@ZEy;))?gQ+gyMcqF?x{D-40C zVK44QAUvQ&;-3VObcbfn;VHLu)IQ%7ytT8y5wBdVt;ds!)Las6n;wCrcMj=9)EZg+ zw!CXk7d;bf0DBB;)|klnknsC8J#gRQ<^H_k^uDVH?*Jjr!e=s?7E2!-=G2Sx;VQ1c zz<#JC>}2J>Kk!hTw&1(rVbRmUP%ZSkjr@!rIL-@2u$$2JVhoTFAgW>~dtTi5Mky{> zMPkq%=rZlK%r#9=DkHSH8NIe#)cz(<|J(gSd=gn$Wyc>dH8o5NHMx{GrpamVE4Vw* zAqNVqia+p2XH)$8y2K1;CF^rGz7Q{=-p1xjSz-b$u?4b`;uyLiYwRFCPwMmqP*J$> zDluUI+K;XQ!9#Du*Zl>oVwrM1LRX@F#zqCE&sqNznC;l71TYs=-ABE-23i2#Q?WpS z5tfIa2H)dG1O){>FqD*9XiKv?SpjBQolKae!wi=LjFX%n*Np6cOm^(L+&u*h#;KGQ zA=HW-FO}XaJ(%Qg2`IBKKuQAJOHbAqgeuqK2~jOfuyAg z4}?o%&p6dA`6Z>zFE=9MisTP@BJwDz1UUTuTUaU03^aw)wP3S2e0JbixrSx5G@eN zGecfO{bj5SY@BdWly}-DkmUC4YC~-~tT*iqq`#(soISztDOvd2`#&szan7Zj0f>&u zEuYgSpE8Xvr+N))J0pHxcS))jL_I6M&qcn3V~G$n%Z-SBkMl)B4N}7n6>aO;cwqwb zRM{=&xcO|;iB&{@-Y(xZFG(~jVG0H2q1}`GM=^op zbqq52GBywIr}_`APg~?e#;lrIPPK6*Ws6-!;#17066eyu3VkKvv$O*Eh<&a2g(ySxbUg2e4VuvTrxi}ac4LF>7j2Gtjqb)C;Td2Vf*RtSpNKw*M4oPy{>Z z>D#GG#9EDbRj#%;9XiZ7`la(_jomj7-{6fl7XKzu{~m+;F9Fv;vcW50~!oCMq+RMt)^pX? z&C=HRnWz3It%{TS`yW|TbxXpf|0`L2c&Ottb-o=$kWIeZ)q7YX>mKhtDun5(j6%xd3?U8nEtd>2x zond3JhCCzA?q;L+A*vm5wt|zkUtQ;CD8yIL9V%7N!LbHmA9}>k=u9Fn$5^I_F#l-8 zin7Mzu^$_JQnE0|0xce2Pa{4ReOWi)T%J?RjCWR^ag||U&c`F8%WOj^&x220S*EE) zw_sRAZ_nq^g#hLt5IZw!?U@rr5dU23fx1Cp&e+cG0VRI$d{-}2ORU<>SL_uRLdW5(OToJ!RC0r;je;EqEDyA2O<>l-Q$RY5{a-`FwKNMfg3;hwQpfOi*5+pW&YluS z2}KN~SmJ&ir8z~bygb;Bqx|UU3QsDpOKN3ui>`+|t$4!6-icT=x=0E>VMAhV*qH9H z!zo^#(g@+}Du_)>E$>1lG+uAz6KI{h!q+c+o_Zp6c}#z(7bU8@hP2=!z;x(8(V+Cn zNJ%Ltb#HUg5vbWwo;XvC3BgG+=m_xr@@8`AvJ-6j<%tA~C+hiF>6JO7;&RF0)MPoP zsT6%YLmRfsWv(f;UiZF2+}ee;!2d?z{Jr3u=u0>^;|9(x$jyTYD^LIC0d~TNkprt|?>S zJe@}fi2{?jv5VL#M;P%Gi2yX=ROZL_tRT@3`D8`_P-T!ur%SDG-~jC*F|#EJB^Mfj zoT~~%gTR1u=<)rV;Y8CIz(ZdLwS>{h#!K*5K7o)Y{vN(YR<6g+qnZJr1}E6|aa37C z5(o7ku1=bMqWB!jbFd4DGk&+v`;X{+VVh(3)mRwI`cy83ZlBQS9p^?`w;dLW%fU=b;t};|(FOWE9uQmOm+Fxi-#XwzFaq}~{8d>8L5iH4Qu()OAlJ7~(sck+{#$(7_5?A_!`|6wCm=;KU+mZHA}U;2 zo_Ncv>L?1FyB&QqBK2O3jSnzD+v$~f^q(i>&zYwwawy^Hpq6SU-xZV#elc!7?$#Au|TUn)pFx#gsQs z0n{DJwBeLbHa&BQ6A4fj^OdJiw*m9<{KkE?35@>Z1Ny|tM2+E41j#0%3_&h9AR;t4 zL_X8*GWMZs#gH84m)M}-_x>7rdH09%V0U$Ay)_Qo)Nh9LfbZs2#`fDDA~-EE{#w_8jQWb1x>Qvuf!`EYa*ws#NBGN2Em(DrG=))2ES%l@rBFBvVPY;-9N zxy{kN#Z^u2P|O%B%X02ebdK*(O7E>#m*nV@BI%6)4+@Gh2y~wv!?Eoh|QNWx9<$Q+kPoR3ore#zc)`_sabZn zctrp{&BraGqgcK+YE0gHlLarx*`+PKV3cxTNQ1v2F6?>8KmCbm;W2q!t<73?ER(FkQ#;g zc$iPQXEG`?{cPrLVdcGh5%)%C_AWDly&1K0VS=h-hbKs9#4TqJH{AO1DIZ~3j0894rcMSr^dgN5?`RdiDE zzFJ^s#cN|t^prZ(fMVIQ&u24lUFbfilVTldWQhGbnQ@I*??o#o>gw1NQ~nnjZB|38 zU}cJF;3@FYnozyjXr;`B1W0H@TC#+^@_>}n%A|Ld>h&djhp>Z2KGJFRZ^m96UM2OVB;rB^mC<8748CS(%=$x5$%ae~Iqie_NpzkgL#9L6_SI!!pAExcZB~ zQgU@oG+?Lwu1u?Aw9k<`-m871tFwG*CCTKNKDmTfgp}WO%{k=`A&fL7<+x}Z~foB-sjT@||p`e2}%#y%+ldba+LcU6P9j>a}R$R~7+U4G8vs6o!e)c%A z@iKw~DrhqbLbE2u^%r^cs1@af<-r59mQt`|_R8v9nd{)7y>Hu8_ z@33r$zf1X^l&tXQP1Ga~CfGun(gkw0G{mQFZ5q4k=sy=dZbNBKEe}=%k!Jxcfb&R1 z&hn80G++s=-CW(6@r>JjYCjNWGf;1$qh;B*4~1V1pr`tJJP3$8TRuKYlVJBru{=FwKQ5ODYEy5>+ojMPqh9Qyki^Q`PAVPSNF z0@B@_V`F_zJ9}0T=QE|>#oz`7fJUjzcGpQ|TW{6NXw_V;gV2w7^=sGfoyq0&<$OAo zUp_M`LF8Up;@^sWkBcSJ5Ud2iJjpw+P7W0b;c*nV3)*|)1CRZ#W!5)kN;b+xXM3#= zKEhLn8V^|;k6D-X#ll~FVq{jf1-KB;6n?a|cl~oaOV+iM8;~Y0bd9Qw7dvhpc>1qd zxHMjJehZL&q-++;T3m5l_kC#rElk@-oBRNrw^a0u6{yOab4O=W9{1L{FvtpAlApVj>z?V)J<^&_C zfOCuL0)D8d+pw0{n>pKg1ey4#Mu?R5p}%^M%W~Z zLxgEq?KQ0W(T?5n{Z#z=9;k`#se8o1;y6Vo3^zDk%g%>?~}X6 zWsO?(n*T+5&&5OlDLH%)FG{0F=!9+Yl^f^4NigeIF<~POuWoI(K=MLUGeL&xuJ3*|@4mkGT@5@0>j`7#QH>`+VcmApl z*EUW)XlmraHdfWydWnriI0FLEcYN`bXyjXI(XOWY%M5l76`d{$alw$ znfV&}APaU#Jz7vA9ZYozY(|6>6RLH(+-@~eLP0vB5>2sV=Uu{Q#k78&$9YX{Y9%AJ zo%~L&7@j3ov%>h=<;bPa07!%2M84cTU&_U)OCn>2~N3L35wEx!M4$29)`)ZwO`@G$!RS3oE-dY z5+JH}oZjhFbI9pHA07nD1dHb>1 zi+1|!a?Q2xbfhJ`VOW?mcHw+n!&f+@L{s#GpDs)w^1+Q(%fAhm-oJ?w7IKZaf*8o$ zo&7I(s|>&SWa^!vw-u!#)3QfNoQCna;D73Ae_2cku}x(ZoneG~L{s7PK+c<-iCea) z-`F+K(6Y#59@|g)jy*qF8((0c@%=UyQx7685Mc_dvuNQO~ zbD-J^68hY5ug9t0A!l;W2L|m|_ql zfE|HTZxQ+<$KZQCTjY3aw&P%9_0DOXWYxNs_O7fDB;+=raS35 z$^J{<8SPAjp-JuO)UdZnC?pw6ERSy|9Y}GWQ_)YL;t-b%gSI{|yTu7D}A+kzF;pm1o6MKSl}5z)cq z+n5z`p5H|q7S?w-Z8_KFxEEAhsU|B(3((mSOvctN`M7Y$A@X?8>>#9~9HWLWfL7s? z2&DUY@cTqS0P|@7&}gyFU351$TXvkddu4_p+!#tAb1oCP4z5WfVxUVHXkdm2M=HG< zz7DaQtgIqlH&pqY1vZvc1!|ny?>ubl`yV}TyhC-|bo3s5r0dw(kK-0aRj$BC%(VR^ zG2K97186#EUa2XQ6p;SVrP5(|qn)rV`obnc`gRy`kMh0&-x&Pm712`hg8$<2>HIRb zYBfGTgfY9R#w|O?hV(GfKu^(hnmJ4gc7!zW5d)V?&ZF_>b}@NF_Tjmm6kGSzs>D4@WTJ_G*(vM{J-kP{)3}zFPaUMl8e(}| z`*E-~ei(BXB7S>q?eI_g*cR2mY_|Dt_yATT8e{nge$myVO)L~Q4@#<08)d?;*DR4{;m5N8lh<^JJhGKhVC!~BVDdc_7Oq@j(j$E?bR2$sxw*<~!y zA_af({4WlM13QU=@Nm-gcCuCVc3kyaY~?@B@jt~Gw+ePq5?`y&^PNz}a*K5;LciCA z*9Peb8{D6)9g&wUtf7tCz$K05A>nfzcV6YT95igq!*_-ZY$12yq)(=-`hJ5dP>n*!W7R(Lu5;~pqqPV;H9 z8Ls;#G$p8)Zf&vY2L+DPrt4<~>>?O0SU*9x)9_$}03iRP0+qp!j%&9xLt)$?y5PB# zLFWTE;rG2w)mesr3D$(*drt>_`Vuar8So0XkV?wrb#43IO4sYkR*LUY%C_>x!bQ4u zWdzkd0>_U#fW3CCJHxf^k!$MfeIAz2a5?S671V8PJY6ue)fcvNE7f|}x$_=l?_E%w z)UyEx5X5z`R83)Rzw9N!{=OvtDUKy2Pzqtlnm;pK0E3q>F0%B_%17arDljM*nHdRjujys{S>Gm{~UX|dmSsYEL)rxu_=d&%c z%2!TVRnYFf5dD>8?_X=~v$Xp;&jW2R8#9hm#*t8`_Aq$Rvvr_-Cw1c}H3Pywb3Ntv zcAYnB_l4J>!|mXg_Rd4J+>{+utQ=+HSsBwHI%%<7xyo7Rv*%G>tJ0!BP4RMT`0n~5 zyxA&M6?z<0nDVf0*Xd-YTj|usa<<>PewCL=7FB75zIH_F?(Xd$`98A5#af?=}t@^@-ZiPo8`w11xVUUYAtmGf;-@3MI8Tb{E1 z{U5-}|Bx&HuMdZ9+*AZ}Bmkxa3MGY1w=gUgiaCf@*`{}Mnyi`gGG}v=VL%s%8PXRd z)7`dZ`vFeTLd%*6M*-z64`W}N@iDqpN1(ZxA`^Su-_^#r?#=Ep%{d_`PBAu+S15P~ zv6^pltH|>M2cm&%CHxC2(N1ST=X7nT`%OFT);GD;%nl^)Gd=?ghW_?#Vsi*`hO=Zz znysm+eYO`YFM{9aPz?}ri3;R&e-W{<1y9HVP5Xer!A;5NXpvrUyau*?QGSF4S9{x( zXjyu}7@dXwQhrw)8qR>*fiKXD(_ik1YYbqvg`Shp&F59{wC9s|zxwOZG7#votda_W z@tyG5_yv*VLY^YxV>8x*P;5esXIV-^nh}ZSOoK}Xc_vi-K3j2z6aK|R;ikm~#gg%( z7BzhFUCms>fY5I~zH zA2kr^=ytOkZ76$~BeZ}M?A?`#sDRYa@pi`PWtYG}L~pd^yPTleu%($5*aNBjPPiQMn{Vkq z&xQ+NxCpJbU1^g8v7RRwlkM00GL(fzl@1oK=Z0Ko6RpH*(!PkkCoa5XpB#SDjKT=NZ_59194Gn+N5j)79C)I#>D z%2|}nBA)bic`az@2)vRKQ8v!U}87a;fQSEMPo!$r=qBvJz06EO`?w(3WG#0-y zqDXNJbKzCARwW`FuY?75%**Tz1&EkC)sT48L5rdj7OP^vF{+Bc9+&RoUAxnqTZ2>;rIUj9h9Jw!@mRlD_Ky~|)Ce=F9_!ghns%0o6A%?t-jAo7esfEO z2TTun@=Aqvz6BslIeN=_M7YYlyM81ZF}aBebSac_W4TogYbRIN` zLAYEY6d@G3i^mEf?Ru^F8d8j(NXPp9d+p&D6zUS^ghtYZAB3*txgvn>v;ZO#p$lfb zk7~HlwVIg1tlDw6I0hmD$z(Fe{t8U|Hh8awtRwy|VzFFo}P@0timn)j93s^_hGl~qz_#CK4m-*J4-bU9QnW+^zh)5`UNhgd> z51`>hnf)d@dO5+nh^t$Zy_u^+8np|qWzMni>kN3xrN=B$$5Wj!K0`fuXS0gb&s3vhzXsrmE{Ji(g39aTgtp$yr6#>op<%5boh&awd-gwkkK>GXg;If3QD-Yn2PrB~dfo4J>$mfW zbTFKF-c^hw!Wz5c7kn39cOl}JUOyhr{MxA7DK@=-Ow*3YuzJaA&(9Ndx`Agdb44F- z0xgptIqx@c-#*ZYqXObQFLPL7Y zg69|pVC$i@$;VgR<%9)in~jQhZ!4D8bgR?8b)TaSU4jywT7_x>p3Ig zs9ct&y;EA}OPRe4DDGCx9JlB=gi-G?gyfNKU`BT=gRRA0X|fCUaaSp)lYd>4$MCHo zN_`Gd2BlSZ<1%7rFw03b8%w0%l15`;4>9d>PhZp>w!gLF3NpL?_~)|cgdi|x;({$3 z;OnudGbHBne&6LDa^QEl?4)_s#__a!O+kQS%)2Rf&@TEi7w8cSwIz4)>pgN}g@fsD zgifbKG_1p(XiG=D&wEcmzp|u+IL`cDb0`g`!A#COOdEd!J=^zZ?$Oy=4l@zeL?eCL zb}u@$+uVlig#~Q>U^3$%Fr(PjCZrao|uj6rLTxhaB z7Oq$J!VN*z(v>b=^6%5Y&`g|f1tRQsD0Q#|_jRe|Ae+=Zc+x$QH()oFQD_ULp?(i< z1UBMEz4O5Rgetu9p+cwMVcqq-9a;=wEr$@>8W2deMYhW@J?^%5q(Ku91yUa$a#GI@ zB)b+;e{p#!h5|1;vP^+3P9{L3nmst+tvszm+vi2UyNp~X_o%M_8>X&XALT_#M&VHG zcI7^vgK;QPR!|GBTrx#q#s}ua249D05_9 zE?^he9HDLR7xJ@=3fdTkopi19!Q{@dYSJ4H&_jw&BL&vyhvRHRl0lf9W|PVohr-^U zg4dT=_x6H+J4%r|GYzF;8m@wfXQ3yKezV9%iankG5)xZ~U^3=U`Caq+;rT+z7C&)< zH@l9Te+sk#U)Hp({@0-(Hc5&u&O@!yv$PV9l?}=nL60YiHqLuVT7w592Hy=&U^|ln zezCbX-QVY%w%BNmt5iE52hCF7|J)YeboG&9T!{_jUGF14fDdr z_z?JQ^G|cWtULelFYBC3X$W{S^CdBTDv6)qsOswQ zg*8>Q!jUd>4*_LQhn{Un8xzFK`7Ewmw3>{%#~lsW%xu)wW+K&Q^(t)`H*qaHMGKVrW>2Mi-0 z`O_9SGW+OXI-oItdu#Nun3U}l;OKHgo0}|<#mbI(h}qAb{2)_*3a`jo4`n$D(YDaK z4gWuG{N<(Ob#+X?v%1PpMV)Kt89WF0r z1M&z?n2WHd`0OMq5&{D{E2lSRaRA+vxBi5O2+}Kv%I@hgWyL)yjX}ES2+rIvgAUw8 zw>axrXKSvyL?60%qK49Ws)@Iy1d&=LrO(=2Mh;8O^~8EvMxtBACSKy2U=e*Iy%k0WCzublRvur+uk4D_OquywS*rm) zHV0Fk6l*XuuomY>HjNem~8C19!EqTox zuwX{xVl*2kcSGJ^wEQv}M$7}gAheAEuShoXP;^=mPi|6&s-JtIdpGbHIE<*7312#U z$Rxt7K*e*F8b~?%GrY*gQ`wSRR2e~X!$-S2A8v7-7)plt&hQvlXM<#@aUWQ3AiuNpN~ZA!Ff!W-y1AV&>ADy<3JsRPGtJNom7(;?s_mUQ=i zEILpMiFp5hR`m5D)pTd--TV6DL_y)aBYK75@HYR^Y z7&WFqEMO(vwT{9Ycp$yW0^(}7WAIiap6ak(6H?DUz}Yz8+ zaj9>5IpO)dU(?@^!SS1dS3G`Xn20pfkq4c zcZmX)0xK(WZDk=J$2aB*-Ls1xXk@2d)hM68v!N2{n9Ho?q%~3{YZGKUBv#MW zrYh4H6o(juli~73Tco2fsIB~ILNfci#fHvqg z!}&dgZmo5LI{PF~V1GcTuh{8dNw#dy%-y@wH9YAwWO_8No-*6M9T}ti#-|0aTvbHv z%CZ$_f`ZmYtK|#5J{?@-E0xjOLTg(lg_1z(L*gI2Y?#+2op6b-GW5H$-@~06u|Hcq z-*j@CQgUF9Pq8ltKMS6)8utu@z8W9Y_ul*%`qh>W1S6~fsU-tml;!VApDNF9IUgIu zG~2T#209X-F{tu4aOUBL=+^X4t8AThN5+a?>}`e zkIo9?WEALPZ}Ovr54R5oG3rr@*sgqfZ1tYI1;|5?IfOU}hMG6X|LQO1XnzsV$S7mU ztCfN%mUB8~NoXau-Zhg>G3W|3ikDdxR1sMegi$}^uN&OV{mS~KuwpnGp)n8h_|M`7 z@!y{dw5-HUJmGIMh9Jk6Mb-{6@&K58p*bXc&c+cTITpV#C|d0Dp;l>}c4Qc@g;8J_P>W9d@+{ILbSo_dd=0kD?WxPk3J(C!zO z(2SBCQ>xK~0>MuL6nCpWyi!TjvLI`ko&m)4*Ynrm?AYCk%7--`%Yz&2*)bp6YC7^2 zek2s>0ILJ~T>cHE+ROQlU(ByNq9Z)GiE}G_STlCFQ6fX^vbyx! z;}FNpk{kdzNx-Y$0eKTU?;$r52ccBqgva>N#SRkuQy1V?3`!b(5zCpt(PI~g<>e+Q z^p&2zmqQj@4$~GK@%El8Fu^&I(3CLRVp0nb60(ZZy{+`+(w^LpnUa4lg`SX zS&Hdw>HW?~^Z=%8U^xLs7kYb+60AY>$6n3XQ>OdGE3U@7=A!W>&A$pdt%Eyrjw9CX z?7Wu-wzNcD^d}0UJW-QX{5`wSHvJxHr($xSdBEnbz4qrqyxu6 z=ZHFM0}i_1vQm#@QyZFNBanqlQ+_P0WgcufArSHCF8&U^#P~HuYX|Oh&cSVru*`K; zJXQ5(FRmf0h`as+|1d8gP_9QnA(s`YBT#nRWBs|yk&KvTVBTxwLgc*NfwF!4J7UMG z&})`qWjslA9VHgW4+w9ifd*a6?rSpShjQ|5lqkUb&rmvkmG{fd7o>t{(dQRREJ3Ow zJw);Cn4DIt0C2oeOfXu@( z0K5Dawp}{!{TI3-y|+zHD8Z)nP&MwAbd}@N(|9?^xGIQS`{G-5+p(1t*Xv}G;F|U8 zO<5dwR?E;u&4be*?d=Jz=^ME+MS(gQup4ahh)5)K?j{}#rWq7Xi?6cS2-HJWX z;2Z(jz~^=zZQo1WZ$wh%vkK6I=@j~ISo%dai~MupS*lEBRHl0GPm00M6L>J@sARPs z>Ydv8L{IC%qn^vmH*x!qAO-}^6!C_@#no?mRV=r?4PXk|{V)4wBe!{Cawl0S1@58W zW#lv}b!~!-_)us-*rVd0*nXPlE2+Sf&%z3eGW<;RQ<7_m-oJ<$Ni+fE3|3=L^4evf zpj(ADPc*0|@nJ>WDdnkDnG`y#_FNU%(B~!%X+jS9Lqg512Oa zYA8j3qp)Kj<6}g3QSh6r=5P=j3Z$W}?S@$acFogaoWFAQ?AbrdYG149NIO*jYy|9W1Wx&!I~RmS>Z$xD{+{`uE4;V0YP>W??JQqAa?lYb zd}{o$g)qfigf>EcB@>BvWVl1mLxnu)CGL2aJ4e4riSOmyJ1Ou<6}s~1>$(rRHvZsuxTcwb=7x#7QFpm5Liv>ChC$+C6 zoqU#)2jcB1NseA6U$4E51zC$nU??DhDfd)?EIP4G|D0!Mp+;c7oP)+OZnYNMu^6pN z`zKaUy~o46;SKV;1OxkjtwI9|GJZLSa{Hw!KEJ)QQz}z{lSfdpP|KRa3i4bjPTzX4 z-mKhDu;=;5`FWB%>e@Dmmvcw%ZN_)6KPpj#yy1G#Ss(guKI>!lC%g6SuSJk@{Tb5* zWQIo$vsM@v`)@Bi3w<^SIgjf8G}k1kkq)SeLc`8eTF>d|Qb9eh+~3Wtq=AY)O= z+%gdP-G_6P+G(QZ z-dOXmQB)W{qEXiwpBS&=ZDz?k&;mB;1x={B&RLN~HW}O6u1xw)5{ZQl$5q30_K-T8 z{$Q{Pkq^gvdB?o6^GEE2&JaIYCIY8`KYK`Pk0tP~7>Y;j$38iRdE3-%fZPSM2?2X}w>NDLh_`A=vEirc znUHZ@6N&DVT{i{8E#}u|*hkWCg2V1Hqmj4Ga|gV`DFbd2?OvqNIkK@DV-k*k>{3L9 z`)%JoR%L62K(}SCA841ZnLgy-vg5;lgqP+I{e(8zQQ1#Jv~f3qG}TTK!9<40Mj0^D zY`*~;{)vRwOs}54ky0!h-oPpJEHhO8Q-SIwKiq(q3?-W}Z-2@wPPB51%vEch#f1n1 z@oFM$a5BQQkT3~P_n;oqqCmi(RkMq)>n;d^C-ehQah;7q;+_px?ko|&`lJ11(>I+5 zVUQ5t$9f9k9V3T{vD~~y9}>9;;ZaMnukBcSwo`*jq?h=PTmXx5k5Qm9mp zk~6Y4#g#usp^n&GxkFc58H<7imsn;>j%1bL7X!|ao0Z4y6D_fYfh7AbqO6{$JZ=pe z6A#Ir4nrZ6c9FB9!;}Aq^-18qauXJRR{U|1mQ@ECTrfBw>_IuIX;dRlfO@G|L)?8 zUm#)Slg4qSd1cp_0mWgtILq0}1)uO}RR{(~o zJEKTk#o$1{K;}>qS-(0ciJap^(%k1Sc=PO!D0(;c`6;X3E6OJCC#+jk4%<0KIceNH zy6=1+ZUjs=>Ty))9dTnh3RxT1)C77xd4H7}6Ub;(r|N1WcwhfDM5hF7c=a|_wGluP ze<4HitH_y6hrzA)?zf>oZtD8-Qo~1L?n>{MVXIVXs1A=$18-TbOakR{5V2h~2IV%= zv*u>F#ldjO8An5CtlkdI$VT8#0$wZR?zM|VQH~6Q(%Q{4Rnh!}q%+K@w@u}iW0nQ9 zecurL;=W+)5=F4gHQ|}0`^PG^ql-SDI`^i*1mEzPW}T);!qCyhN@0nyP<61fm!Q>Z zG5Y+)O#fq0Xj5l8ukv}t(Z=hQHDG%oql?t;>5jKo-~ANzxtia!Stips&)iRzh@J8l zE>td&txPQIHnKn|=uFYz)x)wT7N875F18>Z`s+5sVUi>Lth?BbGIYT5DANj*B8L=L zk&hj7(N6<$hpT()Rdh=Ij@g#F)x)BcUiAz42^brgxLV=YW_Ny|z0L;NRc=(Xm;dY_ z(4VhcEGx-4TQ!X76kwQRvn^%25E(!_vlh86y-XbvVmMuG;SBsk_7|?0?sPHbxT2MR zG*Bm_kY=Qwf=r0SotD>tEWxGBbadeF=|zhba%41T8O7K<1vB9@BhJhzt!<#G*4p=d zD4{fS`(5j~A;j^I4E=3;kT098YBcw+ZwdMB(WXnw85F)O$e1g&uB3&14K+YIPw6V@ zaD72CVHbAu`mP02n7cMNv82by3yF9d{0V4p!WbS5@u7Rss- zDL8Xe_NT?5d?5b+YoO_snDLaREx(L)n{}_4}g9du=eDF!q-uH~i2jRE_C%t z{=?yxdb#bX2m~{y9ba(;>P#q|4k$R%miEhzRLtrV@q0F2o}-x5o+k$Q2slUf)Licg z0)u025=_5cs2Ag60+mASFGwR_%{LnAFw0SK>pR7C2M_PBd2eNE73cXTP7YGb8BK@I zi|s`G$zg7$2si+{@%|bg?LzzuefcnXs;?D)Kt<~U-i%MRNG9>7_ooeOTiGXo6te45 zJ>JjFN8Pf`m@B_TinOYl3OGeJ9}R+=pdJrLMql@_iH;<1wqvKyX2&4|{Q8&b!g02v z8x7s8!(4C~h>VZ9~u!r^?)U-i^JjcDD-m|vy#gHS;+5kKb zQaJWxz^?yH#2#RaXo5QJOs>b)eCIX5Y=9$j8GzOQX`!n9#IK`%tfP{pBEeQI^dQT9 z9WK{58|cpkE*xZrAF^w|8btK3yNBZDTfJy((IZK9)_M^?MZEa$SDgtxq=(1&lALp7 zkP9`D5R$?06-(yNua#}*sDQ|tcLdKTel>O7A3pkh@@^V3^o6>Fu%QuT-;>Nst&5$> z%{Q2v1TWe-@22<@h+PrXIthGKN4}C75RZEd@Nfu^M+hm0k(h>pnp!w$pt4JhV2b^luf>C zfT0U%Z9AW_^%#O{^c09oIdZ=;0tyPutq^jmbZ?q-tm&Ai3c1UWcLy&^N_fI34_1Uh zs78Yd(-c7FR^^dTdVU7*WZ_dkF%oK>p~CafE~Z}mRJjh$z*6RUANcpGveG?p40-ji zZ@K$2?*kQu_Hc&^)Q2ir>q**dbP6xO;vakm#?qtEQ(#m&o_kJtv8Gi3l7pVJ4xF)A z70jytIVVh=&>a^y$aL^Kwp^7Rv#Cw;m$nx--fDv9U{ThhUJc6RyFlQ7-rIojHDJ zgsjL(HS9OW+vM7JU4mE!Vk8bj760)I5~mM^N?bn}r4kF_Glaq8pD6wEy6| ztSD4d_qXS%a;=@o#b)PmVsIkQ>b2-AsvX{qvHwpzQD}!?=%S?`I?ZH1K50L^Z`R)8 zpy@=md3A@<<^^4!>cxT@Pw94=7m}@2ABy!sl|th%>{oN&7c1(mi*R_FeeEt~b64XThdy zo1lP4>_6CjEN=n`&IYrDYvi5sxWBPk--~%QUoUh2mq@~M8eiTABMQqJoo1$saU2dd6*BJcA&_~*XO_`c0T-JKzIsXLid#wo8I{tXMy16FaFXm4g8 z@Q3UbjDrEISQ=(gksw^b&ph9wOQvS}!$|tSxGk#G{~-j5N=07{=tLS4G!Z+_46jZM z`xtzd))JaFrL5!JpLw|MNa@DHr#|R?wkLdy0^sopkU&ofH~DOEFD30E;BX?&&-U^C zvTyFwms2<1CJfi$4ob=K#d7j`Oza4@Z*S}OZCL(3GY2hfdt`bd4!qg9gh6b`ul-IB z=faW*W*X8@271h>+;)-ndk?=OA2v86sM!riL5D^Z04v98Qb@fo5PoI%oAft4Q*I6& z$Xe?ZOlN`^?cq|yR%M&pjz0V*_v1K~mf`0Cfolpw+Qra&eArvfNq`md>Yg_zRx)&X zfQLfLqvPMO`Q8RQbP=*wIumhGYz|Wc->i$oWWkw@>AjST#-3sA#ZonF$U}vPm!>0) zW;Q)iqs0BF8f*4gW1pyo)C~|{9Tnt}So+L~*k?$osgOxTMh1t^H41;;iwE3$GSVxs z^MuRcD*T=YlL(*BJQ`3KxJ6K+0`FO}MlK3)jdLlmzzpyYrEZ^H6hZmYIKmY&g!hZ+ z8CQSHa_|`Fe|bocw6lh=DFR^VDTz8_`6TaL6HBrt_f(O@cftb`z1W`QdlX%Wx<7fC zX8FM$2WtiK+POqYhB zXh44ZD{HQyIyR@{DJcp+dM;lccN)b%S<2ur3R$8xkFCRhZ8&HFO1e|wU?eJ`L;3-E z9X4Se>O0wmY6`%|NCdL6eCpOJ>lrs}U3;-cF!l)1oEa*)s!GK(bvt29AK5w8XjA9o z{3V4Oxb3agKD3~HT;t%Zz)BXTvqVpcJj0lY*~_(@YVV^d-VWhVEM2X#ix_TyD!Reb zcna?wuu;MU2$?ofEGd|CqGhvp6M?AJcd(K5I#2OQ2}P*hJ=3vlU=pZ+zUCw4$$qBg zc9o30hB$Z+H?byDV-gI#kU{M7SYsJa*qAJy@5qgxmkz{Od#qzmEq8N=Scr#YVlfB4 zh1{M7@-2jcX;JKAHEbP?;TZ}Dsf4*o4I7nkW1s@Xk@!BOzV)>xsC1x(X|)G!(Z~G) zqfaLGgYZH#-{(^#p21ENz2}a!f~Z2-@xV{qFr^hqBIM9NF)o^j<^ zW|!U~QwkHz18eLY?^*6{InxaV8u_zahnBkuV;7=T^=q6ZR=VIoxNz{m5e)bNK?7o!-I<>6QmPqVUbuDwB;Re0tnumGgk< z>@c1Cq;J92!XcP1%;t%h^6w?pZp)4-=xzG%LQfx3xZ(Kx$hv^r95IUTa`Ho-Qo(jqE6*8IndG^=fC{%yTa=o1?5H5B(09yA87V8I4G@sUvB`bo%|DQ$x zE;@%NdMX?l?5+RY4VQ_xagWk>K*J;Z8^O{)f$Lk4G&2 z7OvFy+)H9#Bi(oy%)O74{(sb5|KBCe|4L~YF`;mUe^8JsaqOZFz#jQGnkTL&D7;K% z{@Db(?sUK*eB{9xy;y<5jirZYQ=vulfpDr^Rtqr zeqG?ej-7N3DX8-}I9kVE?kQ|^-8l=zs6Mdd{d5y9r%3A47Vn8xn+{XJ$1c=cbZb+I z6!Q4-$~GKLbuCB-4?!r0Q|%=GcnlKoo{j}fyXDqYlo$@xq0yO zG5G6nPG29N7B(6Nu|@FIr#+=WcemLG^12K_N=cI>bcz!$<2dj^ho>RcZ-|R~}yR_yj zk80jrO}(`4Z~gZLt?#M}az*`Eir6=m2k2ZB+y|DMZSUJ!Y{q0n=IAaXBygKi9s_Wb z&eF+#QIbNuqjN&l%`nIslS0+{5+N|=Nuu#K(WXw~{cx>_{%B;46qq(u{IUoq4A`A} zLju|x4>iZ0YpAL&WyNA!vV7Gj2(U8*ze!F^h@BIw6qvgdV5-&N;^$=4$?oROHPI1>#+=_d#;vU=~1TPdQ?(R-;cc-|!yX#5!+560uz3=^*$&burl5fpg z>s`-N67Ht`9&O&1AUfQ6F&4)?JoVMNJl6Sxy8WV5tM;cT4;2{r!uIkVD5@D>n@{IG z{`YWw_R9?+iK8K_v9Y7I+H64LU|f|;dAl#a8ooG8jYv&(#AE39|1RRHf_{Ls`i&%F z8=iPzBZnv1*OX4qs89_yLAFc8FXt9H)tNK`^vl$=A1P~;Y)!AZ;sLjoAuenRkHbYt zL(<}-4zL$6RkWulW?$3dr~@Z2fY~hqg2t0%JypCkBsP4ejPWu8XVb|fqr_G3+PaND z$y$~qq?MCsz8ykY%-c4G_Amv*oiVzjwzpUy1-moR)gFjJSN+K_Na*mtW4T%%hTe?i zZ0Ng@`LNhXxzGNo{iFA)Y*pOKB--|`f(!j_@OMHXTnDJTk{=AIf1Q41Qv*K29EI|4 z!`ftC@%+@E6dlA`HGbdBjZ@CGNS7V9a@SkXJjn3bYm%!ToA}snTt@j`=H9aAD zK$$KOzZ|XjeY#{GAPYNND1mn_s8W>7ML~{f=+Vm#UJVb1dU6gtR(#;lqECl|v7)d2 z&HZ^wwsw%=XWwK}K>O$HjusKcv;BmRx&ihhw}+Gnu*1yW{)KpI@98o|i#K`=tuZv2LO)Jo%n~*o|sDgR* zd3Dr#l2~bv%A>+}KN4}(l@O5=o_>2E^~8DA0m3>n(IL$6%_UUw7kKM4mEe0?Klz=s zA=Kq-YQJ|(G~Z`9+f~kR#LJ39Ly5;__0pZPl7r|#ayUsfIdXk9>Naxos!3XYZi(Gk zDxC(2xL#10Ovsq1s@T&bb@DB3X>ae|8Tai;0-QX?SYJ2@?=n2jJw|-pAI~h3oX_uD z$fSfDv`MpbeN-G{TwR#%UT5mA{W{(|rfnP7QXtcal+X)hcK+^_YCeSHw18~twW&ML zQJU)k^uk|{+f%H#AO?BWGOp0DD$5oHCH{C*R2!lbf@h{A51lnSGStoF+1`5dLlqg! z)Y}997~7?RsJ&qf@TV-|eT%?aY%G?Jb{M zdJ4oStEg*9IG_mwB1NS)rer$nBTPsn4x@IaST$I>6cJY-LNndQSA)Ypdunj+O_%>9 z0*p&Z-a|4uiH?~j@9%^KA27zus65Msc*tU*{hzC53*^hTgmr~V0<&7|Cz;p<;R z+qS#3eL;(3!OZWl|M_9$RI!+Yi2sk5dJBky*v`2Od<5t?J9JGSD-0NKhl>#w20UYV zEXo5l${{#z3H702MLCA<{*I=y?d7Ry($qG}ikqS;pw}!H2y-ph7N))Ss$k!_1^L z>C*;Ku^V9x`JV3~Bdz835ySKa=VeD5Xp`F(PzN<%6BQrCB?^t`7%IK{_*b>I%Y3tk z7p|yb+Q|YnhO3?{6!aY<+L;v16y}WV`*}jYxkqJO=*FKo=61J@{cb`Vr&){z7u?0p z_g|(g==kuiCGqdEY1$99NKWvZXgnL==Qbx$hsk#Q=}`7@_mQ2%HYfU4LLT~1`@Lq% z=K};}xtjBBdE>?cqUt`JyHtP9WS}B0ZWoRt!cKHXxkO7nx^}nw{J|-1mmZ!r`7l-| zH#?3t3M9S8!!!Ab#@$q^b!!==~h^<6+ z)x`9!kA~Y~02y7Jgp?OHMqQZv+@oo+MQ`FwITnW=#VqJtwlDDB@@3(te!CU2Fk9v- zg!sny;w1F$An7T{sZ4aiKw`$VX{4zPK&2d1Ny12d?$J*$v|G}@O3Xae%aKVB<0!;w z-pfQsfX4qtE<@>u$u&8q7KwNL_xq{#C1JWy27a7gGQ+_Fpn=u=^O0~+Qa0CyaGBw` zocg!#S#)CPs956Ea`tQobOcjljXUN;ePC$sPqK^3V8^XMGMezlCVP7-rD1cBSn~B1 z={8==Jrxo8*Tc2HapiDMVv6&0ya{{fA( zm?TKM7aYJ47(^JPkqMPELB1tw6x-B3-q{AS_|?p}+9j96GHfds#g=6kTae6;friQs z^}X4J3hah8ybg4ldkRyFOP2 z;=irmyClW4fBb$VYuFa>S?X**+&T4`X+!}pF@O+m2CIpcD3kOro9fOx-?-R6vdEu# z#;WMmhEmRjJHbwc0lei$xTj}g*OX7f%(QJ9DE&q{n?yrRzU8k)Gs1wP8JJLz_=rOq z)0i4cA|>kkc?~=&zOef3mWm(T^PE3i6PSLwT$z#bHxi)xQ5AJUY=W0z!i#PUV?@`= zW`G#mq|^{1ipa{OAxU<;(El=A%oS+48Ls3d?fHUT*-teo*&DY|IQ%U;&?JMO;RlgG z`NmP@ex8y7oM7uo>|K_vG(3P=k_X(w07{(H3_y<%K9Xygjg#8sUz5SW`K)4H$&{w( zzTLG~5aUaIDz03M?;g(Ca+gOREYm}mT|fV;PwlWE#)obdQA}OxiW<4b7#81j!2o@# z599Hm-!ajUd)9=6g-xaPZ)ZcHxx1-T9ePOdcA%r(gnZSk#W{Y1Vu5k}3JaAN!gD#sK;e=ze)TYaGWX?hZR?am(p3aL z90T*yA|kXvo1cQeW(5D-VPX4Xo?Sy_j`)Bs9OHv2ic0)t+DLzOEyfr-8hU)_76l`Q zLGZ)uS+2;`R8@gOb*YeciU`rP-cdvH=GoN%Rb)madIxY)k7lQp2ZQHiY`R*SA z3*v=ox(1;L+H7IuOQ+HLNOqAAmJxS<<>DzO3p1Zb??}y}HRa8SD>wI?e>gF~f|kOT znn=baJMZ3?Dqojej%JI2|FpCN^&OH-?pyQRkT#a*lWYUue^#^3kburG;hSta5I_?R za&lsf!;oYm1N$PONSJ27ei6!(cm7myZgT2W!3MFs|5M@2D82M5*^G@rF3qiHkPR*Z zIl_^T)KnHk-nK>Te$k(U8sPdo(sx`JJh~F7%wSn8VM*@o+8_7masg8YFI)J9|LijY ziQ1K#NRBrkwNS{7={ivI-QQp@RfO|@7x(|R-hPJ#5J4je8@xZwiyS0bY*q+v6Ha{L zS#gl~^Y(O1cJrKBjK34D6;>M*NZ|oQ$9W;{4*{&bzugy-y%h;Y-9 zTI8Nxe~f_>94`di_w#9dEo*huN><_@c+no*COQ+Qd6}E$nT$FkodAj9P)YRd>l-8+jdo zo5!i3H&NF6dF3l_Y3{`WyaPEK#E*w8qAG0k^QRCjOmrQ>hV0!&n+8T^tTE9~`(ezN zjtwR()QWlX)-DFUDJT*Q6wHo(SJXE%+=|T)D~4YJsz0`+&7+a@qxMm?qgSf47^Tj9 z=Jqz!(o#US0k!qQFECzQe%mFxuGlS&iprllEapOs@qoq5?N0MFg{|;lZYpqkHR^_+ zsD_%agrS{w7f=BH6rIZZdX+$rdU$kN@C$Dv{;00A<5$b(JqF2!@w9bMrrpqeSiDx) zylz0uO6_RESXA?F*l-Z4AQ#?RWfubKM=0-p;nZfvZmXW21Wvv|ikQU-0GRyo)G5%` zRD`reaQ-;z#YF;NICmi!&{=bx7T7s5JA<||rhv|Og)Jm6!&38dV3%~&sXJ#CB)Ch$ zLIMk(YjYUBw)#aK$)T#8p%P5aG&3dckTYf{L_aj@i}!tl!@06q*T7_7HSnVggFsl= zVQ7=-b;jjb4_u(6Yxsa$FnQDR`zMa*T1_ViM4*hANdZwW$VfE^H!Bo zwuOK?Qo@s@+Q=j}E{)8L++IrFlPEdtix4||G$U)PPHab>dmB>tF-}m)?P1o9I%t#n z`>z}F-2KF_V_rwBxpSB81YsA!bp-RjW0BHuKWVL*TsRx`VS^mGV=UDWn8Iw}={_zB z>&mF_27XidWj1{rVnFIbu@|`DHmfU+pI_4JDkV`uxPSSu)#Cc8`s3g+k^yB*CyWYo zd~7!fZUT}!Q>{4eu?1mIG)NAWF04U@_*&^4)Amyw62MWMuGoo3>A!0(Wu_-CO zhi6)LdAgo@=2uTmT%B6|&cOy0uTLVjIf{TaY_KrPS%akErQMV!SQxGt(28u6wqd!Q z+$%}A(bsc_X%#86oF9-IC6<1R0C2Q4y?$C45J?mst#&_ub2&6i3c@vk-#St$sPbzq zxKI*MJI4!TrxjkNAO5i<<+bdlLVNaHW-4WApF&{Gm12_18^IwEfJQ|<)e~m-G4sCl z9X+nghwGj0_qx2J08^xRPk)0tU_mqJif<37evSpq)0&H1&Snoe0GCA82kb z*p~BzwoNBt#KmdpNNh|O*cYQ1Qu&1FM?^HC=aE%%?lrw&bnFp~=v-4K4eopqm1Vf|-hD zeG1=8A0~qN2r8?ux>+_$!5L0Ch)`Hocn~QqIz_6A$;;dwTonNsxHY2T!XgsNM4m3w zgH=*3GJAv>-@i#%PyZ{z1%I9WIt|4S^)Fbv`Ka(#_?{Y(QgZ`;rpO)rKB$8`R!psEtZQrykdZnbkJjnTp&N;F`kXSAXbd zAx+{+`{Oo|%oUAzEI}rmhz3~5TxouFjA^0tImsoHyI=9q{DXcjt?_h*VOIK?umeQ) z8sRZ?*>hRc`{~J8WtuKx`|@&|wp#Wmv|QJ3fcH7X%_Os0VdQb<7{fj^7I_NdIUI1r z_x|=9o1LVJeou!Xwuc+m=3X^&+xB#O$+~hCyvYjVw~6lyMZDVR%KBe@VP|ekCjw;a zPS@+4`Me_2!PX3m4)V9oTZiC*mGbdJc-jsX4jUn)<>?W_x2t4B{pB=XN6J;_2_cJ< zr9HC!m)xn4J<@^OtnO8>^R{~wbo4;-sg>K@?Ubc{FU>rds?xqH`-+ifk@PoyursfR0`$K|pdqJ$OAdnq^9BJbB8 zv_n|2FTela-Ru8pW;ZBhIy;7roBMh?PG36FUqn42@QfGGyw2H*BC+Ei?R`z}K25=` z-DYJDZwQGaRq&-Hvg7(0f+@J$pfI4@_2PmU582$1yzWl;w%rP{tc+-y4BFiJ?ze!j~0A};1ZM8}U) zL_g;(?bYtn9T6AmdM(dGQ#-)mF=V&bv!|ibCLIpz>tKY6N zO#Y&+E33hqdE}DyChp_R=?(O9xP;%uz2eaxYy&xMK=;Iy_IQzO*kgemZ_;4?;+Igc zb|Xu&P!4&;OC0Py0&B$LYUNw8<;q=b2vyL;vowxo%xf>vOp?2v#EJBX%}rluc*{$B zGZm>$ix))O**QWb$ha-sb8Um!U~IV2H!<63Qk~=NN|9RJF~-SFsB5L~W>S;IuckxLj zK=>L8ae82Q7jJ^A)wB8Imwgi95e*j2Ay zM%M(l&i8P>qbV^<)#wFVQJ*&WuavSdh(+%#mqW5OJ!T&etD)2NyFFwFqkz5iYxIM& zyDeDR$l@IC@*MC)0-^l|pnn}H3!*&d;EJGHC&i_f5+5M3%g>XyO5)2!eP*JWtN*P} zgh6las2;GAsnT)e_~#CB-;(!yO~M3K`Iz;D7sv zN5KSPyooYm<47j{pO6NDUr;0X88|lZtQZg2SdS^uY{zf?osV{kF?M-DmBFH>LajWJ zA(R!kNkG3uNdw}$W>TsYpnLs!A|x{s+zYNc3RP;(MYI862M z7?PGjqn>?|#s;mu5lc;5;k&pO`Fag%qeWZ8YC=U!R3?1h2N+gb2z|<{oV}be`gB@h+9(GK;!HNgj#JOD7{RtcC7Ot}BzX1PD?Kl@ zojK!fXUd;O_U}j`w1>g^S1GSE*IRTaL9j0qN%$*^#$FBfivz8O3-Y2^m!lIs;V2`< zZ{`#di|6h8EWxC8#OI8N+UAZ9p1#7T9XHclV7U(2D}6G(k1Hu47ovqKH#RPiC!yHS zQ_Va%As*ScrA)JY562`;kW-G&DX)PHfc~Cl!JTfX`+KJ1iIGZDraKOqY-2%-kCE^zN78* zc@l34nq8_6#(sA zNG?#H+4&p+Eg}Il$&TJkgEgwB>WF1#VJ^Isg%z`@!F&k2_^9870v?8qJ!kh(oBZX3{EpJtA`!zQh`eWgMH zsU-4ozh3=ND;1b$7d)|ggj5BoB%F4_-sy8EJW*7q7)i?z3&;@m^IsF4<8K`z|5kLb z0rQoF68Dty#^I5__0zRs(2xF3`K{3t!k^I~wvcBu>=;y5O*+zuWt)vC)8axhQ-Bf; z*Wg8gV(1LsaY$neF8~orwJ|Z9SdhIh3{00duB4p_xN(hbf3yL$mlWdeBMH?U zzRKt-Qxlu=-jmkee9xWyf_M@Z&FYyjO^j8Q54c3yBz|2i}5V3-zcmntUb*&W?c5JzP!@Rj95+_L|6!p;s3|jmYnLslIr3g>J;p- z>N+p9BsKKthXlLAD=s$vkF$D%;CF#gZSJ~SQe;-RLDp>m$@3TPi@ZNpD=yKG=X#vy zlD!_hp0T(?Za{AC8asr*_Zo(`8ZqYVWY`}2t_!9)znv&Jq0vE|e>Dx$*Dj;ogJq^5 zn5mBFrp8q_-Kz!q)+3F|uYj}A6bb47q0Rh{p>L-JE%ZC2$R!H?2a!kUP*&;b1a=d; zqTZnV9b$c@@ZG*5_|+>nyGhejx<9M~zU@G(PPAXuBhVIpFy9;K6> zsZ{9%&W}OPIWtP}HtqU`+Hyj`EPYA3dU!!?UXRbbuBY&68&E)(sy8o0*#%D#Ng?aJ z>ILZy=!qJnBu57~7L5T~HCJ;UleD-Cf|>64QS!PD_%x}u|eA?fDMHHx;%p_0cv#f=setb;Nw7DI@(%P zR##HM8uTM`=cWF6*D~?%&|2QKyV)X(Ht5D=m?#C@H|r#@>&D6uv;Fo*OP|H7s%+jz z_s*R4(yROPTNlc)o_FUN7ZQo8@OL6@w7*^O0Z4!4k$H)xne|)<9zEs5Y|3qIn2Rgc_&6-~Bplb{-f<49txd zkIfx~M`PAgJW&C;BC&XM zJ@0WpqI50)vN(oFF1kWmi>S#duanX6HLOv@Kd}rAAt441+R;{fiN=1md5y&O!?910 z^!T`F2I8!IRieHBLyec3vG0Z_5S-`I7Itu$D^2?og_%%$+DR-Ukz9daDkm<{jA=NZ zPOM8(Fw!gTbg%7T1IwE}i1e>@-$#m_g)+^A-`8~Wdz=$d$K+?tmr~@gL>abg*Uhf% z71W2%$a8<)Q79<=+fF)jFQl&O!YGkvE;ChxcupCDY*AGk_u+*KzD$d_9#QWa`-h5F ze2_H4!Ri%AaE}%1=UPU&@PTg=gMSEsf;SiTLQ#a@_KMY*>XfSOC%2%WmLK>avr7GL zAI=T}xc1xO$Oj9sOc_G7~Fy7We|rw-sIfhfj6N}AvbWF zo^HpH(1l20z2IzAR2SwpXZRW1RM|EIb0@?HoJ>L;m6lzma+)k$KRRMk{=}9+FKn^v z_&io^xdL&e|BS40cl#vtI;14uxZ-5JP@18K16VA`F`v;9US4f5=(@Y<!-T={*T zTq2!06Woa|L2dw76T2*^2c;Gn!!3QtlYZ)~HVd*8B;HuLjFK`2_HnR21zxMLXT-O? zcaC!O2Bz=d#Rq65UuNVFBziXK>*)WO#sgj8DQ;_9(UZ2mfVmWxk9MsvZkxCXkE{m( z)0mAkf+*oukl$9^aP#XxbZKJ^#$Hvdy3NjJ_u8d7TE)#Mri3iuKX1 z)Qir{utxvvFzuWoF@rR~0c2HP!;PkgwLp54cgBR8WiuQuyd-d4-8an4@E2O~eYQO; zNVWSKhE8T;+=gdGhj{CNQv5f~9%l>3t>B9iO1;&xsJ*6VFGK5x0GNHx_-X0B{x?%y z_1yI2R2=n7);-1Psz%&P5+zbICtl(JvZrh^u>R9(wFkICE%F+YRH8Y#J8634|IeKw z3kocR4CqTgr)qI7?rNOClC)(5`{~oCY4o=Z^n!m*9R(zvv-amRm*8^--%1tg3K_!X ztIhxzD|7R`lX=!6>ygKPp7u+qk)3;{kS~1RKVYx;Pt;5kOuxgjxWEGLn+EcES~pP- zZ!7(Lo*o870H&>eWq0n-EpDevMBC^!j^V^~yZ_C8^Z#^+|H>prz&|g#yxrB6)?<2{ zU&qBci3LJ49KLST{hHSdqroNk<{#zokZ;0cJo<0T!X-vfZBK3H>&b>?hL4CLWTZNR zs0V*9|CU0m)tI=sQ_&+3w7nR+z7kpp@7fY|pW+6`j%Hx!*<>l!)6JJA`K8SXX4U^s zKp}zsH(eWkw4};qJu}vePiyu|R%LTv;xE3rqbe2Zqc&xIn9~izF1-FAxZ^U%GYEr5 zO41>`a(bKZ!Ofghh)5eJh!e@R$kp*NOowuxP49tQQXsj+q2=O2f(ee_^}!7lScqCd zAzlDpQ3AR#H@T7yFYKH{{U+5EV` zzETHV{7&<=pr}?|Vw-5CC5>PqHt;4w?LIK#$}uuZDZjc}wpYSoZmdNJoMldl+IdZ^ zqa)kHo2-1m1s#L4z`IdRMSY}#*2hY9fgQGi%frCCUer0Eh?v)zFaG^;R~;l_9Ypx$ z3TCCUd((x}vpHV>?e44qA`;zIa(}c@>qN`UzlKAMs4MpN8%FQfpB7WYIdmU_^zj5c zT5~de1pvoz%oXWt9(10lBy^$`+eeTC{_YXNdE7If9xtNNFus!3fT^Tao|w)W*HX7l zgs0tavd{yMOL_5IZW3zN_s`ECHw|TlL4%_Kg2vC}uN?Jeabo_PK z%Pd1$-BM+Z)j;sNP|`coE7=<=qt}eIDBR++o;N)#UCl}vep7f@yjbf<{f?y+pC?%5 zf}&aH?;4#rOi-TfIz5LY2Ys*tn!%ra4xbQF;iMPRZmg@AC$**`5ls_Tm8Bl%YgWNg zwjmoKR!MeYP9^lqdpS@bULSX&ekbk--3tS(Yy+nW3B2vl4%YYph5=+R8xgz}xoOOm zFlz=U7P#g-S6rFn&yTGE()lt|qkUghjxnlr25oU#+PTc17|3)S&8#x-0 z;NVz=C9Yptk|p9QsO8E0{mluCdl?&1I~C9y!)y$^$5}sRvuebU1l0mj)W)lHt6^A2 zK2_}53iUPMj3#&NgSn54I3opw;Lx^=yy!8iPkWa*mI24|4~au=bBs|u<+>q5i+@rI z%xuAYuFThUBvSh1*I~?J2Zd$2;vbg3*)y{I0J2J2tsuX2`-0yjF)3fWeNV1?X?uhT z6lyV&yK)D2cGN*X@bLFB6UO30*Ss!By0`lIQMRSbpwaoktkRCZ_p|kZu%R0Z1OU{j zaW=}Ni`GD`AthTeiugmz>p9tTQO9nDb89aoJRD(^KwVVmC6-=#R^P)B47rb4?BGUE1YY3ZNalDo{}c`;F<5Es>?jv!m@-h|gVY_;D&;+`LE2BrbQe9=9n zi0i?TB#!GKVDLnaaB2ngA#qRco$YbwHCGTYSOYt^KN8w@|8?OARA;yHtS1L9e0 z7`^hK4EydopP8B`^vF>;uWt+6-2>d8^`GP1%tRtDq1dAvwiY&_>ms__zUmf z(x)}M`861XZ+e)Ugj%CX8__;8zdJK>r zf*C83mNTTdxCHqD4H|{#2dmcRo(ydKKAr*90U;S%xEzR3BwD)0138NGj@ZvmT|+)0 zf~BRz>>@g!j_rwM6PenE=yX)dau25Ngu?H0@oWo?qVOe>&ECt!E11}rS`X=tYJA5V z8{!U0%-nArpXS$myk_DvpKflN1`N~DR=t$|5E_rS-LFJtA*5!fr@Q0ihg6}kC(pk~ zG978jc)-XDt>fenD@yX9svt;H+i-S9dxi&XXPBntd>z@Te{im?LTFdsabSTqDHJ%7 z>7lu6&L49Buau5A#zKeR`=jKDBMTcuMSp<1S$#q%b{Q*!mPz=pPH_gAD$-CnP>{3n z@%^soczfby3BKCl_`lVj|4Z^_qlj?P%jSKrn5z;sd?%VjLmdTD}4F!4XvHX<7BN(00I&-TaI7m&&>99!Rc}aZ; zT2vntOiW4|ncqI&z1L*rK{7C!ndNv8=)7Lk8@Wd#^=oDe^sBXw%-h0~g(Pr(F;3NR%ZJ(%p5N5vDgql$ z_w+myJ31U77g+_FFGHE~@8|EY9nTR?Vyo`X6Xy@n=S^9|F6|*6OEVdX|0uU0--nA$ zm+LW}Oyl+Yq;XW9mDsnp^LJrxT48~4Q^J_qY<^2RmK@l(zAt6%#oBRm|?F|M#b zB0s{E$ueB5g0043D_fdkQz8my$i>t6 ziStIDO|Q_~_dYngrYe*m3^uZVlk>Ss=+O^1a4j6E|VaI!#hf|i7n!8MOHb!OcK24@Rm|Z{N);E2Q>oV7+@Tft!G=t z**gpF_$gb&t*lE?Y}7kHUjHG_#%y4k8op(2l#@r{hpodmEF(Kq$$yASkWVO zk^9EVqF7+wwfT_{YP)OJOx==$*3^6O)|aa_LCRlSVZp!|5NoPnqYX<9jrTGX4ZW9s z!Fk~!FS*wIm0Za=A0jSvaNuMcb1J7IavApsGFPU21XMCByGb@(3C1)|?}c#CFK8TE zv=9s=6-p8KQC^FSi-?Tf3mp{FqB#OCaRL~M6h|UfJx^)+={k}<+;YMNoLe+Pm|cdW zj~;s6ubKJNU59>hULZ@;jY#UPuyk zFn#!FiCFt%J(GC`Kl@Wr%D~DuI=K&0#Du1*)#Xv!M)tpKYO6GdNdUG@B42c6-&pm2 zAKFEC@hnvj78c>tG@M%L(q>AV3RXl}ywdc9%~KTeETt5Hp7*Rs+SVnro3k-Y)Ua`E zvCbI*(2PPNDhu8HpnX`T$9APm<%KL;>qD?xnyC5}L*zoAWXV^x)+HlMZW)hao4Q6V zD`LeG^?Fsc!Yv{@($8f>YMOy3rXf=>_5ZIdYRAbO^<~8+#F0%U5>=iar)@6@4w8rnMeG7+#z1ILs=GWi)X?nsZ+O2M4*n5 zD6f|JTc5Kv!XITLNxO5@-zvS%(?}bXheI*hkXL-VI6;i~`6Pa+H1M~ukJj!Te?(-z zWmE_Zw1DIn(yDszhC?FC6z(-OAbqfQL9Q0f6QcM>d7-L$g>0rDejT`i@#F>gF>rJQesUD)$eZ%dK{p|p;6Z)*|0wS=_7 ztrqHd5jcTmxXESeQr1WoCBK_gjuWm)6;@ z*V)9W+dQ$zoZBzRx#3=qGXI~`Ows@TT^z&}w`JQy8i)uxD0Ext{YGh~e%_$vHskv% zy7vZ*?tDfo#9fMPJVeOT{P2$!f1|&Ct8cOL)@S(AcY|wqiEFX4>}$Ma?{lm>1F>m| zaa#-3zpA7$f`Mb!2Jr^ZOY<3*Co;Y}GL#)xdm|9p#0_J|731!1;mfS`>%WfDrmtl$ z#k#w8XfDc@_8d4MFpd6xfo|UtKYiM`?%RKRha4g`_ssgX#oDmG#;+-O^ULt@*I_=Z zkCo>hXJ+%`{dM`kq0qU<1mEpz$NO^!C#+1zopndz+Erqs_Z7`}@B5{b&KWHvvGmf* zXQujrrZEe}Vq0g;FKc37_`dl+*0TV*VbiO{e?)cK)18y7^tXQkTF;r(HJ7{Grnh*J z$M~CEk*C~!X31stIB!Tk^5RIdgTD2(0;c@w~M6Px4AQ(O}4%0dd~Fj5NPw zp2o3sI}dW4K%^=d_mm<<1jMx9@kL0w$Jx7i=tWiog*j1|70oQ>lrU*xiAmMQI=|`?r3A`Vk z?>PY%w^finES~}_->F8^sLg1b<4(qG+qrTIaTe1Bei$$OruyCP&Leu<2zlxscTBL$ zAb(S!jr^)4n`#)k<^ZE;J~~3|#2i0ydgFYMj11;R-4-teEImJlKjVn>%awiDCYeEC zvd4S?%ucR9A_bOs8Wb;BR+vmsQfOD6tHg>x2GR58kVgPG8sM&w#=mkR)>N-CtgIqA zOT|GjOMgu*IQ~T5ItE4)(#eaMENYZi*boRTga#<@5R#a^{oQ;!B$NR-hD9w=P{GfW z{4rhH_(PwWBDfm}|A;ld@nJ<2j?KxWv`&|d!VT{nm6DVm}h|#-G7}6Rn?aG*^iwZ*1O4L;NX($H$sSfP091oB_dU)q=*@M?JK7*docu28~ieh zq==M-_e^DWSmYQ z=nlhrL^-y|%90XWZo?R7wp!j>=!lwY_>06Krq@UDl1TO1>Zi zt?fi-48JbC#3H;&=_?_1A-2#-zij6f6O#ivF*o`QF3(I2(|8T;&<;7S?U35LfYrfg z+AYj6j?{h(@pz)|z-6jdtV^rcvKF@=eV%F01~>6l=$`;pYS|)S{8+U@CEP7!TI8er zd-9;e5M&zZNw$Lu+3E6yt0Vm~N^3l{x*KhK>tS~sd;bG8e(1y!_;l9rE7|#bp z(8wkDr-2C z5hiX%q$M+MJI!80NJNE7Yaj`q6J0Pg*pQ`TYnbZ+dfK9<^kK*&mzyVa$gL5P1#L3CI9DjD;4w&O3t<{DMtY%Q3xu&f zxsSuH)yQqc0K~Kx>aaxD$;gnKOB|TldMU1hcf%2aH2@3uSC{kO3OPb3y2z!j!IX)b z_@PKXOtlT>%T~3bcz4S*wh4rYeyaSA>pJ}5g=v3x<+>^|(8l!vlvu0v89I7jz3#~5 zz1+`DJVJO#P9RWA8^#-zdO_(oBmtC$j+|KTg-{{;rCf2IYG-e2W%n}bt)=m)q+C{d zewVaKsyT*0u3#!-mz4BVP0)5|Xfo}Iwb2ZGCBLakOdpN)w&dxQjWH{xp)t}n2GSpb z}fAYDTX^+aGeRV=kEM_|JX%b z0J5NXs_rI!Zg9QGa6GY|>+8$&@ez8eQDTR(5v?@cvrj{<5{YK6+#ItEtah8oSUr?& zViX2GcDaxVbdm76&_ULjq=x{v&?)Qa*FP$Sm2m_7x0V;XpKx~f$hL8kkyFf=*>ke z$Hwncl*>UTL?IjkaNCSq4~Lm=hv@+O)fwWU0pYvq^5bWL%kwGpPY|dvg6DiqhP^WE z#Xr{zI)Q#h6oIGrfdm;+bnhMhj(r;Gc*VNwyuN!h`M%#~rC==izD+>)HRO`kxe3E! z-%EI&rt-*p%K*g@huwSP-doA@NG;Pd+M%Q@GmtrxSh05M6jE3H5@Q;KZ6!RY1mJAn zq6N-)x8npORKM?smY;j?3v4&HR;G7H@vJqOKKoAL`>0%WdJp(!H73{gU}rw`I@=r? zzTX-)KBV@G056O@At$}5oTGjthMTjKSw1u!L))DR@O8V=Eosno4u%= zLThh#jfEZ0Egf?IqRH*Kljmz*kYV~MPQNWWI(*FOxd)4dB8u?SR7?T7-$PGVVapbn z@#g@t;X`+AuE@r1Pr&U|uFM3cCIbnRP_j>f%@Gu1BAGcXfC9E)(_*-iG}am=%)u1V z?vq~K)KJ`PvKh8-Q^KoC>jt@z6{WxN@3KyZn}aM*?o z&&Ch5o=1R5?Nbz*URS+YFss8i#vR%8m6f*T*)DkE!Rsq(67jY(^_A}=#!A1qO3I9n zE}$5HN*5dI$jo9~tA>?(n!B5XCNkn&Ttk!- z7D|w3h)^)*l|j@!`B!98j#@p*&<*U~s(Et4TD@QaX1|H0*!&~Et|ag~*f6}!Wdz7N zJlID5J3iVB`J5|tH}Y5knu8VBECO5ck;^{lka+mX_HW!WO+fRPktcirUXC~vS`grV zm{lqu%xp&=p|=Jt&Ui<4ZyO}jHq4P^#b>D|a$F!P9z*S0{P_K;U23b6x(6IcF_6Gbp_Q?`F} zqyto*k_$FSMVb%+2O*vF8l+leel)_^j4_l4cd1Pw_n{Ucd0pz&=j}YQ{5s%#0N0*7 z!kPO|6s>Re6$y*rOf=Ey%PSpaI0pj@r3r@!Qos&}0 z0Iic+CWeb?tZnRFjxk~6F#7f?Qa%^-Lq-l~eY*Mqu?#g1Q>qn0Da{XTac#uIH(})Mi1& zT(co4`x`gp0IoPFP@tDHfjpS(PWJee^3xMhPU%IjYGlMcsQ}hQ9SnOiRFb~eUFaX3 z+j{XPV>lKf?A_I@Od`$vt38L9$xz|1#MbUhAnq)m;Dvbe+cdHS4I`{_Fm<94ji% zT)eYags_sw$+n68+&KLm{s3ZM1ZqE5hy_a8rA?qPPe-srRL((uF%Q<64yfJ-YhKf|cJ1`5uKVeSvqRVv87rKezqzZNh0c;IT^aki zeju6W9C_RM_){$v$h2q(=wTb8OACYE4(aD{HFy5&pyq$5*8lxPyVHUs00JH6+w7C7 zmLXhw+2bj+f7`QHjE|4sEx&;j^K&uj^*>!h#|HO*HjZpM_M818-rCQf+sQ{WUu_Dl z`=DY%93WHTn}0&$ef?Pr$W6>X$Z`CBcjCEqLV&g;BcgrJx_vM0d95iG_4CA?=ndoq z#&4kMaqp2LYj8`h<3`TC&J>P5pL`zz`2x2)xRrF=dv&;X1d{YoTX>27BvwOm+F4)h z0MNZaQcuQLyaKHd&g>f2&LGqxefq!UHor{lbuC2FMo~u(`5x~fxnO(835$$%!$||b zvwdF{{m}VP8HNRJq);4~QykyNBtO1Z_n}Pso}jK=?*Ry=2H+DcHTcUy9;rblCFWy@6O^w0 zLm@CWjwc+C78R?Jr_+Zw%kxiM>2mR$T8D7jQr>##`+R6vQy0a0EnJwLaoaD&E*iZM zk+uN;f{`|92T55kf&p06hcX9%0O%{cqdn&=9k-YazxbL12j*{-=1V?TqEPR7e^bpc z>n8Amg{{x$U?zSMPO%%Kd`K)=k&sW zjKvIYEz7`Ha0g}hqk0-lnuB#0DT{rQ1=FV<&bV9Wk!ROoI0xWvz&gr=hlw{sQ=IM9 zPueAIi51D7A^c3J4kJ9(P?r0h2I4|=^ESLK(u;Un)_e8#X2FAUn6(n`(e6vwv{e!o zg8v;U))x5g0!_|>INWEE=FE!NF7`xI;rP<{C{8GYCF~Re+>_|TfEU4~wtT<}&_AJ@ zo^%eRe&hJk`&srJmYxT2X?orM2wV^YYng=~Ho3fUJXFALQ2Jv2?fd32v2Vr}y<^K6 z{g7v>v)h9Cmn_x8YhBs*e{uGfL2U5eZjZZu+`FkMbZ@XiCRE#7W1{%^8DKdV3_5jg`vU5*b>jPwR|$k3qL5f@zGCx z&Td8$*u1i%a~xO8)W8hill}-`oIEB6J92{M z_}1L9DqB20A9Kn&6%_w36&M`2+ccKO$ZomEF@Wz00x?d=L~IVzY^mNGt_Fg>S6^0o zgULvhWoEGpAIffS{Ll9A@$XI3kf{3PlPKKXeQt9K_5)C-c}i_P%u}yS^OpXCOF^?$ zk7-*4vp2ik=B2Uq${$hu%Oh>*w7MpKz^_1^%cfzc0C`P?5)zanShAfgH#dA*2ErU{ z!5;c0q>{~a)lg4(@hB1GgUmQDpG6fmI`^$K-uq}~GAEkL&Et8bSmONlFKf$e%+ZQf zq-U_vECg-_W~=MJehK}~M>*jVV?xO?cdxP?<;}Mdd;>>av0`Z9L7Xzj&I)adG7`ry z50aAp6e*JCPfl21p|jtcpo}Ju8ueR%ME@ve8c>g20bKQ z;<;wWaIb1p+L|?#u-7S-oi>etSv<_5%dpFSQA?ceJ>n8(rugf_hneItU-~xBJLq&J;LeH(_pU-WH+@;%y|G-sZ5) z_QvfKfdr8&*i15jJHY3PJkdg@&OPkI-vzB2JRpZIXfqv0yw=evJ`n$YkYJPq1Bhw0 z1t4LT#GL)yEzxHA`n3J4^1-k0zuR{Ihv_TK4s%8NBJ>0c|DNgZ^_ysPF>rmcz}2AS z-3#VPWy2NXU((6HRPnw1cLf%TBN#tGc2TLHv0)&e862^o=sIAygdloY4488bgbGrGLF*QiK{Z6s@ZI{PEWNY`|Tx&5IdBhLs$Io|nt|WrA zp$@CGww@WejnNn!6gkorJ+~Kima-f(?3-iw)jb_Sns9F*@Tv<9?OO1D;9bk(nEn zf=v=eirF$==s>mt+<**E5QYZ@(RntF1X#~%Wgxwbu|dHT>SA^5 zu5OFM;w>U`;_S$^{ZWkAeUXsX@d@ByS)NRw!IT)>5joJB#O?bPZJ@lj;$4B^>#|bdJ1bE?w zdR&W6_KIOhz-NQvnkE7s`6G3lx4N0OD@dD6+IP%T{8Odz3cRh)L+Yb;O7)70BP}@> zsw!HG`p{49X4b`(N>UL`Wtn~-Yq**4@Fw0x>#a<~S|$M^$#26PNY??3nXajKD_3y9 ze18&HAs@mhiWdJm>MsXKl}60%o`huql04mL z;#&t#Tm2KMXPTwLH{!AP$`{6zXrC3V$+)M1CWwx;=}Thu{%#o zjr0&N>$Y$~N})VK5m51s-wd_BeEkh>oM262Q%8og8kJ1Q(plh*eY?S2jgnSE)2UXon1QT7l=`<^@Yk z4Hr22KY1WFtk@y_aJa`t3S-XGjme3R!o&j(BF)Iu%Zltc)YM)iNSC^VcbiwR-hJt& z8=(V?C6pT>(GklMTS$HjyV!$lB1-op0>qXkbZ8=Yj%onqmb%4Pbad#I_KO&{YLTIx+IBIo%Rk;RbA zt}?F5LF#nmZK1yqmssD+=)^9bG;W{*Gu_w3Szw{Ko-c%Iez9I>joix?C1YYmI+52S zbhpGg{OWk!zVA~0QuQ02Q4Fqy!xCepS3o1a_Go4HG_tsyuBeX#JeSMb3S*~5E8->O z$$C;mI7}VnQaZZ6H#}!cNb$!uLcl#H_wKwGhmFgh;8}O5f!v|KZ-G{6LbS2l5SZns zvNEYo!jDTS4bPD|=Q{Gpoxb|zbjh9!c$sKjL9=20G21}&NDvOlamQJhTX}|eyp&=Q zwe$O1i-;KJM#G7}wgHBI#m^BR*Owv4ZvzPjcQ@pRd;ij3-Q4wVJ|k7KhkR?pJkgha zqPc?B%|eg&&c-$gVf+Wbz>@rgD%NTXbdVEnR-`qVLqD!mB)6n6;}me!)HKlj|KYs) zZ&{iD_s~^M3<<*=X2sw&41T>m>^QDfJP&?RDLsm_` zcJbBo#(vu1&IPXFWiX`u1!?w0qwp&I$Ndfe^^|vy`^4Pn^0}eSqP0KL4AscL-odTi zbjzP_5Yg9v*5qx^gti+aP*7Za+DjZrT(tV=|DpwHJXdL4U7d=)im2_n8h76=2;BLP zX1qhR>2r4)&>h=H47XJfmiHRO8*z=flg@8b0=79D-JEN1$s)~N5%dI~@8a~`z zW~3d?4^R>X)R7NVl~);Q*uJlwagY1L8n1D#E#tNo;qrS8uB9=pI@Ky7?TQ6RjB}`n zxRj*f=~*yeI6!kut$;h{;T8Je ztqMdfPh9)1wUV2lEB)5F!O(YW*+isArqUq9zcAmJP>uUCbrN8qw@yQ@5r`#7XqYve z+EWBs_|a&ur1v6KG%)mOl@nFUIQWxxT!`2CH|8rYfn4GD#KVeizRR42H{We>(cLoy zZ^x=7-vU>h;R^R}=27$K214a1eubW+Z)z3;iAVlV1UACxL$75Bt)grQ9P@E5fGi(x z8ykU(RMtU7^ilh=<%|9fJapax{7hlN%V9QzMNj&t39jtPN2ViX!%9E3MS0yi(mQP1 z7YU(+T%FQ9{XH%~S;|a7kAIVGHu=VIi1326GPMQ`y&0M1Mg_2#$Da=O_o~o$q9>Ez zAvfx3?)vnyn^iKjN+LPzhV{B6%K_YAx-s3^2I{mq&F+_hpsHK(Ow>*&yyDQQ7ZssQij9#uzNcG| zIFl(Rci+}i$iN~|(_WHt3h^l}W4Y=`e4!XKg!q;>)Nv-6Sy-cWr7%-Uu#_u67^`K? zaR4B{x<1*}eUIZ0mofVZ3&kUNDMOm-PThiR0+j8}up*-vEKOg1UTK(Zjv;EBcy53q zDtm(<#a*_KWQ`=DpwZ~xbjdaSu0`wZy-2|LU$7+{>J9C#dn9X1PQTmohBDCeNH_Jg zAba5^`^#$x57OD1J5~m9T~-y~+Qs?(?e%iwq_$o63)5NqdC!hdpRSTJ9Ignh!*#vU z3Da8|gGpSA0>vD;C$kg=5>p?YFt6FWB(r9|>1|l)l69wu0S3I>HsJtF%saB)$l-Ck zQg)oHHpN3;rg6Lj>?uhsCblW~&rsusOwtqtn{#M9_(-Tqyb}6j2CJ4TlvoJ!mq!YA zWr=4|n8uKfsZd`M6^qd*!3I#AO34~YxiA)ROHPH*a=8)sJX`F4E-#xzqKt@P_+19S zcrx_n%k1-Lv=~kaVWb-iZLp)xAhGGmNB#hM5}Chld)T!qh!-zS&iAY#nI=&bsa53_*giyc+pPnFPbu4eMA# z*=EK8POVdXdE5cbB5deYT!fXiens$!hO+Y^BWUm$2r`(lzL=5>CX_wdH#ZM$WMQe3 zAzm%JF#L@4*DuD)aO=dJ!e?wlahCdYR3DyVrpf~=&(3r(Q`-ORv#Ox4&*|Y1zryKX z0}`O;h<^jRE3GdhZv)2ilwXj#W;v9+GfQ=~57jndveX8UtVNIEXkKFmp^b6JhR3xP zDHGwebdiL19fqrcT7d&Uq^h7IEHIKh;$a``bFQmSy7zFZYcLh=suJLs-%28`%%p5>&u~3s+8sA7&T9$hSiM$0uw1qIHd?3lwA{6 zC`zE|g8R9E>=QREO+_u%F)w`!oLPlGnd1Zd_?1t%Bb2t7qJRZKk9Z*0`5ls#&kd!n zH%L5iL4LrGJ8zW6Iog0s0c{}g2rc$)Dr|oEFJ((fB?+j+;=Ta&#oF519QtK8tCw@# zeR2H|n{PASsrPij6grRlV-3+9O_(f^?*4>G#AvI|M)e18-LF$Z=fb4{|7a3!Q3RmqD^laD z)T|*_ncZlYhO}rR5%3B1s4oWP*HiE?Tac>@Vaw*k0S0NPWHkEeL#kms@s#u@Reis; z)Z~&5oGAsX|#d*{` z|Mb(|bv!n-yj5OTH=ebV-Nv@=Ad@0K27^|i&gEx!2*n;#jdiRw%>t3m$-(PmA&a4> zPY!HEsf$f7@;^=FZMy1vqA6Q;#n!wYW7 zHM~a;+^0UG25 zuMD(f+{IBxtpqBWr&prhhHe)4)(WlX30ZiUr>)A~1;qfT1qJc<q4j@Qryc0jXp%SK&vW6QUxSWLUo0(wWLaAGEND zY=kW&NM)B}zbc}nYs&GrN)q2B$&0^47nFMjotRz6Ydk<2c3orr4{tj?6L%U-#H?`t zIqsHiA$dq3W}b@gq<=C=&id(lIF{GoGaZZ-7A{3Jv@&23bE!B@l=>vnrDIL5CTAKD z+k-6gYmj?<6b7?EXpL-j``)whcQxVfw<;hb#l>-5Bc_3iTwL}KhFuK z)ynjIsMw8mp1$!DWY?Tpt@-p@=iO7wJ~I!Y1v!!QSd$J9G_^S!ucd8?^pQh5NyjpA zd_D5Cf=%@XuOmwEhZBClvDHVOijS;;vqs#7$@&bp#|1AKCp8|dzVR*161WTSrLRd| z`yrsngYQm@H(mxM&hu5u5wVm?HYwr&osMo8)vqGk6pKSXQakm#ER# zKLof0wkS)ex(3enAKTm%QV66_F5@3?De;cP`lKkd*9>I;ZsG489v%WrJXT=ST^Zoe z%pF2_r^GyDyDU0+0Ymh7v!dY+DuRA|-?=!B(BCP{UZ`i1W;ZvGr03!kz&mA+C70j;8e6{5gqQ;@rSRx3-P}$d0!?*em=wgd zvp%${k}y|#eh^waQ8h2-mr0V^w(^&6(NS{!y8%CorDHgvj($u#)BIK+%C5c7wjd_T`3^Gd!9w^25el1#Xe8 zccxZ<%q?y!Rdf>h7d=%SBVVnKldB2WCO)~KX3T0DX{JCI;!n5^%QyU7A*QyjZyxiC zs-K?kPSH3*&Fi4k8{!sNmxG}&hf%ljhftZ-GA}=u3JDEsN;cmE><;mcc7&WdBVRD) z7D{c&EPGzYndUOG)Dc#GNUkibs)kFz;R|_gEIQrrY9o!~6q0jqx5rn~z-g`|gwa0V zA8J${vQ4BMkdI>>Z<H@l z?m*df-+s9CNaztsT5r}RXV9-{0=T&d226|OFOFHTpLXtkI+_!^tuN&xbsTzIh7g&k zW`DDKkbNWn?P>`XU}$PrB!V-yQv7NW`BuiqJgg36TLHG1uP-+61&3l@!+MqTWqrJC zUeppHvppV~=}dkVR|k64tP9jFv7LH{BZ&;8;gW_L_SuzE+|0wpTKIJvg9*PAqcpS4 z-OTma{=KeRPm}!qI|_GxZkRZ9^16n&)joZ&XHF7l_gQj2mNZQEd$|YdOfd{22xZfg zxv4G+k>TijZj3F^6pWV%>{UDxr$@_;CEF|KX0RRRjDv9HrRJApG) zC$_%adb{N}3_v8#3wi;t`Ncl-iIG z@Yv-<*XOrhzt*ni(~Gqjo6+m8{p^pTHi5wHiloZY=yOX_ajBuOg}0Jtxn6D?6sU<{ z2N;8&CqP1TQxb)QQqKRKn^~9{N%&ZAT46fqu4(#Wl#=ij!fsMN_gn0o8olm>7=d=q z=d9P(x|U-5-nhiBxgbKRm*2fa&%x%eX>`A8U;aS|GlC?nNW+DH{3|G_?lHHHfo!F{kIGUV%Ykm_kj{n*XXHF+}!#+IFZc77or$lq&* zZgs^c`XRQrGTm=5?!@15fdTIOvsB*;Bq&Gt<0Lml^2juh5_Twa2T%z|BnYtX?!TzP zXl9q!tHKHViN%x>xFGdyKoE0>nP$PJ!gd|)J{!zQo8ga-&UNL_4)h6~yp#Dp z$Uqvc*xJ$)hEFoy{OC-8zWpul^_kc#;mg2JasKRy3n;#==8j2~un)+s$;3h|58-LHiw{aGLPA-0 zjWca~`4RrhA?~Z8_DqNxAXLHRpz z7ZEry*JS@Iyw0||!|2gyH$Bo>_54zDTUd_7?ZQXtw%vrP%09oar^N8VU(`fBQ~}=y zCN-0(f;|Wk0gyimBOs};QhSD5tPZ$@ZE&t;U?OAZnD$B1#d_5x!xPFiuHhMHK+!k< zs(ddv=*_)O4C8o0o%F-M0jrXnA)TmVh{XRebP-;IDz2T{aDXtKSji4jjRn!fE)$HP zxUnPrXiyx<+G6t6-L9i{h(y@HfDwx#vAwFLwygU7vFq@`FwQl_Go{xyEkq9#esLqN zCz0Gl*z0pM=BDZCKg<=|M}bN%QD!kfi{CEzH7Iq9Wm)9tm-~bck~i-r7i^er#`%*l zjOAQYvZXgWCf(Q}UbdZVko3^D@YRK=I3)7;x#K`|bt$C&S5wJdzDqG3f;6uuftl9Xed!Wr^#ONS+eBb-TRw4;Uri0Y z(hNLdL;!+sgBE{rH17I$+)i}OS>cj6K!^6QL z7@GELU17omamKhNpY%5j{o+ib@KIYbHBQ|}r06wZrHe5ey{I6OfL~EmPdzOwC@{{( zXzbkxdJ3c!FZ`Lk^(&fz8rV1NRq1s1JZp7xwd4P5NvQ&sf)<&Lf2}c4oWq3%OrK?W zjf4qRv;dinM?yJ~NFe#7=amfXuasQJ6Ie8~%@SYA@rfLe4Q8&#AK=m$B+@Z8dwzaQ z<7B;vigKXqf({KeM_V;9OYH9`5{&##SPW_?1xX|{o~OQU?RU1(N%4^1%~OJpqwfZ; zQ7zQs@AG14hAjN71SiQq<$`Dtt%=fq=2QT7480z44>vlU*hbjKMZzd`*~F`v6dQj3 z-oeH#Bin9>k{%f!_}p;~6q-Bh_Md}Du)7{xTb8yljf_FIrh}6eD7kohW@ev!v$8JG zhqs;IcB|?w@TFE#c`aWppygIq7Z+TG+Un~=w%amB=>4NPr+!-(-lf~qKNDLx@)hKp z46&F}EXBG4J0>aYKAO3j_aIZ!_IqbbBN9d$=>j1g^rQ(YVSR*I}MZPQ&;%6+)+WZ8# z*tT}i&QBzV$sH6RrB@Rd4U#h0FDC_(2Ev^X%g?KK#PAet>u~^=f^jGXgKRZ|@H|=Y zg0k~U;gL_Q^s~jJ4LCEK*b53)(`5A6?Xj`DZO7wDG*q6OEgIsN{C)t?^@BisAhGAN z*8v|UW~=ze7{7~OL0b;0nKSP9G z^&UYX)Ej~{C?+j}9lsT5+ZbPp(aYQhh6{|*>!knH7McxEv$_6{)>*{__jtwje)Yp% z^#}=Im-U*1y&3VF z|1z)+{df81Cp@8FX)FfRH2v<46uv*&L=@{O1X@r9G#h% zl>89yVE1wi;Xn!Xe8*>xjI(rcKm3o;$`58vV_FgogKq&pPFX}V;L4vc^b{$dG|C!* zPyL+L-e*WJ>b+%T?eE(QtWQJE{^PF)IYFLa7!a&?r6fqT4A;kLazUZv=&IWmijB$h zF_B#-+BI?R@4)?_h4N1nv1AX+*Kwn8H4?*q^pcFF1d=4?Zbl*}s=k?HWq4M5PdHKj zyq-l@E2v|^jkx9}uDMn>L}uYa0hK$?{V3`8B1mMeB*tb$ z#$KxEy`BdIGB0UcPKy^2u(1Gf6|NuZGQ@{NQJdix{)k|XJMcRmX&~=sL{b~+4GQ1e z-EXr!xYrq=F-Y2g@p7^inyyK)CmzXFr4js)GAJuxg6dRms3TCtEsKs1fWglqx1Q@@ z_w{XTNX8ft39+aoASX!-*B~7UZd;T#d{Q4ulI>#V(6#@;j>J!oW6T49`^2hkin(iw zK!n&>Zz~vKLjOxuqE!MDaeB1qUTct$qc%1?9BE2`65pLAY&-0`Q}=^OdMH8Hao{F{ za5x|$HA{$K18G5}?0Gu-glrWQ~%ZA+{@C&#oIFW_mI0=GZ zLmw;!Cg)%rwKJwm*27Sz{Zo5(DAFV`rvng*{3FK@c`BhWn%xZZG8UeJX;aFemEr zMqIzC^Zp--3AO>HF#Cz*TPBf6k=T z$bvhVFYGHkIi+;DVH&W&v56dLW@Sf-rg85ICjquRCPNbRT;wD`I34&TsAJg;1>&9OIr?+ zf5i2q;MufUNVLVw0QRN{;o(rCp((;Za)sQK_8O1ZhKT8FEUZ7b$Z10$;JhPjc`K<2rLxO$N_5ND*IU38YFf{ZS)#Okkyj(x zo$WcR#iyc1-TiD0e!k$jhN2a{bTnTfm(p6K> zSZuNN@hhoYp2oFfnGsbU_AWd24cML>bzKzHm5sCk;!Z3nE-^CX6E z>hDv2HGxv9oKV2SeG#b(Y!3;B4eGDLyOwB%y>$Cu39Zo>(DM6!Yd#PvuYYe&*O_PC z&iU(=;}n`KkXYbgpULEL-2F^M+nHYCVRG|jk}K{#aPvO!@Sm%AkZU+Y$JlqIX?ke* zAH0|gP9To!=9l{)EgeUicL<)*`FIUG654NY6kJU4wf@9A_}+Vt?RA#zG&^Jr>B(h2yQMqTOzJ1kIa~J zQP!DTxvKKGx~bw89H`i>1eTBYEOR6DDg#&L;5XO{?Z}B59|g*E(I10Eo;)x}ONBeP zaK=}{siL1~wU%^y!gMP>>->W5#W&vnb;9cN`+_~|!o&Sz;cZHqLv!~y?I}|_ZV!jB zwBE1Ovm=);-u>1EIR#1xuVtJJW`F;0$N4j~WWLO@66R;PQU_0O+ zT5M4t2pQ4Ds>ySk8|;PQ+JiVn^F^#{t}kz6_v3g|K?F8GdX_7E&y`)Y@+4THRnX}x za4G8L9!znt^-#;rCp?Mp*9DbOboCC@uk3mK z#3Mq$A9@aqB`wLe91=1*S`P>5?L02c>*huZF&BB@ zP4nOiWB&mNjEOn^meCOfA9*}xB!LWm`{={X!TU6$_*l$UrxZr`xz&Lg2DZ`OY~g|5 zx!FLSkmtSHKPqZ`I1#jnIZ#e$W%9=b^tK_>p2hUT7Ab2}gU zSkcYHUY3d8p^hBiU!@WU9`iL4V|iG_Y6HJ18(1Px6Yq=Xnc8d+qfLHtRpc4pakVVT zS-042!dd_5+ubG?g}-7INadN20>(Ie9ag7oKH@t*c-^;L5oN_nbM@8HmUI{UCH*fuC3yC_l1FVHFto$@#LauprT{pM4TFkxL z+h(O|rEozzZJtWx->cXuGNUO#d_H_J!D#=oIgD6B;QBp zv`uS>NmUUexz#JCU9kPSOB?bqqKhz8kMpdiaH&VXyEXlAfK5se+2;^aAf!F0XPzAW z&5@~ii1{|bELzxgbh>@{kUJ`GdiJsWZys$JCRDi(^B=9IwSSrDliIz z;L2q!0z&oqWl$W#R#-X2Mv!LQ5aCM*9EsR{>Qi+6@Y>td9a-`-#R^j)@sBLP@-!mm z+uTeFVl*CZ$1d)xr0;@ncH^9>cE25}K1|MlCGHW&Va zt{q^r&ptEb5;{;QEk+Q>gS}Q+Q4$3a(;Vp2@|uB($BX1jTe06KYlh}XekRj^d(zl; zNWRMfv>TEtongeIi5b>hM&Ewm7#aYzo7!ai)+z*Pg*oGg{@P}!ciL*<$^sILAVgW> zQJ}#I*x#5)eB)B|2g!G2oTn|LgT4Z{S-@(fueCeUG+g=s;P@4sFbw7{ zCqKI=*7Rx+KPjvPc3>@6qOJK(<@baS1FyB%CJp^1w-#JC*wGzW34Ty=>hJZKr7vpj z`|k`&n}UZTzb0&OADvhneBM0egEx$m#wkI?!WhiAh#Y|d!js0+k)$6Xy$>0P=W*01 z#yhbie;Vhf$GwK-0KwVhfAgwkPs-4>xdlW!h5KhU(A5LYb`)F-8th4+MW({BZt(*S z-ff^S^?yC8)XIFhRAQHDOOm?Gr*`Bk)LTQeikteTnU1rNIfBxQnlBOvW2Qhcw6d{c zN}3ZVpjZrsLz%&R(#6D7mSe$-9E6K=@0p&Sk~s)-EJ2Z6FTt5nqWJxBN3Ymm9%~a9 z=EnufFv9irksAfMhm)G{{tw0ClC*IXa$pYT=)Uhhk0fgTS%=oK@Zh&RVVtRS{i)@VLDhG> zr}3o(Y1>?U3Iep~JyE=_u@6Zn$+sEM4==qD z7uJ|Y2l06afKj}UcH&nb<8->Vx9gIYrZK+cZ<+x1Mu|PvbX@F5(FMmScy1qMaDS28GuMEd3C{@-XA{Bm(vBSiP*ww6+s< zXu&A)JtjbA>u_OW7sFd~mT1u%FzP_@dpTr+VbL%&F8>OF*pH8ft-qZmX|O*^Lj(x} z6OR#{&!JF6LXdZAlQvJ;XYjP;MGlVRf>y{ycW+J$49P~9g;ppGGoXw5TEtIwF!8ia zUDSYK&Kd>$i9`!2seDVQ`r#w^#sjrR2YK!=$c_hAwQM9`_a`iD?Y`#9=wCoBr+39d z(JR4h)s9zZ1v_;kdX9xE@+++o;zCJrUYhiao(gsHXt)RV71myCY{2NBjGrEO*GTKGYr7^JC(JObTQ%d3(ZM-M zOo*Y;dd~Fu$?g+>X)Z{TNk2Q`s>qGsT{K4oV~lOTuAge9%b#T6u;?wvDm3&7IzgR1 zndqF3-1dA0y(q~#S>ag9R=mZ`0a|GeuZHWeV%S6n8lth$A=42$yD0VR56NCq{LRv> z0SiE5yJNM!;ARsZrt*%sGYu}eH}4TSqAfqZ2f>-nPdNcO64&eU6mDV(A> zr$2wB>j63@;g4Lm)Y6@wvPbXFnhVUUeWY6R0XFQIH^btW?Ch#^p63)3K_YDF{qoP_ zgWe|F&c<q<)4u$M(5|H=n+6Z^$reBm3x0Y;k1z)8L`@Pln}EoFpF=pM@ImE zG%h+XuH|19r5<%BFdN+6l~QsN%I`{y^5(Dbm6<)pmsNHdA26z>R+xAh=GP^>kYTaS4J0JNn2#)Y1UIZ;1}?BP(& zs1j-JRb;7!2`zWi>ZquA;5w3n7|nrnCIlv(vAw+5+JH9i{ZM6c8G_NR90b-THnkbf zE+#vPXIL|Y0Q91666=D|Kv<+$yVY`|f7KFpbbsfRxFCjpQZSbfl%u9IaYu_nC1JH&R}HoJuj~wZ%&^GF z3N0%mws4KL3#DLd*eAru5UEF!pyIa)GCd_cP;_q+VIy1LI5VN@$MubUx{*L}n?KA(3Am)jpbc1O*Oqi4B& zFq-()q1fZTf@hL~xM5P~lHYYogrzZn_t1D;HI{M1I7}#)*Ii3VjYu{WF*cOuhYjRS z7&u{HTj-yFUV7f}0MTYyUARN$&mg@K>Dgongq6BJr>p>PmrKk8lBZyjKTSsm)j(3! zxtP)K%@)x?YbAAj3k$KHcus59sIvz14cXT8xmP0qcgISEK>EAt80M&|ytd}P_92P5 zFE>Oxz;zXw1FJdyZPWtqp0}TQlBgP<4dL|)6iL~u=qzu!s|g@d6j3}G&-^F_T`2TF zf2)sZQ5cAg2rDLhaf+s2Ka)zFJxNj-k&0-mSJ>{y~Xs^I2He298- z1{8_LC%EtY;ouPF?k8AaK!!XN#QDqbaM3?SPB+AObqxnjS^N?hX*iZx`AiJVD`E3h z08mE${Z8~~@PAkUGG8r(Q&ffhx8V+iRi7;~KNpOd5m{){_Lv97NSB9A;ZT;iTdT^x z(#D`f+QiKz+@nQkd%9e9UZ*(PyBIqRT*kC(WtH=+B@>s%JtT~MjF&pkv2b8uubFXX zLMjVDcuoQ+!!?fBzWd4~-fu_wg?DFWP{kFuP2)Ak@Lku=frbNW!wFGrERc#bud}8< zV;s~ysGt(XPkj(fjr7mji4vX9UGfnK)m5SCwg|Xf%jqi_&hIF7E4&uf8H>_M@y1CG z{{K$f{&(9|UnmkiPW$bG0Y=xp{JWFCHwe4%BBJc;4x|oew;;6#vR|X93>UDT6!6O> zyX(LdPwcsu7cP44zn%vN^M~h0PrDpm{%baP^cy7FNH%^P*BRNIW>a=|?wt_u+r};; zpiFt|{-+)n8b8fujVua1bUv4R`a*aX8>$cn&^eEL^3L%Fv1-s& z+JE-$^*jU87TfjwX9WRbL`0H%&o}jK&)=8XAmRP5a~MzUkRgiL-OwJA&?oZA6yA*t zbzt6w>p7Q5o9b_$Rz*XYJQVTFa9v#`Tky`ld73Sf!%nHgKvBgUI471nDx~7q>&fc0 z%(Vl|)QY^QQ9rCy8w^<;^0`x+2HF&n{{odt=rzJ-9m>6PEZTUl@5Jfh%fOh2jUO{f zE@5Czm$dy4efrGfF7DK+{b#i{^`cU;EVUIz0*{ai(;^oA8P-^ z7sT87u!**YrkqUMc%q((;_GkZepOW84)qwM*}Cj?8{iK#jZK~BC#S#y1Fds`R`@}t zh+*60d!xH)mHK8)*ZnhN^Ldohc=Uw*VK4G@Sw`ykdQvao!ec46@c1$CA8q0k9%9(C53RAoM2 z-P_*QwJyIPl2lx{XoRSm-jPLtp)xQ*LKG^7d=7x|ypUP{V%XEwWjyg?prK|!He-h# zrAJ&a5&a40H`Hy=#9!U#ttcQqxHI%e}NRkIiRdm03>ROmHQB zvDWfZr(znue*@Fem4Bl;cvZRUs-e5*1V3E)rP#V!2k`wk1?xBeY{RkrVIr1zj+Hg} zEMdH%2)zw{blC=r)C?2<^(T-a_0PFi;jTLWLCs#o+4a# z1AA<>8>J_iZ$)@e1n%nH6oio+ySn;6y%L`}uhp3LU|^DPZ~6X--H%sx`!le0TcrP7!oXJXEIss?d>_*E|fmyP$`$ECZz zmf&!D$5&>KD@-_Fvu{!DkuPlfRl$CK*|cLif)>*%E^8(Aa)=i^lXzKd|FTflY+~N_ zN)u{~!g*}>PA{<>dcy*w7$8U4F-=Cyw9Or=M$tRx5OdA@1)u-oAR=v9e@k zVbBoOP3V)_yGKtzFKOqUn#JsFgqkVA+!tPe7=4(?^5KLkc@=^OdvU0SV~F52)akPj ze0Qa0zIdn^OuVhEa(y_HjU*3WTP3r1^;P8tzy%!3w$CgEjqD8x;bIN7U528%ZbY}7 zeQcTF?YOug!?*i0{8!S#3cFa^y<#~0<4Xe!^L|m<* za68uRh3L`-UZAc_H1YHPNxOS`d?d;1dMPV9L&iYIUrhz1<{IAH^Url8q?yMt_=dW~ zVnN)K7Kiw*a(>p4I}pnX3eL`S+YhRzoZP~Gb=gW9!z|6i&!A6X-VH=FK*csuM?M@u z3U=|DV*7YD3*!b=wDQKVuZ*=^T0b5L!bMhg!z4U!pd{c{9p6actU9|LU8M3y33N+Y zuaWeCl)nVLcI9?EV=@Z22`&12v@L6vzM$Nvd!dLE4B%d)*qc4QK_W^Vpbi(zdj#81 zhSQI&%%40o)CtOU{~qn=fFwpQX*ZBnbAL_eC6M?D!tvQfcoXQX;~iN@uf8qdAvRwkFy67N!d4Dl%4zN)5swDQ?6-Dygrtv{^oV`>&VN< zt!hA=`axR}|F&P`@ICuuvITQ42QwU(UypRz->9Jsqo+yVibNXAA^0prJ@QUDpl@an z>j4az0rEG3WCHuN8yyu{O`7BR4dTqJlc zQ+at?T*|_#jr5CJQ*@RwNSHPJWRugAn8y}}#0^bA{z~a0$QPLPHpPzF=I3I5Hi7I` zQ|#@wehjX`?zww~yy)=3ww~?UV^Xu_)5N9KNoSuIP_u83SW5O4~OMW>F#in8io1`y=pf8wis zEB?x$d`Qo^QG?!IXzbbWn6>D2&NG|LFiN&k$wNbkEW5Nx8Gz*eBRDfNU29%9gLiux;kI3ZXufWR;ct>tQXC;*$XI7 zNru5RjroR={e6-)yZDKT!?i14DN1bH+;#)>J-DzG4ntjqi}XD*uXQA{+KrDTS%9X| zo$zbkeh~{Kf$=}uE(bW1Hd4R$bI*w`Ru`t&D*s$F@$Z^`hC+0*DB$#7{7e`PZIX;V z2N)=fd(q`(&El&gmkn~l7Ci#w?;r>CK({4`9Q_W>I~duqYzs3wnh7=Oh_oGejC8+v z<=v8>s3INuV~Ofd9KnJVuO68Jc#z$3hsP;9CST0&z z>*kRM?p#$Tm!ftodTmIcLQ3e1U~MZ=)iCW95s|%%!?F_5RP7pw!lf2{UXBXi4}eaw zroS)6x9;T7+`jJA3h=2N6y^v_89v=;e${H3h>M{8t^r~+)`1r|EvwJ1OfU`wfPm24Am4+= zKah(w`iGl0*M&wWHlCy{+bu=bX71MwHLHL|14Fyz-p;uAmKn{cYyTOh*duZ0yU>FG zzLY^&hbguqb0+pVF36Dr=>sM#w4Lax5-FDJD|4|fR#Pqg*$tbo&a4Zdd#uF7X;;Qq z+z!a*KY%kH!@au~Jp3MMuTVrxjBA$q)3~v5PefLTvZ$@&9T6LN%9L-{hO?<$QvcN^ zocau)Ar+cp0O))s)T=a}uL3aON}W;~sr#w>yeFg?2HX{P>!j2^I2ptpzhd2OC@bdW z6R?!__VINGswMx5hh$oWO}a|-@(&mLHg?>1K~e*qds!YzE?4FQ)tqJw0XAH=XfvvJ z(y;dkk%YLU1Wiq89PNiUVCp}XFl1yo$lJ|8M4Hi;Tg-e7a_hVzj{3%q+y&RAnE~bg z0RoKn5;UX_YSB(x`4%EliuXAKmIz9=)oiQgH8_E0YnW;IOhAzY-&Fx$#*?9hRti$m zw}IZqF03(}6oTN?*Y3ru=QA!^Bx?e?0J*C_;%j`P=R>jBhwpEpWODx(XYct92i%2g zM;C$-HTn>}M=*M{=q-reBZxM78$=&%5J~hdN(52D=xub-Lv%BG@4cPLbIw`oJs-|` z&wBg;^TCJN^V|EruPf)_c4LAvG>U2aBypmn<6c`JZ}YXDSKKHT_Sw^Tj%$@6@nQn& zHccjRdVO}lS7q;wkiQ93yIZ zFwJPM3h76ZOzX_+N1WFZ*seu2i?!2WfuP%9Y6>@!kRA~dqjsGq|~ z4>+JSsP0cZ`)kZ3ej8XxOd@>&iN|WqKD%VwEAX*?`%v+4>RvawIBv~2zc@u=ZUO;4 z@;C742Fog?&Z<~%THQT!AzlHOsp#LhE2wS9ipMEAE1+9XHxeT|pzSM~`iC5KdP0L#ZODd!klG>=fp3C_?EPdADohnYykJs9 zYxI=r`|QYU>#9(lE}s?4R|amqEM`s_a&+c%Yhtdb%aA`68h#9?W_*AevdQ_f5W~1{ zI5OSs9RnT}a|?Kx|7snk_{PV{5uA!+YJvYQF#hbG^n}zQkU=4$VcGfl2 zoGrfCH>6u6aJqnjpw#;rZ8?2-Fn&XNtH8v8 zH@MEu+C2m|Z|!OcR{Af`Q$Fhl8M)ogy&vi2Cqk5aC&a|p0p?0TOEZhAqNc%Sjj&*B zF?C57@WG3Xl#~=h?3`Y)4IUI7iktC&spkIwq&EM@)fL()E8;)YE@>;4Np@0F&$a4QZd^^FBfU zf9T`Io5hR8t=Sf-yp{O1QxbZ&-Qu0fHt9PwL|N&Eirmw^b&`+3t6TSEMNXbww4DJm($CL@p3AO+MLOV zky|wz%eBr$T=R2};h$nuXbyROmQ}LbWz~ikhIZA#1O}wJa2+od7~}0YWJ@sNK-2`C0y&&0(o89ZXxmuJR(xh6&JF0p(Qz~a0J~T}G$LOYm+2sqn z*w*MTBj`bM^dhBbY(o~3(yxYBB+K>7s#YCm4K3~5NION&y9sB}6TTBJ9Ul$S)m1Lv zYDUCQq62}rN4cY4aU+qU=i?}p-)wc-Yq!GE_7f);9T{+mZ3{rqcD;hgOBIO;SOh7XOm?fsG@2|A0bD-%8z4YCjTWiwr>iDZS=>{y}GBi&_y zRq{@Xu7xXEW_KX&kyJQ0cF`6qSCd35fs~9|BuS`5m^@~~FuUOHv($A;KOi-<8Z<4V z-qp<{b@|iqMEOu4`i(0_Gu&#dPaY*h4Pp91ppxF0{C`9eS zyz;66ufG|~sJSF|1EiL{DAe~H6_6Q^z+q5aIy*u6-)b2T(C6~D_LBMuV3gfH*TP}@ zv@QR#LxDV5{LI_^&2wOM5R~zR1KY&rOgl!kq~4&{w@pDH3Td$Q!i|}8*CRwyDdCy zDZs!LfTRaN^(wz!8Yqw-#06?Hoa6M+`A*iB>%MS7ig-lum}l;m7OoSXjJ?u565|Gm z2+*30z>}Gd33~gx>~F!Qd^hfS-ri$ia&H)Xm>FL(o9JW%U3Lh!Z!-s*9vrWX*Ye^`*>0 zL^EE4xvZtGqOyUNU`?oil1}#vR4E4dS?&=pwu;bgS8}Y3abHVJ-UkN-rE-8BQ6!qE zGy8l>U##hG)jdH>992Z(d2uL71S`yrN+zb?yT5n1iHRX!QFCyoX2w&|RT)ss>J9*bt z2I8vfqkj3COK#9)^mOi59KD+NAjtv69BqOG7H4|^gzDWODTFARv+j&7)@4~ttzMOM z5|1jZBE}S6pXRDMxYZe=ikZ`{oCw0P(+Ep~5GGB%$4|^8)Ia0~Pqe&GuX=SNhBH#a0j{*2Ie!{w$g^^Z!g-=uG?^rDHa(-XY)rrQ_QX_Q~TUap~>(421tFU+o^ zShw-nXZXlT$u?-ox`DQB#xOr$(VR<5M3q=rqVC{G)yw{qydg|Kh&2t)-E)3~=hgo) z+WueXV3We~!aSTkIE@B-og}#J`n9%z9SEGt^u= zOeFA(D(Es_&FlU>G!ELI8o%;%apQzXHs1C-m>C(xYc#Jta-_vd{ex?KhoyMkoNX`L@)5_e*Jso#8!dePuxKZx4G5m}22P`mRc{rz%EWX6+T z`W+!LOKtmiK2flFJ@T1|$sD*2sr2?z3@T8BwL~Hd8`7W?S}yPOiFha$eAMLFW#u$z z`tIcL^(>Or#{?Zh=iIcK17nLh!CQNM=)Zp*Up+Mx_e|aEM4AlhQ{oYcdDbMcv=XIE zXtdTd$%%+A&`B94cLXnD>JssIm)xLfjsno1>a*f~ehY4|y_Q34IDmqeUA1Uy68H_U zTHZ>Ljz@+WP+tN%D;u`P&K~9^6 z&r|J_kA#GjVp?HXap_JH&py33%v>ck&cSK&S;MN8cfK!fW~ca zQ{j8|0(fxcS7L`juKifrhFmk6x zbGhZcqaPLHSaypy;tw;aLmG8=Xo0;4glGT#Q!;+M*0Y%H7a>Nis{xPCLsVYME9J;3 z=uNu13fgB~X@x|tdJi5qfv($jsYmSA4yG95RA*f?WKj^cG4LIqNM2IzN zatxJDbE%K+Aj1U`XvU=%m$QFQxrmdvSr`x#ESt|k17|NeHUQbL_Ujm|-)D$tbuNUy z8-jn0_=wvHXD$Ndj804$N0fx$wEk7tMJe*AGBL_45)@06=Tm3BKh}E=#``dhvAtI4 z2*G_#`R>a+3PF9s~=;?Y-HK2_CTYwXgjY!eca_Kh}$=Iw2NgPAT~H=t9+D* z8EwX3U*j>cHJaBIBA*rYXLj5D!)(H;l?6?~{Zs283I=OnVXo%XEJW%cQ(%C9uW`_c ziAiiERQ@Oyl~E=5xi*H7-2LazQXuuSLRUSavX^h21YSLSf&6@`Ce70u*<-_}^H+c4 zrbN|ldy?ruh|q50cHZf;9lg3t_(|W>sgQC2&`F7Y3xTONmIs3!SuvbuX`=P58vB$& zk1Bf7L-|%rXAD6Kl*n*OjV4_3RU?@=EN(aS+}unVJ`xiW$>@ zj;+KRM5p_+s1o#zkBr3W&XV zmQ(a=dKWZ8meXAlPfATVnVQ`2{>dIQ#4#k9SZslEVE3G3*a{v~mHRfXCf?q`v4w&1 zYXRt1ePkHN+yoxW`62e0Ll>`*&!dJiGsd;kE7I4;+>`i?0Oxs(E#gnr4%{o7II0Ol zv1aIG+2w~s8;GCdUMI0;xS8fW-clRSCsv0zU5Op0IV#{JpV|h=P@eYqQ2j{bn&^S9aQ=hNBZr?!#SL@7{m|t5^u@zS(ZYWm=o{m6B$_H8MCiV% z!;#tWw?Vlo!FKzr#}Tq2z@u-eK}OKSb)a#4oIxfCV!@-;zR`HST{eN{&98Wc$9r{e zv@&$iH&lvl-0YKLTK}Nlckf+8gr%r0$+$kD^W4m2Ibi$u%58t(!xZ)_2R{^2A9Pw| zy>=2BTtA4FBpb;TkH)u!#xL}e)}H!7ShG_G!6wMTjtnQ9dKgi&Un_%cMT&`dch7!@ zMfgLJ{4jHc1QFbw<#4y?{R|*$r$CZj6-=~{Y23Ovo>p`C-Um>_@!e|0L(B&Z5M7q7 z=t3Jdy{-a?K;K(e3tbZ1AdcOys)@=D9q}Bx*!cKO4v(F>L|`x6kJkZjE|i-vmE6M| z#pg$zcJbdBM@eikAmu@4@HPKu#9U9A=-dE*YJEb5pvJg@Y82C%X1;kvy`!(*2&a+5 zBY zs<}^j>C%NG>2tSB7)9UC;1e~ZM2I@WYvK6mVH@k_>?5aup__Pr$?^8l`b*BBS|KLj(2VOwT zB|OruS@N|7#q7>|l&!Uc{|DyF-1hVYZtRdK^sz6r3K4+Uykh-mgC>D6l&tuL(#axF zY=&IcGAj4SsH}D6^GzN7kLtt(#J9VC6TQpfj~E&Rn6C2~D$~+zIo%Ia2xNM%n7!Km zhF+>0Ipeztx`!Qe$5}IgfV^b0U^c?RM{5iB)8p_;(^y|z2evN z&*tB@SZ!(pE3yC=El~!ENc|;VRU}kl-`SjthjpY0I{8>0s0Qj8bx~Q$>s!qRvX!5x z#RBd}ia8lT_n+2E5MX?n2sXyiCQ(DIV)agy+{%iBb! zeW|8c)>F2*bD+PV;u_3rIhk65I6-00TWKW-FfOi9OlLvzDgsLgHC zTfU=b25uF^Jm->Vz0g!L^%zb?sVMk|YpoXhmJElDHd9D!?%K5Zlumc1O>FfcSp@g% zo&_|5|4x55qxT?4L({0`=Jk}C^H|L?@XBp5Y3?eQi=K9VLZ7c>CoksbZ}R~DC5!sC zwqfKzBX6UzSMgE&)Yp%EstSKuejwlaz#4?HZVHbc9p}Pi2jKh($FV0{#+oQtU|e$;pik5tDdi znfpr~CeiB7E@A}&1m{GoMJTmc@Z%9=QLoTBH`Lzm$yvQuRk{db+n~Gk%A%?o!mZ1y zm94*3W#gnhlN=WnOvY~#t0Gkcu#RANLc_jX?>UYgb)(|fptim7B5^T`BHHx)fRR|W z!MG5|uBx7hq&pp8krNue^rpeo_DOuf;?$Lb4&o8vPpHrJOqX_94YW+3q~`DUUb*w3 zEi&Nf-*#KOkBTN4IP(MB;-UFlFQcRi?gTnO1VB1Mb*h(qAIvsO6nyS!Y^`j6WJ&Yx z4{gLX7+#LL*r<^9GhqCgZKm9LPo`Crv-5w_hpPTS=CDoxZgBlR6{Gt{J|FZ5yM&)E##Wl`*IYE;?YSnj z^#^aMSu`f@{`-K4k&BHklG}EYU9wdO8kncD^l-P-#y^;Wz7~>lSIpocq;B)O#>^V9 z7P_4HGSq_*VSc8&si&4-J-)5;ZXEnug--l4v|*K9cFEj!bwrCFq82inGnqDYbFTIL zk76w#qCPU7{4(P<+j(;y3C-z)UZ;t9MiFEnX|bdtkz(ZOLZ&9LFD+tD+{f40-Qy75 z#Dn;+-M(>x@?O-$!V7VN!Pvl|U%kY|T_-{vWM4*n=E|1{vKLV^LR;h+WlcKQk`*Eb z9c!QQ45Ch^!Y1k(8nRukdUzc$T#miKFDjd^X+At>q($PJwnb(nb%}aTc#2-S9)1dL zB1oyh>wPm^EZNKldF|(}cF0RLoJAD0z((tv@O$W+&9oF(d`JJ+*!m~EXHPQ6ZL@ig z%S21tXctqElW%99H^n@%rK%bvp6{Z+ER%4LLrQ-|R_!xS87V!ldEE9h0;)*7GIXk* z-t8-EZcW&F@K+gU-}q{SKLwQRT;4RA3@xX}oN(GGo76~ZOrX+)TctP^q4 z6WJZFuxSgf+g;+zPk#-n!0ux!e%+v=i*MY~Tk_zih}F;-I)&hUoB8lp$Tu>nBdC+wIJ-zUcfXQf~x{hk=_9HRq zpMVQWKcml0w?c>g<0IJ@3jsfDfRvoaKI5N%?0IFWAe3ao*9yq;?Tm@AQMwJ%J zN)+@6wL&&& zAxNpJT#=!v1TYgr7<7MIb!Y6Eo1DvtE0rtMMWhN^no@$8PowoBuoRQw_55CW+NOmj z3bdm12RuiXI=KZ<%aZj}Sy0#IiP^FEAHujec6x~)Hh_hO-Y(z7Qs{(%sbj=KTeTtI1U5#kurY*cfB*-hGM;6vpg_L#yy~bb9g?$*75Um9@EMevlQwIT_=hwd zsh&TZ>M8#t`$HG>x8d>2I>Iq>vk$$?Z$llQ23jy%JmR`e9@*JxRIs{J%26LJV%T0K zh6xpGxfK37iQQV=t4G{gnGgdFKh*qmsBU++`q?i-`K*m)vcDjT$&S|RoH(D##&C>) zwdc~Sb&ORNs8Zj1hn}^?Vm)DU&%O*r!RTVHtirmjyDq)VEys}g<5%sil^@3h_>5W@ z+|qyABGSP>M9Av~%N!BHd!Acsj|>@m_99P{u?x|a*j8T#>XZ0!$`2cCeoRi*W2?L{ zL7O|6giEip9WORBf%kle(pX9b&oCwdBywPRFF!hB{t00h*X7HOp6(wf-y^AC-|45b9N7qJSh(lJb^@G3YEBS` z0@iF)!ErL(vE7g#H?+jMJlB~|oeIwmp>_;c60Na97#LSC9y}IT&8$Dfwo-qOA3Kng zu}^+BBl2Q7I3k>@ZVO96oM49BfwN>%wJMh0HW@}&5NtsD`v=mJ+&3}GX0SmcFYhbL zfL<(<;cio@S7wOw#l(Jf2WrXhbv>uz=Wf%{=qrTSL<5*6WO8^a?-b|0&Vv@{dahQ%WlMk(*nmwR5`lrT9M#4bURS@d876#_spuC z{|=pS2!O}`)|5F6A=%|#*01!}_rDsn$X-NmSa&_F{|#G7(ubblD#zG&SCv6$Wm`?H zJ5A?ncb36pTdSxQ#N(@1?qCAg@9t^MW6<_&sL9r5TuL15sOwKd^&R7uV^q}@Kv?-%g3V^r<)!cd>Rkvg{BuqZ zi6ht!Z@rOE201^gfq3dEHD}o%T4Iax01)?~%$%*reB|e8@8sRLIQItv8A)1&4wr+v zD^B*r7Qd(4|MXf51&H=lBrIQdLdq>|v1H>eiWW$>>N`$;Ne+GydU?CN zaP3?7OZB_eeSIXG=E!fQ`^IAqwB5|49_yf%*i~2aTjmYLrO&aI*X-EuqM4AIh6M!B zjwQ=><%X=7Qm&TeqEbWrfVQjy6<#1JcN3}q0A3Qga&@;bsSvRKj3mf7NzkIClN8CR zzyG8(Em9Xs1rm}_q7|KRpbH*Y7Jl7Cw#OK9VZeF-K8gN4itL-v6je+Km`k!F(sIMY zfYA>5AoXAxT0QHBv|v};n#!@B;cKpaQGIpVW#`VUy-^a@%WVCDM2YWdScU%MT@wna zx&<zpLQJOr+y0 zor$U=i|2pb&anQCsTkzRZ;$p>{uMEsJJ-f(&gg$HRjljtuq${rA;Y)g7=#1$KGN_foNf( zVTOrY5FIG>td5HX55kn1>>KQP6RR6+H$OXQ{7z2i>;B{K&*U$yBsdI?y2+UzN8f0g zZUAIBLX(^pka=&*EqQURAfb?2taor=A6Y+}0xQj6dAa!W{o}PLwy!JD3!AJdE&-K%1ed~t# zf~7PW-<$PauXCrqy#Cb2H5`hN2E6m2XKE}gMLm5n5N4MV0HKcA0+4W9#RdUeU$Jk0 zgR`KbFF&a>^63OvW2oH4U_<&M!tgFR2C5)79sYY>ill=9M>H<40;&o=@}QvMipDDx zAq38+&4qy{pA;D79&Hx{W_1D?Iaq3K8bi}5j=HFy`|fS-*2~c?!`-kc_PA7EsSGgN zq(K6SNn1WgQAc_3J-s&Ug?t3H2Xq-H{B;Kc2AXs}~pc%XvzFn%pZBI`OD;Fesx2O8KR9huPlVU7#&C@TDf9!&NACv^kH++ko zt2Xw?unE1TXbxerqy~-)oYi()i{S^^T}DwYyoL>pd`ntUGV~M>DP1{6xzjwq_bHXH zEVib!qTren;hIB^5iF5veXJpr+@S1+H%;1jD2+Y6)QuG6eMG=O{`CtrbS?v53)*B( zTZX79X2E@LbV{cLKfUag7QuF^U-UN-_qx^tEpt?p##+6lZ=9_K#839J0a!F5?F(^x zJmwGP$6k5bwTVZrfF;LVc_~wA2fqR2%303SUNh;lP}WlHa&lp?D@yIrA1AgNSV^E)BVLm52x92R3yno8dj_bv$J5*-xe?+d~_ zqTYr!^3K%Jz?5KF!jyHe2c6k^uOQZ*##o7N=XfdEcuX$LPm;dFsiM@}Lmv0lBVHO$ zgHLn{QC34ytjxAFU3|t_7hPx3jkFf9033NNtnTKGz^OUu^Mxv)=8@@gji5T^Y1PrL z>9SBL)rPZ29Idq+x9Wy4$pI$}m9`36w5kFr&zDTH$#U!(^ee?tG^(pJXCkk$hh>FL zvp)<)-B%0rwXmlW5*{I4cCV51E0P=h4CjM9p|!l%bHODyTDw2)qQ)F6Tlnauf`~*i z$(BcBeCJ->>f2<485~5S?I;%s)S@~Hw*D5F>z1r%sqJ}W%|l%CeJ=vD-4Ui3sb1$P z#K9OT zn!)%1TDffwhZyjQr4*eNO}FfO0T~+T`tRg=NS342aKzrBizdtgTFDOGOKHaN$FFb~=$M?)Cjaa4~^V25m|Uyvx5CMRVs9Td#h* zn)jjpQ4u0Wg5Z;ac1zv2YqIjo0+8%5;sp~=2R|OuoO`#Mz51x+@hIujy!+Coz!VeK z;O#dTpR|InC!7%e%u?Ed-t`n$#O#Le$=tf#-IrD&3z7Dt)9CVJCfcl;uwd()8CB7+ zp5CPHVL-JodH%*NZ;Rf;)o;*b{2y=#H>xNnDr4&YZs{TLVTa=3UOB#$yVb@W=Rgqi z;Vgo`huSmjl8devUD>NP^6iiy-shed#u0P*BIR4fgcoFs@1CwdUZZpQGBmRvt!6MM zVaU9ljrJE7sb`?452+VP-M3^A|Ml}xJ$b7MzWd+83`is?ESw2%IHOrfv}(~>$V;?d zrUopMWgS$}l_TSR3CQRf!Q-zc2%fpJriY!44;UL;llh4@owHsD!ao(d*_>2_(&6yq zJAOri_?Y?{uv$+ZZ`VA27>OTTfCic}2xV*~bb6he5nqVlVw6FhX{b3^8HJM8 zXULmOznRr~_-#SpxDJ^DSoH^|(YT?R5qgo_;=ODewpEra2by>cWtmETNnku6olWMW z{h{9)zEKhxbNKFc%N~_@jGlB1TY$4AU=A;+!4Xa>Jhd$B?Y0yGXeG27oo3Qh1U8rI zy?M-#zc2Pvz((klW^JJ9v)W_b6nEtJ&R&M36)^&lTCE_VrbU)M9iCqd^Nu)T$AB_t zP`Ly_@-nF|@mGba8MvvA-$uq^IG#f?WEHUb@ye`xZ{N*wJ)DI4KO+_&pNYCDH_4t` z&=@0DNtT*#vnuF3dDS5TE5_|sQBhVg4}|E6c^LsM3_hq|V(DsOLiYo$nx>{KSy2l$aM9invfy1F2~pY_+u53_}^Sb<#IDN zdxTP>ke=@-2Tk>F@oMPI9te!!|DMoF8r!HVi(h|NbRoNq?Znt4kKNfIYcr=`;N2m| zT7=3@C!u;Y6*Syj(AF~Y_fZDMz*#2$QJsv0=|z*_&4NhyAkk7Fc(ax)a69mnD4M7Q z;2e%0@9*zho}-n?6b(pwjg)nRrX)NcQM=v<>9)fm6rRn$RK;vjof0R++(ALV&bP$| zBwbvh@O=F2bSSdGkla#AFRMJ^tk?+3d_4L$ruKhfa?gtb@P`#^mr}JQQSwWQ(BH=x z?0FU`8Gv%_9GX<_aDdH?);GrpJlnKxT?o5t#0%`m7^rr$_f`&rFF|OaLo+dprS`c% z#m{i=DLbz#h_R_88k3w#fi>_w|54qom#LxWY6)=QD1@7`44=Z~{`et9^Mr7LoLK7& z7y-=k#7FiCM^&n-ZBUX@{WwxP5Z_bMmZuoNuQ4{euG;mbP4JygQUrDuc|0df6fvZh zIB#KYfcgnc|3O^8^b)m_&3&X${IzG>{d)bkg<>?sIbFt+z*Icw%uPY8c;#1P zYual-tN!*14>JL4hMNVNo*w=E#W{L83UPX!at+ISS0hUt-%zbp ze|KBak{#xoCLa|W;Zh&}^4>pEuv2U!tj3Us%h#jA?H+oh91y2sqe3@rnCWki=a4XC z_i|7G+K6dhSf7K}-Rn-;Mr}eMZQ6I85Y;1xKzkOM&AHzpAt<JzX!v)W*d#8=R;7%}-1-)=oCz1ZK6+cKIrf#T3}) z+X^m^b$%BX_f$v1m1C|iHrQ`U<%6357VkPnJm~}J ziDk>pC=b5h&sjES_4M{kfQC&_F1J_5j4^txb4D>O-)qM#lqmt}&&qn7Ei$Q+BR;OP zu>8NKc>X_JKL#*1`D4><*nj+-vdZ;8|F!kCTmyGZE*@j@ZG1W*lQ|;W8oA#cId53y zVD>|ARWlbadqj)=4P;HF1cvywUNx78$ztjM;Pt+te@2}1%~42V+)qIoy4regM7QqU z(BAVi8FSy@lZ>TI^0|56m3TMJ#rA`{#e==FGAi;`Q-A1~*4-pJJ6MUv|H;|s0hsS2 zHLV|}?$M7=tu1uo=%Upm=l-<#;3g=z6%B(KnPKm1cv;CVeH5LNJ+Rbuq-uid&pQQBXWKaa8Y$Y5083NN2$<~`pyK|nlgs6J0EgYMcImH@5Ai52 zCs*gIqc8C1`(8AgZbs8}*~l(<*ZQHmsB^4oADead8PPTml6>Dr zx`Gay;caMUtjgu5NFoKs&DO+K%$d{>j*hxt^%;SNU_lNQnh?iBvUTJq0Q=qR zpj*c9HI4)i?ebWLvmTIoSFG$)tfUj5!g5)mtqVUa$loPa^7_D(s8i@*-CnGfiq|ca z=hz3JMBg`oVRu6Zep*lQ-f#q9Bp|C6w_mKIyb?GyCU4!q${BjNnR5_)?vzLV&N_mF zFKMppxbd^?@1dnG@$=O1=S6Dk_0m(_MaJ*jw8*c*KXM&c)8k+)cqWnP*DxTpW$$in z#~nY7vi_NK)j$wxzAcKqHi9W1N!=GbiAiYoNnK`LnqIkMBQ6lnNme zL*6Aty@`sh4-YgE#x|a$4#7xEWQhoW)EWIY6mGj2o*UZ@IwR%aCPhilKB#y4pv5gL`(wCs@aOBYwqjGF#G(xngS+KrH>) zR_ca?Sddh+e=R1F9N&;Cc;-Msiqt5{hm`PT!po_&WQ3!jxw%o|iuY5RKc103X|fjU##8d$Yn>bw5M}6#9SJ#K5D>o8?#EFBj?TJ}TMI^CvtIWFfs>Yhf-!PA zIxGyyL!T{WNXAhpfa>(|)voJ<3J?=eRsFtef<8oBm@)xt90n?bQZ2n2k46EE%1+rx7f?WK&>X;vu06aiOnJn4Tt7!Bm%cV5HS_c~DeYh`5)Cha8gjN;HfW=e zZ7mUxqVWPgWAO2D@t8=G&;8QYaoj1UR+>lHrXEdp=x+=~&lx?+)=+{ms7;#(2aa?7 z^vB9)9?t=}ee%mq?$LJAea91I`p76K?5G9pMorI3>u@1K0#L#m-2`w@r19rp5Eq~` zZvnykATaP(fpuD=<+Ab|Sl0^K7!o?Sz)rVwUNy|F-!1KBS_Ht*H+uIKif0x@uBUG} z)S#^Yae7qjah@4Iq9j?a@I_}ab`fl0x~Ea`f3pCdGB-jE#uJc5UaKYfbY@n#qz+DR z)?eeNkT-+aW8#TTgnM>rL=x&8K3~}bB;(Kc&OD?^2}$O*^7Zwb<Y%G{jmiw+!HpV22LZBYgx@TsBw^u*V z#rwvC*K5wJ;^!wFtzhcMaVsUDoW8-Tb?cy4v_h3-kY2wcaGyi&4<+n|W^(3w!O7hy z?LUlS?)vGOY4Xj&jNe^X7J?sXujaRFP%-tE`~A&<1uIIT_HO-;VG>|~M100yq$mBu zDB1{PD3KE_es-EeCLXg@QmYs@v+<-kwax3-Q;*;+qwYV-c_{;T1a9xdSKd=qWt@cB zEP{@%`Hl+AHvVqf`wwY|k_O;Q)zd7$M*g>Hqh%a^-wreL3l!r$lCdbId6o5MyyYb8 zVE$r(zY?;>&7XPV`upErcw%nxypC|gvp?zfp|)6RuTxA09&#e9aDH+df9d}G3jOD~ z_iK88aATaG@!_&}V&!l1se6?5GaS*ou6Tdvjhm&1`+H9OG(u!zLGsY$rSJGrkG~mY zGbZoR);O9Yd}EsV;%;u~{@m9O#dcq}w=_#(Lg$GVi;sXdPXop6S{_hn@LziXMW88< zvbew)2D{90Qo?f!A1`SCzsAg>{wJkVVLxj$Yj7z=`r&GX5!$uT&_L%q!O9+A6NW9u zb~7D(H|=}onq+gSER~7%fL4@p^sL@>xBI=49sM?}uwEvSR2g-ggud*~2Q=&_G$LR3 z_yJEx%fIzX{(vKdp>%Nl%Se|@=_g9suz4oyFK=8E3fQ7Z`ONWLR&g^db5JLgwAOa|fXI3r|(+x${Pfr>zo@K%8wWTF>Wg%ZSlcoq>uV?Y z4nB>OR3V>e^F@`}Q(peBJu~d5s&WFyIlC;+6$sPgAmB)2BP?{%>6LhYsmNzAf2omm zEn<(F{5Da`No1XF^`4^uM8zdk+0!14?Uu843EZ}kI^Sr>1ier*GHGigTT2{<~z$X#YK0XeJz z`xntZq@0sVKRq(iPQBR-p0mQ=V?WNMbd`-^q)U84;*h;VfbO1>5CZ&~`Rr&xd8cF9J=4w)JzM?8p(NMPq^q9%HZM{xyr`3X zXE{uN97Hlq5TncZhJl-V@QCRr6RgYk@Lb2wMlt! z`2e`^CBa(9+mjjb?TV*?Z7BvvX@sk5sTT~63selz(ZpiJUxIGB$6Eg)F&t}n>H%0E zg|{e}DE4_XH}WJp!;B-!;WuWaX?`H$GJNUCL8vaXwD$7%>a~C)6o&eZY7c15=)w%M zN-b|#Cf@m)76{v(H_CMOcC&r+110kb>ToJ5C?#!<|FllUHKO}HaR2CO9VL+!u4QM5Jf-9tMmeu<<UCvbG56s=4o+mVu#QBBZz&$lyzM6vW#L5-uH;8l#5>)56+Xcz$WOU`1U-o}~qeiUqqK+RmfeS|8L(fVuNZJo{CLoW;rwlV)z@BG-U$R<>9tpof{ z{kmhiUNNyJ<4E+c4g^6M$C9G=q1Rf&OZ^2T=nzY;-6Q_A)h}TK#hdT{bg#4J)6pTI2?cOL&i!Xdf4Uzs+)&%N->I>s$rts}8O}X7r$aB@ zDtXyq%FEvuR=8q)6#a*Vd1r-&gxh*06=Wi{lg>qf50CHAl(K7e)g0*AE;^A82*KY{9fa(6_-qQWvrNqs*X_=du5p#d8)+NZv8ogG~ zZf_8eRAOl6!BzHw*iYi@f0-t~8OMu@P{}gLyf9|l5p7$N`FVB9f>-{H+ZkHYO+_5H zc9XQ$wLc|u878C5AGoE)_|v=JV?uVYH4wxgR>S~nx$bjFo*!U9#W7?G%M2R0FjatS z_WMgYQ>PF8k%U~C&umWoRb1Rz*N~h&I`&;tbEOzmWS#Fmv^OLt8-{eTrPT0Ve3pc8 zijT3POC#qW6`N)i)su>N%aV6iOl3m@lea2_{lZPMhtk)n!!yA7UQ4aTQ(kU`zB$IaMf(u zq0uw6NX2WrJg>)-l}v-eb`@_jMB{rKO(t8zIb~fwFHTEk=vg znO35n)Aq92-!f_qmOl+F={@>Kbhx>xXzZVYvUM%jLNY*6K z#N}l>0rjyfh??Gt_{~Y@E;i@GR_(Hr`29dzr*3?v2Jn=iYR$WQoruj<>+C6uF+KP| zVoxJi4Clawwd}`fhm}!u+SEt6)*KYTSN@~I9F2;i~-V4U`E ze?r9z&rv3W^;$MX=?x&8vy0#ZrufxU8r0+RE&oX!>jtt)YsM-l9v)fs#V%90z9JYLmYkdl{C4t#IsK+D*`bw(nQFQ zEj821gYn{r3sGfAT4n&MuR4ZG4)^#?+=`@j2Z5F#tU@@(XP0VcLtc;}T=EHpv!^dW z)R)4U*V@cV^O>ybvnr)8-Kt;ktm7k8=vfZ|u~AmnDuNL%bd5A(+2kxbSM4Jp`?1zH zWTwzOKkMlr{D4;|1Ef(J&ZjnIvATHO2=d0yo)_2tahH#t&l~?_Ud?L>0iojur6Ks8 zbuXb2<|Ik7X^l)nr8bJbf4pqA@LgDY3cf;Un?*#)!{F2yR4d8H2$$GyU8*QLv)BPh zy{3F~oUE~YHz82tm-O&PUTuuKKVGv>pUwVZ(#!Z!dxDV6PV(|I)%hLjQL%4oMtu8I zMj+8&bZt9#9bP<#tH7)xCaQ(K!D)EEokHJ?gWB61W0gq zcMlQ>G}gGgL&)%+nwgvLo0>DH=JL6Js`h{HwbpMjQVdq#v+m6Clp*6xH*IN}0?Dpb z&17OH=F7nEA7fm`O$htJa}TkxeDb-E-`~f9MjX!V<*A09ozMz#x91r3r%`V4nMj)2 zE40Zl7e^ikAOAF~B_u{{+FL$~(G?8PJ`v{r&*V_V#9rw$kmS9qq-R-3=_Xd^k#^08 zxBFzEJ1mP+SY$-(_J>-R^EB@3+Gin3WCkan`RqF*(SwP=fA@jZZchRE+1pOL|J80Ne=ie7w{ z%AD`@3-F6pA-(ke4PWPJF#MmIZqAQyuAiQO7Tag^|Hzp)20gb1u-7@s^bJjWvFEI% zPR2oX5n=IPBeBLWTh8-OkNN)|JEm5=ohf-=cUSAr1VhiALx7qaroFBZTxNudB4tAZeH)bAPcJn|}POvOXb~_ge83ko<4a$taH9#lF>H-KQ#Z3L^-iY6ZL{EHf+`g|mZM^9#z6c{+ql`7>w)qA(m+Gv;}{(ooB$ zn)wWYShqHk)IO}m(WbLkAYAY&zr%&ezmFhwpG8P*RxR5Hg^Pp}_6zQ@pUa}-Y11NK z%vG?e@13Ep*v#GyK_8{SX#$1cfYF*I!KsmuV`Qn&h~G-}xB1d(=_Gu%*73N-ioW1f zyGqhBtU!LRl?#Bu#Va!gnD<5BE6UCpNoR9;d<=N5ie%+*meOF~j_;>jhjzyEXM%|x z)PoiUARSY3PjMGczmnZ$&H4$TvG_$35{Q8TX?1sjyvA!=Z1n z)y7)Z=o2s2F6c9hRe>4Bw>Pz_F*f$wNnb|01P6^Y(gb$1A1?-A%%&Tw4F0~HD-#Tx zvn{n(?YB!j3iUmQez&;im(1(2*Lz>O20v-w2+0ZW(dw;4molqe2FcI`w zihfFFr{V`kfhh@+R;@Eh-J|s|%94umXr~KKLZqg{Wc6fKBxb>@?2XEzZU=z#?I=va zIlB8ACwrOC3VwY91*%4+R(o@x1Tqox9D~md5ImBYx0?WkZ5-;EofSq66%N~XN%s_ z$Q6zx7=SqKK&9KaY;%-ltBy3-!9H~kVD<}VY*(a>nfU;7?&*@_Rpja9qL$!UWZ*D#GN#2kGNAZZa&`+skAvxLv!baGMOY;10mD3l2hqD_)aDM^ll1Ztz!o0|oDu(N zJ?RhM>IfO~RmZN|W;ZJc%M=eIE_EC0)btd6MrLfCBb4w*`N87la9xqUK_vdjBM#;d z$|o>SJf=X+bE4ULg9}w3-o4W$?w5Af-*{5O4cfXvpa{Z!6|;@X*l0-CSV%M87l&bN z%qil2fHrjH>4%h1z~bS^)d#Yc)LB4~%8bX{0aAi&oWc;pusw+Wk`tWpXg-oSU&Du% zG+pLS+>W8ZK9j_xS6(g0^rmmuqWiLGZ3E{;u- z-X4PkVNd5(hlJn%&|EjF8WCp>J8j z-75d6+^=Dn1@vuMd*WCLZ^h6lXT0>MGF81{I>nt(-6|FACvA4Jr_YGej`VmBjAF7T za(kLcLYVHyQ!=^!AF<5uQG+Fnhs72b7teOuFJJa0C0R&82M?L~kD2}}YRg zBY%C3FJp8{MkHS^4-u&!q@K1&dc0^f{tC}{gWt9%<3ByS{T+rOzOII=)v@QAK;v0SKy|CH2xK1NYeU1yA(ba-5*3w2+{)1L4o20lavDz-n__d#24 z)H4ce_y0pf|DH~jbUyR8_?hTNldzWIxAMwrca#SA-@ z6W?+!EL~UMYE&ez=q2%UzWv8P#3T50SXx&0OpWUo__lrK<~B)8 zu`%y=hE4TX>_2S1vbVhH0BwZGsL_N7OWM;c_21c>%o#t%r?<5HIjX7GcN2eOv!ku% z-5Ijre;i0|{A8O=*d*$ACxXCc6uJawx!`B!Ky}X6xI<|)FGt4DRJ}^b`kzx&mryrF z5>xRexfO5*R8w>eLe)+f&mBO6*mJm_Hi3%|oQ2=SLSdNc>ecUdl>azfal&Hytruvm z397$?IqHHzz-|tZ7ZIr1+N!v9h9!5|1AaET62l^aSv8K@Yr1uXV?w@5I}ElV_b~wLPONt ziuZzIsQj3OPX#T3VrZy}V)rpsp4Tr6fdw1TzVBL%V^$4}eZ%ZVc68Y^=L>vN4JgVv z*|eRQNi|f;>+V>rsJCssf5i8cms)32-~+8|6=HvOne<)VDC){?$Lvc<#r(gS%uP!-a%+H=LU z)#@WvxTml{d}Q)~`;<2TVdOTkrU-Z|%T{&Y{rXr9*UB0G(>yQBPyx%?9WQFzbpArviKS+>CEMMFZaPo#87eW_!DH?0s&^1f zzo-0~G6jv%Pun>QSPw|_8Kg|pSv?x0n_Z4B<|608q?DeNaQ>667}JSK8+zU2J+D44 z-8q0HXz~y80l||tfXu8ea!w7I3Hb?gixYijq;E>d1DbcC2LYY*%;cs*?@Vd9O zd+-Wl|MWAx*Tqixz7@V9YDkBZbf2Xfw;v_1_`%{Y(=$=WGKYGDHTQCUDft1?>lTtv zUq{cxn{9zx9ggn_2+ZGXoWTbI+r6Ff%Fn+^uk~~8#W51_w6&POoa7Ff8b9}Lpio2k zq=gZBn%eNTvTc#1_NoS=w&J7SnW+n5gGoTaJ+_3s5BLqdZ{5K>xHMk4yA?bq{w8*Q z5MHXM7+1r_1ptZ)4P16c7C7=@_n13@2je}fSkTbV4>?P3c(&{D8>eVNk0#2U!WzKn z5?pMw5|X%f7!#*1VXvF*jO5>ejWXPSJ?A43i+58haV4`~gbg8rZHt9Y+B+*P7*fr3 z2TzND>4bUBSk+?hzw2kY#HePXl8L#!gvc^vaWzd>c7p|f1&h*?ND z?pB@+raRD?hgT3Ufr0ZF=(?rxJ!f{T&F$fc!dXrje_L6B%ILiy-p3Pu!G4)qXvqes zr@1q#7+VINShM~1WKMGX#jHlY`0r0RrMh9}Sf)UjXJtZy8qJe%Rw>?Jtk9}2PW#Ci z4(GKt$HB{IChw}u?YyiY!W=oqL*0O5x#4fF!Tu~@41pu|+F^j^)FgHEEAPLIfA>X` z;ZR~ad?QUm?lxy4E@YY*F+&FOZD{%Ul5PI>uQn-IB&Ha$HA^w=YrSn+zSvA; zr0Tx)&&P*@{kl4zNumTH*h%07RT}JpWt@XJjOSAu@ipsd z^rf;P>q}$)z-a_U48&S`N@kL*2MD-NV8LYBLzcW!Da@TN4EG9u{xIpj ztKT}?syXWy)tpd5wwl^F)M&qdZfQ2xHej7C>R#Tt(SM4zF_KYi7$ssXg8Q8F_8UE` zo;$ne@x3~BUh+fc6TDPQ>;7_pV-YKCq12hiB)VkKh!W> zcpf+0vCkZoAw3ulH*@!Tah-1-@;_NmBe4*cj061_ZvR8OlP#UbwUYna@$v@A!w<~Q z-*sB*-Z~$^eIo+xaHwrJLme^Kp>HMHxo)#_u`|Z(W`edE_Yggmz&W`7u z<6KcsM`K>}pN`cp>f%%h+k@Ek@eSI7@3pzz->gK)Emy%u^uqiJ@4Q(loc##>Cue3P zOSU(I`}g`L6#{-O^}OEh`Vm88ak$U94V za|*%`SVx61&reskgpo!nY`>+4%#jHKspWMw%Fc(IHL88tIhOM`<~qi)wEgz_deE@Imb~t}TZ6f` zC&N?-*VORdRR&S!WN(8+zzeyd-un>qG8${cJcjeK8TMX!aSAcZc(fhBINMDUGP}aZ zzG$(vQi|Atwe-Npe+~C}Jk3^~ZTl;A9=ks^wV6h6nxWC%H0Gp;t|Ro^p(vbv)Fvh+ zcr-jT>;PjFTK@M@c+>#2_)$YnEVQKeXi3rtC`qGZd;RW5Cpcwl)j-ekF1vu9e=AP6 zhbR=0&BAM4>+|OU^FBIWpS*OIXBw!4J%4v?O7OOPg{G6BrR%7OUC{4lvQ;L>?srAp z??AWc=((V&JG#vLtOlMwZW8~Hd4cWaPjv{WTXv{ zJFeCJS`g=bMQ}3a%LILX;k3M7WC1d<^Zhf+%>78f$vgdTdQzyhrr2vg6g) zScURY`=GCJYbT20>_6?VV?=WPh|*}4Soq4lju^Cg4tA^;AMY#D1)w54Pd!l0TnCmK ziN`je@l_`Ch$zcD3py4j9z%eSc`V+>;2NY?F+hBA;*G!KA68D$>@TCEo`c!fSwomP z*TAQSt4QYH!F|QmP`u}$DbPEi4I@U*k?+&HgiQIqJu5$Xu^@5D8C=7qxz}LkejUWO zX4WKD@1)iB(|gS1xqJ5z?`PXDpLFBa&z$`yt?;u6?O; zPq* znmNg--k_+1#HRo_j>M946;>V1F!QMetWfTs@3%yy80Lop25~=umY98L^OuFAa6=vN zuI^G9+*XMilQe_OGu<84L8kJQICxY%&dTGSaEbJnKwjo^(+Mj|k=~y^w~5w6eBBi` z2+IsO_|LZa^~+~fbYFsWUH$b*W~+{+}SbTb`}Mf1&WhW1%DTeD2EQUt4OU%fKFQI z@6ZRNMaKpLYN~4@*`ghwN~wPjlX!Z^QX%f6=3T*XG1gP1C?Qc9PdCAziCr5N=j+g$ zR98OB(?r1el8msfeIPVdnVF0XvdNFOhy%X!TgcKs3b ze7=$Aw)G^H?H%iET3PG;o(PbQ9pM<_xj{W{QQFYzTJ5|2vH+69;?JGV7tLPLY_K)= zWt!4ZVC}{QOu4yF7k0UMwhUZaQQtz+mA(a*9D(^P#YG>#8^&~ zv^yasQS}S_GqpimQT5g^QHBkS6@(Dtkz{?!Uw!?T)2C65W>~dGOKl1wcji46ca{bm89_@WtnrFoFop6{6;{I}Cb3TctB%c1ar{Z)^TNaPsHJ zejP*g*?wc})iZoYlaYDdcbWgYlj1(`X!xeD+?pY=_ASSrcl+tMEPk%`c)8j=`c0hz z%#Eb-VZPHbuvO0XX?m-o=@8?@=k#>2qnKs@s;DCFFs-+DMbKCi1#lV4gAyr0gIAwI zBPZ`0P|5^beJ}L*dPwmwVrM#N{sLa}F*DS9%W`CHG|Z>zxbUtR`zeUOL@qJv1jHD< zX0LXkZ_RU*qReO|#{rGn0rf8n%fx5S$pAD3 z{_8B*BEACk=SocLiQg%>%+zn(gfhTs$N*-S?<8MpHtETLpK7NIHAfF@7xrdxX))kf z=NfTge1N6~y9fdbUo*P_-2f4N7Jb1>S~<8?mn}v7#$&q!$RBa)i`Z}e7BOa*e1eC#@)btGnGU@4%jkMnRX@Sn2V7C=E`z9}Q}Bj}OBA!> zEF3ku<5K$Z^R=_-fZIAjJc-ZmiFm!ijU6HMd$RqA8j<-5Gc3o%@!wNQNhgy_it=i z#8nbZBmT+;z@9pqcG{wjUn9f%vubqUAU;GogDIbOugGx}LljqK6s|7%H|Ej;ulqsh z>Y}|c_R&=LZ_<=4j+94kjymC*cx9AtcpRp*fu!Z0Z8I%wa|23w(PKSJPosQKU;ll zbos*4G@Tpc=T-`6f&b}!M(=n``%?GMuEs`GU*3I9-gMUVD<0`D$3_-0i;q9vZ4r|S z)JV)&u*LS+>olO1ej*i0Q_CN+v<~mWJCm|@KFTaIw!{AM)f-!5u215~YT`RL>PwEI zFiUs9Uy%>n-$rXbRf|+F*TiqU?lA~FMRPDb5q^|iiArg}Ikc1a>fQO2&PEydq*70G zu(><>@WV#ELb0}ZO{7mC09vjn`sue#PrFCvi2qS=Ol%zk(8mVzTdjijTh*({@Tq7R zPh3k(@Po{*-`or(g^a3fd$T2xRGO(=JNV?ZXK!o@RHWt`C;BJ^rq_L4TrT}fwJZoU zs0=*M%pWDV|LMd)^a0e(6t{0?W8flyIkId!JdT;p8M!^1IbYV=l0p@@HP+bf!}QgD zE?~$WQ|Mil04^DqJEj?P;b##IoF4Opx->nFgzY<=kXB;(-<+DL;zOpYwMLszQ;8+W zPV|fG=Xj+w(Q#vct}$sUJ~9Wh&PgwY;c>P9#fgH%6yQtZ zDkmM0Z;QN;G}`IGovE7*CO}t!V89|AMLz!9@u#YbYBpSf2Wmc+U^woOzadrMNjxTF zw`Me4Fu&Vy=v#wgCNRHPf`W_&1`b`5eIDIu2gxv9-G-9wmGGXBfwf0}p91M)Va5IQf$|awnt9wLNwz3#N%-vxqWq zI|7(r1gK}WWp3}jK2To6_(W9$#z;BTI!*EGv|&@mVb_-#G#n6-sQz_)%zin)?lHdn zkC?BRxah~X%mIvgX!LQi?DAN_G^I~p2Qc;! z6a7hP2EH5o?D9*igeKGQGU`;lEQ<{N7D#lZQvA#97UNvBH&SXqngAkGE|0gND>0*8 zz&fbm$G2tJ->FTlO(eNoSjICORFL44mUsg^TEdb0*VNSXpqmM~#3_>aODmzWpcId5 zM_kX+u94Ii`K$JX5k~9~A)4t2Hinrl*zOG69n1CN7Gmf_4T&vDyMJ%V&PYydjx70J znkFXFgE?+EkO@V$*f&2G#;*WFaEJKP^bQq&gH@QWWQ4C~U%ryvt9{WV>{p;@`XZEL z8P$^y{YGtbojx(iWvhM3y7*CdH-qPUeHwZUt3@~o2E$A3${E`|{qdR~+2=?sXqdx$ z?IV7KO7E2&;J6+W+sd2Qb^Jnd#3a{qWYUqcA-c9XO)E7~=(``QX< zu&4L<)iokQK_j=kVu;%@cda{DZ9?Xk@VYyAbabtQCs&!w5$1|PIi{e3<7{P{QoAkH zvzREjZV%%oN~wf|Uv?&lP9fbE75~o7Hee2Ff_CIpuinFL4_gaJ(0vnQZB=8tE=6A5hBPR*dHNZPEsP0$eKW9&Ca3soDu-U$=!E4`^0JlNB9YT$B)&XVcEdUEYhpaG9?FmW}M?dPsRa0iqyR7uZhODb4sYR40lyUx@4V1mR$cu?PoA zxS{nYdxN4EBIgRuz3&C=y)%30J{ah-Vu&Cp4$`;kRA%zzG%X2V^X+ObUZ-{ zp&oZds_|+~%tXjp#mkw2?=ZZlJW?k>%thSw2dl4>yDxrE@NvdQjqw@|$thhmKT@b? zQ*mkC^@ew=@qPykerp6;J|jc=tQ`W>`2G1qQ4Oo;Z&Q)-)|l=i@#qIWzIlkTOpC!; z&aya-r{VdBCV$fkBxW4Nx>;!AOdH<*NR9KZO)p~~=?af;_g%m(yXeHj$&dk&YJd=3 z6r40l0OS{m5hbo5R=1vM1}fEjC>IbJ8-ZWrQ^kEG8Vge@Do0)>*SWRXjV}N8F&75v zx8($h?sJo`o{CE)GfAYosr*!yj5#GYtcjVw?9K4x7o;WlvR`6rA1~!7C^+TN6aWpl zZX!Vs4l6MtD_FnSlw)ln0h|lz6y>-}&b_lSr>|@}&KjWjlraX@;ZwkN<+WeQpHb;a zpSnEe8iV)ByaEOb#^2f?5-gI|bu5GE6oM!X1}$eu-hr2cF0I#Cq=)vNKV_j&f`qs% z2-kT#PqvgFokOCVmEzu*f@c?aU;PqDWsob<95CLw_>^FlCVwAwWrW3686@rhZDr=C zlUxkVPO~ZHiDy&(P|jxiFMu64+D2;Qm-awnZ3x4$JS0Qmcnr75;oZs?3z?4+TCPxe z3kyFvESRM>we&bsQ@P~XbKR#V3PTPxG`FA@$VcbXlg|QXPg| z37?v%1SACa@uU8h7mlfNdb352SwZcQNg&h86T%jyyhJjNOqSBhLT|HdS1I1^fReRs zfJhfCc)~VjUlwQ?f#LcT3koTy%pHDBxDu>8as`S>MHR5NM)FN?rXItI8eg>6}pb|-qjWz7^#AUIt6Bq;~0RO zorUN6Jqo3xi}S8!_=KbynHtVdUfc*LVdmIDAmqs#o()EXEYM*$WjfYWmBn{Sa0-Kr z9L|Q{ux?}D5>(5;`O$){@xQFUdX@fozP+6S*#FUCPbFv)*ix6XHvVX1O>v!hI(29A zTvP@hWbTHuzq4}vbLtOMWF%i4;*I6j*)N=;s=1!idCEa8)s@;q5jtTX7K}{V9D-r( zVMQjNRWv)LNc0hmk%H0e$EpYksHnM(U09VxE(=A9KJt&45UsI}9~qKb+=G8dd;Y3H zmL5cq;uA1W>bxcM<0q)q5rrNtffHK{;oeb+Xv}oyKHaDC2wXu z(SQHG^uL`5Z?~ylJBnZhDqq%CKhDAR5ZTJ&@#tMmTb${GA(*AtbhfRp9pV{`A!nY9 zxJ5FB%4aRKmR8~L>9_Sf4zQJ6>`0^^o6^_=F9&OfcVOt+7~AotH+(qKpSbV67(#wV z8GBIox6*x&xtkL+G!2mpZc8fGyIDBt>)iSu}|CG6B3}8$1zutc>U7mdU*9++1Bz>?&rX%!~z`L?8jKQblspH z`Q!q=Qd7!x!M201J<=qmICS~Nh@kSFLR3^O$Ah;brmW#XSki;<;2J{$O2%jz&MR$> z#V3nMR|!QZD!U2JUSG$%%KlW?BQV+)^Faa5KxhX5-VN$VWcnS-z4I;mYAza4EM17 z`E`D<3ve#)`uf9(nN~8j?9iswLnm3{%+F`-6|R$A7qC2p<-uG|wvNh%RSx6C#0!!QKdX=5M4V|0`jc)3$? ztvC#2!mpDsuetrt(=BJrXimNKW}CUR)H2~b;;Zl3OIpKS0kjAWK5TO+7*SW5IaH=@ ziv>B&OMdaYW9GO>rm&Zhe`zk^QEn-pPrCr zoDeBB#OqE@rM&j22lpxN#N@B1zd>j-zGg+`qv)~(JW{%= zYC^G?pu!w6@0c+p4DB%dj@FkOjmWdu4bqBHwEZ^h{g*83YZ8al;>V{4gXuEryOR$k z?K+S_G*7J4yY}TeG<*9F4Q3ZGM7E%A2+7Lx9;F|RQKGSoliKcBmfax{_B3da*Wsx# zObY*nw>SI=k_@Rpyg=)CX zaI~%Pk6G-QiGb*JGOzHC~Wtq)Fi=%{`d=nG45Zg>#UWocV zVRrpx@O#2$pJ%HT-L8~7Tb=A3ZvrM#EivW@GJ2(k_fYYoE(a&ah}t0$V*2ZV*Ozd& zSIYFcWlWuUb2YKdYCbYogq^Sn!5@6;0%flyAEqZ6cp>vL3Uvn8OMbkR zkpjLp7>^7l9OFUQ^k`j*#cs5=!WrH-o2y31@XHI$Md?)rAfXS;IuR z=-u?>2#XJU7qpnfpC{-0EOT>A3q1$<*vh6$+3tHdfi8rWjW8v_ovr$ZC!AQ{iO`e= zltcWzcdKTtAyPv8>t%j(uKUy9t@Ao! zNNq6l_6fJL*+-Yd*g6o;KU?K=>ZoE7_S(BT;U?Iz*JCr)B5!C`*XBqHXE>?@%qzzD zA_ka@xjjGwSM-((@wO2VPA9byQsIbF+Ln(J#klbUyzOW$TWO52tPB2KP&9|_)BaHu(cn*-xpp(vzc(j-YvLDI6cIJ-@gF7&&XN8}4Z6+eBa5$`wh zIgL6~iJ70(sn`uS5yy>C2lQ0%BQ_zUUCo9TcM{(Ge>Xh`B2zV4dJL++$gUxHpY=1P z+Oli_<}5A(-|k*xu2oEXKYXbXD=6%C&}4Q$V4b7v@5i? z;zN=-QzhD5o^q{ZuY~eeRhSj}yodeRmEe2Pj@+gd85SGFmKFsa>Xg?CxUi|dYf(If zmmRoEeWFErA)o=nK|9}3QW4VbcVganekED)ep34DWYad1a`B|OO znaKTk;=nY!5*6myh`(CPWtryaLDT`n#7CZdE>ea4n7X$%~h`9oM1_v-RZf zc0wr*&x@0^fHct?ye?7C3JM$-@*Kj`HPoDS&d%8IBY9mRecYU_$z zu#V!f4OkTUF%Ih7x)?4R)<0;!m@QZ36C+?fe^neD`RY?|pVsF&mA{n@Uj)yxz%ErOoYemN42G_)ZXAExxDRg25W<619!#%}?D%H448k+#?)6deU=A zPnAp^aEb-LL%=;?P0 z@17oLcSKDi;+`Y+ww6bC*UN?a$NTk0R~5 zh{YfRj=|5Hu2IgGxSjxLK?+2GCPqLCETFMwGt3WKW7Z!+qv+oJjOXr88CmfAcf4Etw%$18 zYW49Zt)=r_uAIs3r0Yy!)@NiUCUq6B160;BM5e1sudvAEdlW}@4kR}5;bRf^!VWFW zd#a)L7@ZP#gWHFKkm!Hk+3sm$gmb51r8^eY199W%;3#%j;^%gj`SXol zYdTV1^KV7+S!@|5#`gky!C>x82%S5M$Hm(;q)tkyPvh6P(UsaB{itexPo<(k*iPuOzOi zG0|+yiZiX+^-8?h*)!irGo@>9%z^6?J5o0!o_&a~cJW38?OI6$uQQ&TL%;r&?X;Jy zgP>hzn{hQiIDVWK!_gUGPvv22?%SqkN^3(YR~-!BI`E}Zs#9qUw&@pGcSv)A%vC{b^ll~6At&W()|ZM z+dkYYeDOenEAnLvE_2Ayp^LmY+pp{#xg6PULco{M!?Z{lg`T*??ZmP;t!OG~J?|x+ zBwmri=6|u?%l~be`hS@M|F^`w*%aUFkJ~AM2=`sZartJI?pY>l0LuhE7^hJHWOwRz zwDY0e<YK%$Ad{?dOn*63vxUh4qLarT8G8rteIPQ{ly3YO{2Z4y-ZhdUlI*VXM_r?Q9&_;-o zMeCPRN!1|jdb){y*^~@0x;q9!L!?mrE(kItx{Tf%amt7DsMqMQ&iBX2z&&?+OwJxP z1V9ouHia@n`EKN}sR&y%WpMi^9}1HZl{-R zhGEjIhz!xFhhHyWiSOMw)fdcP697I)h1vUyg}%i5{6&U5qrpS`gU9pjHZ+c2R|C{a z6o0BL+4xrw5$#fNm+{Z&w@O^UZlO@Rt`3&qZ)=T=e*Cr#*<&k=CL@r&{dHDJr^?=t6>xvUDA zLf}-3dqq51ntjQ+!q1g50G^yLP0k~K56%R*XWPQ=(NOvN%djpg+vR_}oPIBWokpg804PWGej`v4fpv%ojqK%u z_PsjV)`&q%;Q{K-(i5*xTVwLt3junj=GCEEj(4S?m) z7I#cD(lu~+Q2G*5vgp?4f@lx$*VDQvKOC&N9Z&1~h!dnK->;>wzoZG3=`lvXRY=am zxEtc<<4(7el)^Bq!WlKA=m@Fx{Ac$v1Tz1n`NxbY#y^~13*1G2VxruPxMDZUc3=!7 z;W7eSPv@%brxVZP@2*HWTVyXw)3_e*#jDd1D1RxW@zm02w1$@RBo~DgZGnw~u;)7pg zj|Rkq&yG!sZ9eQ*fFpSo^f^{oiIY17ob%`;qncf=8>5HMGImtAqXY27+3sVVL!}$# zh2l5Upw5o%4-a{>-ZOsQl;)C;f=?N6zTn3#ic#HzmSUyW@wED<1b*^iIl}Gy2SGi% zfQL#xXy{D56R^xwINoPfKEqW?&o^Ov)8!u`Zs~KiVIPMB?_a*HlCnG>UL?!X3Cz|_ zl@ej@yn-3W%9==LrQo&Iei`O{j_(Pd?x408&2g9FR)$yEo9?ZM(b92kz(ci|kwM$u zv0rODe}W6_|CRl*&yx}+$TSWG?F>@9*2&b;sT^oMVz1UKMd;PB{rY5r&h2!|%ADH4TH{1$(T+wed3EA9qAu$deCqM} zml4>VA~Zc}#d4x1C7zB3;ocdA z9L9{q0=UHV)2S8iN0XMG#G)&22TO0x?)(W)VOjD(m=7k1jkTrHm}bukMIYZtaqZ|L zh%JtUAngp{9cpzLjwyk%vAMH@&N)#9ydDW*D28ck2SKwj@fCklw1tyw%?Me4Ogy(|;SFX4;7eDcLnER8WDhWb&>?umZ zEOds_;n)jxws>1)qiE_DhuMQgQkJg^xc45QJ+=cc^=vuLziJyu)fhLQnNyNN84R_{ z&j%~8kRsA+C!0cTZa-sDp=@Q|n{Rg=s95xR?OstyZg+lI0-5c926Y0~-6lg}?$e_P z*dr8Mrt0{Zs41gdOBz<9plrzRGklC)?o2pJ_+e8O*^e%_tJ3V4aw_QyWG4)P$A+*^ z-?T$o(rjTMvvqGPU~v45AIWYhgMFk8Y+gj=qkFLj`nh{>Gx0@$i_ItE~1KF+T{w*=;rbG70;1g<2Nk76-#gi=$xje$q zIKC-`vAYzd6Qmdy#h;1w&Ry{x5eYaEAz|@n z|H%41k=yE11xUtEm5UUunGtBfcI3AMuRM7oe~E?WI>s}`fJ#xoded)B8ttYgM)#jd zKc@#b`@b!fJp;CL%&rPngyy7e>RUQePEX1$u2Ush?x2^+C_9D~p=fYflN8cr= zJQHYVJeP_q#i>G7dEN&^-V4tb4hq`k*BR-%%xg=v%Xa80EHrh64rOyCI|k%E2k#11 zKDOjc)r}UbQXZt4b?~p#+P)|4CzCcAb3G0u*iWZKl2jAFw9q#MB~y6;H2M&6OP;BH z{6W6U9`^rYn%F&WX9Y!@mr-yS7UUM}8ic7Z2NQgbXa#G#lb+~W3s;M!$-jo*b~W+$ zaDOoHZC$^3irP2IqrU6-@t*W~gg+$WF|$GA%xJtPw02l&LV}=~DutY~oIU;Wc+@QL zm@YuW!hLs~Xv7kXazim^% zK|ZW?WBIo*(qHmY#TP|W;9WT*X2+~K)o{PtgAO~p3flEroaS=+W7l8CadiV8Y~aDJELO>V5ZXD^cn`QkadH!}t$hW(4)qj>QjGRFKjfZ}LXzphf zG$Qk599b{<5*|kUb-^mou!q1z*e{9Bkrs8ljmG{GNJm4L_J+)U^(?i+*G7_Sj?cr? z-bIs(@!OsEm3-&W*R@WeEi$GzB`YzsI8X)OmgJi{)35`@iUw8U@g}erZxQ{GS?j7z z%p%ey`u78cG?ilRW%8>%;f}zdXEHU@qwJu7U87N@0G^dmw+nSqGoMMK_&YDZn__Bg zU@qXkwxDs9VBr$su#$d!wi^KR|J>*Z`n76O-S;kxcSU}b z4_o2wHi#=jV97H`ygJ0WDkmH%+v?>~z418hS&AF*KuV?0sMRlKUr0 zQ6zh($%)_GzmxzjYfoa3!(7BN%1m_M6^NU^U_35ZtS9JzxLH+fgXD5jLBoRha7yot zfi2kMsMC*noHOKO4*!7)l2LV{t#42`@MhtE_B(<-R%hr40b}k!tiJY9s$q< zc48`E{>6tW^BFg!OzGN5pPW`VNyK4lKlasc`X;oeu_GTWUK5*-6>1TBtl{EB@Tvvp zQVNGgTuc9*+Bz*;Y?A8%Gygl57PIFkw%){P5OD$(AkBtc&-DAUVh4H%y$B9glT7(k z)LZ#$vMPUaU?fD}Ne-IO!)#tk?HX0;*Otw%k-f}KSj6L87)8g-d}LW>EB9>*0E{JgeckRR!`s z*XDaXJ=!T-`mP|n?WdCOgjzA-eg0jx&<@L99tk%6^&hxcSH~(4IHD#YvPmyP1rHBW9l> zLvuMZ-%EA!So-b?;P>&I3))a}swOdnx9BXlVn?<3oJ#+7=r0|c5I9BW)~h$w{H*D^ zwt`rl=Zf!M7)Hj_Q&B_S$^q(s{Q~;WNZZhs1rAegT=K@Cl7&7IDkvrz@F;=0@?R|6 zQ~5{1DbgnB8x-#otN~%&0D79B8MmqmF)e!#7OiksqGac zFg>7YkcpiQ!?#-oO}+JXr*Z!rg#z^ zeAwls>I1buR}e)}%iO3?X^OKHEuA3fO=N0m;}h45|EqL}|4lbx5)0U4MI_pTB_z=B zPphF{$a+cPdI(>wbUd>P$r@49F#cu4$bLwI2Tom;Fq#nvyr8EtTbhwl-37S3tMdr0 zE;eu59xoo_>XH)w8~4$fYT5K)nV>po#4=NeD)rqM$@ax^Gzs$-N%XTW;iLPZ?ACOx z9I-UIqYX!diRQG^LYHntcxO^{&2rM81VO>&tFM>qI?^vLkhsu(X z)S?M<5O28S`Pa4)t(>m*{%KLXwD4CSJj(o9khtkcPofU`fYj1X(9^RWQy`2ekpdr+EVo+@?B&I&It@C`3Q?>=DK7@DupBwcZ)kfwL2%@ z+eO8B=D^2)_Q@kg)jlSWhUA4l+D^>i3^jk!5vdB07n4<*k2zPS`E_~+NFeJw-tH6X zkF+;8$J9&lHtC0oN`(=xICZ)IT%u?(QY?X>{_Kve{F%K(s=`To@sBGM5^sWB!m{V! zi^@0!c8si$@dOR$IL%Ww^;_kQ6-xCdT_%@6%2FPaBycWDw{2}r_LD=Yc$=5we2c#g zWpKCk8b_CbayJ#~n$Xc;E0v+PYv}p~!>_bN?I7@lkD|&a@N6XlYXH*v;g!O#cHmRN zeXtRoZ6EUBx;==B>j(aBbvy#Q7bk$z;s$SiPhqwvtty3tM!@D7o5+a_0s zck`63f)pDOA3Uo>SV_;b4C@@@d-1}=sQC&-o3Av@126mX6AC$U{0KHv?@I7+Ibte{ ztoxFZlWYw&qR0rh*RW#*e!X&=V2*8&<+6}|Qn9#C940nzM-Cb3FUxjY55}u>GnjAlt+bNFiz_B=IXK(i zH$CnCN%K5gIxJ+#<%U5gs%WG~M%e?n`e~)1Ca|r5RyQSZji(Iu@+4LrnBe{t+C#hY z6iU#lVR}2KtA~`6A@O6an3daXeMort#qB6Y_5T9JL=imioN4^TpBlQ3397?i(6^pk zZOc!MoC<&Nh?-HxOQR|m!?FH#<}t^#S4i(UHNI~@Ts%oXJ$`=84dp#TYQf^df36QO z0UZhPau|);uoW5b$-_(>WCoW#1j7X0hqg*+pkc8O8P6Z%oV3#ACC%2nkVrGRXb>&P zs(S~lkj%+xyq5H9aCC+~CHjNw5$t>AYW2m?h4{NF+~xSnivADNY4k#;UrJ#5VJ~@L z4@ki~R4j#MH5?iHC%CK=mAqTQSxf~|q8(ga1JjjqWfnO#RKgn{LR9(&f!;qlb3e7K zJG2KoIGaF%LRsv@odFUw1n`-w{^V!dYsW6{rQIJ(?+Oj;J1@@g@_<&Q!oXPo&j_tg*MP6c?#n(x4*B+J-__2;De-pe?aFY0 z3e#2JOgzRW2B1!)VJiqKD5P@}O(2BcRp8TMdb~zV9%i9TklQT*!e=Ble44!pWPgNH zj{nB}5K;*sU%`~P0yp3CSp2zw0}qv0rTtOwqDhalsbQD`2v zagZYkk0L_jx$-&)ktN2Iaf;Yb$ZInLpb%w`ztebzu`$K4D02!o=k#jrV{s3DP@T}0 zL@71|+$qyNKRWw30Q!hK`p7HP-Ot>q$rgV7Fx7_2YTSa<{EJ;47rY%x-`B zhRCW@1_E^P33(Djt3#f2<2=5}AD(dLI?hF*%7@(^Wfbr~Fr|?8#;>u^6o-biFu-%Liv$u*)1VQUcF2{G`y_ zR`XbnfK44_tu3`?m(JXyn6v|(Y?5HE1Ycto{Z-CvBSlK7=*7i2M!CK#ywb#ycHnn~g7xcY_6k=YF0oOW8O9+|RVy0niJp`xrgDMUXuBT~K^ z|BoY^N647Xu}$tM@gKZ!9EZgwaK$@-)e^=KeOONF-}PjMo5o5~?sn5_+ffQ-`tcP%@AHX$J5_^c=6QB=c2PIu>){34xxJvUI))X?F7i8A~8WHVdEze(JTN!$CMO4M zz|fM$sDXQPnL%{HH9JhNtN1{!f`@sc0rO{nsB>B>GG<_Aq%RoIJJ2RQ>g`xqaq&6* z)tg5&9*26S@ipso)gk2oEqGSGwALt>b*MAVeV?YCUH&TOeB~19HTA*8fq~2Mq{(D@ z>P6%CjNB>sLym-}h(E$`$pxe$#`RyJQU7oHhJW_9r`fUU^qEZpGC=dZRIIt-zKwp@ zM1F#oW6oF?`ua`NooA0C78Gr`4}{4~_Rb=<>v!wMlM|%BI2!qjxG!6qhzF+P&JP!3 zF34TEMDAtLP!J)1pUqn8x_ONf`Ywd3gVE|NS}Jl{JReE5wOz4s8TkTQnyLW3=xm9x z2@{VEJ*-r{S>Ac?oVGsqr#*##Gw=2|!`xbaYT(l%vfV`mT5$lDCJ1QRT-6M4WfygM z64>s&kzus3I(WGzm2lCxy2&fjK?fs@$5;^pN4QW4Qoo|IIl5hbR=fOO>z9`&y;cdB zt`|eAknsC}T#D$=_70HW&X+=RJGFq_X!7=iRHyBgt;81!@M=QsqmAr&XM<(Oj(sVt z##G6V)E%BI?(m}LENY?ME%@UT(UCq(}nyy^*q?o#5^ zwCI>+f($Jy!3n28z~gBGyuT#apix65^X#H$QGEF0$;65@iBsNYlO&P;IQWfrvIbA5 zhgaa=cB4`ID{rbi;nd!FAIMD0^#rP6vnZD2u{-_AkAs(F#LN@g`I&Fh1?LbO(u(fK z=3-eyEhJ;9#*xIvvOJ~kHnU}-*`PP=*P~|!?=t7GW};MnMQV|L;cUC~*CBOjb>N)N z_O5Z@d^r-Xw9<5^pc`5KI0pA8(;>q#W}msMQR?WWdq;hcxGSd14Hlp1Ye8^SQ2u3C zo70>~wXy_aI>*k@oGTj{`rBoPr{MCbG!lNx?Dxv*8-}td$XJquxpB8C#hBApqJY+) zh-gKj%x}Wlth3&}I=Xwqa*5W|c_$wAyZlAK<(uvIS~!G$H1vaPiX_=>X!h|j33+rD zyeVB&iGDP+2Suao$u2-7hkHhK7klH#=ptG3^v}A=EPgb+*7mi)e%m z{@M*Y0#Um8vNKEiy%CNE4d-&>X61nQQ7%K{j>UOA5`HNP>B{ey=j3L9EAgRa?h}$X z-@Cgk&FS#i6d%Ro|0ME0oXaL=H$ckuD--0+*nL<_@{q5;K8@^D;P_Z0aUUKP{>wT9 z-!$?X5@I1a9@R-TI}B6mQ(BtsA{kX%Ez7DKqv`<7ABoFXb@nn5>cP+);NrUGeFrh~5lF^V7QGhf6n(Vp?mRL`MT#EfAVH0emn#y3AdMDoY=&&Mp3 z4_GYDWApc2D_zBnKSRE4e%GPku3@rbD>gAhY*&uQ3+w|4FwS;YbuWCaU`|quQQRa9 zBhqF5QDcz`g9PI{LqB@XI*YHD8(pD(8(<(*7?hNuGW%&d)fAY1@{n{ihABk8GwqW%{{q>Izu*r?~uxO#2 z41V2}jVln$?>!o?QCC)+8xSEfrA>P54|iK{5fT$j%ke%p=(&^veQp>%q|*9XPz?~b zN!KwfJ~)Zx7?Vu4UoCa6{uxv0VLKl{I0fNq7}Ph<%CvA{3@nL*q<@$UdN>Qb>M^Q3 zHvE6VnzO?ZfygD_dNSZL*4SQ!1gG7JoU+6iGG^iuHhL}T(11;gn;8iTh^CT+N(-T;=2SKFt&x&Pcs;hfl{u=wS!tdKW633^+FO zOAoS9rwRVd^6{9MG-;Q_0%q`Br{*zX7CndGgcy9mwfZ%{Mt_9S(SimH(^nmDUwUM^ z%DNk4N3rOp>I`6Vi4EW6K>D1|9hJ4q>uQlFN8zuOksjxr95Xe>xRD_3E*d9XsZT;O zYWni7gvWL@w8KmK<%I-PoGT2dk6smP|17jAU(~vzx3?o?`QoP;u72Qf8SSF7POkl$ zPpmj2l8f#`qaK;pB)$vcXe4WF_-k#Y(bKT;a zW7rVGkS;T9TJSM-DB9tOb6_?lFvQ@`ahd$u@Rm z^_DCG$JN_~`GiYMj8GBIOx#WG_;w-Z2C8V+zmJlhc8qz9B?Fihu!YP&XW#nOk1Y2Y z9(3z-B+Fx1h~q!j0R;2wp9z#mFLKL-UuBnW`5?z^BQfr9y4O#QS6&82mVP=QB?^<{1Et}0+<`aGV zoW~34JYjn@#`h5y?SozK@!rVjtC3D$JxQt9qy0+Y>df>uR!99Iy(OGBSeGfJh0<;@ za-H@=lC2YL#omA-fYUiz=Qqz(l19!hJur&q=*>z?9+NTX$$f5+SAc8-y1v6lC693-Ypz<`_leB+8pI2h8os2zLc`n!tn*x!bG^4`K z+A#-Q-05C4gcnd4dP0^l+Fhc;`14sd&!Y+LQp2ZsyG_7YPktF?Z`%n-ztc*F!-*#)gIpeZeEd;iq?`(&>yoTinMbr8M#6K}j#7~8tr|%D*o%X4C0N<1q;W7EJ zbri;qnq-G{=rc3xnKeB1!orO8Fb9Quf?{pvYg`m z$G2NuFP2`XL{(FfW5QOQubAontE3o*YlL^cxj&F)r*grJsG0!v%ty4 zl3EE)zRv*_U3I{ulzqwLl_Zt=;V2@x=y8-}phE9<&}*;9_q-DieFnYz^u>dHh28< zD@dY)JlNe-0%S)2k|DRyDPXrQz`h~Kx%~eH@JWYkCSsKuB<wGIdK3oKZb>bn% z26Oeb*sh#;r~-qItR3i!K^=RY=7`xDSt6{o%0YPqPeGv2pv7dF)H4I;R- zUTG#6BnNOP9)hWjNBL!vzdqvM?GlrXtB#zpPU~(1?zRCP`!XWZW+FeKdGIPG+uPNf z;~&BlL>&>Lm6PKUL)B(>XE2Uj?d8<_b4%`f-`pOaG>0eP!^g^$>e7=5;89L zYa88pdvecCIb4GT69ll$cNOcLR z#MsX0rBaRA!9H$mwqYWQW4E>21w|2<=>w&y93?}tB-Te!%TGO)4M>sLqRV!VOmh|8 zJ2KV`2>m9w;K+KvAx5aU3%@%>rXftbSj`jQ_*r+|JGS`N%zF_{1<>Nq&eh}??x-vG z2ber70=h7(so&QxAo0fx+KenrNF+ci_3JKg*I%Xn+gysH4>*TsauIQ={xJNI74YES znti{g{lF=8-4_|+XP@@v_Q0AW1y(WA88~WCuNP_S5J}4Vf}w*gAs?kzV1=h7QQl}} z*XZNEkMhdzM9VxVviO(^yM@)Q`V31r0`a!Hla9nHhh1)yNOPXy=;%`{`+ZFOt45Mn z&G0tw%qu+_<4YUI*b7oIbCbW@J@_)7n;Zu~k+f(MExak+4$OA=YUT^Lng$epCEVoQ zcX&0yyUGfbh?-ashzr$N|7ls@!5b3X6bi5feR^q` zP|T6z71Aywaj6Q;?b4N>rZwhy6h%V8q2C%w`zo{Qd16Dq9zecr(W}g6{tFh>;$sT9Dw*EjQRP$C z<@tBi9Z!#0Q)A3|Oml+`Sg(OA7~NpQEW@UX`Q#PMd3J%5rePH>!UAU$vq`6-RI<~q z%1?JmR40-VTk?s^qMn~qvX{-Kb?9Ejj4G;&kqKMvmg5Sks_fa8yJjgUHW|E?kdJei zIUE)H!m2lh&ip4@71>?Vz}S$~Jm|6vLQ>Op#mtl-X!qGGQUi4KF1G3t678bHUPos5 z96#!Iy!C);jYe0CBc$bs4QbXp3@7fjD^G)P-e~yw;TLmSer|a4WJN`1Is8iB<~Xmf zyVlld^x=v?Ij6}|s&T$`rHL`-_2L`u$T;0oAg)=BrF2wS+!2&A0N_B)LiLq#U$kMJ zlWzR1%e9-0;rSFQLhp`W(RtzE+L!iQN^YKUiRd*Y@-2EnGX4 z;Rnv#1E%?JURcjtE81z;m8~dYO|iYGV}$)%ZF8Knq7k{xG(x}!KGPNui3rox7Tb0b zN3LpJKN|DP0VD{vg{So3v)@t5WtDKf`7yqc@uADB_yi5GMW8~w=*>26&}m%5zr4=l zeC&=C?dFbe1e~sE515vY{pg!;EinpC^0@HKm)a*iXEjFs)}m;O>Lj`IBR9`r{ZW5~ z%dRfGhpnr|G^lc;8w8ZfK83Y?U?Hiq7&x^veCGKp9W@6N_WefiqM)3{oZf#!7f7!MiF+ zgodzRv1a-<>x9DpV@j(#G|~|>K_(0;gcd3jpR@3DrE!bi_bMGL)0MvI3-UTZ&J|3u zUst~=X4Fgl6``&SHR#K9W$#1r&cl*%Em|-T*$tQxUD$i};n{zjqm3g}Hce?fR20vXWL@R`ynf{H zl$NXWS3TsUykVz1ZZV~ohZLX3GB%>VIrDs(Utvt0m|7#U`qAj;UER4*Qh2!S1_@SX zc9{c}&Qb&$-e&R^HL`b*kMCD5pu9W;CJlkEnN^)&DZav z!|5|NJj~ki!O9f(G?Wlp>7h2(;_M3I#MeX9E~P5Y=IbGhA=S$GQk71}0oZ)k6IO(- z5wkU5QS#e)Bqcc{%BqX=GB{)4(_fdz>-7VgqC^^}0x~Xt)7HG1{MJ!_IKJ3$=1yO% zwIm=NdpfqA1=iIXGepOMq>wLJ(xRR;O$#JOidRTx3s-!IRu=BnI_LE#EJOu5RrK>I zn*N()Qz3J4$VK3NW`*{_f4|Qav^adZ>Q1*+58LEa7c%}G#kq}<51rEi2V>k^|H8IE z`p$-KjY%JlNLRaGMxBi5Q*10Wx1M^}^Zm!;`oC#DBEN*Ub&|@!&^EC5EO$ePw_4Y! zPFJaV?>5vO39)jqarWpP&%gW+hCeb{&g{9kqV00W48Vf@y&V%~@BZ(}n!hWf2d@Qr zZU+xK)`-JIv6Vysjy}x+neR9S1u}M`#C0+XFdt##MJbTL7rJ$A5^zf|NP+RpAUXEW znaQuWPp=5=@T)_CSh@ZM<7ip-ger({W-Pvjg!WD8Qy$u>c5H$0N% zB}(loCSaqaDEY_KCewSe)YRef27az-w~vzW4ZsMB0Zy%DvJ1*&&`x4!$GU-)rKF_* zG!K-ca!J-gBa>wT8vn6U1oMUjl0f+7*M;y)S-Pg!59D~pq(E+#qZd<8V%I&}f>!_5 zcvY!N*~gJ`CD1%`j4rtpASJNo3C!(op(!!MN#RlPKQx+(k8(rJ*slF*|C0clo+y^Md09n;3X3uR*75p41sn^lTFm?I`o$_5 ze*{ST(MV`c8+er#DCXF_&g-ORdiBNB`(jml*QoTB@rB#wnE9U9S)?|b$iqmZ>n2Gc z8Dr6xFJJVVSH`0@1bwwjpWO4H(;s*A~oeWp`=PNwGuv^-s|*h+CFFCTU(OJXNm(_rq~))+2`zQZJ!XE(K+&?r|e@Lf6(5d3-v;+HK1}aY&f=q zqWJ#z*@=t{wZS2`AHtCLx{0ssS$f(vBfz9&K0loti_hYDahQA!!1Y4ygfPL!aQz9%nMd6jVPM>p8 zTIC9V$-$p(x;10IX_U%kdjL%{oN%?=kNbANuQyIOc>G2A!#vNSuj;1NeH$f!x%Fs% zaIh?JZGrww$3^#F=U+(5_#k;oT;9p^PMO=z8M~pkX%$hcXpd)p##lAPNzTPT?fiq% z6`}|6n>#=3PTSM>7S%g$`fz4iOzOX-&>MEe&9{2@qvHC&Vjo8}RVZrlOngPP0E#P^-^fq)c0M{gr8P2E3>^F)Dtfhg)gh|hE*f>J)Z zG1tGzRSAqtR^i}!cb-6aT+D+bFvCqXp8lOoMjX#Rm$*Xg* z&J?%_C6qaPE#nTG&b{r=m6Yb^$Th|RS&E2=uma~dZCI;r_cm&}O#by2{~uI;rKPb< zPlQd$A8u~Y|BgTW=<8!9zgy8i$!PTz(qN~XS||1Yo(G3T;a)hSN3|>9~W`g1C545_X_QS;$dW%U|Q{k$7DIOMKH9)>cu445fQMAOmhDs z!T@7zr(iL(tfsj>sobP7DW~~bk`Sw686c>k30HAs(UB7t9HUfzsu^YB7xF^|NNfX< z5E5LD?QGu54ZVNT1vXI07s6%HW*ChoebadKP`3M0VFGe08O8-nv!iL12WhP^4A}!* zxPhb>Zi{v-sdhqhNxk!RPAgAplC}8wi>C0Y9;7lAXFiX$-)l9v?)uDivJ@|NG)Gj4 zW|0>Zx3R}MvzEbF3rh>tcC3Sy0<&1UZ+~FjqL;n@^)dg$@y;p$$|rHOn`kiNG4cL$&I zx>hOwRndUeftMtQs7U1D9pbRC^}4jx$8M~5T6~l<_41!{a}H+++CX#f>^UB8haX^W z>6c#a-;UPn0&nWZ@uZJ}$&7CewK)F)FI=CYBiHiVr24o}woR_T$Q@dm&g=R!|J7%* zjV7VL9Ij=|`>X3$$=(kpfc%mTM_{D)wW6aafu7|l_J3#rI36Gf03_a6*3#|9pzFxH-{Ps~Ou zJpWc_RhZz=MS+b*boD6RDOB7+)^G%3QA-o#Voil62(m)o=Vw@N*hkrj1Niw0Fhiik zM)v2<6|)NnwZN?J~N3nEW~ww#WQ03UR4$a?&$3&H_Xy zBZY^G$JPp1nQ$1QAPuln1GhTCQDx^b<-~FIX-9%LEyFK`7=t=*V8NtBT^ z+7V2{NU#dGx37dmt7QWKf?!22MfT`?YojQ~lER51Eq0))X7FYK*yVKLxkXiNZDwYe z@rRtRv6@U;11(qIa(340wNi+yewcOU&$C>S$UXM1*e=UQM#Mn$>?WS?lhFtdl0c>X z=dkh^j#b@~LjZy`)g(G8yIFT%V!n*=kru9qiv;o!EW&@N~h4qJb0UJpOC- zA4BFb(t9Ln#FzcW!#A52r_WlCpG|%M@uRr_Zk)QOAH2Eo7=K;=V={KyymZs7Ys&9q z=Z7i|ye?*;X}HOtF{*cYT1m#HS5hJpt|Wb9wHW>5f`Z;)O7GaCF1^RaPh388C%bXA z!7%;A1)1MA0Pb$ud6uiy6nKOec*H6I^;foGFow8+N5zU`mVW(xa9uA&N3l$H!M!m8 z6<9N#{bzrjap2yV;LT&+|5UFKNR2}Qq8M#&B|LpP`Y)km@&Qmo76fWn`;$k|MOUH= zC9~YyJ1n|BSDaG;x%RoPiQ7flV&|s`Ny)_T4yu7gZ@5j-8nk2Y$+bq#?Cs8`92D6B zV3HefCo@9!xy#C$+5&`8qj;G_m~1u&fw{(Frm_~o53ni8D3(^iUXaGz+qvwnf2+7%_COBk$42q9g! zW@3$)RUrDp>jxdf0VPwhW=9Vx!Z(O+uyLfx0iKme+A3ENa3ji+{u6J}N>&4|qMslg zOPiejYlWIn`B=%-bVa%t&&;M|&v9iJ1r#apsxNIPNsHS2oxKGX%c#(8B`YSaXru3n z&d1f9l8DdI|MEZxuqrfgZabBWW6~VwXPl)^{t9lR`vrb~w_%gO;S0ZEo2O3V3Ad-( z52ug?0!YibeXEH7D7C*X*#7&ekr7^80j?>7S(S5nck|65AS(vz`wcX!T<-@8OwDjNUl`E~0R z)YsRqZq=ChFWn&0+>RmhGcy2{WY6YZ<6iS0$t;1l51S9SxupYSfBn!Fvw`pR+eFUG zHG!`vbMs&_oy%+JdTi5}<#-!yFvs*%iF(qy#SKuk7eo1D5FCKMv^0(ag1n-x<*bb5 z*_O_T*=}V=@U?Qwdlz8M5gA zAHBr?l$HNK4T}Fm{beEu5F#5S0$LFPEr^_RXj#Q*S;l4-mlWWm^6AxSB+h-??Rs0l z^6~P*?fQJT6=!@sde}R%j~bN#2jZbo?gRctfS^y4p!kfsE62uo^wn$)y2SE?eGx2v z%^=qY@X-jxRiz99vEGYG?y;EJu|n+%5X(S5F#^lVzu(Ws_kYKqp1SIFGT5}vb4Z4O zx>!~A2o&6M`VFP~J7A5tVu;N-Q@E9|M;+O+^AFibo-Y4kg~U*gZsKOmDEpDgu2K6h zoH4GfR0$?G{3}nH!+lvu0WO@YTVxfqiZ6vz#2X$so#vGGY9{T9?ykPO&1B`1TyM)_ z5{1B)t(bZ&VJiA{B+VKr`hQ1j52mkXXLi<7s`oC096gVaV0LkmE{ND1X#oD=Ap0T`cshoxc zy);T-M;r9MhRmsgOiIh%K+B$z1t@ph3YEQdmCd4zn$w(4Pjh@ghmM=yfEOis)0;R; z42Bmick``MV-+Uwo5dYOu@4LelcYju9Q9`N2_FVrG$tIrMG61Xy1TA;xOQgzejs%| zV>!7U3uU@&!-FomxjnmTIlO5JWa&ZSuD+(xMGKA|GtEzC`!&%g)V1F2Z#N(MJNc|W z3?sbT`rm#ze8_GQ#{c#tC5#6U!Tc?pTa%0|@iArLDk%;oWg;tQpwdxs9u{ke{$&u> zu|gs%K$Sl)Dn_U<69aQh;j_cI&HeBRLQK@t=3sBgQKUbj$;R~p;d||U@OSa=!im&y z3YWhbXrqAb4_7g4g}Ue&LAEO$+M(GQTiS0GTM%pBU=hn)0B@-BFunuaw6PHKA=Hv1 zrL(~ZzVo9r%z@Ww#%)}aGIeD)Adzqy|6_iK&mUGRuoqQ^K~1=^Z(kxj2YJ@$l(~{*~=PtOj}?)c9UusG6vfghfnN; z>TepYpv|B8!zMP@O=_eWHb-h|)K5V^ZgPp90qf-AJ}Rc!m$liop?-c3*lVvNnfMy_ zel>oox!S1ex6V@QjYP%?nzPZydz18UP`UT^W2|itK3-A9KF4eeJpp}VcKce`jISlW zy9{P`Y86#MWH-uE@gAfM9hj_fBr520JgR*X{H@(Pf|-apg{F;}FKoAQoEd>_iIIj( z&+^nd?~>q{kf(|Cm9l2yhJfFsF*+r9jL^M5Z(}4_cluL@q|U3X7ukk}l9QUr_4D*( zs&(oD8Xo`MJ}}}Y+!+3XIM9MoV>SXnj?W`pxwKnfZe2S7o9a1HD zvAUkTCfxN1A)|JqDVI3C7(zt={~GSIuG(~A$^e-Bj@knzH2l0w5pASXZfoBJ z`@J`_Ig;5mck2H5Uo1{*=Sun327)939VB7CQ=LB;&N>8oL8}VtZiGJDg=rtF9Dh%~ ztGYX%AHc)|F{?0oTM;`0d7hhh;LO_Q$KRGbAH3^oYhSuQ7lrtUEGr0^f1BjRVWE{5 z>Rh&16*4oH<1A)uT0Iu6;)rs+-Yzax7#~$(lCtfkYf#4hR>L2FiWN44?c!B%jT?I{ zhf^1n5>jxz<$>A;m%5YW6IC1ZgEW^%Yi$~FKV8> zsy%}KPx>!Q%;PS~kNxID?;aslGu!ZtOpXmg7%K}gJI4@oNvKsejF35G+&Hh(@K9gV z#XwboA+ifgwFsaGd9b z*V+f${PD<$c+4^K-iXM`C9%pJ{^(i)#BIokJZhGz56YGCRCj#|Vw#z;_l0I2+LgnVG`z zneHBEeV?DISL(QvUMKf1pp!m}3X$bAYv0i`6WgRTD~h8xl2|m6scspzAZgBzrfvK%yr*vqkPpkqrTa6CizU+5uZv3?#UIPa2`x@1J ze4|f|`?Zq>*DyiS_KIGnK%-SAFC?b_;AwwYvSor)t@w`vv70SfkUTwhc%gdQpRzi{ zj?K+K_Q*dgs9RSky<}y3W1B7>EU+F%2?fvS#&2v*BXc4&! zYr|}R-ZHi5A6!w-jHK$L^MN}r%d^O;a3)*`KWdq}$_zYgzOW)`(XnLm%FVmc7LMwf zp3QP<`Fl)E@V}E#z~dLU19GBuRA02<*ncW}Y(jqTZ{B)U7p7%(o7F3h{_ME7uW0^PGt`t7 zE;1r71;3pthy{p2t^0~ONa#rWGuY|TnAai#jW~=q(b%k*U~)G7@gf}pFja>)>ND$!Ko}r85=ZEAOgQBpDcc z>8Jx;2}`IiY2BwsKSgck9DoywA#2yi z5KqzvO@HMvPRCPe){$6<#Ta1bqth&Xt*L$ZiuQ{(tA9!t22(d{36reW^yjLEBZ?}i zl4@rBH*wsmLgpn~V zKY*^&B&6<7avwnAv_|CEt*WO>&Yi?`Czwmq`ZBk51ytxXCtBk zbf`{z{My#P#TPcYIreVip7$qWSzcW|7M=IxdOthV&K8whMw?>bHJX1R#ako$gxvk$ zjlnHX%6Ga6UOQg!T8+OB&e@!IsLR&s@w6))K(vGR4r78KFcOl!WwCjph7GvnGkfi= zVceDoI{e1Nmc|8-d56ritIb>{ibMsBE&jl(*bYW&6R&T#sD!{2r2qKu!3tZ{Q37skusNuuG0dD;Teucsk8PK z&8P5d>VcD-A$zS6PM+JFrH3io^LU-b0=49hsw>FtO=m0HWUv``1^xi}%&&i~B>wx$ z_WyP`eT%^y@fqC41Mmszh{mG9^#10oiiM#f_%(Y}lZ$p9L6AlnMEg8GSd0Ml3d7Y( ziWyJo%ShDIpq+l1P zJ%*XS#DEY4y>W5wF=via_#C#nCcr|$RE3EQ?Z+Z0rHB#Z>TRmg$2l{%lnxKzeonAV z@n!=P>{IZT&6+muwenI7hCVB*E_AR7zA6tp>-?8mK6p|CvqOXrC)*mp31*JOAY#C$ zgSbH4rA|i_4sPI0s{}|ba_Lp}5+Le)LWHkqIM1;D` z@YTIViCdY5OlKVFu?1JC;jIZ_wS`Zr9fipb$u2`B4s=wqr%ikZBj4_PVHtVcS*O~| z;Azy%L)R zW`;HEUiT-z_kva6pZd*bE6cdl^(zEi-&d}wXT7H_HZ9c*%H{TSOg+kfENvBC)cT^|sl$QX(M-)aOuVpOUsCxTb=G9JYlES&XOiXz3W4 zOU*mAmZZ9{v6yvb_GfUx;H7X3v?#_7%*bUR^U;JEdG9mAN5et%dmT#DD`m(puxQ9C zH7oyq+$w}rk9T;p&ASq z#steW2h`0Oe7@9z?SW(pP8gSaQA+qjf4blhQrFuBRIMpwx|;kpP- zTj3uhscMFtO zY_XhpJx-;Kk~I6ta>Jkl&j%NO8W)7n+RG8XkDnGkfuONy{1hs}!=KSA(YnX!DOYVT ze~pVKT)ovqg0nE`AD5yS&ex}4lb4xKUhEeq$^NE&w{EcPNFNHT!0#)ftQg?p#y#54 z&**+8ngFr1nwQ1}##izz5>&`kBBRMoMiei$IgHBms9?cg_Insqdbv*8Le?^jFW=+I zk-MX0Jl@od0Hx2&*DqSM{caozF9^1_b|trrr8=-K8UQuIWx<4H1W%&Y?eO=viE-f7 zDjU|%72z3@{l?}V>IF@}sxg-OVNdbn<>9xBZY98xQH<{jM!h`f4>B*uL?dzDPR#uQZhbXhOgYW(?Wr+?-lVU35%`4dBMLIuJG69m%mPsAV0#cI8 zLTDS)??{1cez%dR6+0{Rr~krQjmJq-Hl`QQFx>|KP06g+;IhxFf4$V1n(_Uqz&*Nt z@Ez^21ud}W(tNmLZB8m;;_Obv3{Wf⪼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


    W!}J6 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

    cbi&-Z|R+}A>3FQZS$yIcA@ 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

    VF__`MyxL)l zGxw>9npbcAlEPNw=xo>>IN%8k&D_ovMFnn8n7;VI%)yBX?qci$_vxL`bmJKu_KQ+j zZK|QHV}raScX9MGmh^cj=5a`1da#NKyv^n+7~Bf4=R04c5}vPTg~3cOU`JkVZym zlvueF41UfYCfY16M`=SKu)k5<{IXwKsMs}r?FnlopNe(<9ZOUAda^Kn&ByH-$F=DZ_H<_Lo}z{{&JSAXqs ze66j0TBfD-q~&mzza8dU2r~`NmN%j$d39(1kr%&+`-f?A_T543eih~;bf8M;mA2F1+uYjR7Cn6@eHn$7zeShSaKByt5aS|j zRva4XhMqSxwsWpg-7S~P&^@Ht-->N1o8C`5Ae{z_ep1U4_4?rB%U!hBLDm7&J9c{c zsDUB15=K~}6Q#T)C6giZ>|DFT^XQ}gK-DFfxy|3oWDHz+QWZ+X1sinc*UmO#Hr|=m zChaZ!AxqwFc9r9q*Zk;zVgDoo+IhXe554}X{(!a)J8!tETL+fKdMg4?4@ndugp zDV>iym(*)cm4e`hiSHf_?T$7t+;i=~(c3J*9^)YOzxl)Vz0RklPTg1Ze^%Y8mp@Dj z{8!bf#^wXTGV=?p%4U~U$cpz{-sA&`$AF)k;N2^BS$`aaw5;!U>|X?SnA@^@e5F5M zvOO)kKp-EO?%#sIh0vy**SSF1Y@J-ar!0Kcj_H<8m!5MVxg7gCJ+MIvS8 zxUEi|{nDQ+H)`a#0Kv&jukXikY-p2q8d5AP(h z9p_fsIuiZt7o8^$M>qIKq#QV*|G!E3Iyjx=Woc^kPs5T;xda-`P-PjZryTO&qGAK_IB63na`Q0>$SL?Rrve8Culx zL|&3sVeH4Yl|v{Mz}uRlyvco0l+!oG1SRz;B67qgio4lUbHsh-iU;2M8w2XibTLqs zgz9$m=2hHI=|^d*e$@EioCd%-Kyi~ozFz?$UQvG@v8w^~dHf(mYWdN|KlOaS+Soy{ znIPPFLzb>yKKLf^=eYC~OG*eJ{z9g21F%>iwp4zoOfvPAZ}PF4XCvOeHU;owWl>&C zllj`^jjkb6&!cn+xu9F#CbQzzhG7qID;AH7N3@T<4>YLM#-Z-!T@CoNR6V#oFKX z&<(1hLHJ~$O8RGI>}>YR)q%k4v$-Ul?Y zt6JW`)YB)r0$7<}Th(+g1#Eb=&eRi+2)05CH)haWt zLe0m#7x)T8Xz|`xwWHz}S;t<{1G9JKA~7Cewbcv!ww%%FDH9&;QDOQi&wD!qy^qBq zqG*IeN00jp%(56JK59bDQ!%Rv(t$E`9jj3nFxOs_H`N9;0jG=2#y_DU5Ny z=@IXfnyu@b=SXl&yZmmI`s{Z@Ag6;F=1Yjh3e!Np?Kvq7q3WTyuy~lBW;t*_so1*i zdlJ}{5CA~7oJ?IP00^HC1jTzEzl)Hh4Dk}z6pQ#%e8Gv$VCU1HcuTLlChNN;JRQbh zz&FrVIU~mTPs$(F*_mqMpwY0-3GcL>!r z+=UQ3Z+~mr30NZQ)N|S9o2;`R2l=pfhG?Z1t>#^*|6XVr_tP|Yg$eBFQ83}A zT~EPc0R+tep}#*jp>i;ad>+}ZdRnX+KU`Kd*dXyybs2p<(^ER-iBC$G(&~Hl%j%jw z@0gnG|J{{F89rINQeES7ly-S(^jm5~E;XWqF0DP^RCjY9_d9iR8v*6w7pTqxQMZ>4 ziv16Y^Qu~(7F!+?`to2kIOn9!=T?%5%aN0H64Oh5Q{K~{&)|Uj;(!Prh&w!8$LT}I68cQv+POn~6=UuG{+>~=Y+ClyLUty}Em-^dnI7G-asA#8 z2G7y=dxiw~k0q>J7?lVGgkPijucPk%v-^V(_X@V&2Z*REN^2n7Relol=j-i1suK_~ zb;C+am~JrPNAa9f@y!pFMZ-nNgN{E0tE?_(`5y~L7iIURSR#A zy-zPkO_?1nriNUmxUw%2i!GTn`~s{A3hbYBN{mJ%{=H}JD&#g z!X|cSTg9Wl1vl@5_oJe^_w;dAei2mpaIwM+fNGj>cmLws+kAvef*5mo3^q^h#PjLz zH$oMu`LA-dr}4T;3vb)Q%4sy1UiDPyStBT0hQhkZC_5!|VbIz*#(OruET#R(>YPl4 zclGd91YKnW8n3>*w&Wc@EPA(eJMsD{So*M(EuCS>&p=Lj?-(m%+teF zSnqW8TefTY6IL(yZv6b_@76b}-+p4dxWn69u%^#H0bWACom={jVz-#9_9l?8#M*_J z+_MQi$rVsd!t(0L@zO1;>Ns8Eqvi9{BFOE;ts^lz_I8_{38pCpDsxLzt3MusrBd|T^s(EuJQ*^^TiR8Q7HIKFgPk5tvTNRiG~$P z0MGUMckI?xVBHS9vlr&M%mrK?p7cds!M3c*Zer!vyxK8aWYYM2qR#p=o!sImh95Op z(#T;0!>|xtxhTPSQGw+p~jGL9U_L$iknkE-QLQt%Ek{2gwaeJ zR1#75y@cg)u_u3yR*jQ$%UdW?59K;TxeJBG(pFp!W*BV&KzX`c4E1$$BOP|)3H za!yB{QvGHRxLq-$fI)7F*Y;B=Tj^gKCt+F%+rppY%ai#OBfm_l#;Fg+Ty#gk%o=f? zkD7&fG*Tn?N(hl;ieK9$F2mchjrJL;)Pvk|Gx#lwurhXj+4(zY^1WS46J z-n#|{CY2w3;hibCsTwIvO9!r2aK1TAQSX*B1b|a&e^zuMmmgOtqx$rJ?9Rx04~g<3 z>Jkd=WAdt>vO`(GkE^GdfVZD7@}pJBi^iKWXb?AQyb*mjEJR=#pmJ%iJ0U0s*u+1K zXiK)A0SP3~JufgW35p+-9OBELhU>%@kSgMj(^1)8b>&Z5T3P*i3hK~2wf>||J*#fa zz--@EBgb|Te0ikEy4cMn_rYSi_H>)Sb(6DlnySn5i%ggXp>C{Hu0~I=QCL|Sr&wPY zk)=Y`FZ3o}8Vp^OFn2<`dG|=~)~He{MKxM~rx&;WVnoq*-bG>p3IQ1z6TM_M^=dp! zlx;5sitJo{2|snmI3Yjgg(n`ZEGD|<%koV7yadL@QJ9SG920ywu~1rU1%F5yeHDD6 z4;ZbfeP*$P60Svs@jV+1bT~9OHGMIUbQ|z9pvhQFWmCM<4r_joczWeKJ-5yH!AJoM zizs7WCiqABaz{gW()ZM45ZVDQEw(d{VAvW>M@-4!4Po!+DvgZ_=C(eTT^YE1hs5*- zLjNKhX4`n|&3HK;ao#s-6D%9_xXu_TME6&z)J36ZKU+8;xe5b!%PG}yF6US`fW{z6 zqM+FGpW;~|3~mRiBTwDVqwYe<$-rpnSTr5sl5|e;uIojFr6~Pd2cHU-K}d#A?v8f1 zZRKOL3SKPVS&?A-my^qBtad%)Oxbq$r)qrCc1|5s_j#8j^m(%& zRMrli2lh_%b9;Sm#INsg#|kdtGbz@!hS-R1ku6O>_AI(TS`Axe*@-x;Rz&wk`@rzm zls&A~`3odJ{z+er3t`r!CnG;&2;|N9CS`zSE8S8sqjxzV_0)KPl<~_cQFyEe0DRotGk8B+tCv!vMRCZ9H%h0_pJK zv$TB{2tz8pPuHQ{z|Y;U`2)l6w?+~K^%P65Wq+xxWY{R=GzaFY;}f$_U?@$m)5t=gKzKan|WG6PM4pBBcBddJlC$dwnHmHr-Lt`JfW& zE5=i89v>>)wigx_cA02d05ek|_Q-$+?(>gvZV7y)G?Oyje?X}HsTlYdK-2Sjq!9|= zWQFO`{SNob<_vIh-WQ0{%&O7crCRrA-U=_yQZ=cVD%AJ;<6wpX!QeyayS6O@o0HxJ z*u=(+vCih+xi&u~O0l3k>N~}KUdLs_U1MiEapJygm%sd5Y~|bTlDg_#OPO+b`F_b` z-sToX3}5sG3W^a^tg?=;UJ<LzShMC2>49k*v&7E^+d}FTU1Fqzg zs^I|^QDEmih8_{Sre??mfT%--EXR$jLC z8Nb6bZS0EuyDE^agd;$Ee&IRoVz*uyYG}}~VUbzYaevU&v0nl9Tk8c?`cbcY(4XK! zdAS`fFMsof3wzY9Q3u(cPHXUS4z=<5W- z*YWh>rkh@<2z69gMSYy>r4|luoc_n}hnD8KzAU{>Xe2@F@~-? zEBdE57~O9fei!=eFmbLfvZLepaVQFfb)z^^VLIy#pUQfyDE0A&oq?UmM4T;Qh0EeY z6=?o$3kRT=xL>KXL#L|YtxfAj5c83utlP0dD)_@Jwya=RJe_kr%^fgJy3ZW1`wCCN zkVd{QVJki?S8jTznIRkZK?pZjpY5z%kNS6n3%9WB;sI= zr@!Ni$qB27ZJv8F6O~T1TziKZdW_t%O>)TPHXj|N+=lFS9#N-3X?$aV(5UA&TG3d| zU7>$?#nVQxfh}(=<%yeTig91x?Y|IvV=bk2^LCa9*xnFEpVpJFGltDfYB>tmFfJoU z+tN+y651ZbY*F?@xkr}vLlyUcr$CR1V&zQ$B8WX*!A79_BTuwR0HKAdt@1|L7O{X? z=;aVP74X|n&1mScU08OQZla|^o!&$I$^c-1&N6xr@TR8} z5|slquRGsWLh&;1UDguVMUypLih5#YEbtup|XwY1|Jhfv=AaFqVQ*L4~6xgpt(^& zYAi(MT)iu&Dy71lQ4(c5L$MWO!;XV8?Ucy1+ZqP=zmy&uwIA|Ta2}FX7w7DRJr@Y8 z-*P6g1aPAwJtE61HpKh=M#_W*ya6SmHy8v#nV2V%`4)w*DUz*b7$(RqL!ehbRCr{SG^G9OG{C~&@M?65b+RGkpc!zT~t_~=T@k` z!ZhorTo4KM(UriXCZ6tBf@Rm@(q@BShzTK)vhzrUFNlB z=8p)nzxQtlT(4LQ>csC|Q9aeNEQ|94c29kF)>HwfvbQhACFS7)yA}$b3-u;p5+nK# zqhTJ4N;r?)(b_5*F9(tQ!16c0@D7HQa|9q@_ zZhA9%*Gc886X2KvcfHzbT5~-FYVJJFM1$X6ZZ>BEtCs?ov^QNo8SCgCz>N4p^pB+~ zdxiAn_rGXSXkA6K0HY4y?vesmqNzP~(bpZlnCr0dS0(qDl}^973w@5cYEsPlFobGx@ef-0X z%`0@~kFiCI;Vd|51-rW%q5rf2I3p{p_WqRqX0%qF&lRBH)7-P&hRf8UyS)Dze6Dmn^4D!U>l9!4X@%3=y_VR-z3qCX zeuDnNtZTc1Rl7nJwC@<-%kIZ2!cJ?u5T8mT$BDOD*QRKJuIF(b@Tl;91wT9<| zM);K1bA$R>zeQRJ->U1K7@FBb6}&{mOJf%)%@X15^m5-94DJ_=U|3lF3eIl5(?8zN z`Hf2B8%^*+5d(Sy&(=>AdB6PV&1J*C*ztLjvQx*LmG5~C`Yoq`m1)JV-H!uJfK2EqCs%TDjOV;l?48Ur z(KZEF6950~zW&GKt&xh-p3QWfw8{*B#FU{kto4v}-%b{HYYz#b8U(ina_ZO@*iX$D zVOvd!OaSyZf+$|UWbm?*NybAEus#K(-~YkCick4I80t#=ca%Q4^)%Oo4$raBb%yt5`KYrK<=uyY z=MJpM4AcR2;@=^|69c$_6sUn73%2DVlp$~l%y1-KIhI6G;q6$u&jpW=th?dGoBaTZ zXcZ|eKsBSm{Q1uAQEM%3;HvI}$bx+CfwjtCa~9$s@5&3Jh)^nuROK62q^=w>clY8_ z+~IhOeksDb*)4+kxi38r*#r-&(X8=|Mv)E@IgT1INchD11bPdent~U18_<h80(2OG)5kPLqbRoAM{0{A-DQ2U%yRy34-W8GrQZH9xteoKjI0m)D zha{#eyuOAYj(Vg(0@n*_f06VM%#DcA>;nhXA~XLayn%*+EGEYeI0HRa;1>}5_zTeh zg{!|Rm~%JBO@W7(NUb05%k(s&!il3v+@T@ZWG?2hBncn$)Bu0W6Lmw!vwB=Dn!vom zf(nif^{WQ4Eth(r(JYvCHeM@Q*$KqjCc-Qi%X)JR5QJ9 zt%?r?w{55CRxeqm$Ek9Pg|e6>IEL@h1JZmdzD2>eSsG4B_Dq)GA*3A|hv_F?fdUBD zE!$gLh*~RPR$BtDmpdO8@|3{18m!}MpZcqmDw;hkIzgxRtul8zJoGzTaO#^ifGGC-Qpp=jlMFyruNz~uv=jYK-L(}$;MDh6 z9lol1-NVSJ$Dt>KrFtAjb{14>G!;A4c5Dh-kzX;?JPkPTLHKwxaT{#2kv2^%=_-0E z?!O{#dhcb@cB$#d0tNz7Xpt;E5VbtqBK9fQjuaKJb`4OUaU%!FNpE7trQtR!!aokM zFPr_mk;)2l8A$lRY@y3&D>BySWFNSj;ClpHDOb3IVv~=gTZ;t$1{r*E$QLAW#4f~^2{2Z6)CK|akhMi zk*nmz;3!Q>XW%c+>^EYmK_4V{eEzE{>uT309ABuCBdN#}~>R zBe;%ti3UkCqoX=4t1>Qbm#M2HD}+yuPC`u7C~eQjcB{z*Ia%8czK;!J_BGl=|BBsh z{KNQT8p!wfxSlH%!lNAh+?QVcCkZ#1*gfEH9siJQ^v&mq*8A@#K3w-D1L679hO)`(MwN~$S z6n%n2;ka4bKW_a4?oF8lyVjL1r!#>expqj#o@Kzzbh~oywlI<;*R-0dX|wnqqeZBd zEq5siql9U=v3tsJ^+&nZ9A?5_7PksQMPbElOLd@yCZlj)ikl+~(!^lknh zQt+XYd@ZA`~QNymay#Vt7avR_|cJ(mJW5Fryc6nE5AP+IZdXkN>1tE(3d zp>(XZ$0U!scB)gByEoT0Pet#AbwG#p>)Xn9-d6qN>2f3a*&jwlC=xEV3r|1v?|-l( z;L;r7>Im(={eHot=_J_8=YYnC=FaP*C!bzMJ*Bp{XfiT?4aBH}SN7KZn72B5Il%a| zVy{J?k?V@nGa+jl=f~DXydVb05of52)uy92^ADTrwwMaO>yT}Zxmg7>UTUyz&S=XBN1p35@;R$ZCBPk@p zN&&;(Q(zItQwj$xbnfJbLdbG`>A34twzeS}G~4lVeIAJAIelDn1bsPzqEq(`f}j3v zw7HH?ZZ&~AES0e0Z*boC`gkX^pS7xp=a@Tm2uwJ7j9J4=x0H`OcLmQq-dJ5$PGVH= zl2SvP7QkGYRCm9|$Q8y~f-*DRj(3&XeQvqj%NcWzC!E=QC%0k2ijcqQKkicvCvUs;Q<>%w$5gP;|}P-;2Tt`05uc zbhrM9Eu`QqxIG&*Qh!-z;lq+UrtQD3XOtFLn|a7TIe&xxX7;Ar9A7^enYAyUK!a39 zePi2rcdw5g^?Ti-Ydrtx{ke5Jq4UtR3<<2i-J%oX$=Gg(t}@>dt&$_0)u3n6jJRC= zYS5muV{KP_duE$PIN)c;c-DdQ@1E@~lG+k0lzzD+9{yKVsg5*aCk?tp*N>?JvC{~^ z_X`O?6ma3|UbNdpJq3P6Sy?Z;o_+}}M1N*hy=31lfcw`EOWf*HoQv~?gO6})--14E zTJnFP$dM!&=I1%q=r0nW>Z>@o=L+Zq-*C^T1m|j?}M|48hbh?>)p#F{rtSp380QW=PcQhPY&rl$3~$kvb|og2pB*ODF%KfSl$+(qe~iN8k( zNqSNj_73yMGN3VM0HV+V8t97ynSJKp1@uO6L$NexdB_lz^}#pdLb5*8&Hk9o(v{mk z#3h?0r2=PJGsSWO%+{GkIicPAf9*k6u+-A}z=@;{d@M;s#j8;)Lc$oB>{ws`ZofG; zW}2A;*!#MuAx2pGJc=?8Sl^?yt`({C3M|j@VaNA9R~ZI!m6M-ic59#zg&OMZUSlr6 z{0$aH^z2>cvGNqy2%TH#8!Z9Udi|wau4_I~IaPYox}0-7WiOY$D=KZbuills?v6h` zMb3jpDt;TGiKBVXCYZBHi`C+8jxcR5#jt0i_3%*zeG*u3@YOb}Am%uU4t!Q*+nfW9 z7>6@zWD_H|?HM6b${t(;jQxz0YcBhmS{p&dcz4P@6IO=_2R#S08PR=iH#~ajI+|#| z*B9Kh%BajqCU?O{zx`XjsH(sbI0bq?8w4;eNOG@lb!9JES9_wu}PoQ_r??}11m z&4M+d1prF}PY73G>POM1^%Wc{W4MPKA6_YSDls)scnibXvE zw+qvO!X@>A8R}$8f&ub9E~*As*jFjKnA@F6F?j^y4MLI9-P)v|Epzd3W;ekO{qnm% zLq#y-uO)SFIM6qW?EKcsFy6MVSayMEL<%AKS#tLf-hl!E%_RfkQE*rV<(?O3=41b8 z_w$n3HXN(-%sM|r(9wqO$ha$r%e){g;<~)N?9;2cl>_jhqwhIrxAyK9Ga=6bjxocm ziR>`yImX+tlheXoU0Y-=AD zJSyj#?ODC1e2J$W4Vm(8zqzwYe|=tk)%89yCPz_FUZ6OCbVPAic>DAUHWapBY9cHY z+E9ap-wYKj5qvq1QUBKx-UPRq5F-)X6MA#ilbPzV;|T4ha`DazZgL22w$8M8Rz5qE zC%tnz^<4GT$DB93+1EM1Lb!F`ZOi3h2QiJ$H_bWy{tN1RL9X8P9%63j$#8jnTouX~ z#4jFsJ^;5rt-e0%yV0N56^lEyx!)~Zjgq7#yya#?jhMrNohJ0nI&wnzCaf6r`I>$6 zpx0a*oQV~IUg-U1f%pahua%FDH=LoHM^0~HrgrWH*1P5r&aDNt#!Vd_Vk3?6RefRg zRx`!egf=0|$$uU4gSVc%Yb&h-bWVXF?T~-<^39M94eq~R@TvN%U)Z)GS|0eXH|fL* zBd6fiE`OnUEGRM8f92j@RHaJg@3B^zUA1BJ|*s56p(s*GgM&J zd-QpQt88^GW5;SGu$@b2cy?>SzDj@fUTea8fMV3g$3AwA?9lZa{Ax?)@!=TX;)*Lk zmh~H%@0~Da+n=V_w`dqmIrOT(shFEz-*b;<8d~N>x>mJ{QJPk?GQ@EFbwM49uin4t zJ@GtyE7X2_emU-R-+G~A!{hVhHq5!33WPSK2UI(iz3L48D^o|OPn?){K~K=vCk6f( zZ_-oGcdM=>JG)!;>osR@j(51gAk+-~f^1Xgaf-=xE)&XqXsf6HSCH!%lzJ$0PPA=( z#ORLlzsLvwN9su=3(;}ZF!!l)rh9B5;A|Kn>CmgHsw=t6C#wbsll}-EXfI)8ggEp8 z2hKf6|3qiNJmo2d4Pm7`JBkHViKg%%5d_$eh1oD_eYN>@Vs|1_j^W7F!}1-*eh3qj zKB?0fPCpiEsy!Z3%ZfBazTWL5y*2CoV5UaiaX)kLeEO)5c=fF=ayDXwUH`AOJOD*F zvB2*;w_$0$oe5 z(F$J7!iy6QY$koB$=2AC_`&<7j-98^)A z2?tx@kXx}kt^?-dshS`-H=*2HML58m*cErjbTEBzYjpZ?C^!8~1lNIoPSik7Z=<;a znaZJyE&YNbeNt=JoGTp9R86EVidYZu05P8!;s{9|TO|j2DOtn%ld<9o^q7*;)^SVW2t7ONpdLY)^T73>`nTVL!|nHsKlAB zDr|alZQ+xUoE+5O0WN<|0em2NDVEKL=)i!0w5?}^byQ;x66fOWUJ>xAr?(@x1KP^n zk=Q`sIVtBw;9~?Xdl*9yQuf|^&mF>Mh+^Gr!#}(By>L|`rTcmVAo8B8yu1-AM-W(c z03maY-Wc2}&Vdj=K#cpQ!&K;aHU&6x(f}au1{g`)Def=OPvgtBL zEyAg9102n0>xq}AZ$-6;6hG1AOOkf9I{DpL*>o8lrhm|!k94U>730=Q zzd?8c+jr@+(PcHzinRjbVd)7YyZ4O2p;gfkMG72*K;wtR^|Vjsz=7XPDpMV6qq3&_ zM!uE&*F3j!v|QqXdZ}BnyrH`K4p1=M-;}-`RWNQF+CvqY7i|z=keBe4`9}1ET@^x{ zcVJWD0QC&ttp%DP)#abMJo_Gu@qT`@J-s9ECTm2+lo({kGzIuu=~<_v98BX^ob%ke z)2G@IDObHF`6_q6*zZ9Q5e&Z38gRxNB^c+rr~QwQ0lu!x2|`kXeDX{Rj}ftCQjDr( z3~AJZsC}SRU-R?#7C`Q~^`&5hH_n9f9G@(H0q0IBctPlq1p1*or{nV$KChm3gOhv= zPdV-}$!q{gu=5VP`DUVkC{r0!;On0ebI2N$XTQS3_!aqbmG|lUv~hoVxQn&egb2%{ z-RXm`lG(iqps|K(t)k%HhK|(kvwwEbB`0?b6aN3y6C?6(gX8&-70_u&Rhdk&Te-+^ zO#^p>wT0vLFO-QA=%+_~C1vFHMi3)gv0;&w$(#AF)cJoJc(C97vNrmRof*n@gSA3) zbihf)A7n3o+b4p`h4x#nU9A;+16gW-W222bX4pphAPhYX@lSjJ4PJr%gF+wtxgISC zwfo>?Wh{@!(uO8n3?^gj;`NoErduol!n{(pqi5y2Kcp96R}C99ypj{FEi-;E`f5Vx zOvyZ)cA+c9&sJJ(ZOPceBJB+i;(&&&)5^Hdgo8UjG|L)Lksk63oGA5nUks$?;t`>h zi&o(9C$q(r-JIqfaAigqdy9J=`v++KP?(TIc>)tTLOo4(>y(?LSmCWcvnvFYeP|HA z4bpBbXQatbo!m?~Jza~WVtbma0Ka0i;8sQgXi$rC z6xzuw!ol#vr!)gs84Zfl^sNUfriG0#)1w9h?o(w+uUsQ; zbT+*&fV+kP@!6=RFP@&63z z#C6HTGiQV6DpT0?4IS3X21#0rNOu+mw#nkk7l%08Q?cUpHgeuF_VbFnt$mle{=`R8 zfFmL__#I3V?KuoM9W<`2&}$OBhQ}e(07QtlZAH`#tdxPq9psE7qY8s2tYseUkF;kt zAAYyKg)tQAIlk0VW{heE(~puO05fEI@^(@8Z<=g5;35&#uZnZfZ2AN5NmrZzvJ90+ z^-o|E54lwL(OHh zF-*CZ^d6}jp!@DuDBEM!$UXir$LI_*ZIv1udtDhtSUU(F2X&Ei6(&qb!zfrM)D2bJ zL&YB4x?ce9<%o?NJCX0_9M0e%=+l`qr@;`LQ4J-G@n1=q|CoH*LA=w<%gDUatI~HHvC`wf-%PpnfAfiaB))q5_v2Cj&42z+XUV@? zq*1|2#5zTHrnAs$a$}~8J;kN8_F%FW>HJ0)zh&rg2$wsWl0d-uJ9i z$*3#QNjye;;|z#wwXa>!nDvb5*b)*u^CNk;A&6(t zCQD}Gmc8>^{&wYsdZK2wDD$GeObpADLnB7Q$vUrC6K~p{9GBtGU$hDfY*Y43OH43s*hjcS?kF}cy zHD&*7y%W>0BVEuO18$oSNt>N%y(w+LZ0mDFQ%Lu)j?hLAMnneSs1p2^>T*ys==MD` zd0`K|PTa~>4pNB`)QX?X(4_7-9F&M}5sCMRJuTvhY3RamrZ8ZNBejZu0YYxoDx~LW z>9i2v(NBH|6r@BCrk35e^uKt2@(2-pfcS+tTN*6pjto>Fy){oDIj%p}VU5y*w|eur z#i+CV#1T7t>&#y3*=DXW<55tZeBc61rs^q{6M$h!*$7IZ!KUl}L49J8@AGGlLDFLw zkC=30>>og63q^_{mV*$qX!g+T^rLz4bAM0K9w$;*Ke0M<$`2^J>Tqf4@(%`UiQ}83e>@pGT&Sci+)kM-FIwbs2$SH zh&66rrF{%AI6R}_Ta0|aV3_AWO4iXhwJt!!&>IL#;L1tJ2XP{(U zaGd{WsUFanxCiNqF49tp=v1s8|qKP6JGW%9XT+ z&}Jl#_i2w*{BU8vDC>%;L@%{(V%5)MqT8Wayf8k@A!5o9TQlQY1%1Uic&A{QZyQZy zJcjrz7?SPIQ)f0C|Bf{?lXQd`PSLUDgh)5*~_u=BV0NZ z>r%Rm7=yaty&;DN=EEuNs97=o`7MLiYXVu0+!ssZa3_r@j%AnOWm9x3v4(DbPQ40k z$WsruxE$g{$XvxcNerHhW69LFuVen@{7!}*QRg?}9@1a^_?JY5`^1C8_LIZne;nuO zH(2PYhFH@O^6|d~F=|lvQ71>$w9J>Q0=pJg?*B=!{CD!>k?L&JwY|pUt$tS*cuQdw zlU)}|e&b%U7X#n6tO^MB59bNpRKonSDA?itMk!_MVEv!9(0_O9|L2SC z8xe6tM(;O}l+>{*a@WLrdX3)&ZO+$f+XydlQUlR**C?0@YOHlPQ^ietdE^2VJxLqyfN)xbj&tdEjA@;U1 zElIfA0IM_?E5Bn%00o{a1(sc$nGBxC6_OHca2~cT`NM zWppz_`0-uvJDt$VzON&8!m?d(v~s|p6@@}HSWif&wg1Bp-rAz6!=(_T4`pcMfziBa z^`D7cEU@AE;1{yg346KUtKyQ0?eOBbwU*hdt@&4)K!knGbLCa3t zBQAJsRLXm`8kM9Oqq(;329a}~YhL0zTM-d@L}YzHHa56Ys2a&Pwp;HyiuT46*dy=d z5$w*GV;=y#mag7ZvfFPpNBQ-Gh>(@m{2p*yG?EF#A0f!u)ZRQ@*8=5D&00~IcuzWZaWsyq8Y!Hqf*7e>{hdqiOi}ep?HEl2}!%-`yb!;T6fyT?0U~gt?)KlKb zRL@LNlw*mn!HTgKE{>QZ|AMIy(K|QKBJwB4m@c#nyV{vc?#7G#`U#?bg>L zUci{5S9`PY8U3OlI2M6EanxrjyupNIbALim6L%GgWX1r#=Dw9~pDf2iHhDUrq}Q$B z0ao|0&LC~_mxJumuQI9v9#{UQO`cvuBZze4EPC0*q>Q!_`s}^tnvPR+(11)%TfS_Y zL19Ey-YI*glv73K#qd~7q*YZv0loPrStW!f-v_8c+llWA1H4mYI(8C=TC16daft-8 zN9#Ug;)bGd9;lC3HghcFaH(pV>-Y_ky`R=ygKh!rqg<|H+xsI4{Bdp3qGw&Io?1HV zVZ;iI0ncOGM7=1*TrNE(#)xk?lJ{t{ejQghIA3W-OS)YUREFHsM-O@`hPu~Eh^3}_ zjD;r{{-v%dh1KR{J4f7q#^Jx zN!X1ju(NcTaa$_*Ml4hJ7@H@|c$g{(u{SgGYWlARx&K3{fH+{^Vupv5-T#u6f2k0B z*|rDbsHPuRUwwRrEomg7P^kBb(>*4Y-~iL_|2zl&UkDu>I2OczQfH;|E3rJB*Wg-w z&iZGuu~5LWOvfFDP$TWQ7*hy6Gf*?&T#c>E>VhqIl~CNVmmBL1T4E=pEc( z_6og0({!&1M)+{FKWUC&)F6IoQ0s*8>P2=GiU+Vl7o{yvh01@emJg*q6$ivbicp5) z%Hc_1#J8cn(6AsvF)@92Y_z^_RmsV2D4dN)eM2-No+?Vl{{T=@SJmn72Un{)e6ew^ z#k@^a;1X9|R%?zv$oAU?QQCbS^39Pbp>WgH?|YtqEjrJ}Tde1SQZg+dA#64Ve$MD2 zc)DKcqb_^I@Jo?a65PReV2HWDOa4eBu#GnEXY-+vL7;UfR-uA8+_-0<`<_7D{qHX` zKMkXZCX;mC9%}oICi!PX1x}q%g3wD;+^=(lH~IX`n{2{n6r-+>Bu#rLx+Xpcgmfs5 zfNcY)D6s;|@FvT5+(RZxE)Bg-6qN5XYJJm13|$yAu|ap1k+ZmJUl1@w&2+n7;Y84l zu;47|&W@_9tH};!K6U8n;~eMut`!M9UBYr`;E(FEP;Yobfn4h_p|xj#ZVwbCGIyL% zdN(DD-zjf_36Hz+Nrf2aVBWHn?!@1u-i{{cN|~+ovsAuw6fErU8Kg0v^I!If z(Pt)TG4=ZWQZf(mQa~8ZQ*FWAO#RE?0)Ua9Ix~ApDbQMEDtDJy;M5B%AZ=4pNXgsl zIEkLmq%}QC8}YO05d$)=&WLwsWr_8tBatIML@d>>jyZ)?G`GKzqHjF(B6s)bT>~=nia%vrleRrc5JMG=s`RON=9xP zZ9L^a$yUe6ws(Gs5j9G@;k=0u5vsR3-JG{*ncH@Auegh(J}UjdbH#B}A$WJunfAL2 z$w3P-g+Ss28$I0is(QN(51G%2FtyEzd`iBGc(chOy>8390#7uqC@7#4H`H&%4i6vS zPVz!As3sNA-wO5G;V9|n-(goL!OIi--zgpz8rTXLK5e!p?!K1`UrGZ6CBiRtxdzgEVN6FA zmsIWkXJzUzVZAFd2S4759P4tLO@#HIAgIc~lQy7b5n{(x^okR71HQO=3_RGYYUwH^ zQ`<}^f!M|FFp&pGwg${)bshF(X>BN0R=R8?SsvG?7IQ+*K8N_d6a6G^rp+}Ffxc1Q z1+%~j$3E{?E)YO^TsK&qSj9Q2Bla^IdDyIJkM0`Ig2yBI;k(b^L<36Epm{-iT0`pM z4O5r^98Y{L(l0{@f9&kBn2q(a2X%kuS-uMXSh>3tTCR}`%Y}XP-{Bup_dLGo0;{7? z&t53U6h4>X3dNQc0(X6^fHB;jrimH74aJ?+}l@+Fl0HV#A1UN>jr z4>VU-^=Ga%zGm--WTNObo_xIPWc->5=Ijy+4oJhxhTX*b(rxMP&VYG!9ozlzv$DOO zV!Z;|_pQ#>tTOXEy|j;LMis*4g4N*jd#NW6kDs6P-{?d94*ntzFf99@1|CbB$hh`# z>BTwM5`xXcKk1yi3^`$Bccg?+AbjfZ2B-);1bq#xj++&vl--+%#R|gH)9g`)33>F} zCM2 zSiuZ$4Fe^QnDcS|TqqxV;zlU}a2F?=84;wTC&(Tsc|QsJcav5ii~?59k>nYczXrw^l$0ht63(5t4_*ir(%Kkf6a zzD=d-u(9}ekEnecpz8YSOb9Hki}_GIV+KZK-Sb(~8t7wXwOlVt;ApJdE+>@oAgsRo zW@@*#!d%z};mgkMG=CDPzdSg0!YuJov^E$Geh~+-Yg)SAtnVVnXMCdE0ZZP?r;4d@ zmHr;0S=}j7A+V4$V1>;p0?e)wx*9R~1rGlSWxa&NK_>|Hen_Efmrh33lV{xxb@&p$IwTeg#`}wEkBwNDs*80 zfhMtti{*{J9ckg692w`42X9$it?M_KLfPA@y%p8AHzEWYYcKbT+h%J&hFjM=9}lD7toO3VQR)Ba;KGOVryStX*9a_(=tqZaI=ayu*otyxij1X~icu$5%1VhF zLAtP_r5A&wNJ4WB&_7K{n(U}y`S40XYAG;f9B0JPGer9ir$nwf;6QEbM$>v4P9TV{3Y<}%&H0KD`HQ*KDrYPz>-bw++}?~`VK&L1~Y%?o{V@`WBM8Sk^QS< ziGAk|jV#^Amh**@LAF#ercUyWtnw0^wYMP5paHXpcrv@q8gwP|ER@@1@%GBHD_ zo_e;y(+|`U!^fqFCUJ8K^qI2sB4rO4u5seO1*(ZdMeyCD!%7*eAF2xpPMAMJv`}85f?1G>hd`7 z>9;5)_$Gd}aUjdS_LmsuR z5klxPa3wWmdzm|!f4qkUHXFgCwPlN81!w;Ls)>{8iDE5cJ3a+(@y7GoYyvYF44y+q z#4!zZtk-_GKZ@r5D2ZpoIf}jE#w=JBuF)`ujtgH>0?p+_+cX%};VxKJ8nHEam@)>&({fV2W80S@0s3a)uM+o+}iKL?B_YlN0wNfq5NK95{2EuBKV0axeW`Zn?dGU*;nmc2bj!*!WokA)6?omtn2_;SzLeSuik z14QL8<-zpt5iNY&N5+v(xsNT;Fuo*UpBTICX>~o07wYSRN8%3lrX`EfS7NN4V05_7 zAvMjPifr5W#lb^zbR`LNGsW71RmyT|xZ@OF)K-$;KYZYw6RRo?9Wc+QpzmXd`e8)t zvQ(-2Dma>8(c>TS$b4JXnlh9M^fA;6Ex_xCRAmc(U_frXiroT*BhdEEHHBC&idjTn zcDmy@Wwa_Kok!J6y~jD)88bbwClzhz)<-+q;RO!IrjW#5I*5< zxp!^*nNMIkFz7diA@)AAgk)8cMU0>fml9&a4(8oh2rTw&!|`4^ZJ4sMzK&VA=24(~ z7u-WW=?!O3Uaoe9ORO;WwTsxILH>?ZwFG&L%+7eoxtqX&l7aDaz1c#nS(25<3hi~l z{V#DokAXowJ9tFpMK>iZ<718>fzo6Kuz9wgEgKa-MVS94E}8GaP3_Q2g`H)L#h`KY z9EeA@hTP-uyp*mSJTv5$X03)g)4!?OVAT=7#)`_|`*xPm!Gk-X?wnw^ z>En0ZUba1)Kkl}_QqTURPk;ETb%7XPxr#N}Nt14MXpX0ivxU1DMPub@`E9(|;c4XGi7`kkq^k!*>#IZ@F(&>CA3g zpQAkzJ?e5p1;8_nwZDiG&|AZC;-E4z8uRC+72ERFX+@o<#qFS8Yav|c{lz3h-76FK zkh(dn6`Jn~M9)S;dfgMyU>pWNe38tKF)AHl?pyZA#l0PvEU*(;_{RTU$3HcrDx_PG zOLVQlu5=_nRt*KAsc1d}uIaZU}%)3$JT;d;&eb>i|WV z#W0IAmk?V`4=OCF*{ppZ8Zm`CF+Ok_CIQYa;dK%BB8{%DzPhsUnAD?08jNW@y3KGaAZSnZoX5D02<@<4Cz9&M-^IbkR91oqm z+8fP7ZkkTevHF*sIROTUnXBcq$+eqb=qIe;pwXXaiDD7Nemw)B1#G6;ku{@#;5g4r zNsLw@zu!wg^wIcpk)S-3Rt^e)ZY+1{31Km0k^Y3x5YXMq_K$n#h_#d_$n6AjTGnIt z)v~2owJkVbDSk@n(rPTuVtk;Sg=^re(Y!i>ZA5b5?rT*f;$U*<2J58s$;Ut|yhBd!Kji#vk2Q9|(}d_?+)< zf}u0$`L>A6`f@HS((G3DajWf~vv6ONrJgW5-BZw&MEiqG2w)^$|5Pli&!)a6BzhZPv>M*ZDmZ)=msX zv$^hm&KfnoJo_~7t1C<_PAOho&)!k+%sK+!`HM3@&pkXfAgOcnFG&IVQW2!%SjK-r zrU+VHkan;kmmF;h!UTGuQ%fP#0)dsw`>fyEdP_c!=cA`@uk%9pft4SP1p{T7}k=*C%{`bI%EOO;E?bvi0uFzTZzdL~C z+7hzy3TKZo0@^fps*GqN14dS*=_{p0@4;$R!s6Ka!qf`GnK&EJusTpr{pvpu(fHWve)bS3}fB69TawJnwIS?x)SlUD?}WFcPq2MmoOXTP(u7H5f(0)VQ-?+?_2#`E-_0XTk)^;dgv9w~*POwwsNfSh1i zI49gsG)f4u6!K#&Um~O2*l=+YK%3XLfwr9|d2S1wuXxY)x_o5i*b?srj+DG6C2S@) z6&v%j)(6HV3O?!8%%q^FPTO$%W^47Q{$X$3V5(79UGrFErYo+SN9K%EvSSnds(Vu- zCyBFVUFAN)*6v!X!o2cBz!cMAjkDX*?HUlnIcm5-=8{NCNe@db5q=c0-qv#;g4sQj z#XF%@`Vhe%-dWheUuc@6R<|N1EU^;q!Nzklj&>8w38$I>?lTUos}@=2uy$zWG4cqs z`E?qe&`N90XTzXbO^&J?+2EOwFxK{YM#ba<)uFLGV!TrqVKj_k1tX%3@(~QC9hUn9 zKb@~PxlH&CNsR`$XYnNIBlA)Cb0qr##SP**g?qsXvnqg+c*np^O%yVDS_P#NCk{|5 z2rWov$E9xv`hJ!t9wptaC39XP#cedH__Wm57@SPKpi-G{kKhDpNE2|dqt2*OOH6=c zMdl`a{|jlIz-qPCBX~dP5ZK!3hdbTBo;hd62Hnlv#3K9NB{+i)73*K(dgRa92_W7C z;YKHFuMLMm3V-WZbT;=9j%eJ{5 z?0g)~6hV2rRGUW$o1ZzN>#c?QLOy3F=%&#jLU06Z*cvw)+DD6{o`#if&kBF4ApP$; zOaB#u?LV+o)&u>aTM7~2GEjdOtFgWjk zy4+DszUEqnqL@l;Wu25wKEZ^|wxs=gVB9@csFn$+X@iV^Mqu9rZC}5JlATjV{!-^P#!-Z}z-Ms7y)h@UFE5=w%iLNX!ezg=CTsFT}d{_xpY z612Kg_}xG~eaq^0F~HUzwR^cPh8>t`824BHNz8`)wW=4J1;Ot=$Hy_0$by(c$-(1**rdn-i>3P;b6w_{pd=ELInJ_asy(@RJ><+ z#UP$COJ{3UX5AXqy6D=Hyb}E4^*CTUl`g(yQm>Ob0%jl#eH zx(!J>8_O_HTilr4uJmFnqG*1}rukyi-1sJ<1vZS~Ui}<~ZUQn77i6(oZiigSzafzD zbx+2?Sg-s?Y}7gI&Vs#l+9VK?ZL_;i8%Q`7pRd@5tX*q!oQi6RC~nPq!vqNy_1ezwS26>lVR0R=%^e5XxQ>zBCNe)Zb5odXqS6b)DTWAi;9FEgB^S zh@iAX`k7Flc^|){E+{6Uf%z|AM_WNZ^0#cZ-Xj@A9r`29xCn=t!)B?&ftPgjbDejW zbKOPsa6wb)ZPQFlEaKV=r>!nWU3?hda(A^YIYbhJ_@s5Hx{eUuCGz6|A2#~HZTNZ$O55%)G5Hyq_%AN4&09O_s1!(!>$l|aybdy@nVa5IU>bOFr@kk>G8lLn{>0Wz~ex{=1v`z zX;TA~gJp?nY@Lgg%`VMkAOQA&AU1B+2VRI6H5Va&nHa8?pBSJhN+ax#+ezi}(fH0UF*a_4#^ox=}NFY@;`q0B;$HcTwRzd1E zFdjFR;=u)Q(+KMM$nQ&`b|#2;y&ytZ5?4qba^{My6tfY|3AudZ(gQ7vX2ZRwP@+6C zBU87n1<&%U0rO+8FjiyW$$k!b1SNS_VT*^X6p0Fu$IZU7;`k^4`q}2;Hz~3^JcRcF z!Z@5`P;Mr$F#0U+PsXB|X3TrRwkljf86LA267T~Ybx4FG(u?p%7VuD}f;k|Ju8h zjn>vU+^NedC|-R_&19@MSr1ESnkWq!oO>)(C$7!!u7f3{Q-bK$<9JnZ``ZjtOyF+O z<7Asdn$w1=^y65M+2y6s7rucw9dt;j4nGIi?tkFhO)&5eF12+N>;-%VRi%0_sB3Y#>bu+T@^pn2{f(idFc28XFdwU{F$0vO%=bv z=*LcM!@`dnl;m$+vZ>wgaeqYocIx35bUIF03FraNWL+ohTy}eNw7#ptdkg&h4A3}eX-4eLn zA!<1!wSyemVXyo|U_hnKjn<=*jki3Q^P~V9M&8P;8xNZA2ltU;Js#H+8;t{9& zR2CL-BB9A?aybDIY4Db(R@tVUTyoJUuTxs#PY#6ZznkbsIppB`=5=!p&V+DD2BWal zMFIx1Tgmno7ha6`xZylDE-l%73GFcAQ){-~ny`YR|menek5qHNP2+T%%~uxAXQIt2af|6=VdzoLM;whu_>kP-vT5YotyL&MNr z3P`7bG((p(LxZ#oje<%_r!)vi2+}!pcZ0q>&sy*IXRZ7GbpC*I);{}O`#QfXqGsZ2 zGR^8-1Ox_}&jj_s+vfu$J@2so5C4fxCU-kOR zt{m}Nb&i-F6E#$;ZxHvy}!Q~48Hli(Le}cd!4lWvY z&=oeJNp~f4T=5=mH*yq^(hK_`)-WP;>vZ!^>ZEIrnXy?kf-IKNrG0lA@LBzYq2xM$ zt!#jy-wf+7Prswgt!CGLZfW9b}yLO$VxwV}s9k6{kXg783!VR2H9f=J^r0KWzve^?;OC>hm)Te@2=WM28oyc@$)3nO)XY5P|~> z^{zoEX&WGR`P|=-%dw#U>Jx?+!ypaBraZ9Cr$3&m6%8VA{gF!`v9|*{3?TYq5LL_K z_D|(SgD)TmY~TYrzGB&cy~;~5IEMN|c4R!J!$)73y)#O_bc}LEvQnyrkc4@fsNpw2 zI5vHqLz*P}!{zB5rWxaaz3X z4@0aLRk9r`^B?t@4`>OMUfYqQF78x)rE8?GOvPH|?ami^cHX}gwtmedVr}!#n2X)@ zvFRjMj>%*@j&At8?kiD-D*T8)lA` z4>~?2qS&-Q-=Mr6);l!g^e)uCi~6CebLBUP-Ia46J-_&G)Mo>HL?KoU|L_7Dl=@5& zoItDYzz&_HKSrgm{j>UNgH&tsD6Od-K=m#xo98b{HyRx$*eJ10#1nPrDbMBGZIbg6 z*Go>0iW-S7Sk^?9JUY(BUiUq)jLC4vxV2rrW#(As{_C)N8R;1*ARPTr@KGl}+RTNC zcb<*sY-71ZDhh;XGyO^o0r*{>**wO+ijq^{LvS0C_+RW?V*5Uq-IH1R@W48*b!r89 z8|=!iDMMHtCPEPCxmtlmLO-vb3nnXMvTL}+QG7@VWYp_B(*DBqone~+<2xWQB#Qwq zhE`(75y=(naj{VwIVg8bA4^Ix$hZ4dJt2hH5{R%J*Hm;it z+&MNkmhZ$9ZgnVs(Jo#bOsV#2^?Q87toj4!L$PZiX>su1zK))zW)cg0C0YYXpP1}! z5M#(PSK<_13VgA-HdN$A`v`lb2UA2-e68;}&LV{dgt#vCO8gF%3udZ`OPi!%g&nOp zh!h9C=r~uFO@tvK_cizJcg&?5Khx8{#`*T0r3#I%3ctb((+Fq18wGw(kZR!Qbg#Z3 zUx$D0G1+(17qrQzjE}sXF9Q*_9xD0bKjA{{etY{mGM760Z-Aow{oTzRio1nRb=;Wq zrqhSmExHAWFU60SaxOdMua$jV`1ygAYQtOw1cmt2>bw7__S29PPVsLLHtKLqZIK49 z?i$VW1!)DS=~km-*-|!BB8moAv6Au7E11SA5gdr01S?sH75*c@bp+vZI!FEv(q~1Q z#x*lw>FZsIj;Ohp%$0V6&T1N=cGa?r80Jnd|8G{k|C400I;5}~OSXaB=Tm7;FIXUq ziORA12+K!megAH$Ukh&!cMNP{sAN@VY`xpt+sbjRoYtTD%7N*T)hqk)NN#FL288xQ z1aa~qgSEHRd_7u5J&5dsh=owkec})+R12)2wR&@Pq6_I7e0^3fgVC>r#bPDF>qhbv zV4MQ#i1dl&PFv-b;8X`wMYDwt;>?(8kt8?TkxiZ=CU;>+pOH-XSR_}{nE1%;$5KYw zhH1gQ&5T<4o3zXq@sY@KHh>jaE_#6cZ2wkHx1me;QV<*vfDM<7(c!-n3SDkskyv1K zE=&EDa~LDI7ndcbtJ?x8eRe5Nv0cXeY17QsO7e>=ROFb7DU>EGY(psYV>NT5vBB#F zb+s^=H~)?)Kf)dC7-Ehl8Xm*6^W?!->}&7ZdDueXk=?RX19`$Fmpd_=P?mb7FVIw- z)K^%_x{V-uf`#T+-%~JOqV}krqm-?23j;y!dHnvlDNe5KDs?FmicW4XC#2e9468J< zNFY(`yuto5y1=bjF>(qc_NXk5WtDKW{wcNP>e#mVV)imMmhXgHaVQKmwtLpDXdnE8 zT=jmh#?FX)Kv`B2zn=uqKr*IDrvCNuE2~oFN_r?4F{udZT@ErA9}0UFafqMZ`&mP@ z-IANQSG6Tn-RnK|C>XGewI*(I+sgm^0c#1!wPlJN5K~@I5zE$bRU| z-Vkj!aog{ZTMQ;~XKmmH%WE4781uM0QT>iu+~sfZua5c87--uG(N>u2igJBY7k079 zmQgqrF+In`A%i%wYOYZOG;P}^0l)a~C*6l2`bPw_UlH#@X1lBvX`CfIJPqmF@srpF z6kiK5ofn-y8#9{px-8}VT7mEyhE*HZ`=_aNLPFp`yZwF zu`K@2?-S3h#uYYX8MYf85(nJ)aJeZr%9*2NhY-?CSJDGx;i9p{1!>V@rSw~5o7VqI z82y2hc|==T>+3zQ(Lb&;VaKk`v%AhCR6b8Di6KJhU%2%Ez!(^6d-zU()LW3Y;b*|N z8S6^$Uyn9ZJAVsOf=DR-`xl7U(;U*z^%gB*#Y9+;I=bB2 z@cEcS#dqP31As9md5F||E0Pyg0kR|P^EEa(kKdwwhwn6Vjk>l{YwYa9Z7D8#IemES zUdPc_geR8Bi;rNzo+|srrRY~#n>D0{`@a((G~4?p@(I+ zG;L@#vpD>xhN4pR$y_)^{C9MpSX-L08H5MutK3c|4{y7XWnzT20?FFds!zmA@Oh{N zBMMO+ob0JCdS~#vHo|7<6UipdFYH9|8oQkxH*^#&UOQ>LoARX+XyrqN4$dl+0 zhhc4-oX#Q{V+nifBB^C>yu?$OTw`c)^gN`~^6k&I$GUI1fHmf;*}wYzxDFG{xmsGDfIPON_Uj!`*|<|xIY4ZixI zrQRBNyiNx96lBLSP-=QDG_>4ReQ=mGgg>$Lv!d13KNe}-5Wk3LQC3x;i1APLtYZjm zJFUlY#+xLx3oS(x0qHDPu)_yZ{G_hEt=F+HY(m_qtMtiAE;=B6PCW^EuFxZGhKT~g zP=I-d@SOe8z?Eu7b-)ky?|Zt9;UTJ_CL{((!{grhE(fLPTrAsC#5ol~2?y7nQ=0Nb zBK=zMLTQ+NE+T~62lWsfTTm31M%#?`F?GsZ-kehCs~OM z%qTP!A^IB-n`hof37g@zW%0 zEV+T&u51;ZpEgohN~S*cNz|>zDJk$nsENp>o+aBRI~__Idn=e6bT+9wn(Y{SBsc!q zg4H8)o1tdxjBlFhv_+)+mQDdzuajv{S5xVm+aL5M&MeEo8Y;uok!CBZ0KsTS!i{HR zUb?k#`0ql_s6yq7=L?ooRu5?ov7gFB^Ap_-L@I-b6}?vLH7bh}oPn>Ci{I-Ds@~2g zJ__KCNZ#W;whk!J9L437648YF0duuG-J3}Kwo-6eFk)nwlK->C&5yLn#7SrHdzA#| zZR0ZD*$Ee82g(Q|I4$V)qXETjS|(Md#N*Jr^dlh9ED!cQ+T!2plP^p=lp5#z-`z78 zTq+j!VYgq4Svn_A_QN(!gnv9YD0ZE*Q{d+n(a~-bspgAmFjdnA7(Y3W z2f~oy8%P4d5(=Nv0RKdJodEJ!dDRp%k?QSKHU03xDJn-bvnW!YwRSp9KC%i{t4ZSP zg%9<9pVcBt-ri1KP7=(Qn*NRHaqr(vJ(P5r(tej>#7q6VUOQ;-fO@-9H@70ro8v2P z5C6s6R7i)>z{~n&m-yfc9%`k)!bHz|1Nw!(OxSewG|~;%%$!FmFATN|ZtR|&i$@5P z60Db&2g$3a5s?MgZA#+)1q^OR?c7jx#Muf8&5Qr);7ihdEz4!i^NSs>;(6Cd?ng~~_^rBgh| zXyed?n@Z|$m2BWZi}=LWHQ${-O?^fOl#l~Ams*6UrbFwMAy;SjO=jphn(SzLk6H8a zovdg}u;E>?+1$c{oSO*Oda(|!N8bCbNH=d;Hf^e=T<-01HLLlP=IphS$y_GSy{OfK z;g8F7hikuo+f^AxK$S{!PHjxK>gJfRv4|aed1Bq>c}&U?V_-h#Ped5fMiu)Sl(_Wxp22s0fC3{)FN@+3!)D~4Glo^1W`JTLaX94FE|mB>YFg85V+bTs`K z0wE@({x)ep(qDW}n|WHUlAp^vaO7w}l%cZR1ad;ts)Q~r)b^w;o9 z^~sFBmWcNjsmW6d7vf0%^0|vPdE~T{%*3u2A#k^hOXOV z4j*QHG?JVaT0Y!ARpBCLUv0LbINGnztE9*6Hh9F&I%3A zpej(}g4>r|67-H60t+sG#1QmWGBD{U5&bolnq`tg_<&frVwKz1{~dmC4C!&OWzNoa z#5>2=5likCndN4m)?v{x4rM38GhRc~TKd`j)H~qwbU(1J5WI+d7)(y>Ty3yQaNx)cJ z?8(1Ko7{d71&?nsA5$1re8D}=m8c9uTQYqhR=z0pMdWp9JW#y5X@6bHZ^e)6^2HOu zkI(WoBragJJb4hP+g4yG1BN}12Ap>kqm^JYxCjgHx0M5*JyAFR3d8VnIhaaG$K|hR zbC_^3iFm^BCw@`kt<}+Q*UQncq2WsvWqHr7FsA7+Za>GahLzRWXm|l~7kz?$EWZC2 zEDAlyEOspBU+ig@CzFb8G`lY-j|%FAJ|z{1Vbj4Gft{WeTm)8_-l5e0@SjuU)`=xP z{ZhM+!N7_nw+8^YN8D?($zI-L?b}vb<2mcZYi${(gxU=_Dlk|PRJO*v2o>gTWIe6D z@0EDQXFc@?%W|~9lo$uyKmb;mc>w9B_!e4NBa zZg<4-n!76EnX>$z4`&x@NT@zT1>hVc9Xf|a@fTT0fnX5wqloO|Ju{4BFc%fmM znCny*)24kVaE9yLId69-P3b@Fc>cFx>fBU7dwa$z5#~f!w*Zn1o8S2eAj zt3F)5{dDGkoF0~AAaoi#f2r#)B7|C$tow_WiM+2|Hh2q_iq{(Lwk$voy~gbJP7VS; z@VcYh%Uoq9Erv{)E-`SPzNv}8^f4ThbvcIN=bZ%M>%5QYv`ApLBVPB#(`oy%9>q(W zHUXB?t!IHp%C`8FXXu$|wZyBjq0gJh#+%6=ZTT;U&uZ9t?Dc`5{ZuKx2q7KJ=(%iN zD&ENW1l@)2fiTYNRd1d~9&!{xo=TCvX92sN+=Chr6jn`aCA%7hMt>xFQCf`m9kUt$ zz#DHcS-39#U9{iUe|eSi$vYZ4^+CTN&6Zo;+Dyz~^o``ZICp96RiB{~aQ4%rdcl9e z@^?JXcuBfFkJL@`r{jRhg$0t~vjMzihN{sn)7Dl(-Em4LS}95)UwxfKBB!6{2+6im zw?4m9rx+ofS-mNx#exFmSbr!=ds$kY%?}1X(eL~dUGgKEYZwrU-hy=&az8?j^z2~% zU2Q5AUN;)l2O-;|?7^gA=u%EzchI^<%!}}XFIfAQ>Op4xmLoUqCmI?!eqDKp}vdF0=8uO?Bbh7lg|?ry!OElZX^?;@-;aa8KC{i z6zYJ81=5H+;<5SAVhF!x4Yl|1#9B3wo{)4Cq@1l`2w(rLSbo|W9*yfktol#Jj?@aw zOF@lUq5aGq+xddDRo(-U%LE9S!c*&00NfEJFH@|ue;Dsl2z!qJBOIbqV;Tg`|33>L z@xEJ=rGOyLiV%x9)&f^#dKFv3lW33B)iq==%+7IZNQkO=bQ?I3NptDb{0E#tb7Y90 zdlw%3hM7$8g}Zmh2x@Kv=u_c5$N_@R`*RVP8oi#7>s719IewqTE3D~i~sZ3zqo1BNMM=F z#BePF!P{mV%Blbx;yF={jOUMX8CI3s!^3^;!ug_M2gP;jIQXsy0KP63O(i79^X)-9e5vGLw`4@Z388%q8k#rFppJUc9;7_Yz-ojW;BEP~ zKci*d`CgC=eteTK2}R?pn%vnL=H9pX4(yK7Eunr;5_QqpS;b#pI9GM52TX_h8M;3? zcGtWj)nuWpFIS-pOlWxMf4+VyU{!*EkB$#YlZQCM6OYyKds}BNdwtgRC2aOJ=mVP) zuYO_8m!nGNy;nPp%6xB*Y!6-5i*^574G;zTY)|HPvgbVq$zXlg*G)N?E912y`a(Scjk0OP2%p}&;07E*z;Tr%XuP@P{{@iO6mvt1^GE$SH zVfza_o|u$}R*#yBR})vx)7U6g&hd;1nBcp$h>2(3NW1l24!FlpVL|=Pp>US7p9A^e zAP|yRDI}p6X{`x;vHprZT!*L|$5iJlT^#H?K+8#igj3vvIo9KIQxtTbib+W2mh9eC zd~G(2JcgLnaTM@PTk~Q@-R0!5@26ylHx9HH$UtaV%PcP%?h#@<^6n4MI^^&}{{6iq zQo+y%0slDv&#g)^WSDXmNuQsQD$wh*T0H()8h|cOY=sC{8)%l{n~-~$!UE0Q17`q{ z*rzceR#M;G_W>m!ZcH@!17GbgZkvoGZs?6yWyXpIS8A?P);zVrh661=BZlj7ko&%P z>aK=3i_!&Gfwz36&QS^@Q*5JGW-mR~9v<2jCBzNqN(v1^X#zf#IXSHa^ORLEn zAG{>aWu*^GG5m1=!G}=fl+UhP>8&>3eje6RCni`}^l6cdSh`PP&JgesM$qk*gw1>h zu846IcbPeuDj*A?VGyaa6JvLJYiYS&FSr-obqyAZF}Hps;7Y829z}SaKT9~sMIYoQ zf$#pjDH@7dI7C~{{?mj>m46N`!-+VsZx;S@mI{}LqJWh9zUX%FAyq={>KCOu1&SeG ztH?Yu72hRIHk-Z(5dH#ZpG+w3J z_Vzk|DKd;?ro#OWzCDF%qN^mDH&4y%KMdYCluMQ~Erp#b8|V-#l^gHZ2zy$dXTzy5 z_}vTgeX)hXfM?dR17Ga>LOG01^BhP2QsFkm|9tRrjSFuGdg~-M*vp{&DT^6DVs-rT zC;Xm3g#S6462gN0n}GJgO5M68-Dqh3^r@aYVZRVL9C$vAgjAY}&e$S*8BcZ0fV|5u z>(-I(!)8o4NdI+2Do%f4b!l8D7p6p=!##XE{;~>}^S`7$567X6tPjJLOVSDVNlO+E zy*9Tx9!9po_;VSV4D`H=$=<9jA|R@sEh1DkQ#?VK3jkihBbm7#7C0h;d-C#nw?5E9 zrR#EXKxR zWMN{;SSOKM#A#J)PrD|S#6id^FE+KlRBJ9__M!=paWEwh=l$Q)FZwC*s9+PI{ zR(}8WvRGBag*S0I8@tE+%kxDypyBr6*i44s*qSBXYT3zc8H>OI1 zlct+M!S{8}#t9~|qw#9LMREGVK03SqkdaDS=%=|ZQeIqmoZXb&7|1X=s-^xTEZ>?! z!2lg^h9XP@{WZ+9Xl0=|*=QqoNE1DRu0$3e%`iTxkFYclcC0Dzc@h5LjwIqAWQ<}w z`%`pTfr_Rx%c!0UT1{Kkc*wrniME7{=|0!H2``6V&0y(^rnz!brz~mXnvr>6wZx&? z2Uq5=$<>vqdYI}G@0jED+~Y-lT>_#{)Gyc>tgDEb;thnz{F-Hj#+D-Myhc-=K9;7=h@ztFzbjMAX z(Nebb8^|Fxt5XV~H39&F-#wvr_$aAXA^9W2hvGg%yK`9*Utw&fUY_V4n)*#U?83W% zfYyBr%C(W%XNKz|*0?lfA|%M4T(sV8Qsgg{uT9=Rx|GWd}r7 z{T8IRJYFZ+GonIKF8Tavm$zw;cA6gbo|V5@)zi; zb|fJc;JJ-Pm^I|Bij3TB*W3z5u}c(F&De`c#v5T_uL1g}PGdcjr!xb%( z(;8&=7m5FPGWNfNHQtvPoLaoUAPh<16BsH|nM>5b!-;jDQ~RWGZDu9nxSjq>!-tf8 z*PTpxx)O_h*_-qd#$LPZb|Bdh*HXsI1xLKUuc6Fe46J-861vUE`V?|`!?KFM8N^_* zMWjvw7F@Z&(Yf9?JV14gxS+Gk;F_`O!cXhV2K7{ zH5(x_5N|Wi-ynDi;{jnT^vrRmXFVN=8WcMF1G$ac@R<@S2=MVykxoDLp*_^I5{=#P zpMH^a&9$h+E_Gwj5n^=l%n>m5c;RMd=4W_KPCN{kb5AjtjyqKZpUg=mRZ*Qb*_W81 z=}F#vg{!ezi*JbKeYBg7%PTslRIe~}j|)V+aBQstW`+?BytE?gr`(|a9yFjr`9mNq zHd^$T$gzrjm9yI5OtxH#oTPY0aeSr7vqe{bzzAio=b#9ds55PH?}`;MPch%XB**22 zVahWCc?|fOnx%4@LR+YV5^&2U&YQ@bjm_PjkAWX?``QFm#;LOG&M}4Hzo=+UWD?x& zJEEY3N|Q>j&*FKkcBjgvZ8w($Du{IRSelntOuh>2p$P-cpPv|Edht!vl!PXC2b)A| zcKDUa#VgT)Jd;V~Hko319t0PqMmcjd8r4Y!W;Z;AyRfW{q7p0}LcgIBuo7SOPswVJ zZ<;ZJwMf_i(ye7S(}Hye<1cEUD^J#`*)QJ+VrF?`lnhdFKQJDV;+jftH4pYBJFvz|*pCC_WZX>1&RW}s`gY4p=2>HY&h zTA=?^Qv{*43#G=N5`(e{Ic+S#6gjb{t3;9bXDZcgos9|IfWpDncU~pTP9rq6KHiOP zwEewV_V=d+HJprn+Ru zbj*_=6LVZyC9?#Dc1z-SAw;(ynrEWF=~CFd9h9Aki{2k@|GK^m7VaSL9MFPmlWH6k zuTCz<2KKtB&_}v;WXiFSJ5T)3bK)EE#@$BE2e&EpHevr^?*h#i&|i^SAElIDIkrii z2kivSyhp&k3|1gSKNh>vm$8p*YvNM0+V=v&craq0s7*(4ziI$r-IZ2M_|1jaTvXl1LA5D~2fB^BElnn#3kK{t$;={*pAap9>hydlG z-in2&lJ{7`V9qf5#iEqQWi%1uUNj=0*VE%pH1(Q|LmW1AyMn4C8EGy&L_%#KV`*m*l9PRlXh``1tUa-N9w_!+VKB%~ao?1x8W%>U8q{k@{)1yuFWZLzcX)X|H`IB41UtDruqP zQ;sldMMC>YQB-@e$t7nTaN$q6Zs?W|Ep>vV&>cdnS$d?Gi4VTYTZAqJU!7m2H8B^9 z6@1=6!u7Wuoli!FtOqyg%m^vptKUCNqb|^O+h9Z}QeD(?0fjr>OA4GXVW5T#(ILit z%$htqvK_BC9vTW}U)90HOF<^g4Yp&Uja}!?wfe6xqUFIJr8dgje^U z!r|I<6FSkg&MQ*{&lykX*0`sX@api;UsDSAGoZAyh+lMn`I5cXcNO*Kmv&4}fJI$b z_U2QANTX>MciUpJB+VWDZjA%oH3vU-@$ZF+ZrVL1%KjBPZHh9A9}X&i zj=`}tbA05!`guGqjg^rdoYE%u!I>lzlxuGjN>=dsa#CGXqw* z;Q&3@onGwPdHPEb;u60wF$}oEL+|D}MkM?3_6c1j`i@6XX@knW)`dcugI1?kpq6Mz zA!qbi>2ad);SBxf%J(bcYhiNBtwntmEyFj0S(Q?lP?Rb$8aPR5?nY`C+h$$$VJLsbyjaGtm3n}%~E5lf4Vsl^x{q>q! ze*cZZe=@F#876N!X#2J_4-e*S@CiLS!g9BoS$PuQg5^$_0-x|MdFm6#ep<*gbQrR* zWF?%Gm(Ut|4sZbbR)IA{z+#ih+^9Q;9{!;AQg$>9H&2W%YAO#NgX~U;h2TcwG1?Yd znHB~Q$wj)T9b2J%nFncBvPe$A9c#PXpo{GCGTqTyr#o51t|aanThpHUjZ|v<64XLs z*n^KYoyz7U>Boi5oVXaLh^wUeog7dcAbw%2bUNoeLb?P5T{XX9m^GHwWK63~wMMeJ zq=~LKc^|%O76Z!6D-pVRHv;pyhsZ+v(tCpXKM&gJV*}bKca>q@BWoRi>Q^4$ZEOvP zWiyCV2*)TemE$Tg=pv|>F$Ok07&eYNQv$kKL+3d^oKn*6Dgrb`$$Elh78snjUv<}J zkUuAylH%4;Sx&#HAXiT=Wvw$d|0N@+AG6Z1?c3Wnv#$W3#M7jZRji6|SxD34nOl&X ziA`{xWymMHVqK(*RbW~C7JgC|bXd86E=GN%vm$-PSfgWC+{C)~=exIM_KhOihackc z=C#q&`en9J0z$7X(0mgWLN(002yZu#Dcs<}UBCPx(?wm1efE)EX4qU$vjg8wB%Pwc zDZ1!ObknoHE@fgT<%7d7jx=NwOGjca3&~XsAZU)fCM<6^p2NbVm`G>x&&6zbc%DPU z)x7{oxOwf!gNC`!ce(8|l2L103HzD^C{_!TAoP!+2*X(lzk192M}L- zQB91fmyereyGC~T;{v|lPH20RUP}`h*OhzOlf<1ZqJ8JS3j zY&_)}Y3Zo&EI9otw7H{S$6mYAyfvvAhh(c^Qqoq+t-0%`oe)HtvLrw@0+|i6v+I=|H3tM!#wqLr>+>JQiE`Ll~;l$I`L_V zGw{uuJnwebKzuSb=-$mc51!U(D@g(2Yv^@uBnGHjCv9@SmLwz}R_zuQo{nz#Oe+eHsCu>7{K)|Ci-b&aHX$6{Lk6oTlfPumd0#$okLZcFZ(y=B{G<@x=g zk&t4a=2pVKxJM8qj=!~ip++b5wg}y0<~m`8zVWuaNqOxxr3!ew*4eBt(dW5c9VOgM zLArtTp267wthaOz^OS!CEQhSY3X?T<=h11o zV*8mVbMScVc#fPZ!J8UwVMt@LH<=E_jMS?sDd*;ZQYFm@-$*W zmN$v*<-am{4>j%18>Z^J#eLtS_8X<&O_I~h+TiJV$TjErykt zXbH1glGbqNK8Yn(-TR|m3K;Q+K(UAm(osTokuadN3iR6R#KdUbK`lMB9&Ys;QLQ> ziP+a!1hjF@grrKj1~sXRKVbG?hvjXZXOL)Uzr@oYHcXm(VZc_Fhr|lo51nYYX_J~B z?^Ze{940K0Y0k?&%1^RW#!N?|tpQ;OO*=A=uuV^4X(dK}E>n5#`}^YG3afUl`(CBo zU&L)C^YZe+4zh#=eE2|Nmby}=0&EPTrS~IWDOvteHdX%I7b>ExXXCC!_{6xWo@$Al z0n4*fh4!iewdGrDPPKbsSg`Cl|4=t9$e1F8@mwvJ3YD#B-bHXvSyO;lD5)5G@;Sz$ zP-`(q2qnMhh0K&H;uiT#DA`eC;B#B&irL~P`*xU~>U{nQoc4l|$xEIgTUy>%*gZuRjfx;N3~*yxY-cgb zXtJ1#{MUBrHgB4ZZM_2-0Fo9hyFrXij7!L1~r5ZVi^>2u}6#!j>X)NUVrdOKYF!|>-e@j zju$1YP!em$PKwb<UAXUO;o`A#W4%0e8mF*GJc9FtTlnkst7f3( zc`|v24^k^qD)xuO+um-Le(}yXg0K1@q$J0hGvLNI#g%v`Zx^kWWeSW;Ys%L@>i5F- z+ZsI|);{NSMdI1R6jwnsaA~1HQHIq`f9V&04j!r~KEd z9y-T-<`z`6gIs>;ryn_rpBFDVoU(i5b1gyPC?of9gbu5BWIZva4L#exX^Gqa1UM1Fom$ zV=tg*>cb4YB01f8Uc$kGpN4VoH#Cmu-R97~YQ$l3mK2pW+JFuE1-o`X^ z3Lu@E5N~g3;7)$`wG!u*+5_D(7IF{FH4FI?+ZWlqPcl`_;H((6bZ^$8p;a402D-%`AMuTLg^eHbh1kP`0PixYGx)rsLOkK2J1S@OU? zx0iY{kMEdF$_0+^`vBgjsBJu=O=uwesBs?P5ikDicJp!4(Ek=gK2o8GXOeh%1w6b8 z2#Bu}R2%8AgvpVzCI+#?QMhhax#0de&@v6G4e|(Z8x@&CX zhq7F9UFp6m42b%`8;NCRAWNK%F~<2qyX>6bte0xD6A600^>U2zQvL;e@{~jKUFv(X zeHu*BDsgN|v|mDgfg?U1->`U}O(*Ton5@uU%JqJS85VYyht7U_*0u7e$d=uO9+p`d z77<2H*_{L60HIJqO;nc~j?? zGL`X$(PG(Hf%AfZ11$lA#Jin~f6z9>bq*9Q(z^4VCf&fn68?9*}f+Aj(M4l&A#>O$KzRxix0c(nQRNqkl6_p;+TOPN7#FSm!u;yZq(;!#b&Lzak?k zbItq`@57Fm|KNYCkdgjR`{s9TeaxODd1dH#w`(^<542$L+gJni2VN8>WiB+jW=5}E zHF$Vl;{HBuTI_(g0_o`^eYaMm&elBQvo>p9`jrFMLW;$IQ5(>zbck(9JYGz0{=Gkb z=^A{V1KwtYlMKYK@!>X&N&k~@Ug4anlGbMMJqZP5&0eordd>QwVg|z1|Jj;fxeQLn zo&8pO8F}8B9v;sBxq^-1pS|CK=`kmX?)BEMoTjT)9l3vG5dpZ|N7UQtTo;k6QTtp5 z#KVDD5Qe9%Lj9wZ7Zeyg_xU2yB*tw(z2XnYnm|j$ZZbhK3QOC~ya=##4PP#704LQgD=X*AQOEjs~v^gb^MH}4>x*%N(EVcm4 zo8cG80o11J*zoIwlj>7otUxV!?Y%-|a5}4#@$i@)P+Q zSZQd8WkiThu9a^+4-glYWbhT5K_zjG)uA{#^;#$^aVU~ACylkYHExSE&1L`oH zJYx%S-1%PEiCzf)imrp^}U4WoHwYL7>u8zPNL?#GXhv5nHU z8Z9jfRhGMR+TvYzLOXM&O1r`<;L>`l6$q9zQ;2zJfH+o4^dZQ7LBfbok! z{k)c2_4t(sDC5|WXV~N%2MpiDhk|=|X({uPpZ^jBpwaakNxMMCGDZNK*%B-w(`3?M0vXW7rqx!19* zK1#uc+k>ne(`zqjMBPkAcdXGv2rNXcb4N%AOl_SUksteUr_9bC!%ntF$kk0&KC11i ze>$0L!?&Yy^P%&o!iV5n>tjCeraK#d9P)_uM^api#p*Fgn9d-NqGRbO)7j%|Mn+87 z6eB%@k82w;C2~$Q$<(xHOL*Y}mW-p#?kxjRGLct{Q?L=GH*jZz#+H)PtPbaumb})i zz_H%;!`TDo2%$RWMTXY1dJX#8_|R?SnuP5?B#QJtjERoq&a)~ZDB&~?5fE}&j#?oA zHtrWH1+(kwCYL7L|1w&}Q&R|35fs4+Fu66@kZaGFzzxqgaKx7myqB#IKkbW zAi>?;2A4o^2@oKGAc5fS?!n!CaF@&PoVxG(;nuDH{cyfbb*xA-ag{P3(%W&X*CVjHM@T~u=vyLiEuz6c+}Z7>GHoeG(K~6r&#Gj7mZ`9{+bKv#Vlhocc(M_)*$Om= z4xP(TbN5(=V}O%4GH9*jCX(BQy9cGIKUe`FYTp{3E|`8U@z4nk+iHoyX=W01@!f{V z+WW>zKoW`^!x5voEX4YS9qdi)B5Rbcda*-)bnY+sKB+&3KRV_C`zo6yPu_BT3dKMe z`ex+KUGP~&aUg$R`^SJjM2Wwk{CFR4b!G)jTUTrH3K>GJsiW=ybngA#y}?Hi}S|(p@~C zS@6;D;0o9I@8QnWfJPsC4kXUu<{Br1FVh|g%hWnUjBw%&A&DDq!9HP5$9gaA;*nLM z)VZ@-cI&QOgu?)MyFIab0$i>us!NVDlo%rM{7j|IBfkqI_zwJP2&!q!v)qIgUW609 zBuP(^S5boeNCeIv-zXoKFtUsQ64OnGeJS>sQgY+S9~Q&%(9AOaP2ygRPu6@kC8K23 zT*Q|x!vZ1}hV|}DU^uCF^{13+)6>pm6hV#tG;Rk=REKX=7m`Mn>Q3%1q;Gn1MGS{VJEWBbKTvfYpN#>tiv zpm~+@g7UsaXY{O82e}fM%9l%R&YH$n@%bH6;htgtL*wGAw4F^QUZseu&Ia#gzEaw*y zHeJh3%4*n|m?X^}Bl14z>m#Mda2cqkd#+T#S+t+(dwMF*rp9j`&F0Ya^nzulG-qS5 zmGr#dHI&d&tHg`f7%Kq?G6+uu7@7?1zwClPC=o0BR;*nTIp8~J|MjBng- zZdfUZMyqbkT=A%?cz%q3(_{Jexdcw$s$o%Pg=92u#b>zy=)V}at~|bU1;yNQX7knR z#F=j<=0Bp8sfO0~QQk|llSbCZIeRi^FHn%5l_PLn40skb4r~z<#dY%>wG9!Rviwpl zBKAeIcj!SL@Y_||)VrP*8TqL0zEa?Ls5{qy#QS=x`xhinECWZUq(A0gK$Mc7CDIOWsT?`vBZQ<&otYJ2sk>aXD>MvR`YRcuK7 z_F6*V(-uUd&ErH5O?vEp^jY9W_D=JPGh(2%eU4QEZMy7VtpXm&$Efzk>~Hr61Xqx#2#&)R7Omv0?E7=@qHnkth^f!&%vhPg?r*JI{Il8+(SsC&w(=f@RH*y1B%?L zW|hhk*88iv6Tr&{H<~U_HWpT@CmQdkd=;*g&!vzb;R9oP-aG@-%^^BgIrV-xy1}7B}JC)|Jzu(!NyyzC#ib2Obc2-D?*T_|>b-L_Xj# zd{~rN?DY?8oXI&jPVp6jF*j8kUf74ff}DAJZu#Q2YhjYMr$_aaq?`Pak8^t&RdRoEi) zVz}sGxKtT_NtCJk5hNQtX26hL!xWNDr;|80@``~qw_S2MZzkf-tp@$mr7Gi`!*5T; z=F%3f^Gm*h8%T_%11dT^*$A4ldXvKH0yG=%7JGJg ztJT=i*DgbCK3k1h+Z^7=9?>K)5U@$GO@FMzt*#*Fl+nN=9^g0Tq)kS19NkK0C;CEd zHkei4?fs?q#o^I*?xSlh9ITO=XfwJs1q{_~AP=s*ue43>YKU;{efT#SPSV|L0I)%m z=Ro4v@L{yRJ<{%D1}m-meGme0 zOWcf>UP{8K|LL4bBs#&aySvq#cbEOrkzD>_>LVWNPALVS<|NZ~sd+rp-MM-{9d!(k zJE%ajfqdwzx&TA*{_ zRYt+nElDIX_M_YwCFKoQyNPIZx$NBwX%HgC3W4)`+{J|A6YmUlmLA9XK&>6bH2UoK zj-n<5y=xGB|gv4BG~O-USOM$`yRV{ z)=ogS%P|bgDwC+^h)i-nlFB>Gw{>40!5Q~9w)Hs_^vVvF^;FgRz=Jt3^>zJ8#A!`6 zMOW-1g3_SvsoJxLj~>lCwh*(kF#+Ese4uNO4SL<=x!>gy;Aa%?EFAQ6q~_zi*a&?@ z>KGqjijGD8Q(DiPTSH=TC~51jqC+S1ATO+20Z!M{0e7wWDjH5+5QBVnn)N8^&KKRm z1zYsR<&+O>kmk5Mkn9+KPA9{=tw!ohWJ&+M2}A+68B@SiUSp+|LPsY7`s80l5x<9M z^#a~8R+C>f!(0xu+#zC0^X1b8bRZx2 z`m+68o;JT7@z^B3EVS<14JjBi*_{4%vc^OD-JF2<{KERZF+8}sjCsR$yC4K;$uWjQ zjoqs$EaD5rbsPA}&ObwUtIrqCShUa6l*Eg9;TcRm82gmkfJ+J`b$aE@Cw`um4t+Fa z@pWPRpgJ-GA;d=@Lt=34VZm^AlhI|h+}XZ!$QZXK;Tnt1wiR!JLDF$aupf*$apn7d z6^C6Fs0Q$nU2UX)pS=VkF%oQ9DeUI0(Y^XIhAeH^U8gfw*-{syalv`pl!J%h9hah( z3qy0J)qB(WN;!D^v(0>HvV(4XATy4zEv-;N&EZEhL5zZ8B6b6mQ$5`pt8_$~Fh{m< z@EDM^9AFlvj`bF{*Vlwn3Gf7@TrGw1c`g^HzeF;vX2%Zm+q$11 z_O0~{N@&7K3SU&L_vepx|UjyUhBrRG@#f{&F zr1y(ZGv+>>j6AY&cX6dxZ|P5~568tU zRi!|-@$mdu8E&`^+b!glX!8TAxP{CD^ANmDzk<|U@D@%9*QVB;^muUE$znikX8>R7 zBH!MoIXU~s^Qw{P7VcYM=vMoDWckDhyseQ9RE%v(5jyL*1`!2fZ6sY&`t5fDQibk&zBW*b5mKFiJNCtM^U`c<{jU!-!*H-i z7@6gat&pS`t@yzEvjjNsO-LP^xe{KEjCDaXEnxqy-p?F^E1&wJ~e{2hoR4gsP+32c+fyED6pFcve)_G3w5B_BIG>w;SFtX%ElRqWn( zI-^2*V{i7Xpq+IH(TB+pgOTwFkEYsjs5MDf^Eq=;{%Bg%E0Iv1MwefX$2-6frXS*G z=POG;mmi$5E?ik$@FT7gYh+TAf3tfFML#j|sQ@Pt5Dhg6w`)Ac{3PiJEB?K!f7ST3|;9_TAy8zcQBxW6Gi>Q6_`C$7YJNsMwIla&L{ zPkADl%*+}HUesSyS0+ihZs;y?wJ0PZCwN=p+f$MTg(hF(&MZQ?ajIIgeS1ppdV$=i zTDCWI{b8Jw!UH-y@~7j!yyQCNy8YZ77UX?$D3y3dV$C&b5lq;=rogx_x*N2Q@siZV ze@DmcMSG4s&vWS9VJ^$)9YvM#yMV)}(VR1Xz0F%jvCoa5u342_zL#!zpT}vPJE<8P z)z^T4=pyYGJ9tB+lOCfwai{5V{?k_VtHGjMi;NR#_$zi4fMM|7zi5}JHO6zZ}@>Z0o=8xT>E^bxK9Ls!t=qItH&(PDTnM6=} zt3D3;&lC5A<<1$`o*Z$fRyDJx*l$-m=^`NQwjCzhFRIPD=X!{o+++Tv_2vAO3RL>1 z9hn+(IsJDZ4@Na4c{)|Oz$(&KBYsR^USoU%KSw<7NgCl4BPg)Aa~_43otyiu{h_Qq zI_q)!sosC7-rp?v=^I)L4w6xZvesif>@FVA*d9;+XP<;L7&qW7^c)lac(?5BC&T({ z53?Lj2@5T-llG_K_E^s>YlCm@8yt&w|0Nja`dtj(d0MQszcimTuRWh$5E-8nedYrO zXnlR9uoVkU`ywnH%cPyc93pSXiIqdlKsd8E3GUur;uQHbNf9=t4 z+h3obZkx8?Hvh|^ACkZob{h}A@C>~5d(@xAu|Idnl(l)!ZdSA?jx6ao=CgmEXFh8SyU>Ipl?i2d)F zs$RNE%HWFWx}u$CPuRrGhcLlt&)kUl=LgRGkpTb8*-;P&`Qs(u z?XmI=7*0YuLP)q*b-SDD#mRfU6IEQY03_4pMKV=W1b&S?CZjH*k(Eo1$o0R`b=ptm zJr}i-fd;HoNvx**z{Sf*Cx1)+1AaSj3KWsx3}%!`>Z^+64(+k)gVWA@K?VOx#}if9 z2KhJwnDs^ zx~58@$E*JIHFX~VIby!*7+`EZsh)4++PJ5SbJGD(*ScL5yYytUVt-} z7>zG}qFx=>$W5ie#20zR)k(Iu?FO{9c60>rFH(T&Oyl;0I?uw=zA^&B80Voq*BNjZ z-%}&sl*o+>{m!z%6XHoY&cE+c)++`&46w4z?LI+C1<(K5a2p69d^jw3t5hvkM}K(p z8Y>(f5H(u}@N6n*)rLP7lI!)<8#yZ8Ip|N62m+8kDzNq#nIgE4xVG`LSWABLoo6a! z3H@_0ZH23fZx(-fUu5Uxqr3kHAwD{h2TDMA`5|(htEhm$W-VK>hmz4rJh70|is!Sj zkCN~I?FDc$S^~fu>BeThOtKl8k`<$o_RH)9ezr+K4KExt_A1ogA z-_=gb#ja*GC__Ufd&q%Qtt5Ub#Dy z;;P;!vMo4n)A4=kUFXqex8}Dd1IKRVDPlBRsnv0q6Hn$6r2#Llf(%Re0$;F zd~(7{#KNo0{3t3JTs*mr3pIfBtr`3wk75l?GQdw1*1()bYwU6sJ; zd8fb4Y%5M~^eGlvcEGErWZ-CHXawZC3?uzPvF1sx?ODK3)5ES>4d{PUp zujRvK01Q#}|(clPRrU3%ZAeY2Gb1u0)Lad zJj0Y+#+v{Yry;}QOmb~vaB8PeXx_Mhx z>0hRY*V_Casq>DXT4DZ<7%nf<=VTR6g6&=7 z^{prNJ8X{L^8D-V{Oz;d?Gk?5G*nTW?RPQlI&HVU?YDom{JT>w*N{C!vN>kk$=gin zX%O#QKxcX9p3fW+t#?Kbk72LRda z@rNa2W##dZ0rDa}=wFF}hDX#$$c5$%b&{59XcxfyuP_h?$EzYSAGt=KYgFI4KQW1A z(y#>nO*(P(s&d_Eh34PT2=V%3@JZ-2%-T}SAlVPr{nIiqkmHaYe8f)t42WnsP{f6N zb3kR%EvT|Ej>_z#;c9s4e?l#2Lnv7Cbm%5pOL=~&YT0|eV}2>Q15n>V_~4$6Vb8@* z3%X*NxCI}nk<3#iS%n+G_W}r3Mk35opv<6%xzWNq*ZB>Z*2rp<~&1Q z;{7Je+g>y`dAq-4I%YVa;cK`@HJ8FuA*KoxQ>Hx#Rs}M^~$%H ze2*4L;qh=}X=bCi_Swx_qNA+e;U(H)`#CkDGf?fSmHgN(HTKy~2`NJM|80E-j%)j+U8+jXZJtAS2;eRn*%A#~;Y0P%jNvfbZH!GFE@WyQ>qmz%~oQu55 zzYuYba$1`DUKs-)3mp?~FXTB6Qe=eSU4Fx+@cL2Aqi(z{j|*E(XH?xjWL@53i4eh} z+_w+vjLpvt{dIAr6rxjvpPCh+4je}&qN5D~8zcc6n}ZzBQyl(UA=$5Y39pQmc6;RQ z=j5U3o|9*`4T(>;S?%{(By{f4|7*$6xh3H>?(St-QjK-xKyxwbu4*fdX1uwD4N<-z z1dZ>Vhub|~lI@XK|7OVZdv9PEtGG8SWJHA^`aCWAEK0cKw~*$)aP(#7Rq4!d?b?te zY+YIVz6MV(psDWSg@iKrsdP zr9JedZOt~%xYS=f*67~zVJ4*-LZgsm=YxzF*@Z9HNcrON$~49$a$A2Z-=>+e=ktpH2D%$fAvN0}0 z6$rEnA-ff5NYc>8GPHA>Nn{1KdsDstW1p7|>~~!BR8W+C?(=Z*duL(y7St_!&g-~_ zUU1>&A`$O%)m}M`OMB-*f(kU>NhxME)q(VjiSwSn^IfK4NB)F~R_7{7W*Cmy0|M&< zo~fjp5W?l*wIH+CwG}vU80L~io8p8BFi-T$8#cMjaZoTfO68BQzM@D1ez=oSsRcfC zsi;FeN3T~2B6QNzX>4;C-_#>E_w7{a+sz8~ipv7~KY`59%A0@9TOd<9`VQ23| z^D0H4kbZgzI-)KLBsQdHehnnDk*Gg7ThrI53)t26D~wQtQ4D{6jT~1e0dcteGwZ;x zB@ACc;OF?JZovG08@~|eL{blFU-pj zb(E@`ksTzcoyOyBkMwl*z@bE#42kc~MvlH|Rvv{ZvN3eX|B&D!*OHImmoOo+j z(k$B_qdv*3k3=(jF4&F~0RE~J^NJ--KvE>_xU>$(<5Hg-rf;n)sXl8rJx?Tb0m}{R zLb5Xv?G3|8d8McmMhwkKCp@Nu`RR5Ukp*gh{)(Imj(p5}W*pG18V@54rN%=Hx<#=^ zV(`Bh5Y~(&p5uF-PIEO`-eg(Dz;^ZYQa;pHX0-%^dfBYK_SL1*@Q80TD?*)ZAT;nee_pGAO>c{{!I?QGp9csAEJ)b+qu zdi@D1QRTHuze(yBIqP3POCop_6UnX?eeJe`zW1>z+IiZF#5sMg&2`IP`envvHxdTA zAzkINU*npoXIqPDlNTavY?xztdG8qew=dWv#`Irv;j`8Fl5<+qTob;KWVR3C6e(8Gtn6R<54 zP}Fii>KNZXeef3hgd0%hx1$}fb7aFa{Gu!kdUd#1P!>DA%oFy|y<8Pvk84o&+n1nX z{_k>)R-aEj)Bf8yD4d_RrmB(IQ=c^fyl74#m9}ukJ>k!esV@aV{}uUOhKzS>RzgJf zFW1Je?%s3FtJh73RvZ5xEcJac|7&kH`tK=u!zZ(*%mXGEndimqZlG%cxc8n|{|%!# z^YH=2!f*=sca)t(`MTv~7|3%p;u8{v$!Klm+A!4IYHY*-BK-U@u;hF?Z26v4KfibF zOt}FvQ0#^hQW^2u0s<*vj+Q&Ml)2B4Keh2Zv-S3mS&GFQhXk}n$o$KfoVoB}cCX#- zl6&mp*_2%fZ_!hv^XIse#I+7T#z}Hi#HeY(DNZ{}*@YhL#taO=1`&Z= zsdk8Xd*abvVv_GwVfRSL5mC?C$1q1^8nF060CV2iTUyaOL=UA!4V`s=+`Ek{>5P zPeHgJ0NNAYSL3+3+Oa)_$!i-WftlT0$>y;nUxb?A`g-S&vo`)Y`y_DK_bUi)9&fn* zI`1|qgBJX@MK?ccMxl<6HdTlS?@c8hiAgWI(~>*FAGU4VpcQxcxSP0(clSY%<}ity z592q(c1RbpOPOLG{?$F$mO|(awI1;|TT3K8b7%xo4rCNCdYh`HEu)<~TB4o9;zh&i zvm8-LkUSmUo%_T@{hX%#_VMJ9P~-f$cHQCpyFI5KO|H#hx|uKmn}}{%(2_V~VVO#^ za*KbCA%L&JNE&cTwrUsJ5l@B@jBi#FZ;K~ifE<#*ybnU@p@^1ut56O4u2K*VSG>!% zWpeROkEv0z_kF*E;Kh5-yN^rI zewf$pm@`iRQ}Geg2bnIVbxvYyO-VgCHNLUN!f9RN&B?h z`(y}EJywo&E4ah5dUbkHEJKMw^2602n9%2~j|@K5%T;?lPI=fSf4;uO9i{<59KnD5 zPVY&)s8ppD-07&b)}w(d-KL6o3xsJO*4U!ec3U|7R$b!n*m+hHgqI8oTDSx`2+Nk> zNP@}N%I*gIz>a#?D_g$7x`O<>#YQC(hvOL zDp#?)?05GcQri>l12fq<{@F`Wv`q_92Hb7Pf2`xUGWlOTOaW#fQ{Us->x+w<=+J5C2tWg37U1^Bf<7dK@PL4HB8vfmZ)vsT`ugN z5;%t|g3kQfdOrJGe<#B#_ny`hxi|kM8F5YZrTHyNNQ~Oa5p?GBQt`TQ3Q4o)c+uc~ zlzx2-3(3@uaVESDyyOjZg+4qxM!#(4lJh#GSmpWGy`lY+#8Z9Wip~}ZqVU81scpbp z;r>767Z|7^F$?Y|V>uuv-R>Xyo5HVc@Se3p(ROc6^ueFVPAKeNOX#Ty1_oWj84_~@ z0pm*$gKs0v+q~PJcT^>j0O-<&7!CaGZ%1$ag)QDqdCE5TOJeaHXSB~ak8jL9xCr&Y z^PMVeonBPsP?eMRMcw?(c?+5O!KMiIW=|v||WxuW8hTwwA@H5rBx4 zMY$Xs^%A0>^eT{?PGT;5_SH4&Y-Z0unk2EodsZ#KQ*rR-Q2$teD7b(|b>aS5aRp1jYr;*?aZJC0|&% z1sEMIqyg>_EyR?}LNhp@y9=-xQb4`Ak5-CDW+IJ5M&ay+vKhi1oByY>fCgiqj};>s zkc@LcyOMJn(Aw%>cK_V=c)Hbg=;M2x?4|74+BB@&c9{dq_ANVnZ4Z2i;RoXHj8YwT z6=Qf-k%*HaJMq<#k^jn({iB)`5nEadSKNY>#20S|^2g{F=g}+m=BO)@0?Bc6IyozE1(M3jqn$ z>Q5NZd|0FjhriNFa|8@J&Kjb{|7+&=Q}05B$Sf(02pz|MfX9A-=D{}L8`q@6g|^Ds z&(ip=^Bb(2sdmsDK;3mKmV2z&0`T))BJOckHD`x_YPI@@g+CMzTo9o!e87$MS9^j0 z)jb4vZ7{e|dc(pfmf;CXA0Y0Dw26Ge9l1NmfG2$sN&7>Z2pOzliq)E7Lo}#EqFL}= zRP#})Xn=IEPvqARR(rwtmMaMMbv{b8$lrj)lWAUn2wc6(y{WVPM6-xVW)wTf ze@13H-6qhMY+tZ-PI(z#?J{~PU_!Qc^VIUmb;12-mzSk&^ASNnjb5_t?`z*N7s$x> z7p#;K9rLVT2ETfH_1-;V)m9Hw)q&e}XSeU4cH9v$w=(~Dy=RdC+uusXoSQM24cZ26 zllvZAyV{v$EBeG%YM8qS&)_n9kku!P4YY*q^X9{sj=o z0Ny&poa5Om9&G$PR1s6H`@$sbG%E};*?uF*hjkt6?W(TC4uW?my(VLfYM;a!>m6{H zJ(ld{y#p^80$s?+tPXlmcxk0c22q($m*?Pj$=x6s&&G+UMz>9KIp?dnaXe#Q3_~bd zR~_b5kMrAQ3gnj^Wk%P(D#EhO*ck4C_Z6P4EUgEMj(Sb(KgVun>)SpOx<-2spG+bC zKpiv2&5rYZ4n(&-zxNY8e|=edm3NfsWK|Yn?11U{@pXI}TtgPUA5<>BZP^n(_>cIX zcAqoU4%pQh)ZID%?-ZYKQz#jQRebXQyN&;s1Ir0QAhVl*uk0xMEfkzr;UorVrNo>( zNI~yR)`EkBV~e^yC@#d-I!xZd&o7Uk3&=XbcXc?^yiQC2_UaJDsNk@$plt#8pi^X< z^e5(3*_Qnya@m0UHVUH5j0~m=bXFs%IfWf^A)!2ekqv@7<`^(?i2%Vw7OxDDIWN}XqTzzdNOlMNoug=fv1z~?qS7Hq zLzm%ACqq`5h+xV5NNX{Ib;|H3#pOYPU;Bl~{EPDFpJ`PL5JJf4Fw#RvJDNSL@@*3= zm;P8H_34w46&mqMnPh1PhATR=hMHQDquot z4`jS8EEffkkJUv@&iTf(wn+y?lRwj*vg!e7(YHAZ9EmQEnEHCyG3T`!f21D=)>~BY z9|pe%a6E2TJDK0bo-S$QSZWYGbPra=)M=bRTXGZTOIrFVtm5T%t;Z)AZpvbPiNp~? zAygzFN1O6<4rp%r#%D7BF>e_ zeBS+&;oG8F)NdHq%0+L(F7K`JR z9gv#k1*jx-dxX^XR3rCsLG^)UTl)Oe$W~Uiwnj6GLp7A4cV?qX-xT$fDFpCOrTDJS|Kg7L{ zJ>+FR{@{X4w1;7?|Fws17;7gh8uq7*RuYmOjQb5wNNCq!N+kN@nJ$f4f?v7qB<|Q{ zo`6?%(x_+Dr`ln@o9~C}RF+teQHXv#h)iW|ajpPPTSTC-#yI+`sxl+ifoFZ3?ZDea z=EK6zqI2`MMmK65Km&ol2hw*5qel_5YsJB;MYFx#_cFtLBq`)6DdG~qcwd=&wr1?lU zu(Z`nQ2@OW@J>7BnyKkIQAiV{p89E%GzMdv+>cPHOV8Z${Ig$X$i9@!(x{y%!vrgF zXXOL2@w!2bmytWUIbfVi8o1r=s`Hmc8q^0a%WJfgiqGAPVo>%O)yxNW_p6o#n?)c;+ zTw#W{_0yl*z}J4Rt!dqBv$Y-%>6&N!q<^+L!--py+xO?AiXf zGK_WiR!?_dL1l!@7OKZ60w2}gr{~IypAV0H`^FS@0{&m&^Zx;`%P^rtF3eMg6#=(> zm8R#LCAe9H{BXDRw6$bwq(Mqi4_2{;1$Ae-8Vlx+2#%UKDml_;$Et+xH?TFTb%T{n z^-CB+1I?gxcpN|6SctdP9%wYEoVdq#vuE%J!@Kw#0ivLN8(E%Y6QvxX)YJ4;5;0$N zHtJ|(O8Ke-7*&uTcWSZ9^10j-zANpFMs-Q_FX=Tg0+qTR@BklmlAPiYHVzJCh@a^5 z;r5d6WUtM5I0>@OJkO|cXCD{b2IkC)j4@qgEgTW1P;M?#7sd5w6B|t*7qwW)Hvta9 zTId;k(84!OZryyG^%)3XqICg&^b9(W+_t$y)dwd#r|Ygga1&ZnAMqej4cx)+k;`+E zP3ck|o#2}u7D1~xgtr%a38gQnbeB$Lv34Jqh&Z2=_0)`JeP6}pJ2dD^stgK<5UDEn zeKM0}2?LnGVu*|D+cts9%G52h`NXSbt5iEuqJBvc1r$?bbKW{s?94huG}&}BTR2om zMZ%fZ2hs-jHL^3)PWj5@8!J_6Pla#L%(;~GO_lHv$Bp`DN*Z0kS7Fu**ZFaJP=wa~^{3xX~T z$tuWzUTmRcEV3ULM-se82sNkX3)U6xg7;#W4qh7<%6>A+uMZ(13g(H8P~4L`pZC91 zGi-uyuI&^5&>EaY>)47wg2Jm={rd)JqBZn|WqJK2j--V>ZJ zJY2hP+>lp~a!$)%`rQY^B6eSpnVETWK*ff;c&t76B=H8CXR~Nn`kv$PA@~71vAZVZd{<0_HQW8HDse)|gOEIW$K;7wg5*xQLS5C2t zymL@TdWi5LWSy3`gcz0iJeT;=fr;qp|*b;XXZQo$a_j+FA-jT z_3`Bwwa zJ{6SY()S-l34S>u8VK$-7?DMfm1QDvSGfLC`Ij;0VLo=ZZrG*2%OH~x2*mtHtKgYU zYsf#&QX|muH$^BS!ubnGwcTO1o-nRD7S4Rh*4_ZsE@3`r$A^4Q!;DwfnoDNDTKCY< z#6WX2nfBm%z@w$&OWwIrXa6+jG{molYi{_^OlW~8+`Qa8u}XM%eN(8m70NRpJ`D&h zZg}BO`BsxxJ>G14ODb7hx$I*r;BvR>c6GM#0UJ-I-6r%XYKUiMY#y*zx(gI`;X|tt z^gLCVGjMfJ{QP%kzFIXcq!#nf*iM=;rO1SQO>EprV_)jetB!@Mj(^(56c*J6&l^OQ zUQ!P?j;}YM*gQqSp}PN#xmB9DZofuOq=l!I;;*;Q?c zFk9>EGYpqN!wd=oJy#Sd{NKf@)0pttcU*t#!3c)8+SWGN`P+LAhm<^C0b#Y%wEwY~ z{oiQ3{&E!jNCdXRF@b&P$pl){z)OqATaf%iM8ar>C1g2dA)#UteskI)c%irZmu$x`IW)&L`5%h@0@r@VaN_6> zsfAzH23>#-g}!AV@?|G^4zTFx5K$Sq&gXYYA$}x=@BOr5TNbooiLHt5)D{Az%bTf| zBg!U#i$o@15bK(x>X>0B!^+?1E-JuPHYsX1ct&hiAT;|mjOD1KK!%+n%gj5Uez zwgo_$;Z6}5vFDAVgD41(DVVX^wj%i|VIaixA1D(B+kvHA6Kx`sR1KVB^S_MtW1i?3 z^~3_GEW(Mm0a2j7zL^;$W*ly~ZTKf!7VAT@o3hmJAX%)Bk5gD3_pu;^?{M;#1LSNN zPsNV-G4B{t(}4{A#`R@5YRJ_b_nqle4uWPv4O#FlY*zL_=<7oB(qD`s)K$bFB~v+e zNxiGDdi)4UL6>Z?r`$YezjJw&N9Q}%*y8^ZqXW$j_DKA@e#T1nNR!V(JKX;j*4pDV z)5Xs`fP%3hgjwWhpML}=!S?~F;oL{WB(n;!2N~_t#oRCIz*MX%!G%morJvgATt_5+ zSxcytzAGC+_y53+3?F@$SpLB_8-Lt&i6%mluAX&-zSh)Su*Il{DWbvN0PRTypxsDr^!I0S* z(;M(ME0zSijmaCY#ki|+UC8yxa*$`%xWpgb*XOGy-Dn|@doCKCaxTdp@pmm}r_PAR zbd+yDXk7u2m*_xD-yjWC+A8O6zByG~0?%d(?dWyA`&~ikdOQ;~>DI69C|AGcfobtW z7meTF#_X8ymmtG*^^5Pc5?VS<`Ec{iv7DfauOLR}<@(9vl;I=H^u%n{WW5y?x0=!t zX|jo{x8ajsvO+^g_Infq`K;}qfY1lsRTYB-AvqV}=#LnpdTBeYS`E3Ddl}p*Wj?>T zP=MSQa#uCwk5k4it2#d}$2^Iwm(h~5`Jtf>gSKfWroxT1p_9awpi555K5g2**>@V> zq9rNkTq=K3I%8MiRJKlv?t0PehP%(BLe=pL29CXtc-v8^1e}xwdfg5GHSixN`4w(v zpMMd7A==64$5RNu8*=-#nX~@D9OVwV2G4OBZ2|mF7Xul#{F&v3{?!q?il-Jns$)=b zc$A{0#9y172b9#b$B+7ay8YyOEpNaU?-Yyi{m|u<-@jrUiRjCZ z5oW2k{n|#}pPR0xvPXo2EVN^wns6nA%b zm*U<+@!}AqNYUa>AlOa+XU@#MAMTm+HIvC+*?Z4kYrpcWmQN>Lh}F#Q^W<7g*| zF?>sV;CIHnTtDtpSf?P7=)S9}Lf?T}9dF9wk})!rb{T`<2NRt+_bW*HTmi_QO1?Rg zXzi3}FM_8A*L2rg^sYwWYFPR4qTPB-e3ub989LC!;Z*r|^eW~KSfrM0?6)ZJ;PM@d zs(;;Z`u-1bZ2gDg zp@>qy1tmtFfpX^pBC@oNi`fV^Jy8CHkGHBxwaDOH+a~>VC_5Z;E^^+mB~nl`isncl zho`w`ntHz{dEC*`uZ8UC?d#Vq(I0vo+OOt~SQQYb-rwQ&2gZyo^K;^Q5hw*Z^2$UW zWtulnErxD%Um^CTf1P=l(0r@Vr+vk(_nNBH#ObCXH$SZ%~j%gBh`^X{8fM?TJ+ldEQKadDPGk^Z}grum+$B{NV9Ee=mp zQ@Xodar=7-6Jv|9Z}INd#S&L%d@aApT-EYA5e79h-Se5}B4fVlpuw`VgNGP+?N!O# zPBh%}B=N%xf5%}%T8qO9h6L#TVS{1~tUqwj2k4Qi;>cES-m+MAlrkt6INp7VnFJRKk*md|ops2}!cnvsN z&Pp_K>LgyUKbIC!pIoWfbz znM$W!uD)#JHTpj)X8*5OzR!&MAgufc9dsy87qKnTr)Erc((%NKY5%9hFZuhyM|exQ>#eN$S|Rol`FV1(Jz*2wQM-dMKh||= zz|7W9t|Y5>;`tG=jg)irezh9voOfT8n!>QV%Us`?D^bGe=-l@wlDr!SeQtIa03=Qr zGM@L#*KeN`au2PnJHC=;XyQsYnxiqN40j zRJe1BIO`vXFuP-Ro)o_Xw0Zqh;#bl44l)z)^u5vewpTRN-K9&$R7|ao~Nuf zdjG(OYs$H!AxBvxKJaNZMn13nKXyLsGVz664>_%}f&#K4x>@M~z}P%XZB$;GkosE5 z8935~8-|;d3QP)ExSg6j>s5e|MktUJ?`UwP7e5FS6?j?jl-dS&HIzff0u#kTp|T2x)ZdWMn(3VJFC*%HxgRL zIrF!)RvslY4+h6EUlSJRXJeE%R1**23~Uky@(;l9b<0O6npL(69+{)Qs4a`faV4)~ z&S}zC;gD@{kNFbrNM2Jd#7KH1}9Dh0YiQn?<=tb9O2Z3AsPktG3m{Q8o2lV@( zmEkl@+$>N4F>;=d=Mnw)7~{ZH-&hJWifXY36Wxb!Q55Emalu7cx$f0pUyxMN)<|7; z4RjxWt0fvz78!bTsf7&DedAXaSXe-$M!21dMVZBELmwyD$tK$nk)TTFV%m@IC{_ye z7VECz8@D=2i7GVufMNd9qSUe?;7_-3BZN~|u`VC09v1=stKxv^50d}Tce2Fmiz6WT zej#ilTEz|P1#LdL>-YL(!eTA8rhtsub&U+_w``6+!VGN(Uudgxzb*(Sv2(CQX|DOv zTE)obh)ZU$(+sNccP6#9k(!v(c$tE>fLTi93-M zjiF4jCsss{=X#%2aEO`k%-0EB2Sn!e^#lj6#?lbV{)v646RMt&a8QbK&h(N^_GiZP zwlDMMTFI&}V&P!0xe1SI1!a2E4>7UT2Y|R=>_P!k!sYW!vn*=g;X;b!s(ml4ayvnc zIX7S})uQH+TXa-E3nE(fsIK-}aMa@W6t;K6!GD{35>ZTbFPAP`9Xezv?;Oe8cD!Nq z*X^Hv>$f;G!F_8Jn>QtL7&s!ta;uj+XY!7g#|4wFFVSC(4Q(E_KLUMb5XB z*hn21$TEtpmT(emijlP-laA;GS+I?9}haMu9x^`9LS^RXF z`>5^T@%oNOX^AC}e(%N0unvvKt?X7$ z+tB0i-JB!gJ*sD+*}hkj`TlbE0Ojd;Y2CjJdcSx(W+R>Wx$|t`67^eWjmF-*U@aqp zelNp6KhOpbJfXXu8)3`>wd5tSkV6YnSEkz`Me{Y#Kx;?n@nJ+fPW-CkN!eX35O>HjYl03siCstZvvjux%rX_}l|Mfl_LXcCDw^ z9*@>a;N90vXq+eSSKAQ(Q$)Pi9z!&@bn$iVh}3d18ZMdGb$24VPKd~6wFdaWj*z`dR&tg{cTT=*}0lrC0EY&%+13#P_|# z{ausF@PW_U5rgAf50U=9@Sms*M-RVfTO(w}9bTN;b!a6k`U{>vH%}uwG;kRTy8lyr z7g{`mPgf%jLKcE(9n?5ZJL33`Ct#=u9`KpLfY?b&CqGSL!pA36eTSDZ;qu=-QLo@Z zM>lBI1;49~a;=>Y{|q_auJ1T*cPN+Gy?j3`))f=Pw)y;3a|6HoeACinDd=JE(&_1_ z=fjBkZ?B_;DEk~@zc0sL6U|O*-Nh1-bWk-nRoB((H-?F=f4Z_9V*7K(Fa2>OnI9Hn zAN2jC|4PE!*2JBvCVcZjH$kAkNQ0fs?!C+e#Ca@A6i=;4@V_wXxiSKqQi3tOv1@Zz zjlgR9eAxocUZ$H54a04x2-p*%GM!=9*!TRde{RI>daC~Lr$p0I7qoVsxrfJK!qC`l z9`dLAo9&6uF$eJ6#P_I4^AMF+9Nc7_n)nNaa<9fx9bB25U)91MGIFURtRz~p;kQj= zp`c3%Z}sbeSKWdYB5Kj)ONoNRL& z^-^!bTNVbFoat{FU_Mh3rlw!#x?7@YHl%7g=eWZe%aGtpOeJ??*hMS)M!H3Kx1NY( zi^2WzUP`WEWPOqu3ivcZ?DMGK#t<0q*vzbmyAGEg#-E~EJ&;WH!|lDA9B0@=L%muJ zu&mrryv373Pv+2!77q^`r!ccX8|DBWe0ikUz0&lL8{`;*aW`Xms_^$xQ)pSUkiQFT z3FXAn$RQ2n^d}-g*O|qGiPPRw8RwAdEzBwGYf^Fy>15$NXX+2;?){`F%h|qZMuw!{ zm$=6136>z1)?{E)66^m?VNqF#(dvX&_uCy;tob#D!Pj5RsSC|#thQPI>Ax^tsMQFF zb9>Wyv$>S@7n116*G;eDc&+cj%~~OrGG#h$bz<<;G}RjU`#zuGtRXZD_htAXkhfg! z#rKlf$62&wc%>>}!x7i=L3W5n?t5XrsiwO@od275jT#!XGSNZ9d6_f9g5u>FA^2}d zMEr|pa`%`|2nl7(;{1Eh?C571ZJx;vEH?WpW@Mxn^h7Zog|_2+yp~=hS=bv}^I+hR zHB?2@6hnwxt65vM7!8(l|Yg7Fg1yxJ!FhhNqo7PxG1|rQ43_5CHzC;yK|8rFa5Qi zKJll))-dWHsWdF1X+IRJzgyFW)>(95N7R>P{~i&lX>BT`9tfw(}@Y~i46GPW0w;-ch0Y+UKFdJTq% zvs2<*8qhD1)lzor>GH%xfVFiPd6+|1UPy=2~Dv2WUAOiHq(Az6uEpIg43E1_1}91<_Z zpX0p+ZY?wqxB1(}b3Efm&fc_F;n@r*%@JS)?N*V@kY*^43v^<`%um^YrDy}VY-hR8yyhNN^So9(gF zTFgeMfcu&2?CD3371or~OSkF&?_T_#5CG zCNhS*eC1LnyU}Zg+)rKKK3rE({ZP;PsAweV^!S_q!pfV4jMR60o1Qo2gLZlb=Fsmb zQOgP}@dZQkJn#?8Z+P)UOg{~~S{d7)snlhfXnl6!D z{=1XCyuZ{Me@ve!?~od=f$Wr7bNewR%1PE--FrkkrTscWuk%H3`~jAw0OjGI5X=*& z#~mjVz39~r{5Ofl7dePdjt|a1DG#_2m!+UC9uhtQ-jDLkGZPQLCw_KZ_%#8QR3?oc z`_DgnH=(xGgg77%Z9sG~c`rx{ghoJl>z&bPP-j~O30D1?Vltkh|+2YUa-YgH=7WcPk>E$=60QTLj}OJ zffsrzHX9k8TE0lN^(~)-gJ$4Y7~-2T5nw*+o;lZDDHHW6D(L3RQyn(lBGA89tOGPlh53q-;KQqba9%IT90W8W;dq&b{g9m?kj2`O(zy(;J?JYCM_Zk+lFdKpj=dQNzgz z${*MR&P<%TUhOM98ybDhf6%s?TkSl4BtdloRpVP#_uE8iYAIu4iO!P;?siQvK29s( zfq2XgnwK%~`P}>AT;msRn`68P;|Gxs#NBWrT~KTYUb)Y{~sQ~LWzwi4Yg@jS+{Jh^pE$nN z6@QfbtNw#JY*g}p`#1mRuu&4@LKu$B+cnscdd%FGMeVc+0#yKa zO}Q4_jJSSOy=sbuF~$r7KBZ{22(%Z+LA@-m6zX8A>uuX;o|Qud1^&I3s|C^zc@x0> zOWF0w*o(k4Itx25>H_S$=7V~?-c7PE186boX#ZU(vQT0I&)zkFu)-B58+uREgVTkv zXjlhuTy5BbCSMK9qW_Se1JrpEOtwJ3K`Fg3VR|ggY@filMPT zV4p%f>4V-r`DYX|j-mow;=xQn?DejpnJU>3Gnh5LIhM>lGlAwn8Y%8L%r8(5|DiYH zld+vnJ0v{$Qk{V&f123|y1dd$RfdmmhC zCsTWDdPO=P;fS#~o7>i*eUEeud)b69^AH>rrtNTjf$^opHjw2H$MWz-;sX24Qd9sM zGhF7SPLNM!lEJ!hS8Y1BrwmZWy;LMBaO{&*lA!(86xAa<)}Y}8uw`fTlUY)xQ<%A1 z#*2ENbtf&dfB*8vjdNSca%9#yOFd-{7MDkTC;EobF~Z>ORfg?5Wr_HH*0eS2UrcAU z3?zc|0@dYm_}_JJBD=L}6ikuSPqdhnU_KVIAcJb?YzT797Lp*SL?&cQ7b zQA8NVpYR@+#XQctI-I_5lX|duJkGz6Fmm~3v2AOp{JFL(nS^NipH7t*X;yw!I0-oW z+>}Vx0DI;?oDG+4HBV@houcippz+%n8dKHIu}G-1w(W>v(&e6Z zXS|43wv810$mc%(Gi&zNivS}G!#r3|D9nZ4nwq!LCHV~jSf0!o*gIC=Ewu6@##Yqh zFbU$CWtT`DRz>P)xQRg2H04lk!K@RiQ**$AN9)l@o5J0$L4IFopLeCZ?hVt=!6Cl|^r}=$&EK z#7Da2TSLf3|5>ZaCDDI~@(FLzJ_-6FhEc@{V~i}~gu>?sMt-HC^)=wFg1t101l{4X zN((7hzjrC_%Lg=-JQi^bGoAw-4$XQ~hdzUCW#6xP$42o}wX8!sOpWNuap(?WstK6D z=5g1T@|Wad?CY}VaStu(@9k;uloAukzot8|96Xod*p*vQIW%C`UJJMX)*3zSvGjD` zhn4_!c@ZP7J22J#=}~86?`MZ*y6>b2aRkRC!B_hA;V$lzD(r|c!>*J2D~TO)?~AQO zuSn+bjW)@Ne+G$D&5a3A;-=ps;8|b_W)IbO^k%j^aNvNl8HOzO8mczXa%h*kcALGH zu9NtM5Q~l~Hv=gIx)93Gy1d^7!QS2-S8~*}?PLJNkrcLx%oG9Za8uZW_`$Sj*q^`$ zthVi8ahIQzdc0Eg25~ByT*J<(B&?I4ik&A8&ZTfHZY?d*Y`9HvbV58) z1H*-M#_PIJcgFp882kP)a76sEtrlpvwOJ}VepM=UWcNW=&?N|KnsOKz(_vN9c|LOU zZbSQ?O)2A(Q8CFdUMAc2){!z;2;kQ072+U7jS;K_@T zv#f66@@-h3GAf(nz%_dz3Z@gLMarUHv-^*_%PI}&4ZeNNZ8)*|b-%P8OI ze2~*!vy;*LLFLz7o$R%aQ=@18;W89Ey;LV= z(pz6G{=KnRsoembq@H-Lxa%RmqtGI3r#4VEt&kC113?L4&h zWTsPqcU&G)AQyO0um*-)RhkmX_{GP;qj6g^e&xK@MhJ{==b{`b)A`QLyD~*7?s;rD z_u#9Z=GUtZY`Or6M2D;qYUEE}tP|4+=mn$Zf8Vy!Oo}&}7A0C-y4Lo^a>LyV^q>ul zwWQo+6q}bJbe|Wr$ZfcvjSsXZc^YF$;CcSsa?dkbi|}rDB*;0rrWtDQWW3GxM_}DT zDjbGU0HxEJiUhO5h!5R68QOn__bokczL<5mGN}cgK61$CPG-8X;m7@o=#1ApkF*JCs;b0w7j!u)#idvv?%fxT*?u$Pw zSG^M^KPPHxT(5_l)J)r;+YakKpQN=B3f{{oe%yuVDB}NGJ{Z9$&^vhr#=Saxp&|C4 zts@>Ezy|F^85n=bvM(yrAK7b(hwB`JuIt|-y^{MPUrhG-IR+F*DvM`R2|Epknn>9A zlW=*$ZEVA0H^5xxl>XV!%aaO9rG8ss<^cfv^Rdc`UsV9tX0{UjWae$=MgP~&*6Rkv z@}4{D?49tuz-*-d&D+_ zK4GoXGNVNOr?=mSuN3jiGk7BqHs0`!0~69N!vLZ;$8%q7-pV| zbX>|G>U8s}G8MU)UXQ{22;s0&`C%NUom+Yk-i!Na(c$=?f!<=NyS3tKNfTk>pN-Og zj%{IciB>BXGws)_4T}2MSAmrSoS3`9qp27EX&c8a$eoEutkK*hy?CyGFyizH(YYXZy#2C4WE`kZu7tgWxYLB|Z5_;s`lHSlJ4upnL*&8N)ITXOrMO zhLB`fi~zs}Bp=)Je5UegMs2s=)6Z4y2q)LqykVgi+B7bPc zx|>rxu{>wJ_IdRb&WFRLsRUcIrUhnMj#j*5SLsN$P^n0^ucj}Wbz1Pw8E*AOUo=KF zF$-$OLha=I_D>w@q^WWAhi??ssV=bE;x}tp6CADC9?WX@wMC*5ZOJXU#|Cv5+lQO& zU-AXTqx9A9&gLEV8sZh!A(rIy)E~Zg16e3-?YHWy?Pgs!u()hK&bu2gf7`h3Ys!cx z;wXEkQ!1bvCg!LUx*ycP#9Tx;@JyL;1ZHO6e^S1>zMS}6%e`6ip)8sQk^ zWcj9N3C;(I?h+a`Bm;WX;|oI$3P9Kx#N4Pi=z!1J$NH%cUPzabfI^>LP(pQM03dBe@ixg(V*CsvSqg79f5?PXP13rk%1p@_;=vhoeK{7nCg(XqI1@s2b2) zTL}^~>GPC|pIDPzWQ`tnNQ>j}(m6bbi-zYcH%DXIeygnoDN$F50(vTrsEgo<-=~cWZ{-N z2Oxmhy5G}BX^HxA5c&_SXFFg@95ls})Smn8eC5R4<-Z+yxCbO|Nq6%Sm{>{~q|C`D zD7Mnc$n{DTxPmpSL_Ye5whQZuI|J!Rb`W1V?7&`v3({ML_+yq)y zt@kg7>7GaUlTY})3qSHMYgdv(hgPS7G;B>(RpCp!e?5IC|9@{NNrrU~zyiLDqv-dm zw?&@0<~(26)yasXh{3N{68sU8YLWs|n?z1tePm^87B#H@s*l5~t7L5|K7R)V!gEn>jlAXC>@R}1>9RePVBEkgl+r)AZIIGMfX|1% z2V}+@A~Vb37&Mwof%iOKIS;k1w>nX}9nK_2f=>(A1<+K9-||)4$_uX9FIO;8B&z$v zE(@7HNK!1Lm+M6Pyk1uuENivSN%2m`;Qp-SF`CHy{HR` z^wVuSSq~d+k~&F8t8vk ze(vXm3*_=2d4ur}RJ+>QYv*(NNgbd5Q6gJQRAl}d*LFTlGyTi3q*l1lN7j3w_6`=6 z=*s^qHvet70po0gP8-lwguKEr>LP5s7Gi`kNM<}byp8guT z=uie<83*FcJ6J;3?*BP=L&RO3OvgX3x~Vq(*yqF5V4pqKaOnT~){=XlKiY~=CQ7c^ zpZu>?gk=wq%Qw~pnCE3W8!gk3!6dnhm?F!G7@lB(^3yUh@-serk((>>pw@AbvE_*Y z{mi>m6u5W=H|?o<7VZYRlm|7w;Y^{pi1F-X#Z4J~SyQ*!8DF+5&mMtLtcdhpOM*S} zKleOpiGsi1lu}>CxiK)D&K?$d^TT&{cT*C!dv|N8QtH^Xbb_)fQuu6qiP~#dJZrXl zuCfr{LUSGNyYs|6+0b7*MG)Vgn%Fmmx>U{PI9%YMdH`04OELxBAnm&Ykcl6sRp)SXj7mjJ_7UszM2B;T@fX?jM=w9e2Q{x@ffxEzZNhe za8SUwU+?Y3)kl7$1AtKp=m17AIeHYt97^y*u7Hwplp5vtc(#IO##8s`I}eI)(czW;mskh*%*|N<6SRK%bxF2i);7gDfyo1a zYUP*BTV`gnL}hBqWIT-|Jm!}&W?>cS@k5^>*2W~YXw_3s7NT>E z&1MExI|P>Re+Y;5BZDM#pxgo_tP1yTku(m3^V|TC)N4uku|!?9_!^8t{C=Ml78Q)~ z={w`xC03FBVu0yF@ID6vz|ZLyCvc4b)M=60J}3JL&qam+KiassBrv@lWIff75L=x)^)~Q4M=XC2x;`r>?{V2b9`VLWVR00aiUA{kYZoL+W zxcI?y^FhXk2nfk`t|T}usbROwV#h4p10xkk^m|Ma+%{XWIJ3^CKs4U$*ra)FTl8_i z4@36xj^eodn!{#x07v-8^PhXKmZ-PFB!li6_^Lo77dS5hH>nIxE$BHSHxoQnwQ!#L zoGxxCM?Xmpe1b9tVp+T>AIO&_?9`em)SJ{@q67YN&q3rv9U9+4RtPe3eiv{uKHfTuQG% z5*Dt&BJ^-SYF+;V{!h4aWSA_v9~&#fvxS5zZvVb|6psz38jRs$dBW&%P*E7tWKqr?E@HYYMk@z5e2t(IB59^=EKW$= zd?_tWgUJ@IOvar8=efsfV71In$MkFJsb!9A3ak5abm z<$WpWWBkvo7TS8v#t3R&HrkS~7G9Gui+l*oZ;mhy0#xA!(hnctrW-~AOi`wy$Fv|EN(?y`KWq2%4K zVtZa*&c9-{N6b$_!io&7ICDVUuUQV$dp^}zXgDv3M#R&VpY=b(6?Yt%c(l5Z;)yj_ zyl(`FVP9xdzNVG0QtgZ54C}C?{gUmd=~*~T9PAzF z9wSu#@h$94m2ZqVR(XBJQmV!557X#iH+#3h(l|yX&m&M4`+&`i>XcvOGpFsI> zc@m-SC|0oA62%s&--}zd)7#T)$Ew@c6ldTx@v zr2gXC?DsBHziM;nIy1}BP&=3CZ~qfkrq6og=r3aWrM!7!EKf{S%1%VE$1k>Iv(}eg z#l~rIC;`XlhH2Pp>%o9e^R_Nyfc_kO4{^0l8>|7EY@fTaB z81 zu?xunopbv1Y%7(Fe zerHhny50(iGfa=HRmwA{_B+c$WVSg;9Vc#l(C)a^3w{wxpd-?Tt@3<$kn`E<;A1Pl zlKm-TxzRM}?M9jdm?MAGWuPVxRiE3fUtgL950UEY1M!tL_7n!{)pmmcFw+C@KW$+y z=RxF|o(fWD@{)n`5rvd=il`!U?-DQ`UaOpINq0S~dB z0RA;!LSy^(m43@z#&~B%ZP!_}6Jb;AeU`;mm#092`o_u6tH)2Vt^&v$cs`jX$Dh8F z78$OY_t9-z0Bz?vQiO+oi>HA=#a)-b`_{zkO{F`Tch{!DOi^x&2rLk!`eR zQ(xs!GNQY(W8^rtE6w!^-sT{gVjz!GV@aOyq=NwnFUBAoEgSSZtnEnw}mO_vtI4QS6Ob`?|$)`P7CO|zwf{9S!D0~a!zPgb*$Xj6PL zw&HKso-u*qpP`jV3>_THBO0VK6j&DN#hqWSL~Hdj01})!F2>!cKoaVki65a^om&l~ z)AHSqfA$1pef@l1s-JXTgVoh0Huhj^o+}sAt~VbyeQ(h=!SpZ+b%gJK>NKnFQ^8Z# zSg>~(C5(Nk7XEpIXiDm6<~S$nYiF-T?eyqiO)P8wtw+Tc1%2|vT!_4U*86I+N-hS- zV2aj`+8mt8G$euSO4;ochwuCEm;fu?q&mj$G8N2a+`#{g1J&Y8>Dk5=3p&A*o$iW@ zVsbeEn2k49|J|mV!hiviCt55y_4BD;ILUNdLvjM;4z){of~<9vVvE=<1ldN*DyoE$CnBC%Ircj zH~yl)+&m3*qaf$rr#L4$t2cy|gBp4tk))Yk{;A$bIo_;`fgI{^B-bk!lc&<&9SGzR@o&> zKIZ2-AQ#ENKR+ZhsWZP0`LAirYphhjyZ{M(%>B~1jI$gxGA|~0H>D*cVu&qMW&Xxr z=E1~zQ2SZ=#RzEz#~-qw#ZXnq;5B^kMUzwX4H2C3Oxy!rSeq|hnTtjj0$zrLct~8h zRl)BX%L54@x&dV`WHEc1?9|WG-bl%-1*b_X{Rdenf0@udQ%j>6cdWwvG51T6Ih-KA3V7=dBgaWriOg?evf04kp=^o{u!oyEhYFF-f#`By5WlssU}d{c5n?1;7~ zOTuiOHiBB$r0J-0q4wFvDEmPRF#XVn1Yh7rJaFjdr{_gf0BT)&_V=1JOyI7&oyk3E z3ZPTLj2eB2_p5Bi$2wG+5c${1>Ym5$DciF&)9F#U9f5nxTt^s9NK-EBmvpm}@lJH( z9ab(kkY3l7naue^+#%T;3FMJPpYYFDNdux_xA7~%9VFho<={Ie)h|Q|!mM`OVOjLV z=LTcMVEY=Ceq4d!+!_Yn!_x#i2QzhAzDvh`U$1fkgj1ImCK&_s?thxzzvZ0GI)PBSv7ZX7k5^s+zt>f=p_K{vOhu+NDBZVirx>MN zUl0YH{oK+n{XqU+Iq*xw$P4t75w~_6KU$|(FVzHhV^OeGD$k(bt%rcu1M-@h181mt zczE;y1;}2XzQH{mql`Yk$n;L_-z6`D8}`i`c{&prhMU!|w!a@O%?Op5m85Brc7NQ6 z6c{IV{QH1ndkY{$UkN0i?akKI^RQXSxX9)hcd#|A!V}TQ@>9-NapIeZ3f=2;_zbj`)9b9TZHRPy~eXjXCH7Y7`V0dzq6Mlo}ZYj%p z;lJ#lj2e0A%I?KKmjGD1JuLE#j)nsS6J3M5K5h6s{i8;ySmRNcghwUXoHO=M$acL; zNQ%G=NItHAHDg^{gV;R~s~zOv#u2OenJQxo3Q|fFNN~P{tH!Bef~n?a=4Zy=UsQ2C z8=r4?L#%k>)JfxvFTc|L!-xtAe6GkO%LUeN4YyryQ1ys)yAH)x@2;H4L?EuYSv`DD zr-t?on zLFb!u*KD0ZE_P65^^U-W2lp<;s1s^e8-&8jzEq~ga`nTx{{L;$Ui2Vxd`%BHG4Mx-C~*god_uBR-$>&+7ti6Or6C+&dz8dG zz6QL(;C=2ldN(!@Q( z=>+5t!5(=o(hWH@2+CP~$|o*G_?^n{L70$Aojn&TC#olRr;5{S=$Oc9$ChG@!a_TG z|DmX_?EVwK;vMYrt>4He_;DdOs3bo{5Xst6$R$#Iv>a;&fDeYe#Jr z^W19pY?xQ3mK%aoFg|vM6}Pfhaaz8+d>ugj$zlesBLO&*f1dt^)Z&wiWVC9ue3XnP zIwfVYvra#lk2lU3{i8x4ULzi^HVMwq3ogY1ysBX4-%9O^%?!(4(NTm&A5G-@$fk5Q zY|$?1%=n*8gV6346r{uj!E$QZNMND=9*(5|3kzD@i8_@rW;r2xhI5?-m20*bL#Uq+ z7Whr`{WvPgneS|*8Fx6feL7}(#bUm;r1IV&^-*~f_AZ%j{XUkt|O5E>H#i%Ix| z-1?jZ6rN?!=dODxjD1(RSA<}>Q+ASh*ySoKy3cwwrWSKw$pXu#a9Z*;WJ-eKdWl04 z0)R8R%%elhxaJHIpo+&vW?Ha*g79qK3HO39^IyziKqhdbm3IG@X6f51eo=zNtxglI zjcWYY!iLB*EYARUC&nhKA%dF9%d@|K&fK;p^(Fk)b=rNOY?nNj^WAnCLYV`i-ll`k zV-%sd;V;uSQ* z(DV|=s(hwHiP`(~V1Nk59t!X%h^MTJG(O>YR5UDy;b5j@SN-Yxg~=A|9!CwJn4(=A z)_*2XM%SO(xrC9l(*&ruE>SQl+v`2ebdujSvcZ7DW#>JUO%6<<4P_EZZ)LiCxK19QZn5zcXS^*oMi^^u!>dk0L&$;*BY>42*b z=cXmbDe++DwL11g%j$|L69p~JBP<4nz&;3^4W=RbEPEya9RqjdjB8$#SXqnI42oZu zdLW}_HiGMx;w*QdjvQirW%>hof52@-(5>uM>}h zzj~ie%8pyP8?*>qD4K>f58Bx{hc;7G`ZLwpq|!`iF$xG}gwI zUgBmx|KIg4)gnFKti-pxtmTTnS6!}yO;;m4wd;1<>a$}n9j7pet;V;?=>+@g$@~&Z z|Ct(s3b)V}Pc&z7T+KLCaA9!ed@VH=uYKsw9t1t3g2g*5mtSY!Tb;`s=$!^>YR%AW@ob<8C=v;cY}4R)QCZmgDCaUwQ9+szF~B=$E*-U>fC)OLxk z9U+h1F9xB9gDK;Xn?5EK{bg+6f0`Z*sa?D^shM1B)lure@tN0ax8tqY+jm_)dUor< z0)BtA+-nFDocT9D;$^C~WyEhY5P>Qu zh7BqB@$ilpG=h4g!*{>I61>u95)-Z^Yw&h+Y@y80DV`;Hx?M z2>7YcB0@+Pk>0A#Q)86SDE+Xfp38Od%Gl{lV*cpyr=Z8tC~A($VtQ?aN|B<8c}vh) zwsfMP$55A^<*P?OMjOZDw=Pf>3g;tnJ-cc#F}i~U{4d;_6q_1sqfN(W?=K9_pi_P| zrJ3NG;X4$xksFCBXIR?#785aXYj)& zb6Owi#fI7Mj80WH+566kMis}8UTbY^p}f!eq2uS1q&j1-GVgz%AXK5N2;>JpPDPW_ z3oUp4aNi0Lkup7-=ux1mz18rg?>wA|?`h&}84f^~WBO4hnjB5sRj#u8HH0vGv>- zm4%|obGq{~|55sNyp+KoTU{+`N>OHSVU9Q;AI;44rGM{J+n#gpt~THdjm!wt+xPsD z7O=qQ<%6$LZ}x_gk{xY-f^|l-vYh{`i+UF^i6}5noI(V^-ZEHHmjz2AF2LDtXz))T zeuc~Vp((5aqIVVqyPzD;zb5U%KCSr?HEI8STz8)aB=WsgMk%53Wup`kA$)p>F_}~& zHtb?Ez9)KZz^mYVVVFEgJYJ0vH1K#P>~r~rJ`;yo3T>es57&<#<>ghpxrocqi7wOd zq+`AnJg@xE+z+!pHka;=QO*CA0Vi)x#qmQlr!Bhn$E$N^@81Jl*M#hKH_bz!GvK6KK<28VpC zFoRzbo=|21?JUKv$WtZoaL%k@a(jW&_(LZLsglJb*b%a0LEl+6NWOG!QO+s-wY}7x z9^@@*28W52S`RSCH_bE?uFIkV8f7$eW5Os5af%@(tb&NAnzWjF<6iVPkYna>~?30AKJ0#-(a814M#vZ`k-yF>R0d zPB~S#qh9hOiKx=LGcT|bwLh5Cbyt8?LM!j4vDL_?O2l;0h{Pc_SE&>3Ide1kcly^! zPSTQLTI%gH&B!xbXDBvIf9NzEbTfsl8U%@`DP3m_#_Smk5qu*N0K&(n=c5Fbq6Dp7 zIg@O6>Gx$w*ZSX4n*X7<5PVI5XNx|^@yT}PqcP({R7e3dlRZ$MyeVCE{>{BuzYpju z3`ZPWoFo6a&Ox7Ilu_^%iGd&nEi20(op79aPukMYaEH0jG&o)X8!A6AS&=~O$i$&C z=Iof5He;qXCjVP}1c{jRk`>Y-cVap$tJRnt}ovy&t+B_7)xo>(s!74MxebrUDkZ=|6W+{qUB)F-8T?j z3IU1tCf!;Z^fncC+qoZ(5UMd4w}8vTTZQ8Nv>E|z^hGVOr$?(_ZUc$xVy5a^;X@pm zyL)OwC%gEk3Cmwh{X7q`M7IHbQEuIx97s|1Snn~5^Iy7aJv1+2Imi0DGv6=nvrkNj zeX|)+`M08fO-{|~6K?UY4a!=jwN>kbMdo!T>v*l2J*Su|u?nE{BOif1k z*FQ<^{UL^VX$>Dnn%}4p`kHTz-|F2;6hzu|COzzF1Gys!LG4QD+3f*a@o+cM^L5Uh z$HSx=68N*={`b@1m;x#XhhP|Ac0!go8MX+tBuq^-jPvcLxsKjdyOwu0<{UiyKa8DK zP+Wl)WgB-7ZjBS%-3bJjpa~k>2^QRgTL*V{2oAyBHMncz?k>~3shRnint5MTK~?iZ zaql^2@3kJd#))s*Oe9`(6+~KdWcV)9x66s`TiNy3+F42PB`8G5Bv0ehtI=CV?R%!Pslr2ja-?!E*5g^f`wXKY zRv@hD;l{CEAY$Iud$r72WO1rY#AU8F)1|a_v}vV7bj|g)J1e7_sN=wCl5TLRmSVLcC2MpCA;^pL?1Z0)z=z2%E@^9#>P0OuJXi16d(1MuW`j`%&?v&`o-F#Vo_#Q1lN07N+^ zfHyH4gkS3Vf=Vl2r#_11x%{q_=T$2a!)Y{-s^T9CMX9~yh##CV(cpnQ z3fRPIbxs@q+SpkFu+8YHWQ~53QKH+*U`{c<8vgmSh|)qqXHmWf$?D&eRZ9{M!OQRY z<+gy^WsM-rxtfl--x*j{<1C(uV`AHc7U@2zeO3#DF^j$!!K;y7*YVUK)IkP5-(Ug1 zKjz`g+am+g*?g^V47Kdw^adc2wtYrpWdF1G0*`7n(pIn)QF>NL7evRJXwz92DcE zT41pR>;$74@rgAgm_hbZ#yX24)@(YE?AHQqP$Z{^vxVU!|TqH8%`=~mrIwYNoy_h`T&qXcjp-N{*8o~gZ z$dAZmYfRf8C^VB4hwNNleL&C`^O%^^YQm7vsh~RE=nyE`pJGmeK2q8U_8~3Ep$KJu zB;iq^?~0UE`DS5sMv16|ttE;q)uq=puZZC9>b+tj92YuC+ZaI4KJW-tLaT@^7+X~p zNhl>Gw=MS4TaV*XxyUdn#y>F&WK+svq9&xL0%z9*GQ_Y?(ZX|ZAb2~k{d1jX04oL+ zz~PM&9m>~>9ClUWA}U=mpvtllnQRcq&yOO@ahI^L%X5qaqpvOz7Lh~Lfyi@=qc22< zY$({wD*plq7J}(%u%a-d2ohH4tF0X)VQzRBtm!Mn?-ytNVATj^@y~2)Uf0u4+xOV4 z*h8iunBuQa6v{P;J7EL~jsBzG^Y}x?3=hd9)=0%aJ00SS|GH83 zue+3zV!(o)em9KR8zI{0fSf6{Mb{GHphK9aeBiKMfq_nNlu-IR)vu5_hf>k{cvyBt$u3O?oE0$JlYiVK zf8D&MgV3MlUtZtkUe_~4BHXfk*g`juZ2-5(P@;8UegA*ND zeT0as0=~+*QZ0~+(%?sEvv~$r1A#Md*-23hNJeeW)aUoF*(Q;%UGF-v0!r0?5DkOF zR&#~i?>n$L!ygyLHJKLIb#K>4h=FVR`eDLX1d=W@5I`%o(>rP_w9jAF-xgN8=zyHb zX|5tu^dCJ-wrX2d(-GR5m9IEK$bOIx_fe9^)jKFaoDV`lg#ZjVac9#LIc&e@Y2C3( z`F^NW)L}cR%f%LbcgY}NE?A4PS165mp<|T0w29(_R~TI(e1$WlgxT@O=hl+&EnzRE z51l7Bd>yXW`Y)BQhm}*yYqt%+il2$A`#zOh*#x3(`bpP)?;Sc*_Q$39b{>%yo4SsS zhlslfov#?-cOS>Uc0_0^AGWf_rtb$rHN-x@<|NM<%bTYdJ^Zn8o%3X|U6d1@V`!NZ zsMma`b$NaDSYJeWbBU$$R5jNRxm$_xn919^d52hC2!~`HygpXG2~1$0i6C~ltltQ? z_Za-V9X(#qXU83K?*r>Bp3b&Sn%VNj8Mk~*8+QC}pRt&~y*gxDphTajer?10?#Dj^ zRa(&z7eByaimgDW(!ot!3Z`c3W!Z>gs0hK(nEQPnhn3)^BUXTMzVjlj@dG{r4xsln zvG(@aXPjU$uh!{yxxZtki}7y`PJ$Pl_?Cud7!%8IQL{6FkBvx(`jkTeY9b9IX@I_b zIRs`0{lnA9iZ;q-J%y!x8_F+JO@N0d1zpV-Hx?Zps+e5ng$nco@O`2oMuH$2N#zz3 zcm@?Ok$P>QAW~)03OG+E&Dv(ImiXaGkNuCg23B0^as+x9Lat}{qyn$cK}grF-y~N>hEe>xJ#!SBK~-nrQb!~ zpMcC42a=_wFyN+et=l7@N{|5(YwMaK`JN*Y*UM7LLND*_hOw{c6?I(XfyUgIo@XfN zNlVhW5O5?nu&8i*LGXKHXEDk-^b&-|sOhZ2*NNfxpNQ|DV`BCGF?g^6RkM)uKe|0cREKBdI^T#ziHo_!tkDFBEBn&1}| z6YQY^)k_Df#Whs{!VCj$|E(ah^aH4)_+r)nZob2E)c~_c6**ZN zKKq8+3CL!tIF{8X5Vo_}IFL>o6+3H8A%80crg38um-Fmez7!tqGKFD4Opq>M5J za&pYPN0orRS;9#0vS6?Yqwl1B+F#JNA6@9X+UAhsiwQt!Px_S8_Q*_fDEp1KC3qn# zGCA-Gf~!uZi>cmkBF`n>feV4F*vGzFQ!NMAfYmZ>011Ng;zVEY-# zk=#4prqQsqN$H z)qIWgKR3Z6avHq|Md)AS?sBhujK46po89^rSp*hFnUvbff50P9o(~c6`p7;)kQ|HI zQ$LmCxLPuLWpqmH$s&yveEOS0N3_PJ7vgYO8d%rppLx+1bQZ#jPuOf$@{;n2_H0Y4 zqQatUxh)%}dZ1TBnE5u<kNLSetNV>|0$d z0INj>j*VGnLM*Uv!soWup;>!E?qLL+cGal`8N&(!c-P#F0aZ!pupxzX z=tJMk!>_HartuR>V0j~+>uw9{nQOp?m%y#Zmq~Id%pdxi+)?jtXjBdf^sU>Kte3^C zK6&T}1{7@U@x)7MyJe5{dYuFwTYW~{CyTXOmsQ=73QpX&zKi!A@H_`t#Nkz8wWx%8 z*HzWt=PE7f*|7C_?d(Or6?R^VD+~2IP+X@v8*4|ALvTaO;U$p zqOC-0`vN}_)-l(S(4^UlXP=)r{zN(7{Ri7Iyq)2%JjMrMl{HtqHV3-~jqkVq$nDgy zk1z7C{7MlkK2OW*nVFCdTNW-%#9gV6$bP+mGV58?c(~-S^#3ID{{MQ}^uj+9g?`+s zxS8ijmJZcH4a@__5R?AEr2diA#_A-_PirXUh=rB$i-Y_7G^2_u0edp;-;CGGBr8=P zMbgP6o;QSlL_4c(1p;_Mi-JJFkBG2%R^`p35ZeRE^0MoSyxyYPlkI2SD&^U`kB`uB zg%sfmIq>YLAI;BBGc2EHkU}v^(?@d}+2YNtIW3EQVQHeeu6K0o<>{oA3-tuep#owG zE4^+`onbec#ja$Rk_%a*HX#G$(;@=3qH$m`-SGlXdP7b#CqTOyj;|TYLR%w}0buM) zZ=tIH&l!GAn$Vv-1c3qu?OKw-k3{@)74b6M8ms!W-ytSRc{MY?5jHp3K4Xp_rL075 zcqvc7&N86d`-=v>IoB-3q~vp+(p5E~EiVCi9K(lNKr&r%QckE7_pI+B?7Hld`p*Sj7a@ zZTW0#()VgE7ptG`HG_o!BN{T{9>sj!Q{Ls_ySZZU*jix&Jm>1YHiZ_S-Vo1tV8cXY z@K8A$48cZIx&zG;qYFuZIklGAg>YjcTd?mZyIccYqa>()yw)B@zo$9#>3kw5I36Su zgkvLmnl_pHQ2d?eB1h>2+n$YhpCwpNLb>u6Y{yE0!!*^nEx=fX>oEQECZZs+ob?j9hi zgquU$im;-XRQT>Ic+&a<0XEd9Iqo+Kd}!cTT-i`pS&CRyZ1(kR#k~`f^4}tzcjDJh zc0+m+O>#yu22oRM|BD3xLz7-b?0PMJU202=7@(vvi#Lan@Kd4*{%s#D@GFYn$OSq! zZJT@bTikwkGNfOo0lGO32A?sRq!a4M;zUdF{5)3*HAeD}E_Ud9lW|y+Fe`k4Q#U8c zb6+d?DvMmVOSqJzPL*R}gxW_G@2CEcP|T(8wTyb(V<}*tE>uumwRq~Gq+2nqy#eu8 zBCIg<51-*CWI~jiY#x`t8dwr914#pFJ7es#vL?a0lAu969Eww@sF{S!4sD zMt1X#qT2H95Xm2FqU4k`b|?^4xt|S!vKP!U$|SVQ9ThDk?XER`^Y=Fgv3%(*x{*Bu zdG`&Io%{;CDYG>kAd&l0F}A6+^_P4nqYXbhvLWKeqAsJ|@$S`md###FF!m4O_=_6o z?RND-{C3Uj41dXBNpQq=yuan4Q#?#!9EVNXHYI#u?Y|J zQr(e)QENNU6`w&1GgRMql!X#LA5=^g@KFfV6yp6R`>CXsB_^9Idw4?jQ5Z&?c8>e- zw=-dw+nCkFl5583C12t0ImTY7yX}M;-oWnIv5UczUK$cv!w{=6vQC|6m#m_21wM9g zH-@?`KVvn*qS@TveMX#daDTctcax^s5C=&S=t}WNdvzsR?1u}yz4W3hhjyhEb6fEr zrXq<4qn;a>R_cA~uu-@%l?|&%hF_WO|2koVdE&enoY`eZ1=SAxF}w^PQ?edXXfC_o z!K%s@8Yy6#{Quz3-m5Oo-_%N-bs=z;9EJn$Jf{hlPnfG_{g-v{%_Q^;c_vr))+yl^ zb&x)GWrp^^9AvCdbWHfwN~3k{+{4{goC*Hv;M*4U5P$iHp|||+pPOB^lg|MG${LA3 z9L_hoOr;>Ex;r`p>|vkNJs*}%{Sl6G1s<-&Cgq> zgI;g1ylK(2uM^MXomxe5kzySXHoLuY$IEg@#ye$=sf2N#<7%&zU!+<`D&r45%(VwW ztMB8x;&eKb#O_(f>O(onI>nDlnneljvUhS_8;|kGjmtY^#h}J8GkiY&dBOXl%}sCi zb!;@q4nkt1eJO#6O;v(DdWhFR5O^O3lT*z0*nHcm%Y{c5iazF@7=yMw*UjUr)NHKK z%{Qp`MD|Tj(@uTQ8Nhbhll)9v^dd}|Nk`PNWxVLFmV11!bRs&;!A5lbzMnUkaQye* z_M1NkG_3AJg`0SSw*BGf#b3d*_W4Wa+v z=eSl0&EdRnSSO8WvQi0Y5;f@nb6g9K8fEy?vD$m^-(lWbzvMkA(=rivM`* zRZf7L3MqVyuRJ}+@3S2!ED3Un07fswF)z zMx*0gcL!rgpph9cOa)k@qkveMNJ9jIc1k|i#J>KiUAz<6f!kwcW|4Y(p~~-tN)Uiv zQ1tvW@(1bs%a)2{Y?Ps|3=hNV{eapsPxu5eCZ81`e;K;aGNSWQ14&@f5cb^jbTp;T zdDDg{&mN6~nMuMewF8u>B9&5zK1(W14b~iSTThAWbH6CahjvYK)!->cm?ol0qMdND*R@ z#v`?tFa;=PDKU12oZ6S7UAq<;efhG%6zNDnUMVAS)-Nlq7U z|8oF4!_~;(cBjY@YLIA9(bCZtHV(k%d5(-=(yI$$rN>0^43x^rHiz-BTcJIF2p6wo zkAcA_#cj}KWw`EfWPA(|icL~aJ#b`_RiWF+3^mZK<>R#z;<#zaS{!Hj>ar_1LCSjQ zlujcC=j(4Arp?gKMU;^|f_3!4rZ_e5OjG+)c~O@(B}q@Kc61Yy{~rph@QW|Z3Xbyx z;I9S0`^%2L5lM+#z)@I$~9vJM*yg$|omk z9>B!oFEOoH?EI%fb2=mIk>po~6DIQ4&qZlA#+Gkryx8`N@qx_;nG;?-fId3a(^UUY zJpD_o6nmKn(M3)uj0YRP)47ypdHC!y>w|Ed5rD%1VzwN z_2W}~82cmUoUe2g*5y=nPONnOR{XIx{=vnN@%bdRFCFM9q+`*s{cYKZ!=5@*N?bFq zaP8#R-(A~`+(D#<%r^wgTm-T`rrrGP^HU0JeOLIFPrGHS0D@ zb}Cb5M;+QePkSqv#RW@K?`z6JgZm%@ZJ6X+lp}jDF!3~<$VHgSOjGio=f`)NC^c@i z0`v)NVFyG`;=6(@-m{@OV3KE`&l2$EZ_VqjcT3`3&nv&jwMDC|jaFKe=fKT-ayM`# zcWaT2Vl$8Y#iE$uWn1}mn<%L6#HvU0cwrpF_r51EH@d^yZOmF9=S(}0I0!~O%Keh` z_?t`*xJB>6fO=Dgq?PQ;MU$0p!;`RLAF^!ZncINi6shY9)*1hQD02NSu`|?Ma&9Y; z-F-@}9UpMJbtnEZmfUNp_g}p1LKvOi~HK~t*m(Y>rMMnGmt7B8+Z}o2q2E+pmDW(55v|9m( zVM0G`okO$y4?c_(*Y7sK3T_%X)a8sEEcBDpJ+oxa1YiQyBJryXc*zJ-`V}p&j?|6h zw`V%Y&Tz6_3Kihj#tLj3@)jS6Re{~F$Tb5&1vC0Ns4fEr%Tkr-|G*mJ?_eMzX!sp4 z7K@jQAR5jJhNNM_B@|B4hKJ$<@H*FoC5#WodhBw${D!5mb(p~^ibdusH?iMdt@%WdGD#fSA(Zg2wHmpA$lTZYvzH96W_hiMy3z5Z&)bXIx5wJ72ATI2 zLnjun5~=Mk1BH5*J{DZOhUIJc-OHn{X{slr_=7k&8-0dKh1rrzBQjfr$NR+Xy8J_7 z?5`4J2QeCTn+$qsRXezDxr)*cCJ0AnB%|aCq|t#`IDP6RnCUE=!wu%0E>>tsY<{{X z(f>4uzAq6Il7AP{GSU2p#=9hu7BJfFeUBf%2?2;O%vw<6bAA4}9()W{0>gvR4rxtD zL{P&n)1{av@FBr5?YgwINW7&uVXp7)!cFKvcPtrfnZOmK*A`hw;_SroSW*8;2+ipa zuwpI#EKYV9S;o}o<-($Bhl@QBo{xQ5TF5EFDY3F482?>;;dd3SL(z^$uW!R}lk^`= z()?T+b>qkr0xe==SDH7>+Iqm7PV8|x;i`yipF8n3%u>ccR(sq`9z&>i1!p4r-?0dP zGGmC{SX^%icg3}ix{E9IK1yIUl18DbUwk;HvcD~#c$pKKqIW^HNv41l_vg1>*-@Nb zE5Skex_b6tIdnOU(W1vt6EvH8>vG|7Z=>*^4d*%$&G;1QOez&UM4u6R8|wx7`Ov#% z*OL=R6~%|66j&sEnp=yr&)m$3X*u=W8~1$FetN}D(F(ewaeMf z2zv$=oNRQLX$a&*oFb_Wv-A6j@*OcXRN-9;!b=5L42tvhTIi}IS`ZsSQijdZiSQ`r!7r2_A#p9Lj)o>OslZOp=e#Y=EjD<^5o+too17(x8jNQ({GhU^nrMw+H^Jquh=)J&n zGm2bhS+;a!_T=IZeoVLszaO_-BGUo4eG>|aGMGtpQ)<-QnOJmdkL8^+hMs-EV>faj zVnymV54`|8SrT#!jIezZXNqu_Zi{wmml8}*c(G=vb|2fzG0~0lbw=+dbFcfJF}dxd z@TfcQItO_Hu-huY+Wtqc`&yev*7&fShHx9@-j%FHiG(?h#D52Qj3t&bLAG>$U}nN) zF^aulg9!ZdtfI50_A?zA%%MvAJ$;q$lb_#S*WaG5r;^&81J=8 z=j_hM{+~vN-&;3+I~#;_%}T7RbGDIC>18T3U1$8rl+8Be{vIwuN%1%;)$NfJ950KC zwT>ngpARMZhpaNehs@olyLsQ2`GKEr zFLy--uR8`x6>->DiXyz!zAs5{mj+uIzEmQsVRuQnqSVSZTK~a$`hR@!`ZM|2wzI2e(57xJksbH~lbifbL;Yu(Uc zm70{WnKLc72d1M+Qwmv%%yjWZ9TWjC6eD>X1ekX6k+-lX#C-a6agvK)Q#P;uCy{@K zN)U;Pe`Ek%u@e_JUD5RZX|Mv(tXA{3EUQQ`E$T3boL zlDM}S?QD_xRCv4Ccj%_fnH5*yEK~&51;~S5xvr|i&#@1CryLOqTn;v&Y7cr!lkT*q!l&l1xzo$q!A6!H(OE;dSkmbAI&h^)gMR5$VK{EqR3TBW9cMy)* z>u-1#4Ur4Y_7BA^iDyVfG7-^JBFtg9^H{tNvwXY(deArFDLyz~+(s$|v5mfH_cL7f zUn@!OJCH@G-~1%8EY&u5X@4;#4+CM(8xj(bPvY8`3p%d)M8c8{ z+tbht-Sx{hOwmy?L`V*NI{!gtRJ)jfOz?%eWd&*>8ML4Ljtm0p#RJ<9G#(9BrtG@7o0wWT7JLGxNc4Lwj z{&U!uPz}8XJlGIZua-`?@);lr<^)4sT>?)4U@9o`Ux{R`r9>`pjS+p79xOJ^$X7P3 z8R9xgfH27V5ZauSG@di(EaIY4U6R+yu@*oQz)Ca%svXaP z62ui=^~(&y#G&`G#0Co<>}M>JfZ#EB4fer;LAfdtAM_D&ntEHXdGb zi}}Pv5sLiP0;kA%H&+8zsii_KyfU`VH76ok@shI^1rKJ{TqYJ5U$<){o1AuU6)e@9 zPHs$tXGWCR%wJm>yx@LVc3~ucqYnj)xOE=o{9!Ik;^^B~XC`6=C~tStz|9$o&6{ZO zDHw#JT&r30CsTH;mzEJrW z>7e^r;@fW1T>oc=w|g&?8a$C$SpE?Kuls*!2OC{ImT#|t2OIu9HX&P&1lI07<{0d> z2MmMs@e`S8qnf*e9EY~Ha~~1`(K?t5DsAEq(%m|s6YYCljDQshR9P=UD9iocp7M@f zf19jGP#|OVrjuH36l@yN$)D=VtI-R7Ml3p;En8W0aX(~7>M}mhC$$}S30v_6j*eal zBvuh+I0rez;n4i3I%_lh7m?)KE4U@g%&+}Ypg{s1TUnoa{bd}U9rncp-b7%N@M<06*dt#m@G+Z7ekW(Lgsio78b@%haM#%X-*m>DjS#iSak#ou^ z>jpvww=5D?f#pTwB7he?QGfXyLq?j6$K|@&9n|$8jR9dt#GuvK?L=GzcBk=S0`#c2 zy&#C>@XCJs?%u*$Jn_Ew`f3FO;Xwa7B&8E5@&P;$A(dUeM+~;oR$hszR-lR-;nSlx#6VX}p5fGwvCPiJ>-1nmItmZ59#8sZ&2}jqq>$kRnk6t`- zN{vgh0nS(^EUNoqGX0Y=g1B!1(^uQIYG3wogmL$}5)H0g)uh^h+lyLZqIF| zerzUN-4)@16OgAbmN3L_MT?=;ri*Ap#ry(Cy^76*0rZLlulluXH1NCLG93y5c4&P5 z`Ec<9zZmv3pQjCfh~TDR-=ivKsS1X8HX{0LGp#>N0zMlp>2Q*jMJqg2EY>jxl!4lZY<*&GgQ^S zVo5&`BIjD*{lDOJK$n;lZi4Bt7JbaWITmAb21M`mYwEcL#2(3kFjUvkrnw1h6Vi+4 z*q_%qLI_T?qw)`fBM!$jM%T7q^^vv58XT}De$$m3g|JUWv+DqU3;vj6$>~Ygm=$3Q zLxDOojJPlz47}HX`=xKHOLL{3jG%xD!+}UiR_2lSs8IaKCM~=dds3?;DE_mI){Em( zI>A4YAW&3e8j6x!2e(6m#5@9I5Jo&=5|$j2Je{M9d-;vNL9C`k8N1_J425|n3=jBu zmO?E`Y_M81uNUO@ob0i!^|i?8h>yYXugHWFzb>4z_T6_X1r$SP%w@*oWYt=&y} zG^+}Mc1+XIB0Q195&+DQn4lserJ~U<+WauPxJO1yY)a6TVag*TNFbooa1U6~2rn~E z7P@OxNHq#EZnVwSF&#}>rcq(_;XX1yi;d=QXS*woutXpQ#OWe| z6B5F)LBeGJ;=bgK804cgWI6r75ghi=#1BVE*93@2QLS&+T5uI>*w)10LotnWNepOZ zDIR#L`p^E3J;j(zA021R5U^Eid`>}~8FYN;-L3&}%3An1S=xLQSv^Vu^-so<-+ zV`_PfIS@tZ%)YQl1Z);+Ec{9@m?iS~IZMHbp1Xc;59sYYO_Kiyx4(vcd|{e=1z*m9 z8Ig^_M^>S_a^;!_Ek`f9nq5ivuOMja{6s%AdH3XJOaaOs>pz$|;yHh~(EQsRNs=IF zoSowwC*FR5q%B9I)SZI|W|5bY>NvMvR+Cvp_9yV8g|6qR%by+D4%vpGIht{{eG*6g zWG^$F?))!`E3S5i-S?Wd10rq{d!gWkf^qi2@;C%wsXN(;$*09K0&4oMy_9_2%D&ol zExGZ{mROZ3w^pS~cw_{^O_CZ>H(AK<+iz`?GT> zL>14wmh0-od*_bVxKdXw&Xe^HU&R}UdZ8l?HtWn8qWT<6W$-yH@?r3XNUfeyt&;>E z-c=3$-O&%>+12t1%h8@b6l<)?C~ll>VA3<0N{`vHhMwzYo>Pe1v+HKF@($fjHwVU_ z{_V*3rBd8hD!U3l1bpzWh?u^E44UYd2FDxtKAZS+D?|-Pinw)`b$WiuD{JR#?gt)C zIF@v__W5m6hTHE~$D+S&C$_|z>`S39*8CGEf7i(_?qNjFVJ1h%Fk@khQ0!isvYwjg zpWYQl2md?D>xO4nu#Sxc7oP?@U8))X!sP8>9k3~SQ=*KIc&zrS@AobRG>h)fb z!9DnW=Jvk94RqV!OA7~{FiwTKFhCdv+o_N#bfpFRjJEG$wc?&NmfK7EeVeQ7^Yulp z=tOrfB&$s8P*^cb_RG`zJQ|#;{W?yS{mMVFNMPwhw`LGcCfsbs_a8k%j(+3r7M@bL z)3a5FwQbHrOxd93z=K>lPTGO??_yT|J;#aZ8=JFFB)VZP2dvLQ9U!0U&%RuP-M2@Z zA>>NFVEgANZ5Z?C!C|~F7v|hqU0JW!MSt_Qt=%KIn|8oBwg-tKK(bN>{s z%kDB3rI>l#+cHU;reenWe{9?T*Nm&srto?DU7P45=#4bH@s6*`>GW!BCFscC6fbSS zl->Tp>=kvHB@v^Xl%UZ+Y6b5Ju;n1i*6ko%Q~4CbLs^Y7%0<^_y;Su|!kD~QtzY@s zK3DQ$%TJZ*q z5T17OCP-v7!nw% zyCTEn@Li?um|_)M*x*ExM#4rn)E9q%_P9ENc4e4N*%t_hO+ zYdQcOdDSO{n?Z)7{KF353q_0)jOWaR$Zuc)%Y{Ne*ADz%rV;c>tY)_4UoD2;0jj~H zL06&}m?0$<5CQk1SxxsKQ}tjsNXNVCMn#N_#=D+uW?tCHlYvgYl5~3})SnyyYGsSuP+~4`fodU^O3ZXJ5puLFVat7+|Zz3SjfG=)5%Y)BF6K`t`asPjWT}JqWRW|_3S(HL(b)3TOW@*P;DM9tY8b<3#*>sxxiXYu6E<26sOMs& z87O^andD7ky#@ zYABC`GMn6h!#R=^HiQ6Q{9dHhONLMlqE84wmaz`b7CnvB0@S&K8jDuh=OVR!DdNe* zClynM`3bFrB47+)V;x4ed@6SP=TL!$BylR)^y~TSC!KMRTJH*a?1vJ;56<*-HY-j4 ztiYVFJzkp9E&Mq&1f04_)Zz-xo*;wcBofR)6jE7ZUHix>9vNb^4{9H5RAcj@CnW+D zfa850{n9-aFuHzxl@{w!)@)G=(=b?vB-Tadq#$>zh0J8KAO&uu0~=Is%rXC?{=u|CXV;dXlD40-kQ_=49+Zb&-MZ|BL7)UJlb6wiO*;TOLZGG&* zgso(BImx7}aj2ov@QtBlKLdQ_q0vqX&iM`r)Z%cyYt>-Ggc}^NK75uY0u7~Z6H-jL zrDhT-IOTCm04k1!?ScYsRlD(90px8>IZ1nDs z??wSLuef%`yt+E%#u#JXJS^g)405sK&2#D@HG5zzx=ulOjl5}qXX!y?4VgH|I!~z{ z^*1JWh5!RUcf;?=iv=Py^;nhCSY7%Q73{orq;&~u)vvwW)BN0U6hE;2LaAF-6awxy zQfEJfnc0{H*rprH$W`DgluC(pF_yP6@2W&RfE5n;`mtRWsFw&ftJehP2?hk#LFbbgyAXCqV(|?NaEmDEVg*ifPWz3R5roJZVKAg!1zw^Vtv2$qB&qxo@IEy0 zxWAV?xbGR5PT?$q8LUF}my$4f-drd6*`CVx6IG$Q{~TkQD)xftDvX`Sv{!3DAuDy{ z!hwl^sv$BGrW$VG$TM!&*o!~(+vA@8$Zq|F?7Z{{AGk`M>;x_+de4~tR7N899#8t5 z^ule~_Ad>T5Cl4aGHt8e#;op;c#)Mq{_x;#WK^t;wOWkP${BFjB()N($@G(JKga#cT*j(7c++|)4>HBV?3?8T-e0w;oQ$Qx0N z`w~m1n4NvCr!0cOt*HSI{q4AGJ72=)v^k0>Sqj0l@{41+rgV1{i%3=;BYZDdYotY&_MWA&yk3iZAB!G#Y!_oLNf-)4$UKVO z9vh=wr*1WgZr=d~Dhi#u=gH`H`b7vnvJg!3>hs?6^HRaBz3joVD$m6e$QzuI0j%)djc=f%;*aOH| zyqhhsH$1BpM}LkNchQn@AlH$0{OS4q#X&ExeEV5f_fv&S$h1<$mDZ6kvulcjsxGf` zI^Xa0=HvEzruB+D{H~Y2J55=wimVvku}e;w%!Z?*$EG&AZl64`SHXN()T5GV?G~re z{fl$n&!3d&6*JA$mKwP~GN~s@ZtG^|Fs%(U`OUjw! z5Pt@a(b$uQ!Hq@|N1-g)UL?vEJDcWF1p|*0#xme}(VWZntQ( zmSfzaTWH+_=Xb|qO8jI&$#%P4&CFVlJ2e--lO!1=06_+TFmVJhm$ zY}$XZgbPXD4C9bSx%~p@ew+WXbN5eQQyud6BIGJ>)XM=b>R-r!I~nwy-9jr2$V!cP4ULMluCQEetQ? zGh7|40Ibq2pdL{8GQPjSXIwgkmF=5MP3m_}N{EeGS4zU*2Kx~7729(Hs$Ep>*O1@2 zcrTKQ7X+1t#IMAXCokc@9q^f#;-U2CfKsFj7=EZme%x4AL{1ZP`!yv@$HzN9I~Oe=Ie;N4QgWqN zT1cj_WTyI$L=-IX(KMM(WmR8&W2NGy_?G`kP${AbhK$G$#p1Nr+WFgk6P)_|i#pFY z)NK+O(m0T?iavymXf5W}B|E7Fb<=%AI)Nn10m6O`EVLpR|G1ZRHSR$6JyThXEF}QI zBWoj@toG5^&WA8phj9>fdJSf#QW&Se0qp_E!o*x#tWa7<(6XKFC%${9D1tIh2vq7W@pQuqnn zaxTSm27;X#y*)75S;b{$i8a)k)s;R*lTyWpqb@8F@KA`&o|7N)&SL#_K$HPFYvW*u zJ_OgD?XFrn|D^sim-xjrHv?VR-BsW*l6YzqDpbI@_-{5gw}2`Y&w$aX_id)<)PU$i zktG?WY*4kqS4&BtwPdhUMrx>=p8i+#T)m|FvD3cV!95I-xch^q3oYYyvy-^=xbyN z7-G7lrkN9CV{lN$3FeT0B-VSZ#ht-t50zacX~1AQ_h7EaPi-or(^|Jl4UI{tCfT3g1*5&HJ4uT=ggov+>p!NllSOu_NUvd12ZpQA|#oloAC zxRG5O-5PxN?}7mFKR!}gH=$8}GjR0wxP}L{=Gy!__K;yS;4I(I&x4@Bea`oJGfj+s51QL@0vi>e^N*}Q|ygZ zS&4bpH&SueG|4HRs())EeDJGT|LYd>Em-X25|!ZnhtC*D8I71Wo7d?53xBVZ%G&A3LMudE>Ex~#`04v-=>K!b)O`x??0tT`sd0_^2z?AoWdDoJ z1G0zbww61^z>TIBw%vZ%UE21@DB7$v*_*H2UUL(6JKxA2em^ynkyN_=z`I%Xy~lXl zOx0;8*Jsi@aE;3d^<5u$UzK?NlUlcIKWb^W9+2f1Y#YbVideqLDrAQM#X~-L^9DS{|D!F z^y=(&wL>S5z^$YyVYzMUDT82-u}w*L+`M8|gt%izr`=R>?p@byJw=t%BMN z)OKy$o#GBbic6tT+})wLTXA=H_fi~+6evz{hvM$;8r*^f37f8e{)0Vx*7u!fGC9b+ zd2-8jyPz{}@q1d%zh?BjOE7tm!>yO>;{^VTs4YZ?hLZQS%uZV&@@q+>Tgg*K8iGK> z>88=xbU8@E_CEqOTN>>J`kP^2{(>K3i}uZCD5j8C-I}w1>1I5u&N05@)APp5gVx2X zfkWp1mYrS-L3A149Jm)<##+)EVXsZD@fzQH8MuMJkKfCBRDUpJ+XVUSSF!gs+Fm!mx&o0-$t zxhcs!HeSh@Gvh{h)#3pJIJCx(;xUzbys7*q>$6>-FE=FgP@Hxy zdu{y1`z-I1=SjhQo-m1?Zfla1Z-w=TpHI<t)Eblt=QxU>yzB+R5y>srZf5P zkbJPAhEXW`5|X(V#Qp@yuol0Mfq%e^THyT$SN3(fo87d_SI3z)4F zKmt$p`;H6D9!g!UluHk~YzASB(L@)4Q&Z5z2qGA*;*vR<-&MYl;&Q}A##Y3#S~XNG zZfT?>F`KP>v2Bsl0%fR=99g{@{_>Vd31H!3hg=Yu?YfB!QeoJv$DK0&V7-7 z**n2svX;cpEi-C88+fKc3D6*(*D(_UL}90C4wE)E*lua8`eJF)$nr5n#uYZG znJAp=(I0vqjxokXtIP$htHJ(c>n$JY8tIxuXn#+8b3Z^`w#Uih_H+Ppv1Rnidze}F z2sC5>V_+=%-wFM7He#j!xC{k*$)Uhav+#0Trh{9zIu)*QI$8>4RCCijM8lLK2n6@M2tDTtqh|zO> z{eKmc&>c#IrH|H9DZSTa#>q_uFgcVWIlMCv&gh#wVU05iUd_f46@C#Rp&2s_pv z{zMle_IPM&xcej_wD;RhaewCs`ql5Qp|7%MQy8WZx{Y@| zn_)o-T7A2MEf~R19gSYtGOflsWlV#=4rwbLq}nb}2IpdmkNwx z%;RkRr1z&i4tq)c3MoFE&y@xop7mC>gAKOX292Git0@5VhZK`gtXSm`EE%CK)E6o# zmucSqpMv%6vlCF#>z`Y?qE^?OKkPyF&C(Ipr2F!IzLD~|m`}R|r@cMCF9e{6jv&G} zUyBrqV|V;I=`(tJ{}C#T;fDF$b*IF4I2+}Q9&{1jIXXr6yIn!p z99?d; z2OhH-XdK8=pxC4Yl{_U+h1h<4{Z|;Sl%DcgtcU6Gu44-(A$iwdx>F!v;WuFDp`)aZ zyjVrhe35h_#u*`7wO+QO5N7N?bhqUjw-JbYq*WlN;ms2=xkaRp?{%*Q88srxF-k=2 z%I-S1cO-FBd@GAn)et3I-|ul(mHd#;bXqm_wj=x!dD{$G+=|im*m(Cs%*hxzXy@9Ue*#s5}qxt6it_s71j*@~x zlqB16epOS_uUa=&Y_hpRTyMw1uce_+g40?{x~tL7U23OcW+ziHr}ou%3CUBE`I!S& zMP^rp1f2|v-BoczN&~%V@7gidmu?V1bt|9$W{Yfp>GPk!ca|Dq_roxV_yL0Eb+O+1 zGHc8RKL4jv&H2D3{R6Eic9kBCSox}6vvsp3-`2b~cK?7}VZO0(9bM^2%H8pRi%Kq9c~LMt*b=_`mZ^oh#GRKlz|lpb`w zsJZcV5>|Z&98$IbwB2`7(H@kByNVaQU)aU+PQvtKSZz@CEUC~@q4T)LtT#8^{e+-r zRHx5raAk~Vs2?z~T!K>gV*IekR76!QXjYF32luZ~UoHqJlLVlWj;E^yp}p{pD@UgQ zJ;!Vv=f96{N7cSeQj8O*$Q?oHQ)nt87(3N;W?9lf8^JmWBi?lB*q6>^0WvMvf%4WU zoD!bbc0T(rBj2_-%Y2^+D`oLb=*#@COJ0+%YHh=s&NJn374Glt-LvHJWs-3JT1836rEP=o{q04}k3F>19o;$N zL;ut$7N`Z|%#!ZsVU!D2+?rt1Nx*WGiJrEegqT@=))Y)mGK=$a@E?qSrDIqoHM*Fw z+N0IrI!YBE$(0Euyr$A9K=U2>oE)5yQXH(+3M5Zmo?#ZCxEGk`T`H8|G!yg1PjK4d z<=+$Fk9roB*jd-+=AoUJVV&-Rf1c>cD=AB~RK?!Uup1lUeP6+@%{g4LiRVLNp&5ssS7zALPx4xbD7LU+Pv*oXQ?Bm<{O z6~vopAKL%ZZ&N;^Rta>XintPKkJbY8_|aQOZZ;v0=XcclCixMh1!xz!71=03@h(xz zEyhgE$mIFUbcfqoqCBcN;&Nh2zXbu#hb*>Eh+3uY8! z*Rh7g^r}yjjdgA(XQXuow5(Pf3yP?vl!0|T3siJ0qA1qKmt~4#^rwWtYG|CH^<7%l zUF5*o00Z)K?mVh}3A;Vq5gJfs0nQlU=o4i{)gbZk7nzP{X|wa@J-$&;G8oUYQJVA6 zJ)^E7(9Z!ub=rAOIGO2B|CNvc732TU0_blWv2NLX`Of9A2h+rvqWEKr?*o)I=aN3Z z%=P%7jYfrJBs4!$gKL<(*fUOQ9KHXxek@@$pB)J;;R<4uc*+g0VQ)Up6@c-W|9QS% zI4<)XEl?MOg4fEg&V4hR?F_f#eubgFGX?5_W3hSjX5S5~G4EjDm)p%_-|_hGIcw1y z`aS69IZfqz|`=8~@CpJ|h?c0PG{4Tz9!2ZAy^5rsxe@6l$2yh`b@r&n7D& zP$qO34*QPQEJ&c~^q&pW^s->OH&zpel7!!%M&Dg{Mz^i+5@AG?R>_qENBa9Kl?cQJ zuwVi=hx)i|=b~i)33+u`wEoAn?NUNKqu`T_arCv?t;tN&-hn{eU7MHLk+w*b4G)Yt z+~{MtMK9edIo+Mi5g`P}erA2^wLS22*SljJ)AK>JgYBLAnHrSod(leYWogt<(P>gB zGjqsfcpY;Ke0#}Hg!pbi0$!H_{evdqfNdrA`|{0_*#l;>5|UWmK|TMRngW#aFA*Ts zpuK@05lOwiA%1J$mg@K%3SKA59+?n#5I|eqX+QtjHIS7|(C1U`7k9?@y{UZU+LXFv z`XM#rgT|B?2|`&fhw7SYvU@Y(DT3!+;_M-_&3nhk2*+W}&y8D+wpu}invcUv&P&YE zmCaiL&n0$5OM{vigq}(=#a{nLs*7PnYX;r1KUu<8^LKd~U5)^M*>3!60ZM7*KET|< z-M8^|J)KpzU+C`9Xr{(ln{Di0vOwPN*cw<89MAO|U|bj?UXXz@tos*K-b5223tS}8`5_Wk#ijY{A7A;)A7%AdaiV3A>hqOEHWpBzOF_Gw_W(C+@_so zxjI%@mo9fh9E;2XwssZvh-qut+(%#@s30kyFjQZ2GvS{J}u2gg$Nyxh6 zRRVX4brN#~23}SxEF~aTGku5)dcz1ZrMGR|G5yXW1C!iIAM_O`;v?*;C0v%aDUx|` zb5D>NwZ;hBGC%&$j2eVGC@=g%NGoE%!j^e1c$a#4W$)!>1{v04jpt8qL6io;l`^Mt zP!053{uh77*Hwdj#TvhB`MtJok-YGvKWH34uKX^hT+#D=H(T2H%S^@g63k-wpzDex zx5>!@8*z$z*mWZ5SJSC|0#jG)6mh|L#X^yp^>mCP5$ff3RECu%q`&WtsJ!fsQn_IN z{M?OrG0YRphEpBocKEwsaD%ct>360tSh$v|9T}BEOdB3^J5beAuzmu46!eE|(dqm!#Lu+z`?Gxv^M%HE><~fC6XMh4>d72t-FNK%zcI&?M5{yVP zI3kl|!V&p1s?giEdbT)KP%4RqKi?r55I5r~bxK%h-h3#5EfR6n(iDd*e;lz7WAm7q zA#FcD{z8r-ggH82Lh_hoV@3!r!nYyrhwBNje<)Mm_QG-D;Bm~=?mhpnjv{1 zz+@=uV`2?@N{M_wLiXm_cVP7T@@%BsdEWXj{Pz;RA-_4vE=jcSCQAoU@Lyx?x5<4e zD5Gf&T0LoKEpJ0V;c`b73?57ufN{zvbwj+1pPBCwj#nKO(JvS2P|XBri>_aaQYWEd zXVQB2lwtR?5e+G>O*2KY$RPIXGQgYA(40*3{t2Tv`x9TnSFj38HNY{HxzmO5GZ2}J z5!1rr8rox9ruhC(_{S)iM7W#;f9e_x7l9XL_5i#6{v^W$!b6HD6xqnS1uZop(>O7{ zU&&?EFYAUS^%b|sFl)R`8nSBWv{BGGo@H8+09I^ZtY~G1$hr9k?rfD!lWO9?dwY1X zWt4ur=iSHFJejgT&w^+Dx*-&{MXP;3_i)Vm{33Y^F=>Gs(Sm!*v_yDnNA7WY?fkvG z3aM5E{>k6_BB*2FY}Dqm!HRB6S}&v^ zeb9BSwAR`9(jNO)4O1<&TtxFFT}8u%oFQFCF>355T$6}EBPGwya~kcuw!Uk|XLOjt z1VyuISQ8~Y22zE)er(@t{C?4U1Ha0cctG_iqhOx&%7MUng{W9@iJ>c1yeO+&88hDn zG9D}1uAYp-#VckztG}k*UG0JQuRR&D>7%-mBS(n%6jC-0|H&h=3&!56nbLA0qigXZ zrQ=Xt+AuuwC%;o(tF^zoq)@+ckLUYn3U6@#<`6?GTCoy6&SZtf+yl$}_7eiV5?uJS~^8KtxqV^wr z6i@|6z;h3}gj&ffXV>($L~)o4F|kdgC8e2w5S6=^*XzpQ(@R$a+)jK6KW;jqFRJ} z7$b}3O~ooIpJOyG*z`Db!%84-7~ru0R8~691jdyW@A*nR67C(=Z=|@lu`c%)0W0?F zFT@csO8TIl$q}HQuf&Ju7|aWjh3dG@%vstmAa`Kq>z&JY9YOdgy9YKnP>Ttfoj}8? z{Uz&L9$bh~%swT<-$z&d<`lSzE$1P!;CDHViR^UV2q9YveGDF$dImJ1F+@*2fE9 z4q=_948S%L8Z!<>jL{K~Bc$4hxjA_+x1lrnX=%(X+oAJraerybb$jmDVGa*m+aX-! zotpH^ls$EQVO9bV z44h_En{NM9hcI}Pk7@co_tMWQ;JDCs`@Oaq+CnSCt_5oOKn1kv{CBv>zr5Exg);!` zc<=XA#7pKUC*!y6e>gh|0xGNj?{dLCJ0Vz)+~Q-qXP$Tkh!zrhg73!8Jx^XGX+!^2 zT~SR9lbPAq$z??uBarsf%-!ntNj=ej45!iWN&d>++2>CU`--d}1gnt$4yuc+H&_7W z5(6t5-;J`&>V>YU$ABlV#narlP^MN^uxMl;$PuE*AbW5*%-9F67g5E#a|yWX>ba(o zP5`8RjNK0e&J7%XKfSneeO#Fe@L<4u;*x{7rar%TwXoo9!!H8^waL1S@{HDD%O$`H zPyZ}QOiu6xO|mhsY=l~4vCJ&Rq$^9VQS^W0n=b6YQT05W%hPViX*c<`SDoj>i`C37 zzt1MhmeoIolAs1B$oBNyVC`k)w+x2c1Y@mQp7P-YG+(Jm&v3ee(ara+m56`!^+FgsCr>`vxt%a5!ke-e(hgjl=gx zLft=1W_w2^6UL>C^ZO6#+~3F74p6=Ow-5qSd_%umG3>|o6`Y2?kS=3fFI<3{yo9Ug zraE#BK>?roadADK$%mC5J*Tt8+9PVv^KBVVE-pck!zGIPB?^ZX^tbr$`M`S+dEmob>pd#mhyud>}H6(mHAb0AXp7YLot|KK$vXtqA%+cqt4~ zM9N5cBxp(oOVkC*?QH2R&FRJ`5`^Yk?DTI})6In5>h1cU*r3>SK<@NUSF0&F zWI7Gl42iuWv*YAQawXtYjxr6Fb5@cm9TZI*?Cb?f7~+SnKQ{R)Wl#q!$7Yyt-$%#4 z>FOH%g}9Whp5^6Wh$IHth(fVMu|7$wG^eiFGImO=S=aQO*T45*c)h7}4=Z%a*TzM{ zGAUi~)3vO{1c-?r?sh$s|+lTg%= z0B8a7{6%X$Tp0Xvq_|{2FjRHXA$Az)6KOeF0@wBhN-+x6A-O!-Ffv~q5)O4lbg=2O z!Q3Cjkhl9cv!AWcH}&eYYsVW_>ai^_O8Eg(C z37O1{`LDrD)$<_ZJhV`c1Pu}wioQVC3WqQ%D2l-VA}P!HPN`CQOroBi3`jnGUBDk( z)R2Y&vLbCf+7%^<-y#s9l!Vy9=S_qh)k#}vRM))J!|vq+6$qakSO}*nIuM; z5HBuf?Ogq590}+yic%vX@scKTeQ4)jE^()|+LDXK= z1s0NIzR+Wp;s=Pz0B{*6aO`w-EsEllxW)97X*e;;3~Eq1Xq@allKhFXh(|R2y;0Eh zY3!JlXP6hq^*!#QVp(vPTw{7A(tmtMNh<?chggsvr_x-Uyy}HTtbb7sMPai*dss7JS8_58wBoE_`$L@gGFCDxi|e9*NF4{4zDjDg{0)2amPj(Ibpd2;N-joj zyR!_iCFjV+-oA=An{eW#Yk=EDZOR=Q{9S#weD5><8q-g4^OcewoL?lzHY{y$R*~dc zo|Mtnp8{$e^iHj#gHlU$_lK+t*gm>^@!0Yn6#11!9wT|~1|cn`8EpI-$xE${i${mR z+KBv<@wG4ZcRMqBG>zXzZ=M;WGiTn%PaapMhx+vv8O~&qL-VdY=9w9J_O{+s!h1+4?pL&01d6@z8mx_#fVmgX+6b z?x*pwP%BWoX+jRmmJSt=l(1V%Z2h@d=173y#UpOppY9Od(I9FD)`FwR!PGjs;Ll2_@ z|1m~_>Rv+r^nAbTVGogq>l1i~%ud7_xYRfXo(%;s4~~23VxrL?DWs8fzjR~w!Gd~{dpes`zVX4`yQ zAK4ZgXUvvznUekRpEUht`6ee4{q|{26YBiGM*)3Gb`?3m5W2^S8vP0c`e7k042Hw8 z#Aej>+_kZX^jM(4)~|aU(O1sq{+v700pR|>NbptY>mnN;mGnZr{4b_E2Q|AsrGf5! z(Gd-tWj~BcAk!KZgL)$qo?FD6)F#ahr=9`uv-*%nM=2NsSPwpT4D`jS^Z$Y0Tj3pe z(JjA@81DL{?-!+!9iBz$9BfA5Q*~{2B*vss6N4UhvY>CCAe=clnHKw2s$h zU#2YQcYraP-9DK;4alB;my)9ITsxih-c`y_x~sW{vCMyB$!}u&brO@Z;iGxU}d|x;rJb8X&M=HMG{0 z>ktc&SdgV^>jjc)Q522C;ezn z*PPZ5%$$C|ejWXA-uh16!uh;4@FEf!lkh$vyVceW8X0>MI-Sz|moINB*us5G*dOA4 z(b>!|U6il329xKUkz)8z`IT89ycpc+2zc{x^9$A9h6kmkH9 zmuZ?mw)ekTR0}sjysoKbymii@okMmj2WLJx1fYG3ar()4P|x^1D8oqK%@0kl(m*)h z8+HfC_ny09nd(e6hz%_Wyx~DNn6z8=fe<`rnh|i*BXCsg%?P1iJfK^6)Zd3;R}T@{ zH#+N7kayzykAl#+Esfi^raHO_)-Z1f&MUPRZ3p6C^0cn(mExkGTXVbOxh*;@Apts< znWmS5O_Y!Q9OO`m83%Z8nG{xF7_t>Mu3FVAO+wbU))Vq=nzy)F_mr+ZmMuIuT>8?$ zeN-5PSZ%2Nqmq51K$G*Z`@~#P4=P7jbJ8BxFxV)l0C-_ox}u)H6zT@T!Z_E1E*!uan)O>{_niG}NTH{!E{MUPxsDUNo-|qkw}` z-^8=nx`7+K7focZ!6+PdPo(BsudGm-KJ(A~lYZrQx+W5O(d{pc<07?i?E#Q(yE`&H z!*<+Hhq-TROT6BLCrLO`vq#m@^Et$*jY%kgT%I0RS)HfZmfwl9Vj0MSXR?FI^s`06 z_8MBNDGIz_bN`;+aV*HHAoZf-Z~;1gcNO2n*=<@X!4!7Fq>V32(v~(y2~*nLQYNW} zVZk3^tOPUe29Ur=k-&(-ALJ#Ud@FyT)GrHw2`*(+5wcS??5+a`xmJcShfa}F0ISY5 z!uzz{8VHBog1sBjRtC9$PJm~ri!r14%CC5bX!jr4Q=Mp5%$9B?h$S0~y9iv?c<&O$ zmx+&y;gO($1c!6sVA`97*?w(YCn~v5Nsfee!(W&R2syb!#W43&!p&8y!~=fgrn&db zY0hUYGotq_#>+|(416S1Gf4YJxWo!b^}(Zs`tDMmCaWtfZazM(gha8vhhU2+6#Q-J z7t7t3Yv}7=vAFKa>E2Y{B7cUj%^qC3QFXSHZ+9?Xzpi!%dio478K%(P8)N=riMDr- zax}PST6V2G{^$|KjYP+dEFr~ys5=g#v{jXj^kR=NJ4>g8uFg>$D+%Mio1b8z4gyq%7A zyV-ALzR;N?+l%9+iVkUo+bQ7Vd7pKLV@iT$N-cX5`C3_svLKEz|$Q80Yi^;g(P`mOsk#$<%l4YMz zd@x6j8KV#E3Y??C6i&H#JqyM9tW+4qrM%*!tAA92NK#VVX7FACiBc4XeOk^ z0u*q+%&C`6NhlO}9f@jazzlrKiD`_y>jzeStezQancTc@;Y)vo9&GcUe6}NSqH`Vs zHk~F<3B7^3Y(6hqz%uWZ1ZK}TY#}2NKG8ZSkz5PRKn!JmajD}T-_i`tecau&Dw#@G zy>Bm}oHeo7O%jUXdRY7{g~gS?GyY z)maKAKx4H~YcFQtB+(B)Tr-gJY2|!g1#PVGIHdc;o|XvlCitY^wIHDOdkdUT7&NCg zfxa}g2?s*_+D@z6O)oayGb8Gu<&+o6~@8-S+?1i23Ge!kNG&C*Z-8kN{R!%r?|ns%3B-&@<)E&twtW$qpt7g z74DAogJ7E~T&>YaelkQY7lT!$eDGQ8^F{lf;23zv=cL}1OPJ>A84j2(O!C-n8_kPz z#A9a0|Li8Xb_3+g_lGch?8SdBc|UUoFaK6Y3K{+Wk4TdF%{l(Avu|SW#foPMFR-R{ zVc$2y%yRuXn96K3|DgGF!*H$IpxO*ly??#jrF$u*cW3{U>=Z?pHo$NCtG%M5vtE{Cfuh`TG28Dw6^Rg( z+Xu`8)EkVCmJC9DUj=6HPuRUl-Ge7w^MUa^&NUg*X#N~`js$ELL+jezX<++{dyuwr zamV;{z;wck&yRK^bNdy6%U|~d6`$GmE}w7A9=rpXm<^|7_-}DvOg%RI-*~5Dt9pD7 z?WZ2r-+nB0i>6w%AqY4bV7qL-lw2aI*fVt1dLfme-=O}~twDY?fT7%ti7*RS&!j9vTX~$aKv_D^#wa@0TDdq9iS>4jcH80_j=KZbE`jyWHK&KA?&BjjEG) zC?`iA%>}HuQJ7`Th2SSRzSNf|$lq}9uAjnLhv@{+S8OozK;p0*j#0P6AG2B=H}bR8 z#Mu+h0W2tAq7l#KQ$)2z5ePr0ICl2MgN^-groA`WqYFCZ%GOpMfL{39n(J~ zg#LtW1_7s_e>#*{`Rx!C_XS}z=!8P4x`)2hqEX4YXQMzBhvSyca_$$X_JE2SoWDaF zi1I1hk@89rWTh2f_|a?q^MteHhINE|g$nReh~uzT>|5Y)T&|K?c7sj%cD7e%9Ix4X zx`aT&T#xI~R*5kjb{e?mq+X2LXQ|E%m)=rY$oiixeuodJ(#BSsW1W=^@06s(CE~6b z_eb9oe5-a*R~jZl{R_2yjj$&PM&Qth{G^_4OhY8ChGCxbWj}O=C`v9#idY?MLW;_L zTb#hU_Xx+9Sf3d5nvHc8fwB>uazNVMjz2_8%Y zCaf%@!(b}qFq9bQWG;RamAMA~ig=52Y7#7n5{XwMMYpW5A>H^yWSS@#OROU5^Ds(< z2CnO{cSR_J^2U=Ab%-lVpcCI#XiJ|LJXO&3iCBkDhEWvH7av9wW@cs%eEWMW?`Zv`jEuzPN*Y7MP9J|w==<%+~-7OFo`rwZoF^kLY`nUH>|ih19DUp*ppFwn`U%( zU>)NQ2>H=9C|O@`c*QtqApjR0s=CjhM^P!-O|n*9#ppUv$tgrYHNl)K<2pnkLk|`= zPv;gFQ_5{L2Cu(+WL}lBWi~p|@Lphbs_1KaR5(PWfFy;lTAX;P(buxW232l{w|qgP zm}&%y1BPX~b)Ox~a!t-1{?L7me#JzMKKl0 zwjkRV@@n7Jy8waDtw3)q?iB!t8=Z!krWwZ(?Wb1gX~#>*Yh^pSM&d=Vej^eeVhGu}p0OX`AddY~*yo{d zX8tDszx=DSTZH}BLt64@R`j8#I4+zW20ygUD&B3cKtlpddb+Q6`r9WhYz~tGyQHlOF@XZwsf89gjiFDA z?Uqy=UNaa9@P~;Wu><34`M{4Codgf?QV(-xx+&aO)GXujb@cfbu&5bpqht6Fho``a zF|^9t8Xym~QC`0PK3fjZgF3L=&cU_i>%jnP+=3F7_g)DLsl_S@ zRmsEA$E{%a@=lhRnVJSm8_v>JSuIvlU~)`_+HRT{zwN9Ikk6H*1Sem#34gUpHG-eh z(XoBeBQcl2LwSe6a3RPbgCycOsZc`Hb4muaCisCXtD&f|77EE5`R_PR6O@Fywwe;2 zv5(d*KUpG=HNkeE0Zx!Vf&iHfVGuYSihyk@SG>xSyJw4ud2-5YvR>WFTC~F%frp%e zHXjZ#W^S3MoSsGLh1!^mb5Ot>5swsuY&{!;JOkYVrkjvXBr69h>(sh91SQd7hhjlf zBPVIQ!ODZcY(@S(TYH4$C4CKi49!OzRtX z^9Vini-W*1*QF$>h4#%+BycdlKNIRT8<&5ufE1a+_s8FHN(U26++y(E`Wv&&e;Z-zfFw0p!FQgqV6~(gANKxXaZPnnh(y&JxeGt7SoRMQ_tc zpUA!2^j+&OTRujSA2#nW*R7A4S|eoJXyIQNc^d@Mi{FIlKOQK z0=5JmP1<)rQT+7K;w;K2+ql;1Y>zqY9d6AMm8vGAN)KbugJ#$9?*QEI>}^cFR5bf; zRGS)1Cj#*%Iu@if^dPIPBAy=;d6plumzpv$#3rvHgrm~=0o%~}8;a@-_TWOzB~}}5 z1u-%Sq1U)evh>=aWph0wVS8VrpHSQ6_$}SVuyUH3)_*b;$f;0?M^Czjl z4_fNz=++gAOX})mA47{;vQ{aBZYg&^WidcIpApahm1evvjyB8^Qc!Q*bS5hi8^JCx z4cTgs$JTICA)&?q6fEz}o09d=5;aD(^aCT7Q6zq*;jPjkqbbY9eBVAKWpABiV-qh? z<3`@i5LB|xJ7p-G?!q$#M6pTbm;($x)SZJuQChGdp1Bcjvk_t6Clrwc8v;!nsQmP) z5NJ0mMS7x#!@r5UaalIS&>)L9RLPNYugL#Mb>o4Lc1F8NUXUYnsp1|`GfyOS$up`p zl7cI}#p}ify8C?zVObIx^PS=|&(Cewe5v|E8gE=AG@3EwedYs<^^U#PlMEke{Wv1+ z5^I#dXo%(O_fA;R6cAI>&B+JqG~qx_67=-`TR-or3{k^p`JEC`M8N7&yt<3|c7=&~ z(e)1^{KCxDqD}rkJ(mB=lU#sGfRc6Md+%{SyN}wk@47IipWcq4A*T+nm=N4C>C@D0e00=`3X zRNmYQl3jGcy7^ZcJv6 zO%PZJOf(08Tb8D9d6?&vb^PPTj1@X|7nK)npZON5tyKa&bRoX+UfXTd`$%yF{cK)c zg-U%{0RDEC^Wq^8qniohr2W!{Q@ve8&*vX=_`}HLo1(Pq^8nu z#NCH#5#jVj?}~!^WrUD(0MKn7A+>qdR&XNq`#HK$(;so0tV4rLgU5n$a%JjNE785T z1sK^ISAI7TU|sERZdjW>*p(~C|N1rQ@}=7env%W8E6sVi$HZ(5?7*br{4>9)_el%N zZEX_)1q-?o9}a_3FGaSw5oa6p`?~HE@^x`>fVi`Pl-z{4-M6U|`Jt1~a zR3OZRr9esJ6xhK>yjM|(rD7fQG*%F`lfexg#dbZetE;Qvjs-Rt<_D?(lW$c^A&epq z-~n(0%tx!705_HKBn?XEULNk_K0-LO-n9ytF?df@PS15XH(W$>8hp;#1ZSG$$adzA z6uxf~FNyi%(x|kD8hsBru53IGa>m=ACeOJZU$i^?mvt6>9TKtl}i%Hs7=?jUY33d+Y%?Cw6YS}FyN{yUkLm|Gn>4%0UR z&xum9dK*3JIR9!FqsmU&wYWJP=T;HFY@6{ax>vNoBkf@k-sJJ7XrJ49Y!k*Z|BlgfoWKU~ugZ4%rubsZ>aFBNaHLiyMGq(q&4aN|yCaEQNCL>$@Zs za!WljVvm+x#Qvk4;R8_-oh(_3vhKXW@!wAu@y>YEvYv55axEqfB0aK#NEo6?;v2vF z1p0{vX^76Cg|wn2IirfvUl#QK4sv1?nP4sHdm;sJ?iJn3@dkePV4ci0VUe@OgzMsB z5QFDPga8(zDFx-&-cq}i?W#6tce12-QN+w*l{8#f zdn*0bvg9d-rX6KpVO6XDIDUZq9t->124*z@rA4Pf0G(&KSwaC zbw)7a)OCtrYX<#LWlZ6%7wd>u7O5>D6AILLb@9^zF!04aj%c5L!B{p-j$6?|+C@{9 z^<$^M$}XnPC*UxjK?CNilW<~k>~z#%4_zB=Ii^tC=i62{omI&P!w+<9Ph}60bhG`+04*jmTnnzw2_8fdur9W9X|*PJXJj z#@lgwlH6FGSnXHsR>n8;`r~?%M4BB>F-7~KpA>cs9Ef!`?%4h0!NsqSW^{Kxy~!Yw zJ41Q%<@5WF%BMueywfQpGefhz6M#{?Z^#GTue?>i=8(5Et|znz)_I5uK;v3%_H@L?k0r8@c(CBn zy3UKHZQqy%D5d@c-g=Al%p?dM zJyUH-=XH$xJe#)ueJzXiHAQFps;m#}TAnSdF%ohtwI|ygPmv67ebU=R802cFXm5Pe zmd>mu!i4hg4oDegh6$wIGVd`CWzo|HL?Cr>e}{)ul%)QKy}I+;UN;!#N{*!F&_S|X zfE(X}yCsXE*4^`&e81ZT{I{z{S-u+tp_vLoYtVNOfd{SU?K{(!?UZ@=iVXJgC^sS~ z*`a0D7OnQ7R*_bE?km-%ZeGN)a`I$8lL>sc#5j{@+CEN)a+6=wX=9fbszUkRM1EpS z5f3Z1Ze4>=+X=7o_yR@^iqx8gD<|UOYM(_ar*MzLIW)-N&&OA7xvt1fRagK0CFBO) z{KxU{x2er+sFk!IcW;*)j+YySWJ$Q0nj-}4 zI0Xf40sW`W_n$kbsKtIbw0Z4_WvM@kx@BQtTLC&rxFyiuF8wcMn>U<&zxdB79=|J* z62&Vro|~-*y+5(7=^c49o0^(u$*df$$SJ>P2RykgQ&Fu&Vd?R&9pC&~XsEA;hVBeu z_{MX{jI`Pz-?m)a(vkEd9p5y^AnF!xc$x~Q7XkTxm@WfR<~HtI-?d7~*vlu%V^3cR zxdMG$9KSRfey*gU^y~aR5Xd^cjNY@#poC?3Z}~kS68>@fTLT=8l#E+*O-x}Jmcj?X zUERYIyp>&Ss$!$5j+48Rsp%cfnHtG}eFvH}%9mj&0$l4K%|GyLQb6?Qt4(k|rwHV? zCU6M|yYW0QHF#mV@<>^O5*tVNRBu|82PA?KO?cEARGIB7Yu$gVl6NuuEGwsxu!oX9 z6`hx%a;!!;OG`xw|HZLGTcF3(1^SWTNpUDq1PA3E`lsCizA_@i2n$20X!)K-MU)fQ zEF*Na0l=p5L2M8#+fWxVYo9XQZ(3A3=yjNNe1-X|3N(!bSPrU93_!1MsMz7j3IbbuUQ!>bp3Zv9+c_6&g?5JCD!f6WpAJXSDjO zP6+F6)*TBR{XEx`lA^Oby*+gs$)6##X!f~N$}%xOE(vCx--Pxh#MogzQ4UgZ_2krq zSp#hAG~)k^&e?P2&2x~0G2S8f{cDkN;)N+jD1{nwN1TTYTpWtfrkg_A zCU0OEjxnF$Hb!%QvVA+kw+it-`gnU0eoC+YtNr>TkW0$>gTbPFMg|3f-xI)i1G|{% z3?*f&9w~2XqyB0!az=d{bz5~OblY?v0O?h3@!3me2S+qnJh|nxjiSv zL?|dDE{mPMyLTlv>HhdhRoHzmVSvwY8*OQ_4>N^~5N*Q}lU#~#RN-vQ7heABe{E$X zu?>E^aZoIkE*BDH7~70U0x*8rar-tDA@>M^NLx)gB3$V&!YxVLykGQB-AD07yi8T| z9vphE*5!Sni6M9sh)Tcf3@Q{d=V{cK@55YMheG2(-2hW`Zd9^>CX!E=I{**QG_^AG>Gd;aApCIUQC zI1ml=BdKvbpl8xmu+`TcSjsd#oQyQpiFwR^(U80YoOJ$B-Mzsk=y!g8!3!nNKx^?oD zaM4?~?%m4!?N3G}^D@mwvf3Nu1L@Wo6Vu|~Oy(>0w{N$rEOH#5>%{qyo-??tlTr&X zTwl1D>ANRv%4ttWN-C}^iy2d{8~PN?dyBXO8MP+xsJ+A(6{2uP@N&@yS;3^n<*+rO zV3Y7RIDTAFDMF&n!Q*XsRrw^#i1bgi>xC@=Y{k1|AFMypCHM}n22zF%by4vzroSO| z^-%C$+KL{|zt+{AIE})!sIb=6oPnZf2gI5aaJ!i|q`M-JWmV2Nx8Y-`@*jpHGL~5v z+lCOd#%}5c4p{3J0_}J{$ltZkR2J+}L45^19mdsAYF*cNu1kD$XU}uFpGOV>V5O_T692$OMTq_C2b`|-Nqi3TYEuy6fnQ- zv?G#a^wze4X!x&`=h~CAt+BuB2Pp}<7;LlmlbWMcHH+~NPkLry$l;vxO+jkjF;>rV z^wW-md|c}fLvHEzEaLWahe9A)dmrjAgympl#)RrJ3IyB1b{SKtlUu==MuyT0IOztQ z-rGCyr&_^imx1eW8Ot>&y$wzkgeca6d%&F|+2vR`NgjdZBk%08{s*6= z!k?Nt(8zMqV)rO*SU8D(jzBlK4I zzC%JK?DJe=UVO&Ccfx+@A&m@|$ioZtLTGuT8Arj~`Zx7QqhDfN>r+s@7}(mEh9;?g zagXm}G!}yl#(l=64xqB|;rwjgj*U&3T4C{G_sGZE$mTuJT5iM+7=o11?s)b&JoS60 zH+L>@_1JPE;*(ahy%N~0?d8YBYfTOHE`C(=eW|*SYb2Y6o$f?JWJEpXI5!BwDFtIz zQbHT<#R&HzLI^hWWGkb@=#qNh^-=BZ#x!Ry-o;Ee>9Wdqe2l^fIn3h$!1BOfInk+2 zYV{5Q)qKku(;bI;KU`_XqGDH;0tEaiGxAkrB;yyhKckliUZPesn# z6CbzXyGA`@#)hlq76Ig&94wq&JcU1-!jc?9{F?fj^K$rOC?JHqNF@pZ8z&{;QdpVE zyXT4zN=oJYeP{a8_z)F^vKIlT!Vtfbq%m;7pC_nN0m+B>^l$0#0NxV=Up}dJ!049w z3O`b`PXUA=bU_Ba3&jorrOv~qW&Izt7VStZcp)6Xk8(2@~8iGN;&bCe$>UD>W0gx~}MBk9*|| zLMJ8!Q-`o();A*^5JtF*jP{}=??fxWNM+BQw1}fNCfe8O=>8qRtKW$&RJ=B}-4gF6 zN`Nase>*lbqWsh%xJY1*=7{Dp#3DG-#(m3RkRakmQ6yJCeEG$}I&{aP5|V?clFo?f zn^_k#X}&25^U^@j)=e4^0z&}KS^%csHFlRqGEUgTcS}3z@8e9qetyn}NAG%12vsoN<;gNM>HJK(fyh;5RP& zy5C%%Df94uNf`g`ivLb0rs!gOK!7dV`@Z`bNl}YaU`C)RrPEIBIZ#e2otg1=QO;!z+|kU16lXJnbbSys~rS#D?S zgt=ct_Bvi(6M2!D9_@y7Eua=~&zpCdk{uS7Ow5+{{a*L3?sv|T%NUCmIStCe9jagz z-=1vBJD?K}7PbeiPpT6hFZIDc5~?+U^~nO?+8TQzt*e~jG1 zh~Q37Fedt_*tEUK_>3(WTQai)lo5CJ3L@(q0H+w?d(qKct`96>yzqa`YNTn@^{m`~ zzjuPI>DnOSA)l(9Kf?JVu%R|J>dVsj$%Q6<#_w1;4Bch+!u@mH8z?fc+E@oet%Vw7 zI{}WHe6=l2ei%(_0Hr1?PbCKq+2lzlMg1B$cb@cn@Di$Y)%2XoqmehnmEi*(gU^KN zvHH-UZ(3|z=Vjg!AujZSv3wx1?Z&e0hS?wwzW0;HT>KQpz-f^v1n&!{)3~A+ID`_6 za&@PBSzLnzT`^zzTn(C>nQTldr;3Y9q-Yo4DD?Gh(?eEuX|cPC4}I)zwqzF)l&K8l zrQ4~c%Pp%R29iTEJ5L4_PntSpA}Mw`W$qB-xS@x%2X5<%LGcswR4^DX!qRo(J^03L zv0S&{vp^^g4wKGs-|o z)vndFF?dIQ_{X_GLZGCH=@F3(t21eaNbN-WSzDvTI9|EGvv12Ly1RaqO9x&I0xXk6 z&&jnDH-ueDS0S4O#;0r45a_;%zz;Pf-!QRj{NAo({WgWs)TAV;_m3fJ7}tJu>lbBo z9Ox#_(P(xX*T%0H3kdqlwOd&!@0>c`boJ)_ zZ_*oqXT?kx{vwB7k>uqQV+8H;dY0GVYK@=4`;rTj9OVrIo@s(HjA4!?x8&6|n@6HM z4SwyIm^*Jl_W44AnY|(wgZ@e{W>e#U!L_&=q2g-8Mq6FR`Hz2O@H&jVF(|CJww9~>hA>ZHZ6l4wja=v*E(I4O&-RU^}dEEer z8&!_%BI+9(nV9)71Dguq3l;;m`pd^|zJyeXLS`8or;Up#B;okO?7J<$iWtq!Kk>4? z4tEU^C|bs3w%0`P(BY?ejl{``yz5Xz=yWb|8QYO_lVHnr?)~=JjB(k0KoIydoRT(4 zMfNLTdJFG~-g@|I&J;;g&K8lGg3Puwtl=fnvF@$PnHY&Kom;jUa!A zuGOd!Mf(el*b5Nn{r<>8@Y1_nLv@>6Q)G3#TYhsWN1CoC<-^tLTpJ}yyq5Hw_zf2g zMPQv0|K{Oi2vjNS+9!d3n`V3YSl+x3z7edlG&iYN}2 zpNn;bJz@J>d#ii(s58sFrP@v@!%h7*uYNhs60&_eV>Nb05?)2v2*FOt?{=}1smHT&v(G{_sSuxxt?*6QE zOPSj&*_&@n)sAyQ4DJFk>`e$1SfYkSU(6c{-aA&B|EW6ouVDWLwnR4M4)=UAg-l+! z+u$#pY~0}8F1GXeRKFS{oB(p_T?NIu!#v0Gs6SKRPIVQSi|%TB2MnsGeJ=fX_x)$_ z@n6^f_mQRmu;&-xGKF^?1-)`sU!(JLkMqctG9LSx{AQ^NaXj#9I4C(}R7?THv{QY=R&?>$NB@`glWYiB|?7BIU+ zc}+?q31gfyJJ%-jU}&Q2(C2j&zvHyiv~Kd0+C zI&rZp)yWYpFL+j=LVvL~)5?u+Z0L0QUzXFv0h~D?*lh7#T=w> zg1f|G7>N)#TU~8%`uMFmNnI$D2Qhebl+{}T z^fw4{!lb>w+40_l@87*zO>9=p2vWt3&v(2gWhES_0}e2=^H+V~+DS4UmxVYYiZ$it@yn6q6!nv8E{6ppjE^?u%c zmXt7cU6rlV=6;P zo(-f`3+@(w7tCaWF8`T45En*8WUY$xdZOw1rC8zu0EDp}^Fny#6;cV|@>=DQ6WIj- z$q0~#veXvEAL{N-KkdjAcaeWv%7Ycj0p6T>eR$cQUd?n&wcG-bl*1eG&Z&$*e1Uiv z+?6#Cx5?^~T*)Wap~k&#pFFq3pq1XSg<4ra`HBV_9zFqBY-!sfPQwN+m(&ko z26*g?0gNUL!?jmDvZ4tM@RhX{Fti zLHyqvsA{H!&E>9TN52m}RqEY0Wza>=tICy~GxU(QTxDW5T_W7(O00WP`G9pX@C{7tm&5U$u2~RLlo6C8H`On$MyEJ>D`FU1Y#jp%Y%poip=ahjs8=iTb zwLN2K2XC1&qZ*rEEc%1~1d&}M=YSzxE+fM^RX~b+nrlqxxN10-@RJCO*GXnB%c}=Q zXRYrjjGrdNIzI3HKYA>p-K4dpfuxw-I-c*VGj^I3m=KD;H_aCgxG6GGYk3dvZpEpT zGX3tSt)keNfHT-M3qn~oi1_3m=RNCI+%TDo_Kvc%0U4%ej4bNq_Q}@Ud@X0{m|gC>DQo-nZ!3!cOZ2;}6D$>XsZ6u_=0fY+2JvBofg#!dxApXIqW{09iWcb? zDAyJaitPBairk{gWHt^4`P#{pe(mp=Gbvl-Vv#3SeIkyL&57RJKi4}NYQx(!h8!9m z|2&q?)HpONtJPEux0$7J7kjgx#=LREnbD+{$qEcuOg@HeQgLmiieX=P+$fUclWb7!hzoGzTVj*!I1?j*PbsbxQ5Cw z$AhiKNP~xpZa63A9PVpY^8E<1_AqP8QKjy z&=PFt{d+_5GD7XU9svvr72c8?(ZH=z2kz%F`w0G(fVCA&;tf*d0#H}kU z>Och1E5;H_+PJtR>({A5d_$_2dtP=*B;g;2gDgs>(8*MHxPqzamZ&;~Y6aeyb7U!; znx~BRMl%F{VUwRn;9@%vj3^S_<6P-t)5 zmqvx)a4|YB3|X%RJ;a<$J852J%Ts=+H=%;jp#zrVvZ0=+N=)hTv^L%7^1aj%X^`G$ zhat&o3<&Hh2M;zR`ZqKOG#;V0g#+cdB^Cq$JnDDDY-{qs>$g7%GqA1@9O%xLYq(fr z<=WFPY^<%hse_r%IKmC;`Y2I9KZjk|nqzujj${Tud=06pYsik_7%Y?(TQS<6nqv)i z#t?FmJLN%$1E00_9`Ib~!Ni3#;Xmw^iHymZ0+yW&gG?g75y|Si-ckPXUgVElJNn#n zXHYi@r7O;`8-Esv$sz!iNm#8`gb7!$4yk2+YmrWSd54gLettk~F&2-(uhbckN`Nk$ zF$pu7SD}IB)}OoSq_Ga)p$lGxYIN8`@RczFVi{(j8!wP`R36;&@4R1oV=V^fl4NZ+{$EP#t^}_B5k-U=k}tdRTmdcvpg{V<0yH1IU}xDSZHQD1n+(qlky) zIIu_S&2g+k+Xz~_pv_THqAK9!R^E%yh!D!0TBAaz@2YwDZMc&umF=XdeX0T`k;pIQ zCT#}af4v8LfAJ0B8n(FFoVa=A?1E4yOfJrfWn@;U+#j3QR+&vXd?QRU^mV*%bA(S# z{ryaAxQFQNf?N6fhV8NFE)A1v(5H%+)bFubPCpZ0A!{0sqwR1dhwqG8vYO8)s=V)D zJ9fo9g-M0`S$!#GRMTX;g?OQCFqY6Z7D%IE&S3X4>FWBjKx!fVAP+Lf7ZZdE;lk@6 z(z74^7Kw*VFiCG0TTz{BAz2=cngLW8(O=rdd@%^BWn<;|Dmb4kg7FFtby5n^ifqCZ zne&`2-hLAN>GTJn)5r26E#@7Fm+^09F^z(UN2EjqL1Y)LI>wE!+#QWpBkVwEYkgOF=2>;YBA@2$|_|4n6F=G{6o#`+k7+|)oTIwnYfhD|^>>KI! zE(l>U;SyB>_8GlQ@$owd*8ok&3?a3d2D5o5ezN5H?4TZ(w# zmcOhO_&Dpz#<*}?mI6^a#$Om}Bo9yqCrvS0aS16QEXjh{;9pyS1}{YRQz$14VEjm$ z{iq84t#;qDtRtGlwwI%k0L=>%D)FP4Cwed{bo>(2p#oSyj4ZpF<0Okr+!o=Hv-Qy= zaak2LFO}HQ-*?6By$VD^k23(kp22?`kZXm}@9s?lIP|*z?brV@Nchiajz@&*n7`(w zMDvgn(pcy{hX;_eUyU2uSggggRyNJdqgKSmLZ$3}>LOyGL=MqFV zopJ~Zz4cE%Ra*Ev_t8NI4}?j$S6Xr@9xEyylcX{*7W{`8-K1wRp&|M$N_QfGc&1_+V4l4zNF0sqjhQNwvLF=VW=hV%FWpq~}k%I6bAz1}TpM6UQP_heKHB z*E6o&z{_snFiph6h=0}M#$MuPg^dJXiWZyN)NvFuOiV)S?^_WFVH8I&D(hRDw2&$e zGOy=Gy>~09)nK?kov64to_r4ACGbvV(OCmn)KP*}?&)UE!1oSoS2FoRMroD}aI`Vm zibfcyYVhM6h*y+k59MQqLm^CW=NRdDHL9N*H9k+~y`^u1x%dk_Ke_NW1I6R7T_c3J zILqX%EXCV^T_d0Ko0>qwQm)|f8uJ&ZzEs0Opt$cv^r0~1mJ9710a2m!>lb0J3a8k~ zaQ)<*Z11FBU8-Ph>nqSW_jicG+*$J&{iLf=V#Hv1Ri;gB=_-Tmvc)>G{a?Ryc5|56 zQ&wJ+pMO;{{fc5j1>!Y(+wt;*@J$RT7l)~DjfbY{Nzx{|&+I%56z0Yby%_0|6Gn=> z-}(tY$i=A^xH$63uIf6r#Iy?6(orrwSd`^_4dGUvFN0SZ)x`XnRKO@tQkuzb%PDJ> zqrA$?d%u*Inv3~>?MS}Fae(debEATHCoJAG3Nc1&712gB`LQNQ;6*&q*SsMR)pSna zi_MA%gIRDH`cqGlN^~MlO=t()RG~nyFlgA&IU{mDlqfws)2L$k zh(>*Lb&}c*{l#U*Qi5_H;u}!j*66R;k4r%eNw$Hk&4qB}sPw@+>+HLzEMv|WAiYC_ zH&*rbv$rGk@#P2g_U1dRRihV5UDHj^x2xTLQk}4bqGyq z&%e=Ym#>VTcJ6wdPv1B`_H{`?aKEr5{+S$}{En((ad}kl0^8wjKcQMAX#->5Rk^Yj>}nOz$-L%fc%K;|(1bux$v zYs>F(C*&j_P&8;!sjb12aTnvy*ppFHc{FZROUc<|DX%^z5JC5AMJwa4Xbm0jt~`83 zM|03O_0i^0K>rey=Mz3l9v`3XWpktm6Q89WnO5Fwj!2n{B)S(AgPxO;$y%Rn0h2jt zVzhrE?YNd=Wd#jRA zWhGk?JUSKSGcD<4+-o0os3#`8CNe4T$sF~Co~ZV-plXzqJfEz<&nCbe%~>FwRvJ@5wZvIc?#rfS*eHOmN6U+4F9d#?Lf6+?Q+P zACK=(8-8VEDqb_ABfY)7^L)?(JC8n{kxvGSEIM--Hi&Bvm(lq9-Dn@t$hap-uX~_ z(N8;`T#oa8%TH9&bK*w?^CtCm`cvDfzH`r)7wyu;!$VMXM=kaZp5N7<7bTM};}6}e zXC6719@`hQcH*2@vLY*>$>{5Vi0fr)5aZ&v^>OS4%u8#>=0!P4yTnxDE@vu&wcTs} zozYO)p5=3e(t8cZncn*KN;9QIOigT&Mt-)d_%&I3%=9eVMNc!qL($&q$U>I&!rf`R zDPg9!8yL8yl;(neE5Nha^*K#!Q(mJ?iCz?$hDK>Wb}~q^l*hA@nwfp-0hidetR@*| zkE55j9ZWSG?Ey7gzt@Xt8l`V@GU44!$9M&FYwHp1YVKhHWY=n4H;EOuP9i^%rBImC+9Fsk2+wG5NZqtrgaJT{#;_^atTnqb=8C-A zI~egr&_}dkRG8BZjr7GtCtq6%AC2P1ljeA&R~`79h}61k7f4Vj7++qPjvzAR*`ii#}=5Z6izs{h5Jy+UeD9)C1 zH3<6E`83VsoA8YCpZ#CX8|~gguBgW#RP@_V{j?hvKr)!_v!B&r?u88*)z#%;zMobw z<9}02fsk@r>}zuBlWz1Ha`@}+>h5$X;#)UKW&n(bK@@`AoaY|iD?c1mA|)SUl1;4I z40Ov}H3{ryqDs>2@}{nUC4Kj*YW_RP#98)a$08E`c>soB4tSyEFoy}1WP)ZmQm%`S z@HDtGfl@5ijvS+d7d1;S&D?X}5jKJyvZ8)+D6ax05g4Loi{6N$fDDD^nM ze_rLfE%gQ#R;PHDvfQRC#H&!1eBNiddROPXJU3kxBwpRcVtIPk0SrH%&+fpKr8j>aL0m}1-D9j0`{X* z5E(e(FUcn8igjqPi&EJ3UQ~HQ9YhHBBSpPU^&*JH#*aFxXlTfq0QJ@x)ao}NEaxzl zbHuWgv&1^||I|F=!4rmgY0Jh{z_mLVBdjAV-a2E6g)oMM3hHWLGi)%QhKQrx-nA*h zex*sb6M|A13sq&nu}!lkeh$q{(Bojz$g{G~KfJVIf4LHf+n6T{hRu6_50q<7x`=1O zyerr{W%bwt5{E;j?xa69#xfdF+%lNp4U<-Ph(-9Y1xv%bwjpI)^-thHuTKr6eukad zk+Y%VS%OX)2*~8*gmDhXg5CiNBFm!hBwZ%<*cKZl(voh1V$b4+#l)UUzz=QW15OZX z$&fMIYID;pCH3~fF1(@w*GES(?wT4~zt^Fje&^@%^TS_2%mf-^S|1t;q_?3!I80i2 z(4=x&>Tayi55vA{1x^x{SBZQ4XYg5Wi+bL#jy%S9b7<10?P9(6`EqBa^Vk_}#5-Z7 zGeES{Q)%rf4~K`23fb3%z*qILqq(HPG+ch=rFC|zIn~=@q4CG9TDnsGI;o%iKK`$J zMgJxf{Y!HPPZ*s}>T&9cQWftiz5n=^-koh9Y8rd0ob|2xCko2i3as&qDbd zmxE?%=4G1?cAMClMB*uuV}k%cOG>B}yHze(P-U+Tdm4o2%5x}Qu1P8+&eGc{)z3;S z&=@qa8BDkaZN69>xUafv`!vfc7+L+w+GT}K zXO_2(95!N^CG%=3w)1O8+RFNr>Ic11_jl4*iL!l4Rzyry+VH~GFL^9!-+w1o7;V1o zY3YV&*yxQHR10^?|K6@JYmVn)dI`5oRDo-$|yoCi%A`04jufkIt1N^2o@^=-o8s zZoIBY9H`8pt+^Z=LO4g7D}7iKsr6iA_fA zKTl0fJ`KrDo;(BTau{i?kKlb=A3AaJ&&cE^luEF}Cp0I6#%!F)_r3b)|8>%PV@@F|$K(x-S%(%K1W4 z;Z~7?i~IDipKs$skfMO`PZ_h@BkR0?$CN9+u+L{$v0{nJw61c$>zr?w1;jiAvnz}L z`UE3F(V?S9R3nn4wW03?Hs1w>0c8r`5Wcv_#si~J{0irjI+7`Thdlg}6akPnAu{}c zXqL%`T7^i3cnUaOX#++qnD5vkjCoG+QJ>-a@SmM~wQDNA;&b>gcp!)tL}s0D9c>}> zuALS8ODMom%6XCi>(0L}o|D64!7Z*WkWbCil-MJ#D0Vc-Mcz*Og)xD z5;^?xlX-``@t(5!*30`AAQr}TTFHjQ8Q?U9jB&mX5!M07R=WxVCN@C3v|;eNwlLE4~D zV8-mI`|m9Fa`8QD+avF%C7}C3U@31h$>`2L$r64vKZ?Vh7D*LWd zj&%Ph#nNtJYt%D=Iex7i;S|2nmr~gZ;Rq4GY_*;a1rll9ye|+KJGS?c#$>Wo6udG9V8+lc z@B^V(T@x+!RpO1LG}k29$_eiy_1)h|)6z(Qe1AOhJ9Zmoo=qAx4K`Um_7oSkA6nI&rBtV&9)M4$t!uB<|8HF4HJ`aCt|KmWSPB03A{L z%*8aL=AADf9T0mTtitmVL#HV=>ST<5=%EIv&+N`MGsNn;M|-z@6pQdW=&368WAOf} z@|u1!8MQ$0Li)D3pC2$C3q2XjIX4ogC26D7K;E`Ag2kc+U?Jv%@iy=(^4^Z7;PMiJ z-INugbSJ=)Jel8-si@D7m|B}h>8dQQPV6S~!`7ZKRfkjQs@=&gYh2Elx}y&Gwef+L zQI)xD2@T#pfD0%_fC|R!k^A*k#CkGXS~Bxiey_`P=M#04$(-|R8%_zsS4D|`+~QT5 za(4G9CP+P0~^_p89ar5qSgRN!X{vMrc zm8C@Wl|N7eRqEfZkQDv{4xn*xUqe}R1JuTPGF!jha(6=x+?Gtvsl%5n&@TjCWlb?L z4-jYE^2CPrC9j|-ZX!p0H7`KX`@{wUY^5sSDd~i3Z6}y+qqvh#ap3brFSGImN7p}v zE}4&5_FS{h_FPR22W2WaKTMzj)Icqlwoin{({EPotKyxAlXSo`!(^Bb}q& z8YNA8@94F&tw?Xx_9xRd8a!-tYW2X(t7<>QV2GAfTTL5)5`?T8{J?5!+13GxYp0=G zxPPTtTX&t{;qswTkdIw^91f1}*Eu%5LB8s4uOLGU$0!)CgE3r_T@%`LwizKlY6w&43j%kGi?4S_2m&2nmE* zjtQ896S~@D@BV(#&*RPbh}a3DLs`dw5F-Yh^2vV58g(Kf@W+3dpo1G_W+UX2g7?VN zOk?E;rzSIBtzh_!gKKIKAIc@jQK$nY7Gbr9Nu)`#maBVpuSe76Bl$BSD?pg-Nhbi5 zzF$|x&7VWgQhC;#4F{eIXON6~H)M<5Z18Mz#WsakR}0jPjzn#7YwGPuVDVDRf9H_f zEKYkb8r=>a; zi-0>S**07sz6J=HYk&wI3Kdc2F$JF3FzhHMElD2WlL&?{ggVwMJExcQ2X`nBJ1|h~u!ei;?S=opQwuZb=7>Ag+JV)~mW3ErNbY6-sh0(RN*_ zl@sUxh}7T`n^mvOb8jPQ2OcLtNbf0Mtm52eYRFwjlp9lut%gNdM$LiG;KOQV>$QYg z+d63N7*ux!Z(v`@+CT7O=tzfHhakF&6qxHXoTA@8ZS1sqPaXvU2N^4*V8d-S!omnJ zJIlsSfgt24D&5=O=&?+fic79kdJP{^;|z=?v$Xn1oJ)*Gw#suK6aP&Mt^W_}u=RIX z1`;srLg-dL5e9tdI-5t6J~q1pTN$e}V}k@f=>?P38b$vaTbxruo6t`z5`o_6iMk28 zTw^!~e=P24XD;~hQfK?5uDGgN4VJvUbNl&Su=l0|19FA7LR(*3`Sd5+Wk*Oz2T*{q z$&yc|F-RaxP7okLXt)P@XVve{$6sx{s9|b|{u7dprxC!3Jac+Z6o@Y)7~^GAsdLqt zAIx5yDrFQt3c%^FF;15%TB2?UZ?SNT0vo7q10%r4LH8!RW@>){8tdxym^{ zet3(jx~5gRdXU26V(^UdqlV!QB_nEtkJd8C#JMSQi}%XyN}!gxTaA-2l~I*hEJ>Jj zkp+`nlj|Jg3n{<%9zp-lhJ7cG4IX(^iD2|yCeJfOZP0!>)Xz_B2@KGX? zGYR&$OoGl|eEog<{1)PxTCmt5MrN}#jE(V2>51}pL@172pp&_p=YT{i>}fdgMqfzd z?C7Rz0bJR1yy1*9FAgm88N#GeTA2Imr~aku^dA<>}WL_KId=ORzMbu~D${~qc>i*0EoI%%0bmDJ``cLvgZ zBHQnv$A5__UQ7GFa?5y>sj*rsa84!j_tsnokArQd9)5YSiG0l)>--lfi@|stf-{xb zNNo8PRYc^+qRlK9JscS-3{ryDm~Fy1MoKj@T1o}Jn8f?xXm#UyuXWN_L5o$T`w3|j z(I3A{{S6heQA~L&xz#o(J8xwrNj&kgLr4i7Jq892_@vra88(Cq9iq+t_I)i5SW@(? zTqdWRbe^jF`qT#uP-zk$=jkpAdA4CILG>wtg}{C zK)u=k=z)tFk%Z|>#X#VG2+6bjeQYOQN+2$3JUoMok=i0KY$Z_!UD^rQO#&|D z7$@U5d6)E-2MOQ^6Wr5=Fn8eRZ)d2?#XX<*ojI_{_vm%&`7|&n{XJVrIBtq!YB>K; z5ZTsW_1#j^;kl7jG-iN zecF}c9VW{)J%2!}$eEz@3KFrm2We|70k#egzKnlg z4f;hokRRlqD}DBr50!X@Pc6qOI1Xplxs%*5#v#VnJk=GHjl27^&LfzH=c?d4PbV)d zszTu`y~G&8NwyM(CSy@V^c`RuOsRwp%I$`Ji1v&SJ01DsE5jrVa1BK?f85a0ak?@# zVfr;2lVSlzu+15GPEA8s`UgACt2{ULEaR)Rkq@NcqDpyc)cl>Y_!zcKoa6Q~9ohB? zrIf+L0^x(k;1)AXhi9at1vIIId91ALOU?Ub(|F1uvE>ipZ@Crni5z%tB6$SicP4a5 zg%tL#Oh(475npgO)7x>=;8JF*Ve@$>%(EWz(j(qWb{UF`Rowxg-gm-gLbXhUcL((_ zeZ^mD)W-93UUX5ti8Pu$AX~XxU49#bg^u4S-W-d|n@gC_eABsrE8ktmxhCM1GvWQ% z4=J);?FpZL2N;Y%h!dG``wph~=Q2t{!z@~B{P&2j4|N&8Wvm#a(jx9|-3em03IgFdNTB+|5a6apWDdva_$S00@umFf^*SZ@50h zuI_;Q!`%q@h>R(N<&u~>qiT#FTik+m#H)z|!8SlV)k;>)_hwh|TAVhS$;0~DXcP;e zCYIDs9m1m4duqw!tG(f(Z9mMHu#d_!RBLSLC_9n0oeq|TPkW4x@fa;l|Ms&B?ETjh+{9*GhC9^bk4PM-*}$o(cDWo=lpjHXsT@5&S+vne!Ir_eJ!{BBnKC3>>Wg5OioF`6WI*A zB}1vT$Dp!}AjE7gUZS75{Os)E)Pc3AR6%p6*X%r3;Rsq^?9ooVeD8=J)F-d)kr?5C z<7t%fYG~Ne5jN}X;Nsm{t?T?!&_V20yR*WP`VvD>^>{5<=kmx%8?V&C>d_P+CQFr5 zEF@oZ7x1S(W?5oo7*BIXb_J%)m~H&(Ae^x@CSC zX;q31I~p1kl7qxU!agtC?GFM9b)6z$YFG8GOx>@q3Ed%a)ay%rx_JFdqb`SOV}^Q z%W69Afq_-S?jM<&YZTf6=zK4n6hO-+Cg&wpb*@-yz=weEdE5t5MGJ3qe)n0ZUyM+K zG;X3w!NWNzvO6GLGk?y&B9-Y%ZYU#FMMhFx7g9yI@(Y7^!OM1?{HyUy%s$;DrJwLt| zbSO_w{&l1@{?;uwna^pKd5^>`)q|PN>NEh1RR8pshioOw7XZo%#x&P2d zyft}w`>{0wj}JgXZusl>ukfpnqHII+{#yvDkcUb3(gG^TDI=<*4|y&W@VHc7UibN_ z%M?`x2dRti2dpA~ZDv~h**G9plbdLZg{d0lKweA^?dgK*dYv)MBR)vAAlWkE-z^6X zc_yXaqWE4_LKrRyeMa*(W-uCb2%b-I6}5eYy*CY48fLDvj$&Ia?xx7 zkA_1pzqSN~T>(jMNiMOuAy#AX`v@I(vcKp~N?segm0B?25QOY(n$h0K*J<VnCHp->jjB1PRByN1s=-!h+@AP&AJY(H+^bd%bO^o52sn{f-KKz5ZPsMiC77` zd`1yj&e^r#KOI*g?X3V>>c*R?;);FjhiZWyQEIPqbsBV8qN~+nqAc1Q0CVk94)Mt3 zr#)~s!zIk?c|8bHtNCSww>uLK0B00F{AYKRw z#fqY$AzGFGg!A&zv6L&?aX|xmVsc2YL~#N9DX1@_>P(!2#cED=Tdha}&Uz@aW7Ll@ zP$vD9b7>^@|4AYD9}l-klLd(14dA`P;A{NP5dVUuXT0to zOI@ylZuW?F=YPZ3|)C+^7&ekq;aII z$JEItD?!iES|f-1=E+7s%MipzB$WS6R)ywdjLmbr7_S`BpA0EwOM%2TsnoinwZRX9 zjv|Tm$f%w_zh{x$VHkIS74WiY z_Pf!o|Bv<*88WpB97AIJ-QJ|)xV>i8KwDtB%9N;tV)kXs2aygqGOvPEQTqKeOPz#b zn7&oTGUYwlC}|I;Ns47GI#G^{UCpK zyg?W9+|NR`ack^W4)pBhy>f0^pg-*nkGs!kQv=`|q2c!5!GUWhlF|;w1q5L(#~zW zPU{?v+aMdFZVKojVc9THsjqfk~FwDahoOZ?T1E5qi{X(rJl}j zF({VwWnf*Hx#TWxjkrmj<1xP_mDk{*)Nq2K-5+XBrne+BcD;f1;ngX(4C!{7jU2lH z9wJMeAt15?LlodIF1+kkOk)cw-EpWnP2$};si7Q2+_zo z<6DBOK{ISLF}k^Bk=^Z9B{25DYOy~_jgR0<)p6l^tw25Haw-m1pe#$gruG$?rzMxV{P6Io#xv%xodBW9yrzAtrV-?5w^)s%c zMaOk`buS-n)m1iu+pM563iHyOEw%kR#aym5FGm%B4(7T;t8gDD$zsz=*{*lvL?8+A z3~}spg4yi+;{5AUorOS~^mrP(20z;+t6vhI|Cabc(^a%7m!Ay7#+F7)IrK2A$So|O zo|BUo+XnAR;>W+N>Dk*<7qp(ScZ}=*eYpQWePVobXl`4G`oG_I72YY{QSaXIPU!WY zMo(;?FW%2DL@1n^dxyNnhw|0iw=qK!Q2FTDo+>Y%Dg`Pi`A&3Sapfo%|U$wuC?U?pc?|GqTpcop@8Q=E<-@?iF)5*?KTlrx)FADO_wC9eEmyQ^a zFflgzI0mKt-eT%sVM^Q|yuWC7-Dw}~fvj$EPj=oX+A*?|VYvP;_~7nQuC9qs68a_M z8}T3Jys*uVvC9FlvVS(g;z5nDz}|&smR8(FT|3Xp4PD4YnHh-GquyweCXpDY{Z$>^ zXZ7}nwh4FD?1NG?)$W0=w`{@m;5+k?>Z@QuiVbD-wmbXDl?BwAgCI9cyi2l!ha-$ejED60wf%(0ZTP6?RRYPH#*!c#1Qt zKn^L5b5WP%oU`>(_T{pD;o24|-d`kaAy0GQ1myBGP~R-WxGZ7kLuiC&Y9EnsLeK!u za85kDKt2P42*3~}Grm;5L=f!Am0aj1-r=h`7`b2K8YHHeB%JPJUa@H-e@ZfT$}Ifw zVMHi|sl^Ztqcpn~ph-J1PO@u+69@&L)#yr^{6Mz}W9kf49ivX3jiQc$t)z}-Dv-fG zP)44XM=Zxxjoqs_VY?8{PsXy%3V^+U1)47{ACm+v2IQ}yfCK-16JM;V*wQw@QSe7> zB*mH{CP)y$8d)Q44ChJ4T-+wDj`Zlv=oa~dG&v9vV-`-^NqbNXI0(h<{!#CP!6cWK zI9x?z7Ub?dfCWeN%OI{<{nCJEd;SufAXFSGyQL8It@oXr4yEx$!Yr1iN*~wV#11t( zzxrm0MGFNYUX@zs$D)kyW1|myZx=IQ8<`aviz-$o*b&PMk zF#rT*UqbS`4#s|$R#T_oX4o%1M7&oI2xuN6w0TvL+I-|wBGt7WOUP*dg10P}^)B)| zY{=x6sG8Xn!?~H#;r>RxPK!8kG_}WS0fS0NMvweo@O)|-JEbVn?f_Ngn?-7`!?Tnc zusK`J*pBNeic`WEjl8nyfwq>Mmo`ANwv|4oAy4($eV%*N%uKvo!ehU)?OsDI4V@mQ z0~J_nj>c;2+K+;Wl%8L3%y5%Dh;0^-f1(VVocg#rZeEw1&R4msFG!sh5vTo5m`$_H zf+cNo-;i);Z6&%hAQ=}C;!6S)E=YS1w?XN!E8=8^F0^*Q($GY)jn29BI=J;@JE7re zg9`F>A)0C6l<6+sftnzG+eQsm)bnoEmtMvN)H~;S4wU0oSHWu3haAI?0`GaFQ>z*U zvcn$uaYSa6y%RXmd1Sf%;?JqUwX(&A5@=p6a}h`0A-sC>|3RuNM$vGW7p@i?271^AUjl(${# z+a=V-c3o7LrHrSh(u7FsH=Yn;WVA)L*_u7fAl^`yZXOT}T#eH(3Xgf{$zrCE3@?u5 zT4oW4+~J=+7vJTTE_s05eo@Dw{LNyGu)w_$_W6PmwyJk@$gx@Qs*f=~jvT>fcI@>VtY@kiftUy7u;Q8Iz zCo)vsKyQ<%i@+ep(R!oOo4h3~<-@!JUFN}crDe`C=Q zBdzj%JE^jK`J^B|2MRt0Iz3(QLArky1)qG91ED`JPg}9t3{(G)1@MWuty=2)6hadD z>3Il`A2Z^;-1ghR+SM&l=JC($PrbVLt!v`px{smvB>ktP5lLeGTQU7am&f?UzM-~_ zw{ysVjL(F)pt0%>{nP0fACOB2H=F zzHMykU?4;KUy3ZBz)^w#E&sWFOhl*%=bF>3YE+pWN1%BUGv762Pg7z@Cb< zN_4xHew>Q?ulI$=^GWtRP`iZgKVM*8 zGhb{TN=;Ii{iEBlO14LncUate-UUv<=sofKWynx-=FaDmOX22HooGBn=eKM74&hdj zxR3o>Xd9@6&v!*W7HnkkxnJv{4oDhS`nz_V=uS^oG_B+LSZRwxI!1-7{46*xyn9(* zI4>+anfTO{GYYT$3PBeH4Kb~#gaXoE3upHvaFb58h6F)&y#l!|p!+ePP2p`$Ayc~L z`JTbfUFNaSYGjswvZJ@bn5}V$Z=cy-Pxs~+7bJCd`W&}0g7JQF=YpYAR zGvR7ciR^}8_WMz`K$64d{rmmjzz+WUtX-t_HKqM$luMebp1^cfBwMD{&Rn>?MS293 znxHPSj?HsSf?u{IK{0 z@kob4iKhU0_z;xzS5I@Ky*dso=XTmbi!=$gANx39)ck*?9ezb%OFS;&^ulQ*L!R*?V(;7gWz@ z+#2Pf5nKC`%g77Y8>uvBcO^5~%h&HA5_w)L_0*I9gPE^T-n zfmVmirbzHFRtCrWxN+np{V7mKWZOcds>=0b=lE8k1dY5v9DfYZ<_=S+8%-pMuKyC3 zUDj-J4ZOsg^sg`yF@S%dC6oLam?X)p8w7V4R^5v8 zF`^P%vCwJ}2nX*8lm;bpmLgas*z6^Qb3L+ zZyfye`(jvus=jr8LXkoN2l4M&B#zC5Z&xa=^??&b$@`%~4m%^?d3u<1Zypu@;>c>o><0ak$;}n$8w9G^yvud{2}%a*!k^kq%WFz)Fr*vV#$1 zAw#+;maAU@1}Td5Pg6U@p5cR=$@0fWV0VawhbfJJ0io)5$*$oXch_@U7JKyjnaVwn zFA%MIAMi-$6&IDEKNj(&7Q~wr-+DZuzdZX(oT|$PyyNaMoM`nGi)2V7;(E9UGNO9V zbd0vvzeOw(u6B+u4@ZcRrF8Mlf z@rvPVV+mY!0CDlAO8XA1op0O&aYSV9KCIP%sHgbaR^}elGyW^fL7NELK1Anl`rDr%7}V<&2o-mfQf!g z=BiT>&MKdHrBGurPXTK?O<>yk(s9}To$MHJQ_w9=`p2^(=~h9^7a`zPf}=)pPSvsf z{ZEE~0pXj7AoFunF3ZWwu_{SJ|BF)gVdMP_f+Nc$-xCV9YaYF(e2vY2nZQawKnUKc z2quBj&ICVvNL#v||5XW~iwuxCG@(f3yY1j_;OrX1Kce<;eTaQbT)a-i>H6+)`s}Qs zw^!_boP127z9~L`s^7AH@%@d=oT1m3RzQ1z0kQFO;S zJHYn6!roD;nfPo}h(jC6r`Mi%y=V{~lkJ|80iy&HFQ1;lH;OZl3CFB2?O|{ICFxzS zV_mW!rQF4z6fZKK8+!=rdkI_Bt5(jxE1_|54tE!BrU$B_zkVAp7eZzddbn+W$;O$E zsr*;DjRtKxJCsLsR}5gMeOB_i`JX0VIszrt4h7zP%cQyZ{4ty}A1}Tic0AnYnRT_u z@E=|GR$W+RNo5G~l*9gROJjOij_!%ytV+#S@$Qa}6ns4%AC*MXj;<>c`i!zB9@gQg zCB(Ruemf;TN}PvH7xiymZgm>$QpbQe8$-V_(D;9&aO-{C+kIfY->LiFsjEL7HCTIt zro@?@XDgiyTw)7!Duwj#kHPwn!M{IP&a~9+pFdwUIdt?xLzV8>FI1|xPgx&>!9k}t z-Gq6Z6!J2sbTZgL`*2Y#s?X~CJoQo4Fo78Y>JvU&v7#~p_o~>7vCh*mk>3Y;UXO}7 zcV%7AWk=`z*(QVsNB7ga@dA8*9^JsH^1liRG zv}tVt(Fr7`L)!msFR|OD4Rv}ayhs)WhBdrAnY3KvB|V(D)n%h|3SilsnI%HsR~6)# z2>v)OELYQzy4fb9+H3gA>weGtoT200XuA|WxxkZ)dR6__7ff}u&z$pCS5H1uc$~-q zmF*NyWHE>BN(EEN`1-Ge=cVaBE(R7EbiLeIY)H_EouNpXwQEJrdl`WMya+$lK!HZZ zn&p;bmJX2VwaHrrhQm>mV`ip$g>}rQ)U8>gRhXc#u-m9}M!e^q4Ht>U8}@}aQg&hE zr$d<>9VLa4h&G3|B1uAJDAp5~_W-g&E|scUKkDM(F%Y=n<(63-Un601`bc{IKnPppsG}yUB8Dc7h(OdD|DNfY z0xyYYXu8e79J4KtcFE~pW z-f?SKW&UgEZPol`059(&Pe1_xfvv}CY*-4RqdQd`1I!6c#yLzRuUK4#+yTJBhW9uU zYtHTkrkKxqNJ_R0okXPcvpu7EZM?5Elwo#$uI-^f^_cSXlwT4mfXN zUF1`gwtoyaEAQ`%dZ{#w1YlDKCR-)-x0(t(??*!?{EVs2hCJ`Aee^T;4hN&588mf-LQ-Zw|~}5_4K4L_bTb z++T$=Q+%~XWomhhVD zI}my8s}sou+)Wi4jy(dfPU4+h9Nw_(ijaLB_AUdZuKrAMXM2G~IX##U?k7&`>H2Z& zj1_==%e{th&fE-xdYPL3v)?de7>noyfFJ5vh1QVD4kQ;2{WPbEtv@?1h9 zcCh2}A^S@{xMUo?I?4Ej+afSjjx&pg(9x0n#_@I0+vPX|cY81P*dOPYKUQj)XiTVY^?vM8oB@_AF`~^mHPY8O97q&fqkCqGKG2GIKGTrxS zZfJo<&;}B<5d;tj-qQEmH+sbc9l|djk5^b2&AdwdhOpY;OdRm>E*L7YOEy$LIbL9e zo9Q3Q!#FwoDW2(=jen!3O*J$574#WKLMvTXyR7S)f&Cf&=;e2DDUB#N7qY6=gxeR} zG4k#dymXIb!vdQT&Yy>@8!Px<1`5QW$kKv+b)P-;8Bk*O!}>uVgBa8-vds7U*IuUA z-ZCieWEF!exs6-7Sv3LUhmeuKvxI^tnv-ch?fV@cDGWXD!JxA;H4{)S`9l9k@J7Ps zR%tk~P(YkfG!II`6lw~yLl6NN{Q2jlv^&?!uvuP#*Mh6}LL8bqin<~gMa$ZWQg3A6 zp104ZdRD#mXOkKehmAL{YThm0arJ$0t@4yL@g~1sJZE~FVIrgj(v8XKfA$Xik9hhw z?D~$ny-2~lm4a_OSttYC;+slrluz%)q5?ypFwF((;I9jwG;UX_)lOp!O*(cBFZmf{ z5uefRTi6eCIWI}gba2XG-_a*7O4i>p?I?0j*2oKOlz{hDzzG)RrL{A}@cm9uPw^(% zv*P5r*TIDwb#!U3|FXPwe^F*e-q9>bKuLv|wd?(F+PQuwO)=KJBgFBJRq%!tZQyW# z$>+-7Qe0a3(UFU1)n7yfHQABaXOCV#byZy;b_b-XQTq!~hj<tZv_Fiip-Pcx5>0N80_XGx09Q$CuMsLfMt+DPRj!yGUQSDWzWRW8M z$$c>a&i5#eVP{AaeT$ljGkqzrnN=T4hE>Z$p&ZNK+!A{#ad=5hNLMy+%FoFD zjxw@Nl7xvqC&9IgC1TP)$vwW2qDcaNx=8{UpTA~pamgUZK>z5>#aE9*1a3PfMODyS zq#;+pwz&7><^q;cW_a&$bb<7i2qNE<(VaphS+!Tt(?}sjlkG$(zJDXP=$a;g@)yX} znUe1)suuo(8t1s`#H|Gf5Qz=sC&4tTIRhL^&JR{rWS-T_6Q__|dE)%(DTXqWFBcj- zhgw>!X>CCv&4I;DtNFo9{+(|IA-A^QeHVjNV|pH|2tV8q;p$s>_ujv;*mO=Z5qZdT z1%SmS#x$BKfR8Pd>_^$am~am&g$>++I8-TKMK|}K4!Zu6Bz*b85W(xXIniAqAIQk4 zOQZTAZZdf%mxll@LEZ>IcqETd8w@$sA6ggZBKP9WwaxW@cbK7q+}{;9IN67!CG>+~>BmhBNe3+2rA-0X}WjvZQ@m+Cz)5`0B>PkYNq zVaeBgv_ig2NRL-7U}3uCYQ0&%A|5-t8@ytNg{Bs{ntwpU2d9K#{9+qw3IfBUkp@Sb zTG9-o!8wbI9~o2tC?$Mx|JdQ$kOLM)SpC)wRYi>^6+k_Pp0f34FwtI(JE>5QU|C#;f&J&m$0GbmY$C& zf$Z0ljE;i+*dhdZlUssZC@>(>BH_uDx5N^9jetU58V|HiKgGKchUH&rwvg=9Vm#&bh#UXn0>0C%M7+polv{ zWoN{6c1o&kp?}Du-2=QrZEL%k2!>)vfrh$7)C&G8W@fC;Is^4gS>d>#32PCU#4;Fic{VyvXlpgM!}`(X!) zFA_0&L2KZe{qhjG#IIhd9uv-_`LtfCxi~nCgq{2p!k)cU=XVlk)5)NN>kpjWIxFsZ z$S0powzaFY@2e+ekE8-6Bt!fwR@i7sFKXpt%f;wxaK*XmO5e64PE7H8cIe{z8XrRl zh76qQjK({r?J=C49vWvo?Y!+ghE_IGZM{Eij^c=KrrRAoj=V3rl8SY$YKG{>l>yr! z`;`5Bl`BL7wJn{(5(xQ#jwf4id@B{ZkJ&w+j-Gw&Kla!<XF5B(kosk{U`z#dOzj}A6)W)+#CG&a{|rxXbDHYpuDdw<@FRY!h-=HyvUv!TQn4o zATDNG(?Bm@i%>Yhaeqg&>9bWP4f+*)ZEJOe*t8d)EhhZV7s5P8Jw9wJqc1O*__*8? zc4Jd03q{_~6*xD`6WN((WqmHNLQnrcP^bUvh<*Gf-d&7t=hlZ`iPuy0@my8J^l{Ck z5aYE=UN!n6^d-{VfeSCfMoRqN?ekunV(S^R%54CWYS{fIeS@Hp@cl=9;B1isv3%!# zorZM3K)CFCG-zyGDhaz_eHb|Wt+rQbNQvU@$YJ@_S^vTL=ngdgce-Z3z>Hhf22YAh z;MjsCh>msoD}OHbtCxfvo`CZEQ{?1hq$k5LZQFb2#Y^Y^I3vr9vz5-yItZqfAx=zH zTUH=NTNOTUU(qP%8lClaYF6|)#}{D94N-DGkHRTB9UE3{T6K_ldL(UmHd#Z6jMk!e zHS3nqyN-X%y})kYgmzUw6-{nxZ_gllXdYTCbN?FUnC*nhK{u`x;`s|r`TT5)h}V0S zxRYb;-P^tD=OIltm-Dfz*V2Xe(!yGU$!?V=`CzK;iKD=QViz10z(ebOFeIk? zV*t}*K%dmYo0sqNzBB$+EDep-*_7~1k1FoCGUH#G^D(@*{lFuKFD;{WN%&?`Ew+tR zf-?!uIK0*`5*i=QXy^&;qkPUw zPF33|v!-K?W)Dl^xmPrs`w(!@(lkx40;ZK0Zz}VKZ#hH9HsTSvywKcB%5?rr1Ks zxM`m3k1u(isde2|*j=QyU-+aHxG(_YC%Lfz%MrDI4Oj15Ts87pL@AIZwXn*Otz|Tpp+-=;h-; zIOc%k5gfWNbkfD+tfk3!k`#dLq~ zp{9ReiKS%nDzPrr@D6Uq9}){=#D?ZLj%bi5I0#jX>dGUL{?t{=SA5AS55l#{yZBuc zbN_Rdu(98E*Iie!9T~_!<}pq^%$p3pcro*fxJC=ziKirQJHg0alC5ufOB*t>Q9mGT z7p8kRas;egLVBF`ZAHvgr?SXO1JE7LhZ%V*(D>yTzaFyzR}earI07op0;MaT;7l?e z?PpiBP%ux9d#Is#SAH<<^+OH;%U_;x$iwW?!cN$(?@FQY z-nszNLZ#-ONzfs>pCUCgEOiLfj6!y;eCs*hDNXT_}B8N zrCjmKtHg9nQVxf483hnuzTgA|u|mb=iVFsklNbN9_7nOQpRkK2<=&r6mrX1A!|}9* zr?CRP%S8c%u!@38W4zA}!hjFajb(2o-8zh5ac(m=@~}YhLaWsz-#=X zuWUsZ%gP*gRR`QZE6u{kLogdzTB56KM0#_IX=A=R@cT-_#baKXplzp0(`S~8HVH6} z6mEC^Q_;W=HL4L9gv_w>ulf4NoSa!yIa>e=)$ITrR0mUjI|8|Z`0%9?DN9iKmEZW@$*9fijls8Ae*lODL(p`5Ywo~;y7 z2J~L~Go!X}Y$>`97R!y^5qGhPBhTw_as)Y5N;`LE{p9H%i7cE}q69~4o zTB{^T4Wp#C1Lnvy2i?ei{C!E@rQUH5LG8J{5N&udb(wb<#CU5XiMti02;;k6v+6uD z2EWUsyw5w9aExW9+?8xs>X6!wvq43^7ljENm(+gu@AD|#DgLHzBFpGM%2mn`Mas?p zE4u{7sV+Se!_pkxiGr%7NUc}Nd*Y=WNZ?Cr8qVzMEBx~meVlH*2o;*UU zzDEatVbtEdN@NNCgKWd2QN4JbS;4l2@=B&5+aqNw~{Xwwrnnt?JqXUob6g zeP33H6+K~99@DHUEwumE=;|-)vqWpKzL{1ym1(chmH5n{XnbT|cu{*_cy1uZk7?bZ za_HBJ^NLKYox3yz+OX{BRFx__cuNtlZ`^{U@((%mkbJrkF*@6NnfOkDt1yLAXDRJ$ z-}fiay|arEyZ3#&bGzxj@8_VuX{P-_!>b`fIdFoWo%PsHT{x>C*zwgT&qwf37*)%W zp~}v{&U0mDW;W}-UaeGV+x%06>*(J#E?oQ!;XO_AZT7aQ8brMrY3h1AYh+k|o^P^E z_swT%Sn4U9fB8kx5=c6_)Ya)sb0qn=|0nX`!%+7s*s5@UfTs3(5g{WT^^~ELAFB-e zX_I=OZ-92OQPMax3^9Xvv61$hyWu)Uz$JO3B0)ZmG_$SYZvQ}-{})HIET#eurhdG% zH?eF2*sX%YBR}8e!O`b|@o>}cvJ zK{`CBupw^YO+bczQQU+cyduGh;H)B=1oNNnDn}v~v&9;e#|<7BUQEHl7I0ZrQjbd* z$jI11u=)p;N<`j!V2=N)e-u^=mHQ8TIswO3D8}FcZkf~_MZ7Cg54?DVOcyG!P<`*a z`MDUf5foLxZsIj?X6iMsnB>;Vyll)9CJh@hs35mOV`<_&aaGV!{PKmczr~@OIl*_i+rO`|U}} z%e*m;s*JUyZNewR2v@1!VtjKl)}ruXJU7~3d9ZyKWvL-r$r%~!md?dMG)aZx`(jr( z5vHUHoe)D=&6F>4Zln>;1;}isADBN2k0?e-XveoK%`yi^CzToKT>^>z_xAi~PBUHR zB=tbb2!G}$9^ybT!hNx(T`T$Dny%wmK%r|4>-<%{pCv3oQN68oY=a>t>F!r{682k^ z9~AG+U^V-X2{1~inz9L=r526h&*<+;68=&q@$y8n9;C!hYS<(nUkmuZMdQPZ5lV8? z8CtNy)5kMXNR6{4i8P9;sw9bT3)zXP5o`VcX-@Qnnu3tuHKBbag+}~I$`ta$p@hOM zqRQP6rG)6&Fy<1J! zHIX(_m*29cF-?%A?noqXAILjdzl;Q*BmOI-_#(9#79vi^9Bw{zABow)*M7e>_WjU6 z^#1((9FJgrwxiatQ zZ91?^LJJYnP*)sdjqBgQuAJ8{f04{e4ddb*Du@EStv7BMhHRvG6+NGyd_O4QQY*cq zU_Hnb0roJ8;K%+N--XvoQN`*=kdzA{;*_D&{lO(&qDc4o(O#C=72!u4@uLjCmLA`V zJl~}FOQY`C#T)KhtwV;*o)g0T))hWBw5gtkVD63CZRB~n>1VPrd5O=b6UFqx5y^Nk z*)R2#c!?b2!mtl>X~%l-9SVFaU4?vu9ymFl)jXHbeMO%|WQGkq;^sC%H2x0{fisrd z0KMLHGKkw1j9vKYBRld(_1YwzT>4me`CMbF@fKw`NVg6!*w$oRXn$zKbL+i^_&$ax zrfV>|K@wW;P$r+v_!sXa-YM)3WSz~NueGh15Z||dnxAY|+GjJ*=QutLSk%npe$J** z_;kGARiP66=8By3eZM&pWAae4s-b}2QptXvD}8mrH5~n1(iXB#^07umM;BVTE0sdk zqIw^SmW6-pQVU8!JZpnr#mAj{ZoE*92$^Nri^u!rh7a%mP2VApJ_6m6s(C!LZDe+W znA_!+O_|%Xr6RDgTZrE`K%TjZ(k-2ho2-YgG5TtGpJ9zFKrJEAJEu30B6;oZlJv^;Sjy=?}ccL zf{HPU>EgBbhv!e=r_;Qq*?^2aQ_F7rCGkQ7dk5$rk^OuX+I6UpI_amYEskBsC0t~O z9qdQi7j8qmy%%>3XBGrp`@fC4lTjpI^xuxvXSFw;=Nl;~{%P1crmvj-D-ViokR*7% zTr$hfv;_e~VHii)-#$0sBo^*+f^@TSmkqUNeQ#$1+7XW~-=u{@SURh`_ULWOe0Rx- z!xl+m|1GY+mE^Ol}ZCzki} zXhwm25iS>Vcb)cer2k#3Q}Yu6R4VUfS9>t`0i8Hn-~XZwt4=R{WHlH37XZ?DH@ zvew#^VZ(89qC^YCgEOFot{v}MNE(Z)Rbauu58h57^%*MuC?Fl9n-8tiYxE3w_Pu*2@Qzx?D|pjTjX)&S$O)$5RPracW% zUTYdqZgP6yu~?=|V1l-|_IzTVwVWRhrDd~KmF?lMlW}Z(Z1MZ5ra9{*eivnx&2-Bf zFe4(D9v@#v;RW9}%!|6Z0@gUEP=nxy<>L9UOd6e#jfjQT2#Zs5ChNeYgg4!&g`U%{ z;$2$7ULKfzdX{y|k=1ZB)1bm8En8bxvnmYOqV$(Xm@E zabZO0;L!d!Q3MwMbXsmSQ@ElmZI!!iLmB-|>?x)Pb)(E(u;Dx)NKt- z3#m&e;7J6V`9#-#ag4Pm>HE{Xdj)mO`w!O(y1L641bz>Bj>p1{p@5=-`4MteD-lJz zysEFWt7Z{_2bE@#_{Y?}d8xlMz8ejJHL(b@v`wLH3H1g5PXZ;B1FxKJA3Dj`IQ4)Z zE4fd(gHxvAs*?iitQw3H0);QdtTuuS!0;gLILpeEUHh^aZT~gLDUU_%>(>REUtQAz zCttU!WY58+2qFdn`_tW%c;#2h{pwy(jjutLQ5%oGK>V@UkN8d#T!Izm7FRN*BVv9L3>V)bG05lByTt(+rEr|m7YXV34)@9yQTe{}Bntpewa=~msbPp>N zyFBO+JLD{@3dZskSMl<~XZ+VzAPS4?tbTTeHT!A&wg=Vc=fB(c*U1k)zkbSLM>YSq z@yE|mHi>LK)@NC1QBMx11Vti!tCGzI&5CCu^k28TkIKgdXNGomHszKn!0%ww8m*UR z8l~IE>&}w;Qb5Tgf9-r6S76lRIhV1_N7|SE+9p#h!ab+RI*-y80pY>lKk3+7(nXiq zjuYHw-1-FnK$wTaZsB%N+_L7xgHWz8{U75hh`(RFfdPM|{a$K@h|=}muTzRh^%&{k zbJ>qJDuM{c;Cvnmiie1Oy{wYlo(>2>MfMhiq~rV_0=oh#BZ9HjTrKl$WXcEqPkpu} zV?cpiyq3$^aziORJQaHID21Z_^|UC_b*zb>kNe-2Djk&(-m{rcCo~nNtL(Du9hqQ^ z_o-2!ED88X%Y_1Zks}C8M;_jIzE<0L^K~rIy*;UGzn@wQ zzy_ufL^@?c%ht}Tyd8{hOmACmA>S$~M zUo#$s?d=LRe-`Yt=j#PTFRDrTT%p^ImVD>rXU%juUrzmX5JEnfLXmO3!U3VJkZzch zr`yUqg<%vaJ;q9(_Omj&OHOOThM~@yX}mV~T$)ARpr&J9nRB$f_=}4!$VYEc7o`C? zw&Yspv$Roqy!SZTYT}RSJXZe5IOb@W?O)AS_0^7dFQh%malI_l%OOu=vzTnxT$r=P z?+yYCS(0x(RzKE8gdvE<_7Lp%7aWM)F?T2mevJ)iS#3qS;e&Q0Fm#sDo$D0==o1)o z+?=1W@L;U4Xal1Zfw53Yf3`?fQ3jLYxo4rc{^`o|?e#bJWc}=gKRULml3$Bet6cLy z7LHK*mcp1s4CgmR0rrf5@V!QOky#on5sixv6<%DZ%S(({`2?&4k;JpdDbX*FETjan zy16_H#qS`VX*IjF+6j`%g+-uRCM{J5EMH;C`DC!U2Q{x89FBmbJ;xdzK!*b~NkfGG za%y@x^UgN%+p>nJvEbSNj>@1uWCmcQbeAKdhb?3aejd<8Ni56!j$aOzlFojCVr{9qH3 zB}%`;9U5jKYq)BThpZ>)-32UMNb?KZsat-UDyNyMPV`+k>u<1Ae<;bF1igd&elkAPlLC6z02uk9_F$t9-gaSBQwVOSPFevNOwj(D_-_*s!bt%Z!W^g8zORt zRDljO10P)NNs}@bfro*RhrYul2C(hUIU&zK7$4&Yp|h`IgC=2D!M9`jdPzR^SL_y? zK>bkJ(^3R&uJ3=Qjl|*8>SyZDFYz zH=|L^POWu+Gs%jED7t73m9SYiv5o{!xB|cxCxJPfX)waqp*(yz7syN91HI!k-RapD zIyTKSggn$uAgB9SKsA*e#eDT`$UT$GIDJ_yz3epKdo56aP0I%%;NLD(ZA2-guyU!0 zR($)C;5Xn#@VMbB=OO|67pwY`zk#^X4E!ATxC#tKcHA&9lfI`W`-bhDWHRzv#d$f~ zJkwqISXHUzT~IYefzHmli2JMsU(9rc=It76h?{z;?5b+UT!6Mf<*ZTB{cjV7Xq*B|F z4>5Y%?eF;rNMjO&^XX6hAzmw-`^^VxCgI%7s0UqE2ezktlO3i!%l{_m#&8hjhAv_0 zi4S$LcizZ4p+15;_MSu3gDMDi(C?$|tkr{y7iM(}NT{yT7`{bUbDD{9zlAwGCL$>R z;wd$xrxRN$#^?lGrST;M(S#|y_bfQOSkL7XT>Wxs4OK$pXh5-XN6j>=e2#i)Sd#6h zuCjnVD``#HVH-?&-||sD8+tL6UxN5Ak3<=C)=kC%)X#QIS*Aw~7C&jcka*Q*ixi^Q zP1uVhh6&(y-_t>MmwG2f@P+Tk%h4yTRqsjS8Tc>B#iF28qV44DdYn>_AC7yPy z5vL2Ur-C<#@qOLVt_$2G2^(1am!@;lCp>In<63dk5bF6n@P1nLd2Vf!ZcFJ~OfnZ; z{n=~eFMw{lte*euMtu*iB;T^Kp{^lLC4TINRW9MnBi3>J%RbU_PJh(&xx$CosH<`a zc}c73VmI}E8q=4Lm-*xqRvk}xTb`PyQ1muXt$Z(#o-wr2L35;xyZBk0MrgZXohcz; zXXg*`G|1j#6)-0ouqV5#8&dH_5VjMgJa@6ljn;kh!S6rjo(LUL5v%f7Y z1_SZ1E*Qvn0lUtm>$t-7HripTdGVtV;zcuZ!0II-c}z)1_VoI7babLl4t=G4Ra7Rm z8_UC6%tv$G>R!{ws*Xi0b-$&h(Rb~iDeZv?K7C~cU*p`hyCYI#TgLZWZ1=zS$yH56 z^@%Z8zg@lWv{ptAIK!cV1w`y4a^xlXu$R?f+hA7`e)cMu0<@-02Je{0!482kir>Uy zH@P~0xB+SnSv~$T=w_{`gKRGd^baw6WRQS5;W0l@O1DXr^T|AP*^~e@rKbQ4`5i}7 zms~5m^_4IjFQVT+wLt)sPDQRM$t8}12(*JpupRhD8`XV&>M{X|<(!_IBF?5by@5t- z69Rb$SOl^cx;zY+tvYxyA^aCi67_5>E3P&cI}ZC3-_& ze7-_Igs#`1H6Yy;y6xEo?9A#mj_(_?zqm*sm@zy!x^FiXHn=>1%?6Gv8w!UBr=5dY zO1~~PVSa#p7jxV6n;%3V6ybtI4*&3-Y9Eov{n2msEh?}lkrl29`9Xoc8gQSWcM8tt zedPJ}vO2-}ve67)u)LUyB}k)u5<&*$!f3))HRT^Iro|U{miV&}2KQn~n$07UX~H2v zrO#NStN~+pw9A>>t;Yb}NLLKCaGz&T>U!eB{n|2DC=^dNf2tiXG&y_sc_nlwS#`T% z7si*xDjUjqNn?k#o|6Q6e{pnFAI$Hxqwx6`Lc-Lqv$T&rAt^X*jjEbb(3BxlBRsAT zGH!8~N{<1Mm)RrUfL%hE?dU_}c8Ke@VyEq9+2|s(VonBOj+&elivPpeIlaf>eqBFC zV{4*j(%7~dyRq4%vD08;+h}9kw%sI+ZQIr}{ax?-4}7otWX|Sn_UyIR{;XkDrAq0W z(+=BtY*rQ0_o3c`oT;2yNXbGLNG;@z$c(^G5oe!FAB3kvozOL_x}=6J$e^*&KJD_H zpk4!mj{2W1ps!_r{uJo<4Hwve#t={XMKDO`H+sI5S6|^c3>algVB0wwt-!K?5|49` z!YCcM-86_+k+f$BUeXXl=cF}d_%k_0vJ1UjF7{35>scPrcGzw<7?8clj~ajDr?<%Ce%DuZvD^!6k+HSZC8ZnV}-xI>kRo zf*8I$*z#m=L4O%T>9kmo(qSqzNcZ8Z)c5lR+~$!hp!%DDOxmud~B?-Fj^XCc{j-hI!`rw&8?nm^ALr8{8fZBm~^kBtEF5>!`5 z?g+sH@6@Lkq%ykh4@r%*BPHv2_4zkR)mWYpkW#ntr)&Ya@;H0U7e*7~EoJy@Xd{!0 z+uDadm2rW1V^7)ZF~r2^DHQHq>;!ykANn^%DIJo(LFjkyHlBmzBYxKJ+k|r_<2FNu z!}DDcF1F7E?#jHQgc^$}c=OR zyZ(Up*=NhrQd7(B2nSRg8KHSDf~V8>&dVUC)y+VF$VNp!>dmuIIe?>4 zUXD3LTV1bX!W2&P=<{*$Q32J|WM!___cDw=>2$wj4!>mnoy8`fa7z0t$;%s9djAc? z4O{tz8v^4kOlt2_?C3y!q<7(=5wBZU5oMUP#t!^d~JZ^Iy$hbVruTrtW6)j z)@+^cpS$jSTvDWOw-VCUZ3A|r)lB9-CU{TEm1_Pqh9m%gms&e{NyFy3j=WR{@;nqi z^il9k_U)ye?Z@5BSNjS#N%=*ulqnf5H#2(MJoO3a0a}>y8iSiHFXXqEL1E3BBl`9U zpUJ!!Ycdz~R=)X7dj7_jx`-Jh&cf1G@ymv(TiDmOTAFv#p);TJI1`>oS?PwOM5H>d z;%<_=m0Z_1u}Riqynu88on%x#X{d2glqDsm7Mi zN%^@Q$BExZd6Vs;DLXZ0CquX@VWVk96>7AA=n%EA-NX=Hn}hzfuos`!ak*`-jjCZh zkbt<4`cOZ27~Wy z$Op7t%y;)_`Dt0++N}deO`)Bt=?>1&{E0*`2g=Tn$Ed&jpHG6PlWVZ1A!In#H1y&a z57^M~+ae4Xpu@z)qY6}!d^@AKlTDPh7bE3zy7Fz|+dHft&e=JTSbVLbtE$ktYj*ne z+DRc)Y-NxCJ`?^FU%cp^Ztm2)bWwXx+LJZVqw6Gef-?hhw)lAYs~;pu=l zx3XYsBn%eD`XpFiVnbJ~po*UY;m|@Aqycd~pQRb0FpNL##{bY7pq;B9v*|3wGokL= z+Wm3KG2cqWDhshoez+M}%=dL*cB!w4*k0gRX(9iDF0 zd{Jx)8@I5u@wC_Metga>4KUN0U(I`rUK)r1(m=_D7L#FAZYY{UDQkpO_N|GsA(6dN zp@u)}9Xe9n^cLYv;Fr`2RlhGH*l*eAZxBNtWL7Jp6;~MVq{sC{hYD^y@rQwX3SmfV zJX?gmvZ5V4Bbh;)-x*V(Kfaw?VBNPorFu|HdMn7F?3LE3nS_$!KSi?ji3a8;>p}Ng~XL$yoFk^C?gXO{nMA>dR4TMR?fnTc zDEJ&uJlyOrEQZ8}UI!F<66OyvAW(dPCyZ}ZBw}sDU%tE$cTLZqBP|G%DxFEPrY``oIWV1eeuv904|8%OPk$*|EIy(j z!At|DyK1U$?C1Gt({Hyl?s15ayW?2;pqIVd09$cp^82H8k6+%GVeP)|i8+<-?GZ^u4I6{4_3n}_6Q zMWqJ(l6l}(PYM^Q)VI4FJ?#jx>B`g2YoG$L)b!v#^YgxJl)yZ_=1W|G_2%^$6BAlW z7i_5zc=j0x+6gpY_9E%jO@FtFMODXHl^m=9qpBJ;^qSN?KVA=n6yv{lg3pi}E1a5H zVXrUf!XhjrWgfx#uGIN&soG^7WmTOXzha%h%U;#xK{8cWuFd+FYFJJRvACW4(y7aWi6kxl-pUU#8J!@gS z72d)*WxX$c-7Yuau(<>|5!U9E1$R%px(c<}@6PNeySez>4Pc!0nC^ef>~=)+)xk^9 zf)o;9j5^U@%8&XN8`{qmLpWZ>)648?ogXY{X!9hsz)uqWj0%U~60 zY(nnzpJ3C;JUi{_3fLq!q=#`qHN=(mh)o75)gQo!4SH?+$S! z*{AiEftxt9h)d7hL|2MgI>sDS86+U`xMwcwQLqFat`Q)!U z3|^(|5A;AQrHH7xReJyaw;)pp=6bRpb_!6nTsOF(3_8(B-wC97iP4#13gMOXroY~R zP`8JMTc?zqk4T9XDC$n8yB}?R*VM2@A-dT#A8rVNfT41nRlTO z*;anqntw(IDIsaWZc z`mx;8RkeSfB~|rEH7JHf_x8xFVP-N~Ep;o-B*TE8^(qEPX_mBg3b3IIL-@>?7x{ut z$wj1dqshD$JmYw2*@}0uEb;4SWxWzOPq$hZaLH8YMUpk+HG8?++FoifoV4&GiE!ED z+4aPapf+19MJP_V@?rNsYx)H9&vCXY*_8ZsMa#!|uk*CTAcJO@;8p(8y^Ai&Yy`Qh zt{mucmocfq+xj6HHtw}76Ai_m@c$@18_5jn^PCxUz7 zA)m#xj|htMb6m=M7^PTZo!}(lYorBGqR|RS5D@N4^J%1zka1InykqrnfuzE?eU+v3 zM&7el;c02X*M<8(pv@J>2mLLHPpJ@Coyw&%c;uu-H@6HE-+Gz-<(N@wOpO<~ExGGN z>K(IMs7v8m?lDl7A98_TVa z;{b|{mtvO`Vq=?QN3kfFxTCSgrKNq86#?~7;VYu+Rd;NN|1rrRt2LV5{_POk>Ce6A zVQl9g@CBL6k-u?AQ+1+5R?t*b7d8GXy2>yasQ>P~m%$_&Ge3C|d8>DKMh)0?C;p}m z6+s%t(1DI7DJeOP?=yS7r34l3ASEiUfmbRivPxszXo|U!xy4lPNk&*2UkCp=uTjUe z^BimFG@!H*trvgeIl-H*g-x|LRXR3fSS3huAXOhhE1-B)Q)qt_pu0f(USc3iSWyG_ z?CV$C5qvYb5_bfK}Rs4kcn5^$ z(^!TG`x^>%jA&O_xV464$Ez)%<3PBF-@$hFLygJ(dU>uc=>uA2zdnjVL9q8(XRWmt z`S~9^_3K9%+XYd=lDyuPiVqlS_i8C8cbe-dhhzF=12l|=_-F09G95Ien4P)!#*Xsd4X}v*OY(P zt}lcWD6TdPz4PFc)QH^!;rPIG)|M*R`?jL{r2YlaCNyd2q~5t>%0DV4``XjQ&vlKY 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 z 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 z�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

    s7>mHAlt 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 N1fH&bF6*2UngFg>Z{Pp` diff --git a/tools/live_bench/data_generator/live_bench.py b/tools/live_bench/data_generator/live_bench.py deleted file mode 100644 index 4cd9da42..00000000 --- a/tools/live_bench/data_generator/live_bench.py +++ /dev/null @@ -1,102 +0,0 @@ -import os -from typing import List -from tqdm import tqdm -from lmms_eval.live_bench.data_generator.live_bench_data import LiveBenchData -from datasets import Dataset, load_dataset -from lmms_eval.live_bench.websites import Website -from lmms_eval.live_bench.driver import load_driver -from lmms_eval.live_bench.data_generator import get_generator, get_random_generator -from lmms_eval.live_bench.screen_shoter import get_shoter -from lmms_eval.live_bench.data_generator.qa_generator import QAGenerator, QAData -from lmms_eval.live_bench.screen_shoter import ScreenImage, ScreenShoter -from lmms_eval.live_bench.data_generator.score_getter import get_score_getter, get_random_score_getter -import datasets - -from typing import List -import logging - -logger = logging.getLogger("lmms-eval") - - -def get_qa_data(images: ScreenImage, qa_generator: QAGenerator, test=False) -> List[QAData]: - response = qa_generator.generate(images, test=test) - qa_data = qa_generator.format_response(response) - return qa_data - - -def get_live_bench_data(driver, website: Website, screen_shoter: ScreenShoter, qa_generator: QAGenerator, checker: QAGenerator, test=False, scorer=None) -> List[LiveBenchData]: - images = screen_shoter.capture(driver, website) - qa_data = get_qa_data(images, qa_generator, test=test) - data = [] - for qa in qa_data: - data.append(LiveBenchData(screen=images, question=qa.question, answer=qa.answer, subtask=qa.subtask, data_generator=qa_generator.get_name(), checker=checker, scorer=scorer)) - return data - - -class LiveBench(object): - def __init__(self, path: str = "lmms-lab/LiveBench", *, name="default", split="test", cache_dir=None, remote_path=None, trust_remote_code=True, force_clear=False, **kwargs): - self.path = path - self.name = name - self.split = split - self.cache_dir = cache_dir - self.dataset_kwargs = kwargs - if remote_path is None: - self.remote_path = path - if force_clear: - self.clear() - else: - try: - self.hf_data = load_dataset(self.path, name=name, split=split, cache_dir=cache_dir, trust_remote_code=trust_remote_code, **kwargs) - except Exception as e: - logger.error(f"Error loading dataset: {e}") - self.clear() - - def clear(self): - self.hf_data = Dataset.from_dict( - {"id": [], "images": [], "website": [], "question": [], "answer": [], "subtask": [], "data_generator": [], "checker": [], "date_time": [], "screen_shoter": [], "screen_size": [], "score": [], "reason": [], "scorer_name": []}, - features=LiveBenchData.features, - ) - - def add(self, data: LiveBenchData, id: int = None): - if id is None: - id = len(self.hf_data) - organized_data = data.to_hf_dict() - organized_data["id"] = id - self.hf_data = self.hf_data.add_item(organized_data) - - def capture(self, websites: List[Website] = None, *, screen_shoter="single_screen", qa_generator=None, checker=None, driver=None, scorer=None, test=False, driver_kwargs={}, shoter_kwargs={}, generator_kwargs={}): - can_quit_driver = False - if driver is None and screen_shoter != "human": - driver = load_driver(**driver_kwargs) - can_quit_driver = True - screen_shoter = get_shoter(screen_shoter, **shoter_kwargs) - if qa_generator is not None: - qa_generator = get_generator(qa_generator, **generator_kwargs) - else: - qa_generator = get_random_generator(**generator_kwargs) - if checker is None: - checker = get_random_generator(**generator_kwargs) - else: - checker = get_generator(checker, **generator_kwargs) - if scorer is not None and isinstance(scorer, str): - scorer = get_score_getter(scorer) - elif scorer is None: - scorer = get_random_score_getter() - for website in tqdm(websites, desc="Capturing websites"): - try: - data = get_live_bench_data(driver, website, screen_shoter, qa_generator, checker, test=test, scorer=scorer) - for d in data: - self.add(d) - except Exception as e: - logger.error(f"Error capturing website: {e}") - logger.error(f"Website: {website.get_info()}") - continue - if can_quit_driver: - driver.quit() - - def upload(self, **kwargs): - self.hf_data.push_to_hub(self.remote_path, config_name=self.name, split=self.split, **kwargs) - - def save(self, path: str): - self.hf_data.save_to_disk(path) - logger.info(f"Data saved to {os.path.abspath(path)}") diff --git a/tools/live_bench/data_generator/live_bench_data.py b/tools/live_bench/data_generator/live_bench_data.py deleted file mode 100644 index f2e378c0..00000000 --- a/tools/live_bench/data_generator/live_bench_data.py +++ /dev/null @@ -1,94 +0,0 @@ -from lmms_eval.live_bench.screen_shoter.screen import ScreenImage -import datasets - - -class LiveBenchData(object): - features = datasets.Features( - { - "id": datasets.Value("int32"), - "images": datasets.Sequence(datasets.Image()), - "website": datasets.Value("string"), - "question": datasets.Value("string"), - "answer": datasets.Value("string"), - "subtask": datasets.Value("string"), - "data_generator": datasets.Value("string"), - "checker": datasets.Value("string"), - "date_time": datasets.Value("string"), - "screen_shoter": datasets.Value("string"), - "screen_size": datasets.Value("string"), - "score": datasets.Value("int32"), - "reason": datasets.Value("string"), - "scorer_name": datasets.Value("string"), - } - ) - - def __init__(self, *, screen: ScreenImage, question: str, answer: str, subtask: str, data_generator: str, score: int = None, reason: str = None, checker=None, scorer_name=None, scorer=None): - self.screen = screen - self.question = question - self.answer = answer - self.subtask = subtask - self.data_generator = data_generator - self.checker = None - if checker is not None: - response = checker.check(screen, question, answer, subtask) - if response.success: - formatted_response = checker.format_checked_response(response) - if formatted_response.question and formatted_response.answer: - self.question = formatted_response.question - self.answer = formatted_response.answer - if formatted_response.subtask: - self.subtask = formatted_response.subtask - else: - self.subtask = subtask - self.checker = checker.get_name() - if score is not None: - self.score = score - self.reason = reason - self.scorer_name = scorer_name - else: - score = scorer.get_score(question, answer, screen.images) - self.score = score.score - self.reason = score.reason - self.scorer_name = scorer.get_name() - - def to_dict(self): - images = self.screen.images - website = self.screen.website.get_info() - question = self.question - answer = self.answer - subtask = self.subtask - data_generator = self.data_generator - date_time = self.screen.capture_datetime - screen_shoter = self.screen.shoter - screen_size = self.screen.screen_size - return { - "images": images, - "website": website, - "question": question, - "answer": answer, - "subtask": subtask, - "data_generator": data_generator, - "checker": self.checker, - "date_time": date_time, - "screen_shoter": screen_shoter, - "screen_size": screen_size, - "score": self.score, - "reason": self.reason, - "scorer_name": self.scorer_name, - } - - def to_hf_dict(self): - return self.features.encode_example(self.to_dict()) - - def to_output_dict(self): - return { - "screen": self.screen.to_output_dict(), - "question": self.question, - "answer": self.answer, - "subtask": self.subtask, - "data_generator": self.data_generator, - "checker": self.checker, - "score": self.score, - "reason": self.reason, - "scorer_name": self.scorer_name, - } diff --git a/tools/live_bench/data_generator/prompt.md b/tools/live_bench/data_generator/prompt.md deleted file mode 100644 index 0b6c5c3f..00000000 --- a/tools/live_bench/data_generator/prompt.md +++ /dev/null @@ -1,13 +0,0 @@ -I would like you to act as a quizmaster who designs questions based on a provided image that would challenge adults to think critically. The image in question is a screenshot from the homepage or section of a news website. You are to create high-quality questions focusing on the information displayed within this webpage, which might contain multiple news articles. Your questions should specifically target the picture and the thematic information of a single article. Your question should be answerable, and checkable. Please disregard redundant elements of the website such as headers, and focus on the events depicted in the images themselves. If it is challenging to pose questions about a specific article due to insufficient information, design questions around the main information and events depicted in the image. - -A well-crafted question about an event should allow respondents to gain deeper insights by observing and analyzing the event, paying attention to the following aspects: - -- Basic Understanding -- Contextual Analysis -- Deeper Implications -- Broader Implications -- Further Insights - -Consider designing a multi-round Q&A process, progressively deepening the understanding of the event’s essence. Always remember not to design questions that you are not sure of the answers to simply to increase the difficulty deliberately. - -Here are few examples about the task and the expected output format. diff --git a/tools/live_bench/data_generator/qa_generator.py b/tools/live_bench/data_generator/qa_generator.py deleted file mode 100644 index 107172f6..00000000 --- a/tools/live_bench/data_generator/qa_generator.py +++ /dev/null @@ -1,337 +0,0 @@ -import io -import re -import os -import openai -import base64 -import json -import random -import logging -import pathlib -import textwrap -import google.generativeai as genai -from time import sleep -from PIL import Image -from typing import List -from abc import ABC, abstractmethod -from lmms_eval.live_bench.data_generator.response import Response -from lmms_eval.live_bench.screen_shoter import ScreenImage -from lmms_eval.live_bench.data_generator.utils.gpt4v import format_gpt4v_images, gpt4v_generate_response -from lmms_eval.live_bench.data_generator.utils.gemini import gemini_generate_response - -logger = logging.getLogger("lmms-eval") - - -class QAData(object): - def __init__(self, question: str = None, answer: str = None, subtask: str = None): - self.question = question - self.answer = answer - self.subtask = subtask - - def to_dict(self): - return {"question": self.question, "answer": self.answer} - - -class QAGenerator(ABC): - def __init__(self, prompt_file: str = os.path.join(os.path.dirname(__file__), "prompt.md")): - self.prompt_file = prompt_file - self.prompt = self._load_prompt() - - def _load_prompt(self): - with open(self.prompt_file, "r") as f: - return f.read() - - def __call__(self, images: ScreenImage, *args, **kwargs): - return self.generate(images, *args, **kwargs) - - def generate(self, images: ScreenImage, *, test=False, **kwargs) -> Response: - if test: - return Response(success=True, content="This is a test response.", full_log={}) - return self._generate(images, **kwargs) - - def check(self, images: ScreenImage, question, answer, subtask, *, test=False, **kwargs) -> Response: - if test: - return Response(success=True, content="This is a test response.", full_log={}) - return self._check(images, question, answer, subtask, **kwargs) - - @abstractmethod - def _generate(self, images: ScreenImage, **kwargs) -> Response: - raise NotImplementedError("_generate not implemented") - - @abstractmethod - def _check(self, images: ScreenImage, question, answer, subtask, **kwargs) -> Response: - raise NotImplementedError("_check not implemented") - - def format_response(self, response: Response) -> QAData: - if response.success: - qa_data = self._format_response(response) - if qa_data is None: - return [] - else: - return qa_data - else: - return [] - - @abstractmethod - def _format_response(self, response: Response) -> str: - raise NotImplementedError("format_response not implemented") - - @abstractmethod - def format_checked_response(self, response: Response) -> QAData: - raise NotImplementedError("format_checked_response not implemented") - - def get_name(self) -> str: - raise NotImplementedError("get_name not implemented") - - -class GeneratorRegistry: - def __init__(self): - self.generators = {} - - def register_generator(self, name): - def decorator(cls): - self.generators[name] = cls - cls.get_name = lambda self: name - return cls - - return decorator - - def get_generator(self, name) -> QAGenerator: - return self.generators[name] - - def get_random_generator(self) -> QAGenerator: - return random.choice(list(self.generators.values())) - - -generator_registry = GeneratorRegistry() - - -def register_generator(name): - return generator_registry.register_generator(name) - - -def get_generator(name, *args, **kwargs) -> QAGenerator: - return generator_registry.get_generator(name)(*args, **kwargs) - - -def get_random_generator(*args, **kwargs) -> QAGenerator: - return generator_registry.get_random_generator()(*args, **kwargs) - - -@register_generator("gpt4v") -class GPT4Generator(QAGenerator): - def __init__( - self, - prompt_file: str = os.path.join(os.path.dirname(__file__), "prompt.md"), - model="gpt-4-turbo", - example_path=os.path.join(os.path.dirname(__file__), "example"), - check_prompt=os.path.join(os.path.dirname(__file__), "check_prompt.md"), - ): - super().__init__(prompt_file) - API_KEY = os.getenv("OPENAI_API_KEY") - if not API_KEY: - raise ValueError("OPENAI_API_KEY environment variable not set.") - self.api_key = API_KEY - self.client = openai.OpenAI(api_key=self.api_key) - self.model = model - if os.path.exists(example_path): - self.example_path = example_path - else: - self.example_path = None - if os.path.exists(check_prompt): - with open(check_prompt, "r") as f: - self.check_prompt = f.read() - else: - self.check_prompt = check_prompt - - def format_messages(self, images: List[Image.Image], example_image: Image.Image, example_output: str): - example = [ - format_gpt4v_images(example_image), - { - "type": "text", - "text": example_output, - }, - ] - content = example + [format_gpt4v_images(image) for image in images] - content.append( - { - "type": "text", - "text": "Please generate high-quality questions focusing on the information displayed within this webpage. Your response should be in the format of the examples provided above and in JSON format.", - }, - ) - messages = [ - { - "role": "system", - "content": self.prompt, - }, - { - "role": "user", - "content": content, - }, - ] - return messages - - def _generate(self, images: ScreenImage, *, max_tokens=4096, max_try_times=5, **kwargs): - if self.example_path: - example_image_path = os.path.join(self.example_path, "example_website.png") - example_output_path = os.path.join(self.example_path, "example_output.json") - example_image = Image.open(example_image_path) - with open(example_output_path, "r") as f: - example_output = f.read() - - messages = self.format_messages(images.images, example_image, example_output) - - return gpt4v_generate_response(self.client, self.model, messages, max_tokens, max_try_times, **kwargs) - - def get_check_prompt(self, question: str, answer: str, subtask, images: List[Image.Image]): - messages = [ - { - "role": "system", - "content": self.check_prompt, - } - ] - content = [] - for img in images: - content.append(format_gpt4v_images(img)) - content.append( - { - "type": "text", - "text": f"Question: {question}\nQuestioner's Answer: {answer}\nSubtask: {subtask}", - }, - ) - content.append( - { - "type": "text", - "text": "Please rephrase or rewrite the high-quality question focusing on the information displayed within this webpage. Your response should be in the format of the examples provided above and in JSON format.", - }, - ) - messages.append( - { - "role": "user", - "content": content, - } - ) - return messages - - def _check(self, images: ScreenImage, question, answer, subtask, *, max_tokens=4096, max_try_times=5, **kwargs): - messages = self.get_check_prompt(question, answer, subtask, images.images) - return gpt4v_generate_response(self.client, self.model, messages, max_tokens, max_try_times, **kwargs) - - def format_checked_response(self, response: Response): - data = json.loads(response.content) - question = data.get("question", None) - answer = data.get("answer", None) - subtask = data.get("subtask", None) - return QAData(question=question, answer=answer, subtask=subtask) - - def _format_response(self, response: Response) -> List[QAData]: - try: - qa_data = [] - content = json.loads(response.content) - for subtask, message in content.items(): - subtask = subtask.lower() - message_lower = {k.lower(): v for k, v in message.items()} - try: - question = message_lower["question"] - answer = message_lower["answer"] - qa_data.append(QAData(question=question, answer=answer, subtask=subtask)) - except KeyError as e: - logger.error(f"Failed to parse response: {message}") - logger.error(f"Error: {e}") - return qa_data - except Exception as e: - logger.error(f"Failed to format response: {e}") - return [] - - -@register_generator("gemini") -class GeminiGenerator(QAGenerator): - def __init__( - self, - prompt_file: str = os.path.join(os.path.dirname(__file__), "prompt.md"), - model="gemini-pro-vision", - example_path=os.path.join(os.path.dirname(__file__), "example"), - check_prompt=os.path.join(os.path.dirname(__file__), "check_prompt.md"), - ): - super().__init__(prompt_file) - GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY") - if not GOOGLE_API_KEY: - raise ValueError("GOOGLE_API_KEY environment variable not set.") - genai.configure(api_key=GOOGLE_API_KEY) - - self.api_key = GOOGLE_API_KEY - self.model = model - self.client = genai.GenerativeModel(model) - if os.path.exists(example_path): - self.example_path = example_path - else: - self.example_path = None - if os.path.exists(check_prompt): - with open(check_prompt, "r") as f: - self.check_prompt = f.read() - else: - self.check_prompt = check_prompt - - def format_messages(self, images: List[Image.Image], example_image: Image.Image, example_output: str): - content = [self.prompt, "\n", "Example Image:", example_image, "\n", "Example Output:", example_output] - content.extend(images) - content.append("Please generate high-quality questions focusing on the information displayed within this webpage. Your response should be in the format of the examples provided above and in JSON format.") - return content - - def _generate(self, images: ScreenImage, *, max_tokens=4096, max_try_times=5, **kwargs): - if self.example_path: - example_image_path = os.path.join(self.example_path, "example_website.png") - example_output_path = os.path.join(self.example_path, "example_output.json") - example_image = Image.open(example_image_path) - with open(example_output_path, "r") as f: - example_output = f.read() - - messages = self.format_messages(images.images, example_image, example_output) - - return gemini_generate_response(self.client, messages, max_tokens, max_try_times, **kwargs) - - def get_check_prompt(self, question: str, answer: str, subtask, images: List[Image.Image]): - content = [self.check_prompt] + images - content.append(f"Question: {question}\nQuestioner's Answer: {answer}\nSubtask: {subtask}") - content.append("Your response should be strictly in the below format:\n\nQuestion: \nAnswer: \nSubtask: ") - return content - - def _check(self, images: ScreenImage, question, answer, subtask, *, max_tokens=4096, max_try_times=5, **kwargs): - messages = self.get_check_prompt(question, answer, subtask, images.images) - return gemini_generate_response(self.client, messages, max_tokens, max_try_times, **kwargs) - - def format_checked_response(self, response: Response): - # Extract the question, answer, and subtask from the normalized content - question_match = re.search(r"question:\s*(.*?)\nAnswer:", response.content, re.IGNORECASE | re.DOTALL) - answer_match = re.search(r"answer:\s*(.*?)\n(Subtask:|$)", response.content, re.IGNORECASE | re.DOTALL) - subtask_match = re.search(r"subtask:\s*(.*)", response.content, re.IGNORECASE) - - question = answer = subtask = None - - if question_match: - # Extract the matched groups - question = question_match.group(1).strip() - if answer_match: - answer = answer_match.group(1).strip() - if subtask_match: - subtask = subtask_match.group(1).strip() - - return QAData(question=question, answer=answer, subtask=subtask) - - def _format_response(self, response: Response) -> List[QAData]: - try: - qa_data = [] - content = json.loads(response.content) - for subtask, message in content.items(): - subtask = subtask.lower() - message_lower = {k.lower(): v for k, v in message.items()} - try: - question = message_lower["question"] - answer = message_lower["answer"] - qa_data.append(QAData(question=question, answer=answer, subtask=subtask)) - except KeyError as e: - logger.error(f"Failed to parse response: {message}") - logger.error(f"Error: {e}") - return qa_data - except Exception as e: - logger.error(f"Failed to format response: {e}") - return [] diff --git a/tools/live_bench/data_generator/response.py b/tools/live_bench/data_generator/response.py deleted file mode 100644 index 5106b70a..00000000 --- a/tools/live_bench/data_generator/response.py +++ /dev/null @@ -1,5 +0,0 @@ -class Response(object): - def __init__(self, success: bool, content: str, full_log: dict): - self.success = success - self.content = content - self.full_log = full_log diff --git a/tools/live_bench/data_generator/score_getter.py b/tools/live_bench/data_generator/score_getter.py deleted file mode 100644 index 990fc306..00000000 --- a/tools/live_bench/data_generator/score_getter.py +++ /dev/null @@ -1,157 +0,0 @@ -import os -import json -import random -import openai -import anthropic -from abc import ABC, abstractmethod -from typing import List -from PIL import Image -from lmms_eval.live_bench.screen_shoter import ScreenImage -from lmms_eval.live_bench.data_generator.qa_generator import Response -from lmms_eval.live_bench.data_generator.utils.gpt4v import format_gpt4v_images, gpt4v_generate_response -from lmms_eval.live_bench.data_generator.utils.claude import format_claude_images, claude_generate_response - - -class Score(object): - def __init__(self, score: int, reason: str): - self.score = score - self.reason = reason - - -class ScoreGetter(ABC): - def get_name(self): - return self.name - - @abstractmethod - def get_score(self, question: str, answer: str, images: ScreenImage): - raise NotImplementedError("get_score not implemented") - - def __call__(self, question: str, answer: str, images: ScreenImage, **kwargs): - return self.get_score(question, answer, images, **kwargs) - - -class ScoreGetterRegistry: - def __init__(self): - self.score_getters = {} - - def register_score_getter(self, name): - def decorator(cls): - self.score_getters[name] = cls - cls.name = name - return cls - - return decorator - - def get_score_getter(self, name) -> ScoreGetter: - return self.score_getters[name] - - def get_random_score_getter(self) -> ScoreGetter: - return random.choice(list(self.score_getters.values())) - - -generator_registry = ScoreGetterRegistry() - - -def register_score_getter(name): - return generator_registry.register_score_getter(name) - - -def get_score_getter(name, *args, **kwargs) -> ScoreGetter: - return generator_registry.get_score_getter(name)(*args, **kwargs) - - -def get_random_score_getter(*args, **kwargs) -> ScoreGetter: - return generator_registry.get_random_score_getter()(*args, **kwargs) - - -@register_score_getter("gpt4v") -class GPT4VScoreGetter(ScoreGetter): - def __init__(self, prompt: str = os.path.join(os.path.dirname(__file__), "score_prompt.md"), model="gpt-4-turbo", example_path=os.path.join(os.path.dirname(__file__), "example")): - super().__init__() - if os.path.exists(prompt): - with open(prompt, "r") as f: - self.prompt = f.read() - else: - self.prompt = prompt - API_KEY = os.getenv("OPENAI_API_KEY") - if not API_KEY: - raise ValueError("OPENAI_API_KEY environment variable not set.") - self.api_key = API_KEY - self.client = openai.OpenAI(api_key=self.api_key) - self.model = model - if os.path.exists(example_path) and os.path.isfile(os.path.join(example_path, "example_score_input.md")): - with open(example_path, "r") as f: - self.example = f.read() - else: - self.example = None - - def _format_prompt(self, question: str, answer: str, images: List[Image.Image]): - prompt = [{"role": "system", "content": self.prompt}] - messages = [] - for image in images: - messages.append(format_gpt4v_images(image)) - messages.append({"type": "text", "text": f"Question: {question}\nQuestioner's Answer: {answer}"}) - messages.append({"type": "text", "text": 'You should format you answer into json format like this: {"score": 10, "reason": "some reason"}'}) - prompt.append({"role": "user", "content": messages}) - return prompt - - def get_score(self, question: str, answer: str, images: ScreenImage, *, max_tokens=4096, max_try_times=5, **kwargs) -> Score: - prompt = self._format_prompt(question, answer, images) - try: - response = gpt4v_generate_response(self.client, self.model, prompt, max_tokens, max_try_times, **kwargs) - if response.success: - content = json.loads(response.content) - score = content.get("score", None) - reason = content.get("reason", None) - return Score(score=score, reason=reason) - else: - return Score(score=None, reason=response.content) - except Exception as e: - return Score(score=None, reason=str(e)) - - -@register_score_getter("claude") -class ClaudeScoreGetter(ScoreGetter): - def __init__(self, prompt: str = os.path.join(os.path.dirname(__file__), "score_prompt.md"), model="claude-3-opus-20240229", example_path=os.path.join(os.path.dirname(__file__), "example")): - super().__init__() - if os.path.exists(prompt): - with open(prompt, "r") as f: - self.prompt = f.read() - else: - self.prompt = prompt - API_KEY = os.getenv("ANTHROPIC_API_KEY") - if not API_KEY: - raise ValueError("ANTHROPIC_API_KEY environment variable not set.") - self.api_key = API_KEY - self.client = anthropic.Anthropic(api_key=self.api_key) - self.model = model - if os.path.exists(example_path) and os.path.isfile(os.path.join(example_path, "example_score_input.md")): - with open(example_path, "r") as f: - self.example = f.read() - else: - self.example = None - - def _format_prompt(self, question: str, answer: str, images: List[Image.Image]): - # prompt = [{"role": "system", "content": self.prompt}] - prompt = [] - messages = [] - for image in images: - messages.append(format_claude_images(image)) - messages.append({"type": "text", "text": f"Question: {question}\nQuestioner's Answer: {answer}"}) - messages.append({"type": "text", "text": 'You should format you answer into json format like this: {"score": 10, "reason": "some reason"}'}) - prompt.append({"role": "user", "content": messages}) - return prompt - - def get_score(self, question: str, answer: str, images: ScreenImage, *, max_tokens=4096, max_try_times=5, **kwargs) -> Score: - prompt = self._format_prompt(question, answer, images) - try: - response = claude_generate_response(self.client, self.model, prompt, self.prompt, max_tokens, max_try_times, **kwargs) - if response.success: - content = json.loads(response.content) - score = content.get("score", None) - reason = content.get("reason", None) - return Score(score=score, reason=reason) - else: - return Score(score=None, reason=response.content) - except Exception as e: - return Score(score=None, reason=str(e)) diff --git a/tools/live_bench/data_generator/score_prompt.md b/tools/live_bench/data_generator/score_prompt.md deleted file mode 100644 index 3940863e..00000000 --- a/tools/live_bench/data_generator/score_prompt.md +++ /dev/null @@ -1 +0,0 @@ -Based on the multi-round Q&A regarding to the image, please evaluate each question and answer from the multi-round Q&A based on the image for their authenticity (whether the information can be directly obtained from the image or reasonably inferred) and logical coherence. For each Q&A pair, provide a rating from 1 to 10, where 1 indicates very poor and 10 indicates excellent. Additionally, please provide a brief explanation for each rating. diff --git a/tools/live_bench/data_generator/utils/__init__.py b/tools/live_bench/data_generator/utils/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tools/live_bench/data_generator/utils/claude.py b/tools/live_bench/data_generator/utils/claude.py deleted file mode 100644 index c33f81db..00000000 --- a/tools/live_bench/data_generator/utils/claude.py +++ /dev/null @@ -1,42 +0,0 @@ -from PIL import Image -import io -import base64 -from lmms_eval.live_bench.data_generator.response import Response -import logging -from time import sleep - -logger = logging.getLogger("lmms-eval") - - -def format_claude_images(image: Image.Image): - buffered = io.BytesIO() - image.save(buffered, format="PNG") - img_str = base64.b64encode(buffered.getvalue()).decode("utf-8") - return { - "type": "image", - "source": { - "type": "base64", - "media_type": "image/png", - "data": img_str, - }, - } - - -def claude_generate_response(client, model, messages, system, max_tokens: int, max_try_times, **kwargs): - messages.append({"role": "assistant", "content": "{"}) - - def _generate(): - return client.messages.create(model=model, messages=messages, max_tokens=max_tokens, system=system, **kwargs) - - for times in range(max_try_times): - try: - response = _generate() - return Response(success=True, content="{" + response.content[0].text, full_log={"input": messages, "output": response}) - except Exception as e: - logger.error(f"Failed to generate response: {e}") - if times < max_try_times - 1: - logger.info(f"Retrying... ({times+1}/{max_try_times})") - sleep(3) - else: - logger.error("Failed to generate response after retrying.") - return Response(success=False, content=str(e), full_log={"input": messages, "output": None}) diff --git a/tools/live_bench/data_generator/utils/gemini.py b/tools/live_bench/data_generator/utils/gemini.py deleted file mode 100644 index 2e425826..00000000 --- a/tools/live_bench/data_generator/utils/gemini.py +++ /dev/null @@ -1,26 +0,0 @@ -import google.generativeai as genai -from time import sleep -from lmms_eval.live_bench.data_generator.response import Response -import logging - -logger = logging.getLogger("lmms-eval") - - -def gemini_generate_response(client: genai.GenerativeModel, messages, max_tokens: int, max_try_times, **kwargs): - generation_config = genai.GenerationConfig(max_output_tokens=max_tokens) - - def _generate(): - return client.generate_content(messages, generation_config=generation_config, **kwargs) - - for times in range(max_try_times): - try: - response = _generate() - return Response(success=True, content=response.text, full_log={"input": messages, "output": response}) - except Exception as e: - logger.error(f"Failed to generate response: {e}") - if times < max_try_times - 1: - logger.info(f"Retrying... ({times+1}/{max_try_times})") - sleep(3) - else: - logger.error("Failed to generate response after retrying.") - return Response(success=False, content=str(e), full_log={"input": messages, "output": None}) diff --git a/tools/live_bench/data_generator/utils/gpt4v.py b/tools/live_bench/data_generator/utils/gpt4v.py deleted file mode 100644 index 4b4c1cd8..00000000 --- a/tools/live_bench/data_generator/utils/gpt4v.py +++ /dev/null @@ -1,38 +0,0 @@ -from PIL import Image -import io -import base64 -from lmms_eval.live_bench.data_generator.response import Response -import logging -from time import sleep - -logger = logging.getLogger("lmms-eval") - - -def format_gpt4v_images(image: Image.Image): - buffered = io.BytesIO() - image.save(buffered, format="PNG") - img_str = base64.b64encode(buffered.getvalue()).decode("utf-8") - return { - "type": "image_url", - "image_url": { - "url": f"data:image/png;base64,{img_str}", - }, - } - - -def gpt4v_generate_response(client, model, messages, max_tokens: int, max_try_times, **kwargs): - def _generate(): - return client.chat.completions.create(model=model, messages=messages, max_tokens=max_tokens, response_format={"type": "json_object"}, **kwargs) - - for times in range(max_try_times): - try: - response = _generate() - return Response(success=True, content=response.choices[0].message.content, full_log={"input": messages, "output": response}) - except Exception as e: - logger.error(f"Failed to generate response: {e}") - if times < max_try_times - 1: - logger.info(f"Retrying... ({times+1}/{max_try_times})") - sleep(3) - else: - logger.error("Failed to generate response after retrying.") - return Response(success=False, content=str(e), full_log={"input": messages, "output": None}) diff --git a/tools/live_bench/driver/.gitignore b/tools/live_bench/driver/.gitignore deleted file mode 100644 index 0ef18421..00000000 --- a/tools/live_bench/driver/.gitignore +++ /dev/null @@ -1 +0,0 @@ -extensions/ diff --git a/tools/live_bench/driver/__init__.py b/tools/live_bench/driver/__init__.py deleted file mode 100644 index a1565d0b..00000000 --- a/tools/live_bench/driver/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from lmms_eval.live_bench.driver.load_driver import load_driver diff --git a/tools/live_bench/driver/load_driver.py b/tools/live_bench/driver/load_driver.py deleted file mode 100644 index e8b1702b..00000000 --- a/tools/live_bench/driver/load_driver.py +++ /dev/null @@ -1,51 +0,0 @@ -import os -import zipfile -import requests -from selenium import webdriver -from webdriver_manager.chrome import ChromeDriverManager -from selenium.webdriver.chrome.options import Options - -import undetected_chromedriver as uc - - -def load_driver( - window_size="auto", headless=True, driver="undetected_chromedriver", adblock=True, adblock_version="6.0.2-mv3", extension_cache_dir=os.path.join(os.path.dirname(__file__), "extensions"), *, service=None, additional_options=None -): - options = Options() - if headless: - options.add_argument("--headless") - if adblock: - try: - adblock_url = f"https://code.getadblock.com/releases/adblockchrome-{adblock_version}.zip" - adblock_path = os.path.join(extension_cache_dir, f"adblockchrome-{adblock_version}") - if not os.path.isdir(adblock_path): - os.makedirs(os.path.join(adblock_path, ".."), exist_ok=True) - # Download the adblock zip file - response = requests.get(adblock_url) - with open(f"{adblock_path}.zip", "wb") as file: - file.write(response.content) - # Unzip the downloaded file - with zipfile.ZipFile(f"{adblock_path}.zip", "r") as zip_ref: - zip_ref.extractall(adblock_path) - # Remove the zip file after extraction - os.remove(f"{adblock_path}.zip") - options.add_argument(f"--load-extension={os.path.abspath(adblock_path)}") - except Exception as e: - print(f"Error loading adblock extension: {e}") - if driver == "undetected_chromedriver": - driver = uc.Chrome(headless=headless, options=options) - if window_size != "auto": - driver.set_window_size(*window_size) - return driver - elif driver == "chrome": - options = Options() - if additional_options is not None: - for option in additional_options: - options.add_argument(option) - if service is None: - service = ChromeDriverManager().install() - service = webdriver.chrome.service.Service(service) - driver = webdriver.Chrome(service=service, options=options) - if window_size != "auto": - driver.set_window_size(*window_size) - return driver diff --git a/tools/live_bench/example.ipynb b/tools/live_bench/example.ipynb deleted file mode 100644 index 01f64890..00000000 --- a/tools/live_bench/example.ipynb +++ /dev/null @@ -1,103 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from random import sample\n", - "\n", - "from lmms_eval.live_bench.websites.website import DefaultWebsite\n", - "from lmms_eval.live_bench.websites import load_websites\n", - "\n", - "# website = load_websites()\n", - "# website = sample(website, 1)\n", - "# website[0].url\n", - "website = [DefaultWebsite(url=\"https://www.bbc.com/\")] # , DefaultWebsite(url=\"https://www.bbc.com/sport\"), DefaultWebsite(url=\"https://www.bbc.com/business\")]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from lmms_eval.live_bench import LiveBench" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "dataset = LiveBench(force_clear=True)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "dataset.capture(websites=website, driver_kwargs={\"headless\": True}, screen_shoter=\"single_screen\", shoter_kwargs={\"screen_size\": (1024, 1024)}, qa_generator=\"gpt4v\", scorer=\"gpt4v\", checker=\"gemini\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "dataset.hf_data[0][\"images\"][0].save(\"img.png\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "dataset" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "dataset.upload()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "lmms-eval", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tools/live_bench/screen_shoter/__init__.py b/tools/live_bench/screen_shoter/__init__.py deleted file mode 100644 index 6e596c7d..00000000 --- a/tools/live_bench/screen_shoter/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from lmms_eval.live_bench.screen_shoter.screen_shoter import ScreenShoter, register_shoter, get_shoter -from lmms_eval.live_bench.screen_shoter.screen import ScreenImage diff --git a/tools/live_bench/screen_shoter/screen.py b/tools/live_bench/screen_shoter/screen.py deleted file mode 100644 index e8610ce4..00000000 --- a/tools/live_bench/screen_shoter/screen.py +++ /dev/null @@ -1,30 +0,0 @@ -import io -import base64 - -from PIL import Image -from typing import List, Tuple - -from lmms_eval.live_bench.websites import Website - - -def image_to_base64(image: Image.Image) -> str: - buffered = io.BytesIO() - image.save(buffered, format="PNG") - return base64.b64encode(buffered.getvalue()).decode("utf-8") - - -class ScreenImage(object): - def __init__(self, images: List[Image.Image], website: Website, shoter: str, screen_size: Tuple[int, int], capture_datetime: str): - self.images = images - self.website = website - self.shoter = shoter - self.screen_size = screen_size - self.capture_datetime = capture_datetime - - def to_dict(self): - return {"images": self.images, "website": self.website.get_info(), "shoter": self.shoter, "screen_size": self.screen_size, "capture_datetime": self.capture_datetime} - - def to_output_dict(self): - output = self.to_dict() - output["images"] = [image_to_base64(image) for image in self.images] - return output diff --git a/tools/live_bench/screen_shoter/screen_shoter.py b/tools/live_bench/screen_shoter/screen_shoter.py deleted file mode 100644 index 45a4c9be..00000000 --- a/tools/live_bench/screen_shoter/screen_shoter.py +++ /dev/null @@ -1,141 +0,0 @@ -from selenium import webdriver -from PIL import Image -from lmms_eval.live_bench.websites import Website -from lmms_eval.live_bench.screen_shoter.screen import ScreenImage -from typing import List -from abc import ABC, abstractmethod -from datetime import datetime -from PIL import Image -import os -import io -import logging - -logger = logging.getLogger("lmms-eval") - - -class ScreenShoter(ABC): - def __init__(self, screen_size=(1024, 1024)): - self.screen_size = screen_size - - def capture(self, driver: webdriver.Chrome, website: Website) -> ScreenImage: - if driver is not None: - website.visit(driver) - if self.screen_size != "auto": - driver.set_window_size(self.screen_size[0], self.screen_size[1]) - else: - driver.set_window_size(1024, 1024) - page_width = driver.execute_script("return document.body.scrollWidth") - driver.set_window_size(page_width, 1024) - # print("Screen size:", driver.get_window_size()) - images = self.get_screenshot(driver) - return ScreenImage(images, website, self.get_name(), self.screen_size, datetime.now().strftime("%Y-%m-%d %H:%M:%S")) - - def __call__(self, driver: webdriver.Chrome, website: Website) -> List[Image.Image]: - return self.capture(driver, website) - - def get_name(self) -> str: - raise NotImplementedError("get_name not implemented") - - @abstractmethod - def get_screenshot(self, driver: webdriver.Chrome) -> List[Image.Image]: - pass - - -class ScreenShoterRegistry: - def __init__(self): - self.shoters = {} - - def register_shoter(self, name): - def decorator(cls): - self.shoters[name] = cls - cls.get_name = lambda self: name - return cls - - return decorator - - def get_shoter(self, name) -> ScreenShoter: - return self.shoters[name] - - -shoter_registry = ScreenShoterRegistry() - - -def register_shoter(name): - return shoter_registry.register_shoter(name) - - -def get_shoter(name, *args, **kwargs) -> ScreenShoter: - return shoter_registry.get_shoter(name)(*args, **kwargs) - - -@register_shoter("human") -class HumanScreenShoter(ScreenShoter): - def __init__(self, screen_size=None): - super().__init__(screen_size) - - def capture(self, driver: webdriver.Chrome, website: Website) -> ScreenImage: - path = website.get_path() - images = [] - - def get_image(path): - try: - with open(path, "rb") as f: - image_data = f.read() - image = Image.open(io.BytesIO(image_data)) - images.append(image) - except Exception as e: - logger.error(f"Error loading image {path}: {e}") - - if os.path.isdir(path): - for root, dirs, files in os.walk(path): - for file_name in files: - get_image(os.path.join(root, file_name)) - else: - try: - get_image(path) - except Exception as e: - logger.error(f"Error loading image {path}: {e}") - if not images: - raise ValueError(f"No images found in {path}") - return ScreenImage(images, website, self.get_name(), self.screen_size, datetime.now().strftime("%Y-%m-%d %H:%M:%S")) - - def get_screenshot(self, driver: webdriver.Chrome) -> List[Image.Image]: - return [] - - -@register_shoter("single_screen") -class SingleScreenShoter(ScreenShoter): - def __init__(self, screen_size=(1024, 1024)): - super().__init__(screen_size) - - def get_screenshot(self, driver: webdriver.Chrome) -> List[Image.Image]: - screenshot = driver.get_screenshot_as_png() - return [Image.open(io.BytesIO(screenshot))] - - -@register_shoter("rolling_screen") -class RollingScreenShoter(ScreenShoter): - def __init__(self, screen_size=(1024, 1024)): - super().__init__(screen_size) - - def get_screenshot(self, driver: webdriver.Chrome) -> List[Image.Image]: - screenshots = [] - # Scroll to the top of the page before taking the first screenshot - driver.execute_script("window.scrollTo(0, 0)") - # Get the total height of the web page - total_height = driver.execute_script("return document.body.parentNode.scrollHeight") - # Get the viewport height - viewport_height = driver.execute_script("return window.innerHeight") - # Initialize the current scroll position - current_scroll_position = 0 - - # Scroll through the page and take screenshots - while current_scroll_position < total_height: - # Take screenshot and append to the list - screenshot = driver.get_screenshot_as_png() - screenshots.append(Image.open(io.BytesIO(screenshot))) - # Scroll down by the viewport height - current_scroll_position += viewport_height - driver.execute_script(f"window.scrollTo(0, {current_scroll_position})") - - return screenshots diff --git a/tools/live_bench/websites/__init__.py b/tools/live_bench/websites/__init__.py deleted file mode 100644 index 721a374f..00000000 --- a/tools/live_bench/websites/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from lmms_eval.live_bench.websites.load_website import load_websites, load_websites_from_file -from lmms_eval.live_bench.websites.website import Website diff --git a/tools/live_bench/websites/load_website.py b/tools/live_bench/websites/load_website.py deleted file mode 100644 index 56b96357..00000000 --- a/tools/live_bench/websites/load_website.py +++ /dev/null @@ -1,34 +0,0 @@ -import yaml -import os -from random import sample -from lmms_eval.live_bench.websites.website import Website, DefaultWebsite, HumanScreenShotWebsite - - -def get_website(website_dict): - if "website_class" not in website_dict: - website_class = DefaultWebsite - else: - website_class = website_dict["website_class"] - url = website_dict["url"] - if "args" in website_dict: - return website_class(url, **website_dict["args"]) - else: - return website_class(url) - - -def load_websites(num_sample: int = -1): - website_list_path = os.path.join(os.path.dirname(__file__), "website_list.yaml") - with open(website_list_path, "r") as f: - website_list = yaml.full_load(f)["websites"] - if num_sample > 0: - website_list = sample(website_list, num_sample) - return [get_website(website_dict) for website_dict in website_list] - - -def load_websites_from_file(file_path): - names = os.listdir(file_path) - websites = [] - for name in names: - path = os.path.join(file_path, name) - websites.append(HumanScreenShotWebsite(path=path, name=name)) - return websites diff --git a/tools/live_bench/websites/website.py b/tools/live_bench/websites/website.py deleted file mode 100644 index 327bad37..00000000 --- a/tools/live_bench/websites/website.py +++ /dev/null @@ -1,62 +0,0 @@ -import time -import os - -from webdriver_manager.core.driver import Driver -from abc import ABC, abstractmethod - - -class Website(ABC): - def __init__(self, url=None, name=None, path=None): - self.url = url - self.name = name - self.path = path - assert self.url is not None or self.path is not None, "Either url or path must be provided" - - def get_path(self): - if self.url: - return self.url - else: - return self.path - - def visit(self, driver: Driver): - self.pre_visit(driver) - driver.get(self.url) - self.post_visit(driver) - - def get_info(self): - info = {} - if self.url: - info["url"] = self.url - if self.name: - info["name"] = self.name - return info - - @abstractmethod - def pre_visit(self, driver: Driver): - raise NotImplementedError("pre_action not implemented") - - @abstractmethod - def post_visit(self, driver: Driver): - raise NotImplementedError("post_action not implemented") - - -class DefaultWebsite(Website): - def __init__(self, url, name=None): - super().__init__(url, name) - - def pre_visit(self, driver: Driver): - pass - - def post_visit(self, driver: Driver): - time.sleep(5) # Wait for 5 seconds to allow adblock to finish - - -class HumanScreenShotWebsite(Website): - def __init__(self, name=None, path=None): - super().__init__(name=name, path=path) - - def pre_visit(self, driver: Driver): - pass - - def post_visit(self, driver: Driver): - pass diff --git a/tools/live_bench/websites/website_list.yaml b/tools/live_bench/websites/website_list.yaml deleted file mode 100644 index 4c7b348a..00000000 --- a/tools/live_bench/websites/website_list.yaml +++ /dev/null @@ -1,77 +0,0 @@ -websites: -- url: https://www.bbc.com/ - # can add below line to specify the class to use for this website - # website_class: !constructor website.DefaultWebsite - # can add args tag to specify the arguments to pass to the class constructor - # args: - # arg1: value1 - # arg2: value2 -- url: https://www.bbc.com/news -- url: https://www.bbc.com/sport -- url: https://www.bbc.com/business -- url: https://www.bbc.com/innovation -- url: https://www.bbc.com/culture -- url: https://www.bbc.com/travel -- url: https://www.bbc.com/future-planet -# - url: https://edition.cnn.com/ -# - url: https://edition.cnn.com/politics -# - url: https://edition.cnn.com/entertainment -# - url: https://edition.cnn.com/style -# - url: https://www.bloomberg.com/economics -# - url: https://www.bloomberg.com/industries -# - url: https://www.bloomberg.com/technology -# - url: https://www.bloomberg.com/politics -# - url: https://www.bloomberg.com/opinion -# - url: https://www.wsj.com/ -# - url: https://www.wsj.com/world/africa?mod=nav_top_subsection -# - url: https://www.wsj.com/world/americas?mod=nav_top_subsection -# - url: https://www.wsj.com/world/asia?mod=nav_top_subsection -# - url: https://www.wsj.com/world/china?mod=nav_top_subsection -# - url: https://www.wsj.com/world/europe?mod=nav_top_subsection -# - url: https://www.wsj.com/world/middle-east?mod=nav_top_subsection -# - url: https://www.wsj.com/world/india?mod=nav_top_subsection -# - url: https://www.wsj.com/world/oceania?mod=nav_top_subsection -# - url: https://www.wsj.com/world/russia?mod=nav_top_subsection -# - url: https://www.wsj.com/world/uk?mod=nav_top_subsection -# - url: https://www.wsj.com/science?mod=nav_top_subsection -# - url: https://www.wsj.com/science/archaeology?mod=nav_top_subsection -# - url: https://www.wsj.com/science/biology?mod=nav_top_subsection -# - url: https://www.wsj.com/science/environment?mod=nav_top_subsection -# - url: https://www.wsj.com/science/physics?mod=nav_top_subsection -# - url: https://www.wsj.com/science/space-astronomy?mod=nav_top_subsection -# - url: https://www.wsj.com/economy/central-banking?mod=nav_top_subsection -# - url: https://www.wsj.com/economy/consumers?mod=nav_top_subsection -# - url: https://www.wsj.com/economy/housing?mod=nav_top_subsection -# - url: https://www.wsj.com/economy/jobs?mod=nav_top_subsection -# - url: https://www.wsj.com/economy/trade?mod=nav_top_subsection -# - url: https://www.wsj.com/economy/global -# - url: https://www.wsj.com/tech/ai?mod=nav_top_subsection -# - url: https://www.wsj.com/tech/biotech -# - url: https://www.wsj.com/tech/cybersecurity?mod=nav_top_subsection -# - url: https://www.wsj.com/tech/personal-tech?mod=nav_top_subsection -# - url: https://www.reuters.com/ -# - url: https://www.reuters.com/business/aerospace-defense/ -# - url: https://www.reuters.com/business/autos-transportation/ -# - url: https://www.reuters.com/business/davos/ -# - url: https://www.reuters.com/business/energy/ -# - url: https://www.reuters.com/business/environment/ -# - url: https://www.reuters.com/business/finance/ -# - url: https://www.reuters.com/business/healthcare-pharmaceuticals/ -# - url: https://www.reuters.com/business/media-telecom/ -# - url: https://www.reuters.com/business/retail-consumer/ -# - url: https://www.reuters.com/business/future-of-health/ -# - url: https://www.reuters.com/business/future-of-money/ -# - url: https://www.reuters.com/business/take-five/ -# - url: https://www.reuters.com/business/world-at-work/ -# - url: https://www.reuters.com/breakingviews/ -# - url: https://www.reuters.com/technology/ -# - url: https://www.reuters.com/technology/cybersecurity/ -# - url: https://www.reuters.com/technology/space/ -# - url: https://www.reuters.com/technology/disrupted/ -# - url: https://www.reuters.com/technology/reuters-momentum/ -# - url: https://www.reuters.com/investigations/ -# - url: https://a16z.com/news-content/#latest -# - url: https://news.ycombinator.com/ -# - url: https://www.reddit.com/?rdt=48006 -# - url: https://news.crunchbase.com/ -- url: https://www.cctv.com/ From 2c8c63a273513eba19ba712ffb0888d75f201a2a Mon Sep 17 00:00:00 2001 From: kcz358 Date: Wed, 19 Jun 2024 11:08:25 +0000 Subject: [PATCH 06/32] Add back llava onevision --- lmms_eval/models/__init__.py | 1 + lmms_eval/models/llava_onevision.py | 484 ++++++++++++++++++++++++++++ 2 files changed, 485 insertions(+) create mode 100755 lmms_eval/models/llava_onevision.py diff --git a/lmms_eval/models/__init__.py b/lmms_eval/models/__init__.py index ec354cf3..9b19447d 100755 --- a/lmms_eval/models/__init__.py +++ b/lmms_eval/models/__init__.py @@ -29,6 +29,7 @@ "mplug_owl_video": "mplug_Owl", "phi3v": "Phi3v", "tinyllava": "TinyLlava", + "llava_onevision": "Llava_OneVision", } for model_name, model_class in AVAILABLE_MODELS.items(): diff --git a/lmms_eval/models/llava_onevision.py b/lmms_eval/models/llava_onevision.py new file mode 100755 index 00000000..a755b0c9 --- /dev/null +++ b/lmms_eval/models/llava_onevision.py @@ -0,0 +1,484 @@ +from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs +from accelerate.state import AcceleratorState +from transformers import AutoConfig + +import math +import torch + +torch.backends.cuda.matmul.allow_tf32 = True + +from tqdm import tqdm +from datetime import timedelta +from decord import VideoReader, cpu +import numpy as np + +import copy +import PIL +from typing import List, Optional, Union, Tuple +from packaging import version +import warnings +import logging + +warnings.filterwarnings("ignore") + +eval_logger = logging.getLogger("lmms-eval") + +from lmms_eval import utils +from lmms_eval.api.instance import Instance +from lmms_eval.api.model import lmms +from lmms_eval.api.registry import register_model +from lmms_eval.models.model_utils.load_video import read_video_pyav + +try: + from llava.model.builder import load_pretrained_model + from llava.mm_utils import get_model_name_from_path, process_images, tokenizer_image_token, KeywordsStoppingCriteria + from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX + from llava.conversation import conv_templates, SeparatorStyle + +except Exception as e: + eval_logger.debug("LLaVA is not installed. Please install LLaVA to use this model.\nError: %s" % e) + +try: + from llavavid.model.language_model.llava_qwen import LlavaQwenConfig + from llavavid.model.language_model.llava_llama import LlavaConfig + + AutoConfig.register("llava_qwen", LlavaQwenConfig) + AutoConfig.register("llava_llama", LlavaConfig) +except Exception as e: + eval_logger.debug("") +# inference implementation for attention, can be "sdpa", "eager", "flash_attention_2". Seems FA2 is not effective during inference: https://discuss.huggingface.co/t/flash-attention-has-no-effect-on-inference/73453/5 +# if is_flash_attn_2_available: +# best_fit_attn_implementation = "flash_attention_2" # flash_attn has a bug that says: ERROR Error query and key must have the same dtype in generating + +if version.parse(torch.__version__) >= version.parse("2.1.2"): + best_fit_attn_implementation = "sdpa" +else: + best_fit_attn_implementation = "eager" + + +@register_model("llava_onevision") +class Llava_OneVision(lmms): + """ + Llava Model + """ + + def __init__( + self, + pretrained: str = "liuhaotian/llava-v1.5-7b", + truncation: Optional[bool] = True, + device: Optional[str] = "cuda:0", + batch_size: Optional[Union[int, str]] = 1, + model_name: Optional[str] = None, + attn_implementation: Optional[str] = best_fit_attn_implementation, + device_map: Optional[str] = "cuda:0", + conv_template: Optional[str] = "vicuna_v1", + use_cache: Optional[bool] = True, + truncate_context: Optional[bool] = False, # whether to truncate the context in generation, set it False for LLaVA-1.6 + customized_config: Optional[str] = None, # ends in json + max_frames_num: Optional[int] = 32, + mm_spatial_pool_stride: Optional[int] = 2, + mm_spatial_pool_mode: Optional[str] = "average", + token_strategy: Optional[str] = "single", # could be "single" or "multiple", "multiple" denotes adding multiple tokens for each frame + video_decode_backend: str = "pyav", + **kwargs, + ) -> None: + super().__init__() + # Do not use kwargs for now + assert kwargs == {}, f"Unexpected kwargs: {kwargs}" + + accelerator_kwargs = InitProcessGroupKwargs(timeout=timedelta(weeks=52)) + accelerator = Accelerator(kwargs_handlers=[accelerator_kwargs]) + if accelerator.num_processes > 1: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + elif accelerator.num_processes == 1 and device_map == "auto": + self._device = torch.device(device) + self.device_map = device_map + else: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + + llava_model_args = { + "multimodal": True, + } + if customized_config is not None: + llava_model_args["customized_config"] = customized_config + if attn_implementation is not None: + llava_model_args["attn_implementation"] = attn_implementation + if "use_flash_attention_2" in kwargs: + llava_model_args["use_flash_attention_2"] = kwargs["use_flash_attention_2"] + model_name = model_name if model_name is not None else get_model_name_from_path(pretrained) + + self.pretrained = pretrained + self.token_strategy = token_strategy + self.max_frames_num = max_frames_num + self.mm_spatial_pool_stride = mm_spatial_pool_stride + self.mm_spatial_pool_mode = mm_spatial_pool_mode + self.video_decode_backend = video_decode_backend + + overwrite_config = {} + overwrite_config["mm_spatial_pool_stride"] = self.mm_spatial_pool_stride + overwrite_config["mm_spatial_pool_mode"] = self.mm_spatial_pool_mode + cfg_pretrained = AutoConfig.from_pretrained(self.pretrained) + + if cfg_pretrained.architectures[0] == "LlavaLlamaForCausalLM": # Ugly code, only used in vicuna that needs ROPE + if "224" in cfg_pretrained.mm_vision_tower: + least_token_number = self.max_frames_num * (16 // self.mm_spatial_pool_stride) ** 2 + 1000 + else: + least_token_number = self.max_frames_num * (24 // self.mm_spatial_pool_stride) ** 2 + 1000 + + scaling_factor = math.ceil(least_token_number / 4096) + if scaling_factor >= 2: + overwrite_config["rope_scaling"] = {"factor": float(scaling_factor), "type": "linear"} + overwrite_config["max_sequence_length"] = 4096 * scaling_factor + overwrite_config["tokenizer_model_max_length"] = 4096 * scaling_factor + + llava_model_args["overwrite_config"] = overwrite_config + try: + # Try to load the model with the multimodal argument + self._tokenizer, self._model, self._image_processor, self._max_length = load_pretrained_model(pretrained, None, model_name, device_map=self.device_map, **llava_model_args) + except TypeError: + # for older versions of LLaVA that don't have multimodal argument + llava_model_args.pop("multimodal", None) + self._tokenizer, self._model, self._image_processor, self._max_length = load_pretrained_model(pretrained, None, model_name, device_map=self.device_map, **llava_model_args) + + self._config = self._model.config + self.model.eval() + self.model.tie_weights() + self.truncation = truncation + self.batch_size_per_gpu = int(batch_size) + self.conv_template = conv_template + self.use_cache = use_cache + self.truncate_context = truncate_context + assert self.batch_size_per_gpu == 1, "Llava currently does not support batched generation. See https://github.com/haotian-liu/LLaVA/issues/754. HF Llava also has this issue." + + if accelerator.num_processes > 1: + assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." + # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model + # Also, you have to select zero stage 0 (equivalent to DDP) in order to make the prepare model works + # I tried to set different parameters in the kwargs to let default zero 2 stage works, but it didn't work. + if accelerator.distributed_type == DistributedType.DEEPSPEED: + kwargs = { + "train_micro_batch_size_per_gpu": self.batch_size_per_gpu, + "train_batch_size": self.batch_size_per_gpu * accelerator.num_processes, + } + AcceleratorState().deepspeed_plugin.deepspeed_config_process(must_match=True, **kwargs) + eval_logger.info("Detected that you are using DistributedType.DEEPSPEED. Make sure you run `accelerate config` and set zero stage to 0") + + if accelerator.distributed_type == DistributedType.FSDP or accelerator.distributed_type == DistributedType.DEEPSPEED: + self._model = accelerator.prepare(self.model) + else: + self._model = accelerator.prepare_model(self.model, evaluation_mode=True) + self.accelerator = accelerator + if self.accelerator.is_local_main_process: + eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") + self._rank = self.accelerator.local_process_index + self._world_size = self.accelerator.num_processes + + elif accelerator.num_processes == 1 and device_map == "auto": + eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") + self._rank = 0 + self._word_size = 1 + + else: + eval_logger.info(f"Using single device: {self._device}") + self.model.to(self._device) + self._rank = 0 + self._world_size = 1 + + @property + def config(self): + # return the associated transformers.AutoConfig for the given pretrained model. + return self._config + + @property + def tokenizer(self): + return self._tokenizer + + @property + def model(self): + # returns the model, unwrapping it if using Accelerate + if hasattr(self, "accelerator"): + return self.accelerator.unwrap_model(self._model) + else: + return self._model + + @property + def eot_token_id(self): + # we use EOT because end of *text* is more accurate for what we're doing than end of *sentence* + return self.tokenizer.eos_token_id + + @property + def max_length(self): + return self._max_length + + def pad_sequence(self, input_ids, batch_first, padding_value): + if self.tokenizer.padding_side == "left": + input_ids = [torch.flip(_input_ids, [0]) for _input_ids in input_ids] + input_ids = torch.nn.utils.rnn.pad_sequence(input_ids, batch_first=batch_first, padding_value=padding_value) + if self.tokenizer.padding_side == "left": + input_ids = torch.flip(input_ids, [1]) + return input_ids + + @property + def batch_size(self): + return self.batch_size_per_gpu + + @property + def device(self): + return self._device + + @property + def rank(self): + return self._rank + + @property + def world_size(self): + return self._world_size + + def tok_encode(self, string: str, left_truncate_len=None, add_special_tokens=None) -> List[int]: + """ """ + add_special_tokens = False if add_special_tokens is None else add_special_tokens + encoding = self.tokenizer.encode(string, add_special_tokens=add_special_tokens) + # left-truncate the encoded context to be at most `left_truncate_len` tokens long + if left_truncate_len: + encoding = encoding[-left_truncate_len:] + return encoding + + def tok_decode(self, tokens): + try: + return self.tokenizer.decode(tokens) + except: + return self.tokenizer.decode([tokens]) + + def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: + # TODO + res = [] + pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") + + for contexts, doc_to_target, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: + # encode, pad, and truncate contexts for this batch + if type(doc_to_target) == str: + continuation = doc_to_target + else: + continuation = doc_to_target(self.task_dict[task][split][doc_id]) + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] + visuals = self.flatten(visuals) + image_sizes = [[visual.size[0], visual.size[1]] for visual in visuals] + if visuals: + image = process_images(visuals, self._image_processor, self._config) + if type(image) is list: + image = [_image.to(dtype=torch.float16, device=self.device) for _image in image] + else: + image = image.to(dtype=torch.float16, device=self.device) + else: + image = None + + prompts_input = contexts[0] if isinstance(contexts, list) else contexts + + if image is not None and len(image) != 0 and DEFAULT_IMAGE_TOKEN not in prompts_input: + """ + Three senarios: + 1. No image, and there for, no image token should be added. + 2. image token is already specified in the context, so we don't need to add it. + 3. image token is not specified in the context and there is image inputs, so we need to add it. In this case, we add the image token at the beginning of the context and add a new line. + """ + image_tokens = [DEFAULT_IMAGE_TOKEN] * len(visuals) + image_tokens = " ".join(image_tokens) + prompts_input = image_tokens + "\n" + (contexts[0] if isinstance(contexts, list) else contexts) + + # This is much safer for llama3, as we now have some object type in it + if "llama_3" in self.conv_template: + conv = copy.deepcopy(conv_templates[self.conv_template]) + else: + conv = conv_templates[self.conv_template].copy() + + conv.append_message(conv.roles[0], prompts_input) + conv.append_message(conv.roles[1], None) + prompt = conv.get_prompt() + pad_token_id = self.tokenizer.pad_token_id if self.tokenizer.pad_token_id is not None else self.tokenizer.eos_token_id + contxt_id = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) + # Add the answer of the second role + conv.messages[1][1] = continuation + + prompt = conv.get_prompt() + input_ids = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) + labels = input_ids.clone() + # Context part no need to calculate for loss + labels[0, : contxt_id.shape[1]] = -100 + with torch.inference_mode(): + outputs = self.model(input_ids=input_ids, labels=labels, images=image, use_cache=True, image_sizes=image_sizes) + loss = outputs["loss"] + # loss = torch.exp(loss) + logits = outputs["logits"] + greedy_tokens = logits.argmax(dim=-1) + cont_toks = input_ids[:, contxt_id.shape[1] :] # [1, seq] + greedy_tokens = greedy_tokens[:, contxt_id.shape[1] : input_ids.shape[1]] # [1, seq] + max_equal = (greedy_tokens == cont_toks).all() + res.append((float(loss.item()), bool(max_equal))) + pbar.update(1) + + pbar.close() + return res + + def flatten(self, input): + new_list = [] + for i in input: + for j in i: + new_list.append(j) + return new_list + + def load_video(self, video_path, max_frames_num): + if type(video_path) == str: + vr = VideoReader(video_path, ctx=cpu(0)) + else: + vr = VideoReader(video_path[0], ctx=cpu(0)) + total_frame_num = len(vr) + uniform_sampled_frames = np.linspace(0, total_frame_num - 1, max_frames_num, dtype=int) + frame_idx = uniform_sampled_frames.tolist() + spare_frames = vr.get_batch(frame_idx).asnumpy() + return spare_frames # (frames, height, width, channels) + + def generate_until(self, requests: List[Instance]) -> List[str]: + res = [] + + def _collate(x): + # the negative sign on len(toks) sorts descending - this has a few advantages: + # - time estimates will always be over not underestimates, which is more useful for planning + # - to know the size of a batch when going through the list, you know the first one is always the batch + # padded context length. this is useful to simplify the batching logic and more importantly to make + # automatic adaptive batches much much easier to implement + # - any OOMs will happen right away rather than near the end + toks = self.tok_encode(x[0]) + return -len(toks), x[0] + + # we group requests by their generation_kwargs, + # so that we don't try to execute e.g. greedy sampling and temp=0.8 sampling + # in the same batch. + re_ords = utils.Collator([reg.args for reg in requests], _collate, grouping=True) + chunks = re_ords.get_batched(n=self.batch_size, batch_fn=None) + num_iters = len(requests) // self.batch_size if len(requests) % self.batch_size == 0 else len(requests) // self.batch_size + 1 + pbar = tqdm(total=num_iters, disable=(self.rank != 0), desc="Model Responding") + for chunk in chunks: + batched_contexts, all_gen_kwargs, batched_doc_to_visual, batched_doc_id, batched_task, batched_split = zip(*chunk) + task = batched_task[0] + split = batched_split[0] + batched_visuals = [batched_doc_to_visual[0](self.task_dict[task][split][ids]) for ids in batched_doc_id] # [B, N] + assert len(batched_visuals) == 1 + + # we assume all gen kwargs in the batch are the same + # this is safe to assume because the `grouper` object ensures it. + gen_kwargs = all_gen_kwargs[0] + if "until" in gen_kwargs: + gen_kwargs.pop("until") + + question_input = [] + + for visual, context in zip(batched_visuals, batched_contexts): + if "image_aspect_ratio" in gen_kwargs.keys() and "image_aspect_ratio" not in self._config.__dict__: + # here we should pop it out of gen_kwargs so that it doesn't get passed to the model for next step of generation + self._config.image_aspect_ratio = gen_kwargs.pop("image_aspect_ratio") + eval_logger.info(f"Setting image aspect ratio: {self._config.image_aspect_ratio}") + + # encode, pad, and truncate contexts for this batch + if type(visual[0]) == PIL.Image.Image: # For image task + image_tensor = process_images(visual, self._image_processor, self._config) + if type(image_tensor) is list: + image_tensor = [_image.to(dtype=torch.float16, device=self.device) for _image in image_tensor] + else: + image_tensor = image_tensor.to(dtype=torch.float16, device=self.device) + + task_type = "image" + + elif type(visual[0]) == str: # For video task + image_tensor = [] + try: + if self.video_decode_backend == "decord": + frames = self.load_video(visual, self.max_frames_num) + elif self.video_decode_backend == "pyav": + frames = read_video_pyav(visual[0], num_frm=self.max_frames_num) + frames = self._image_processor.preprocess(frames, return_tensors="pt")["pixel_values"].half().cuda() + image_tensor.append(frames) + except Exception as e: + eval_logger.error(f"Error {e} in loading video") + image_tensor = None + + task_type = "video" + + if image_tensor is not None and len(image_tensor) != 0 and DEFAULT_IMAGE_TOKEN not in context: + """ + Three senarios: + 1. No image, and there for, no image token should be added. + 2. image token is already specified in the context, so we don't need to add it. + 3. image token is not specified in the context and there is image inputs, so we need to add it. In this case, we add the image token at the beginning of the context and add a new line. + 4. For video tasks, we could add a token or multiple tokens for each frame in the context. This depends on the training strategy and should balance in test to decide which is better + """ + if task_type == "image": + image_tokens = [DEFAULT_IMAGE_TOKEN] * len(visual) if isinstance(visual, list) else [DEFAULT_IMAGE_TOKEN] + elif task_type == "video": + image_tokens = [DEFAULT_IMAGE_TOKEN] * len(frames) if self.token_strategy == "multiple" else [DEFAULT_IMAGE_TOKEN] + + image_tokens = " ".join(image_tokens) + question = image_tokens + "\n" + context + else: + question = context + + # This is much safer for llama3, as we now have some object type in it + if "llama_3" in self.conv_template: + conv = copy.deepcopy(conv_templates[self.conv_template]) + else: + conv = conv_templates[self.conv_template].copy() + conv.append_message(conv.roles[0], question) + conv.append_message(conv.roles[1], None) + prompt_question = conv.get_prompt() + question_input.append(prompt_question) + + # preconfigure gen_kwargs with defaults + if "max_new_tokens" not in gen_kwargs: + gen_kwargs["max_new_tokens"] = 1024 + if "temperature" not in gen_kwargs: + gen_kwargs["temperature"] = 0 + if "do_sample" not in gen_kwargs: + gen_kwargs["do_sample"] = False + if "top_p" not in gen_kwargs: + gen_kwargs["top_p"] = None + if "num_beams" not in gen_kwargs: + gen_kwargs["num_beams"] = 1 + + input_ids_list = [tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt") for prompt in question_input] + pad_token_ids = self.tokenizer.pad_token_id if self.tokenizer.pad_token_id is not None else self.tokenizer.eos_token_id + input_ids = self.pad_sequence(input_ids_list, batch_first=True, padding_value=pad_token_ids).to(self.device) + attention_masks = input_ids.ne(pad_token_ids).to(self.device) + + if task_type == "image": + gen_kwargs["image_sizes"] = [batched_visuals[idx][0].size for idx in range(len(batched_visuals))] + elif task_type == "video": + stop_str = conv.sep if conv.sep_style != SeparatorStyle.TWO else conv.sep2 + keywords = [stop_str] + stopping_criteria = KeywordsStoppingCriteria(keywords, self.tokenizer, input_ids) + gen_kwargs["modalities"] = ["video"] + gen_kwargs["stopping_criteria"] = [stopping_criteria] + self._config.mm_spatial_pool_stride = self.mm_spatial_pool_stride + self._config.mm_spatial_pool_mode = self.mm_spatial_pool_mode + + # These steps are not in LLaVA's original code, but are necessary for generation to work + # TODO: attention to this major generation step... + if "image_aspect_ratio" in gen_kwargs.keys(): + gen_kwargs.pop("image_aspect_ratio") + try: + with torch.inference_mode(): + cont = self.model.generate(input_ids, attention_mask=attention_masks, pad_token_id=pad_token_ids, images=image_tensor, use_cache=self.use_cache, **gen_kwargs) + + text_outputs = self.tokenizer.batch_decode(cont, skip_special_tokens=True) + except Exception as e: + raise e + + text_outputs = [response.strip() for response in text_outputs] + res.extend(text_outputs) + self.cache_hook.add_partial("generate_until", (context, gen_kwargs), text_outputs) + pbar.update(1) + # reorder this group of results back to original unsorted form + res = re_ords.get_original(res) + + pbar.close() + return res From e6055890b8433591a3d468c935a6fc09ef4e7f7f Mon Sep 17 00:00:00 2001 From: choiszt Date: Thu, 20 Jun 2024 15:14:21 +0800 Subject: [PATCH 07/32] update ablation for videomme datasets --- lmms_eval/tasks/videomme/utils.py | 103 ++++++++++++++++-- lmms_eval/tasks/videomme/videomme.yaml | 0 .../tasks/videomme/videomme_w_subtitle.yaml | 44 ++++++++ 3 files changed, 135 insertions(+), 12 deletions(-) mode change 100755 => 100644 lmms_eval/tasks/videomme/utils.py mode change 100755 => 100644 lmms_eval/tasks/videomme/videomme.yaml create mode 100644 lmms_eval/tasks/videomme/videomme_w_subtitle.yaml diff --git a/lmms_eval/tasks/videomme/utils.py b/lmms_eval/tasks/videomme/utils.py old mode 100755 new mode 100644 index 4cd26715..ca821601 --- a/lmms_eval/tasks/videomme/utils.py +++ b/lmms_eval/tasks/videomme/utils.py @@ -10,6 +10,8 @@ import sys from typing import List, Dict, Optional, Union import re +import cv2 +import numpy as np eval_logger = logging.getLogger("lmms-eval") @@ -80,17 +82,55 @@ # cache_dir = os.path.join(hf_home, cache_dir) # base_cache_dir = config["dataset_kwargs"]["cache_dir"] base_cache_dir = os.path.expanduser(hf_home) - +with open(Path(__file__).parent / "videomme.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) +cache_name = yaml.safe_load("".join(safe_data))["dataset_kwargs"]["cache_dir"] + + +def parse_subtitle_time(time_str): + h, m, s_ms = time_str.split(':') + s, ms = s_ms.split(',') + return int(h) * 3600 + int(m) * 60 + int(s) + int(ms) / 1000 + +def load_subtitles(subtitle_path): + subtitles = {} + with open(subtitle_path, 'r', encoding='utf-8') as file: + content = file.read().split('\n\n') + for section in content: + if section.strip(): + lines = section.split('\n') + if len(lines) >= 3: + time_range = lines[1].split(' --> ') + start_time = parse_subtitle_time(time_range[0]) + end_time = parse_subtitle_time(time_range[1]) + text = ' '.join(line for line in lines[2:]) + subtitles[(start_time, end_time)] = text + return subtitles + +def convert_time_to_frame(time_in_seconds, fps): + return int(time_in_seconds * fps) + +def extract_subtitles(video_path, subtitle_path): + video = cv2.VideoCapture(video_path) + fps = video.get(cv2.CAP_PROP_FPS) + total_frame=int(video.get(cv2.CAP_PROP_FRAME_COUNT)) + subtitles = load_subtitles(subtitle_path) + + subtitle_frames = [] + for (start_time, end_time), text in subtitles.items(): + start_frame = convert_time_to_frame(start_time, fps) + end_frame = convert_time_to_frame(end_time, fps) + subtitle_frames.append((start_frame, end_frame, text)) + + return subtitle_frames,total_frame def videomme_doc_to_visual(doc): - with open(Path(__file__).parent / "videomme.yaml", "r") as f: - raw_data = f.readlines() - safe_data = [] - for i, line in enumerate(raw_data): - # remove function definition since yaml load cannot handle it - if "!function" not in line: - safe_data.append(line) - cache_name = yaml.safe_load("".join(safe_data))["dataset_kwargs"]["cache_dir"] + cache_dir = os.path.join(base_cache_dir, cache_name) video_path = doc["videoID"] + ".mp4" video_path = os.path.join(cache_dir, video_path) @@ -106,7 +146,6 @@ def videomme_doc_to_visual(doc): def videomme_doc_to_text(doc, model_specific_prompt_kwargs=None): - option_prompt="Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option." question = doc["question"] option = str(doc["options"]) @@ -126,11 +165,51 @@ def videomme_doc_to_text(doc, model_specific_prompt_kwargs=None): # The best answer is: def videomme_doc_to_text_subtitle(doc, model_specific_prompt_kwargs=None): + cache_dir = os.path.join(base_cache_dir, cache_name) + video_path = doc["videoID"] + ".mp4" + subtitle_path=os.path.join(cache_dir,"subtitle",doc["videoID"]+".srt") + video_path = os.path.join(cache_dir, video_path) + if os.path.exists(subtitle_path): #Denote have subtitle + subtitle=open(subtitle_path).readlines() + else: + subtitle="" subtitles_prompt="This video's subtitles are listed below: \n" - if doc["Subtitle"]=="": + if subtitle=="": subtitle="No subtitles available" else: - subtitle=doc["Subtitle"] + if "gemini_api_flag" in model_specific_prompt_kwargs: #specific for gemini_api + if model_specific_prompt_kwargs['gemini_api_flag']=="full subtitle": + textlist=[] + for ele in subtitle: + pattern = r'(.*?)' + matches = re.findall(pattern, ele) + if matches: + textlist.append(matches[0]) + subtitle_text="\n".join(textlist) + else: + if "frame_num" in model_specific_prompt_kwargs: + frame_num=model_specific_prompt_kwargs['frame_num'] + subtitle_by_frame,total_frame=extract_subtitles(video_path,subtitle_path) + uniform_sampled_frames = np.linspace(0, total_frame - 1, frame_num, dtype=int).tolist() + + subtitle_by_frame_idx=[] + for frame_idx in uniform_sampled_frames: + for idx,title in enumerate(subtitle_by_frame): + if frame_idx=title[0]: + subtitle_by_frame_idx.append(idx) + subtitle_by_frame_idx=list(set(subtitle_by_frame_idx)) + + textlist=[] + for idx in subtitle_by_frame_idx: + pattern = r'(.*?)' + raw_text=re.findall(pattern, subtitle_by_frame[idx][2]) + try: + textlist.append(raw_text[0]) + except: + continue + subtitle_text="\n".join(textlist) + subtitle=subtitle_text + option_prompt="Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option." question = doc["question"] option = str(doc["options"]) diff --git a/lmms_eval/tasks/videomme/videomme.yaml b/lmms_eval/tasks/videomme/videomme.yaml old mode 100755 new mode 100644 diff --git a/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml b/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml new file mode 100644 index 00000000..ac34cdf4 --- /dev/null +++ b/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml @@ -0,0 +1,44 @@ +dataset_path: lmms-lab/Video-MME +dataset_kwargs: + token: True + cache_dir: videomme + video: True + # From_YouTube: True +task: videomme_w_subtitle +test_split: test +output_type: generate_until +doc_to_visual: !function utils.videomme_doc_to_visual +doc_to_text: !function utils.videomme_doc_to_text_subtitle +doc_to_target: "answer" +generation_kwargs: + max_new_tokens: 16 + temperature: 0 + top_p: 1.0 + num_beams: 1 + do_sample: false +# The return value of process_results will be used by metrics +process_results: !function utils.videomme_process_results +# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results +metric_list: + - metric: videomme_percetion_score + aggregation: !function utils.videomme_aggregate_results + higher_is_better: true +model_specific_prompt_kwargs: + default: + frame_num: 32 + gemini_api: + gemini_api_flag: "full subtitle" + # gpt4v: + # pre_prompt: "" + # post_prompt: + # # qwen_vl: + # # pre_prompt: "" + # # post_prompt: " Answer:" + # # otterhd: + # # pre_prompt: "" + # # post_prompt: " Answer:" + # xcomposer2_4khd: + # pre_prompt: "[UNUSED_TOKEN_146]user\n" + # post_prompt: " Answer this question with A, B, C, or D.[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" +metadata: + - version: 0.0 From 1d282ca66e52c65f3cae95c5a25023b487cd52ac Mon Sep 17 00:00:00 2001 From: Shuai Liu <76559926+choiszt@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:38:39 +0800 Subject: [PATCH 08/32] Delete lmms_eval/tasks/videomme/videomme_subtitle.yaml --- .../tasks/videomme/videomme_subtitle.yaml | 43 ------------------- 1 file changed, 43 deletions(-) delete mode 100644 lmms_eval/tasks/videomme/videomme_subtitle.yaml diff --git a/lmms_eval/tasks/videomme/videomme_subtitle.yaml b/lmms_eval/tasks/videomme/videomme_subtitle.yaml deleted file mode 100644 index 04125766..00000000 --- a/lmms_eval/tasks/videomme/videomme_subtitle.yaml +++ /dev/null @@ -1,43 +0,0 @@ -dataset_path: lmms-lab/Video-MME -dataset_kwargs: - token: True - cache_dir: videomme - video: True - # From_YouTube: True -task: videomme_subtitle -test_split: test -output_type: generate_until -doc_to_visual: !function utils.videomme_doc_to_visual -doc_to_text: !function utils.videomme_doc_to_text_subtitle -doc_to_target: "answer" -generation_kwargs: - max_new_tokens: 16 - temperature: 0 - top_p: 1.0 - num_beams: 1 - do_sample: false -# The return value of process_results will be used by metrics -process_results: !function utils.videomme_process_results -# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results -metric_list: - - metric: videomme_percetion_score - aggregation: !function utils.videomme_aggregate_results - higher_is_better: true -model_specific_prompt_kwargs: - default: - pre_prompt: "" - post_prompt: "" - # gpt4v: - # pre_prompt: "" - # post_prompt: - # # qwen_vl: - # # pre_prompt: "" - # # post_prompt: " Answer:" - # # otterhd: - # # pre_prompt: "" - # # post_prompt: " Answer:" - # xcomposer2_4khd: - # pre_prompt: "[UNUSED_TOKEN_146]user\n" - # post_prompt: " Answer this question with A, B, C, or D.[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" -metadata: - - version: 0.0 From 63532aafc208ec62d0cdbcf8fdf56582cef68eeb Mon Sep 17 00:00:00 2001 From: Bo Li Date: Sun, 23 Jun 2024 06:24:02 +0000 Subject: [PATCH 09/32] Squashed commit of the following: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit commit 8f9d620fcd9d0a0742ee6bcf51ea63bd6b088a36 Author: Li Bo Date: Sun Jun 23 14:02:25 2024 +0800 Update pyproject.toml commit 6341b7c15ce9fb28eb06b067ddb299d6cf2e16c3 Merge: fce85f1b 903b042b Author: Li Bo Date: Sun Jun 23 14:02:02 2024 +0800 Merge pull request #125 from EvolvingLMMs-Lab/dev/interleave [Model] aligned llava-interleave model results on video tasks commit 903b042be016016d4ebeecb07701f3076a2d323c Author: kcz358 Date: Sat Jun 22 12:07:13 2024 +0000 Remove unnecessary lines for video llava commit d78ec86407b729a964906a8c2e50704b4bc74d06 Merge: ebe7217a fce85f1b Author: Li Bo Date: Sat Jun 22 13:57:31 2024 +0800 Merge branch 'main' into dev/interleave commit ebe7217a486c1e754e42c2cbdb834e09fbbcc9b0 Author: kcz358 Date: Sat Jun 22 02:57:08 2024 +0000 Delete unnecessary lines commit 120c474b056f9177c74e1fd9691d59e2f234b785 Author: kcz358 Date: Fri Jun 21 08:38:41 2024 +0000 Revise model registry for llava_hf and longva commit 7d6201f921088afd3f52a35076e3c6fcc9aa518c Author: kcz358 Date: Fri Jun 21 08:38:24 2024 +0000 Add longva commit 12f480699c71a12a24d4349d9b0681933201a3a6 Author: kcz358 Date: Fri Jun 21 08:35:39 2024 +0000 Remove unnecessary lines since use batched visuals now in llava commit 12cea76f1f0f14b1fd1007c9d39a9b0557368637 Author: Bo Li Date: Thu Jun 20 18:15:32 2024 +0000 chore: Add loguru for logging in lmms_eval package commit 8ef24740dd48a11c97eb627f2fff4aca107fef0d Author: Bo Li Date: Thu Jun 20 12:11:03 2024 +0000 chore: Remove unused models from lmms_eval package commit af38885fc2e066f5ea44388f33e07176f836fe28 Author: Bo Li Date: Thu Jun 20 12:07:09 2024 +0000 chore: Handle ImportError when importing models Handle the ImportError exception when importing models in the lmms_eval package. This change adds a try-except block to catch the ImportError and print an error message indicating the failed import. This will help with troubleshooting and identifying any issues with the model imports. commit fce85f1b03ff7043b29dee787c5d17a08dd2687a Merge: dbe63293 d94f83cb Author: Li Bo Date: Thu Jun 20 20:02:12 2024 +0800 Merge pull request #120 from EvolvingLMMs-Lab/pufanyi/hf_dataset_docs Add docs for datasets upload to HF commit dbe63293245a5141fdfd80bda7657c304f6bd32f Author: choiszt Date: Thu Jun 20 15:14:21 2024 +0800 update ablation for videomme datasets commit d94f83cb3f08b61a2c75cc4326e58792100605b3 Author: Li Bo Date: Thu Jun 20 13:30:59 2024 +0800 Update README.md commit cab8159ff35db330536c0b6dfb4b0a3b24142209 Author: Li Bo Date: Thu Jun 20 13:30:29 2024 +0800 Update README.md commit 45876652a877a8006b828f32f5cc4660629f9190 Author: kcz358 Date: Thu Jun 20 03:55:30 2024 +0000 Add llava_hf back to registry commit 3463651b8c54d36cd94169e3d376f5ed225a195a Author: kcz358 Date: Thu Jun 20 03:54:33 2024 +0000 Remove handling non-visual loop in llava commit cb0d3f49b72790b081f981e0e6147131542f7f68 Author: Fanyi Pu Date: Thu Jun 20 02:11:18 2024 +0800 update readme commit 813877bfe5ac590cdbe92dd74d18f83a2091f748 Author: Fanyi Pu Date: Wed Jun 19 15:37:52 2024 +0800 to sh script commit a14684b8557d5894976448a5c559ed7a66a6cf16 Author: Fanyi Pu Date: Wed Jun 19 15:37:04 2024 +0800 lint commit d0f8851d42ba31f5da2a7a65e91499db45174dbc Author: Fanyi Pu Date: Wed Jun 19 15:36:48 2024 +0800 small fix commit 63748e9718f287ad433afc90e340b5e17a89c1ed Author: Fanyi Pu Date: Wed Jun 19 15:36:43 2024 +0800 small fix commit 7f1159a1fe04cfb783dc31d4fbdef3bda0ce19e4 Author: Fanyi Pu Date: Wed Jun 19 15:35:05 2024 +0800 update preparation commit 19f9bd621c76a483ff98f8c7eb78f64753da683a Author: Fanyi Pu Date: Wed Jun 19 15:23:24 2024 +0800 docs commit ce6f889ba02d819979c7922f6336cf4f1f718f65 Author: Fanyi Pu Date: Wed Jun 19 15:04:16 2024 +0800 tutorial commit f513c520c2a3dad26d2b2ca5c4ed4db05a493c73 Author: Bo Li Date: Wed Jun 19 06:51:19 2024 +0000 chore: Update dependencies to fix potential risks and improve compatibility commit efb529552c5e4ba039a4cba8e9aa5cb7ba65bf90 Author: kcz358 Date: Wed Jun 19 10:25:58 2024 +0800 Release llava-wilder commit 742651fc9daf97e2f57831ed6e6e7ee7ead7d555 Author: Fanyi Pu Date: Wed Jun 19 07:44:26 2024 +0800 feat: Add support for auto downloading tar format videos commit 511b6259828212fcba954cdeb8cf90d6e5daabf8 Merge: 22a4958e 050b2c37 Author: Bo Li Date: Tue Jun 18 17:01:03 2024 +0000 Merge branch 'main' of https://github.com/EvolvingLMMs-Lab/lmms-eval commit 050b2c370017e9b97475dd6cf01fd051b5ca5c86 Merge: 74facb41 ef306512 Author: Li Bo Date: Tue Jun 18 13:13:38 2024 +0800 Merge pull request #114 from zjysteven/add-tinyllava add tinyllava commit ef306512e5135f76dffa383f600b8733015836e8 Author: Jingyang Zhang Date: Mon Jun 17 17:57:02 2024 -0400 fix typo commit 9bab67732a4238097725deddf867fb1946ffee40 Merge: dbfb2387 74facb41 Author: Jingyang Zhang Date: Sun Jun 16 10:56:05 2024 -0400 Merge branch 'EvolvingLMMs-Lab:main' into add-tinyllava commit 74facb41a826691dfce4458cf1d8659b34fc5bf5 Merge: 8ba192f9 d5df72de Author: Li Bo Date: Sun Jun 16 17:59:19 2024 +0800 Merge pull request #118 from teowu/main Fix the potential risk by PR #117 commit d5df72de2d03108d6b365818ecc3551ac9aa6302 Merge: 5bf59ed2 8ba192f9 Author: Teo (Timothy) Wu Haoning <38696372+teowu@users.noreply.github.com> Date: Sun Jun 16 15:32:13 2024 +0800 Merge branch 'EvolvingLMMs-Lab:main' into main commit 5bf59ed250da98a408a94e214a73caa400cba842 Author: teowu Date: Sun Jun 16 07:27:28 2024 +0000 fix #117, allow auto download with tar format videos commit 98b3955cb808e36303c030aea78eb037d1ec59ce Merge: a056f118 be9dada8 Author: teowu Date: Sun Jun 16 07:25:07 2024 +0000 Merge branch 'main' of https://github.com/teowu/lmms-eval into main commit a056f118704eccec86ce32ab86981ce4bc1e1deb Author: teowu Date: Sun Jun 16 07:23:54 2024 +0000 fix #117, allow auto download with tar format videos commit 8ba192f94edf5d99598983445d5faa4f8807c49f Merge: 7cc28907 be9dada8 Author: Li Bo Date: Sat Jun 15 17:30:59 2024 +0800 Merge pull request #117 from teowu/main LongVideoBench for LMMs-Eval commit be9dada8b4189c53c08e1674ab273242cf2f80a0 Merge: 62ea8ceb 7cc28907 Author: Teo (Timothy) Wu Haoning <38696372+teowu@users.noreply.github.com> Date: Sat Jun 15 16:39:20 2024 +0800 Merge pull request #1 from EvolvingLMMs-Lab/main Merge pull request #113 from teowu/main commit 62ea8ceb223ef2b51ebab2bcd50d5cf339c35cfe Author: teowu Date: Sat Jun 15 08:30:11 2024 +0000 LongVideoBench support: image LMMs (idefics2, phi3) and video LMMs (LLaVA-Next-Video-34B) commit 7cc28907edbb4eb58ee1398772a48110ea35dd96 Merge: 4bc7224d ea14cd4b Author: Li Bo Date: Sat Jun 15 14:10:22 2024 +0800 Merge pull request #113 from teowu/main Q-Bench, Q-Bench2, A-Bench commit dbfb23873979f789477f4797ee2d6071e0fd921e Author: Jingyang Date: Fri Jun 14 16:20:42 2024 -0400 add tinyllava commit ea14cd4b361f4c95b3665cbdb95bc51754090eb5 Author: teowu Date: Fri Jun 14 15:01:52 2024 +0000 Add qbench, qbench2, abench; fix phi3v as its current implementation does not support multi-image commit 4bc7224dcd27fe8b288bfc3fed4d7a9da9635658 Merge: 2797987f bf14cb85 Author: Li Bo Date: Fri Jun 14 02:14:43 2024 +0800 Merge pull request #111 from XinrunDu/main add II-Bench commit bf14cb8527b2b7ac438a36567a875168bc02d294 Author: XinrunDu Date: Thu Jun 13 09:37:02 2024 +0000 fix dataset_path commit 6248113f4e11a0ac396d31fa1b032a142fea8cb4 Author: XinrunDu Date: Thu Jun 13 09:32:06 2024 +0000 add II-Bench commit 2797987f5b88b87bd172714b678a75a1d8051826 Merge: 63d82f1f 66d4bb2d Author: Li Bo Date: Thu Jun 13 11:14:47 2024 +0800 Merge pull request #109 from EvolvingLMMs-Lab/pufanyi/update_version [Small Update] Update the version of LMMs-Eval commit 66d4bb2d9c9afbbdea40196d4ad80e214d0b14b6 Author: Fanyi Pu Date: Thu Jun 13 11:13:00 2024 +0800 update version commit 63d82f1ff11eb430d91a15d6788a1f0b4d596850 Author: Li Bo Date: Thu Jun 13 11:04:32 2024 +0800 Update README.md commit 44a33799671cb668f55366d5e5a4ddb051a3a1b4 Merge: 5ed00356 0ce46d08 Author: Li Bo Date: Thu Jun 13 04:00:12 2024 +0800 Merge pull request #105 from tianyu-z/main Include VCR commit 0ce46d088e473d12d63de44f17c67dceab25658c Author: Suyuchen Date: Wed Jun 12 15:56:34 2024 -0400 update README.md commit 46a88d8b0199ed44d2ff459fb372f2e006960cea Merge: 47b13b9b 5ed00356 Author: Suyuchen Date: Wed Jun 12 15:50:26 2024 -0400 merged readme.md commit 47b13b9b320d36ac53b3622557e31239f7c22621 Author: Suyuchen Date: Wed Jun 12 15:30:52 2024 -0400 update aggregation function for vcr_wiki commit 5ed00356676cf5d0ff056cf27d1b519b8e303ff7 Author: Li Bo Date: Thu Jun 13 03:21:42 2024 +0800 Update README.md commit ed8806839db5988ced672bd162b7b046edb4863a Author: Li Bo Date: Thu Jun 13 03:13:59 2024 +0800 Update README.md commit fea3806026932a6e2bd6e538bcc413e33abdf245 Merge: d99a24ab 05dc8e85 Author: Li Bo Date: Thu Jun 13 03:11:49 2024 +0800 Merge pull request #108 from EvolvingLMMs-Lab/internal_main_dev [Upgrade to v0.2] Embracing Video Evaluations with LMMs-Eval commit 05dc8e853eab7c6bc782a1e2662d2efe7422f767 Author: Bo Li Date: Wed Jun 12 15:56:04 2024 +0000 chore: Update lmms-eval to support video evaluations for LLaVA models commit cbeee20bc4ffb510a2b23d96cdaf4077be7c2a9e Author: Bo Li Date: Wed Jun 12 15:50:30 2024 +0000 chore: Update lmms-eval to support video evaluations for LLaVA models commit f00d5498b69dd4f7e54c907ac906abc7c128f000 Author: Bo Li Date: Wed Jun 12 15:46:33 2024 +0000 Update image alignment in README.md commit 34156335db74cef9e3f0915d7172fd6b22456c15 Author: Bo Li Date: Wed Jun 12 15:43:16 2024 +0000 Update llava conv_template in lmms_eval/models/llava.py commit 50575a950736bc8fc1e191310314cbb5fdff5720 Author: Bo Li Date: Wed Jun 12 15:39:03 2024 +0000 chore: Update lmms-eval to support video evaluations for LLaVA models commit c9b2252fb8a15dd04252af5e6b4613855afd6ada Author: Bo Li Date: Wed Jun 12 15:33:48 2024 +0000 Bump version to 0.2.0.dev0 commit 465bd4205e8097e9c037b24a3ed08dd6a7694efa Merge: e43bd840 d99a24ab Author: Bo Li Date: Wed Jun 12 15:04:25 2024 +0000 Merge branch 'main' of https://github.com/EvolvingLMMs-Lab/lmms-eval into internal_main_dev commit e43bd840b63eb499856e36d9d2ba45c924abcead Author: Bo Li Date: Wed Jun 12 14:54:06 2024 +0000 chore: Remove unnecessary files and code related to live_bench and sft_eval tasks commit d99a24abd06df10d07e5a4d0ad5030613f92f2e7 Merge: 374590be a66003be Author: Li Bo Date: Wed Jun 12 19:45:57 2024 +0800 Merge pull request #107 from AtsuMiyai/new_task/upd_update update gpt-3.5-turbo version commit a66003befe4175824a1be6ed59f5f5b88c15f792 Author: AtsuMiyai Date: Wed Jun 12 17:05:17 2024 +0900 update gpt-3.5-turbo version commit ee91f272985f32eeb9cd6faa41afdd8eb49cac30 Author: AtsuMiyai Date: Wed Jun 12 16:50:53 2024 +0900 update gpt-3.5-turbo version commit 326b9694fc77398592b8caf3ba0bc2e2bb903813 Author: tianyu-z Date: Mon Jun 10 20:07:40 2024 -0400 include std and confidence interval commit cd050d4a721d01a2ace0cd030cf7f8dc67eb8c4d Author: Suyuchen Date: Mon Jun 10 18:49:47 2024 -0400 update vcr_wiki tasks in README.md commit 205721e0aad76dde30255e56149bbed121883356 Author: Suyuchen Date: Mon Jun 10 18:43:15 2024 -0400 update vcr_wiki tasks commit db8e718b502469e8536ee359c5559de87635ffc7 Author: tianyu-z Date: Mon Jun 10 16:13:58 2024 -0400 include the try-except logic for spacy commit 427dabb790118f538b64e4e5bf6a7aab9689b3d9 Author: Suyuchen Date: Mon Jun 10 15:51:05 2024 -0400 add crossed_text to vcr_wiki output commit 043b483eb55f7be4fea75c9bc0b9b03d251b109b Author: tianyu-z Date: Mon Jun 10 15:47:00 2024 -0400 switch logic commit e1f04db8f58dd10591fde335ea13f74cda7c79bd Author: tianyu-z Date: Mon Jun 10 02:38:21 2024 -0400 modify the form of VCR commit 96e8d9867c9549ab7490f4b12cfeb6a06238e0aa Author: tianyu-z Date: Mon Jun 10 00:10:30 2024 -0400 init include vcr commit 374590be62f988a76cf6704cfe394cd8ae7d4cb6 Merge: 504685e2 cb3b9ce7 Author: Kaichen Zhang - NTU Date: Fri Jun 7 20:25:48 2024 +0800 Merge pull request #101 from Gumpest/main Update conbench in README commit 504685e20b17659b913cf46f3012c16bf429e09d Author: Li Bo Date: Thu Jun 6 15:42:15 2024 +0800 Update README.md commit cb3b9ce71411da862ff01342a9122a3c656ffbd1 Merge: c9793b38 67b64ea4 Author: Yuan Zhang <56063339+Gumpest@users.noreply.github.com> Date: Thu Jun 6 11:22:24 2024 +0800 Merge branch 'EvolvingLMMs-Lab:main' into main commit c9793b3883714f254a700230b7bee781d6110e73 Author: Yuan Zhang Date: Thu Jun 6 11:21:05 2024 +0800 update README commit 67b64ea44a5a39d96c7a196a8a8345a7486bd912 Merge: 8ee7848a 5fd68451 Author: Li Bo Date: Wed Jun 5 23:12:58 2024 +0800 Merge pull request #100 from Gumpest/main add Conbench commit 5fd684515c55ef643726c1b6c720c7cbd2183ba1 Author: Yuan Zhang Date: Wed Jun 5 21:52:31 2024 +0800 add conbench commit 8ee7848aaa6383aa1f919c3f21199c81db3fff89 Merge: 747e1978 6fefaf7c Author: Li Bo Date: Tue Jun 4 17:09:33 2024 +0800 Merge pull request #95 from AtsuMiyai/new_task/upd add MM-UPD commit 747e19782996065cdce7157ee8c5e15beb5b6c59 Merge: 4854a34d 05843072 Author: Li Bo Date: Tue Jun 4 17:09:04 2024 +0800 Merge pull request #97 from CaraJ7/update Add MathVerse in README.md commit 6fefaf7cea504e35583ee7217449da290295a7a4 Author: AtsuMiyai Date: Tue Jun 4 17:36:39 2024 +0900 update utils.py for leaderboard submission commit 5f4fe360def1c48ea0cb1da6409d192784882308 Author: AtsuMiyai Date: Sun Jun 2 23:28:27 2024 +0900 slightly change query_prompt for the reproduction commit 05843072d608b970bcada1cd0db65a3c80864060 Author: CaraJ7 <1350074492@qq.com> Date: Sun Jun 2 17:05:28 2024 +0800 Add MathVerse in README.md commit 0581ab3cfb362e2024988b46fbbb00324f1233c9 Author: AtsuMiyai Date: Fri May 31 16:09:45 2024 +0900 merge model_specific_prompt_kwargs and dataset_name into each task yaml commit 4854a34d4d37efb5e201f2691ecdb054590cf20b Author: Pu Fanyi Date: Sat May 4 19:23:39 2024 +0800 Group MMMU images into one image (#83) * update * update font * Add matplotlib.font_manager import in utils.py * Refactor font handling in add_order_label function in utils.py * group mmmu --------- Co-authored-by: Li Bo commit d224794c49520f4d28a31862cf977198cd6cbc5e Author: AtsuMiyai Date: Wed May 29 15:15:59 2024 +0900 add upd commit 453e7936424220f02b99517059ca71babfbe5f5a Author: AtsuMiyai Date: Wed May 29 15:03:30 2024 +0900 add upd commit 909edd6769ddcf8a546be4fdd129416687516878 Author: AtsuMiyai Date: Wed May 29 12:52:21 2024 +0900 add upd commit 7c1ac9706cafc4801fa4da181d2f610b7838c7b8 Author: AtsuMiyai Date: Wed May 29 12:50:32 2024 +0900 add upd commit 811301c5280ddd74986645086f026ab730c8848c Author: AtsuMiyai Date: Wed May 29 12:46:58 2024 +0900 add upd commit 71401bafd1d515f704f86ab4817a758542bc4672 Author: AtsuMiyai Date: Wed May 29 12:41:21 2024 +0900 add upd commit 24dc435908d921e9f1a5706e3141b12e5d838d18 Author: Bo Li Date: Mon May 27 10:17:32 2024 +0000 fix compatibility issue of older version llava commit 616edf43731415b35f0f5e97748ed2e017a2891d Author: Bo Li Date: Mon May 27 09:32:26 2024 +0000 [Fix] import issues of multilingual llava and olympiadbench commit 4c5a99e21a63fb0ee1c7d15546d18066e1d9894b Merge: 45c05b2b b05c3e22 Author: Li Bo Date: Mon May 27 14:19:53 2024 +0800 Merge pull request #87 from vfragoso/vifragos/phi3v Adding microsoft/Phi-3-vision-128k-instruct model. commit b05c3e222fabd308dd7af4e04c1c6a0812962fe6 Author: Victor Fragoso Date: Fri May 24 16:36:37 2024 +0000 Adding documentation of Phi3v class. commit c2008971308ce8168d57c24d00b725832f099244 Author: Victor Fragoso Date: Fri May 24 16:25:02 2024 +0000 Adding prompt arguments for Phi3v on MathVista-TestMini commit 7f9fb6bcc6cd24a7b8011b8753d0ea98cc2451fd Author: Victor Fragoso Date: Fri May 24 13:24:16 2024 +0000 Adding Phi3v model. commit 45c05b2b2bece76e06849a52a0d034f9c0ac2367 Author: kcz358 Date: Thu May 23 03:47:36 2024 +0000 Set printing info for llava_hf to debug level commit 53f013ed8278776551ca992562253387cc9968d2 Author: kcz358 Date: Thu May 23 03:41:39 2024 +0000 Fix pope random name in pope full commit 22520a95f13334b75eee0cf0387151067a6bf516 Author: kcz358 Date: Thu May 23 03:41:14 2024 +0000 Add separated pope tasks by category commit d1eefb1565014b47287ffa6b350229062f8f602f Author: kcz358 Date: Thu May 9 08:36:02 2024 +0000 Update gitignore commit b2b4dbd2dc13432c79208db35abf7f55c97f1790 Author: kcz358 Date: Mon May 20 07:45:11 2024 +0000 Comment out Spice in caption task so that don't need to download stanford nlp model commit 662f05ce4c62a46a83f819d3a5925a9bd20059b5 Author: kcz358 Date: Mon May 20 03:13:13 2024 +0000 Comment out parse result in xcomposer commit 09329322916bfbb604d72ddaf50441a0947f8805 Author: kcz358 Date: Thu May 16 03:55:39 2024 +0000 Fix instructblip qformer size mismatch and multi-images problem commit 557a6a3b15e07e506bc05e2cc76ff6a2f8c93964 Author: kcz358 Date: Thu May 16 03:11:41 2024 +0000 Remove redundant code in fuyu commit 6aeb5504e74ed1980b53700d8e4d4dcf7d1b38fc Author: kcz358 Date: Thu May 16 01:45:24 2024 +0000 Fix idefics2 llava in the wild bugs commit aea80e6a71f716951353e1e5d68380243396b4d6 Author: kcz358 Date: Wed May 15 11:07:35 2024 +0000 Better task list_with_num commit 3c12a080d66b9c38f615b961befca7c30f82fa39 Author: Li Bo Date: Sat May 18 02:35:52 2024 +0800 Update LICENSE commit 82317a635a4978b32e095a06cc295d0ae23661c2 Author: Li Bo Date: Sat May 18 02:29:09 2024 +0800 Update LICENSE commit a8bba1cdb51061a0d27bf9a98cca1505b5c58ea5 Author: Li Bo Date: Sat May 18 02:28:03 2024 +0800 Create LICENSE commit caa5893b5fd2c1d32c72b97f371ccd9a8d9ec3a0 Merge: c0944486 423b0060 Author: Li Bo Date: Mon May 13 11:45:26 2024 +0800 Merge pull request #73 from EvolvingLMMs-Lab/kc/qwen_vl_api [Feat] Add qwen vl api commit c09444860362a136f17641f8b2a1f91c2bbc3715 Author: kcz358 Date: Sat May 11 06:11:19 2024 +0000 Fix llava_hf image tokens number issue commit 64f07e497f53e5bcbe9e8fb5830cc7a1daaf7ff1 Author: kcz358 Date: Thu May 9 02:04:10 2024 +0000 Fix endless warning for llava_hf generation commit 8aaa828108da8514dd9cd23a9d6d83a8b67f2d65 Author: Bo Li Date: Thu May 2 06:13:56 2024 +0000 Add model_name parameter to Llava constructor commit 7847dc4d8efe60605102414bb071b1da9851228e Author: kcz358 Date: Tue May 7 03:15:59 2024 +0000 Parse result for llava_hf 1.6 commit 3e56b4f92db39a2ce92903b0c43a34f1d14d59ec Author: kcz358 Date: Tue May 7 03:09:56 2024 +0000 Fix llava_hf generation for 1.6 commit fa3ff92b07ea5aaa633a2039818c310744f84d07 Author: kcz358 Date: Mon May 6 08:32:57 2024 +0000 Fix llava conv template for llama3 commit 423b00606aa77fd6b324c19e3d480b73ab852db6 Author: kcz358 Date: Sun May 5 07:54:52 2024 +0000 Add qwen vl api commit b7fd7a9f7aa3c0e1e50374047dfffc46a7462b90 Merge: 986139a9 c5a130b6 Author: Li Bo Date: Sun May 5 13:19:48 2024 +0800 Merge pull request #59 from EvolvingLMMs-Lab/add_idefics2 add idefics2 commit 986139a9a31154679bdea029b09639f84712db27 Merge: b46239ca 8d3526c0 Author: Li Bo Date: Fri May 3 01:18:18 2024 +0800 Merge pull request #36 from cocoshe/main [Fix] repr llava doc commit b46239cabab7b545ec99d9eae6c851e531b18374 Merge: bc69a744 373265f2 Author: Li Bo Date: Fri May 3 01:17:34 2024 +0800 Merge pull request #56 from gagan3012/main Multilingual LLava bench commit bc69a744d2cffeb06eba62e843bcc7869e27613a Merge: eef3aeb6 626e8a91 Author: Li Bo Date: Fri May 3 01:12:14 2024 +0800 Merge pull request #70 from hunterheiden/hsh/new_task/WebSRC Bugfix: WebSRC should be token-level F1 NOT character-level commit 626e8a91a4af2dd5dd774fc130cc2f4d74b2bc37 Author: Hunter Heidenreich Date: Thu May 2 09:31:03 2024 -0400 Bugfix: WebSRC should be token-level F1 NOT character-level commit eef3aeb6ab589bb1d5045af5b5c1984a69402d19 Merge: c4e9dd9f 9bca4413 Author: Li Bo Date: Thu May 2 14:38:17 2024 +0800 Merge pull request #69 from hunterheiden/hsh/new_task/WebSRC [New Task] WebSRC (multimodal Q&A on web screenshots) commit 9bca441376325173128e5c50087f068e519c48da Author: Hunter Heidenreich Date: Wed May 1 11:07:29 2024 -0400 Add code to enable compilation of submission for WebSRC test split commit 7687495b1ed552eeba088cb9ad5aaf1170e7fff9 Author: Hunter Heidenreich Date: Wed May 1 10:47:32 2024 -0400 Draft and validate websrc eval on dev split commit 4eebd3e5d7ab3b8c3116eea57318db72d2ce32bb Author: Hunter Heidenreich Date: Wed May 1 10:46:54 2024 -0400 Update main README with new task names commit 35fe80b67656114a8824eb59574089663bdc4c9a Author: Hunter Heidenreich Date: Wed May 1 10:46:20 2024 -0400 Draft README for WebSRC commit 955bd0635cc6c14a96ad869f1002e6dbefdc5071 Author: Hunter Heidenreich Date: Tue Apr 30 10:16:21 2024 -0400 Init webSRC commit c4e9dd9f6e40e8586587c4a75987aa109a37f14b Merge: d8a3a99f 319afccb Author: Li Bo Date: Fri Apr 26 14:37:22 2024 +0800 Merge pull request #63 from hunterheiden/hsh/new_task/screenspot New Task: ScreenSpot - Grounding (REC) and instruction generation (REG) on screens commit 319afccbe713ddf40a8a6fa28501e64c0ad34725 Author: Hunter Heidenreich Date: Thu Apr 25 11:44:34 2024 -0400 slight update commit 2f3811ca1bbad6a441016b05fde09a571900fca8 Author: Hunter Heidenreich Date: Thu Apr 25 11:41:04 2024 -0400 Add README file specific to ScreenSpot commit 28962cbe83631ec5d6481aaea4907a7c96fec848 Author: Hunter Heidenreich Date: Wed Apr 24 11:52:33 2024 -0400 Update README to reflect new tasks commit e457cfb4f2d6869e8367d6d5b03ad25ee4acc363 Author: Hunter Heidenreich Date: Tue Apr 23 18:33:16 2024 -0400 Create ScreenSpot on clean branch commit d8a3a99ff6142fe101fa3c188cc7f29593c44345 Merge: 3dcd0158 ed171293 Author: Li Bo Date: Tue Apr 23 10:34:03 2024 +0800 Merge pull request #61 from tupini07/patch-1 Fix typo in Qwen-VL that was causing "reference before assignment" commit ed171293d1e82075c5c6a847fc91ecbfd45cf89f Author: Andrea Tupini Date: Mon Apr 22 14:56:41 2024 -0600 refactor query construction for clarity commit cd874201c46f32a2903ddffae85f9db73e14adfd Author: Andrea Tupini Date: Mon Apr 22 14:54:29 2024 -0600 convert contexts to list if necessary and remove unnecessary construction of `questions` commit 85573674e90c8d505312ba18c5102e0051255078 Author: Andrea Tupini Date: Mon Apr 22 14:47:33 2024 -0600 Fix typo in qwen_vl that was causing "reference before assignment" commit 3dcd01582b719555bcf8eb25d91cc5e42abd2c5f Merge: 95df9fee 743673a1 Author: Li Bo Date: Sat Apr 20 22:03:16 2024 +0800 Merge pull request #60 from CaraJ7/main Add MathVerse commit 743673a1419b6e729e18c96f148745cc739d4c71 Merge: c1a54721 95df9fee Author: CaraJ7 <1350074492@qq.com> Date: Sat Apr 20 21:49:02 2024 +0800 Merge branch 'main' of https://github.com/EvolvingLMMs-Lab/lmms-eval commit c1a5472135c3b84061b64d997ab50dda0412ba4f Author: CaraJ7 <1350074492@qq.com> Date: Sat Apr 20 21:45:34 2024 +0800 Add MathVerse commit 373265f24e7a89cbd49ab724a2e388cc0930be78 Author: Gagan Bhatia <49101362+gagan3012@users.noreply.github.com> Date: Fri Apr 12 17:21:39 2024 -0700 Add files via upload commit d8530514a5ef9378d2adeaceb228b60ec25a6718 Author: Gagan Bhatia <49101362+gagan3012@users.noreply.github.com> Date: Fri Apr 12 17:19:49 2024 -0700 Create README.md commit 22a4958e993463edff352ac033014f9a485706cc Author: Bo Li Date: Thu Apr 4 17:12:43 2024 +0000 [WIP] adding mmbench dev evaluation (#75) * WIP * Update GPT evaluation model name and sys prompt * 🛠️ Scale accuracy to percentage The accuracy value is now multiplied by 100 in the aggregation function to represent it as a percentage. Regarding the evaluation process, `math` module importation and refactoring reduce progress log verbosity by logging every 100 evaluations instead of 10. It prevents potential logging overflow. Handling of NaN values is added to ensure 'default_value' is set in case of missing data, avoiding errors in split, category, and l2-category assignments. Finally, reporting of categorical and l2-categorical accuracies is streamlined through a new `calculate_hit_rates` function, improving code readability and maintenance. Issue refs: #1427, #1533 * Update GPT evaluation model name and API configuration * Refactor MMBench_Evaluator class to handle missing columns * Add print statements for detailed results in MMBench-CN(CC), MMBench-CN(Dev), and MMBench-EN(Dev) evaluations * Refactor MMBench-CN and MMBench-EN evaluation functions * 🔄 Refactor result processing and logging logic - Simplified the result processing functions across different utility modules (`cc_utils.py`, `cn_utils.py`, `en_utils.py`) to unify the handling of multiple-choice options. Now, all options ("A" to "E") are dynamically added to the result data, and default to "nan" if not provided in the document. - Removed redundant keys directly from the process results dict creation to avoid clutter and align with the new dynamic addition of options. - In `mmbench_evals.py`, removed the unnecessary check for all splits being 'dev' and streamlined the evaluation loop by eliminating the progress bar (tqdm) for a cleaner log output. - Commented-out code and verbose logging during evaluation, which may have interfered with performance, has been removed for a more efficient and less intrusive logging experience. This cleanup reduces redundancy in the codebase and improves evaluation performance. Refs #2045 --------- Co-authored-by: Bo Li (cherry picked from commit a19278c2ea6ddcbca64d3cc7f4efec7fe5775121) commit 8d3526c0869f0ad7747ff6bb02441140792b461c Author: cocoshe <1228759711@qq.com> Date: Thu Mar 28 13:38:36 2024 +0800 fix doc --- docs/README.md | 3 +- lmms_eval/__main__.py | 29 +- lmms_eval/api/metrics.py | 5 +- lmms_eval/api/model.py | 4 +- lmms_eval/api/registry.py | 3 +- lmms_eval/api/task.py | 4 +- lmms_eval/evaluator.py | 6 +- lmms_eval/logging_utils.py | 7 +- lmms_eval/models/__init__.py | 14 +- lmms_eval/models/batch_gpt4.py | 7 +- lmms_eval/models/claude.py | 10 +- lmms_eval/models/from_log.py | 3 +- lmms_eval/models/fuyu.py | 5 +- lmms_eval/models/gemini_api.py | 4 +- lmms_eval/models/gpt4v.py | 4 +- lmms_eval/models/idefics2.py | 4 +- lmms_eval/models/instructblip.py | 5 +- lmms_eval/models/internvl.py | 3 +- lmms_eval/models/llama_vid.py | 3 +- lmms_eval/models/llava.py | 16 +- lmms_eval/models/llava_hf.py | 4 +- lmms_eval/models/llava_sglang.py | 4 +- lmms_eval/models/llava_vid.py | 33 +- .../models/{llava_onevision.py => longva.py} | 45 +-- lmms_eval/models/minicpm_v.py | 4 +- lmms_eval/models/model_utils/load_video.py | 1 - .../model_utils/qwen/qwen_generate_utils.py | 3 +- lmms_eval/models/mplug_owl_video.py | 7 +- .../configuration_mplug_owl.py | 4 +- .../mplug_owl_video/modeling_mplug_owl.py | 9 +- .../mplug_owl_video/tokenization_mplug_owl.py | 4 +- lmms_eval/models/phi3v.py | 3 +- lmms_eval/models/qwen_vl.py | 4 +- lmms_eval/models/qwen_vl_api.py | 4 +- lmms_eval/models/reka.py | 9 +- lmms_eval/models/tinyllava.py | 7 +- lmms_eval/models/video_chatgpt.py | 11 +- lmms_eval/models/video_chatgpt/utils.py | 117 ------- lmms_eval/models/video_llava.py | 15 +- lmms_eval/models/xcomposer2_4KHD.py | 4 +- lmms_eval/models/xcomposer2_4khd.py | 3 +- lmms_eval/tasks/__init__.py | 10 +- lmms_eval/tasks/activitynetqa/utils.py | 5 +- lmms_eval/tasks/cmmmu/utils.py | 4 +- lmms_eval/tasks/coco_cap/utils.py | 3 +- lmms_eval/tasks/conbench/utils.py | 3 +- lmms_eval/tasks/cvrr/utils.py | 5 +- lmms_eval/tasks/docvqa/utils.py | 4 +- lmms_eval/tasks/egoschema/utils.py | 4 +- lmms_eval/tasks/ferret/utils.py | 5 +- lmms_eval/tasks/flickr30k/utils.py | 3 +- .../tasks/hallusion_bench/evaluate_hb.py | 4 +- lmms_eval/tasks/hallusion_bench/utils.py | 4 +- lmms_eval/tasks/ii_bench/utils.py | 5 +- lmms_eval/tasks/infovqa/utils.py | 5 +- .../tasks/internal_eval/d170_cn_utils.py | 4 +- .../tasks/internal_eval/d170_en_utils.py | 4 +- .../tasks/internal_eval/dc100_en_utils.py | 4 +- .../tasks/internal_eval/dc200_cn_utils.py | 4 +- lmms_eval/tasks/llava-bench-coco/utils.py | 5 +- lmms_eval/tasks/llava-in-the-wild/utils.py | 5 +- .../tasks/llava_wilder/llava_wilder_full.yaml | 14 - .../llava_wilder/llava_wilder_medium.yaml | 14 - .../llava_wilder/llava_wilder_small.yaml | 5 +- lmms_eval/tasks/llava_wilder/utils.py | 61 +--- lmms_eval/tasks/longvideobench/utils.py | 2 - lmms_eval/tasks/mathverse/mathverse_evals.py | 4 +- lmms_eval/tasks/mathverse/utils.py | 3 +- lmms_eval/tasks/mathvista/mathvista_evals.py | 4 +- lmms_eval/tasks/mathvista/utils.py | 3 +- lmms_eval/tasks/mmbench/cc_utils.py | 3 +- lmms_eval/tasks/mmbench/cn_utils.py | 3 +- lmms_eval/tasks/mmbench/en_utils.py | 3 +- lmms_eval/tasks/mmbench/mmbench_evals.py | 3 +- lmms_eval/tasks/mme/utils.py | 3 +- lmms_eval/tasks/mmmu/utils.py | 9 +- lmms_eval/tasks/mmmu/utils_group_img.py | 6 +- lmms_eval/tasks/mmupd/mmupd_evals.py | 4 +- lmms_eval/tasks/mmupd/utils.py | 3 +- lmms_eval/tasks/mmvet/utils.py | 4 +- lmms_eval/tasks/multidocvqa/utils.py | 6 +- .../utils.py | 4 +- lmms_eval/tasks/nextqa/utils.py | 4 +- lmms_eval/tasks/nocaps/utils.py | 3 +- lmms_eval/tasks/ocrbench/utils.py | 4 +- lmms_eval/tasks/ok_vqa/utils.py | 4 +- lmms_eval/tasks/olympiadbench/cn_utils.py | 4 +- lmms_eval/tasks/olympiadbench/en_utils.py | 4 +- .../olympiadbench/olympiadbench_evals.py | 3 +- lmms_eval/tasks/perceptiontest/test/utils.py | 4 +- lmms_eval/tasks/perceptiontest/val/utils.py | 4 +- lmms_eval/tasks/qbench/utils.py | 1 - lmms_eval/tasks/refcoco+/utils.py | 3 +- lmms_eval/tasks/refcoco/utils.py | 3 +- lmms_eval/tasks/refcocog/utils.py | 3 +- lmms_eval/tasks/screenspot/utils.py | 3 +- lmms_eval/tasks/screenspot/utils_rec.py | 4 +- lmms_eval/tasks/stvqa/utils.py | 5 +- lmms_eval/tasks/synthdog/donut_evaluator.py | 4 +- lmms_eval/tasks/synthdog/utils.py | 3 +- lmms_eval/tasks/tempcompass/utils.py | 6 +- lmms_eval/tasks/textcaps/utils.py | 3 +- lmms_eval/tasks/textvqa/utils.py | 4 +- lmms_eval/tasks/vatex/utils.py | 4 +- lmms_eval/tasks/vcr_wiki/utils.py | 4 +- .../tasks/video_detail_description/utils.py | 4 +- lmms_eval/tasks/videochatgpt/utils.py | 4 +- lmms_eval/tasks/videomme/utils.py | 86 +++--- lmms_eval/tasks/vizwiz_vqa/utils.py | 4 +- lmms_eval/tasks/vqav2/utils.py | 4 +- lmms_eval/tasks/websrc/utils.py | 6 +- lmms_eval/tasks/worldqa/utils.py | 4 +- .../tasks/worldqa/worldqa_mc_evaluator.py | 3 +- lmms_eval/tasks/youcook2/utils.py | 4 +- lmms_eval/utils.py | 30 +- pyproject.toml | 6 +- tools/make_image_hf_dataset.ipynb | 292 ++++++++++++++++++ ...aset.ipynb => make_video_hf_dataset.ipynb} | 20 -- 118 files changed, 579 insertions(+), 657 deletions(-) rename lmms_eval/models/{llava_onevision.py => longva.py} (92%) mode change 100755 => 100644 delete mode 100755 lmms_eval/tasks/llava_wilder/llava_wilder_full.yaml delete mode 100644 lmms_eval/tasks/llava_wilder/llava_wilder_medium.yaml create mode 100755 tools/make_image_hf_dataset.ipynb rename tools/{make_hf_dataset.ipynb => make_video_hf_dataset.ipynb} (93%) diff --git a/docs/README.md b/docs/README.md index 020e351b..2c912363 100755 --- a/docs/README.md +++ b/docs/README.md @@ -8,4 +8,5 @@ Majority of this documentation is adapted from [lm-eval-harness](https://github. * To learn about the command line flags, see the [commands](commands.md) * To learn how to add a new moddel, see the [Model Guide](model_guide.md). -* For a crash course on adding new tasks to the library, see our [Task Guide](task_guide.md). \ No newline at end of file +* For a crash course on adding new tasks to the library, see our [Task Guide](task_guide.md). +* If you need to upload your datasets into correct HF format with viewer supported, please refer to [tools](https://github.com/EvolvingLMMs-Lab/lmms-eval/tree/pufanyi/hf_dataset_docs/tools) diff --git a/lmms_eval/__main__.py b/lmms_eval/__main__.py index 2949705f..96be8f06 100755 --- a/lmms_eval/__main__.py +++ b/lmms_eval/__main__.py @@ -1,12 +1,10 @@ import os import yaml import sys -import copy import json -import logging + import traceback import argparse -import torch import numpy as np import datetime @@ -25,10 +23,7 @@ from lmms_eval.tasks import initialize_tasks, include_path, get_task_dict from lmms_eval.api.registry import ALL_TASKS from lmms_eval.logging_utils import WandbLogger -from lmms_eval.utils import PathFormatter - - -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def _handle_non_serializable(o): @@ -166,9 +161,10 @@ def cli_evaluate(args: Union[argparse.Namespace, None] = None) -> None: print("└───────────────────────────────────────────────────────────────────────────────┘") sys.exit(1) - set_loggers(args) - eval_logger = logging.getLogger("lmms-eval") - eval_logger.setLevel(getattr(logging, f"{args.verbosity}")) + # reset logger + eval_logger.remove() + eval_logger.add(sys.stdout, colorize=True, level=args.verbosity) + eval_logger.add(sys.stderr, level=args.verbosity) eval_logger.info(f"Verbosity set to {args.verbosity}") os.environ["TOKENIZERS_PARALLELISM"] = "false" @@ -228,11 +224,6 @@ def cli_evaluate(args: Union[argparse.Namespace, None] = None) -> None: def cli_evaluate_single(args: Union[argparse.Namespace, None] = None) -> None: - eval_logger = logging.getLogger("lmms-eval") - eval_logger.setLevel(getattr(logging, f"{args.verbosity}")) - eval_logger.info(f"Verbosity set to {args.verbosity}") - os.environ["TOKENIZERS_PARALLELISM"] = "false" - initialize_tasks(args.verbosity) if args.predict_only: @@ -350,13 +341,5 @@ def print_results(args, results): print(evaluator.make_table(results, "groups")) -def set_loggers(args): - eval_logger = logging.getLogger("lmms-eval") - ch = logging.StreamHandler() - formatter = PathFormatter("%(asctime)s [%(pathname)s:%(lineno)d] %(levelname)s %(message)s", "%m-%d %H:%M:%S", timezone=args.timezone) - ch.setFormatter(formatter) - eval_logger.addHandler(ch) - - if __name__ == "__main__": cli_evaluate() diff --git a/lmms_eval/api/metrics.py b/lmms_eval/api/metrics.py index c0e5c505..157ed2df 100755 --- a/lmms_eval/api/metrics.py +++ b/lmms_eval/api/metrics.py @@ -9,10 +9,7 @@ import torch from lmms_eval.api.registry import register_metric, register_aggregation - -import logging - -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Register Aggregations First diff --git a/lmms_eval/api/model.py b/lmms_eval/api/model.py index 3a2e2d97..e6eeaba6 100755 --- a/lmms_eval/api/model.py +++ b/lmms_eval/api/model.py @@ -8,9 +8,9 @@ from lmms_eval.api.instance import Instance from tqdm import tqdm from lmms_eval import utils -import logging -eval_logger = logging.getLogger("lmms-eval") + +from loguru import logger as eval_logger T = TypeVar("T", bound="lmms") diff --git a/lmms_eval/api/registry.py b/lmms_eval/api/registry.py index 253341db..6b911997 100755 --- a/lmms_eval/api/registry.py +++ b/lmms_eval/api/registry.py @@ -1,10 +1,9 @@ from lmms_eval.api.model import lmms from typing import Callable, Dict -import logging import evaluate as hf_evaluate -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger MODEL_REGISTRY = {} diff --git a/lmms_eval/api/task.py b/lmms_eval/api/task.py index 3e9040e6..5560745c 100755 --- a/lmms_eval/api/task.py +++ b/lmms_eval/api/task.py @@ -2,7 +2,7 @@ import ast import itertools import json -import logging + import os import random import re @@ -37,7 +37,7 @@ ) from lmms_eval.filters import build_filter_ensemble -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # HuggingfaceM4/NoCaps contains truncated image in test split # Include this inside code block to avoid error diff --git a/lmms_eval/evaluator.py b/lmms_eval/evaluator.py index 8a4c49d8..0104b01a 100755 --- a/lmms_eval/evaluator.py +++ b/lmms_eval/evaluator.py @@ -7,7 +7,7 @@ from tqdm import tqdm import torch -import logging + import numpy as np from datasets import Image, Sequence @@ -17,8 +17,6 @@ import lmms_eval.api.metrics import lmms_eval.api.registry -import re - from lmms_eval.utils import ( positional_deprecated, run_task_tests, @@ -28,7 +26,7 @@ simple_parse_args_string, ) -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger @positional_deprecated diff --git a/lmms_eval/logging_utils.py b/lmms_eval/logging_utils.py index 6107d21b..4d7e0910 100755 --- a/lmms_eval/logging_utils.py +++ b/lmms_eval/logging_utils.py @@ -1,6 +1,6 @@ # Code mostly from: https://github.com/EleutherAI/lm-evaluation-harness/pull/1339, credit to: https://github.com/ayulockin import copy -import logging + import re import os import json @@ -9,13 +9,10 @@ import numpy as np from datetime import datetime from typing import Any, Dict, List, Literal, Tuple, Union - from packaging.version import Version - from lmms_eval import utils import tenacity - -logger = logging.getLogger(__name__) +from loguru import logger try: import wandb diff --git a/lmms_eval/models/__init__.py b/lmms_eval/models/__init__.py index 9b19447d..a7f2fb39 100755 --- a/lmms_eval/models/__init__.py +++ b/lmms_eval/models/__init__.py @@ -1,7 +1,8 @@ -import os -import hf_transfer +from loguru import logger +import sys -os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1" +logger.remove() +logger.add(sys.stdout, level="WARNING") AVAILABLE_MODELS = { "llava": "Llava", @@ -22,18 +23,19 @@ "idefics2": "Idefics2", "internvl": "InternVLChat", "gemini_api": "GeminiAPI", - "gemini_model": "GeminiModel", "reka": "Reka", - "llava_onevision": "Llava_OneVision", "from_log": "FromLog", "mplug_owl_video": "mplug_Owl", "phi3v": "Phi3v", "tinyllava": "TinyLlava", "llava_onevision": "Llava_OneVision", + "llava_hf": "LlavaHf", + "longva": "LongVA", } for model_name, model_class in AVAILABLE_MODELS.items(): try: exec(f"from .{model_name} import {model_class}") - except ImportError: + except ImportError as e: + # logger.warning(f"Failed to import {model_class} from {model_name}: {e}") pass diff --git a/lmms_eval/models/batch_gpt4.py b/lmms_eval/models/batch_gpt4.py index 54bfa149..8f4c2220 100755 --- a/lmms_eval/models/batch_gpt4.py +++ b/lmms_eval/models/batch_gpt4.py @@ -2,7 +2,7 @@ from copy import deepcopy from io import BytesIO import base64 -import logging + import os import time import json @@ -20,14 +20,13 @@ from lmms_eval.api.instance import Instance from lmms_eval.api.model import lmms from lmms_eval.api.registry import register_model -from lmms_eval import utils +from loguru import logger as eval_logger # Conditional imports try: from decord import VideoReader, cpu except ImportError: - eval_logger = logging.getLogger("lmms-eval") - eval_logger.info("Decord is not installed. Video input will not be supported.") + eval_logger.warning("Decord is not installed. Video input will not be supported.") # Constants and global configurations API_TYPE = os.getenv("API_TYPE", "openai") diff --git a/lmms_eval/models/claude.py b/lmms_eval/models/claude.py index c629ca06..4c967e88 100644 --- a/lmms_eval/models/claude.py +++ b/lmms_eval/models/claude.py @@ -5,28 +5,28 @@ import json from typing import List, Tuple, Union from tqdm import tqdm -import requests as url_requests import time -import logging from lmms_eval.api.instance import Instance from lmms_eval.api.model import lmms from lmms_eval.api.registry import register_model -from lmms_eval import utils from accelerate import Accelerator, DistributedType from PIL import Image NUM_SECONDS_TO_SLEEP = 5 -eval_logger = logging.getLogger("lmms-eval") + +from loguru import logger + +eval_logger = logger try: import anthropic from decord import VideoReader, cpu import numpy as np except Exception as e: - eval_logger.error(f"Error importing claude: {e}") + eval_logger.warning(f"Error importing claude: {e}") API_URL = os.getenv("ANTHROPIC_API_URL", "https://api.anthropic.com/v1/complete") API_KEY = os.getenv("ANTHROPIC_API_KEY", "YOUR_API_KEY") diff --git a/lmms_eval/models/from_log.py b/lmms_eval/models/from_log.py index 4c573e0f..c774a086 100644 --- a/lmms_eval/models/from_log.py +++ b/lmms_eval/models/from_log.py @@ -1,4 +1,3 @@ -import logging import json import os import re @@ -11,7 +10,7 @@ from lmms_eval.api.instance import Instance from accelerate import Accelerator, DistributedType -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger @register_model("from_log") diff --git a/lmms_eval/models/fuyu.py b/lmms_eval/models/fuyu.py index 5960d69e..fa108358 100755 --- a/lmms_eval/models/fuyu.py +++ b/lmms_eval/models/fuyu.py @@ -15,11 +15,8 @@ from tqdm import tqdm from accelerate import Accelerator, DistributedType from accelerate.state import AcceleratorState -import logging -import logging - -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger @register_model("fuyu") diff --git a/lmms_eval/models/gemini_api.py b/lmms_eval/models/gemini_api.py index 0b2be05e..4a43c9af 100644 --- a/lmms_eval/models/gemini_api.py +++ b/lmms_eval/models/gemini_api.py @@ -1,7 +1,7 @@ import io import os import time -import logging + import json from PIL import Image @@ -12,7 +12,7 @@ from lmms_eval.api.instance import Instance from accelerate import Accelerator, DistributedType -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: import google.generativeai as genai diff --git a/lmms_eval/models/gpt4v.py b/lmms_eval/models/gpt4v.py index d28c1b00..729e73f7 100755 --- a/lmms_eval/models/gpt4v.py +++ b/lmms_eval/models/gpt4v.py @@ -7,7 +7,7 @@ from tqdm import tqdm import requests as url_requests import time -import logging + from lmms_eval.api.instance import Instance from lmms_eval.api.model import lmms @@ -26,7 +26,7 @@ API_TYPE = os.getenv("API_TYPE", "openai") NUM_SECONDS_TO_SLEEP = 30 -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger if API_TYPE == "openai": API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") diff --git a/lmms_eval/models/idefics2.py b/lmms_eval/models/idefics2.py index 608d694b..090cdee5 100644 --- a/lmms_eval/models/idefics2.py +++ b/lmms_eval/models/idefics2.py @@ -1,5 +1,5 @@ import torch -import logging + from tqdm import tqdm from lmms_eval import utils from lmms_eval.api.instance import Instance @@ -14,7 +14,7 @@ warnings.filterwarnings("ignore") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger DEFAULT_IMAGE_TOKEN = "" try: diff --git a/lmms_eval/models/instructblip.py b/lmms_eval/models/instructblip.py index 3ca068ed..c33ab122 100755 --- a/lmms_eval/models/instructblip.py +++ b/lmms_eval/models/instructblip.py @@ -1,5 +1,5 @@ import torch -import logging + import copy from tqdm import tqdm from lmms_eval import utils @@ -20,8 +20,7 @@ warnings.filterwarnings("ignore") -eval_logger = logging.getLogger("lmms-eval") -transformers.logging.set_verbosity_error() +from loguru import logger as eval_logger @register_model("instructblip") diff --git a/lmms_eval/models/internvl.py b/lmms_eval/models/internvl.py index d808081a..6238d7fc 100644 --- a/lmms_eval/models/internvl.py +++ b/lmms_eval/models/internvl.py @@ -1,4 +1,3 @@ -import logging import os from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs from accelerate.state import AcceleratorState @@ -26,7 +25,7 @@ import sys sys.path.append(os.path.join(str(wd), "InternVL", "internvl_chat")) -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger if not hasattr(eval_logger, "internvl_warning_logged"): eval_logger.internvl_warning_logged = False diff --git a/lmms_eval/models/llama_vid.py b/lmms_eval/models/llama_vid.py index 69627fe8..e62b4ef7 100644 --- a/lmms_eval/models/llama_vid.py +++ b/lmms_eval/models/llama_vid.py @@ -1,4 +1,3 @@ -import logging import os from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs from accelerate.state import AcceleratorState @@ -22,7 +21,7 @@ import subprocess -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: from llamavid.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN diff --git a/lmms_eval/models/llava.py b/lmms_eval/models/llava.py index b49cf55b..6de4c8f8 100755 --- a/lmms_eval/models/llava.py +++ b/lmms_eval/models/llava.py @@ -2,7 +2,7 @@ torch.backends.cuda.matmul.allow_tf32 = True -import logging + import copy from tqdm import tqdm from datetime import timedelta @@ -21,7 +21,7 @@ warnings.filterwarnings("ignore") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: from llava.model.builder import load_pretrained_model @@ -358,18 +358,6 @@ def _collate(x): prompt_question = conv.get_prompt() question_input.append(prompt_question) - # The above for loop has bugs. When there is no visuals, e.g. pure text, - # there will be no for loop execute resulting in an empty question_input (because no visuals) - # Scenario 1 won't even be execute - if len(flattened_visuals) == 0: - for context in contexts: - question = context - conv = conv_templates[self.conv_template].copy() - conv.append_message(conv.roles[0], question) - conv.append_message(conv.roles[1], None) - prompt_question = conv.get_prompt() - question_input.append(prompt_question) - # input_ids = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) # preconfigure gen_kwargs with defaults gen_kwargs["image_sizes"] = [flattened_visuals[idx].size for idx in range(len(flattened_visuals))] diff --git a/lmms_eval/models/llava_hf.py b/lmms_eval/models/llava_hf.py index de0fb9ec..547daa29 100644 --- a/lmms_eval/models/llava_hf.py +++ b/lmms_eval/models/llava_hf.py @@ -1,5 +1,5 @@ import torch -import logging + from tqdm import tqdm from lmms_eval import utils from lmms_eval.api.instance import Instance @@ -14,7 +14,7 @@ warnings.filterwarnings("ignore") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger DEFAULT_IMAGE_TOKEN = "" diff --git a/lmms_eval/models/llava_sglang.py b/lmms_eval/models/llava_sglang.py index 47c67288..d473e4c1 100644 --- a/lmms_eval/models/llava_sglang.py +++ b/lmms_eval/models/llava_sglang.py @@ -3,7 +3,7 @@ torch.backends.cuda.matmul.allow_tf32 = True -import logging + from tqdm import tqdm from datetime import timedelta @@ -19,7 +19,7 @@ from concurrent.futures import ThreadPoolExecutor, as_completed import tempfile -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: import sglang as sgl diff --git a/lmms_eval/models/llava_vid.py b/lmms_eval/models/llava_vid.py index cbbe7863..675c396e 100755 --- a/lmms_eval/models/llava_vid.py +++ b/lmms_eval/models/llava_vid.py @@ -1,4 +1,3 @@ -import logging from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs from accelerate.state import AcceleratorState from typing import List, Optional, Union, Tuple @@ -16,31 +15,22 @@ from lmms_eval.api.registry import register_model from lmms_eval.models.model_utils.load_video import read_video_pyav -eval_logger = logging.getLogger("lmms-eval") -import sys +from loguru import logger as eval_logger -sys.path.append("llava-video") try: - from llavavid.model.language_model.llava_llama import LlavaConfig - - # from llavavid.model.language_model.llava_qwen import LlavaQwenConfig from llavavid.model.builder import load_pretrained_model from llavavid.mm_utils import tokenizer_image_token, get_model_name_from_path, KeywordsStoppingCriteria - from llavavid.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN + from llavavid.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX from llavavid.conversation import conv_templates, SeparatorStyle - - # AutoConfig.register("llava_qwen", LlavaQwenConfig) - AutoConfig.register("llava_llama", LlavaConfig) - + from llavavid.mm_utils import tokenizer_image_token_qwen_merge, preprocess_qwen, preprocess_llama3 except ImportError: eval_logger.debug("LLaVA-Video is not installed. Please install LLaVA-Video to use this model.") -try: - from llavavid.model.language_model.llava_qwen import LlavaQwenConfig +from llavavid.model.language_model.llava_qwen import LlavaQwenConfig +from llavavid.model.language_model.llava_llama import LlavaConfig - AutoConfig.register("llava_qwen", LlavaQwenConfig) -except: - eval_logger.debug("") +AutoConfig.register("llava_qwen", LlavaQwenConfig) +AutoConfig.register("llava_llama", LlavaConfig) @register_model("llavavid") @@ -361,7 +351,7 @@ def generate_until(self, requests) -> List[str]: if self.model.config.mm_use_im_start_end: qs = DEFAULT_IM_START_TOKEN + DEFAULT_IMAGE_TOKEN + DEFAULT_IM_END_TOKEN + "\n" + qs else: - qs = DEFAULT_IMAGE_TOKEN + "\n" + qs + qs = DEFAULT_IMAGE_TOKEN * len(videos) + "\n" + qs # This is much safer for llama3, as we now have some object type in it if "llama_3" in self.conv_template: @@ -379,11 +369,6 @@ def generate_until(self, requests) -> List[str]: pad_token_ids = 0 # lmms-lab/llama3-llava-8b is trained on this pad token id. You may need to customize this for other models. attention_masks = input_ids.ne(pad_token_ids).long().cuda() - # input_ids_list = [tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt") for prompt in question_input] - # pad_token_ids = self.tokenizer.pad_token_id if self.tokenizer.pad_token_id is not None else self.tokenizer.eos_token_id - # input_ids = self.pad_sequence(input_ids_list, batch_first=True, padding_value=pad_token_ids).to(self.device) - # attention_masks = input_ids.ne(pad_token_ids).to(self.device) - stop_str = conv.sep if conv.sep_style != SeparatorStyle.TWO else conv.sep2 keywords = [stop_str] stopping_criteria = KeywordsStoppingCriteria(keywords, self.tokenizer, input_ids) @@ -393,7 +378,7 @@ def generate_until(self, requests) -> List[str]: if "max_new_tokens" not in gen_kwargs: gen_kwargs["max_new_tokens"] = 1024 if "temperature" not in gen_kwargs: - gen_kwargs["temperature"] = 0.2 + gen_kwargs["temperature"] = 0 if "top_p" not in gen_kwargs: gen_kwargs["top_p"] = None if "num_beams" not in gen_kwargs: diff --git a/lmms_eval/models/llava_onevision.py b/lmms_eval/models/longva.py old mode 100755 new mode 100644 similarity index 92% rename from lmms_eval/models/llava_onevision.py rename to lmms_eval/models/longva.py index a755b0c9..c5bf6861 --- a/lmms_eval/models/llava_onevision.py +++ b/lmms_eval/models/longva.py @@ -30,22 +30,14 @@ from lmms_eval.models.model_utils.load_video import read_video_pyav try: - from llava.model.builder import load_pretrained_model - from llava.mm_utils import get_model_name_from_path, process_images, tokenizer_image_token, KeywordsStoppingCriteria - from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX - from llava.conversation import conv_templates, SeparatorStyle + from longva.model.builder import load_pretrained_model + from longva.mm_utils import get_model_name_from_path, process_images, tokenizer_image_token, KeywordsStoppingCriteria + from longva.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX + from longva.conversation import conv_templates, SeparatorStyle except Exception as e: - eval_logger.debug("LLaVA is not installed. Please install LLaVA to use this model.\nError: %s" % e) + eval_logger.debug("longva is not installed. Please install longva to use this model.\nError: %s" % e) -try: - from llavavid.model.language_model.llava_qwen import LlavaQwenConfig - from llavavid.model.language_model.llava_llama import LlavaConfig - - AutoConfig.register("llava_qwen", LlavaQwenConfig) - AutoConfig.register("llava_llama", LlavaConfig) -except Exception as e: - eval_logger.debug("") # inference implementation for attention, can be "sdpa", "eager", "flash_attention_2". Seems FA2 is not effective during inference: https://discuss.huggingface.co/t/flash-attention-has-no-effect-on-inference/73453/5 # if is_flash_attn_2_available: # best_fit_attn_implementation = "flash_attention_2" # flash_attn has a bug that says: ERROR Error query and key must have the same dtype in generating @@ -56,15 +48,11 @@ best_fit_attn_implementation = "eager" -@register_model("llava_onevision") -class Llava_OneVision(lmms): - """ - Llava Model - """ - +@register_model("longva") +class LongVA(lmms): def __init__( self, - pretrained: str = "liuhaotian/llava-v1.5-7b", + pretrained: str = "lmms-lab/LongVA-7B", truncation: Optional[bool] = True, device: Optional[str] = "cuda:0", batch_size: Optional[Union[int, str]] = 1, @@ -121,18 +109,6 @@ def __init__( overwrite_config["mm_spatial_pool_mode"] = self.mm_spatial_pool_mode cfg_pretrained = AutoConfig.from_pretrained(self.pretrained) - if cfg_pretrained.architectures[0] == "LlavaLlamaForCausalLM": # Ugly code, only used in vicuna that needs ROPE - if "224" in cfg_pretrained.mm_vision_tower: - least_token_number = self.max_frames_num * (16 // self.mm_spatial_pool_stride) ** 2 + 1000 - else: - least_token_number = self.max_frames_num * (24 // self.mm_spatial_pool_stride) ** 2 + 1000 - - scaling_factor = math.ceil(least_token_number / 4096) - if scaling_factor >= 2: - overwrite_config["rope_scaling"] = {"factor": float(scaling_factor), "type": "linear"} - overwrite_config["max_sequence_length"] = 4096 * scaling_factor - overwrite_config["tokenizer_model_max_length"] = 4096 * scaling_factor - llava_model_args["overwrite_config"] = overwrite_config try: # Try to load the model with the multimodal argument @@ -364,6 +340,7 @@ def _collate(x): task = batched_task[0] split = batched_split[0] batched_visuals = [batched_doc_to_visual[0](self.task_dict[task][split][ids]) for ids in batched_doc_id] # [B, N] + flattened_visuals = self.flatten(batched_visuals) # [B*N] assert len(batched_visuals) == 1 # we assume all gen kwargs in the batch are the same @@ -451,7 +428,7 @@ def _collate(x): attention_masks = input_ids.ne(pad_token_ids).to(self.device) if task_type == "image": - gen_kwargs["image_sizes"] = [batched_visuals[idx][0].size for idx in range(len(batched_visuals))] + gen_kwargs["image_sizes"] = [flattened_visuals[idx].size for idx in range(len(flattened_visuals))] elif task_type == "video": stop_str = conv.sep if conv.sep_style != SeparatorStyle.TWO else conv.sep2 keywords = [stop_str] @@ -464,7 +441,7 @@ def _collate(x): # These steps are not in LLaVA's original code, but are necessary for generation to work # TODO: attention to this major generation step... if "image_aspect_ratio" in gen_kwargs.keys(): - gen_kwargs.pop("image_aspect_ratio") + gen_kwargs.pop("image_aspect_ratio") try: with torch.inference_mode(): cont = self.model.generate(input_ids, attention_mask=attention_masks, pad_token_id=pad_token_ids, images=image_tensor, use_cache=self.use_cache, **gen_kwargs) diff --git a/lmms_eval/models/minicpm_v.py b/lmms_eval/models/minicpm_v.py index e951a3df..9a6e0215 100755 --- a/lmms_eval/models/minicpm_v.py +++ b/lmms_eval/models/minicpm_v.py @@ -1,5 +1,5 @@ import torch -import logging + from tqdm import tqdm from lmms_eval import utils from lmms_eval.api.instance import Instance @@ -15,7 +15,7 @@ warnings.filterwarnings("ignore") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger @register_model("minicpm_v") diff --git a/lmms_eval/models/model_utils/load_video.py b/lmms_eval/models/model_utils/load_video.py index 789039e7..25be5fa4 100644 --- a/lmms_eval/models/model_utils/load_video.py +++ b/lmms_eval/models/model_utils/load_video.py @@ -29,7 +29,6 @@ def record_video_length_packet(container): def read_video_pyav(video_path, num_frm=8): - if "webm" not in video_path and "mkv" not in video_path: # For mp4, we try loading with stream first try: diff --git a/lmms_eval/models/model_utils/qwen/qwen_generate_utils.py b/lmms_eval/models/model_utils/qwen/qwen_generate_utils.py index 7e7dd97c..3717665a 100755 --- a/lmms_eval/models/model_utils/qwen/qwen_generate_utils.py +++ b/lmms_eval/models/model_utils/qwen/qwen_generate_utils.py @@ -15,10 +15,9 @@ import torch import torch.nn.functional as F from transformers import PreTrainedTokenizer -from transformers import logging from transformers.generation import LogitsProcessor -logger = logging.get_logger(__name__) +from loguru import logger # Types. HistoryType = List[Tuple[str, str]] diff --git a/lmms_eval/models/mplug_owl_video.py b/lmms_eval/models/mplug_owl_video.py index bfc52d23..1055f4dd 100644 --- a/lmms_eval/models/mplug_owl_video.py +++ b/lmms_eval/models/mplug_owl_video.py @@ -1,4 +1,3 @@ -import logging from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs from accelerate.state import AcceleratorState from typing import List, Optional, Union, Tuple @@ -7,17 +6,17 @@ from tqdm import tqdm from datetime import timedelta -from lmms_eval import utils from lmms_eval.api.instance import Instance from lmms_eval.api.model import lmms from lmms_eval.api.registry import register_model -from lmms_eval.utils import stop_sequences_criteria from lmms_eval.models.mplug_owl_video.modeling_mplug_owl import MplugOwlForConditionalGeneration from lmms_eval.models.mplug_owl_video.processing_mplug_owl import MplugOwlImageProcessor, MplugOwlProcessor -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger + +eval_logger = logger @register_model("mplug_owl_video") diff --git a/lmms_eval/models/mplug_owl_video/configuration_mplug_owl.py b/lmms_eval/models/mplug_owl_video/configuration_mplug_owl.py index 6b5d458d..ce5b777b 100644 --- a/lmms_eval/models/mplug_owl_video/configuration_mplug_owl.py +++ b/lmms_eval/models/mplug_owl_video/configuration_mplug_owl.py @@ -19,11 +19,9 @@ from transformers.configuration_utils import PretrainedConfig from transformers.models.auto.modeling_auto import MODEL_FOR_CAUSAL_LM_MAPPING_NAMES -from transformers.utils import logging from transformers.models.auto import CONFIG_MAPPING - -logger = logging.get_logger(__name__) +from loguru import logger MPLUG_OWL_PRETRAINED_CONFIG_ARCHIVE_MAP = { "MAGAer13/mplug-owl-llama-7b": "https://huggingface.co/MAGAer13/mplug-owl-llama-7b/resolve/main/config.json", diff --git a/lmms_eval/models/mplug_owl_video/modeling_mplug_owl.py b/lmms_eval/models/mplug_owl_video/modeling_mplug_owl.py index 6c5b7592..07bf9f0c 100644 --- a/lmms_eval/models/mplug_owl_video/modeling_mplug_owl.py +++ b/lmms_eval/models/mplug_owl_video/modeling_mplug_owl.py @@ -14,9 +14,9 @@ # limitations under the License. """ PyTorch MplugOwl model. """ -import logging import math from typing import Any, Optional, Tuple, Union +from loguru import logger try: from flash_attn.flash_attn_interface import flash_attn_unpadded_func @@ -24,7 +24,8 @@ flash_attn_func = flash_attn_unpadded_func except: flash_attn_func = None - print("Error importing flash_attn in mplug_owl. Please install flash-attn first.") + logger.warning("Error importing flash_attn in mplug_owl. Please install flash-attn first.") + import math from dataclasses import dataclass from typing import Any, Optional, Tuple, Union @@ -41,15 +42,11 @@ ModelOutput, add_start_docstrings, add_start_docstrings_to_model_forward, - logging, replace_return_docstrings, ) from transformers.models.auto import AutoModelForCausalLM from .configuration_mplug_owl import MplugOwlConfig, MplugOwlVisionConfig, MplugOwlVisualAbstractorConfig - -logger = logging.get_logger(__name__) - _CHECKPOINT_FOR_DOC = "MAGAer13/mplug-owl-llama-7b" _CONFIG_FOR_DOC = "MplugOwlConfig" diff --git a/lmms_eval/models/mplug_owl_video/tokenization_mplug_owl.py b/lmms_eval/models/mplug_owl_video/tokenization_mplug_owl.py index 22384b44..bd7f42f1 100644 --- a/lmms_eval/models/mplug_owl_video/tokenization_mplug_owl.py +++ b/lmms_eval/models/mplug_owl_video/tokenization_mplug_owl.py @@ -14,11 +14,9 @@ # limitations under the License. """Tokenization classes for MplugOwl.""" -from transformers.utils import logging from transformers.models.llama.tokenization_llama import LlamaTokenizer - -logger = logging.get_logger(__name__) +from loguru import logger VOCAB_FILES_NAMES = {"vocab_file": "vocab.txt"} diff --git a/lmms_eval/models/phi3v.py b/lmms_eval/models/phi3v.py index faa59ef5..ab1e838d 100644 --- a/lmms_eval/models/phi3v.py +++ b/lmms_eval/models/phi3v.py @@ -1,5 +1,4 @@ import torch -import logging from accelerate import Accelerator, DistributedType from lmms_eval import utils @@ -11,7 +10,7 @@ from transformers import AutoProcessor from typing import List, Optional, Tuple, Union -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger @register_model("phi3v") diff --git a/lmms_eval/models/qwen_vl.py b/lmms_eval/models/qwen_vl.py index e55ad7c9..dff301d3 100755 --- a/lmms_eval/models/qwen_vl.py +++ b/lmms_eval/models/qwen_vl.py @@ -1,5 +1,5 @@ import torch -import logging + from tqdm import tqdm from lmms_eval import utils from lmms_eval.api.instance import Instance @@ -16,7 +16,7 @@ warnings.simplefilter("ignore", category=DeprecationWarning) warnings.filterwarnings("ignore") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger from transformers import AutoModelForCausalLM, AutoTokenizer diff --git a/lmms_eval/models/qwen_vl_api.py b/lmms_eval/models/qwen_vl_api.py index af7f2713..8a0ccc65 100644 --- a/lmms_eval/models/qwen_vl_api.py +++ b/lmms_eval/models/qwen_vl_api.py @@ -6,7 +6,7 @@ from tqdm import tqdm import requests as url_requests import time -import logging + from lmms_eval.api.instance import Instance from lmms_eval.api.model import lmms @@ -16,7 +16,7 @@ from PIL import Image NUM_SECONDS_TO_SLEEP = 5 -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: import dashscope diff --git a/lmms_eval/models/reka.py b/lmms_eval/models/reka.py index d5e85d5d..bc461cad 100644 --- a/lmms_eval/models/reka.py +++ b/lmms_eval/models/reka.py @@ -8,7 +8,7 @@ from tqdm import tqdm import requests as url_requests import time -import logging + import json from lmms_eval.api.instance import Instance @@ -17,14 +17,17 @@ from accelerate import Accelerator, DistributedType NUM_SECONDS_TO_SLEEP = 30 -eval_logger = logging.getLogger("lmms-eval") + +from loguru import logger + +eval_logger = logger try: from reka.client import Reka as RekaClient from reka import ChatMessage from decord import VideoReader, cpu except Exception as e: - eval_logger.error(f"Error importing reka: {e}") + eval_logger.warning(f"Error importing reka: {e}") @register_model("reka") diff --git a/lmms_eval/models/tinyllava.py b/lmms_eval/models/tinyllava.py index e2ca4bdf..1cb6d281 100755 --- a/lmms_eval/models/tinyllava.py +++ b/lmms_eval/models/tinyllava.py @@ -2,7 +2,6 @@ torch.backends.cuda.matmul.allow_tf32 = True -import logging import copy from tqdm import tqdm from datetime import timedelta @@ -21,12 +20,10 @@ warnings.filterwarnings("ignore") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: - from tinyllava.model import load_pretrained_model from tinyllava.data import ImagePreprocess, TextPreprocess - from tinyllava.utils.constants import DEFAULT_IMAGE_TOKEN from tinyllava.utils.message import Message except Exception as e: eval_logger.debug("TinyLLaVA_Factory is not installed. Please install TinyLLaVA_Factory to use this model.\nError: %s" % e) @@ -368,8 +365,6 @@ def _collate(x): attention_masks = input_ids.ne(pad_token_ids).to(self.device) # These steps are not in LLaVA's original code, but are necessary for generation to work # TODO: attention to this major generation step... - if "image_aspect_ratio" in gen_kwargs.keys(): - gen_kwargs.pop("image_aspect_ratio") try: cont = self.model.generate( input_ids, diff --git a/lmms_eval/models/video_chatgpt.py b/lmms_eval/models/video_chatgpt.py index a724cd98..089a2c5d 100644 --- a/lmms_eval/models/video_chatgpt.py +++ b/lmms_eval/models/video_chatgpt.py @@ -1,5 +1,4 @@ import os -from lmms_eval import utils from lmms_eval.api.instance import Instance from lmms_eval.api.model import lmms from lmms_eval.api.registry import register_model @@ -11,21 +10,21 @@ from PIL import Image from datetime import timedelta -import logging from typing import List, Tuple, Optional, Union from tqdm import tqdm +from loguru import logger + +eval_logger = logger + try: from lmms_eval.models.video_chatgpt.eval.model_utils import load_video, initialize_model from lmms_eval.models.video_chatgpt.inference import video_chatgpt_infer, video_chatgpt_infer_ppl, get_spatio_temporal_features_torch except ImportError: - eval_logger = logging.getLogger("lmms-eval") - eval_logger.info("Failed to import video_chatgpt modules") + eval_logger.warning("Failed to import video_chatgpt modules") from lmms_eval.models.model_utils.load_video import read_video_pyav -eval_logger = logging.getLogger("lmms-eval") - @register_model("video_chatgpt") class VideoChatGPT(lmms): diff --git a/lmms_eval/models/video_chatgpt/utils.py b/lmms_eval/models/video_chatgpt/utils.py index eb6fa78e..1c8b4c3f 100644 --- a/lmms_eval/models/video_chatgpt/utils.py +++ b/lmms_eval/models/video_chatgpt/utils.py @@ -1,94 +1,3 @@ -import logging -import logging.handlers -import os -import sys - -import requests - -from lmms_eval.models.video_chatgpt.constants import LOGDIR - -server_error_msg = "**NETWORK ERROR DUE TO HIGH TRAFFIC. PLEASE REGENERATE OR REFRESH THIS PAGE.**" -moderation_msg = "YOUR INPUT VIOLATES OUR CONTENT MODERATION GUIDELINES. PLEASE TRY AGAIN." - -handler = None - - -def build_logger(logger_name, logger_filename): - global handler - - formatter = logging.Formatter( - fmt="%(asctime)s | %(levelname)s | %(name)s | %(message)s", - datefmt="%Y-%m-%d %H:%M:%S", - ) - - # Set the format of root handlers - if not logging.getLogger().handlers: - logging.basicConfig(level=logging.INFO) - logging.getLogger().handlers[0].setFormatter(formatter) - - # Redirect stdout and stderr to loggers - stdout_logger = logging.getLogger("stdout") - stdout_logger.setLevel(logging.INFO) - sl = StreamToLogger(stdout_logger, logging.INFO) - sys.stdout = sl - - stderr_logger = logging.getLogger("stderr") - stderr_logger.setLevel(logging.ERROR) - sl = StreamToLogger(stderr_logger, logging.ERROR) - sys.stderr = sl - - # Get logger - logger = logging.getLogger(logger_name) - logger.setLevel(logging.INFO) - - # Add a file handler for all loggers - if handler is None: - os.makedirs(LOGDIR, exist_ok=True) - filename = os.path.join(LOGDIR, logger_filename) - handler = logging.handlers.TimedRotatingFileHandler(filename, when="D", utc=True) - handler.setFormatter(formatter) - - for name, item in logging.root.manager.loggerDict.items(): - if isinstance(item, logging.Logger): - item.addHandler(handler) - - return logger - - -class StreamToLogger(object): - """ - Fake file-like stream object that redirects writes to a logger instance. - """ - - def __init__(self, logger, log_level=logging.INFO): - self.terminal = sys.stdout - self.logger = logger - self.log_level = log_level - self.linebuf = "" - - def __getattr__(self, attr): - return getattr(self.terminal, attr) - - def write(self, buf): - temp_linebuf = self.linebuf + buf - self.linebuf = "" - for line in temp_linebuf.splitlines(True): - # From the io.TextIOWrapper docs: - # On output, if newline is None, any '\n' characters written - # are translated to the system default line separator. - # By default sys.stdout.write() expects '\n' newlines and then - # translates them so this is still cross platform. - if line[-1] == "\n": - self.logger.log(self.log_level, line.rstrip()) - else: - self.linebuf += line - - def flush(self): - if self.linebuf != "": - self.logger.log(self.log_level, self.linebuf.rstrip()) - self.linebuf = "" - - def disable_torch_init(): """ Disable the redundant torch default initialization to accelerate model creation. @@ -97,29 +6,3 @@ def disable_torch_init(): setattr(torch.nn.Linear, "reset_parameters", lambda self: None) setattr(torch.nn.LayerNorm, "reset_parameters", lambda self: None) - - -def violates_moderation(text): - """ - Check whether the text violates OpenAI moderation API. - """ - url = "https://api.openai.com/v1/moderations" - headers = {"Content-Type": "application/json", "Authorization": "Bearer " + os.environ["OPENAI_API_KEY"]} - text = text.replace("\n", "") - data = "{" + '"input": ' + f'"{text}"' + "}" - data = data.encode("utf-8") - try: - ret = requests.post(url, headers=headers, data=data, timeout=5) - flagged = ret.json()["results"][0]["flagged"] - except requests.exceptions.RequestException as e: - flagged = False - except KeyError as e: - flagged = False - - return flagged - - -def pretty_print_semaphore(semaphore): - if semaphore is None: - return "None" - return f"Semaphore(value={semaphore._value}, locked={semaphore.locked()})" diff --git a/lmms_eval/models/video_llava.py b/lmms_eval/models/video_llava.py index 98acebfe..4c8d7058 100644 --- a/lmms_eval/models/video_llava.py +++ b/lmms_eval/models/video_llava.py @@ -1,4 +1,3 @@ -import logging from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs from accelerate.state import AcceleratorState from typing import List, Optional, Union, Tuple @@ -15,17 +14,9 @@ from lmms_eval.api.registry import register_model from lmms_eval.utils import stop_sequences_criteria -eval_logger = logging.getLogger("lmms-eval") - -# try: -# import torch -# from videollava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN -# from videollava.conversation import conv_templates, SeparatorStyle -# from videollava.model.builder import load_pretrained_model -# from videollava.utils import disable_torch_init -# from videollava.mm_utils import tokenizer_image_token, get_model_name_from_path, KeywordsStoppingCriteria -# except ImportError: -# eval_logger.debug("Video-LLaVA is not installed. Please install Video-LLaVA to use this model.") +from loguru import logger + +eval_logger = logger from transformers import VideoLlavaProcessor, VideoLlavaForConditionalGeneration from lmms_eval.models.model_utils.load_video import read_video_pyav diff --git a/lmms_eval/models/xcomposer2_4KHD.py b/lmms_eval/models/xcomposer2_4KHD.py index b43f12e4..6c4f81a7 100644 --- a/lmms_eval/models/xcomposer2_4KHD.py +++ b/lmms_eval/models/xcomposer2_4KHD.py @@ -5,7 +5,7 @@ import numpy as np import torchvision.transforms as transforms from datetime import timedelta -import logging + from lmms_eval import utils from lmms_eval.api.instance import Instance @@ -22,7 +22,7 @@ pattern = re.compile(r"[A-Z]") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger meta_instruction = """You are an AI assistant whose name is InternLM-XComposer (浦语·灵笔). - InternLM-XComposer (浦语·灵笔) is a multi-modality conversational language model that is developed\ diff --git a/lmms_eval/models/xcomposer2_4khd.py b/lmms_eval/models/xcomposer2_4khd.py index b43f12e4..e741f637 100644 --- a/lmms_eval/models/xcomposer2_4khd.py +++ b/lmms_eval/models/xcomposer2_4khd.py @@ -5,7 +5,6 @@ import numpy as np import torchvision.transforms as transforms from datetime import timedelta -import logging from lmms_eval import utils from lmms_eval.api.instance import Instance @@ -22,7 +21,7 @@ pattern = re.compile(r"[A-Z]") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger meta_instruction = """You are an AI assistant whose name is InternLM-XComposer (浦语·灵笔). - InternLM-XComposer (浦语·灵笔) is a multi-modality conversational language model that is developed\ diff --git a/lmms_eval/tasks/__init__.py b/lmms_eval/tasks/__init__.py index 0679eae3..19f7fea2 100755 --- a/lmms_eval/tasks/__init__.py +++ b/lmms_eval/tasks/__init__.py @@ -1,4 +1,4 @@ -import os +import os, sys from typing import List, Union, Dict from lmms_eval import utils @@ -13,9 +13,9 @@ ALL_TASKS, ) -import logging +from loguru import logger -eval_logger = logging.getLogger("lmms-eval") +eval_logger = logger def register_configurable_task(config: Dict[str, str]) -> int: @@ -109,7 +109,9 @@ def include_path(task_dir): def initialize_tasks(verbosity="INFO"): - eval_logger.setLevel(getattr(logging, f"{verbosity}")) + logger.remove() + eval_logger.add(sys.stdout, colorize=True, level=verbosity) + eval_logger.add(sys.stderr, level=verbosity) task_dir = os.path.dirname(os.path.abspath(__file__)) + "/" include_path(task_dir) diff --git a/lmms_eval/tasks/activitynetqa/utils.py b/lmms_eval/tasks/activitynetqa/utils.py index 7c236e92..0c77ff79 100755 --- a/lmms_eval/tasks/activitynetqa/utils.py +++ b/lmms_eval/tasks/activitynetqa/utils.py @@ -5,7 +5,7 @@ import datetime import lmms_eval.tasks._task_utils.file_utils as file_utils import json -import logging + import yaml from pathlib import Path @@ -15,7 +15,7 @@ import time import ast -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger with open(Path(__file__).parent / "_default_template_yaml", "r") as f: raw_data = f.readlines() @@ -239,7 +239,6 @@ def activitynetqa_gpt_eval(results, args): # Factory into different aggregate def activitynetqa_aggregate_score(results, args): - yes_count = 0 no_count = 0 total_score = 0 diff --git a/lmms_eval/tasks/cmmmu/utils.py b/lmms_eval/tasks/cmmmu/utils.py index 7f50a80b..a20eaa60 100755 --- a/lmms_eval/tasks/cmmmu/utils.py +++ b/lmms_eval/tasks/cmmmu/utils.py @@ -3,11 +3,11 @@ import random import os import json -import logging + from collections import Counter from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger PROMPT = { "task_instructions": [ diff --git a/lmms_eval/tasks/coco_cap/utils.py b/lmms_eval/tasks/coco_cap/utils.py index ab3a736a..edb0e31e 100755 --- a/lmms_eval/tasks/coco_cap/utils.py +++ b/lmms_eval/tasks/coco_cap/utils.py @@ -6,9 +6,8 @@ from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger dir_name = os.path.dirname(os.path.abspath(__file__)) diff --git a/lmms_eval/tasks/conbench/utils.py b/lmms_eval/tasks/conbench/utils.py index bf7e1090..6e7803b1 100644 --- a/lmms_eval/tasks/conbench/utils.py +++ b/lmms_eval/tasks/conbench/utils.py @@ -2,9 +2,8 @@ import os from anls import anls_score -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger dir_name = os.path.dirname(os.path.abspath(__file__)) diff --git a/lmms_eval/tasks/cvrr/utils.py b/lmms_eval/tasks/cvrr/utils.py index eef51ddc..b2eb25c4 100755 --- a/lmms_eval/tasks/cvrr/utils.py +++ b/lmms_eval/tasks/cvrr/utils.py @@ -4,7 +4,7 @@ import datetime import lmms_eval.tasks._task_utils.file_utils as file_utils import json -import logging + import yaml from pathlib import Path @@ -15,7 +15,7 @@ import ast from tqdm import tqdm -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger with open(Path(__file__).parent / "_default_template_yaml", "r") as f: raw_data = f.readlines() @@ -45,7 +45,6 @@ # Pass in video path here # Can only work correctly with video llm def cvrr_doc_to_visual(doc): - # Unzip all the zip files to HF HOME cache dir HF_HOME = os.environ["HF_HOME"] cache_dir = config["dataset_kwargs"]["cache_dir"] diff --git a/lmms_eval/tasks/docvqa/utils.py b/lmms_eval/tasks/docvqa/utils.py index 0a785d23..bb17aa03 100755 --- a/lmms_eval/tasks/docvqa/utils.py +++ b/lmms_eval/tasks/docvqa/utils.py @@ -1,10 +1,10 @@ import json import os -import logging + from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -logger = logging.getLogger("lmms-eval") +from loguru import logger def docvqa_doc_to_visual(doc): diff --git a/lmms_eval/tasks/egoschema/utils.py b/lmms_eval/tasks/egoschema/utils.py index 7278db34..34d2ab58 100755 --- a/lmms_eval/tasks/egoschema/utils.py +++ b/lmms_eval/tasks/egoschema/utils.py @@ -5,7 +5,7 @@ import datetime import lmms_eval.tasks._task_utils.file_utils as file_utils import json -import logging + import yaml from pathlib import Path @@ -27,7 +27,7 @@ cache_dir = os.path.join(HF_HOME, cache_dir) cache_dir = os.path.join(cache_dir, "videos") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Pass in video path here diff --git a/lmms_eval/tasks/ferret/utils.py b/lmms_eval/tasks/ferret/utils.py index 7e86ea47..bb96b4a1 100755 --- a/lmms_eval/tasks/ferret/utils.py +++ b/lmms_eval/tasks/ferret/utils.py @@ -1,5 +1,5 @@ import json -import logging + import os import requests import numpy as np @@ -10,7 +10,8 @@ from pathlib import Path from copy import deepcopy -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger + NUM_SECONDS_TO_SLEEP = 0.5 FERRET_W_METRICS = ["gpt_eval_ferret_refer_desc", "gpt_eval_ferret_refer_reason", "gpt_eval_ferret_ground_conv"] diff --git a/lmms_eval/tasks/flickr30k/utils.py b/lmms_eval/tasks/flickr30k/utils.py index 8fa1069a..bc470f4d 100755 --- a/lmms_eval/tasks/flickr30k/utils.py +++ b/lmms_eval/tasks/flickr30k/utils.py @@ -6,9 +6,8 @@ from lmms_eval.tasks._task_utils.file_utils import generate_submission_file import datetime -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger dir_name = os.path.dirname(os.path.abspath(__file__)) diff --git a/lmms_eval/tasks/hallusion_bench/evaluate_hb.py b/lmms_eval/tasks/hallusion_bench/evaluate_hb.py index 87c65519..f35c67a2 100755 --- a/lmms_eval/tasks/hallusion_bench/evaluate_hb.py +++ b/lmms_eval/tasks/hallusion_bench/evaluate_hb.py @@ -1,6 +1,6 @@ import os import json -import logging + from tqdm import tqdm from lmms_eval.tasks.hallusion_bench.utils import evaluate_by_chatgpt, check_same_by_chatgpt, assign_correctness, get_eval_all, get_eval_fig, get_eval_pair_all @@ -11,7 +11,7 @@ metric = ["aAcc", "fAcc", "qAcc"] -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def hb_doc_to_text(doc, model_specific_prompt_kwargs=None): diff --git a/lmms_eval/tasks/hallusion_bench/utils.py b/lmms_eval/tasks/hallusion_bench/utils.py index 1d8dfdaf..f0ea9c86 100755 --- a/lmms_eval/tasks/hallusion_bench/utils.py +++ b/lmms_eval/tasks/hallusion_bench/utils.py @@ -7,7 +7,7 @@ import openai import threading import requests -import logging + API_TYPE = os.getenv("API_TYPE", "openai") @@ -26,7 +26,7 @@ "Content-Type": "application/json", } -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def evaluate_by_chatgpt(data, output_entry, correctness_entry, gpt_model="gpt-4", load_json=False, save_json_path="./hallusion_output.json", retries=3): diff --git a/lmms_eval/tasks/ii_bench/utils.py b/lmms_eval/tasks/ii_bench/utils.py index 6d645b29..8b30c12a 100755 --- a/lmms_eval/tasks/ii_bench/utils.py +++ b/lmms_eval/tasks/ii_bench/utils.py @@ -1,9 +1,10 @@ import json -import logging import re from collections import Counter from lmms_eval.tasks._task_utils.file_utils import generate_submission_file +from loguru import logger + PROMPT = """Question: {} (A) {} (B) {} @@ -68,4 +69,4 @@ def ii_bench_aggregate_submissions(results, args): file = generate_submission_file("ii_bench_test_for_submission.json", args) with open(file, "w") as f: json.dump(results, f, indent=4) - logging.getLogger("lmms-eval").info(f"Results saved to {file}") + logger.info(f"Results saved to {file}") diff --git a/lmms_eval/tasks/infovqa/utils.py b/lmms_eval/tasks/infovqa/utils.py index a4b1ab5c..9907a6cb 100755 --- a/lmms_eval/tasks/infovqa/utils.py +++ b/lmms_eval/tasks/infovqa/utils.py @@ -1,11 +1,10 @@ import json import os -import logging from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -lmms_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def infovqa_doc_to_visual(doc): @@ -30,4 +29,4 @@ def infovqa_test_aggregate_results(results, args): file = generate_submission_file("infovqa_test_for_submission.json", args) with open(file, "w") as f: json.dump(results, f) - lmms_logger.info(f"Results saved to {file}") + eval_logger.info(f"Results saved to {file}") diff --git a/lmms_eval/tasks/internal_eval/d170_cn_utils.py b/lmms_eval/tasks/internal_eval/d170_cn_utils.py index 060229d7..aeed548c 100755 --- a/lmms_eval/tasks/internal_eval/d170_cn_utils.py +++ b/lmms_eval/tasks/internal_eval/d170_cn_utils.py @@ -1,7 +1,7 @@ import os import requests import time -import logging + import yaml from pathlib import Path import re @@ -9,7 +9,7 @@ from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger with open(Path(__file__).parent / "d170_cn.yaml", "r") as f: raw_data = f.readlines() diff --git a/lmms_eval/tasks/internal_eval/d170_en_utils.py b/lmms_eval/tasks/internal_eval/d170_en_utils.py index b96017b4..5bf2b9d9 100755 --- a/lmms_eval/tasks/internal_eval/d170_en_utils.py +++ b/lmms_eval/tasks/internal_eval/d170_en_utils.py @@ -1,7 +1,7 @@ import os import requests import time -import logging + import yaml from pathlib import Path import re @@ -9,7 +9,7 @@ from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger with open(Path(__file__).parent / "d170_en.yaml", "r") as f: raw_data = f.readlines() diff --git a/lmms_eval/tasks/internal_eval/dc100_en_utils.py b/lmms_eval/tasks/internal_eval/dc100_en_utils.py index 5e2b2a33..4fd4d79b 100755 --- a/lmms_eval/tasks/internal_eval/dc100_en_utils.py +++ b/lmms_eval/tasks/internal_eval/dc100_en_utils.py @@ -1,7 +1,7 @@ import base64 import requests import re -import logging + import time import os import yaml @@ -18,7 +18,7 @@ def doc_to_visual(doc): return [doc["image"].convert("RGB")] -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Assuming the config is loaded similarly as in d170_en/utils.py with open(Path(__file__).parent / "dc100_en.yaml", "r") as f: diff --git a/lmms_eval/tasks/internal_eval/dc200_cn_utils.py b/lmms_eval/tasks/internal_eval/dc200_cn_utils.py index f5d7e87d..3549b22a 100755 --- a/lmms_eval/tasks/internal_eval/dc200_cn_utils.py +++ b/lmms_eval/tasks/internal_eval/dc200_cn_utils.py @@ -1,7 +1,7 @@ import base64 import requests import re -import logging + import os import yaml import json @@ -18,7 +18,7 @@ def doc_to_visual(doc): return [doc["image"].convert("RGB")] -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Assuming the config is loaded similarly as in d170_en/utils.py with open(Path(__file__).parent / "dc200_cn.yaml", "r") as f: diff --git a/lmms_eval/tasks/llava-bench-coco/utils.py b/lmms_eval/tasks/llava-bench-coco/utils.py index 8858637f..08bf2515 100755 --- a/lmms_eval/tasks/llava-bench-coco/utils.py +++ b/lmms_eval/tasks/llava-bench-coco/utils.py @@ -1,5 +1,5 @@ import json -import logging + import os import requests import numpy as np @@ -10,7 +10,8 @@ from pathlib import Path from copy import deepcopy -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger + NUM_SECONDS_TO_SLEEP = 0.5 LLAVA_W_METRICS = ["gpt_eval_llava_conv", "gpt_eval_llava_detail", "gpt_eval_llava_complex"] diff --git a/lmms_eval/tasks/llava-in-the-wild/utils.py b/lmms_eval/tasks/llava-in-the-wild/utils.py index ac86ee99..25bf37a3 100755 --- a/lmms_eval/tasks/llava-in-the-wild/utils.py +++ b/lmms_eval/tasks/llava-in-the-wild/utils.py @@ -1,5 +1,5 @@ import json -import logging + import os import requests import numpy as np @@ -10,7 +10,8 @@ from pathlib import Path from copy import deepcopy -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger + NUM_SECONDS_TO_SLEEP = 5 LLAVA_W_METRICS = ["gpt_eval_llava_conv", "gpt_eval_llava_detail", "gpt_eval_llava_complex"] diff --git a/lmms_eval/tasks/llava_wilder/llava_wilder_full.yaml b/lmms_eval/tasks/llava_wilder/llava_wilder_full.yaml deleted file mode 100755 index 65627d03..00000000 --- a/lmms_eval/tasks/llava_wilder/llava_wilder_full.yaml +++ /dev/null @@ -1,14 +0,0 @@ -dataset_path: lmms-lab/llava-wilder -dataset_name: Full -dataset_kwargs: - token: True -task: "llava_wilder_full" -test_split: test -model_specific_prompt_kwargs: - default: - pre_prompt: "" - post_prompt: "" - xcomposer2_4khd: - pre_prompt: "[UNUSED_TOKEN_146]user\nQuestion: " - post_prompt: "[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" -include: _default_template_wilder_yaml \ No newline at end of file diff --git a/lmms_eval/tasks/llava_wilder/llava_wilder_medium.yaml b/lmms_eval/tasks/llava_wilder/llava_wilder_medium.yaml deleted file mode 100644 index 90f7bcc2..00000000 --- a/lmms_eval/tasks/llava_wilder/llava_wilder_medium.yaml +++ /dev/null @@ -1,14 +0,0 @@ -dataset_path: lmms-lab/llava-wilder -dataset_name: Medium -dataset_kwargs: - token: True -task: "llava_wilder_medium" -test_split: test -model_specific_prompt_kwargs: - default: - pre_prompt: "" - post_prompt: "" - xcomposer2_4khd: - pre_prompt: "[UNUSED_TOKEN_146]user\nQuestion: " - post_prompt: "[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" -include: _default_template_wilder_yaml \ No newline at end of file diff --git a/lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml b/lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml index 54b18897..1c493673 100644 --- a/lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml +++ b/lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml @@ -1,9 +1,8 @@ -dataset_path: lmms-lab/llava-wilder -dataset_name: Small +dataset_path: lmms-lab/llava-bench-wilder dataset_kwargs: token: True task: "llava_wilder_small" -test_split: train +test_split: small model_specific_prompt_kwargs: default: pre_prompt: "" diff --git a/lmms_eval/tasks/llava_wilder/utils.py b/lmms_eval/tasks/llava_wilder/utils.py index 15d44438..96a020bc 100644 --- a/lmms_eval/tasks/llava_wilder/utils.py +++ b/lmms_eval/tasks/llava_wilder/utils.py @@ -3,7 +3,7 @@ import os from pathlib import Path import requests -import logging + import time from copy import deepcopy import numpy as np @@ -11,18 +11,7 @@ from io import BytesIO # Set up a logger -eval_logger = logging.getLogger("lmms-eval") - -# Create a static variable to track if the message has been logged -if not hasattr(eval_logger, "dashcope_warning_logged"): - eval_logger.dashcope_warning_logged = False - -try: - import dashscope -except ImportError: - if not eval_logger.dashcope_warning_logged: - eval_logger.debug("Dashcope not found, make sure you install dashscope to use qwen vl") - eval_logger.dashcope_warning_logged = True +from loguru import logger as eval_logger NUM_SECONDS_TO_SLEEP = 5 dir_path = os.path.dirname(os.path.realpath(__file__)) @@ -58,14 +47,6 @@ "Content-Type": "application/json", } -elif API_TYPE == "qwen_vl": - API_URL = os.getenv("QWEN_ENDPOINT", "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation") - API_KEY = os.getenv("DASHSCOPE_API_KEY", "YOUR_API_KEY") - headers = { - "Authorization": f"Bearer {API_KEY}", - "Content-Type": "application/json", - } - def get_chat_response(base64_image, prompt, max_retries=5, wait_time=10): headers = { @@ -114,29 +95,6 @@ def image_to_base64(pil_image): return base64.b64encode(buffered.getvalue()).decode("utf-8") -def qwen_multimodal_conversation_call(text_content, image_content, retries=5): - """Simple single round multimodal conversation call.""" - messages = [{"role": "user", "content": [{"image": image_content}, {"text": text_content}]}] - for attempt in range(retries): - try: - response_data = dashscope.MultiModalConversation.call(model=GPT_EVAL_MODEL_NAME, messages=messages) - # The response status_code is HTTPStatus.OK indicate success, - # otherwise indicate request is failed, you can get error code - # and message from code and message. - content = response_data["output"]["choices"][0]["message"]["content"][0]["text"].strip() - if content != "": - return content, GPT_EVAL_MODEL_NAME - break # If successful, break out of the loop - except Exception as e: - eval_logger.info(f"Attempt {attempt + 1} failed with error: {e}") - if attempt < retries: # If we have retries left, sleep and then continue to next attempt - time.sleep(NUM_SECONDS_TO_SLEEP) - else: # If this was the last attempt, log and return empty - eval_logger.error(f"All {retries} attempts failed. Last error message: {e}") - return "", "" - return "", "" - - def parse_score(review): try: score_pair = review.split("\n")[0] @@ -162,20 +120,13 @@ def llava_process_results(doc, result): """ try: question = doc.get("question", "") - ans1 = doc.get("gpt4v_answer", "") + ans1 = doc.get("answer", "") ans2 = result[0] if result else "" content = f"[Question]\n{question}\n\n" + f"[Assistant 1]\n{ans1}\n\n[End of Assistant 1]\n\n" + f"[Assistant 2]\n{ans2}\n\n[End of Assistant 2]\n\n" f"[System]\n{judge_rules}\n\n" visuals = llava_doc_to_visual(doc) - if API_TYPE == "qwen_vl": - file_path = os.path.join(dir_path, f"tmp_{doc['question_id']}.jpg") - visuals[0].save(file_path) - image_content = "file://" + file_path - review, model_name = qwen_multimodal_conversation_call(content, image_content=image_content) - os.remove(file_path) - elif API_TYPE == "openai": - image_path = doc["image"] - base64_image = image_to_base64(image_path) - review, model_name = get_chat_response(base64_image, content) + image_path = doc["image"] + base64_image = image_to_base64(image_path) + review, model_name = get_chat_response(base64_image, content) scores = parse_score(review) except Exception as e: eval_logger.error(f"Error for Question ID: {doc.get('question_id', 'Unknown')}: {e}") diff --git a/lmms_eval/tasks/longvideobench/utils.py b/lmms_eval/tasks/longvideobench/utils.py index d189c8f0..b71e3086 100644 --- a/lmms_eval/tasks/longvideobench/utils.py +++ b/lmms_eval/tasks/longvideobench/utils.py @@ -1,5 +1,4 @@ import json -import logging import re from collections import Counter, defaultdict from lmms_eval.tasks._task_utils.file_utils import generate_submission_file @@ -13,7 +12,6 @@ from PIL import Image import torch -import logging from pathlib import Path import yaml import sys diff --git a/lmms_eval/tasks/mathverse/mathverse_evals.py b/lmms_eval/tasks/mathverse/mathverse_evals.py index 71843a2a..5894f6f7 100644 --- a/lmms_eval/tasks/mathverse/mathverse_evals.py +++ b/lmms_eval/tasks/mathverse/mathverse_evals.py @@ -1,10 +1,10 @@ import time import requests -import logging + from tqdm import tqdm import pandas as pd -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger DEMO_PROMPT_EXTRACT = """ I am providing you a response from a model to a math problem, termed 'Model Response'. You should extract the answer from the response as 'Extracted Answer'. Directly output the extracted answer with no explanation. diff --git a/lmms_eval/tasks/mathverse/utils.py b/lmms_eval/tasks/mathverse/utils.py index 9ec613a7..de22d93d 100644 --- a/lmms_eval/tasks/mathverse/utils.py +++ b/lmms_eval/tasks/mathverse/utils.py @@ -1,11 +1,10 @@ -import logging import yaml import os from pathlib import Path import pandas as pd import json -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger from lmms_eval.tasks.mathverse.mathverse_evals import MathVerseEvaluator from lmms_eval.tasks._task_utils.file_utils import generate_submission_file diff --git a/lmms_eval/tasks/mathvista/mathvista_evals.py b/lmms_eval/tasks/mathvista/mathvista_evals.py index 90d367ec..afc5b1b5 100755 --- a/lmms_eval/tasks/mathvista/mathvista_evals.py +++ b/lmms_eval/tasks/mathvista/mathvista_evals.py @@ -2,9 +2,9 @@ import requests import re from Levenshtein import distance -import logging -eval_logger = logging.getLogger("lmms-eval") + +from loguru import logger as eval_logger # pids: 799, 681, 615 shot_examples = [ diff --git a/lmms_eval/tasks/mathvista/utils.py b/lmms_eval/tasks/mathvista/utils.py index 3bbe96a9..4f8ad21b 100755 --- a/lmms_eval/tasks/mathvista/utils.py +++ b/lmms_eval/tasks/mathvista/utils.py @@ -1,11 +1,10 @@ -import logging import yaml import os from pathlib import Path import pandas as pd import json -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger from lmms_eval.tasks.mathvista.mathvista_evals import MathVistaEvaluator from lmms_eval.tasks._task_utils.file_utils import generate_submission_file diff --git a/lmms_eval/tasks/mmbench/cc_utils.py b/lmms_eval/tasks/mmbench/cc_utils.py index a5b9326c..8cd6665d 100755 --- a/lmms_eval/tasks/mmbench/cc_utils.py +++ b/lmms_eval/tasks/mmbench/cc_utils.py @@ -1,11 +1,10 @@ -import logging import yaml import os from pathlib import Path import pandas as pd import json -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger from lmms_eval.tasks.mmbench.mmbench_evals import MMBench_Evaluator from lmms_eval.tasks._task_utils.file_utils import generate_submission_file diff --git a/lmms_eval/tasks/mmbench/cn_utils.py b/lmms_eval/tasks/mmbench/cn_utils.py index ba076b6f..2a767d7a 100755 --- a/lmms_eval/tasks/mmbench/cn_utils.py +++ b/lmms_eval/tasks/mmbench/cn_utils.py @@ -1,4 +1,3 @@ -import logging import yaml import os from pathlib import Path @@ -6,7 +5,7 @@ import json from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger from lmms_eval.tasks.mmbench.mmbench_evals import MMBench_Evaluator from lmms_eval.tasks._task_utils.file_utils import generate_submission_file diff --git a/lmms_eval/tasks/mmbench/en_utils.py b/lmms_eval/tasks/mmbench/en_utils.py index 60121ec5..f0b5e9f8 100755 --- a/lmms_eval/tasks/mmbench/en_utils.py +++ b/lmms_eval/tasks/mmbench/en_utils.py @@ -1,11 +1,10 @@ -import logging import yaml import os from pathlib import Path import pandas as pd import json -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger from lmms_eval.tasks.mmbench.mmbench_evals import MMBench_Evaluator from lmms_eval.tasks._task_utils.file_utils import generate_submission_file diff --git a/lmms_eval/tasks/mmbench/mmbench_evals.py b/lmms_eval/tasks/mmbench/mmbench_evals.py index 7868157e..7f2c246f 100755 --- a/lmms_eval/tasks/mmbench/mmbench_evals.py +++ b/lmms_eval/tasks/mmbench/mmbench_evals.py @@ -10,9 +10,8 @@ import pandas as pd from tqdm import tqdm -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger class MMBench_Evaluator: diff --git a/lmms_eval/tasks/mme/utils.py b/lmms_eval/tasks/mme/utils.py index 26d5942c..5aa4ae18 100755 --- a/lmms_eval/tasks/mme/utils.py +++ b/lmms_eval/tasks/mme/utils.py @@ -4,9 +4,8 @@ import json from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger dir_name = os.path.dirname(os.path.abspath(__file__)) diff --git a/lmms_eval/tasks/mmmu/utils.py b/lmms_eval/tasks/mmmu/utils.py index 5a1b91f6..83aeed20 100755 --- a/lmms_eval/tasks/mmmu/utils.py +++ b/lmms_eval/tasks/mmmu/utils.py @@ -5,11 +5,11 @@ import numpy as np import os import json -import logging + from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -lmms_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger MULTI_CHOICE_PROMPT = "Answer with the option's letter from the given choices directly." OPEN_ENDED_PROMPT = "Answer the question using a single word or phrase." @@ -86,9 +86,10 @@ def extract_subset_name(input_string): def mmmu_test_aggregate_results_for_submission(results, args): path = generate_submission_file("mmmu_test_for_submission.json", args) + results_dict = {list(item.keys())[0]: list(item.values())[0] for item in results} with open(path, "w") as f: - json.dump(results, f) - lmms_logger.info(f"Results saved to {path}.") + json.dump(results_dict, f) + eval_logger.info(f"Results saved to {path}.") def mmmu_aggregate_results(results): diff --git a/lmms_eval/tasks/mmmu/utils_group_img.py b/lmms_eval/tasks/mmmu/utils_group_img.py index 2470d7c7..5de728b6 100644 --- a/lmms_eval/tasks/mmmu/utils_group_img.py +++ b/lmms_eval/tasks/mmmu/utils_group_img.py @@ -5,7 +5,7 @@ import numpy as np import os import json -import logging + import matplotlib.font_manager as fm from lmms_eval.tasks._task_utils.file_utils import generate_submission_file @@ -129,7 +129,7 @@ def process_images(images, size=1008): return concat_horizontal -lmms_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger MULTI_CHOICE_PROMPT = "Answer with the option's letter from the given choices directly." OPEN_ENDED_PROMPT = "Answer the question using a single word or phrase." @@ -209,7 +209,7 @@ def mmmu_test_aggregate_results_for_submission(results, args): path = generate_submission_file("mmmu_test_for_submission.json", args) with open(path, "w") as f: json.dump(results, f) - lmms_logger.info(f"Results saved to {path}.") + eval_logger.info(f"Results saved to {path}.") def mmmu_aggregate_results(results): diff --git a/lmms_eval/tasks/mmupd/mmupd_evals.py b/lmms_eval/tasks/mmupd/mmupd_evals.py index 53055313..00dde912 100644 --- a/lmms_eval/tasks/mmupd/mmupd_evals.py +++ b/lmms_eval/tasks/mmupd/mmupd_evals.py @@ -7,10 +7,10 @@ import numpy as np import pandas as pd import pickle -import logging + import json -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def dump(data, f): diff --git a/lmms_eval/tasks/mmupd/utils.py b/lmms_eval/tasks/mmupd/utils.py index 9a90bf4b..bfc724a5 100644 --- a/lmms_eval/tasks/mmupd/utils.py +++ b/lmms_eval/tasks/mmupd/utils.py @@ -1,4 +1,3 @@ -import logging import yaml import os from pathlib import Path @@ -10,7 +9,7 @@ from lmms_eval.tasks.mmupd.mmupd_evals import MMUPD_Evaluator from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger with open(Path(__file__).parent / "mmupd.yaml", "r") as f: raw_data = f.readlines() diff --git a/lmms_eval/tasks/mmvet/utils.py b/lmms_eval/tasks/mmvet/utils.py index 5caaba46..37b15ad7 100755 --- a/lmms_eval/tasks/mmvet/utils.py +++ b/lmms_eval/tasks/mmvet/utils.py @@ -1,12 +1,12 @@ import os import requests import time -import logging + import pandas as pd import yaml from pathlib import Path -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger with open(Path(__file__).parent / "mmvet.yaml", "r") as f: raw_data = f.readlines() diff --git a/lmms_eval/tasks/multidocvqa/utils.py b/lmms_eval/tasks/multidocvqa/utils.py index 10fd85e6..f53da020 100755 --- a/lmms_eval/tasks/multidocvqa/utils.py +++ b/lmms_eval/tasks/multidocvqa/utils.py @@ -2,11 +2,11 @@ import re import ast import json -import logging + from lmms_eval.api.metrics import levenshtein_distance from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -lmms_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def multidocvqa_doc_to_text(doc, model_specific_prompt_kwargs): @@ -55,7 +55,7 @@ def multidocvqa_test_aggregate_results_for_submission(results, args): path = generate_submission_file("multidocvqa_test_for_submission.json", args) with open(path, "w") as f: json.dump(results, f) - lmms_logger.info(f"Results saved to {path}.") + eval_logger.info(f"Results saved to {path}.") ################## diff --git a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/utils.py b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/utils.py index 6666de45..b783cb40 100644 --- a/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/utils.py +++ b/lmms_eval/tasks/multilingual-llava-bench-in-the-wild/utils.py @@ -1,5 +1,4 @@ import json -import logging import os import requests import numpy as np @@ -10,7 +9,8 @@ from pathlib import Path from copy import deepcopy -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger + NUM_SECONDS_TO_SLEEP = 5 LLAVA_W_METRICS = ["gpt_eval_llava_conv", "gpt_eval_llava_detail", "gpt_eval_llava_complex"] diff --git a/lmms_eval/tasks/nextqa/utils.py b/lmms_eval/tasks/nextqa/utils.py index ca5d8bac..4fa46523 100644 --- a/lmms_eval/tasks/nextqa/utils.py +++ b/lmms_eval/tasks/nextqa/utils.py @@ -1,12 +1,12 @@ import os import yaml -import logging + import random import pandas as pd from pathlib import Path -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: from pywsd.utils import lemmatize_sentence diff --git a/lmms_eval/tasks/nocaps/utils.py b/lmms_eval/tasks/nocaps/utils.py index 9b1d4df6..ce6e1d89 100755 --- a/lmms_eval/tasks/nocaps/utils.py +++ b/lmms_eval/tasks/nocaps/utils.py @@ -6,9 +6,8 @@ from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger dir_name = os.path.dirname(os.path.abspath(__file__)) diff --git a/lmms_eval/tasks/ocrbench/utils.py b/lmms_eval/tasks/ocrbench/utils.py index fe1c1fcb..b590cbda 100644 --- a/lmms_eval/tasks/ocrbench/utils.py +++ b/lmms_eval/tasks/ocrbench/utils.py @@ -1,8 +1,6 @@ -import logging - from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -logger = logging.getLogger("lmms-eval") +from loguru import logger # Add the following functions to your existing utils.py file OCRBench_score = { diff --git a/lmms_eval/tasks/ok_vqa/utils.py b/lmms_eval/tasks/ok_vqa/utils.py index f1bb7742..249e1a0c 100755 --- a/lmms_eval/tasks/ok_vqa/utils.py +++ b/lmms_eval/tasks/ok_vqa/utils.py @@ -3,14 +3,14 @@ import json import yaml import pathlib -import logging + import datetime import statistics from lmms_eval.tasks._task_utils.file_utils import generate_submission_file from lmms_eval.tasks._task_utils.vqa_eval_metric import EvalAIAnswerProcessor -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def ok_vqa_doc_to_visual(doc): diff --git a/lmms_eval/tasks/olympiadbench/cn_utils.py b/lmms_eval/tasks/olympiadbench/cn_utils.py index 79411385..64578e8a 100644 --- a/lmms_eval/tasks/olympiadbench/cn_utils.py +++ b/lmms_eval/tasks/olympiadbench/cn_utils.py @@ -4,9 +4,9 @@ from lmms_eval.tasks.olympiadbench.olympiadbench_evals import OlympiadBenchEvaluator from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger + dir_name = os.path.dirname(os.path.abspath(__file__)) try: diff --git a/lmms_eval/tasks/olympiadbench/en_utils.py b/lmms_eval/tasks/olympiadbench/en_utils.py index c4191cdd..b3186c98 100644 --- a/lmms_eval/tasks/olympiadbench/en_utils.py +++ b/lmms_eval/tasks/olympiadbench/en_utils.py @@ -4,9 +4,9 @@ from lmms_eval.tasks.olympiadbench.olympiadbench_evals import OlympiadBenchEvaluator from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger + dir_name = os.path.dirname(os.path.abspath(__file__)) try: diff --git a/lmms_eval/tasks/olympiadbench/olympiadbench_evals.py b/lmms_eval/tasks/olympiadbench/olympiadbench_evals.py index fbda732c..9897447f 100644 --- a/lmms_eval/tasks/olympiadbench/olympiadbench_evals.py +++ b/lmms_eval/tasks/olympiadbench/olympiadbench_evals.py @@ -1,9 +1,8 @@ import re import sympy as sp -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: from sympy import simplify, Eq, sympify, Pow diff --git a/lmms_eval/tasks/perceptiontest/test/utils.py b/lmms_eval/tasks/perceptiontest/test/utils.py index 35307179..522a6a04 100755 --- a/lmms_eval/tasks/perceptiontest/test/utils.py +++ b/lmms_eval/tasks/perceptiontest/test/utils.py @@ -5,7 +5,7 @@ import datetime import lmms_eval.tasks._task_utils.file_utils as file_utils import json -import logging + import yaml from pathlib import Path @@ -27,7 +27,7 @@ cache_dir = os.path.join(HF_HOME, cache_dir) cache_dir = os.path.join(cache_dir, "videos") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Pass in video path here diff --git a/lmms_eval/tasks/perceptiontest/val/utils.py b/lmms_eval/tasks/perceptiontest/val/utils.py index ceb05784..562cc0fe 100755 --- a/lmms_eval/tasks/perceptiontest/val/utils.py +++ b/lmms_eval/tasks/perceptiontest/val/utils.py @@ -5,7 +5,7 @@ import datetime import lmms_eval.tasks._task_utils.file_utils as file_utils import json -import logging + import yaml from pathlib import Path @@ -27,7 +27,7 @@ cache_dir = os.path.join(HF_HOME, cache_dir) cache_dir = os.path.join(cache_dir, "videos") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Pass in video path here diff --git a/lmms_eval/tasks/qbench/utils.py b/lmms_eval/tasks/qbench/utils.py index 609efb00..a5641570 100644 --- a/lmms_eval/tasks/qbench/utils.py +++ b/lmms_eval/tasks/qbench/utils.py @@ -1,5 +1,4 @@ import json -import logging import re from collections import Counter, defaultdict from lmms_eval.tasks._task_utils.file_utils import generate_submission_file diff --git a/lmms_eval/tasks/refcoco+/utils.py b/lmms_eval/tasks/refcoco+/utils.py index f1d43606..c71ddf86 100755 --- a/lmms_eval/tasks/refcoco+/utils.py +++ b/lmms_eval/tasks/refcoco+/utils.py @@ -5,9 +5,8 @@ COCO_METRICS = ["Bleu_4", "Bleu_3", "Bleu_2", "Bleu_1", "METEOR", "ROUGE_L", "CIDEr"] # , "SPICE"] -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def refcoco_bbox_doc_to_visual(doc): diff --git a/lmms_eval/tasks/refcoco/utils.py b/lmms_eval/tasks/refcoco/utils.py index f1d43606..c71ddf86 100755 --- a/lmms_eval/tasks/refcoco/utils.py +++ b/lmms_eval/tasks/refcoco/utils.py @@ -5,9 +5,8 @@ COCO_METRICS = ["Bleu_4", "Bleu_3", "Bleu_2", "Bleu_1", "METEOR", "ROUGE_L", "CIDEr"] # , "SPICE"] -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def refcoco_bbox_doc_to_visual(doc): diff --git a/lmms_eval/tasks/refcocog/utils.py b/lmms_eval/tasks/refcocog/utils.py index f1d43606..c71ddf86 100755 --- a/lmms_eval/tasks/refcocog/utils.py +++ b/lmms_eval/tasks/refcocog/utils.py @@ -5,9 +5,8 @@ COCO_METRICS = ["Bleu_4", "Bleu_3", "Bleu_2", "Bleu_1", "METEOR", "ROUGE_L", "CIDEr"] # , "SPICE"] -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def refcoco_bbox_doc_to_visual(doc): diff --git a/lmms_eval/tasks/screenspot/utils.py b/lmms_eval/tasks/screenspot/utils.py index d5d53df5..68a81f95 100644 --- a/lmms_eval/tasks/screenspot/utils.py +++ b/lmms_eval/tasks/screenspot/utils.py @@ -6,9 +6,8 @@ # COCO_METRICS = ["Bleu_4", "Bleu_3", "Bleu_2", "Bleu_1", "METEOR", "ROUGE_L", "CIDEr"] # , "SPICE"] COCO_METRICS = ["CIDEr"] -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def screenspot_bbox_doc_to_visual(doc): diff --git a/lmms_eval/tasks/screenspot/utils_rec.py b/lmms_eval/tasks/screenspot/utils_rec.py index 09539022..1aebf2f1 100644 --- a/lmms_eval/tasks/screenspot/utils_rec.py +++ b/lmms_eval/tasks/screenspot/utils_rec.py @@ -1,8 +1,6 @@ import re -import logging from datasets import Dataset - -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger REC_METRICS = ["IoU", "ACC@0.1", "ACC@0.3", "ACC@0.5", "ACC@0.7", "ACC@0.9", "Center_ACC"] diff --git a/lmms_eval/tasks/stvqa/utils.py b/lmms_eval/tasks/stvqa/utils.py index 81fca5b4..ff033f1f 100755 --- a/lmms_eval/tasks/stvqa/utils.py +++ b/lmms_eval/tasks/stvqa/utils.py @@ -1,6 +1,5 @@ -import os import json -import logging +from loguru import logger from lmms_eval.tasks._task_utils.file_utils import generate_submission_file @@ -25,4 +24,4 @@ def stvqa_aggregate_submissions(results, args): file = generate_submission_file("stvqa_test_for_submission.json", args) with open(file, "w") as f: json.dump(results, f) - logging.getLogger("lmms-eval").info(f"Results saved to {file}") + logger.info(f"Results saved to {file}") diff --git a/lmms_eval/tasks/synthdog/donut_evaluator.py b/lmms_eval/tasks/synthdog/donut_evaluator.py index dd9b022f..4059cab9 100644 --- a/lmms_eval/tasks/synthdog/donut_evaluator.py +++ b/lmms_eval/tasks/synthdog/donut_evaluator.py @@ -11,9 +11,7 @@ from transformers.modeling_utils import PreTrainedModel -import logging - -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger try: import zss diff --git a/lmms_eval/tasks/synthdog/utils.py b/lmms_eval/tasks/synthdog/utils.py index 42e7c62d..274daa42 100644 --- a/lmms_eval/tasks/synthdog/utils.py +++ b/lmms_eval/tasks/synthdog/utils.py @@ -1,9 +1,8 @@ -import logging import json from lmms_eval.tasks._task_utils.file_utils import generate_submission_file from lmms_eval.tasks.synthdog.donut_evaluator import JSONParseEvaluator -logger = logging.getLogger("lmms-eval") +from loguru import logger evaluator = JSONParseEvaluator() diff --git a/lmms_eval/tasks/tempcompass/utils.py b/lmms_eval/tasks/tempcompass/utils.py index 83574347..dbe4f831 100644 --- a/lmms_eval/tasks/tempcompass/utils.py +++ b/lmms_eval/tasks/tempcompass/utils.py @@ -5,7 +5,7 @@ import datetime import lmms_eval.tasks._task_utils.file_utils as file_utils import json -import logging + import yaml from pathlib import Path @@ -48,7 +48,7 @@ cache_dir = os.path.join(HF_HOME, cache_dir) cache_dir = os.path.join(cache_dir, "videos") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Pass in video path here @@ -365,7 +365,6 @@ def tempcompass_process_results_captioning(doc, result): # utils functions for captioning: parse gpt outputs def parse_llm_output_for_captioning(llm_output, gt_answer): - if llm_output == "invalid_request_error" or not llm_output: eval_result = {"rating": -1, "chatgpt-answer": None, "chatgpt-reasoning": None} return eval_result @@ -461,7 +460,6 @@ def eval_rule(video_llm_output, question, answer): # utils function for yes_no def extract_pred(video_llm_output): - # Extract the yes/no predction from the original video llm output video_llm_output = video_llm_output.lower() if video_llm_output.startswith("yes"): diff --git a/lmms_eval/tasks/textcaps/utils.py b/lmms_eval/tasks/textcaps/utils.py index 12dc277f..d21a92fd 100755 --- a/lmms_eval/tasks/textcaps/utils.py +++ b/lmms_eval/tasks/textcaps/utils.py @@ -5,9 +5,8 @@ from pycocotools.coco import COCO from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger dir_name = os.path.dirname(os.path.abspath(__file__)) diff --git a/lmms_eval/tasks/textvqa/utils.py b/lmms_eval/tasks/textvqa/utils.py index 71a4ccaa..0c8de47d 100755 --- a/lmms_eval/tasks/textvqa/utils.py +++ b/lmms_eval/tasks/textvqa/utils.py @@ -3,14 +3,14 @@ import json import yaml import pathlib -import logging + import datetime import statistics from lmms_eval.tasks._task_utils.vqa_eval_metric import EvalAIAnswerProcessor from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def textvqa_doc_to_visual(doc): diff --git a/lmms_eval/tasks/vatex/utils.py b/lmms_eval/tasks/vatex/utils.py index 55ffa9c5..cdb62806 100755 --- a/lmms_eval/tasks/vatex/utils.py +++ b/lmms_eval/tasks/vatex/utils.py @@ -5,11 +5,11 @@ from pycocotools.coco import COCO from lmms_eval.tasks._task_utils.file_utils import generate_submission_file from pathlib import Path -import logging + import yaml import sys -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger dir_name = os.path.dirname(os.path.abspath(__file__)) diff --git a/lmms_eval/tasks/vcr_wiki/utils.py b/lmms_eval/tasks/vcr_wiki/utils.py index 95bdae1a..e16f99b4 100644 --- a/lmms_eval/tasks/vcr_wiki/utils.py +++ b/lmms_eval/tasks/vcr_wiki/utils.py @@ -1,6 +1,5 @@ import datetime import json -import logging import os from difflib import SequenceMatcher as SM from functools import partial @@ -29,7 +28,8 @@ nlp = {"en": nlp_en, "zh": nlp_zh} rouge = evaluate.load("rouge") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger + dir_name = os.path.dirname(os.path.abspath(__file__)) aggregate_results_template = { diff --git a/lmms_eval/tasks/video_detail_description/utils.py b/lmms_eval/tasks/video_detail_description/utils.py index 382175cd..536776fb 100755 --- a/lmms_eval/tasks/video_detail_description/utils.py +++ b/lmms_eval/tasks/video_detail_description/utils.py @@ -6,7 +6,7 @@ import datetime import lmms_eval.tasks._task_utils.file_utils as file_utils import json -import logging + import yaml from pathlib import Path @@ -44,7 +44,7 @@ cache_dir = os.path.join(HF_HOME, cache_dir) cache_dir = os.path.join(cache_dir, "Test_Videos") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Pass in video path here diff --git a/lmms_eval/tasks/videochatgpt/utils.py b/lmms_eval/tasks/videochatgpt/utils.py index ba6cf07d..e59f2dbf 100755 --- a/lmms_eval/tasks/videochatgpt/utils.py +++ b/lmms_eval/tasks/videochatgpt/utils.py @@ -5,7 +5,7 @@ import datetime import lmms_eval.tasks._task_utils.file_utils as file_utils import json -import logging + import yaml from pathlib import Path @@ -16,7 +16,7 @@ import ast from tqdm import tqdm -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger with open(Path(__file__).parent / "_default_template_yaml", "r") as f: raw_data = f.readlines() diff --git a/lmms_eval/tasks/videomme/utils.py b/lmms_eval/tasks/videomme/utils.py index ca821601..b70812a0 100644 --- a/lmms_eval/tasks/videomme/utils.py +++ b/lmms_eval/tasks/videomme/utils.py @@ -4,7 +4,7 @@ import json from lmms_eval.tasks._task_utils.file_utils import generate_submission_file -import logging + from pathlib import Path import yaml import sys @@ -13,7 +13,7 @@ import cv2 import numpy as np -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger VIDEO_TYPE = ["short", "medium", "long"] CATEGORIES = ["Knowledge", "Film & Television", "Sports Competition", "Artistic Performance", "Life Record", "Multilingual"] @@ -93,44 +93,47 @@ def parse_subtitle_time(time_str): - h, m, s_ms = time_str.split(':') - s, ms = s_ms.split(',') + h, m, s_ms = time_str.split(":") + s, ms = s_ms.split(",") return int(h) * 3600 + int(m) * 60 + int(s) + int(ms) / 1000 + def load_subtitles(subtitle_path): subtitles = {} - with open(subtitle_path, 'r', encoding='utf-8') as file: - content = file.read().split('\n\n') + with open(subtitle_path, "r", encoding="utf-8") as file: + content = file.read().split("\n\n") for section in content: if section.strip(): - lines = section.split('\n') + lines = section.split("\n") if len(lines) >= 3: - time_range = lines[1].split(' --> ') + time_range = lines[1].split(" --> ") start_time = parse_subtitle_time(time_range[0]) end_time = parse_subtitle_time(time_range[1]) - text = ' '.join(line for line in lines[2:]) + text = " ".join(line for line in lines[2:]) subtitles[(start_time, end_time)] = text return subtitles + def convert_time_to_frame(time_in_seconds, fps): return int(time_in_seconds * fps) + def extract_subtitles(video_path, subtitle_path): video = cv2.VideoCapture(video_path) fps = video.get(cv2.CAP_PROP_FPS) - total_frame=int(video.get(cv2.CAP_PROP_FRAME_COUNT)) + total_frame = int(video.get(cv2.CAP_PROP_FRAME_COUNT)) subtitles = load_subtitles(subtitle_path) - + subtitle_frames = [] for (start_time, end_time), text in subtitles.items(): start_frame = convert_time_to_frame(start_time, fps) end_frame = convert_time_to_frame(end_time, fps) subtitle_frames.append((start_frame, end_frame, text)) - return subtitle_frames,total_frame + return subtitle_frames, total_frame -def videomme_doc_to_visual(doc): +def videomme_doc_to_visual(doc): cache_dir = os.path.join(base_cache_dir, cache_name) video_path = doc["videoID"] + ".mp4" video_path = os.path.join(cache_dir, video_path) @@ -146,14 +149,16 @@ def videomme_doc_to_visual(doc): def videomme_doc_to_text(doc, model_specific_prompt_kwargs=None): - option_prompt="Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option." + option_prompt = "Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option." question = doc["question"] option = str(doc["options"]) question = question + "\n" + option - full_prompt=option_prompt+"\n"+question+"\n"+"The best answer is:" + full_prompt = option_prompt + "\n" + question + "\n" + "The best answer is:" return full_prompt + + # Frames + Subs -# This video's subtitles are listed below: +# This video's subtitles are listed below: # 【subtitles】 # Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option. @@ -164,57 +169,58 @@ def videomme_doc_to_text(doc, model_specific_prompt_kwargs=None): # 【question】 # The best answer is: + def videomme_doc_to_text_subtitle(doc, model_specific_prompt_kwargs=None): cache_dir = os.path.join(base_cache_dir, cache_name) video_path = doc["videoID"] + ".mp4" - subtitle_path=os.path.join(cache_dir,"subtitle",doc["videoID"]+".srt") + subtitle_path = os.path.join(cache_dir, "subtitle", doc["videoID"] + ".srt") video_path = os.path.join(cache_dir, video_path) - if os.path.exists(subtitle_path): #Denote have subtitle - subtitle=open(subtitle_path).readlines() + if os.path.exists(subtitle_path): # Denote have subtitle + subtitle = open(subtitle_path).readlines() else: - subtitle="" - subtitles_prompt="This video's subtitles are listed below: \n" - if subtitle=="": - subtitle="No subtitles available" + subtitle = "" + subtitles_prompt = "This video's subtitles are listed below: \n" + if subtitle == "": + subtitle = "No subtitles available" else: - if "gemini_api_flag" in model_specific_prompt_kwargs: #specific for gemini_api - if model_specific_prompt_kwargs['gemini_api_flag']=="full subtitle": - textlist=[] + if "gemini_api_flag" in model_specific_prompt_kwargs: # specific for gemini_api + if model_specific_prompt_kwargs["gemini_api_flag"] == "full subtitle": + textlist = [] for ele in subtitle: pattern = r'(.*?)' matches = re.findall(pattern, ele) if matches: textlist.append(matches[0]) - subtitle_text="\n".join(textlist) + subtitle_text = "\n".join(textlist) else: if "frame_num" in model_specific_prompt_kwargs: - frame_num=model_specific_prompt_kwargs['frame_num'] - subtitle_by_frame,total_frame=extract_subtitles(video_path,subtitle_path) + frame_num = model_specific_prompt_kwargs["frame_num"] + subtitle_by_frame, total_frame = extract_subtitles(video_path, subtitle_path) uniform_sampled_frames = np.linspace(0, total_frame - 1, frame_num, dtype=int).tolist() - - subtitle_by_frame_idx=[] + + subtitle_by_frame_idx = [] for frame_idx in uniform_sampled_frames: - for idx,title in enumerate(subtitle_by_frame): - if frame_idx=title[0]: + for idx, title in enumerate(subtitle_by_frame): + if frame_idx < title[1] and frame_idx >= title[0]: subtitle_by_frame_idx.append(idx) - subtitle_by_frame_idx=list(set(subtitle_by_frame_idx)) + subtitle_by_frame_idx = list(set(subtitle_by_frame_idx)) - textlist=[] + textlist = [] for idx in subtitle_by_frame_idx: pattern = r'(.*?)' - raw_text=re.findall(pattern, subtitle_by_frame[idx][2]) + raw_text = re.findall(pattern, subtitle_by_frame[idx][2]) try: textlist.append(raw_text[0]) except: continue - subtitle_text="\n".join(textlist) - subtitle=subtitle_text + subtitle_text = "\n".join(textlist) + subtitle = subtitle_text - option_prompt="Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option." + option_prompt = "Select the best answer to the following multiple-choice question based on the video and the subtitles. Respond with only the letter (A, B, C, or D) of the correct option." question = doc["question"] option = str(doc["options"]) question = question + "\n" + option - full_prompt=subtitles_prompt+subtitle+"\n"+option_prompt+"\n"+question+"\n"+"The best answer is:" + full_prompt = subtitles_prompt + subtitle + "\n" + option_prompt + "\n" + question + "\n" + "The best answer is:" return full_prompt diff --git a/lmms_eval/tasks/vizwiz_vqa/utils.py b/lmms_eval/tasks/vizwiz_vqa/utils.py index 9ff8d3d8..9be1f574 100755 --- a/lmms_eval/tasks/vizwiz_vqa/utils.py +++ b/lmms_eval/tasks/vizwiz_vqa/utils.py @@ -3,14 +3,14 @@ import json import yaml import pathlib -import logging + import datetime import statistics from lmms_eval.tasks._task_utils.file_utils import generate_submission_file from lmms_eval.tasks._task_utils.vqa_eval_metric import EvalAIAnswerProcessor -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def vizwiz_vqa_doc_to_visual(doc): diff --git a/lmms_eval/tasks/vqav2/utils.py b/lmms_eval/tasks/vqav2/utils.py index 0951712a..f70a3965 100755 --- a/lmms_eval/tasks/vqav2/utils.py +++ b/lmms_eval/tasks/vqav2/utils.py @@ -1,7 +1,7 @@ import re import os import json -import logging + import datetime import statistics @@ -10,7 +10,7 @@ from lmms_eval.tasks._task_utils.vqa_eval_metric import EvalAIAnswerProcessor -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def vqav2_doc_to_visual(doc): diff --git a/lmms_eval/tasks/websrc/utils.py b/lmms_eval/tasks/websrc/utils.py index 5cc09e6d..3cd024ee 100644 --- a/lmms_eval/tasks/websrc/utils.py +++ b/lmms_eval/tasks/websrc/utils.py @@ -7,12 +7,10 @@ import numpy as np import os import json -import logging from PIL import Image from lmms_eval.tasks._task_utils.file_utils import generate_submission_file - -lmms_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger OPEN_ENDED_PROMPT = "Answer the question using a single word or phrase." @@ -63,7 +61,7 @@ def websrc_test_aggregate_results_for_submission(results, args): for result in results: out.update(result) json.dump(out, f, indent=4) - lmms_logger.info(f"Results saved to {path}.") + eval_logger.info(f"Results saved to {path}.") def websrc_aggregate_results(results): diff --git a/lmms_eval/tasks/worldqa/utils.py b/lmms_eval/tasks/worldqa/utils.py index aa528432..bd9b89ef 100755 --- a/lmms_eval/tasks/worldqa/utils.py +++ b/lmms_eval/tasks/worldqa/utils.py @@ -6,7 +6,7 @@ from lmms_eval.filters.extraction import ExtendedRegexFilter from lmms_eval.tasks.worldqa.worldqa_mc_evaluator import WorldQA_MC_Evaluator import json -import logging + import yaml from pathlib import Path import requests @@ -114,7 +114,7 @@ def get_eval(question: str, ground_truth: str, candidate: str, max_tokens: int, cache_dir = os.path.join(cache_dir, "videos") -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger # Pass in video path here diff --git a/lmms_eval/tasks/worldqa/worldqa_mc_evaluator.py b/lmms_eval/tasks/worldqa/worldqa_mc_evaluator.py index e1e2ae76..85e617c5 100644 --- a/lmms_eval/tasks/worldqa/worldqa_mc_evaluator.py +++ b/lmms_eval/tasks/worldqa/worldqa_mc_evaluator.py @@ -10,9 +10,8 @@ import pandas as pd from tqdm import tqdm -import logging -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger class WorldQA_MC_Evaluator: diff --git a/lmms_eval/tasks/youcook2/utils.py b/lmms_eval/tasks/youcook2/utils.py index 1761a8b1..f4e9af91 100644 --- a/lmms_eval/tasks/youcook2/utils.py +++ b/lmms_eval/tasks/youcook2/utils.py @@ -1,6 +1,6 @@ import os import yaml -import logging + import string import random import numpy as np @@ -15,7 +15,7 @@ COCO_METRICS = ["Bleu_4", "Bleu_3", "Bleu_2", "Bleu_1", "METEOR", "ROUGE_L", "CIDEr"] # , "SPICE"] -eval_logger = logging.getLogger("lmms-eval") +from loguru import logger as eval_logger def remove_nonascii(text): diff --git a/lmms_eval/utils.py b/lmms_eval/utils.py index 2e315fbe..80231c9c 100755 --- a/lmms_eval/utils.py +++ b/lmms_eval/utils.py @@ -35,36 +35,8 @@ from jinja2 import BaseLoader, Environment, StrictUndefined from itertools import islice import pytz -import logging - - -class PathFormatter(logging.Formatter): - def __init__(self, fmt=None, datefmt=None, timezone="UTC"): - super().__init__(fmt, datefmt) - self.timezone = timezone - - def formatTime(self, record, datefmt=None): - # Convert to Asia/Singapore timezone - ct = datetime.datetime.fromtimestamp(record.created, pytz.timezone(self.timezone)) - if datefmt: - s = ct.strftime(datefmt) - else: - try: - s = ct.isoformat(timespec="milliseconds") - except TypeError: - s = ct.isoformat() - return s - - def format(self, record): - # Extract the pathname from the record - pathname = record.pathname - # Split the pathname into folders - folders = pathname.split(os.sep) - # Get the last two folders and the filename - if len(folders) > 2: - record.pathname = os.sep.join(folders[-3:]) - return super(PathFormatter, self).format(record) +from loguru import logger as eval_logger SPACING = " " * 47 diff --git a/pyproject.toml b/pyproject.toml index 5f3b92fb..c65d3b8c 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta" [project] name = "lmms_eval" -version = "0.2.0" +version = "0.2.0.post1" authors = [ { name = "LMMMs-Lab Evaluation Team", email = "lmms_eval@outlook.com" }, ] @@ -28,6 +28,7 @@ dependencies = [ "httpx==0.23.3", "jsonlines", "numexpr", + "numpy==1.26.4", "peft>=0.2.0", "pybind11>=2.6.2", "pytablewriter", @@ -50,9 +51,10 @@ dependencies = [ "mpmath", "Jinja2", "openpyxl", + "loguru", "Levenshtein", "hf_transfer", - "tenacity", + "tenacity==8.3.0", "wandb>=0.16.0", "tiktoken", "pre-commit", diff --git a/tools/make_image_hf_dataset.ipynb b/tools/make_image_hf_dataset.ipynb new file mode 100755 index 00000000..89fa0a71 --- /dev/null +++ b/tools/make_image_hf_dataset.ipynb @@ -0,0 +1,292 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Contribute Your Models and Datasets\n", + "\n", + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/EvolvingLMMs-Lab/lmms-eval/blob/main/tools/make_image_hf_dataset.ipynb)\n", + "\n", + "This notebook will guide you to make correct format of Huggingface dataset, in proper parquet format and visualizable in Huggingface dataset hub.\n", + "\n", + "We will take the example of the dataset [`lmms-lab/VQAv2_TOY`](https://huggingface.co/datasets/lmms-lab/VQAv2_TOY) and convert it to the proper format." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Preparation\n", + "\n", + "We need to install `datasets` library to create the dataset and `Pillow` to handle images." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "shellscript" + } + }, + "outputs": [], + "source": [ + "!pip install datasets Pillow" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we need to login into Hugging Face to upload the dataset. You should goto the [Hugging Face website](https://huggingface.co/settings/tokens) to get your API token." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "shellscript" + } + }, + "outputs": [], + "source": [ + "!huggingface-cli login --token hf_YOUR_HF_TOKEN # replace hf_YOUR_HF_TOKEN to your own Hugging Face token." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "vscode": { + "languageId": "plaintext" + } + }, + "source": [ + "## Download Dataset\n", + "\n", + "We have uploaded the zip file of the dataset to [Hugging Face](https://huggingface.co/datasets/pufanyi/VQAv2_TOY/tree/main/source_data) for download. This dataset is a subset of the [VQAv2](https://visualqa.org/) dataset, with $20$ entries each from the `val`, `test`, and `test-dev` splits, for easier downloading." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "shellscript" + } + }, + "outputs": [], + "source": [ + "!wget https://huggingface.co/datasets/lmms-lab/VQAv2_TOY/resolve/main/source_data/sample_data.zip -P data\n", + "!unzip data/sample_data.zip -d data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can open `data/questions` to take a view of the dataset organization. We found that the toy-`VQAv2` dataset is organized as follows:\n", + "\n", + "```json\n", + "{\n", + " \"info\": { /* some infomation */ },\n", + " \"task_type\": \"TASK_TYPE\", \"data_type\": \"mscoco\",\n", + " \"license\": { /* some license */ },\n", + " \"questions\": [\n", + " {\n", + " \"image_id\": 262144, // integer id of the image\n", + " \"question\": \"Is the ball flying towards the batter?\",\n", + " \"question_id\": 262144000\n", + " },\n", + " /* ... */\n", + " ]\n", + "}\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Dataset Features _(Optional*)_\n", + "\n", + "You can define the features of the dataset. For more details, please refer to the [official documentation](https://huggingface.co/docs/datasets/en/about_dataset_features).\n", + "\n", + "* _Note that if the dataset features are consistent and all entries in your dataset table are non-null **for all splits of data**, you can skip this step._" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import datasets\n", + "\n", + "features = datasets.Features(\n", + " {\n", + " \"question_id\": datasets.Value(\"int64\"),\n", + " \"question\": datasets.Value(\"string\"),\n", + " \"image_id\": datasets.Value(\"string\"),\n", + " \"image\": datasets.Image(),\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Define Data Generator\n", + "\n", + "We use [`datasets.Dataset.from_generator`](https://huggingface.co/docs/datasets/v2.20.0/en/package_reference/main_classes#datasets.Dataset.from_generator) to create the dataset.\n", + "\n", + "The generator function should `yield` dictionaries with the keys corresponding to the dataset features. This can save memory when loading large datasets.\n", + "\n", + "For the image data, we can convert the image to [`PIL.Image`](https://pillow.readthedocs.io/en/stable/reference/Image.html) object.\n", + "\n", + "Note that if some columns are missing in some splits of the dataset (for example, the `answer` column is usually missing in the `test` split), we need to set these columns to null to ensure that all splits have the same features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import json\n", + "from PIL import Image\n", + "\n", + "\n", + "def generator(qa_file, image_folder, image_prefix):\n", + " with open(qa_file, \"r\") as f:\n", + " data = json.load(f)\n", + " qa = data[\"questions\"]\n", + "\n", + " for q in qa:\n", + " image_id = q[\"image_id\"]\n", + " image_path = os.path.join(image_folder, f\"{image_prefix}_{image_id:012}.jpg\")\n", + " q[\"image\"] = Image.open(image_path)\n", + " yield q" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate Dataset\n", + "\n", + "We generate the dataset using the generator function.\n", + "\n", + "Note that if you skip the step of defining dataset features, there is no need to pass the `features` argument. The dataset infer the features from the dataset automatically." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "NUM_PROC = 32 # number of processes to use for multiprocessing, set to 1 for no multiprocessing\n", + "\n", + "data_val = datasets.Dataset.from_generator(\n", + " generator,\n", + " gen_kwargs={\n", + " \"qa_file\": \"data/questions/vqav2_toy_questions_val2014.json\",\n", + " \"image_folder\": \"data/images\",\n", + " \"image_prefix\": \"COCO_val2014\",\n", + " },\n", + " # For this dataset, there is no need to specify the features, as all cells are non-null and all splits have the same schema\n", + " # features=features,\n", + " num_proc=NUM_PROC,\n", + ")\n", + "\n", + "data_test = datasets.Dataset.from_generator(\n", + " generator,\n", + " gen_kwargs={\n", + " \"qa_file\": \"data/questions/vqav2_toy_questions_test2015.json\",\n", + " \"image_folder\": \"data/images\",\n", + " \"image_prefix\": \"COCO_test2015\",\n", + " },\n", + " # features=features,\n", + " num_proc=NUM_PROC,\n", + ")\n", + "\n", + "data_test_dev = datasets.Dataset.from_generator(\n", + " generator,\n", + " gen_kwargs={\n", + " \"qa_file\": \"data/questions/vqav2_toy_questions_test-dev2015.json\",\n", + " \"image_folder\": \"data/images\",\n", + " \"image_prefix\": \"COCO_test2015\",\n", + " },\n", + " # features=features,\n", + " num_proc=NUM_PROC,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dataset Upload\n", + "\n", + "Finally, we group the dataset with different splits and upload it to the Huggingface dataset hub." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data = datasets.DatasetDict({\"val\": data_val, \"test\": data_test, \"test_dev\": data_test_dev})" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data.push_to_hub(\"lmms-lab/VQAv2_TOY\") # replace lmms-lab to your username" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, you can check the dataset on the [Hugging Face dataset hub](https://huggingface.co/datasets/lmms-lab/VQAv2_TOY)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "lmms-eval", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tools/make_hf_dataset.ipynb b/tools/make_video_hf_dataset.ipynb similarity index 93% rename from tools/make_hf_dataset.ipynb rename to tools/make_video_hf_dataset.ipynb index 9336331a..dd801eb8 100755 --- a/tools/make_hf_dataset.ipynb +++ b/tools/make_video_hf_dataset.ipynb @@ -162,26 +162,6 @@ "dataset = Dataset.from_pandas(df_items, features=features)" ] }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Token is valid (permission: write).\n", - "Your token has been saved in your configured git credential helpers (store).\n", - "Your token has been saved to /home/tiger/.cache/huggingface/token\n", - "Login successful\n" - ] - } - ], - "source": [ - "!huggingface-cli login --token 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 --add-to-git-credential" - ] - }, { "cell_type": "code", "execution_count": 9, From 09147186b6dc771a7cee16b52fa25f5d421b99fa Mon Sep 17 00:00:00 2001 From: Pu Fanyi Date: Wed, 3 Jul 2024 04:27:23 -0700 Subject: [PATCH 10/32] LiveBench June (#129) * init live bench * update path * chore: Refactor live_bench package structure and update dependencies * update * Merge remote-tracking branch 'origin/internal_main_dev' * Refactor live_bench package structure and update dependencies * Refactor live_bench package structure and update dependencies * Fix execution count in example.ipynb * extract_infomation * Refactor extract_infomation.py to improve text extraction from HTML * fix * fix * extract infomation * chore: Refactor extract_infomation.py for improved readability and maintainability * chore: Refactor data_generator prompt.md and check_prompt.md for improved clarity and instructions * lint * update * update prompt * extract infomation * add info * lint * update * filter * update version of live_bench * Update model version to gemini-1.5-pro * update * livebench_eval * livebench * update --- lmms_eval/evaluator.py | 2 +- lmms_eval/models/claude.py | 1 + lmms_eval/models/gemini_api.py | 4 +- lmms_eval/models/model_utils/load_video.py | 2 + lmms_eval/tasks/live_bench/live_bench.yaml | 29 ++ lmms_eval/tasks/live_bench/utils.py | 197 +++++++++ tools/live_bench/create_dataset.py | 12 + tools/live_bench/data_summary.ipynb | 336 ++++++++++++++++ tools/live_bench/example.ipynb | 371 +++++++++++++++++ tools/live_bench/filter.ipynb | 341 ++++++++++++++++ tools/live_bench/live_bench/__init__.py | 2 + tools/live_bench/live_bench/api/live_bench.py | 20 + .../live_bench/data_generator/__init__.py | 4 + .../live_bench/data_generator/check_prompt.md | 25 ++ .../data_generator/default_criteria.md | 16 + .../example/example_output.json | 57 +++ .../example/example_website.png | Bin 0 -> 559429 bytes .../live_bench/data_generator/live_bench.py | 145 +++++++ .../data_generator/live_bench_data.py | 116 ++++++ .../live_bench/data_generator/prompt.md | 17 + .../live_bench/data_generator/qa_generator.py | 379 ++++++++++++++++++ .../live_bench/data_generator/response.py | 12 + .../live_bench/data_generator/score_getter.py | 157 ++++++++ .../live_bench/data_generator/score_prompt.md | 20 + .../data_generator/utils/__init__.py | 0 .../live_bench/data_generator/utils/claude.py | 42 ++ .../utils/extract_infomation.py | 116 ++++++ .../live_bench/data_generator/utils/gemini.py | 37 ++ .../live_bench/data_generator/utils/gpt4v.py | 72 ++++ tools/live_bench/live_bench/driver/.gitignore | 1 + .../live_bench/live_bench/driver/__init__.py | 1 + .../live_bench/driver/load_driver.py | 71 ++++ .../live_bench/screen_shoter/__init__.py | 2 + .../live_bench/screen_shoter/screen.py | 30 ++ .../live_bench/screen_shoter/screen_shoter.py | 141 +++++++ tools/live_bench/live_bench/view.ipynb | 354 ++++++++++++++++ .../live_bench/websites/__init__.py | 2 + .../live_bench/websites/load_website.py | 34 ++ .../live_bench/live_bench/websites/website.py | 62 +++ .../live_bench/websites/website_list.yaml | 79 ++++ tools/live_bench/pyproject.toml | 47 +++ tools/live_bench/setup.py | 3 + tools/make_vatex.py | 31 ++ 43 files changed, 3388 insertions(+), 2 deletions(-) create mode 100644 lmms_eval/tasks/live_bench/live_bench.yaml create mode 100644 lmms_eval/tasks/live_bench/utils.py create mode 100644 tools/live_bench/create_dataset.py create mode 100644 tools/live_bench/data_summary.ipynb create mode 100644 tools/live_bench/example.ipynb create mode 100644 tools/live_bench/filter.ipynb create mode 100644 tools/live_bench/live_bench/__init__.py create mode 100644 tools/live_bench/live_bench/api/live_bench.py create mode 100644 tools/live_bench/live_bench/data_generator/__init__.py create mode 100644 tools/live_bench/live_bench/data_generator/check_prompt.md create mode 100644 tools/live_bench/live_bench/data_generator/default_criteria.md create mode 100644 tools/live_bench/live_bench/data_generator/example/example_output.json create mode 100644 tools/live_bench/live_bench/data_generator/example/example_website.png create mode 100644 tools/live_bench/live_bench/data_generator/live_bench.py create mode 100644 tools/live_bench/live_bench/data_generator/live_bench_data.py create mode 100644 tools/live_bench/live_bench/data_generator/prompt.md create mode 100644 tools/live_bench/live_bench/data_generator/qa_generator.py create mode 100644 tools/live_bench/live_bench/data_generator/response.py create mode 100644 tools/live_bench/live_bench/data_generator/score_getter.py create mode 100644 tools/live_bench/live_bench/data_generator/score_prompt.md create mode 100644 tools/live_bench/live_bench/data_generator/utils/__init__.py create mode 100644 tools/live_bench/live_bench/data_generator/utils/claude.py create mode 100644 tools/live_bench/live_bench/data_generator/utils/extract_infomation.py create mode 100644 tools/live_bench/live_bench/data_generator/utils/gemini.py create mode 100644 tools/live_bench/live_bench/data_generator/utils/gpt4v.py create mode 100644 tools/live_bench/live_bench/driver/.gitignore create mode 100644 tools/live_bench/live_bench/driver/__init__.py create mode 100644 tools/live_bench/live_bench/driver/load_driver.py create mode 100644 tools/live_bench/live_bench/screen_shoter/__init__.py create mode 100644 tools/live_bench/live_bench/screen_shoter/screen.py create mode 100644 tools/live_bench/live_bench/screen_shoter/screen_shoter.py create mode 100644 tools/live_bench/live_bench/view.ipynb create mode 100644 tools/live_bench/live_bench/websites/__init__.py create mode 100644 tools/live_bench/live_bench/websites/load_website.py create mode 100644 tools/live_bench/live_bench/websites/website.py create mode 100644 tools/live_bench/live_bench/websites/website_list.yaml create mode 100755 tools/live_bench/pyproject.toml create mode 100755 tools/live_bench/setup.py create mode 100644 tools/make_vatex.py diff --git a/lmms_eval/evaluator.py b/lmms_eval/evaluator.py index 0104b01a..b05f00d1 100755 --- a/lmms_eval/evaluator.py +++ b/lmms_eval/evaluator.py @@ -325,7 +325,7 @@ def evaluate( # hack: remove image columns to speed avoid loading images and speed up postprocessing # reason: doc_iterator will actually load image if it's in the doc. docs = task.test_docs() if task.has_test_docs() else task.validation_docs() - if "d170" not in task_name and "dc100" not in task_name and "dc200" not in task_name and "llava_wilder" not in task_name and "livebench" not in task_name: + if "d170" not in task_name and "dc100" not in task_name and "dc200" not in task_name and "llava_wilder" not in task_name and "live_bench" not in task_name: remove_cols = [] features = docs.features # If it is an Image instance or a Sequence of Image instance. Remove it diff --git a/lmms_eval/models/claude.py b/lmms_eval/models/claude.py index 4c967e88..ff066d35 100644 --- a/lmms_eval/models/claude.py +++ b/lmms_eval/models/claude.py @@ -238,6 +238,7 @@ def generate_until(self, requests) -> List[str]: pbar.update(1) continue + response_text = message.content[0].text res.append(message.content[0].text) pbar.update(1) diff --git a/lmms_eval/models/gemini_api.py b/lmms_eval/models/gemini_api.py index 4a43c9af..4dbc25bd 100644 --- a/lmms_eval/models/gemini_api.py +++ b/lmms_eval/models/gemini_api.py @@ -31,7 +31,7 @@ class GeminiAPI(lmms): def __init__( self, - model_version: str = "gemini-1.5-flash-latest", + model_version: str = "gemini-1.5-pro", modality: str = "image", timeout: int = 120, continual_mode: bool = False, @@ -46,6 +46,8 @@ def __init__( if self.continual_mode and response_persistent_folder is None: raise ValueError("Continual mode requires a persistent path for the response. We will cache the Gemini API response in this path and use it for future requests. Please provide a valid path.") self.response_persistent_folder = response_persistent_folder + if not os.path.exists(self.response_persistent_folder): + os.makedirs(self.response_persistent_folder) self.response_persistent_file = os.path.join(self.response_persistent_folder, f"{self.model_version}_response.json") if os.path.exists(self.response_persistent_file): diff --git a/lmms_eval/models/model_utils/load_video.py b/lmms_eval/models/model_utils/load_video.py index 25be5fa4..dbb3cf6f 100644 --- a/lmms_eval/models/model_utils/load_video.py +++ b/lmms_eval/models/model_utils/load_video.py @@ -29,6 +29,8 @@ def record_video_length_packet(container): def read_video_pyav(video_path, num_frm=8): + container = av.open(video_path) + if "webm" not in video_path and "mkv" not in video_path: # For mp4, we try loading with stream first try: diff --git a/lmms_eval/tasks/live_bench/live_bench.yaml b/lmms_eval/tasks/live_bench/live_bench.yaml new file mode 100644 index 00000000..1612931b --- /dev/null +++ b/lmms_eval/tasks/live_bench/live_bench.yaml @@ -0,0 +1,29 @@ +dataset_path: lmms-lab/LiveBench +dataset_kwargs: + token: True +task: "live_bench" +test_split: test +dataset_name: 2024-06 +output_type: generate_until +doc_to_visual: !function utils.livebench_doc_to_visual +doc_to_text: !function utils.livebench_doc_to_text +doc_to_target: "answer" +generation_kwargs: + max_new_tokens: 1024 + temperature: 0 + top_p: 1.0 + num_beams: 1 + do_sample: false +process_results: !function utils.livebench_process_results +metric_list: + - metric: gpt4_eval_score + aggregation: !function utils.livebench_aggregate_results + higher_is_better: true +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "" +metadata: + version: "2024-06" + api_type : openai + gpt_eval_model_name: "gpt-4o" diff --git a/lmms_eval/tasks/live_bench/utils.py b/lmms_eval/tasks/live_bench/utils.py new file mode 100644 index 00000000..f8381293 --- /dev/null +++ b/lmms_eval/tasks/live_bench/utils.py @@ -0,0 +1,197 @@ +from pathlib import Path +import yaml +import os +import requests +import logging +import time +import base64 +import openai +import json +from io import BytesIO +from tqdm import tqdm +import pandas as pd +import numpy as np + + +eval_logger = logging.getLogger("lmms-eval") + + +with open(Path(__file__).parent / "live_bench.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + + config = yaml.safe_load("".join(safe_data)) + +GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] +API_TYPE = config["metadata"]["api_type"] + +if API_TYPE == "openai": + API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") + API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") + headers = { + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json", + } + +elif API_TYPE == "azure": + API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") + API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") + headers = { + "api-key": API_KEY, + "Content-Type": "application/json", + } + +_PROMPT_WITH_IMAGE = """\ +[Question] + +{prompt} + +[Assistant Response] + +{generation} + +[Ground Truth Response] + +{reference} + +[System] + +Rate whether the assistant response correctly matches the ground truth, in regards to the image above. + +The rating should be 0-10, where 0 is incorrect and 10 is correct. + +Below is the specific criteria for rating: + +{criteria} + +Total score is out of 10. If the model's answer cannot be provided due to political reasons, please assign a score of 0 for further processing. If the model's response is biased due to political factors, please score it based on its understanding of the image, but reduce the objectivity score accordingly. + +Your response should be in the JSON format: +```json +{{ + "Explanation": "(your explanation)", + "Rating": "(int)" +}} +``` +""" + + +def format_prompt(question, ground_truth_answer, answer, criteria): + return _PROMPT_WITH_IMAGE.format(prompt=question, generation=answer, reference=ground_truth_answer, criteria=criteria) + + +def get_chat_response(base64_images, question, ground_truth_answer, answer, criteria, max_retries=5, wait_time=10): + client = openai.OpenAI(api_key=API_KEY) + + content = [] + for base64_image in base64_images: + content.append({"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}}) + prompt = format_prompt(question, ground_truth_answer, answer, criteria) + content.append( + { + "type": "text", + "text": prompt, + } + ) + + messages = [ + { + "role": "user", + "content": content, + } + ] + + # payload = { + # "model": GPT_EVAL_MODEL_NAME, + # "response_format": {"type": "json_object"}, + # "max_tokens": 1024, + # "temperature": 0.0, + # } + + for attempt in range(max_retries): + try: + response = client.chat.completions.create(model=GPT_EVAL_MODEL_NAME, messages=messages, max_tokens=1024, response_format={"type": "json_object"}, temperature=0.0) + response_data = response.choices[0].message.content + # print(response_data) + response_data = json.loads(response_data) + rating = response_data["Rating"] + explanation = response_data["Explanation"] + return rating, explanation, GPT_EVAL_MODEL_NAME + except requests.exceptions.RequestException as e: + eval_logger.warning(f"Request failed on attempt {attempt + 1}: {e}") + time.sleep(wait_time) + if attempt == max_retries - 1: + eval_logger.error(f"Failed to get response after {max_retries} attempts") + return -1, str(e), GPT_EVAL_MODEL_NAME + except Exception as e: + eval_logger.error(f"Error on attempt {attempt + 1}: {e}") + return -1, str(e), GPT_EVAL_MODEL_NAME + + +def image_to_base64(pil_image): + buffered = BytesIO() + pil_image.save(buffered, format="PNG") + return base64.b64encode(buffered.getvalue()).decode("utf-8") + + +_images = {} + +dataset = None + + +def livebench_doc_to_visual(doc): + img_list = [image.convert("RGB") for image in doc["images"]] + return img_list + + +def livebench_doc_to_text(doc, model_specific_prompt_kwargs=None): + if model_specific_prompt_kwargs is None: + model_specific_prompt_kwargs = {} + pre_prompt = model_specific_prompt_kwargs.get("pre_prompt", "") + post_prompt = model_specific_prompt_kwargs.get("post_prompt", "") + return f"{pre_prompt}{doc['question']}{post_prompt}" + + +SUBTASKS = ("Basic Understanding", "Contextual Analysis", "Deeper Implications", "Broader Implications", "Further Insights") + + +def livebench_process_results(doc, results): + base64_images = [image_to_base64(image) for image in livebench_doc_to_visual(doc)] + subtask = doc["subtask"] + criteria = doc["criteria"] + if subtask not in SUBTASKS: + subtask = "further insights" + if not results: + return {"gpt4_eval_score": {"rating": -1, "explanation": "No response", "model_name": "N/A", "subtask": subtask}} + rating, explanation, model_name = get_chat_response(base64_images=base64_images, question=doc["question"], ground_truth_answer=doc["answer"], answer=results[0] if results else "", criteria=criteria) + if rating >= 0: + return {"gpt4_eval_score": {"rating": rating, "explanation": explanation, "model_name": model_name, "subtask": subtask, "id": doc["id"]}} + else: + return {"gpt4_eval_score": {"rating": -1, "explanation": explanation, "model_name": "N/A", "subtask": subtask, "id": doc["id"]}} + + +def livebench_aggregate_results(results): + sum_score, count = 0, 0 + score = {} + for subtask in SUBTASKS: + score[subtask] = [] + for result in results: + if result["rating"] == -1: + continue + sum_score += result["rating"] / 10 + count += 1 + subtask = result["subtask"] + if subtask not in SUBTASKS: + subtask = "further insights" + score[result["subtask"]].append(result["rating"] / 10) + res = pd.DataFrame([(subtask, len(score[subtask]), np.mean(score[subtask]) * 100) for subtask in SUBTASKS], columns=["Subtask", "Count", "Average Score"]) + print("=" * 50) + print(res) + print("=" * 50) + if count == 0: + eval_logger.warning("No valid scores to aggregate") + return sum_score / count * 100 if count > 0 else None diff --git a/tools/live_bench/create_dataset.py b/tools/live_bench/create_dataset.py new file mode 100644 index 00000000..c02d811c --- /dev/null +++ b/tools/live_bench/create_dataset.py @@ -0,0 +1,12 @@ +from live_bench.websites import load_websites, load_websites_from_file +from live_bench import LiveBench + + +if __name__ == "__main__": + website = load_websites() + dataset = LiveBench(force_clear=False, name="2024-06") + dataset.capture(websites=website, driver_kwargs={"headless": True}, screen_shoter="single_screen", shoter_kwargs={"screen_size": (1024, 1024)}, qa_generator="gpt4v", scorer="gpt4v", checker="gemini") + + website = load_websites_from_file("/data/pufanyi/project/lmms-eval/temp/images") + dataset.capture(websites=website, screen_shoter="human", qa_generator="gpt4v", scorer="gpt4v", checker="gemini", driver_kwargs={}, shoter_kwargs={}, generator_kwargs={}) + dataset.upload() diff --git a/tools/live_bench/data_summary.ipynb b/tools/live_bench/data_summary.ipynb new file mode 100644 index 00000000..f7bc83e9 --- /dev/null +++ b/tools/live_bench/data_summary.ipynb @@ -0,0 +1,336 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/data/pufanyi/anaconda3/anacondabin/envs/live_bench/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "from datasets import load_dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "data = load_dataset(\"lmms-lab/LiveBench\", \"2024-06\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "\n", + "df = data[\"test\"].to_pandas()\n", + "df = df[df[\"checker\"].notna()]" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "False" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.iloc[620][\"checker\"] is None" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "subtask\n", + "Contextual Analysis 477\n", + "Deeper Implications 132\n", + "Basic Understanding 118\n", + "Further Insights 63\n", + "Broader Implications 52\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"subtask\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "df = df.sample(frac=1).reset_index(drop=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_303711/5529174.py:1: DeprecationWarning: DataFrameGroupBy.apply operated on the grouping columns. This behavior is deprecated, and in a future version of pandas the grouping columns will be excluded from the operation. Either pass `include_groups=False` to exclude the groupings or explicitly select the grouping columns after groupby to silence this warning.\n", + " top_50_per_subtask = df.groupby('subtask').apply(lambda x: x.nlargest(50, 'score'))\n" + ] + }, + { + "data": { + "text/plain": [ + "250" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_50_per_subtask = df.groupby('subtask').apply(lambda x: x.nlargest(50, 'score'))\n", + "top_50_per_subtask.reset_index(drop=True, inplace=True)\n", + "len(top_50_per_subtask)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "subtask\n", + "Basic Understanding 50\n", + "Broader Implications 50\n", + "Contextual Analysis 50\n", + "Deeper Implications 50\n", + "Further Insights 50\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "top_50_per_subtask[\"subtask\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9.276" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import numpy as np\n", + "\n", + "np.mean(top_50_per_subtask[\"score\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from datasets import Dataset, Features\n", + "import datasets\n", + "\n", + "def gen():\n", + " for d in top_50_per_subtask:\n", + " yield d\n", + "\n", + "data = Dataset.from_pandas(top_50_per_subtask, features=Features({\n", + " \"id\": datasets.Value(\"int32\"),\n", + " \"images\": datasets.Sequence(datasets.Image()),\n", + " \"website\": datasets.Value(\"string\"),\n", + " \"question\": datasets.Value(\"string\"),\n", + " \"answer\": datasets.Value(\"string\"),\n", + " \"criteria\": datasets.Value(\"string\"),\n", + " \"subtask\": datasets.Value(\"string\"),\n", + " \"data_generator\": datasets.Value(\"string\"),\n", + " \"checker\": datasets.Value(\"string\"),\n", + " \"date_time\": datasets.Value(\"string\"),\n", + " \"screen_shoter\": datasets.Value(\"string\"),\n", + " \"screen_size\": datasets.Value(\"string\"),\n", + " \"score\": datasets.Value(\"int32\"),\n", + " \"reason\": datasets.Value(\"string\"),\n", + " \"scorer_name\": datasets.Value(\"string\"),\n", + " }))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Dataset({\n", + " features: ['id', 'images', 'website', 'question', 'answer', 'criteria', 'subtask', 'data_generator', 'checker', 'date_time', 'screen_shoter', 'screen_size', 'score', 'reason', 'scorer_name'],\n", + " num_rows: 250\n", + "})" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'id': Value(dtype='int32', id=None),\n", + " 'images': Sequence(feature=Image(mode=None, decode=True, id=None), length=-1, id=None),\n", + " 'website': Value(dtype='string', id=None),\n", + " 'question': Value(dtype='string', id=None),\n", + " 'answer': Value(dtype='string', id=None),\n", + " 'criteria': Value(dtype='string', id=None),\n", + " 'subtask': Value(dtype='string', id=None),\n", + " 'data_generator': Value(dtype='string', id=None),\n", + " 'checker': Value(dtype='string', id=None),\n", + " 'date_time': Value(dtype='string', id=None),\n", + " 'screen_shoter': Value(dtype='string', id=None),\n", + " 'screen_size': Value(dtype='string', id=None),\n", + " 'score': Value(dtype='int32', id=None),\n", + " 'reason': Value(dtype='string', id=None),\n", + " 'scorer_name': Value(dtype='string', id=None)}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data.features" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Map: 100%|██████████| 250/250 [00:00<00:00, 273.33 examples/s]it/s]\n", + "Creating parquet from Arrow format: 100%|██████████| 3/3 [00:00<00:00, 4.98ba/s]\n", + "Uploading the dataset shards: 100%|██████████| 1/1 [00:18<00:00, 18.34s/it]\n" + ] + }, + { + "data": { + "text/plain": [ + "CommitInfo(commit_url='https://huggingface.co/datasets/lmms-lab/LiveBench/commit/89ce4e07cf0988b2305b7227ac2677d481e6112a', commit_message='Upload dataset', commit_description='', oid='89ce4e07cf0988b2305b7227ac2677d481e6112a', pr_url=None, pr_revision=None, pr_num=None)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data.push_to_hub(\"lmms-lab/LiveBench\", \"2024-06\", split=\"test\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "lmms-eval", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tools/live_bench/example.ipynb b/tools/live_bench/example.ipynb new file mode 100644 index 00000000..73332ab3 --- /dev/null +++ b/tools/live_bench/example.ipynb @@ -0,0 +1,371 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/data/pufanyi/anaconda3/anacondabin/envs/live_bench/lib/python3.11/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + } + ], + "source": [ + "from random import sample\n", + "\n", + "from live_bench.websites.website import DefaultWebsite\n", + "from live_bench.websites import load_websites\n", + "\n", + "# website = load_websites()\n", + "# website = sample(website, 1)\n", + "# website[0].url\n", + "website = [DefaultWebsite(url=\"https://www.asahi.com/\")] # , DefaultWebsite(url=\"https://www.bbc.com/sport\"), DefaultWebsite(url=\"https://www.bbc.com/business\")]" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "could not detect version_main.therefore, we are assuming it is chrome 108 or higher\n" + ] + } + ], + "source": [ + "from live_bench.data_generator.utils.extract_infomation import InfomationExtractor\n", + "from live_bench.screen_shoter import get_shoter\n", + "from live_bench.driver import load_driver\n", + "\n", + "shoter = get_shoter(\"single_screen\")\n", + "driver = load_driver()\n", + "w = shoter(driver, website[0])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "extractor = InfomationExtractor()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "response = extractor.extract_infomation(w)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "**Here is something you can take as reference.**\n", + "\n", + "## Text Extracted in the HTML\n", + "\n", + "Below is the text extracted from the website for you to take reference:\n", + "BBC Home - Breaking News, World News, US News, Sports, Business, Innovation, Climate, Culture, Travel, Video & Audio\n", + "\n", + "What son's conviction means for President Biden\n", + "The guilty verdict is unlikely to change voters' minds, but it will be a personal blow for the US president.\n", + "1 hr ago | US & Canada\n", + "\n", + "Hunter Biden found guilty on all counts in gun trial\n", + "The US president's son is found guilty of lying about his drug use when buying a handgun in 2018.\n", + "- The struggles and scandals of Hunter Biden\n", + "\n", + "Blinken says fate of ceasefire plan down to Hamas\n", + "The US diplomat says Israel's prime minister \"reaffirmed his commitment\" to a Gaza ceasefire plan.\n", + "2 hrs ago | Middle East\n", + "\n", + "Ukraine 'hits missile launch sites in Russia'\n", + "The mayor of the city of Kharkiv says the situation there is \"calmer\" as Russia has been shelling less.\n", + "1 hr ago | Europe\n", + "\n", + "Four US college instructors stabbed in public park in China\n", + "The instructors were on a daytime visit to a public park when they were attacked, Cornell College says.\n", + "4 hrs ago | Asia\n", + "\n", + "Animal-rights protesters attack portrait of King\n", + "Animal-rights protesters attack a portrait of King Charles III, in a London gallery.\n", + "2 hrs ago | UK\n", + "\n", + "Warning shots from South as NK soldiers cross border\n", + "The incident at the DMZ comes at a time of heightened tensions between the two Koreas.\n", + "11 hrs ago | Asia\n", + "\n", + "## Image Features\n", + "\n", + "From the screenshot of the news website you provided, here is the analysis based on the images displayed alongside the corresponding news headings and text:\n", + "\n", + "1. **Image Associated with Hunter Biden's Conviction**:\n", + " - **Description**: The image depicts Hunter Biden escorted by, possibly, security personnel or aides. He seems to be dressed in a formal dark suit and appears to be descending stairs or possibly exiting a vehicle. He carries an air of seriousness, likely reflective of the gravity of his legal situation.\n", + " - **Relevance**: This image effectively captures the serious, personal, and public nature of the judicial proceedings against the President's son, making the situation more relatable to the audience. It directly ties to the news confirming Hunter Biden’s guilty verdict in a gun trial related to lying about drug use.\n", + "\n", + "2. **Image Accompanying the Article on Biden's Supporters**:\n", + " - **Description**: The accompanying image shows a group of enthusiastic supporters holding signs, with one prominently reading \"Say Yes to Biden,\" suggesting a political rally or campaign event. The participants display expressions of support and enthusiasm.\n", + " - **Relevance**: This image provides a visual contrast to the first, highlighting the ongoing support for the Biden family or campaign despite the legal issues faced by Hunter Biden. It serves to illustrate the political backdrop and public opinion dynamic mentioned in the news headlines.\n", + "\n", + "These images serve different purposes:\n", + "- The first image personalizes the news story, putting a face to the name in a high-stakes legal controversy. It underlines the personal and public challenges faced by the Biden family due to the conviction.\n", + "- The second image contextualizes the broader political support for the Biden family, suggesting that despite personal legal woes, there is a segment of the populace fervently supporting them.\n", + "\n", + "The clear connection between the images and the corresponding textual content on the news site helps readers visualize and better understand the unfolding events, enhancing the impact of the news storytelling.\n", + "\n", + "## Interesting Points\n", + "\n", + "The BBC news website, as demonstrated through the detailed examination of its content, offers a dynamic and visually engaging approach to news presentation. Here’s a deeper analysis of how it distinguishes itself:\n", + "\n", + "1. **Comprehensive and Geographically Diverse News Coverage**:\n", + " - The content spans a wide range of geographical locations including the US, Middle East, Europe, Asia, and the UK. Each news piece targets a major recent event, reflecting the website’s commitment to global news coverage. This expansive geographic focus ensures that readers have access to a broad spectrum of significant, impactful news.\n", + "\n", + "2. **Varied Content Themes**: \n", + " - The news themes are diverse, covering political, social, and cultural issues. From the legal troubles of a high-profile political figure’s son in the US to a ceasefire plan in the Middle East and violent incidents in Asia, the website covers a wide array of topics. This variety meets different readers' interests and keeps the content engaging.\n", + "\n", + "3. **Immediate Relevance**:\n", + " - The website's content is timely, as indicated by timestamps such as “1 hr ago” and “2 hrs ago.” This reflects the website’s commitment to providing the latest news, which is crucial for maintaining reader engagement and trust in a digital age where current information is highly valued.\n", + "\n", + "4. **Stylistic and Engaging Visual Design**:\n", + " - The use of compelling images alongside the news articles plays a critical role in storytelling. For instance, the image of Hunter Biden descending steps with a serious demeanor visually reinforces the gravity of the news about his conviction. \n", + " - Meanwhile, the image of supporters holding \"Say Yes to Biden\" signs juxtaposed with Hunter Biden's legal news offers a visual narrative of continued support amidst political strife, underscoring the complexity and depth of public and personal life in politics.\n", + "\n", + "5. **Interactive and Multimedia Features**:\n", + " - The use of tags such as \"OLIVE\" beside the breaking story of Hunter Biden indicates an interactive or breaking news feature that likely offers real-time updates and extensive coverage. This kind of multimedia integration enhances user interaction and engagement.\n", + "\n", + "In summary, the BBC news website sets itself apart through a combination of up-to-date, visually engaging, and comprehensively covered news items that cater to a global audience with varied interests. The effective use of images not only contextualizes the stories but also adds a layer of emotional and visual impact, making the news relatable and striking.\n" + ] + } + ], + "source": [ + "print(str(response))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This screenshot from a news website contains several images corresponding to different news stories. Let's examine each image and extract relevant details:\n", + "\n", + "1. **Image associated with the Michael Mosley news story:**\n", + " - The image depicts a middle-aged couple, smiling warmly at each other in a sunny, natural outdoor setting. This photo likely portrays Dr. Michael Mosley with his wife, representing a human interest angle to the story about Dr. Mosley's disappearance on the Greek island of Symi. The caption, \"'We will not lose hope,' says Michael Mosley's wife,\" implies a context of hope and determination amidst difficult circumstances.\n", + "\n", + "2. **Image linked to the news about the hostages freed in Gaza:**\n", + " - This image features a group of soldiers with one individual in civilian clothing at the center, being lifted or celebrated, possibly right after a rescue scenario. The setting appears to be a rugged outdoor area, suggestive of a conflict or military zone, which aligns with the news story about hostages being freed in Gaza. The inclusion of armed personnel and a jubilant expression on the civilian's face highlights the relief and successful outcome of a dangerous operation.\n", + "\n", + "3. **Image for the Nova festival hostages news:**\n", + " - This image depicts a motorboat on clear water under bright skies, possibly implying the geographic setting related to Michael Mosley’s disappearance near the Greek island of Symi. The serene environment contrasts starkly with the concerning news of his disappearance during what might have been a routine outing or travel.\n", + "\n", + "These images serve as visual supplements to the written content, providing readers with a clearer, more immediate understanding of the stories. They help bridge the emotional and contextual gaps that pure text might leave, allowing readers to engage more deeply with the news events. Each image is carefully selected to evoke specific sentiments and to provide visual context to the news headlines and summaries.\n" + ] + } + ], + "source": [ + "print(response[\"features\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from live_bench import LiveBench" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "dataset = LiveBench(force_clear=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'2024-06'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset.name" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "could not detect version_main.therefore, we are assuming it is chrome 108 or higher\n", + "Capturing websites: 0%| | 0/1 [00:00 5)\n", + "filtered_data" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    idimageswebsitequestionanswersubtaskdata_generatorcheckerdate_timescreen_shoterscreen_sizescorereasonscorer_name
    00[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Look at the image provided. Which article head...\"BBC tracks down smuggler behind Channel cross...Deeper Implicationsgpt4vgemini2024-06-27 14:36:42single_screen(1024, 1024)10The answer accurately identifies the relevant ...gpt4v
    11[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Look at the image. What significant global eve...The image of a young girl wearing a life jacke...Contextual Analysisgpt4vgemini2024-06-27 14:36:42single_screen(1024, 1024)10The answer correctly identifies Biden and Trum...gpt4v
    22[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}What detail in the image connected to the \"Bol...The \"Interpol Bolivia\" background visible in t...Deeper Implicationsgpt4vgemini2024-06-27 14:36:42single_screen(1024, 1024)7Authenticity (4/5): The answer is reasonable b...gpt4v
    33[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Analyze the visual composition of the article ...The image of the young girl, potentially a mig...Contextual Analysisgpt4vgemini2024-06-27 14:36:42single_screen(1024, 1024)8The question directly relates to assessing the...gpt4v
    44[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Focusing on the article \"BBC tracks down smugg...The image of a child, juxtaposed with an artic...Broader Implicationsgpt4vgemini2024-06-27 14:36:42single_screen(1024, 1024)10The answer directly correlates with the story'...gpt4v
    \n", + "
    " + ], + "text/plain": [ + " id images \\\n", + "0 0 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "1 1 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "2 2 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "3 3 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "4 4 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "\n", + " website \\\n", + "0 {'url': 'https://www.bbc.com/'} \n", + "1 {'url': 'https://www.bbc.com/'} \n", + "2 {'url': 'https://www.bbc.com/'} \n", + "3 {'url': 'https://www.bbc.com/'} \n", + "4 {'url': 'https://www.bbc.com/'} \n", + "\n", + " question \\\n", + "0 Look at the image provided. Which article head... \n", + "1 Look at the image. What significant global eve... \n", + "2 What detail in the image connected to the \"Bol... \n", + "3 Analyze the visual composition of the article ... \n", + "4 Focusing on the article \"BBC tracks down smugg... \n", + "\n", + " answer subtask \\\n", + "0 \"BBC tracks down smuggler behind Channel cross... Deeper Implications \n", + "1 The image of a young girl wearing a life jacke... Contextual Analysis \n", + "2 The \"Interpol Bolivia\" background visible in t... Deeper Implications \n", + "3 The image of the young girl, potentially a mig... Contextual Analysis \n", + "4 The image of a child, juxtaposed with an artic... Broader Implications \n", + "\n", + " data_generator checker date_time screen_shoter screen_size \\\n", + "0 gpt4v gemini 2024-06-27 14:36:42 single_screen (1024, 1024) \n", + "1 gpt4v gemini 2024-06-27 14:36:42 single_screen (1024, 1024) \n", + "2 gpt4v gemini 2024-06-27 14:36:42 single_screen (1024, 1024) \n", + "3 gpt4v gemini 2024-06-27 14:36:42 single_screen (1024, 1024) \n", + "4 gpt4v gemini 2024-06-27 14:36:42 single_screen (1024, 1024) \n", + "\n", + " score reason scorer_name \n", + "0 10 The answer accurately identifies the relevant ... gpt4v \n", + "1 10 The answer correctly identifies Biden and Trum... gpt4v \n", + "2 7 Authenticity (4/5): The answer is reasonable b... gpt4v \n", + "3 8 The question directly relates to assessing the... gpt4v \n", + "4 10 The answer directly correlates with the story'... gpt4v " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "filtered_data.to_pandas().head()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Map: 100%|██████████| 409/409 [00:30<00:00, 13.63 examples/s]?it/s]\n", + "Creating parquet from Arrow format: 100%|██████████| 5/5 [00:00<00:00, 34.92ba/s]\n", + "Uploading the dataset shards: 100%|██████████| 1/1 [00:38<00:00, 38.26s/it]\n" + ] + }, + { + "data": { + "text/plain": [ + "CommitInfo(commit_url='https://huggingface.co/datasets/lmms-lab/LiveBench/commit/7eaf5caa899cc0b8bae7156cc534e12825a97565', commit_message='Upload dataset', commit_description='', oid='7eaf5caa899cc0b8bae7156cc534e12825a97565', pr_url=None, pr_revision=None, pr_num=None)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "filtered_data.push_to_hub(\"lmms-lab/LiveBench\", \"2024-06\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "live_bench", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tools/live_bench/live_bench/__init__.py b/tools/live_bench/live_bench/__init__.py new file mode 100644 index 00000000..ec6dc67d --- /dev/null +++ b/tools/live_bench/live_bench/__init__.py @@ -0,0 +1,2 @@ +from live_bench.data_generator import LiveBench +from live_bench.api.live_bench import generate_live_bench_from_path, generate_live_bench diff --git a/tools/live_bench/live_bench/api/live_bench.py b/tools/live_bench/live_bench/api/live_bench.py new file mode 100644 index 00000000..17403e66 --- /dev/null +++ b/tools/live_bench/live_bench/api/live_bench.py @@ -0,0 +1,20 @@ +from live_bench.websites import load_websites, load_websites_from_file +from live_bench import LiveBench + + +def generate_live_bench(*, force_clear=False, screen_shoter="single_screen", qa_generator="gpt4v", scorer="gpt4v", checker="gemini", driver_kwargs={}, shoter_kwargs={}, generator_kwargs={}): + website = load_websites() + dataset = LiveBench(force_clear=force_clear) + dataset.capture(websites=website, screen_shoter=screen_shoter, qa_generator=qa_generator, scorer=scorer, checker=checker, driver_kwargs=driver_kwargs, shoter_kwargs=shoter_kwargs, generator_kwargs=generator_kwargs) + dataset.upload() + + +def generate_live_bench_from_path(path, *, force_clear=False, qa_generator="gpt4v", scorer="gpt4v", checker="gemini", driver_kwargs={}, shoter_kwargs={}, generator_kwargs={}): + website = load_websites_from_file(path) + dataset: LiveBench = LiveBench(force_clear=force_clear) + dataset.capture(websites=website, screen_shoter="human", qa_generator=qa_generator, scorer=scorer, checker=checker, driver_kwargs=driver_kwargs, shoter_kwargs=shoter_kwargs, generator_kwargs=generator_kwargs) + dataset.upload() + + +if __name__ == "__main__": + generate_live_bench() diff --git a/tools/live_bench/live_bench/data_generator/__init__.py b/tools/live_bench/live_bench/data_generator/__init__.py new file mode 100644 index 00000000..65fd9781 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/__init__.py @@ -0,0 +1,4 @@ +from live_bench.data_generator.qa_generator import get_generator, get_random_generator +from live_bench.data_generator.live_bench_data import LiveBenchData +from live_bench.data_generator.live_bench import LiveBench +from live_bench.data_generator.response import Response diff --git a/tools/live_bench/live_bench/data_generator/check_prompt.md b/tools/live_bench/live_bench/data_generator/check_prompt.md new file mode 100644 index 00000000..4532e561 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/check_prompt.md @@ -0,0 +1,25 @@ +I would like you to act as a quizmaster who designs questions based on a provided image that would challenge adults to think critically. The image in question is a screenshot from the homepage or section of news website. You are to create high-quality questions focusing on the information displayed within this webpage, which might contain multiple news articles. Your questions should specifically target the picture and the thematic information of a single article. Your question should be answerable, and checkable. Please disregard redundant elements of the website such as headers, and focus on the events depicted in the images themselves. If it is challenging to pose questions about a specific article due to insufficient information, design questions around the main information and events depicted in the image. + +Now, you are given a screenshot of the homepage of a news website, with a already generated question and answer. Your task is to refine the question and answer, and refractor them to make the question more answerable, checkable, and challenging. If you don't think the question is good, please provide a new question and answer. + +Note that the subtask must be one of these five: + +- Basic Understanding +- Contextual Analysis +- Deeper Implications +- Broader Implications +- Further Insights + +If you think the question does not correspond to the subtask, you have two options: +1. Modify the question to correspond to the subtask. +2. Modify the subtask to correspond to the question. + +However, you should not change the original question's subtask unless the original subtask is not one of these five. If you feel the original question's subtask does not match the question, modify the question to match the subtask instead of rewriting the subtask. + +Please note that although the image may contain a lot of political content, try to avoid questions with any political bias when asking questions. The question should focus on understanding and thinking about the image, not on political opinions. Within your capabilities, try to make the questions more challenging. However, you also need to consider the gradability of the questions you set. It is reiterated that what you need to assess is the ability to understand the news webpage, not politics. + +You should try to be innovative, and you can also try different types of questions, like multiple-choice questions, fill-in-the-blank questions, or even image-text matching questions, and sequencing questions if possible. Within your capabilities, try to make the questions more challenging. + +If you think the question is not good, or it is not answerable, please provide a new question and answer. + +Reminder again that you cannot change the original subtask unless the original subtask is not one of the five listed above. diff --git a/tools/live_bench/live_bench/data_generator/default_criteria.md b/tools/live_bench/live_bench/data_generator/default_criteria.md new file mode 100644 index 00000000..f276b439 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/default_criteria.md @@ -0,0 +1,16 @@ +### 1. Authenticity (5 points) +- **5 Points**: The information is directly observable in the image or can be reasonably inferred with strong evidence. +- **3 Points**: The information has a plausible connection to the image but requires assumptions that are not strongly supported by the image. +- **1 Point**: The information cannot be observed or reasonably inferred from the image; it seems unrelated or speculative. + +### 2. Logical Coherence (3 points) +- **3 Points**: The answer logically follows from the question and maintains consistency with the image context. +- **2 Points**: There are minor logical gaps or inconsistencies in the answer relative to the question. +- **1 Point**: The answer is logically inconsistent or contradictory to the question or image context. + +### 3. Clarity and Precision (2 points) +- **2 Points**: The question and answer are clearly articulated and precisely address specifics of the image. +- **1 Point**: The question or answer is somewhat vague or overly general, lacking specific details related to the image. +- **0 Points**: The question or answer is unclear or too ambiguous to determine relevance to the image. + +Each Q&A pair can score a maximum of 10 points. The sum of points from these three categories determines the final score for each pair. Provide a brief explanation for each rating, focusing on how well the Q&A adheres to these criteria. diff --git a/tools/live_bench/live_bench/data_generator/example/example_output.json b/tools/live_bench/live_bench/data_generator/example/example_output.json new file mode 100644 index 00000000..2526e7df --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/example/example_output.json @@ -0,0 +1,57 @@ +{ + "Basic Understanding": [ + { + "Question": "Which of the following topics is NOT covered in the news articles shown in the image?\nA) Middle East politics\nB) Technological advancements\nC) Natural disasters\nD) Animal welfare", + "Answer": "C) Natural disasters", + "Criteria": "Give 10 marks if correctly selected C, otherwise 0 marks." + }, + { + "Question": "Based on the image and the headlines provided on the BBC webpage, fill in the blank with the most appropriate word or phrase:\n\"The article titled 'UN Security Council backs US Israel-Gaza ceasefire plan' is accompanied by an image of ______, which symbolizes the impact of the conflict on civilians and the urgency for a ceasefire.\"", + "Answer": "The article titled 'UN Security Council backs US Israel-Gaza ceasefire plan' is accompanied by an image of **children amidst rubble**, which symbolizes the impact of the conflict on civilians and the urgency for a ceasefire.", + "Criteria": "Award 10 marks for the correct answer 'children amidst rubble', 5 marks for partially correct synonyms or related phrases, and 0 marks for incorrect answers." + } + ], + "Contextual Analysis": [ + { + "Question": "In the image associated with the article about the US Security Council backing the Israel-Gaza ceasefire plan, what are the people in the image doing, and how do their actions and expressions relate to the content of the article?", + "Answer": "In the image associated with the article about the US Security Council backing the Israel-Gaza ceasefire plan, the people are navigating through rubble, indicating a scene of destruction. One person is climbing over debris, while another is looking directly at the camera with a serious expression. Their actions and expressions reflect the aftermath of conflict and the urgency of the situation, which aligns with the article's focus on the need for a ceasefire and the release of hostages held by Hamas.", + "Criteria": "Award up to 10 marks based on the accuracy and detail of the response: 2 marks for identifying the scene of destruction, 2 marks for mentioning a person climbing over debris, 2 marks for noting someone looking directly at the camera with a serious expression, 4 marks for correctly relating these observations to the aftermath of conflict, the urgency of the situation, and the article's focus on ceasefire and hostage release." + }, + { + "Question": "How might the image of children navigating through rubble relate to the themes discussed in the article about Netanyahu and Gaza ceasefire?", + "Answer": "The image powerfully underscores the humanitarian impact of the conflict, aligning with the themes discussed in the article where Netanyahu's political maneuvers are contrasted with the pressing need for a ceasefire to alleviate civilian suffering in Gaza.", + "Criteria": "Award up to 10 marks based on the accuracy and relevance of the response: 2 marks for identifying the humanitarian impact, 3 marks for linking the image to the themes of the article, 2 marks for mentioning Netanyahu's political maneuvers, 3 marks for correctly associating the need for a ceasefire with the alleviation of civilian suffering." + } + ], + "Deeper Implications": [ + { + "Question": "What broader issues are raised by the UN Security Council's backing of a ceasefire in the Israel-Gaza context?", + "Answer": "The broader issues include international involvement in regional conflicts, the effectiveness of UN resolutions in conflict resolution, and the ongoing debate over the balance between national security and humanitarian needs in conflict zones.", + "Criteria": "Award up to 10 marks based on the accuracy and completeness of the response: 3 marks for mentioning international involvement in regional conflicts, 3 marks for discussing the effectiveness of UN resolutions in conflict resolution, 4 marks for addressing the debate over the balance between national security and humanitarian needs in conflict zones." + }, + { + "Question": "How does the image of a child in distress in a green field relate symbolically to the outcomes or themes of conflict depicted in the ceasefire article?", + "Answer": "The image symbolically represents the innocent casualties of conflict, particularly how children are affected, resonating with the urgency and necessity of a ceasefire to protect the most vulnerable populations from the consequences of prolonged conflict.", + "Criteria": "Award up to 10 marks based on the accuracy and relevance of the response: 2 marks for identifying the symbolic representation of innocent casualties, 3 marks for specifically mentioning how children are affected, 3 marks for relating this to the urgency and necessity of a ceasefire, 2 marks for connecting these elements to the protection of vulnerable populations." + } + ], + "Broader Implications": [ + { + "Question": "Rank the news articles in the image in order of their potential global impact, from highest to lowest.", + "Answer": "1. **UN Security Council backs US Israel-Gaza ceasefire plan**\n2. **Netanyahu walks tightrope as US urges Gaza ceasefire deal**\n3. **Apple brings ChatGPT to iPhones in AI overhaul**\n4. **Aircraft carrying Malawi vice-president goes missing**\n5. **Fire at famous Bangkok market kills 1,000 animals**\n6. **Four US college instructors stabbed in public park in China**\n7. **Baltimore shipping channel reopens after bridge collapse**", + "Criteria": "Award up to 10 marks based on the accuracy of the ranking: 2 marks for correctly placing the UN Security Council article first, 2 marks for correctly placing the Netanyahu article second, 1 mark each for correctly placing the next three articles (Apple, Aircraft, Fire), and 1 mark each for correctly placing the last two articles (Stabbing, Bridge). Deduct 1 mark for each position an article is away from its correct placement." + } + ], + "Further Insights": [ + { + "Question": "Based on the image, which of the following statements best explains the potential global impact of the events described in the news articles?\nA. The US-Israel-Gaza ceasefire plan backed by the UN Security Council is likely to reduce tensions in the Middle East, potentially leading to a more stable geopolitical environment in the region.\nB. The introduction of ChatGPT to iPhones is expected to significantly disrupt the technology market, overshadowing the geopolitical events in the Middle East and Africa.\nC. The fire at the Bangkok market, which killed 1,000 animals, is likely to have a more profound impact on global environmental policies than the ceasefire plan in the Middle East.\nD. The disappearance of the aircraft carrying the Malawi vice-president is expected to lead to a major international search and rescue operation, diverting attention from other global issues.", + "Answer": "A. The US-Israel-Gaza ceasefire plan backed by the UN Security Council is likely to reduce tensions in the Middle East, potentially leading to a more stable geopolitical environment in the region.", + "Criteria": "Award up to 10 marks based on the accuracy and relevance of the response: 10 marks for selecting option A, 0 marks for any other option. Detailed justification for scoring: Option A directly addresses the reduction of tensions and potential stabilization in the Middle East, which is a significant global impact. Other options, while plausible, do not directly relate to the primary global impact as depicted in the provided image and articles." + }, + { + "Question": "Considering the current global attention on AI, how might the article about Apple bringing ChatGPT to iPhones in an AI overhaul reflect on broader technological trends and consumer expectations?", + "Answer": "This article reflects broader trends in AI integration into consumer technology, highlighting competitive dynamics in the tech industry, and growing consumer expectations for sophisticated AI features in everyday devices.", + "Criteria": "Award up to 10 marks based on the depth and accuracy of the response: 3 marks for identifying AI integration into consumer technology, 3 marks for discussing competitive dynamics in the tech industry, 4 marks for explaining the growth in consumer expectations for sophisticated AI features in everyday devices." + } + ] +} diff --git a/tools/live_bench/live_bench/data_generator/example/example_website.png b/tools/live_bench/live_bench/data_generator/example/example_website.png new file mode 100644 index 0000000000000000000000000000000000000000..880fbb9821b056f5c65241d583301f134d888e82 GIT binary patch literal 559429 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�Sz~kcbYN*u79R}x8! z-QpGFMy5|08y~?q)q6C1&5buGSD`_Mtt-Ssk567yiH^Up5;;@<~c z8F~^hpf_1Uz#@Rj;jt-B>=h+Fk9Dm?nCXy32Cd%p%cSeOSOj6bq=0MsDl^hdyIer;}GquoVd zXDB&?+k*{&*bg^tJT5!!Y5}ao!TkGnKj798-?+T%<^J*tXRv%QHu}+Umz#gfl^Q@b zaQ~ea;@eG=`}X&<4~PFK$!c_fh1j2)U^`5d{n%vQZ+2ZNbp9R!Ke zy^fFo=Em=UfyZUKBHQ_@Ee%u)I1~WH53X;=SP)tBKU@~BNwWQBoJl(E`9UPAKAMlgF zYa2W_(vCxoGa>Db z5`k*n^3QVvbLnk$Ec;dQb5Kbx`zIeUtH$~r3+lOGt$>qNWTa&`C&Ta#v&5w|x=fN| z$C!R8Y)B(CC>c$@-Ir46&Bo2BsG5)>YQO^B6o|o_NFdwOdgG+7-6ZXruZ4Y(bqd&H z=*m_oNB~@3+uD)?98*KlKdAeos7TYiTEVe7B{>s4`m}Mvb_^q^_(Pxr7%~#Yex)@2 zXedoU18(RFWZO2zPOL6g`PVGpJQpjzMUrmn9G&i0PUbA+Pf#ebH`FWwS0xzy(-kb< z!_Ww)j7PU=91A|N1a-@pX3OYXBqzU;NA|QQ|9+})EJ{8}CKG4U$iVb@O{clAe;Q$jcP{`427r#u~ zp>Dy^G3`P){7q&D*3BzD`>=r6j=_^H5yc7bevupvb@WD6SIYn5S-mn7#seUweGWH1+Y94Bwh39J}xh!uvHsPT!$VSw5Kr+HMA?Ya4ux`8w66 z7u%F6%$AwNB-Z6sB@G2>*83cQ=EaYonYGyI6SZU*y0l&T<0Il#JJs14*?yOBO)w%i zG#I_y4k|BPi*0(e2jYZi>^vM=&CLIlwpU6_q?X~ZzJM7&_$=5tK{OB6iM2VmF0=0k zocfu+D`YY_D)w`bOZDtzV#$%-b#8k4#H&=yNzz7K2zf^Y1$1=4dbSg1lWM%+9OTO{ zVmhTLw3x+WY}MgpB`{z_?!ojD0}b@}rA+w}MZ9;e&Fs6e%SN=w<3l4dNErrkfK{Bs zY)B3bk)Lt@K)dpOtmEfuQ^tZkkg03C^Wg==(t&C!nC%9DEkzdRgl3NB2E|rsgPu^| zPX7qPj8p>6Xx3`A*6C60n`oD!8)48#nD?#}w+o+&Q$Dt}n_X+s3v?>i8V77;yt&+I zzCDET1}7x{*+&3X*Z0z7zIXXW-MHDpsq*;K6S_r4tIy}Y4RS;Xd`P|4?|UCKKTc0# zhiP6t1fjF?@v)X=c$71Gd*&)^r^9CXkl%|!i1dndZv3X8c+%TQx^LwvK>ZG3OKz#@k0(bg^ z?zA%$`PsIW>Qe$TnZR<~yIQ;9%jWc0YW=n$g*5sfUVOw9Je)?NvVMLwIrYprcoR*# z6Jh9XkNr3M!c^A+>#Y`xXvIDX3`(d;_n2oSBVkDs*&(mRfP)$h3Be6|B_ z-Y4@31}7REHwJ_!-y$1Tjk1ns?&4baEJ%m9X@+x>^_XmWKZJvC-u88TMD8k8CZjAI zO11m`T&GxsH%bvptRaCgh9zM6E9&sV_+I2_uY-ZSxnj)Tia8fu<4aIYd(?>+UbY0C zw@~eRo#T0?;w(I%lPv@0QUrNo_Y^=Og>>302F!kFRK%{)&U>E7i)3!XJRH95Fc^8c zar`^dUVR6R%j>HCSqO^(4jJ&Lr8(p|(Z!uOZo?u~&$UkM-YjozC$Rel0u3Wm<7YTP zqWJtU&3_S_+%sJFcAl=7(=qBCf3|V{7Lb5t?8T3U~(MS#W+(6S!-{hLv60>q@~mkV)#RCHPX z>2Y17{u(}8BFdR)nA31-uTCWl03EXHQIfAba_8wDH+=cy(s|uJebzH{ zaz33q=|rFX{htcY&W_pP+JM?yX^c1y&ETO zpzB{#@cAVrv!O9W(g|CIKr(f(KJ|Bzt(bmLZe`!@$u^kSG#d^_O5tRq%sE1~60<)zQ|-Q%Sy zTV?p$OsEf}H!ZM>rNZLvitS}#xz3n|hO=BTUphxYe84Ov3Xd)#k{Uiv@~vfGdnY1o znUnrZN0a@_miR~#+Qv%{bL%WN(@h7>#4{t%FhG&C3s_k21hCUEz~QqC(t5ct7*!@s z3KTGADZ~Sfix(v)*mU~)VZGDJpQk*yeY7}!nDNf@xp^j7#oMqNlZ3mjf>472@O_*2wq-E z@$HMvjqxhd9r1Oqt+cEq!}wL93=!>Ga5=Rg=pIU4N`j05 zW%Cj#wF>==+Z~3VvRT~9W-&s>_W7cysPMN-?;?{4Hk!y+LCxfYuI-(Fvze=G5?$=s zYU0cdN*r4T*wdlNwUNk50WBOnh@Bf+SYZq`jx8fDBEUpjZGG|Ueu~67@ygh_jJ{-b zsZOyT>uM$fSR+6Qc&@y_ zK)s%aO#%%#`4(dO2`kLiBb}(dpFt0)RgD2}=C4+N`~Xv`Ek9tzgn{T-o@SuiV}Ji9 zVRubIr%XEiWOJ&HFiT%q8Avl?lND{n z-_FUV%9~cN(1;kvUlTgS9U6-w8lw@7Gc%Z0c#T620;=85fUthz$Jg`u`BfmAjt&6C z7&WYuc&KcF#-^qo{IQdh?n)0*Xf2GyQGk$w%jFgdGzp;;NHPlvgqPbgpe=xp2g}fOleTOAG@vP=RX9{HcQm zK_qXwz)h|C2hqk*@CT{D8z^v_{)pSEgby2rsf<{;v8eCZVixQ4GGeQwdTR0HyKdglD{`R zD#kZGA+Ww;6nU6q2T6F%D@)T6$WFCSrJ`aS=4=$`n`HctE~13&lIar_@sF}*C9s`PSJhyQxO@GiY}(I^{L37 zx6%2AC*w`R63v&+-*hmy>mJ5^#4=WSE^L4@f1;-CN~|n9+umm%TQ*-+`1KwaSQ+BH zymg*mGE9&vbV;&hu_khNajn39*axiL0YdG=chf@gfcIrew$d+QEJDn`C81^weZiO_*=Kd_?d@Aux7i&?ghm(UFc`vszeDI5ncV9y1Sl6P>gx6Y zzl0S~{B)jmFdyc+@WCLFc~a;*G?4){odqy~HwR+b8?MPWzrNi4;9fP4pN3Vf(75k4 ze(|noKl%9Mf#Ru~7Mos+VA<{A1bvwsuo(Z71&ZAMTg|ZHaxTUNyA3E4c7AYAeRsZ{ zINapSebhdg9kA$vQa?2VG zI8ibl-V?xFtde;coV}3w-=_n22`xGpQn&p?z)(Ped_VQUYUfGxF!x2I2iSZCQ@@<6 zzG~GA|84Kw1JGiG1J&wS)z3H;V!KZ;a)r%1y!ZM7xVA zKyTz@Rq@7uCxLg~)!ddFv&HS#tD;JRpjDLQBHmiNoq{FS;EoLZ^S3}j?LNNVMv$y%Y4WdG>a?i0gPcm3oF)}|0fM~&h3)55o z))W?bp2})Vf^rjIXX{&-9Ef`p;&=YH7 zq*mZBkNhm33JXu{)J$jmqkvQ?Aw--ox&=1n(}!fN1%%5N_VzZEqSSaxDam)Bqd*A_Isn6&7bC8Lnc zFD!%@qd?^v%tKjZ86$A}nbDBpPLwc`NFA0ZZ+`KX`NhI%3*{R!>(EjT1IbLF1zVdj z9rM+!R&F9d#yL0GIMRDm^D$o5&n4rj;53TD397Tw8X^19D@ch>d4PGJbFFBjC*qGY zzZ*EB>;!~hnh`R@{7eCOmzfq({jpT_wG}EB&;{wrHJUCKoZHcyA|FTSh_i?<#zlJ^ zx`%43IL2w^AJNE2Bzh$(m`hcg;hL$GwI*i1I_cO}OPv|)~gaFtdSUi2`uIu;<>gNg|-_@wD0@4?f?c+wid2^}5TtcBtIn36LX zaa?$|QTs2b06g5F2FCuhzGGKHsq4JyWdBAw3gJ44j7$v#Ns!QU*1Azu5*wV#!#VBm zF@!oP5E&;TUtaz^@W9bK@qFF1W?ruaowOzE;LR;an?qS67C4hiRjo_<3YPCZppT(4 zJH;-9)%DhnV+R1VAGKXE+S{hAl9!2Lr;5ywD!(CeMh^I$R!oufKpG=( zn^ETiyo~Yj9irc_k2bw6jcDXN5s{JULcmrOpu73+w-vq5*Vb4uyPkaV1DrIC|Gs+i za_4pU(?k27%qCFO1SLF)GYq)g-S{XmTE0iRGo2lf?s|PBNs$*3zCLvU^s?+QfU=$5 zeeHJ>vs3ZMe`>rSuj^k0Ex+CygLr)WfDtB?%M|Y4NqzV8jvX6D6it`2#G*0x!{W>C z3T`k1in_AUX3tNz?2yj_dXOKTLvDQ4U2Z0yR_n?%Y8y@bg&Q%Hes7x~^|(F|&&1^v6G=pQr8gvxaQLp69G^sE0aZQ~ z%KU^Ed8ol=*vtCdFHfUf`Ie|i_{xLNK^zpQ@EW8A*)-W7kd`OZS@7(g=-E|bS}Q$B z)xP_HDs!DHVz$(&w8HvU27<<|k8OpCkFWo_9-e*5YVNH=Dq~mpb$90{#;f-fg~;qt z>N3JMZ-wsU$kB>ygs*{x(@qIFT9NPjJwyoyM`D{BhTF z@l5xG+J}IdTzGtG_tg>WMWnP6Y=osJV}1R;8@y;i=%wsvi)KO9B9lnT=UpsP^D5DB z(-^0kPsw-AOYiflGXsKdh=e@F6Lu0n|VHAo*VbHJg=4eApMPQS3x%qLn*j;NSL(b{? zeo0S{Uo1d{GMG?6?c^e$ryoAEF{jv2n`>4QbiR%pl6}JY6fDqnzu_ue7M9juv#@~Y z)I2hev6wWGJx+y&IO<|!Z$o#u--vG<#mmcLtx!l%ulXl-j$zvTHoJX+uPwhmh)!=k zlcb?wO&xI&KCzJaZvY0PCY<0p{CG)3`^S4Jrw=tdfVGk(nQuKP?9scgv}4~eK9IF$ z0q^Rx>27lfGPHjF96mLrOgd`5gyaG|PnubE`Yucdt7X@2$^p?n@Za$-3lQyk&1NcScQv0I>Oy zfbG;|b^ybc_&B-#3FoH8?dv@eB5dv6uAn=9q*(*Nd9)?MqE?C+NjEVHq4AN zy_;F(4&jd)m z2?zZEM2x?7Co(+|_IV4_vCE*B@8;&abxjhNz=#pjsEm5~3PBh;HAz2q2%iW&>vKjZ zOxC6*QX{cYB*-*L6J~B8Yqcpc8@FT()$Koscf$)bB?3LuXvgGIPG;Gq>B~=xuNwLw z2<;7Q7oZkFP-2ICV|2sSY#aOSJ0$d#F ztliLbUav`o%u6Ly=;USd_O$Edv%=45U@>kwGYrer3a9zML*uL1msgx~)*8Om${Buo zVZ&PHMQ1n}c-i~}}iB0*Q=UdB#61i^z5_!EC;H$Ol^}9O= z*^4g%cBMp~AKS5fx#%Yi!~FPKu%4r!g@GJo6s`h%DBsRKmK~RW&I8hQ%=J5}LWjT*x z%zn_1X@GX`ef=zcbX^E1U@`kg?*sKw)6)8-lf`5)%wMk+Qn{!(TCwqdWsP)SisS~+ zg9sS~Ko;Sl3LKNzF+7Qil>D2;m#Br-#^s8(n^jJ$G@_Ys5v{9=<%DX~8ZdahMTGp- zP98tz>^6O4p7*HIDChVpnAckNHpGJNw#-0AYlJ04F)S`;E=h(v5?|C(A~3eohJRo< z+RwZ{Ccx%39Tq{*B}^B0Wb07Y)HJ_@I)ge5u@>vA(?SVma;pB`PMm^SfJrxW&-R(K zQQ))br^Pxorqs(9EOvm9aydFatq-nbtxymr3Bx3jqcq+YbC{w+HV^t<3cvr}C~5t} ztk1W^ghZy|~C5MnXp3N1-A zQIVg92#dD6P7Rdj{ztf@0?xS#Z0Cv7K1UX3e?fddvc&T4ta?>wBb>5HA=aT^L4161 zqEX4-D4b3jv{86o^j4Azg9!}CeF%S3d`|nq`eR){Yb~=_M5NP$i&}jZVU*%nIHA}- zMSk9HDvI>_O&2wq-U3~DD&t(M!Jy;>zj=CjS$ZRKpE&f%$r>O~lK~WZKr)9eDoK8) zRj2S6_w}PJwiD58gEjVp0geO|iaH&TMxdv!rwe)#(PtD6Q}YOw6Q?wm5)x2_rNe+O z1apN*5uNUnD5Nc0^ zhRdJxsRc*1;y$FH`=i|zFP>f0{&j9QTWxIq>_~zO=}8NHvBt5uO*lgcMPt}=NWmbH zumy(*eqL_wXZaFx(i+|7di1Tk-`3|tZajcl+d0@2jfey0jG!FD`75^%dAo$7hYAUx z&IW@2o90*h_BGha5&AO0&iDmfAR?;5eJGJ0V(ZnTz5}4I^#s0Yh3E2isG(+dc4H%Z zpL=wb+kh!`CNBDX-Lj`rGY{|?0(y+0F)z!l+3&FmHG*U-}`=C zZW;d3e7JJR*FIXkyj9CknDkWD)3X`H2F`MBhZ|aIA`62}1V@btC`4_9@t{&Lik2nS zU+$l~{%#Hn^M+XyBG}DJ2#sFL5c>iv39RHDDd#Z|vPb$vnLg@5M!=?rECW%m$A;(S zl@3EAORB*E425zA?4w=pqL2Pm=p<6dmD3e$mE@9N0ayF+$Rbkat`AC6vl``Ue;7@9 zK)Fam3kw7l4&}o`4d`_qq==a0as{fzO+|xj6~85Fk9H0W*F6L?zh$y~NS`PGz{>pN zJ+IFMxiyYS-khi<_R76#*qIjZP~bzmSP_WBDE+b27_}=>CWd5IpZaM=+%29m3^--` z@oH+xRv8#;$Vg8!O2`P4+uU5K#F}r&8bO?rShA7d4p~J*ZcnOIBQL)y#yxt^$2Km$ z`JK_jb-pwhxk=)!;j;sSRE77_2YsY#cCg zThH|2`?s=JaA+CGLpoaefwtG^-RoVaf$t?P>C0lBWt~c9Gb7>K-!fh6w<#f&ow#*} z1C=iwasN(^)h4m+%B|-#U}dKApPrK`TB*36L?i%tAp&H;Wy?BQd!S$C>|a9DOI56Z zp4p!4VICmm*lC=oJJRNH@B-FT4xQcsYdhj5`PW&VI(vF@#a?&xULTi9+JO#LzJ1d9vfR|wt}Q#pjxs@g+acCZJ}Q6uC`>-2aQ{B z3_3SD0LnX~NH+Fs(HbSaTBngh(myXUTXN9x;%H5BcMmb^{)A~-aqmv%Ng{3RI+^9L zz>-94n_E~(*f)F3Sn);&lJa9-0(PJ1Aei>if-~c_y*csEZ_}GTqd(mj-CoZ%-389P za@XwyX=8D`@v&ebc=$s>=(3|2ptOcq^JVO8NEzet^9W)bYLHsBIegL#C1vQ}EPdzo zdF6HcnwzJ+&RhQ}R+K=g%R_eNI{Ld!mnoMiQJ=c*r8ZyGo(u>+?V1oyO~YnUinKnq zl=@mk;~!T=vw4Ixk>|#h|*Hh=Up1VpEmNc8qO#Yi;$h<#aYOOtReNWhq zt*5ApKviE9kJt#tbH2mG-n`14;pd>L92kEUG4vmgRuCAuj z?%&_{KZlWiN;lZS@l4^S&`n6oHKIEhBI8L*>uP-y%r9x2eV4uYq(c)SPA498L-8{w zzj*L4D`}fdNmErz0{e>6B<38-s;Q`~|5T>64}eKdTB8(n@>pK|HZpaGLQ|e;2WACU ztdz)@bt0qSq(-}Cwv@RP%Q3((%PEf_P@`pHnOh2$$UXR0T97@-h$^d_g61vIuYhd@ zI&A{J`SUFRwtn~aD?PCz6>$FO_S3{3PO37P@ULV7Dz3Oq7j9n!qW5Zm{e+O}TBFsp zXj+@Ypx3mksJUMwSQ8IUh@BZZ&``*IH#3X|{NbrmFX`wsuPNV z&V9Jj;zuJLKoRwP;HylAbDaOM&)TNuIql0;!ekXP($L67MeF!`m=I``v+sVNHTS&; z{llt7P4U$Q|%k|#JG|7{b zpY?BySl+VjJ{>s!a8tr*5q8XNWMHgH>bL$rH;1aUmoa69_C#G6NxnqKz(bcf)EPNo zZx0b~IaERMFd(HypykM#IzoRewi)mhm9*iA9H!*^VyWx&JcRQ2B0A`wmwI4-Kf;-# z{6U4D1>O0V3-*T}P37YsqX+C^+kR&KH*B!|h<#?B98zgp&Q!1!(I#B{wZQ4pC|Y`F za#AVEY|4@6==3V7JaK+VqNK`J)g)Grfk-0P67A71v$22$mOZRN@VgTq#&6Kp^y|u0 z4tMHVn;F+fsfXUB*oY}xYu|`+L?zwDAJIuHRo`9dj>Jmj%aa;PovF_{`_G%y3hzePM<Irr-XYzlZ{#Adz$LyUvHpw~Hbx z&mVaX|MoTnP-L=!JTEAFZ?`41g{HZ4FJsE`?%eXmtanc0;|%V;#LZ5)5FdKZ*S)Bu zX{QO)e|ZxidsxoAM1pWB;HozNW>n%qQF`P8t?$gmrF6XCgi!Mp65N~#KO*g4M@h%O&^r+ z_@_$yTg<18X5m0?$A1Ng(e6kE5&o@@d{pslW+s=@b4tLHh5rta$+g{pC`k~(_3;cjKW+@hZ6SCVNSRM_pr(M7iB$yY@go(|J6 zx-Rb4j1}*iH_ostSF5yn=EZN}`|9L#K*fJ_D$&rr?`E;QYqf{2^Ce9Y=QgsaigJ*~ z9^E|_2K|BWArNOjXL_uVPNjt^AMMS`n9IUbc&iIBCT-{Rq2(NLWdM@Z7CUQ$fKmy8 z@LMd2cbka_(j|SgnevRkL`_=Cg$dbaCRnC@{;1zCatIqZsYWBtL|r%O^a{{YL>I-ZR{1X^p@DR})UiMTTiGCLz1UxY5EP zpHVUx2rqC0tw%)aevEo)Y@KX&tl%*0 zq?DwgUR^Bmze>LBTlhxg$G{tmk%3RKy(kc8Mqw*UX6!bKHxz2!84tqUn5VxB>b35oucCiF$Pa5H0xW*x&Y<@Aq zJhbAe#do+uz_pR-_t@%TjbmB6V~OG(yMeyfbX}g4iV(vNI_{44rqK^lr$j&;BnNf{ zqBO0>#KxlQamxAjwIl4IuR-yj@y-OTzbB>m_o}2>R@c-tcCvk7#pGOa_I8W4XI`ga z80N}SxvYf=8Dw*HrzYQ{qeTe4i)zFJU;b`3S-&L{-qW47uv}*2TUuVtfO2KwSJwjT zpOfS2um4_=7U2_;3V(+h&ERpW8ohnTkPQkKeAtw_S(ti9w@1m8K zzS_#OI|Rku0#znBZ;h!d9&*>VKccevp5jCGi8)UXNqf(Uo-j$b=c4b_ek^CClX$Xg zd3W=ezx>TOI9vY^8+Q8h4na8=G#rUr)_xr)^zFE^3goyABR!k1kpQR9vVn#7V)U^F z9bEYP&N+_st68kcV4D zHVwEKcTplfn1yMCC@npWnwR2gl$mjt$i9AUTf+67ct4E+1Sw5T>zb8ng=$V7$BeWlio==Hzm^xICDtCQp#JGdaP#26HYf%ty7R(_J|=?DWrmMIQ#XJD`QwNY_}06 zT#B2xVRUq0)Uwp5g~kUZ_K6B_GatEU3@R4lKOVm~<^Nk(wYJN_#NK36mzOey=e40b zXKn}>Z%`N6gEMbMKU`?*N(%X;s7*g}iR7~Jj(zO%YJG58Z(-A!AbN=vMR`l_MTTfl@D?A`qr*BxgDlxulM0)YT zbbC%We!!pOIe5qJ`TC-_SYquOi0R$N!H39FD#Y#$V5i-6ZENHJ<1Bun;Ky5%G19)%5)1 zl1Hsk*zpTEX)t=2j$yjqUY4DK*+xPsBfHNk;TPq&2Nx0YM|`|IwhraqDBo4&3iWJV z{Lhr3XH)=2V4am?FN=X=_uXZ}dd1vmA%%PNSE;#?hT=$KCr-W}{2{y&{3atYp>@|M zW;fMCjWSaOUA-K2stC=P+cQG))IDL9-B*~Rbr!0+ZznkHJ=%ZE`1M%gWhN&6UX$AK zxIuO=_ie`O#Y{k?@+O~58U@m(L}7n|D#rvXQ1|7B0u^V7*o$Fn;A)ng*Zti46NzZu zHTq32avW;jBU|a;AQ*%LeS7V|Y#4U4(@bug zD%DtD|I$k0LQ*Xn5zE>B%QX-P>A<~T?GR1K|NU-Q)rPCs zj9o%D={_0d7@TE??9RIy|+kerjb3<|JBr#ruFS#wBG}dd|zVU=8qqm1% zwpzm(%8mw7)c@j3(8Tsxao1bh*B8CsfhUfWQJ`5;(+oxUPczsZ16O!NvQ+)Q9*L>i z!FjB%?@R4i8IyU{`;+?U#$$XEosc+z6PW`5F4i^&QSRw+ab z9Th-9PUf*()%ou_X@s|Y<%2||a-dRmgy_iVI@`xjKXUir7SnGw@&b7i09 z>9~~+Oy@i$tYPSLj6SZAsu0B?ni1*++CWE4oM@hKiGzuS%SACrR z)BSYesWp01U0Y)Ybrm>DEd>0)nz{*AR0LtD46Kfirgh=qbcSwf9#|1P!SUlU^=x5( zye+(aEtlDMKJRYwaceuSoaa;>o&Az&{xT-RF6q#b*dg@3PuTzSeU|$4XJ_G`B zkKKVsy8XDlr2iTA9OS)kgmJna-9(VUwr|}Wf=O)20y}(Mp-GqgK@hq5e(lb9!dKAB za@}1*mB_LUOA&hjs-cg@!$9k3%}C1JjKl6;gs+>4S~K8-?HNmUo>szM|CYjoFBLJ0 zGPFkb^BHZ*;jGs5Qbo6oz|a;i%BXHM5T1~WDCXbojqZ5G$K5@2%qX|%ywBhJB^P;Z zb)}&-tg_Ovr=Z%FE6b#YasuagPSrt!N0h@r??0e=`|{@h_(C}~ahD9QdM|@h-<+=A zUV5E`DIc<3`MpJx6M_@bn<^3bzIfJ~W7;P%HOVcIT%ZIWH*?q z{D}2qvGt$eh)4`X5rYezyz&ALuq+c7#*&C%Fy_R+h%e(>mA{|`?Q7>CqwKKI;9}peXC$? zM9#JQ7t{tFy1PsYrh`uYmO-6RFh1;{>WvxXlPV_D%<9Y647s*AxSATLvb-XM!~m6k(Dby_HDS8ePos(30 z>%M!Q{n(odT(MbUQY?poWpKb=Y1YnO;Ar6E;~xSSu{^|X-T#lHs}73l?ZSc}CEXp; zDM)vxOLvFJ(jYCJ(&&=XAzd!r-Q6kOxpc>Of8W15vokw)@B5x}p7R9TVTq`e+iTsj z<6dp0x5)pq$&5Y7fix4jg<2N|u^S7qZ(~+|P4oZdGHu;CD}0Ot<^UiqY+#GRgGcNf zS8PnD?Xa|QBaGB*70q~nN5uzT(e}UiWcTBR&aBq06U;j!|1CbhC{o8KS|IXzM3H;KczksHns!s|}5f2dKj`^A4J2&h$|K&n`{mB`WWy=Mm%uc7$+UXwd7zkNBs z1OtcG#AM%t;l*};%4YXdb9>(mAW{ifq4#n;z&o@*yF0Yqe|=L>P5j@~HSXCr{a+ZV z07>s_ESW%;oalubg~#>m`*&{(rkPBhc`A2{ReVt?pVoie&Dht&Ih_FMc&|^ewOyXI zs~F*z^Eifam&n|8{7N5uBuomxD!Rg)_TW9?N4?{v>kiF0z?Afo z@AcO4_vqfYm&)eMm1cMUCEC_Cn9KF7j`LPb*0x*atB3Htf=X@$%j(rpd*6}Ct^Vqr z((7-^*Eq4xLQywT>(nzKAT>Wt3h4&s-*NjgFG%qYTO9v&Cc~<1in)p6KD6Sr3)b;F zjc~92hlYMo-V2qLW)$SC;RF~dOtMOTXxU5{`=b|`yzJu z=5awF2yATS_TdU;j%MvS8dh9)fl-{p|2}Xh5g*6)<2&f{bgG2ExR}bp9uRxujy`KQ zrY`nD6S0l;Y??^~ubAL~!uFGE%_gTY0!|`)8i^rYTRX49r1)aOruA}oQS93Uo^YAW zuKNJ@3!z#xMh%PBLZ^@HBzC!z3X*yPhb7xpN|@gcXB18wo+%C&Cd0A4Je0@yv&3yJ zu1x#1Z>7d;^WkHV)*{tx)a2(RK3%2K(=P#}Uk~gpjqp$nv5t?7T=o;cke2B4V#Q^$ z3uZ;d`5U0fTPWa4^9X9J8p;0C6xt`zZ%R8ZtuB(5no}pp;r971_8$813r#54?4<%n zSN5RvP=Q^Vt0knh)(Z3hidfNZuywe0thx63Fv%8t!OfT75*|{ZEm>6&I zv|>P9%8p|x%7qKug*Nb@kBs({{0VgntV?E0C=e2zyo63B0T0m1L;^lYBOWZkV2lD! zRYNXp(Nn@M4=16glxYc{6PrMrLzu1*0}eI{?ERh|eBdfM%|C&|j{~$T$lIc*)xf4Xz5k-cW_s3=!0+HNT7YXZRd6NM>M8FB>t!Owj$FcC7$>Z2+dyKsV zQVJ6WeUvkITGlVc;(juw6K+WDkyddt3~RjWroLQE2dtl}?3Yn3^}fw#c$_CNh#}^4 zw;Gyu$1kQE>7&Avj6NK=4Gl*7t-jq6aN9&!0#C6XsoEF_(xbvkmAwr6?~9{d>2cGl zYHILsKS&^1TTHMwRe09tQ__@bAdPz%-&7Si)ZIW*h-ys>T*CA<1?Ooab|&Ne-V1r0 z?xMAyMKu5^O^ic0_WRQNL6={6scRKHSnZunEquu>c&Zl@TASTBjiij`|5y*LK1(t! z)_U*}8acsPC;i$JF~m<9S1Py!iRYE=lWyyU!2|b}meDjnp$r)J;0>vaBe&^aVH#+} z!l!o)&#^+_)RN!=QVXKE!mIBBzd_)VRO6&zm#eDu#yNyNX-wJ*rgEZm&~!@loM$Bv z%|f3co&?H`DT=kZ;Z#VVRD;NQMQd%hCN!NYVe=8V>{SzQo$K;%stMPu!8S-IkA7bK zEwrCD$QMK>PVXR{PTEs;9oIwF)Mp6hZKJ07=VO;!4la_gMs0?z!^W$iO$zrn_q}DpBW{snuJUYoQbS@V(ir#s?`j^%1pU3 zroyio_a?|jg=_kx*0wmN88J_`lPGgb6;9_)#jo>jqnOWU+K`thN6!yRdDuW~@4R~) z5OFNh^5WfI`FQ&uh{gu2+hyUh=Z70N`bh6D+wYX>9M^zKdXd=j;#Mglb#~I(cH?dQ zCPfOF5TdY_~Eb3&LG;o1}1+S2n_+S&yY(3>W6yjCS&uB-te zZ)ekDmo8td`$|ooYkgMcTT`>1inDfsq!uz!p9b$ylh@HTCm=iTJj?$e#%F8ZU&Q}u zuKxVd(eD!}X`0<~UCe(u>h~|O$5o{5*7i+&lTMy_;a_WaqidVKu=b>_{W+vNDpRO#8Pa~8(;f>WrR0mQz2UTCyHYJbY|k9fU` za$LU=IyDtcySPa9xAyQcxgXNG*k%xkSbHje?R^AtFYDW`?Ga4(#>j<_evhxyarkkX z;7k&^8C{B0`WoFf^R4)NdOdw?%UXNRczw1;djn*g_uoYT&*gN@|9alP8^pKrl-+dI zeig=d)-Cps=W`LycOHo86Hxh3q62qkw02Ma-!oo&$ynQ9^FKoZP*g1)liv2{B*%@c z)YLN$FX3%?@#RoyN2b4u134DACXR@#P(@}&nOVf`a%N}bDqVNKy~%Iv!>rvBSxuV9 z3#Tcd

    Ex+fo|-y8Li5Cs1|;dBwS!Dy#bnq4v}IpH#{-th(6ge)Kjr)ewTE*_Tzl zwMHH{13RWtur7tqzXk!7&Gxg{Kq@0<%!t{t_i|n6?weMbRw8A*+g`F_pnOs-?GfJo zE8O6$Q8mj5cXTg^X%IIS?I&YqQCMd;;2XI`z77HJehg)x=QiL7lI z0)vdvloBr9`e9@?dPVYPOs}4le?y3bw0DK)ah`yeO-$|dkthCGpivg*kM+;efGPoM zvV1X<__Iu1{n}AdTC^zT526h6yHfo4_2S@gMw{}FV0F_F+E-abSF3(H0l#2m)TX;e zteh9+pZL7S2eFEqJ09W{p_nhx+s}66W?roN8UkxMijt+MvAE~2kH6(keEuCWvNoZx z(y&l0$!kb)rfGb(@*l1A@GJm%Yy2*ClR#5!NOkX`^{aY^UOuJ`X=8Lp{{lP7`-;Am{UF&Hinv>UvlrnO=;pvMC}}(VBgaq%_mkm6Fiv zef#${2yL;|BMXnBDt!v6uQ$4Hb|xq12A{W97jcPkss|O3F+BAVKx?Y+(+6FL4m1jh zz#s<=MSR_iQ2>Kv`1{&{NJRdz?aOk<#Q1v!b54@EK2kenhJRlD8N%OR-PxDglU?m) zcS&q4og_YS*oaZOy+rZ~O0nRonv zR~Eu8h2Ri_=nW@@+hVWq;bd}9oI*(H;1pgwNwgL#8+!3k5V=sD#+Z^ah1lR1t`Fmn z@85mc)#|l#&z0KOZ2QWUp}4s(!otEbW7!*;Y}5z#lHO`j)k;9Vt;HSiR>>3pA$xbM zKc|81g-PB{Sy%MIUNSH@*yk3>*ZpLPsn-D4jVA$y6XkH7@L((rZ;!qriV?C-6#HQ9;ruO8nULqv<@5 zKwuf6%qj>PxJU;)iaV$3usf0H<5A?|$iG@x1aCM6++yHbV~Kj=*jt>BaZ<$nR(&nR=-o8t}!S?)MGxXR`DI~zG z)O7x|tem1}^L{4k7IFd37`UB|a&Ivpq2l^MQ^h6f?jD@i>aI_ZFZ!Xfjv|sUH{HHtpzw2?d@xO6xT&^=cVlz!=iRsyL%g5e&rSA8#=XV2Va{1qP9DTYuGB595A4b>sVMkg2 z-?x2#PIL4d6^LuyrsELJ`{>%X_1Kv8{2NJF)YIwm;-xRyXK=Vlvdc=4;xa|g?}=aI3+2{bt%pIRb<7QHTBgoGnxO2uK0Cpn zo2o8ex3R1Uc%jbjH@-;0WvaRH#|(TZJVleT+t%AQwG8-Lb?uqJZteN;UIbArL0vZk zdazJ?Iaj;5|FfhtJ|79f6eEi67v>+l2aYV$ho2L=h}XPWQk2w(E6A4z?IiWI;nifB zVcmXlGenxm3Dv}_eA@&#JB)=E@4#I45>eS1vy+v^%GKikVq%=G!LzuoH6*B>g@2b! zy#;=5wjywhd6)eHjU$E5QG|-CD)69(sVdsoeIA;+a6hCX+vy>?IbIwbTM^>-J*-Ke zCt!cX>i3d>SJWu!z+>9c#grv33+w4nwVirHJi#Bs5c$qVCYS0Uy9G!54hxL6;2&7{ zJ~FaS=m%{+*C#>zf4#Y~d-G)R7rab%Z)3}0xq=DD#JMsnBiX*{fM*IxIm< z483!43(*YK&sK~X*{P`ZINSvI@u^rn4+?_)R9X@;TVxh|7RCYzb9h=aW#Jjc?Ea_{ z>%Xk<z&eyZZOGEUYU^XSay)lX=)RZ}BeiljfX48fu) z5r-fD6vd2mSE3gY8k<$wdAA&(^rjO=yPWyn_Z$i;7R%Q3A9LSBzz&1Kz$< zwE6Qer9ySR)TLjy-mKUmamL<Eu4F@j3zj2RB?biGQ zS|2eXUqo^|HR;yXI3q6LzRCphg?+Fs5({j~P_Sbw})n`Zw@ zN08&|=BEn07?0?8BEX2Dlt<^#aD*GMx&N!%@cV&9$ZgsC;LZS`J-u*})*30^by2tP z;IXSH*U-ZEzB#2Hcj2`{l(<)(P*D}FO4hZ7&P{Na6OAQl{dR%O)UI?V-Ja6S7DlWL z`Acw|&)o;% zBY|-<%VyQL`d_++E~=akbdoF`r+BLG6Qpe)f<>$EqZ4;5=jOE~tRr)?t^X*k@yi*_ z&$z`v=}~v_uaMpXfDABr@-vJta(A*!%w?BRbB1v%$basda_afst^&-vr=D668P_;T zoV)uLQ*NTE85*pHs+!N!nv87V58;f}MZI~6efJaPB4ccKogVc?>6ZlOW--~9OBgLY zNyeETp(`aN1T}_Vo;f1nVWc=L|L&ygF|hPE$>96KUxGW$%F8@yI*KMb9o#CHd7RH- z5)t$YstE0&u3&tJn9u@L$vAc2DQUGNo>e|i6I}VpB~=-fZF8wiS|Og**U&`TqW{g<2mUg_2S{eL*vK_?b-^yYF$vjXkYFU|QM z?bJ-QbQ1i&Jo#HZEmgKh__dEGw>~K~-$Q6o2#u*+qgK4#{n;^Lzs?8lqWimp-{?Mh zr`9VRKLo4nxQWP*5DUqqpimuCK!&|Qv&6iwcBS&r@x_!x05m<1; zoroX$NZX@qm%J)F<4JDv$LI59uE!(70sJ5@I^_**(3^*yJ^r3 z(Nd2r7KXR`DOGJ)6V3)8IOnn@zVg=1XSDics1=X!0|WiH_P%v5mXZy=LQSwuydO+* zxT&y6@ho#j9*d2+hHXk>0!vZmQGjlxfE6T!C+W1AW|!DUpSpx%SYgE~8mNfq%E17; z9RSHr^BbP+({8B6HH8R?x-qzE68QbSJa{o#_8aaMz!${pFdY6fCPk$N7e_BK6NXzU zAKaG~a8yxoeyZ)K zq+CM97*jYS+&#W;yMIpSV5$*rVSh6{NF=NquNo$cMXI<#dO)CUZ2G5@Z^ijxqJ##m zw$tW(#sMx}-!UVvkEbD*YVZQQIFlP;zE0ZAFeOl*077B>K4+e{=9xsFo%1a-m$CU2 zg6xXV?G`-yE?zG>5^J3RKC;7zN5TgxW$@Qd%tS7YSEOP8PFouLDFr?-^GJ&o$9>3p!Q#}g;rGsO@;03(0!GWSV0bHDq)7u z_6tA-Y9e~U=Z&|k(6*+b!L5Eh6N7w!42Er=FdJW3oEla@a1w^b(GZZ)><+c)$B5?n zmluFVboKb&Xw;L}3P5x7={^?I+fS+vxz_0c4KqDL5bwWcPPjY){(Xzqyu}oa??0wf zXGltNJD62?(xg-Y)Wk=W!Sev#A-ZsC1*9IWekaR6G^cw5TkHQXbE8;ggZvqGHR~M&&FPUikqI#sx>GS;G~ zStP)6^4-iBCm9>Gv5~#k7WUU1V;Mj9EyYQqtNCKC#24!&rkP<94$|fWRfG#qHEp2% zwUy2h8|IQ2vIc1>VRH|2O>xtWZ;K2AuooGD1UZUZQE29ot~g##Dz7A`v*@?m#B657 zPC~@9=%R_JzfO2GZctr3L|iok5Me$(Xja}#leCPBJ157Xr%DxKs}KodjRpP_Qd@gD zL@-Svje^D$cZ^Iqn|#}(zUGtBbPmEri=1B4q^OP~zQmU3lKUuO2KG|WZ?%%G@!?GB zO6%OIHVXsYt=M3OBAnmuluq~80f8o5zed^X5lcR?1 z&8WuvB!jyl9bcYt@729umc&2e$To~%-}&@XFQi^yki_PH+zohs@sZu4CVaCL%7uW! zNG@@_u}M$+;awZDlVa&7uNy1(&^##_}Cc7AMZmxK~5G7>P+OhrIh~?OYG#irQXl z+g^_^10KA6PNr)zS5?uAc9Kb!+!bHFynbhbI49ilfD6Ge28E)4u2^R~*tqQThoS!S z7UDdV)eS@3&`{0#`ykyrtm)FeS(={&EHK_l+CJp0c7pJ1*@&O|U^FBG^2W)_Z_0US zH?U=u1F~wpK~KTL!~l^WolK)m`4zWW>C|0YLa$U3SPaBugsQN0er+e zT=>RY{&J{g=a_0#S&r^Ehn=Ng>o+!wT9` z$mv#1EcsyAI_=#oT%@_O8lF{#QX@kU#A~CuKjhss<;?;5yOAL#w({bgq1^n^JPQd( zXs+^nXRZwD{;6+mQiZwT2=Ue9pGMa$S5*XiJw0PH7vC7~I5JBYi_ZcaJ?~t(5pbI% zrL?s0WFlP9^;wc+r64_AzoV^7A`f=yNfsJ?g<4yFOhzu2tzRvX3_5iT#xpb=jWq*( zHuvK#%);6-w7{ll2!4;;D^sH+a&++B5`9rubwU6v;!T#Mpb@F9#etKpQZZ{ig=oYo zbR^%~1IsS%e$dUZ=wqiT2-U5-9|*OnXxLN)reE-1JfUWqHuvp)wP>EMz`{OyCRCXu z-OQ&RhHpSSSXOR-295KJ23BtYd%}B-K`$lbyddP&YI{r4-j}yC`3V2?AOH(g;cGQ9 zy~26oF{W*4VW@+)mZl8TtzE#qopREjk+0RE@L7kaV@YEKO>PSHM69~H=u^VDJDz#Y zYRKa@bZ5t4HtX8_l0)}8(;6d2l1Vz%)yJ`j%@G9I(^6#vL~MfR9tH=hkPa~Sc0rm$ zK?!q#Mb4Y6?;?kTA>88+HO}uUo@32L5DUp-%Lw8s>EA0)k4L_2I=WrS06D%)}NAIRCH8hWGd@I zDG6Q-S*z+RFO|8G$PAE?@oz8d_y>a!&joyoE2LnXUJ>k=<#Tc^qcM^5`7zEGKJ%Hj zd3863Rjkfq5zDeQEp|&mu6lmTXm4Jh{hw4;v3svD$OU@ zOnM^ne@4b?(TqFiM8IJP;H8Uv7%=+je50zEWs#R#^Hc!^=-d{%$?c3Hj_V7h#ICmMugXDx*6xQg% z$)3}Y(>?LPl_8+ForB*h3n+-1do0|`YC5ZdStJz{m9SvJ3{Vt(#KR_pEg`ek^$wy? zkH8*g_m8IK6-7fRN_iRFp&ve>$TEFz+_@k3=k-4)^j~hI`uA$s^txA{Y48_A*y>`S z8j%ayD<|-i`3HK_5qxn`l=ysvPHxQ!9b;KQ1nS7!k;HI1uM^dcX*B6fm48_K343DI zP+e9*fB1IBFxOM)UAVZ{*=8grf4aG7n%XS-^g%Q*x)}2rthj8yBnBl1Qa!1Z2O(_y z?s^QfS9)6_Z02hpL#tpNRG6YuR7Z-7AaJs|rX`L;p1T!Z=Lv6lP+S`32Z1cB`?OhL z@$E-I?tMfHzhy4fYSIR#jD4Wx8~>Dk*(DbnSjxbP5bPSctY}@uYOw(Ol<|jF)&eAH z9{q32ctfAMGPFw;>?SdG_~dAWL39d_C7p(N3!ymw3K3E67<^X zKx`qn3ab1N#B8UhqIgjtsO8{POGqiL+` zX=FnT8l;}K{;vA|zzru=fDbbIMKlWL#>woT{ewe`LSw7kz#2M#R(6(QGEyHFy=LU7#X+sJG zTKzDM6kD+1$$N7uY$3GNAl$=(q+G{z1535+?;_Yj(YC*MB7uP;0Ye5q)XMvrLPpIM z(R7|a8eb=H!wDKxxSs!j0nR#VgT5Jwol@o$^2iGpq|ZQmn!HOmD0yc_%%)4eEI5hO%`?gTte>`A;H9oGJ0b zvr>kiiBXsWmV-h=!#^MS8&y++zY&sEYZQSbn)&#M5jFU_X*+g0lBMugm-XkMg_Z4_ zno2P#;rO~V?AZg#nug7{af_NE8@n#&H5IAMOT>L2G}Xm5Wb@u5kjWMzaJX>tq|%;1 zz57uw@826rK(12=@!by2Dt?LAfHHmGEHAwo^5)CoF}~8ING&l>HC04WU5xDvD!J>J_vmht-D-p>@6>x z<@+H%oC!IwCt6?98x2%y*|Z7_VndKdqULP+3nSgSI3kITMuH2oPT+Z2+`NGE6Mv@w zYgclmQ7|-&T*zIW554vMVH2$qn;cA}=fB16geJa(*F!K|v&YFs5E{nR(KYxGQc!V# z{^LIYar8XF_dmMB9tL~MKFz6+UwSjF@yB$bipwq3VnHIy$onR!id$>chnM=q-a>!g z4i8@`FP#;EcaHDRH{6=DUns1wg)x1N%RrTt!D;|rPQ+IyyBtj6;^tP4PobuKKKrp) z?az>G^rD-B?^$@aFDE9eMR5GDZDbIaf&bg_$8n!Ij3GtTwmNHmr?WRYMqc=G7?fN4 zlX)#C<^DrTCJ*Z0>9K8sl4xADv}monI?*^bHR}CP519(*l>hq9Q%sUGDgi8$Ltx)^ ztyQKyBO_ssgJX+~+E>kaS%uY)sBajF+;Fcu!OM6~b89ZQZ$y=CosJyVR1ksXsD|{O zKQOmc{Di!C@UN`W4hy}MpmOfIh>-g+6*P58sGyn?#C97V<%zI@3S*w7)9eEqpGWF^ zq;Sl|9j;+53f{Y$%oD!U8wYTK%;(1o)!pwzh zcjl0}+5N=KqGj-WivgS(z!|u1^UxZ?JqnHZ%9}ChYtNPzkMfz`&dxzKiLTZKK4aXa z4_dlhas#|K7KWTzqsSHS=-5%*R%z5?B9_uQ$>&F!Mjvf#Zw51>o+FgL5Oh)?9p$z0Hj)d74IbF z=oG4Jlp>eSwOJ5~2q6b`HcO`-nV)2CL%!8DEY}f{GZmnyN|g*zcM0S(VwL9x^Di)3 zP7GP(7A4Mc{YclSdDUZ)?6P;RWE*qMBEzN*EbsS4Cby)4CY^DNC_MuZqvw~WS1aM| z*}{sWIdEvfxo72=V&*uxfzriuT$05~0kNC5lpT^mnfwPw&xPJ8{m+6y>Of z0G$LaDiFSwo<*%xygT{6c1U@!eCFFYQKfR@(91Su?*r7kaMYiYzQ=Q6+GnG^(zze7 z%;Q5?kDSjsBp|do^TSM5h%CcOxkNFA%q&BT=@O~gUp2}I6BmtBe-W`f)zxKYOMKq# zCJ5@XLy4*N5wdt+;UNE6Qrr-ZmU9v+NiIl{>BJK3n%i>Plxxp`h{#JooWNPMv^7i| z9}~atBSgzCB z@FyMYM_lK|u#SITsJIp}kG7SsuTDS#FJupWB@H@)pyj9|ludr&rBkv$-gTs-*0#Q& z-B^DSVccOVh&5}ELrU#|+G;-r@Emkzn2ac5lRW0u#M=EI09M2Rdw`D{f83WsE9 zPao|>Gia2U)1XvqgDvHw7ryJkP-uTC{ag3#Si*Dd2u+a>3Ao7|n0iNZCvIEDLzJ&j zHZb-oC^7-UJr(l3&ox9%bCQgM=rW5&K+&}cAuA+uienu ztbHVp<5b+j!-9V|egW?2Y@K%+?icL=c~I;usw~KI)P8>J>3Be_dYwXlaG81gM5n^G zd%V(~73X^vAJVr~0;vT&H+G^QW3vDU8ZCF&N@!6b6OMi3<`7H6{jNdJ+y0R$%s#=&wIa6q~%}Kgu73s9P(pS-)xD zt@{ET@l8i2^()kqmGKR%g`cEG^q^BMkk$h&*MW8UH@p!giiP}A`L|48>;>v-*2a6E zbMcMrNaP?pK;^7;!g?&66o`O6pYQM$3gIP;r+3sljOAsToh0@q9KC%1A zl82%j48_`}R{S#mKt3(3{>Jmme=T2D-uVRf8%qWJAgASo!zRxO_f|nyBR+Vn1fM$^ z!q?9d1ax)!XhZu`){_WtTZQxI$MqKHthh>3?4(~xF}c}QwKAK+s;s0dudQv(X zcuStP;*`;TBAvWl7o45RA&VFsejY!wLKFm!IY|T+TR2z?_>HdZr0g#+wvwWHv3`_J zbL?O`Eibz|a)LIkLQT-OSX0_JywG6N&vMY#a$|A&{Ue&n0gq~!*z=82F-4e89jC44`OAl(O>bCpW->ku_fmxCTAnUj1a(iW3_GDX6%)IYdy zN2a)qZ`kbANQJ-ZQJ7^m8C)*yEoU`3$X7?dIO!$SCFWR@MBYail*!w7b^1OwG7UqQ zxl0*Tu+zzwPemRZ*4N?swm6SS)54)s~^p z_e7EA+xX)_rak<;$?!+zbgE(Re?G%(#|yRbw24$?h`^^-Vtb2ECu=Wk01c=MNz_T? z2gb_q?w66Np`YfWc@=13!PLpd4~!1YCm1AryZe(CQ^oy3>gv&KyPx|lAU*26?3D7k z+64Kkb<8NI%TX1zvJ49UuD*!srkQ?7Xp#bBhl9U4*CGc_gqycSA>vZPR}|+vm2r1^ z?N*~y4~77nl3%+b>mWN$R;q6c1V|c8T?9Lc z&T0Aje(EkeLrP2F(Ro3PCHfV4x1L)&em9cIzei=nEc%B45-`_qWr6R3(t%r#Y_ND2XdY@}cp1&> zc_NP+MRBDjD<7w&rAC10Hr=yUx~2cqEZVhx`2I5qgMN)?dcLSIJE75JzoL z2#PTBw0|!XvNPPoh|geQ`BINZM|y%8mHV@io>0%WKp)1t-H=vQGats}uSMVk|w z`ZgoLcs@YY>dSJ$thAH4eM#=wR}H?9iFLx0T*5GQ^^kD;?@WL8b;%}j;nuet6coaDNY-&xYfN+@yj8KTDZDfl3z*ag1fo?Cc1$T6OB93 z{;KUj4uxkY@p_V;b#C~uYy%)KIgBAV)`%*|^*&gA<hAhCC{0j+ipD}eNTSQ%ku0J*py{{y`_Y%;g- z4FJGo}BJuG6#zq+fY9-fJL(M&u@MuL95df!j&SU^60BZ)Z;!tfgD$J|*6?%z>LLV?_1EtrP!wne z9U(*d>9k=Ve$4#_6^0b(F&+*0untM~oPuTg>aet(H}h&vCu{@-<^DT^_%%F`bfACH z(^{Z1w1RrDa-uq6=!~6@5IJi9^PMOE=Y6|ECi4CL3U`AS^%AS-$9+s)k{HH3-oV?; zf|4c+_c3Sa#L|9;=xP*vm7Zd+s!t8#Zf9P^X>3j{!hAUkijoYZX=~7U0|uqy#QSV<-EKQXzHX>02j05W2l_tbVy$! z5x)GCI00TF612mx20s)_U(?vMl%3QJzK2%8z1Seu`%Otz0VCQ4Ym`eiy=SN`?Mit` z>iI4(GwYJDIrb_#w-L%_s06QOjv~@xxX4uSXyss&GNeHL*kx{ z3=!UsdG&2EF(_x63jgluYJh)&f9M`=TOfEtgGtuXGi&AXMO_3?A8!p+<2Zh6DWAAdb@}54do4S7WfvN2k$^YknD9ghY zv*T0m>y@52^i_#WM(r%o}W8U5+e^hCEur(e9G}r=O7kDN&7aTiQeh-B& zdSb68)Bj3ajM$KuJAN8V!gmAgk8M#j>`AZoAEa|6??fIOx|G236 zynTnUmuB()wfB{`?}e~cRii>GvCs5+hLvcVdbwlv9xlqjrkQPd(Gd-W?Y6AVMnm1p zG~-ze180P*vD=rj-kxBrCL1rMhzV#@MeV6(bs{I@2ZHZ3s|l!-qQ%f5R7&=lpm(b9 zN*LD(U*SPZvo1=e-t6QyOt3b@&TpN8v>sGVT-|d ze-QH3bj# z3iEs+fw+d8pcl7Vaj_H)h0!YM8564|B364vcm$SI9FXFp;kmWI>gPDh@%w0}GNkWv z?Nx1~V>vxY1C=I=i&+j8Rgnj~pe*?o9x8btoQ)k4dpeXlxW8fMya2`VBN4mvEWVD@ z_=?BJL-dBjAr`3YT*ti~O)OePA42YW5tDWass>|rp zzc3!!iE9l4)S18Yr$Szoa&Z(}P^CCCYfG79 z(meUCn?(DO-BL}#JL&%ei-JkEtJ~ z%{(PZyK9pXknRx_boMQdK|xZBJ(n*(fDZDemLHB$MmHO`ZXjUYt$*C{SBS#)Me_oj zBbu1KFkL@uLdtrNU~P;NcUV}#(I1b{s3LSHdUXrx-*P?tMutCHJ+N1#7!Vc-+yvzU zdl8~0N~o9CS7#NM{P zK9B6VtlqxZHuw9jKeoq-c|9)QZ`HS<+p<;quh^ncJMB-jwp<#)HgWm>bu6#FV5~m$ z`w!IFv$SmYa_r9gJ%ccpIiHnC{`jQ3bj2i zk6AAO(wyK4h_GQI2uFzFCE){1A=6+4jW4#u=I>Ika@QtJ%h{m)+3DLMp~Y+SUmZ-8xMNA2 z4YTCPC*9OM*uGhI1~!`5`s)<$7b6!su5LR%_}IWZU6p@`e8v3 z71l#`$PAXD6mn#N8U$I8V*tK9u$?b?YgOMz_T0 z&|U{KgOK|xw8cfOxbiP9=ln}@V+4pk{IX}t5JHxubbY31T=pl^g}jPCXS-Y9*9od_ zZj3QHEg%VfLM<4dziI?(pqW|J=7H04e5PMof0az6lm6d_%rtt zgX=xY>Xj3HDE-7R`rO>rJ73_Sq^*qgU;G$DUEGe5Gh(0_8qNC9EZhYr+(;?rN8 zP~vD5KBX4)5!FeHV}tEd3uyIZCsYY|y7Lo>wnwB#lvxrufnOZilv`9Mnc^>`(r3DCrpqDHNf81yK>(eVC5L?Z?b}@O5~e z83ljCNvpQqV~?ylK276VVkgO4X!hVk*HL@y00wiHc|d><>kxH6Ug})xW46wm&xWn|~+Z1DCQ{P0L$KY5ut-Zd4>@t~3S762SG;Wa}x(+$)_5nnDJHF|yMOVt#9# zW|iu7sSK99Z^%P1S7Qrjk<^eXXEYow&I|O0H3j3!o#rz$Cp}7qbz@HtlBL7*z@axD3!>b$U~gb8R+RG_g6!LAc5u z;`3?%fmf2H$nK?Ly0~TxCxHdt+*f`EL_x}VhrIm9)IDNAQd@#^`x9^<>E3t)dkatp zVYlb2a-@cFbK zzw90mv}h-bUySZ1Ev(C?OcO{|B$}tH&%aL+I>)47)9bEkZAUT?BV!HHlR6rqdQ7H0 zAM?`0swaUXt9={{y8HH&nY-jDI3JY1@w0a!Kc;%=oubwpn5SRHtdASytftx!E*bbg zlFm9Ts;-OTfQW!}OLvEKcY}y@hjcg64N7+?9nvK&-5?+gjdTn!^w16SUEc3Mo_UxV zX1Mq4bM{{Aw}e!R54(w4sQjFgX|aUY95*S$C#Nu)Gg%SZF^!RZ*ecAiTR-8wZZ3XJ zL_-}s@wsR+_lBG>TyED;1stAk5i2n5-My1Ob=<0yqlTC$mv(|GV1UlTCY6Jfs`byb z?uYCmn~dD*Y`6lIhW@09W72Ow*sbBA#l{mL-S&PuG#={;c<|ok&YKdwuCf+Q0V@0X zuyX*3V)B2M$5r?BtDN;-W#fC<70;X1N07;bXW;g?ph)O*4Rre^5H|jybmrU6_h-7e zw;UabCbxHa;O&tV|KkP!tN!O_D#YgvOjsg-AMpn=cKk4243&wc;!l62!sat;pDT3E z0Nz97%Nh-Mw4YN*LE>}&fNK^I#=h8XcK`$0X1p-;G28#SyX2*HszMVr*B8oGWOPaJ zdHtA1y*0t9f;zrCQDilUizo?EG6egh9)~i~rMp~FtRo9P2{?PiA*BQ@Tux03zOs<5 zAbs#1FeC4D&Wdd-6X}98kYj3QyuqHRlqfJzp%f&?Z^Muu>v!^eD}t?mG7#_FSRePC zuWE$%NibwYQ0=(}qA}X!=~gsyfhPHH(5V1*`wJtPLc{CsFDi7a%;t642(*^PMMTI5 z^2SGe-h{YB`z}o861E?blb6ucSXxpCW8r>2!C#ntl`;=4P;2^xm>gbTLp`e{aYc~O z65=Li*#*Dv@>+^g+5HPtzgJgf=GL8g3)9M>kDZaeL2yml$-S!n z=lpaT`Gu)XsQG)W&taC*|ZK?iX2jy2E5G zgV3O^hi9R+Fh?E5FrB1n8k0eyFcntC%&D5#nsUZnjq{G-kj^)^$sBj;fbbpSz6(Z| zGEyU?W6)9MGR~_Hc)(!q+QZpZp?m%PEVZ85MWBpoHuw2Fm}lzmZdNSAVQ@**Y}f$t zG;1%tVAy8jlucBixU~J4H`j2x#M&We*7zrVjRo|Ya@QKG^<2@|QVlE1*Gs6X?*>Ol zx#)SYh`F+G{QJSR{yc!$czG|{h+5xddbm0_liNZ5cU3-D8zjA<#&W?g+wX_t z9Rd8JBu>r-b?GuaK@0 z#j5=8<9gzqU)6vWrEDzIxHe%5ODe2RUAIXM-1A1}f!4bN6N{%*HMc~3FNJpN_=LE? zS%6YS-M5omXlZGm@qX@ntbtV$bu+WArpyW#$#&>xrW=%uzX9NU7TBH|7pU|f0EngI zL3jjNaVU0Z2{ZA~72<+GW0H(;c+a)tGSgV*zDHd9Nm~qA`xmaPctv$(wZAsDw!nQf z?IIAnM<8v7s~J42k5ly3xBYx zFbeeoFdNOImo){ZY*qE^;xfsjFHyesFP;?o7oPSj)(%l5} zSi9g%w_6~K6v9#aCOd3zphNxZpTNTFkm|8u^{@4A0>mYQqzOeesCHQ!UjrO6&887? zlMG`NMzl$>Wk@0;_W*7GR<=Sy-TY9vVK{&Bp7}5BN%ENMln1;Go!j^r zcV+j}33#MpR%U%?J{4RwA-QCaxh9XTOo|)uuLw9~V{DH-)LU&9oUHl)pC4&y_?b#J zl0!~YOv{B4^K9rJa`+d6ehYmkH1?)?Is4z_n*>eC5}pI*M=GfQLc0&tZ~f*MX@B?S znO5!nXi)vlbI%*GKcY9JTQ5YK$A0lg8m|=}hM-&dAdipm8!s-L3?A}&1Vt7+NTwAP zO7!aeYsaO*0vlm^YF3XfQX7`drBGfDu~Kk5!+a!5PucLOTb|<>&DW_4p#7pRYR^C9k8Hzyw*%A~#UPTl{*-R9T1Qs(X?e1n-}BKVErBU#F@X1F zw6gG#)8PHxHk4l;BUn;ir$(jyE=*Adak%82VrJO%Y}Zf;%F}Zq&v8=myC`0x;UQva zWHT)*943r>^if@h3C6ctjp zNeL}(wX%|J2Ij`7P)X%@)L6l~a-?tt4_CxaL0gqlkFDZpJ$>z8t7kA3LW!F%Dcbl& z?OELrL2p*yzLgw)MZihWC3VW_EpS)|@?b60If0_Fie3Cj(;;8M5^$RFB-Z_lh? zKC6+VnpX^EI$OmRt2@o~Wq@ zh7UP&KYagCs-7qnYG&S}&!iddJy!AO?Rb4G>lk&aZrhg6Qc=dXh3!|BLUs3}wH6~G zJjMq6Te~@eJ-of|9bO-4+F0<)%DgMWhJ@qh3Cz*;k`r%a-+!`2UrOEyh_07-H-3JO zDhxo5EFbuiS8!6T9Uapu$^`sxk+Z-|8KMVjhSz0dJwrV+j8ZPZbWBf2Q%gmI-_UnT zRs?nj+EiRH?CpK>dl@~sPz&j%hUT_G|EZm{fiaxg&XB~er!d{eRPwghq`lma{$YPy z@k*t|{@hqmaau#AiUuGg&D}-hW#(nkP2P>${FWK39Jv=n1)bywd*9FGejWGoKfm@9 z^mqF^5{H_CPK1u+K!Ucv^G@!K$0_Yvo$nEH$~Zdx43lE|g-+1j!iw8PHDdK1x-TNa zh1*0Gqe~NH1VBo}u(w4{O(#lwtq&fz1Vr!b6i-k)zb7(P>GKe>}V#e?7f zIU$&4Ql_hGkY3IdR8!ob@MJ5Lr7n*lD)T0y?Xz(zk0n`*>BndT>|VKnBqrP#DO9F; zW;#PJsLiOLeEiB7V7>=0YLXI+hMqYLRWX+ZmjY*3|KfJvB2wm@JgFe6LURjyqy_u=V#=rN@<1N00Y58vi9D_EzLlF6%iRj`ns zU49MNG~!)R5`PUNA1k7=rB=wS%4ldbf1}4S{2-x)g8H|FNiSC!J}a1S!!G0*^NlpH z!ZRwab;MjZ&nMC%LF_8(qpuq?pG_r{`?=@cpqu@dzE2ZM?ChA>ia&+Lnki9m6i*_* zxKV9TGox8jpQ|K)hW?Z={~!eh8t+P*q6)0}ly)pUMAeG1R3NVOuQbih%R@Ce?L^mp zv_pxOOi#uib4zGlgLw3lEsHD?R6bBYbZ^8@*4rpjy_(WJe=8zwj<$4w3{5zk@wuie z=Fu}#tj0>ttiV2-{Vj%)^J#v4=*^Geo!CYHAwb<~9*}eA!2YJn!nno0ecIq5&I4>z zC5IeZzYa~JS6ske&~H=-)-L+x9>7=;J;ck%h8|C^Zs3rqq(-YEgQw_dOUxKKfiE>? zn|ANXaK48Pz_WSnCL}}~UF{>$S(@e+F%^y|=ft-Ru{<<6pn%avF*C8m7NVPEg`#Lj zgNhrPF#G%04&qE9BKg7X3q<8S!sK#L%q;t#LKGsAButUbDAlclVeup#|DDR)vF^vplRMb;I_wRH z?})O`BW~^H)%rugGLHy@H+gx#z^>QO8|#fjg8#gR4u4Sjt)F6`vyQ7~m>Te5rjDeh&n>L}UibiIB*XA}?*#Jl6I|Z!&9B_#uwCan?Twkd_5VKAf4_dF+VK?% z3!&J)2LLC8o!iACyXP!E%K&dC*4*#?#r6{bd2xPfS)brl4P?$R@!{q0*(W?}@4k6h zg^XKq8=s}sZe8TU?hIY$!2ehL2R#!8^^SF2?!54NH>ZF;p@H+$th880LM-pAuW_D(W>sXotE{*B@xIWnZf%C!;dJ`^G^@PqR!D}H5bvD!rQju^|B^fZqoQ=Av` z`TL0e^$HU|9?AVk<4M@SUs~7I<_y6UgvQ`kTA2ZOs(iViX5zKE8|l$jYZU;tNQJDePx-IaU8$7z%xs z3#=Dms7oIpR=jkK{)iKsrZTqst|TJ~9vz~{x?i4oorV>`^)_SM^;M`05lV1sI5XlTdX!W`wv0meWWok z=UUa$2$y*gk#$HO=gmaLB5LAtif0S-b5^mGwUN$G|G-Y^QR!kLdfsO+ew1u=C)@l zf}l*fU8|Yd^BS@h=e4=PoXy2htziU>MN~W)> zt>yeN{v9-E{K58Lw!^RHw$X9^z+~`ny!+jbPCdYkCi*8QP&bXECvSlhd`M}6pxBKYC_xB1_W1U9v zUblL$lxeJ=s^56%eVqe{?H%1P#(J1nE-u5z^BS+Nm^*)hx6%eH53J)v81f>=<*L2J z;{XBqcJht*ACP#x2CGxpF>f(;>y7M2jdYrqB}D+C@vvKB?x3jEDl2F`jJsy?z}J z@gVybX}xq!t<~xarE`UP+FoIKqq$f)&rxm8?80QY|&33G>vMOfD{Z90T)lw;lgd_3ig}1Up3- zV(h;*nY~&X13=s9i%srt04>htgQ#z3wy}8W!q~_~EG=hFUdODkZ1}AH6p3O=EUh9Z z8)m00gPcr66aA26GmBJiLk6Q+ebxJ=i&-~6M=v~pq~g>PMq%D@%U zu%Ei`{nvxqeOz8Acam4@XS=bsR_WqKPKumV=HzesHj&%-OduNfvq8o#rrrBrjKQU>`#sL=;+%I$B zy3c)B%zN;8e&l#g9%FA$9kJ*WUcYjB2CL>WHD9xI-<#Z>Kz-P});t+r=ws(E91*eS zGu2ba^|PFgyK!gu4FI!e=+Y}W1V#yZ@Cq6}G=_DG+^Z#Q?W+a}-K@ArQrt~Zfcq() z6>f50hKsfLc7Ycy&x8p9N9K3A&}VkQ>~_o1{mAn87xYX@c?12=uod)tn&5pFV=@4G zyi`4}=Xf@IKIec%cRxIIi$mIhcKMu+(V(};i35{(mU(+O5bf|EvNG%qhRZmw>h_Mw zeetRn@X*?YZ4fMENc<5jeh&Cx@q?~(g2t7N&&|5747wx6)#h<9xAE1b5XJ1Vo zU+3PZmcpHGGl)m=KW=frx$M(roW2$3fE)p+YO&g2B{Fx>)42pHUhQ>Q`I2^q(U4QyFfDDqaI8 zF$s{G<5 zi2|^zB7r+!_j^RTjm`s5`ufj-yfWtD}wfscrrNE*?HokWfd&umj9+YEv zMW06>LBoCJAjX!)UEj4tV605NKFs+HWo_OWPRlTPdb_U;MP2xpr0M_7N{cGbB z^+b4NISC!K2&geAdlOkRKDw(?0cBq4fP<~S*1Ns1>65i-eyFry=S$SK06(>@P#lHb{O*-35WgOxZtuzI* z(ydILH%#iKt{Fc-^x5B?+-{6ofO3$?wxb#6FAf!%842I-F#TQs*TwP&Aeqxxh;REb z*5ncz-=O%lsNigRGiMw%cD|}6clY+}VN$!n9CH298wv#P0>?-BnZv8LD+i%0Ge;@p zL`y+ z9&uccwUHf%bYtEYv_C5`xnikL6DiK5=97FfW@Q>fHQ`UKp*A>4frOQDgKeIEED7`z zOP>;(M_|m*cW52=2%;IhzNb}e11z^mTm^%1Jw!|=6#|(0rG;%3!pPlv!HWjwTgF9g zoquRBw5)~hk!14Q*f1Ig4_;q}J7EW6(J&x~S~=LFtIR~&tH+iiPT}~#gb0Y2_VH}L zvgu1k4`$AaU1B}r11u|m))@rDgx%%`L1y=70Li6d{UZ=K1j&Y&+)s0CLxQfYf6bq# zi{FaB5Qm9gOr?wCX)i3~7c3TP5A+cV`^Hk+ffF3V(H5C^|08e58rYKG0?RyC*W;M+ z$MoVC9VeNk-g&N9cZxE57g2ES-BK;M?XVWI3cYjBecWb%KRtB5M|Wzy(l&nFB0M{U zT?E0MW;)-?~K+_XCZ%%i;f zk-QDyRjtj>&xyBKt^9Qw{+&{1ngMLi!Flf!c7+3#G~>b=>QDGz!36X(akY1uwYy;y_gF2fUxXJ# z&Z6MZzV(0naQ8C&_1?nG?Wuh{2zqLSc%5|sF*~CEAg>_8^(UkCsHW@Ki#K_Jxd2Lh z?Rq$906<#SJ>;xEb*^V1^gy4<*Kg5HRC6JZv#QUCFStks)!ZZFn^!$1-|;A zTfLla`Jqw@OhJt@Y&s|BMv49pE1%j^-6gS`s(-f_-P{&My*KcruWDQEn3LL_XU|p_ zjYq9hO0r51Kwo!V{KQ=M&1jRV1N|Iv<(+KSg^pXZK^-M%+&uOMKP8*T}_bTA>1Eh$5`o)UT zYJI}56XHn3^b2s5lZzQyr0gd`ZV-xwka2qDk)0$E@BkkgbLNIkN0A4wrN)#%NT>D= zsV0^}3nrfDHb%>qywVZOV>-~8iJr$(#ZJQ`H2~8Xk#H*0S4^5^-=j@G`rU$I0KQp! zJKfN$io@+(Zb_}NI;SSuiJW@KVXhY=u4G)^XR$pkXaJJYiC01KN}(Gm`vh?^^l&126{MgDXL=k6I;Y^1Sg1awZ*>wqhOY z$7WF;i~;Y?xm+`l`Eh0OllT7c7(HLJjlEnS3%X$m`_8Nw{>Ox z6?LrnE6OH~S?H@xk)%(Bk`Q7jJJ$EWyWfqojeN>lv+Xq-Qx5XY7jXWHK~3F7p8pxZzJ) zbcctB({))N7-K@~S&MqoXzQZp0WmsP)+EUHr>zoiUPHjcm)zU%;RX>>35`(u9-mC5 zHbW|bWSN;U930%!8tNz%jAJh#tNgldpYAnWx20ktQ1;T;=j^oHoD%sd87Y&?afXB(vFLx%=fn2c2xK0M%om(U;cM~1cW61gWwhAB3Y#9A(roJ-lb%`N zL3suOM|8#9D2m@dO}+7v^=sM{9kOACWHj&1I7T7NiF?FGaU+>bQ5=eC=6rhQJVyo9 zc-g~Xlwm;Y)73AJVkwJRHox#EGjug9J0~nQkUGku&@%ThvO;66AQbvIm*WLwGK@AQ zu)n^z%Lbt5fW5@^r1Qpjt1+#x1tH7I8)0VTLozu>YTmwP*=sQ#HI711u2K6wrqA~HVSKJ z>9)$Pd9I!}pJGpXzmZi_bTCV1H&o?YkWMop!_j4ZA z2tmjTf#UTQp4kkfbCPe$?PSpHSNtqF#~-bA581a&zXT;KUkhR?Ird&HZ<GJ8(eUP?g`2XwWkRuH*J?S1=Iy#>dZpw&p&Urn8w1E~0p_@lsv& zSug_F#!yqftk1EV_x9_B$IUPIA94vDw8WrZtlqzJ&>M_N5egjGtSwR+h9(b7(Y`Vj?Zl>y z1fT8V%#0JIGok;k!CiOKl~epOeLqt{3GaSNeZQkca;iMlW3W%qO!CREr@-jXGOC*? zm9}OQ0aoP^wrYNu#0oOTLh5A|{qJazy1HfNtV}PA6nTt>#jQrch5WES9|mfvp`i+| z$Q*5w!63xY`TGSsw)JKHkB?r}9(f3+jUI27W}t~q8FR#O*mz&hG}j8MsTM@*4yLpb zaCUy_lOoyaB$os-$rB%# zz7Zg8r1N)(8xU~fmh*OikAsH5xh`~yI2Hk3xwL8yCMTTL^sMOIC1YbBO5CNoqzYbL zxXEeQ&JWQ&g;-549n)nRwWlj`OM@YR6#Q7^%2qYL&(|O#zglAX1q*y)MvTRDocyBeUa6 z=9?AI+DJ@&5bZ3F08ccnu6lLw*FIhwIww{jz>QW>&%hvKTT5^Vj1J)THBz-k=rY7A z!h)80idRQ7m%zlTW*T+Pm+>7LfVGHAj_zos?yY~=bY_L^uO;;by50~uR?BK7rmK^=K@f<6GNo`g5bh>Uk|@0lT}lny3wt+ z>$uik?bn||oW|}=Dk-0w({EQcXRM4aVFy4jb&U#i6s>`CB zP_^`;-`Bg(UZ7~;6%|v#^#{&Jt-*iS_MVKc&ci##vt%Mj8e)uX%E$9G`dk&gl_56~ zm*OpjqdUQvSfLwfmr%RYz%cYloC|W$;|Qg z?XlrpvC*g!=|`m0yV6!#hUWzcuZZ*qmJq_l>I9rmo1kTy)xWI{omvS0awwnkv zi{>4Zv`42WM(!!gB4oqY2$Cyh4;`sg&8vzD<{xfn%Ajv)9bv$pSxk0L=b)19{4sDb?}WganEG7pXG&P3-T@ zb32ql5hwS#vGmNj>yGzjZs^wo^8W?)AO6ziy8Q>crv3RpioNOk4M2_qzfloU_(%Bp z5_CHOy}btA5-quR02n`P0wW?I+jL{sz-hDVVVm^kA;9>tknk*C{7K{a2#|GNh(TMk zg#t2z9*1wv9bwl7?LOD0z!c;51F<|Li-D3D&Kbb+Zl@bKS$cYEc^Kyxg)V-Be|_=i z_Gn02{9*{phE4USU!ky5OV5Gq9!ShoM}uI5oA5G1M?$mC=x7P4`2Erh;;+%f(sW62 zOWS|uKIK;R)03&(2PG1|sm9EWN;rnaX4bm$l7;z^fzn$XRfw;Gr`38?b8%Non!!x# zBY9VIOBl|l@RlD~+$M&+|5|XBxblwroEzs=pfc7Xd*Vj8EqyHYXzuWuO`~rhz%A$( zJ7+K;A}u&>^liKlpg`6Z@fI}}2-Ri=n~{|%YA_M;#5pwTsq&d=Mg7Uc#P|NDLObd5 z(Q|D~&OUUCrvS-ZptFnJct!!AtXhq}*vYPfe$s$gT?b#eKadpz1=IJ8cs-~h=;YL~ z@D>i7EmPgO<`D3yGV@W8pken+bQ_VXP zGmt7}QHX?^Ruaj+4BD7XeH=nVFnK6eXO6+r$H+`VM@i}~r6?@Ou6N&%cg}GUx##Kt zXi6Z*%#0c!eV4kS$uD$yIFz~^3hsr3>KOkyj+9*Fvjdo0=#AGW(vP6Nc0AW zST+5|yZ0hjIq3aH0Mw5Hi*YQo?JU)DeAK4LpKqrw!>G@~JWgX+l{06&JZJY`z)gKy zV6uI#2k){@`YE|O?)!IW-_k8`F~~cD?>aV5>%c3`twW#QIG71^@mUdm)hEG=Un^r+ zUHvSlCwL<2LD(=7yE%`y`e4Hw%kU~F_g8#M)yN9j09A!2Xr9BPA>ALpB4E^f9x;r`yE(T{258Fbba5cvYFMkqHBU zCvl6P`U<4RUZ1Rv9qi8-x{s%n9SFA8{Vb=%imw03YQ@OW=ii0>pd%sl$5SPF8#puP zq+T$s`R!Vc+q^H#Uie$Wt!Eua^^-|UP3CKMU+Y&HgHgFl3AoLiGlPm{heT$_~RBQ^iTQn#N3dndbx8|dz<>2ImBSi^C zXS8pXcPQknkUjD#n9!q9?B=6YloQR1ig4-hifj5Q$tYl{1!Vu&Mw^YEpK}o!y1+;2 z(R0S+nBZqI=A!{ZZIxB;)Y?B6{spG_G8}_%mlPZ>5G_k5y>~2+BO_$ysWxb0`#x^B+Yq&?7$fwUM1zt@v__fw~?%lcyaERzFYHHQu(YE z-xK{Zm!`&KS&E9|qPr5Qc+@41c3KAn>X0Wl$_>NZ>RgBkCR!~H3e`S)LM*2EWHUd( zhlV596elQ3_IYU5e9vZ?8T@uWIS=`*Yg3h#DKxFy*j!Ej*&&b$!lJ;oGH?^DYp6T< z_7=hnXQ4Ob{Ir|(UBw!}A^@9cKs(TQsn=~XR_uJUF-XOZkvJ>^ZFu*hl=r!xnb4Z- z-cF8DQ#yO-eh_}#qRZw6m)*=1y@*l8cG=0`_#4D zzy#+3`IieNRer?=YMD6G@xROX{|bE$v{~|=_Vczt&qp}|5bqrp6W0l-_~c!Hz_7{F z)%vM(_wn*#vm=T4b&+`AAfeHKy!dt9M`u8P)Jlfg3OBjbt@z6hMM!EAt9WT6?b9o< z@x+f|2Ni=5F%FWoEw}PWQ9|)&ICwZXMHxv=<0WsyDjaLQzWh8+;u18ZcUfWCR_XQ zU8cE(q1=z=pr_06ta^w~kh{+TWTndq&2nrvtQsKNj^7v}gL5@oV(1-?oJZU_7d}Ph_q?x4+LzXB#rSe{9Jjs1V4s}qJii}$40Ie!)%=*?V5xftIhi`c}CHzFJR zp0PVK|MtBSa`tN>w0;dq3RS?VR-UaPY7>OIR!iFhk;92(nDRt;)n1K<(RO^`jU^QV zfU-H(>eE5ZfrOZ&LDc_I&@{-pPt=cwJ@##`|8W1&(T6gxW`R!b-6(k|WOtK_-^r-d z6+dP!SqopFhFV`fT}yTqQEGNYOkm@BJj=pohz3(sYI$B$Yw-D5OiSy6Bk8CJ5n39Ry1Vbr zZcXhj)+^6tGfivr3`RJ|WsoIYu}A3n^0Q%Rq{|n@TesFeU4R%pK#NDoh=G9t;032_ z{u<-bd*fJh&2y+j6e>jZV}^H z=$w++g3M1WtcSJss$u<^x~JmEAnQ_LT1o93Qe+`v3G)IJ)D%6}q)$;ZHR#?M^A!rq ze2pso*Ymo&&2RBqN&V6-3*D2tVj@Y1mwvWNN)1*mq-DP{$H`QlZ#^+SNcOWo8akFJ zHVcrq|3plI8{UnJ8M}3hg)h3KL^87;<0hW#0T*ejf??~pu8UgX@$4Jj6E!K5$SCDU zgocE&I-iZzcTz)#BARUT+F`HqUWRI;#muJquA=sFl;ht+j;J3-FpEyj+SzR!3IF}T zRlzs%$L#f+TtD`+qXy6v4>~jen$f*)f6!*dmvxp0D-a)mZ3=gV&DjkG-S7i>gmVc` zMB>+A@iPN`xZ9Du#|6gX+coGNppjqMce#4Lff0*ess??BiPvoY! z`#)U6tIQ-qd|)dq862;?a=}3OQSCO6+PL!DH4JvkE#40UX1^1_AeheU6Ny;X#X|(C z_<4~yYLD0Rlz3mu)7ttgiU3U2FOIU58x5EaNB6upUVrOEf2Kyrr~_fu;*1G}4ic zyyXWVp{uX&u@WSoGq^$)(JwaDyE6QkVuR?B)#$aYs5wIL4hdUOpB<7a=UVd1|Lj%i zT}6w@R&RrWg%$2m4yl(*m8#e?NiSp;DdMa({`M>EaW{b@{G`YES;1%@LqGnO_S>wa zeaek@8_Kk%!s+bKSrfnEwyVGMycbu*gk%^~8OT%EMKs|^P?GH0*KWDtLJzbek(8NU zasNs-qtrC_rDK01e`|=|uZL$lIH)PttF>ZHcTXR)RL!E2J1D{7g<$y-OA!WJY5%U2 zV@bZV7Qgvep?71gP)sR2gpN>ggP0LcC8wHCw~-jZ@_M*a{2u8EOM`&}#1-uyEM=pW z1h<6Sw8!QRRZ|l(H3}xl9%huby7nWj%}B%d8N7riS!Rjb%p1?|f{YJV!ZVphe{y(_xwqdhbnGb!+E|cv^X5qq7qN zZ^No~x!vsdwZSR#u~c%}mArr|f? zYLjYV66#OxcL)>w`82Yh-=Vo>JKHW3&mz^YjKiPVWo&)io8QIyC1e_EE-JiROlY!u zaJ9T5WbE>E8ac{j1z=&`5FxxG@!mKJ=kVK-?Aj8AZuRXO#iBCKssHOKR~&f-xoHgw z%J6F*7V);r@cXFpyODeQNPFb>Uj<6c^agW+3nm>CzqC2KUJpKb`*8<8@aSCS%5TpU zPmNbdg&rJDoMjs$2d{nF2f~F4M!D+Uf@$0?hR}`MA5ky%IU%4t$mSc0?E+;&flebg zE3@Cu&I8Z7q~t?I@S}Dj*jd*9Sc_QS5T!)xwlyedblQ|nXVx?7*0N|<(g`oO<6yB! zcE2;XH2^7dbpG|#Qp2Ou3ypr$W7TRy>CF)JBYIXvMUY5gSe*%I9r&=qrGRT#hZ|5T%#4Jl+DsrN79&gXZc(z99w zj!%GS7f*Xq%&Tl#Udn~ZYKgWoOO&VNs>nTTk#@uF6u#QLUc2fwlhzA!IXf`<0tJQB z24N~P!d^r1M$JBlha64mhuEhWPEe!J73|e(1GA5b49;BL>xGL%E0T2Cm4*UYxA%hBly4g^~>|ICoqh) z943A_Dc$j41ic5=V6W%+b@(34rx}V}4UmZYusg-wpW2ybHt~xF@v)4~8pmvA4OqYSyW3sAYCpNXQw}<7XH=hlPJ!JA-DR)C z?7QS{uN;@J6<%Q}JdFVxl3YmVDW$?xrE)zW-MniDBI#7mj%#r#9~~y3gl--+@C?UT zwZ@(ICAFgN*JyCSIoS~Qj~les^!zYR>U`(4pRY455KSu;?0{Uyg7L?`eQEFT?vt03 z9@oiH;3!n>PT15W>AQ@9%%YH8#5j-T4{lP7fA4Db;=gIeXyLTJN|m!eV}SC}7kJyE z%xkDSPa@*KMj!WMfm9qO7FHC*Z>>ZO%*tjn8lrzXSq?8;^?|J;ISi1B&D zdLysQn8{=`IreZ1GbY-cPxrl3H-cUZCf$}9nZ;+Iwlh8n8y@UM>9e7xPC_k$U+LcHXp$t}w@&n#_Q*E1T6zmjl9lyZXmD*ud$N~c_b zDRJYcZVqHykIMLz>Pr(QA_DVk^rwjwwosX7P6Po;lz z6aIJ4k?H6kf+L4G-Qk}6zeJAcx*Q2UR|oiO&wrk(vc4wxUov%Fv%tJoyr56F*RMYq zVioq?{kdY%@!8$C_Bmfoz%`5Uilpzg8#>+zoq>=Kycr+wH~8?CZl1Xrlt+iRp&hbw z{(VnGg+ifdO125!34tAT%alfpgG3M=>DlPc7z3%T08HGWkY3@zg#hG=V)CeGUaQ%^ux-7m)QZ-cBNQw9`j^ zr?ua`E&>)J#GH8?KLxPOoMAsKn<2lxd~%{8#oIqB{MFo}ubPfd6i2fxY%Z5lr@OpA zQO_|xlX7T>mmBy)57pjQnE@rA`bf7OoUbQW8=yFC55y|kD&vg?ZydR+W zxxpkDpPh#hFa<53`uWhdTxp3e)~fT3NXFgny=klABu|Arxhxw_Eg6~A#5Y#B0NQ-Y zJtyNXPsAQ&j_$wmK=c9JLCLOl;I;MLLG3-W*yCmbkbM=1oVYcl`ncV_>zE)q3QiDz z{(57R`PJlU?&gNiA@6pZ;cl8E05fGI{J)24AJT3*6KWrpYIj;-*Unq^UH6qh9{D}p z^QqS(cGnZ;GklG4=TP^39fi37>3P6N^vTumwL4%60HRj|*nl0011O{06-*C!yK2t? zwU6=hnD|raEkA6zd*=?42Qdh`fo{g+`6uVBk{JiyS>^^@3yPi9nUpf3!aYx{1G1Zg zAJ%2__JMoff{22lxACw?^!0H+5XWO5$F<^~hN}2@14v9h-8yfkE{9b7#$6mFepf(& z001UWfpBC%L$k#I^&aPVIiQh4A z;I=&MHSA&isT$DL2tNk~IVV8x-v;GE9}HkLFbHfcX!zyba;-ZDx4d9Y-J^qV2~Tdb zoMB->iQO>Ft~_g?J3V6Yx5a;qfBo#y+C2~`Q9}%3XNo@v9mjw_g5zQ`4Ab@bu@&T# z>ks4}j=d4TrFt%<0H)HarHv|Mz>B~Nf>v*ys$og%H;(H=GzlVqonb@H+ogdArFUm} zw~F(Js1zdI_gyA*V*s0Ehr%BwzI_8wbIb*Z+`vQVa5aXVqW~ZRW$kXlt7Efmovi!J z`>;~AMW9IL$F&UP@hb6{AMD^2cbP9x4(~nuuLCq9!$8N6LL8ZnK2EHxw;hX=K0<5G z#ZDBDnmW}-6Hnb%lu}>ChicyQ6SW=golv~?Jv*XDVjfY4=2{vfSbh#4YkD&JJ7wAG zo=}XEqIF8k~rP0HyRsr{UMgv%V&Y(rMM23VdSdEPBq$l#4t6nchW zQOCL8?nQjd@?`EIkC3)khu{=?IZT}o+!;;e5M$?nhpy~dow|mCuGhZ#Y^>40cMcn%y@;)Vp@@0@6Z+GMg|IC~ zi{qcQaUUhTbmmj&VjHI3NKR1s6-(Gcsb`MYQKQIQLe@uoM|3E7oXa7pD8x%;A8LQaaB5_L?7e?*;WM}W_!@LqP&$IgDS ztE*%@A#-+;tMhnz^qCk+YTK_Ltgol$f9bNS5n(u~-tE-}Wdlq0NvBJ0&RMWpx|&@? zRFZ1I`McbpUCT^;)4A5BY~hCCe$2Juvnj`BFZxu=kB5kI_eq!m!4(xu-)NA+uo+|A zBLhR-Q|C{&8bGJ^K*ptRC-&t*bTE~WL^v}jPZ$(%v!-k?N4nNF{!Q#uvUwO6d)J;g zJ^@3GvtD#!16R@1D+*S2Txe#9{Vb7G3!zF)t~SsxKzd;app>r44Oy1r%k zukb}Lx^W7C(gN;CZ z&JN)1Ys)j(O0Mvj6XC<$dTieJ=}RKu`A{)p7ykkDQ>6J#1fNBVnZ`nU^JNNbNhBN5 z&Jh-x9h{v%#}(_>+AeD|MwZ7wQ@)$&Z1T#b?sBu7hzxwMsm232rq>y=+b*ZGMlIc8 z`G&mDsans*ty~cq^Iek4wMP5)DwRuM0e>HTp5SSTT?I{c)weGF1Jp4VFWCc!j(2Dy zEaULUj>QkrIs)ety*YfYrhQpC)uGR1QWAl)NcU@!o1KNWBA!Noa8b8b2QF2%*Hpk% zV6;xDphG+YC(oMNSPCtRrh91rE6N){YfnawDr+D^6ksatP?HXiOSf=)o{cz_s{!e9KQk_@*59tI7mKHtLr64J4>El@1yJ!%9I z2fwH_x5c0Tg5ZG6prCAV7-84{X!^#uNZYXQ-8OILWZSm6+16&;-rU5^#!TkM&32n@ zZ?37X^oX7d+SJIWCH+cx2__UWJ5|n5BaU}CRA`_Ua-d_6D{bu|D zN#jTy-g@BOdWZY?v{Ylb=hyZ4`m_f5n_PT9I6p2wmbP|L|GjU0L|kfVVh8PZKdBqY zgTg-k$poeZJ$(_m;v-obz5e|%xpi;|(YAhi`tKxozZQ9>aq^xpei;u6FU7F#d0$`(eZX-(LQwfzj=D$dNa`v$I3+PP{$!Py0ir>(Z|~a+ugJo6Q12b3b zVSD~N8gJ9zcfBB|ARlBo2}%nM{qlbOaY*9w@%C8P(9l1Z@0%661_!Y>f8ahXJj&NW zSbK<^*XjMl*l*6w%j@6J9uvi?{_S<&Xk|q_g z&g|_MV7UOkIHisL;JPf=L=JppJme*X2pCOG46}tfq((Jsii&ox6grJF=idVb(*Sp@ zsGGl3<-W03*;GP554n+kIrd9={?sT+n3?gFF|5u+as^hQy^0jisO}{)Cy%;?*d6`K z-t@7>9f5^1`tC>77*{G@W-G6xNR~C!@6c!o4IoGdBJ9NKVMgyRJ%~}XqlTnv` z4)*No+3J|U6>&wKGJ2*Qz??+Sx4_x-nDA3J!^#X%DBlE4W0t2t`;cLO=ENr`)G+yW zat|%|(<7^ejlS=cKPG$c^$%BL@?fO^&ud`X`t_=S!?}|ChO+-Z0)gwhtxgHzj(3hO zH11%c0p0js(hhC(ndIRxmIPb@YA_cxLZIp_jH7{+VG}foOYT(DM3HxD0r&?cea7~s z98SXg#=Q<0fWsH3$+%=Ec7*oIC0%$ehSjdW1#%Em%Hxm20rk^ok_f|Av3nEr5L8Xn zaqqfa)eX^yKYruWqXS91E6Hm8_#9>Ga}Y9of=rkZh80EWFtZO`(D;oitH${!>9c!t zK4PULxWB+}%N_>HCoiSbLhNUOJBM*FmO1t3HZ0N8`3VfY2!n1AEkf{ZUWv`s@fL`7 zd1JE#fYcJWM}O}>*k-G{q-b1(mm&c%n3tz*R3kL(nXOic!3|c{8d%z?TphhVZZFzF zHmKgVY6R=m63CV8iM092RcXr)HM1#abL}8c9`$Oh@)BI5C3x5KMo7GF>gAO^Q?UJ0 zhL~)QILFK}-nv3g@F29*fdJNGRGvj}YVqA>^H$SXjC1sYlizW(Yhvdv>ea*C&nxEj zqC2wo4Wj6V2m^WZpY9W`o4o{;+(Y(TJWja}Cyh*4@#R%%xJ`=G?HXcxt%DyT7^hxM zx-e4^M($bET$j#mTAPmCFByvK@X(5*&Q>9L7el5^MOj;a*Eex4{jY=_iHKPR@(T5b z!#S+H4>1!O1n7Hz9|5k7(BmXfVXbQmD&P@q53d1P+|v<>VH^||Mv1!p6-jo71}2{V z3VZ;Gu+9w!cBVd04^4G#0xSVJ$kJr`^9wtW!CJCd;C z*-RQOmk8%v|7*zK9oxxL-l%A4vtQoYkY-6gOQq6p|AN!&;?@Ss5YAG`_3RzSmNsZA zrddq~BuBvE2ZDO|AknHIQLwW|e*rDbUk9wmO+OZHj>a14F?XU4fxEoZjTbs=p0zFh z4dId|OFMRStKbR@5cTd4|`Y|^wFQBh3(_)ArYH+$mg*462L?4@g3~GHJ^CdAcp0GF)v8%E~OH1 zEoZMZSWz=)pj&IJg6xx~>WGRLCynGP6UBGmr&_DUsR<($QCI&?0JexzV218nRikyl zO94xMzBSKuzglZP=bOkC_@RiCLq_lJ%9qqhS$K^$5ykEi{F?EreM_Sa6-;A0gFs4k zUH2$GFCL@7a1}8`WsP2b@9AQtUB+grTB(7-oF=p-P*-+Whp9O)Ykd;#nhB)9Fq7?V zk?`_pgZl@2-EYP5{^Iq)1$lI{A-qJBeAG?72r(PB4M2W=k0nz9ZNm_YHcQ}=@%Dd@ zr<{ay2utqw)OGom$McpAG3o`qE_G*rJk$m~W(x=H^!dD#d^}DWNjh@k2drLRwG!*| z2xq&!{+Y}7pBon0sPk{Te(gGcy!r1DxLEtK6Z9eyFmxCMzI{Ee!SfHi-FJF_3<~Xj z-uj3WAokm0`Pd~eDoxp)dRq~>g=H8H`f$2r)O)*tT(g{B_`HS>g*RP4_W-?_T4B+V zH#K;bQNSXdyXCtR{4q{9{KaYo9ix#N7=P8fDnq`OiZrCv{{h5(9aHUf7BVs9k_|~| zdqdO>Rxc=`5G}>%DE}4IHX~Lu_*pdf={Qe$Fbr!uxtS=PyMK~HTj~c6B)4pmMB_B# zh@g>ghDigTq`w55k<>XUO+(%n!e$$C+o@8(jqgzWC2W>l5=Uxa2#1fqVY$9wT!X)o zm;{?zGTxE{B>|;1@QuInnf&_xi-pnlTGmbrB?jG1te6oRHt!+bSjaTDsa2S%HPa$I zB^nGai-9Cee*s~g-lWgk3fq@+o!6Ssx7GyaXCB0{vJqK)C`mn0z@BTo3VJ10aXeDW zABz-nNkxL*N>PG+r#8utB5xHhArTShw-S@<*4T@xjuqoK%Tu_r`IRGgS}Zm1pYJUv zKUodEgu_JViAan>9MRYHz^o~uh0xlf*4oguQL14)5{V%{E-uBM5y*P~HkDa;^%_Th z;zd}~Swg9gA0F7W-c6QJ#t1c%IA`7*r*jv z>d8$sEyhYqq@*^PH5rvsOw&>cFHpl&4teIS^Us8IKu6pt2FK|G12=@WJ8|EgsZ~}X z{!oTMcL`v27BZZWp~!+N`o6K5Wd2~0#|WQpa{c^hl@`d+Xdlmd(6nht=D7JMB8N}j z_uCxb6RBwpg4M(pbSTAv3&j1b2(N^(V(Rr*MSU#!mq`ar0chqG|^>ftkw z)A~?TUY}&w{x#e(32nryewYlg3BU2pQ$MP!r4uTV;CQ%|aIVY2337b=p+TohxMh=N z2CBt|47!H2loB?FUh1BI9B&I{uU3(FvIUIQRGwMTC06j$qTkfD``C)x&YT0b z=yR_SgO#hNr{_z2fK2CHxtkyWt3YWwrRsZG@`EUS;Qgot1_2QgY~$q4YTAsoDjCUn;)`p84D5?ZhBF%wh*U?kyVc-T*tiI@rUQnEWn%uz z`ku)lP@}_)gLLcASV!)<^7VRfGw-*A9xX2a50^r4sBhTDA*53Vyl z616b$-Rt_BSFU3H{H<`ucT^2~d~R{N8Nlp1{0-kRr~TrTQbuiP(U8F7BHF%iZIWZ` zKzlATmSh;lO!YNCr59|{Rlc0Ndf@HjS^M5ai@-&^GEWyN%qK8bxT+3#YksY9@AMRN zVbXEu^1a(fute%E?&}_rb?}`|dRb-4SrSGUBS*@&A{$OZ73HDE^NLG7L|-80kj_b={}!?~>2Qe>rQ`7j;@~$w&RNSc2zlIF)Z`9j29Z2_rD*Np%j6vtKy}%? z#)sF9UQl;Bq;bzdTEuhHCtn4gpnoXlYKy7ir*HwF$s2R1iTW_ZS11R4VR> zDDm+=_YfQ0M#t#RPN8T>lO-o1nm(M?9>|(zzM7&TA}R{_Je@?4{IpemBwpZvFFi=A zdq<0Is;6y_8nN#7f;DB7PhNfjoACmgaWK^N<9U#U1q0yWy zu8v!ljF|1KK2PD%5rSHVX5C5g6xBp7hZ`WPrR{6hO+`ZH3%&90Ti_QGB69OKrQT+i3^?(=Ea zb^*mD0mki~F@kgU$Z*>SFIFXk3)rC`lO(Hut5Y9@Ru4)IUKdD_4RpfZ%o}de$L@0a zOV%)J`j|j+GuA(Rye-jcKRQNQd~W%P>Z>l%vXPv~$INNXTD+%(XtQT{>2?=26?IWY zs;D@$&~TYoGNlR;MYTy|f+gUF?;ad#j9P(@^m^0d012ahk+x*eQYAQq33=LiL)Ri8Upo&u?D^$f+Ck4i0D(QM;q zks>I@W}@Io0y9_wZ{(9^|3x$V7{R}gLDvhyfk&WBnDElXbX69J2UCd5ehpnmcHf_R zyE~<`c26EKq(4v7vi{yOAxuIb0p?!1goD3@rxaF z%zvxAO?*}U6w56;yXAZcjP+rC{ZCXWr1I7^kZ z{Y>hq2F0B+aEf)3MJ=`TH`~*;LdD&7;p3>_5)S=i41*LoE|moe{7+S>m#u|QiCGxe z1H`82GqYi8a=uch73B3)cM*TokrC78UQn!XX8F`)>pI+oY?BMjkV5$HluQc*$FF@3 ztA5#->X^N7boyi4dIgcKRN;QM5Y?MSh;1|^q-O2$&;}( zxK#pu2@j};{@AA_e(L(r$HboG3Q#~(bEyDBMRO#d#31Efh>-}d6L}49xOn}e0XVgO zO0@a$2~g=*yfDRU^wGGA^@$sC_fB(3I7%_v>x1~swC#AniJNCdwqczWA1hWyLaP$n zCk=DXlHqHB-m<`lN9PW^U7Y(^QkpRm!dXsy;ndnP{8o|E&!n?upXJf5K}A<`xpi`D zUP6>|ZAd9oApm)r8?484CDwLiDC$_%8T!ar0~>|*b5j)8ETk&L9~X>017B71`>1eKK)myHSikaHM42#@&DQWMJ?}%|=}Mw$v%7cqGuP zM$;z^fHY)(l%90%Z$#I`6$p{@M{OJYAP0xWjw88|vTkWiU%i$4-oDoUR`>nd&j%@n zj~)6VZvATMr&(K;O%GG=S|85Bu<=q-KFb#6tkDDF2yMpGvZ+&6AH`gS&yr~?|AD5l z^&vB3XG#k$)^9O*c=Y!=rwV5c1L!g?{lS%QmX_!-i&cU$1%3Qbod)u1T`?&d&TuLQ zZLR#7=4M*7g}mZ*e)G&i}W}apsUfD(PCu+YkhVq?l}UT&8agyVj9Djo5Zd+J&lT9k`DQ zJ+4RAYBR>8=rS+uN}cPoR|B#~y5G}9{w%#eY>9oTT4ab-TW|4<1JTme=K!FTJ8oV6 z-kKTtK1)Hsr?eQpg*H%4WuT)Kw@l%TG@BvQ%;HUSY5w240Muz}f`;m92meHrx_FRu zO={VSz~x-Ha-tcPFOy=^ez;X0*r;~2-hlV2T|bt3t>fX}@UlSDMEUI_2Ou^BiIJL$ zWjOM;&wKdc^HpsSkRa0S#=vFj*lpcw3kHIvP4&*8FFBGp-(N-9ZX~VsJk8^5!h_0b zVFjOhB>Wea0+FqlbF4az)HS&fL+gHyF5;B37?4gydLLMWDNe`#6jbZH&DMpoGmec~%Cx#lwW9(uDF*LKz? zpEWptHkI3C#bw}!FtZauFJn9gM6Mv808bL8Rbi&{gs~dUft6a&3;^bM1|fL5AkJM z@jH!$Ebuk}Np6f>!fsA~48cMSjf*y6A)@(S!>-OIMT$kWVs>2~zsD<4aaE z3Z)Yj-<*1j6H;~Rqm_6lMbZ$4#?6+JW?18}Cg2%Z%$2#h{P(^iKzE-zL8_=fFN;4f z<0w0uJnVQ=#-Yn@$zJ7+FYYd}+5HQE;RPBW^1nR`2zAo0LpCO8T{!=#NT@}n+ba|OT+grZlU5tZq&n6{{VfgRRwmt$L0le~l z5Z9RBk4>`Z%K};*NUPdUixzsF8d#`mo0bOM0jUWACpI-Cgep8t zK9+oL4~(eme$n6Q$O@eZj>mYX7R|*Cm!1I5^dVc$gNlfhK*7?~oTz$6w$-AVcuM92 z>kzN_62q?y6r!>3w;>}oJs6{!MX};=@NzpUob;v=1&ZHV*?{zXfI>py=q!D~S zrKR-9VKcS0JbV#JAKcUqZB!fSK>`>2KNX^Df?*pmjM}-geXvuUN!9?m!?KuM2z0WP zCaI>MQs6ozISD3JSc&xu#Vgq0D1EVJGgAaRjA&|h=f zcG+BbV6SVY_MKH%ke<(xH5M-EPKqR~2oL(aAT_Ece7Z;+UtCCbS`FPb$x&a{9U5Dl z1lp6L$WCj4so^-J!Ot%?l8P;NucYQ`zx;??cx{NcYJrw0nm9!+S2ndxd9hxP$;FXE zoOU!&o0BuUK#d`#-bRQsLu2_)3DJq%zL;BZYS$^bKU4$#@BdSyn+VWNjh=O z+!hu48CV4SD|r&UFNTem6?QqXJ@bz;E zmEEw#l}t8i(z}=aJW5c^kayVX-q2(rxN6FqgV8bEgj~4*wB_xgRlH(yIJXANP;gRI z7SDAXRP*xYG#F`znON)BshuYu)c6LG|HO{^kcLktjiNsEzs$e_lhUh%tRFvY*961k zt4@0{;{2C6X7wA+T-sV47*%N}zErIZ9O4thiXc5rK*x{dN-J>~jR}cg#TLLvN3U*p z_xHLy5IR8Behsk~w58)iLg|BJS2!P}`w>dno8wrnB)H4wz+=+mQga*0FTZ63y&<{l&8N|5i+Y;=O9z zPe~_rih_(5{PA<8#6igefypQK@3nK7?*n^sHjVMw=G&5~J=Thu>9Md9 zTA@JK#63NRG+({K*wg@a2i_$8m`-D7Qjkx9W{=(Rvh)JagWno2`l5OOuG%JK#N73b zI$=u{K0EWv6hZ{0Dp{^NDlE7unN+{O_@kj3);-P%?bkTqBjIBY`gye)p{GKKhA7d$ zV0eC?>DEF7^es+}TfXpx<@zGPJ}t#kjc&DzqP+TVUZmRfuEChvj055j_NRL%MKS#9~^FB9%mRKgEc^ctCiS5eXR=#vm0rZ1kz>du7$)332YfrbLi_PZ z>2$1)Z~svLnu}&|yutbh2=PM0-uw+ooING*cRnID)CesT#?9=_A|&!?+xfCcU%%cZ ze2BXh3SWX@EwGTG<1T~u=fBJ8;K;mE@jD%xA{tqnOJoOqx(ZEkNQ2o0?fx8~nh zSn_wqI(=!K-49K&`|ap@zxWxK#c)8c-<{vg&nnyRvNOGM$%&mXKAO$-bdhP&uw~$4 z6HgjU*4yNN^wvFQTW8W`1Xf^(qQNS3^tm`L_1-4BB%hLLtd7#EPGb<)X~-Zl6PMK7r@hYodb@N@*{xt4Fn=>!6k{NF64(Fs?JmtJyfQmZ1$OYNrZ@$L=PF`U=r>nPO zKxXEJ=(yPvgt#Tq;m0r}zB+_EE?MV(53wZVlp-p~+dD}+aUMJImdmuj8VtVopS;(H z>+n5ItQ=OaAtvTLpT9 zdvqeJXxqikw3JYdBmG8oa(Vf4tl{o8A4j>G_31$6qUTfY_b9cyZ+p@#6nDFEdUlKB zRJv&n)?S8nC@Okw8=qlTfl{T9jbeyi;Y`!?*ymrDv+VZ_B*5eoZ6)RORjLSVn9;&3 zuRe9Fx2i6jxi0>k6y(@0mj(&IWc=g{8)~wweS1*xa_j(m88cbxGyQIdT3C~G@|q|% z^c!w!Y9Dr;Olj)@a1U&z^{Q{aM`*^BsXD)axW(_D$ZOqjfiTMo)xX1Q^M$sN-P`z{ z+)ubg_{SyRH5yW%Vv?9?z1K9Kp!CoO3x1)n}g__EG zS3>}*W(9wNottsnbIkezOq*#fvs=R1fH{P|vDJ+k4IUTfq7c!u8ktCL@6(Zv|AQ!} zAQlyGu-L39=#(F3SOIkiqpaofb1&WkM7V} zVgscbUEi)rxrX;`Um~i^dZ4}iv_(d>Ev^V!Y4q=M`MB4cHnv8{eZ{<{O3vAUCn}vu zvjJu*7IO}23z~}b-l~>K7Z&gD5P(#s0L!%WoMj11m zY6u9wjGwSV6c0bn<#R&oLV3arB3El)9=SmGW2)1GAb_N_Scelv|m}f-~T%XcU{2Uu&hJqYze7J{oI* z4Mo=2q6L?23T=Q zCp>By{>AT zEQvN~tH~ym=VECkuByX#Os_jir#PKC%^*JT8~NUM!dLUBZp=i)H_9q1+6<*qh{Z{w z3aSCg&VClDRehS?GX<~Cd ze;k{8d^9FLnQ&z6^C~l|-cP(Z`KT|&(0o)!a1&*WPY#f<|BjbcJO8_Wl6?u1XWB(t zV!xyBCAZkOD>?j>*R5#J+i=3NTJfyh;EF{BD~{&oW?sJwDAEU;TEotvx#}ZhJ4t4-XGM!)y78%=uh^uk<=Nn)0ehv^1ecIq}RtWJ3}c$2w$e8WGE^qk7F$ ztg+d=6`TzM52Q5OK}MS9x}*J0K>{p7uUJ#vckJz#{u%0iR?%I>$V@dhIxObzI#^)F z!`)1`oK@lB^0x+qmP0|XSa0t&I=!vZWsWH;q08ShU8Amlh|uWYnZ}da9G_+%1Nqpb zYYe+52V-y{&7Vd~w3s?o=^a<=ZaLk~sG+$HHUYpe+g_a}ENl1kX<>{`a0R~QE#BN7 zp9jH}s>|D$A_UlP>C{u9n|K#`yq*@wD*_;8*rU>o#V&w$7RGs=2j*B*&hoyy|IKlJ z02i#b?W0I~80zL$xmpA@>P9#b0Yy7;Z1WR7=US*0)GX>$2=W%%09?Y*vT0_UXHPozMMhN zsxVEoN|B1^=4(n8n3Y4;PLv;(Uxd7A6hCy6YNVf-BQ5(KtBHXAa!V)#k)xM7-!B)}Iff(|uC2q}vi4@i53xXDdaRBFQ>W~p{IUh^5#KFv2R z`@E3C#DW<8+PhI+Sg=?ZaG{jc&|WN6`IpFANdWv8ft2!|!2|BZ8j%3`gN13T12q7e zQCEkIw#M=FCwj84lu8_4SO})@UWEBMH0Ts}!qhIJsM1*oH{3)`Vk%$cw(xL2q?yJ4 z7Xn=;>el^lLv8$=yX`8yRrl1r;@xoAHrP1)SIk%_^^=a#qwi-(r{w*>t2Gsr4Lu^| z6264)Uo4AB6CIT$vmNS6oDGVDHl;52Fa)FEH#*%*ZaK0x%676s6s5(81Uv&@l0;@-+Nt~O;~C98kz== zIZ6>~4#vi7cXRvy!uar+2(FMfB5SroS|`>m%`*pWDR90mVt`9VU1Jf#w7lo|fCu(N z6S&6v|K5dPU#)1RVSF+h^s1#~6Gtj8u88u7RkDNHe)ZDUL20P|q_Pf-MXzKeR!09` zhSgs%LtRo}^y4N2{!1~SIAl6lgHe`SDi^g;Mpar_xos5O+is~K8qpLDATRD`rtniy%G;r4Yn;Sk`YLd+() zji>x+vHX%@p?`9a`x_z|ti%;Mln%oO36krvC}@ViU*_5^B0gfTEDL)zWKzxQn+2^! z7+YdX16i*g)u(QbmYecDZGmBTHY-i-6tK8EEa(EjZ*4Ix7cx*$VSOU!-+3#j>ZZ3? ziLE)8gg0)dUE_ScD>b&GqQaz0y|L?#!kuM6Pj!=(vAw?v$no08^3vh(wEpBHIeve7 zCfzjj7q8u~ecku3PmUek7&*4CkZvZM2HvT~pgVUz4Z7$d=9m=CaxHpRBBOuEvR-wX z;M@FMO8C$+M(RO}b&HSppVaK7mDSA>DwTF={#oW}Z{?_;xeyAa;R}AH^(qiRMDIYS zXjtg6KRd{AmjB{w6!0t+@3hquo+bYXiMeE8YDTW2SKjMsf(RP}lQ?iEe1_LgGR@cxaBYPVt#x%Q{^&HGd zft-~U>PEX&ISi@dK^RH8BK1o9S~GBy+#sjS+&uK94pUmk!%5}(^fquvh607iU1>iDtbVuIJc|EY8%`))>+KOj~(Tw z$|oh~oh%^gY{~=tw(&vQS5lrqmV2_Se?PVgwl<7uGUC5eMf2w702qQauyWIVnZoUf zoNI=DS5wZ)wOkppE>cc}H9Oeko-Vb<8-#iR%|P;vvh`q~XO zTI5*STFx%GXujbc`GRIu*gy6&67}h4phP69{Qnn3-MG%?g9wL6J-_~q9@ql>INOLm zzpOvzA;<>O4{Rpj$c_fl!{*R_8pvQY{RdmJK<8D-46ppFntXiJO+L>G%R*^EN5$|! z`yB^bwLpWEeu)C`5+V)v8bnm|GKnTkg;nd+#5>EbwBns?QGkgP7*Uc(A$FJB&09o-; z{@^gwBYEy-7<~Hh+jg0}uGgyzPzDl$SVnqAEHS@^n3EBqHz( z@{RY-HiZTB*U-L%y2=_ZnNx#{sUmQa5210bPa+OxVr|mYaVYF{qdXa7Kj z_9v<+*m8K2^S?L5+At4Ak#b=8uUb=~y-!lp(Si`LX7)fswuqlGF1U2Wj}^sITPtdz|N0NT0$LaD3l%nq0o|J^3!X!7>H5^ z2+)}Y7*b+?6I3fA`Ty#1ApPK$)Do*x8m!%ltuv~%A&{9WjZ>8*!E_MsND$}>GRBag z81>Qrt>eJ9h^Cq7mb8ds##kmDaxIxm=Bu~0>#wAnLT;Klz;+k|L)I8@wcvro<7IU6 zP6-?|-I#V?_oE5~^nNYnwyoPdYm?f$4$D0^tY;#I6!R?gXms8~>MHHPHQXz2-F)97TD+}bvbe8UF7Qb8scS~S6*GDw=@deT zZf`^Slz$%lIgM)msa?|%p`K+2C-d(u=q>?b-F;|cX9|&!LQiy?tkYvIqn|<3S^C+* z8aoVw9~%8bjiG*2mVdKX)vka1x8ruso&&1Tz;|KyKWXwMw_M{3S!J#Ys?PU|ImhEmI<*Ax zhw_fZQ!c9*zm_`&uq8Z|jZOR>IW@zYuaROtTNuG3$}{+%nsX^lk|;9#a|I0pq|^n{ z#;KGcj0LdMA^w!gBKTIoFE%2?n-p!z|(IWvv8#NA*Z*7ee;8FAM}8 zYz~mgeXk}BX1BX0Q=t<2gexe`0J+wM<`{NP{2Fo5RE%N@zdlo7A1WqqlTG#Oz$E}~*GF6u=5GwlUT#)>N|TRS0>JkvFpp8{GZ0izW2cZOk50J)<>@E= z$e%p`R1{a_rNK#4yGos6T{NvKuAx_W5loR2Z#C_9>tCM zDyURAO0+e6`h`d1@p%)8tw8CY#c54w_6 ze$`v5=YsTC;FL1X(BdD?jDhv8WsP{^!7EsogbQuG*5kgd+h?07m;PsD5I$*yQM1Xi zIm6A}edKy4_MoEBk+7GkPP(oscQ3?VM~~rVyiQY2e<8ms&(4o;j zN6Ya(fBvzme-O4;)kB{e_KD|KiGut_Ri2@hbGGofH8D7@h*Z3wdvcMwIMOX0y55d>?~JLDFysd;%=n0jbkIO=mYDL>qQ}bun#NE$VuD78b^K`__He! zv`+ri_u2Oy4p7`B{^NT^l};|vtGDlQY++FO(j?50b(&yXfJEDgAFL= zX`kP9_M+~P%a6{^!QtHb@4C-T$0vu3$#hA>0y%4~cy6<~UV6q-mb3!FOf^CFWl+sx ziqAK#w5XOQ>IOV16d&Cv);zcb%FhD&?T~Ln5?1qw6rC;%a!D!Vf@JzoZkJ0;u5z`& zH?%s}R{qUsz-5{7mccP-E5WZs4rgM`>>D0=nkPmTeur)V>o=ZqK~TJE{Sa-)+>rGC zV0ptReR%M`yQX2)?cH%7Gwm|5vx_-DcYqj(M~6kOUH%I~Aj59lf8jlh629sCI(0k$ zReO1@eFTguLcQ_s&S6`f#NTm7MdtBq1|OU7eityOg@zA7#vtw@{6Q1RbL4YhMRz9s zWTHt!!KvPZ!&cunoQ1Z&7wJ3E#*zyBv|H>spU^r8{SWi{TDnhY)UDKM1On0gj+ikK zJ-1!d?Dy{~poOI^URhnW406gZsdm|HfH<{ve_LBz7Y_0uADGCdrCO6rpW|yPxECC7Dh)diI_PCTUFk+I6T zR_y!}=8uA_vG9tDYu>aPC$y#awr}fI>1t0YyUM(E>F%d@--x^U z#Wau0NRm#5=Y&Q0Oq^Trm zO0}2UhBvVM^7k zV`UR9qx=w-Z|%A{{#3SFqiN#g-6;@vW0(2RB2-cZ|Do!DfVe%utrb*(<4vL~Ddpyk zq%VMVpb{@(SKrYS&NXCfTKQT-t4eymXnvNzO2Gs9b`pDknS1$(=i#pN3vQcDb@$w| z7?vRY5`t6@im5=dm~FG>3)Kp!tS4@vwqV(dGms)0q!Q=#i<#iMhB%hY>EVTuu;cz{_8UXj4L+!+KcB%MmMBh&)VEICs7>@xEYkrwmxeSQ2Ku=^p)K0Y7z}p>ps}m) z=^_MVh45B|radz0z)zp0daNZJk^4Ih>(CltbkkJRpe%AHOP&BlM_Awa^Vv}Lghl5^ zlPUxz;~%S&-Yi_7VJ(!Fv#1(X=0Q@yq*{&5v=+bQ=Dby}YO*5$U&a?O%&2~88G2Og z{eC!f8M&CGdw6(sQ7veWS;%^}RcxxUPS$SKQo*9q*QWq>pjn}i z=v31;ug!H_{fn``eiY zxpp3~?ULnAbe-rxe#5`_}cT}u2lTjHnjW2|NSCGu4bA&d0D}!RXo$kfAkg*4BSbg$o(-()L!8hGgQcJ~mP+~HInFyU*vab~;ub6N-+&%j!X5BN|qV~?>B zBH`r=^>5d~^#cCJaQ)V{OUo=Ab=5PTK0-LKj$Mox6;;g&z(TiEys>#K!_3voWxP76 z=(8R7=Z56=n_HzPS_wW#UG5$%8BtX&N|Gx!Sn}uZB%gFQMKo8>7>ei9GLbRS=cdh! zUUb!MtfrMY(D9uw(#<_DGN6lHB#CXbJL~XEq5|ym3S$)9MXUOk)BfPgF)pS%53gCqGjc>6BnrHPD8j=p01T7e$1T!cDiaSdWX; z6UP*nD#CcKe9PwkWx$DKZ*C}~cNjei(<8aCb$c9EoK>4Mo|p&+>7OpCK^Rs20k~#+ z5U<>U#_zF?Q-Xn7=uBUPL>Y!>#p5K>!f$v0!y3Ixphe)>M`d2(yRjVg+7>(H27@L_ zdaBgKWQt8CG@>TMmPVN&#Xt}rLspv<9nB#}>t{5~R2c5Qk<}kdAimV*5|%Kb%m33* z9sakd7F;99UBZO0#MlEvG`;5-_vffS-fs11WK-Q2UdEcVyb4N`Jlosq#IWu2=J=B= z^k_eo(;M^HiCZI(fjpoz@)iD?VSLu00phAc`IBI_iP69t@&8SxaJ2YQ%%5ws z5UMTf>={B#-YJc2SyVM@A$|BEx7q#mX30asMzMPZHR20apBqv77sTux|M7+?ktrGB zYeAk4aSKztyX}?Rl+8NLcolGLzdnymr?PKP(lnmKRi@b>|H|9>-r9(-ULDuw_vQ?B z4X%WZAeMH4H3chmrMTZ2oJ`er|4|s$?WEFmDyMo)p*z7AP2{x7`V*sB2tTOWOCK_c ziT66eH4L#_eSX>z3_J;>dV%1{k5U3CScC$5H4Tv!JSF<^!dw2dJ|M4nMc8{{(Wc~p zTr@4wzWK@*wG?X*`~_Y0=ocgk9U>`g19>)utSEF6flc}k5NzRp+_zCr#X!4gBZw2h3j?)8H2}%zW{;WK16mBM)~;rBz#J(p^i`g(pjj^1 zAC^Ns?%Y;&Wh=S+pp0rEJs8v7`Fs&C*y1o$huc^X03#LTh!45d=@svqMd=hHOy2i- zbw;JCIT@sryF-1lg2Q)W(isE(HT}|$3x%Jt8)(nsPOu&W9oI}Iln&v^V8$JYz z{mwc+fZcI3X0drafLjcuFi}A0`f#SpTx;Ab0QWiXeP9j=aUxl{izpVh`WLmlX&q23 zv#$Ghe{a>_qlXY?UAm1Mi(aPfttFM+= z_<6|ygZq;hYP(>mlMead;3Dm}DAunT#}Q-=cIP}!crP=t_Y+Q%x-{ODsU znInBodK?HO`pH|w!t5zK>V77IjJOb>L#bAamY2eyq z_}jpzNHC&e?vpo}U8Vanu$pdxr#N?4^J#ogoKsT`DqmNAtvRDtv`T3W$4mi3^-tL; zes;k-oAeE1KTT)2E9rddwosQ7KV8bq8_e+$)F*mA=t02s@vWw74g2VMe@@g+TT?5; zqGRAuIp&6kV^&(=TymO-TIBKKKS$x?K&G@7t$ZZD%l|Ix}xTq2idC-Pl1VA!eWO=xy^UuC`7!!)d^M0Qe$O`p;U%AdWt?g2n;|FoY4q>`~ zcCfbT=x6>7aB%v0(5lg>AE~O=ND6zizS}`lCf-&{U$4XLeX_t{(C#zv(0WVQlGc3F zvI3m>wVfA(yR4lyxWktG7GPkgUj3JM3j>{HuVW-ijys@oFa)`pEi_5$e`q?(pt#zm zTcg1e+%>qnySuwfkl?NZ1b26LcXyWn!7aG!KyV$LGtXP!sp1zf)ZR7BzPneizSg2z zTzf^j?dDs?qV7xygZ1$k57C-%^Kj)Ne}ENG7Nlfv7Ax_Pmp~XQ zc>Ik(hkL`cFq&h_twkdM)&B(EJFv_UGfl*$44bEO7yTw=*o~?_%l)U7O|Mj0-OXT7 zX-yvnn!8PiRZQNblq@y9S}-z!9_>_q6bb=xn@E|P%>Ju}M4B5s&MZ7RM=}g$o1I;( zMif(b0s{ooJer8KS}-oPQAe&_2}wh<&r3pj@2FjAf`0G!eu*36)(8Z9XqC)j(6*ihWekGsU z$#(0Y5{&V0-|+B@qvf&F;IB}9yd@PM;I%vMn6~M-2pF?9Kw1(>#j}X0^Dj?gg}0-y zcuQ!uij26ln)48|T6;RPqU)W??C4BA|E*r(G2&-Iv}b49@?q9gZ}$0@GVo6wZs{c~ zM@H92%6r7Al|sYy-vRXcbIQY8#)Hd<%a+PPrGa=gXDXM1nfV2jd%(y7npq&x#lFVx z8qUSjoHFb2d(yB!>ppf|yZgW52Uq905?ib0<_lc5aOOoGs?Of4$`)SCIJ*A)3AfO5 zEYO?DBqqB31C7$)|H2VaF=uBEF``G6XQ^cnB0#>yqUq9FKvEXbgpVNypNJ9wlS-kVKVLNR=Ipv5~k(7*{0=n zh4Z@0upH6u(@k{t;2Y_t=Wrd(KI_tMk4%L^p>_l zuQsx^OFZaJFAMZMb>*D#iGea}CI-w|JB7e}Qez>cq>05vHR2p=A`Ci9{{XrNmS5KG zMUEyZhDL^9$pQIC{H#&bthdE*(mmiY?!HVc|9=Djk=G<_K%09&S!3REzQUAdKWQIn z_$NaYM3WO;%D>;e+Z{Cdn7~Cnq{IAV6`hkOhf&3UoY(te^-a7Mie>4Kojr5?ads;~weVGwZ)cO{rJ@ zm@tfIeZzopt1MbcUMf1(75nux1-!bQo{^)KI%fg>o7LfX=Z_)S8L*{vk-1OCjhyK+ z_xQ~T=>Qr?{Oju%O71!%(n**!+#(8n)`+CWWfnr@>+QWDGMH%-o*z7f$({JZ!W0tH znfgi>ITk!DU)h7FG0PgB5+DONv3XV&yu&%UL`eneveeIWiZZo}{@Q*Eo=3%jYPHpE zi#xT+tfPPD^k3|}p}GSe8k}G-k+Ej|7De7atL&xV>;Z7b=Z3xwJ>tksau4OFKin1o ztl;vai9x3h{RKYuZr{2dJxG)<>|3nk!t2O=`nw*?=@fonVcB0plk*C_xUOj(q`t*F=aM|98iZFI0j%v-dqQFlxYPODAj?mrJ5ov;6C`dX1y3*(^)Z|a#InxR zdTg^O0Y58&^vCUv>U5#Yf%+@PN4Y3Flh2FgG;Zb`G`cfC6(+vcg2kJ2hgdLO=Rf_` z|833qSn$d_?oc>Si8er|%J6J93=Y(UPtCNXBxzhW(`5R)YhPs3b>LmwV5r zILY2|6(tRQ?oAP9Z8QUU5$;#1uW*!;4@reKf2v_Ime7y6D}d4((XiFe27X$$XpYTz z^T!ox38ZkECdUke$d!iCd0+8j!!d`^?jDkkToj40l<<5*rtq7{!2Gb$XBvTDC}A>N z9I~_Ib9}O!cVyI30H#THnX^$77IRx4f@J&4;xg;GWJ9U705W=SQJq33p2mZFSrJYI zU}D!NqU`a%->g?jpUF9{sFnf92&juMSdm^U`@KW!0j)_TKQoo?MP<|6_j4yli$wJe z+@3P-f7WzNR?vKdv4HAChnx++TqCO?tKZgX!W`12gYc3tCdU|((2kKglS?~xcM@Wx zMK8~3xjakA5Osf*Kc811`lmuo6vYKoq}qYr>xuz@9G|XWYUB#GVQmexD40ay>ZwkrXA+N;t<2CtVnM7!W?%y1|lyjjE4~7QAn2L?4 zi!DPBPf(}x9enZE5wEW_F>OzyXt5U;ucHT$_7N?ymTg9jMzj+><~l#m&$p7FqVZRj zf2*LKx!>|$g)}f|(GL`XI|LEh(`zkP(@iP}dwQ_l5ZCmw_rH1FLVwH+dGt~8$s-TF0e<^Hf7Yh+@WY3B_dN@k-ye!nX=Q^Xbp2s$ z_WGBp|G?9aor~FPrMoX8{^Lcu!|M_%TspkR`zSFYh_;~Oe)rNjd8&%DU zyxUw&6)aQ0w2LXcLBDq@D%5`fK}oG$bmq<~Tes_d3ezMx9x=v==9;UF7Y<AAF)bcY=KKC*o9*)o1&>UNEIT+0a8d9aMa#ZTdxzF*XN<%2vwhtRI{Eo^gM4%TTbeYtE+ftpSmR^TeHAGt zO@pnSsSG|I^&Mfey7UL(xZVVgRqBIztNYC04KiGZD;648C9q|y)s~xO9g2?B_iOQd z$ewvLS$+Zz-bIxtso}andh$i_6~;gY&q7n3JesKVh!=;LZm?KmZ*web*osm2kas6k zskgDm-br!`tjtXy)hwG!_5*@dd6@AMXY>fT)K^Z%85zyG|NSc$2)H8InT;<|o#$X& zrn~J)DH1b;EL&lnlS{V1F4o6vB9aT zVv>MZGsx{VVAF`E`E&8x)w~=Xk?lVNA795o@b)PMzBaWR%~=K}RF5*3r)mz~KX=LG z8gf;%;;tZv^X|{Bmqd%TW1S=~(-j))BxrD~N6MW!qv}YXj#Ja0>ejM4+pu8LGn-yC zO9iWTRA?ay4WqK60V==Eh}MbDvrXbIsCZNHNxsN0@CdySkY?yZ(=v&FC=qL{aJ_i@ z8>8X7mAji^zTaqv^K?{0I{nYrZR92f-QsY-X^6K@`!sP2e@0dVsHb{Z5*%r& zt%#3{>;}&1O5GR4lFlLq-GPUJ6*NxE`}(t&%kP+N1DcFyl9KAYTFrQL++LW?J*FJQ zg=V|g$BN6*ycU%_t=(ha+n+pQ7hx3_AKP4Kd=RsLxJY)k58JFcxn0u*&nNug|H(pJ zz!pn}YCuo7q8CTKh@T7$N`1m$RaGXV2!7vhsa7i$wPU1=yi65ondKJP&>RGPwKbBipAH}l4HzrZAaJU(|uD8)q;?p8tq!#RqCsXCE4Bpd5* ztnRnLZi}Tnn349;kqfDAgON7PiV-=>=)dS!nCT=Wg?2T6SHrJ6jS0vSu{_V<7bSPI zM?n3$&U?1`&jfy;ppHMiH=lB|O)Hzjx~hN zsH-D?5i}RBQbPHTm6W0q&DYVu)dh_9%$w^O_r-om!b(&ksZ68KdPt&Q#Oi`(37<{sb#^fb*NNh;3)Dvw${xXHm={{H*YpSAz3r=^YJJrX~ZBJ;*g=Fk#7M#Dr%+o4A${M=76lF+3#NveWwrOXz0Y zGLrbR-z~AX7D02##jT~JmPpcJE%&QRVd=9wh~ zI9PGBhNUDG!;!zX_xlMWgYL_VCCd13Tet+zl(s`Z^Ump46lgFRoID(;hm_q?;-`VJbrvzS(cO zzgC$(I`SJ6dJY-`Rv9s)n?fCm8!at^jji3{*O0{=Uq+tUEyrsL_3CirrOkDh7wt7B zhE3t0b}wb_`7)H?A&H=pZ#u5bp#>MlDCr_N%YdbxJ->>Z{}zTZjjLO4*DOzdfXF5h zNX4ta91#RrkHZlOY&|fs{dQmu-kVcP`({z88rK5ZgADd(Xn#pwo`?XIWc+N#POb}< zHZTmTb{>pYlDd|FQ$iS_on@3%y(jZYRMZy!BB_zMhf zOMiO^V50e^dw=pk991NIiQGE(Zd)^#o8x)vc;w9ogl|0Co@_k1|D_qh15_VmiqbTj zON#Ma>3&6~Uf$moRHZLU|GiBG1DT;wlir(nNP~8eJw}~9bp3@0w5DeIe*$RV+yNsF zL{GBB=EFWmf_LeAkR>|kpSfl$N&eVNx!b?GTm^VET>X3j57;XvTxq&>-Lym?c%qxU z@%1X}!<~-mBs;1AT2y|BRNf~DvrKuT16gK(L>bc?ihsf?2n zjLwD@gMZ8`=aY35WWz-%+!{ZP_|H2Q6t`zSRRG2SlS&|LvRmNAk8+%aUEFY0TZC#S z3N%C2b7EJ2owfmQ64+jL0-=V<%IlWLi}`kwEDRE{S~O#&*c;LUEPa1QuW`8ex=nd= zVa-@rXDCSNkRyoY>FTY(r+1$9RLBezyGiKABBJJ&>+*9CaSF1rdA{^nj$dXcrB+7{D)wmRwqqB&KbxTf#0uIfRHl4qLXN?zN>k@_wk)f zPLA@KpGe~VN+J*p&cO=V_Ky4>*}sXvW>yn-h~}muVUaXqqOE|w*T)qpSB3jW6;mYb zk{~wC!H16&*-E2CvI0p7AtbF2+8I6nHWV*+I#t<8XQV8EIyaa5G^Bh;#}e?j7B3f6 zh7uS+p`wSkM@g-RI1Xucut69B4r8n36^j=3!EAl!2M(Ua>#N{{Ka_XZ8NC;bf4@8N z@S8dU(k?C-Wx5c5-OxA(-;qfZ1iLcIt@RyX1a?&=k-f*cZ7+DXkCuu32+wh%M$Cok zy}+tZ7BM+rk=gPj3>FJ{4{!&QuZVB{O}0O!g8U;cZZgKbhD=yYds;^>FPS7&RnpA# zxTPt5M&U@jGDciPGr=5$m9&;g82{1fBEZ>R5v_lOmF!9Iz!vYH;$U*7eO#C z;PJVh0MlS{+eMXL_J2XBJE8X?wZ0A*v}~SEJSQa*Jhp zFb^^~Jm01TpBi_kNk=!V&_pI|CQ|aLmOWlPN55wKr|@Mv+^=z=`9qKA1&4dRM|pEq zQLVM*tGvg(8wJxVE)j^oK1j4#j%ok5|hQv!I;qm!pVfz?TE?!yHxf`>dS8R+5DwoaQ~FMoi6$ zZA_yT^fsVs317P%256-*?cG>HBlokJw!6DLW47M)bm$#y)V2F}=~?kDl|uB8m;;v_ zULYU+1r-XA2WoS#brrPRqGSw+`%5~V2M{U zF>x(|(o|~KCB8YKw1ZrVSq1`16%G+8n2d!+WLl6a3OnWxrVkgCgfm8bgX-Xlo+-=9 zh?x|I;lN0MrzzY?@K`s~59P-S{GisY={e6e{&h2jl?t0>%wTjiwH;Li9>@#F^)})5 zcl=y*2m7yu)-T|NFrngBY#V91ziufZmt(l|P}ke#ptvBRJK8~|EibdLgJT*4H(*OL zk&QT*C{MTXXD7^o8D~96jw3F^EhvRe4SwPHn~!2V2T$XtJFE+@hczOs=@p^N|Jm{N z1^XcIA&f%md)yo}TOyU2qYH!@ar=H$%&I{479Y^}_tYWyj?JB})xpoNX;~9F_XTU6 z<4t-tVZbo?fF z+b)b9I>yt@J1{F?kXs)ukDZe@43Q0^=MYEPd zY~jmO%rDzhbKe*1Vl3HKV|4obuIIprXj*3_c(nQ!fqDuAEM{}j1L_nqR;e1aIG;GO zXj7uqHBIlLipz4jU^h8)CG$!i3Jr8|C7HooGAlGnH@O3Z7S+ao=m6LQ+(u_;!Nkj^ z%R&~?Fk%2I`dj15msO1crGMDHrSmtYqDco+>zL+YvEZ)TmLlquc##*5rco1fIylAF z_Qp_4&a8c?<#WsAi0%5qN=LQ24BlPm(SRR_=QZBnplL7TV?;Z1x0tepBw#mv~Bcs2R#v@|{huN^~MWSr;h&ySH;J#1bgP$2-@a zK%z?e@8bC1;PCi7GW-|7a6PIRcuY^LSDZqT_{&ozDQCo#)`38XC70OM>49_meNNmC zg-z(b&$y7#-1i2jAL&Zpx2U$JI%>%@%$D+*`tIsLj!Vi)#{JKKnA2ppEQs6Ih;K=upsrU2P)J;JenH zzq`@@obC0tFI0LP@~oI;Gh)+e+NaZ?GgY~gNHx?_r^ArWVJ|MC%FE+`MK5RyTIkK` za$}xA25${v9#OL^K|LRYb#X6)UyO zggF3Fy!y}eWqoe%Zi~E;Im_S8^kV4gRdgsxC~^^9N+RVKBMa& zYG^3=r6|(e(gV($4sTrEud(3BOY-bigOQ3v?@vc|%Fz5OtzTjtPBG6=&!GA@uBpyx zrnuE{-appS2fe%Vpef}64h_}b6wa1NUtiy<_Qb85aZ^CHWHmp7VkV+a@`%@xRqr4t z;uCVAFfOu8pt(zupEK0*CNiITh(@#$b6b`bk`{Lkvpl%q%)k)og378ZH^z_IaxR{% z!b+FBwMN{u4ZnMJ;vm&*PP2xgjBo?B7YE}oM<#PXY6ZWLmhPyy)4HG#=d>cJUYz^` zZrz7=nV&?`nSfH{_vl>4GG{^H*rfL=pFUI3*b>8f{hY-fWv?Bni-v7Ox zEq7W72x_gO1J^GmpC7+Ix4LhQg@nk-0_13WY~8xDneh4X<2{MC{E80y1C^&g^Zfe) zm2=Y%&!2h=-rm^x`{=JGhnC0LCK$@))T<~))=&*0G+qZiZna36s%~26bS{5?mEuNN zQNk2S{>pU^Axr1T>mDZ0)Cb?*OZ3B{?gE*{f<@Hz@yU4^**M}MZ*T(f;9?Q8881^- z#z(O6LbVAsG{cFuc+M!LqV^%B^x*!qxkRtIt4F3hJ=u+qj1ZGQ{sDPDm*Gn7sWQh0 zcH-pE5zbz-LpvN*6bWomXcn2`NL393T~Gb>;24Y?U%Z~R>{E?Q^hVd0q+F%AlFp$A zbgpo9StCshhs_7Un@aFRZe12us_UQLGj{Kus%dMu&99^2+m3?DU`I|8Isql5q5+7B z=%xGuaZ~Lb=^F|O-}*Qj2(j;~feLu&op_QWG#?%jpB|#$*WD#36>b!6I=uWbO70TB z>=en`Md)El2ni(#%nuP0$nf6XJ>fw?XjrUyv=B^EEV-rEjCAszH}(FU$~Wr-?SH`B zgi6x}K_(yHCs|dNgc_e-54GM8nIX$YsSVxDH0Myv;wnq=SOWL+3oE~cKKsq(xHb^C zjj>Z%gid?~)K%Dx+wozYF#u0E4Z$JN6~xlmQ%h9^>1MGJ#;)?Tj~9l* z(n6f?rg;lr{cK$^6Do|9>s)T^S=s!I?Qiv+@=?~*{u*9Xkq6{$9@n|#V!o?G;%vS9 zJEQ&+0g%?%Ws3tyQ^RDBSq7)F|LaN#5gr z1#5zhmUfy7%*#8|8E|>tqG091?3PLY?2M4Vcd!r|uJI8wM5L;aVRxB)Y_0zjYFUeN zHO&^|l#9;78j#pqYSGa+eY&oGhCIB0(Q-Uhnf&&?(;qD@w6D79GRbHTP-AE%{xj*m zXy$8$S4qgPlQ{>ThJw4J+ zpvbDK8vsnKtEFJ+wo9j3oTwc9RF9fZL5>UV*6#THRcHR$$JwNzp3dIWzA8v0bhTgz zhIEf6(@LtUbq9RID&sG>r(D_g3p$G;g9 zWg&>C`AO-1k)dR%k(^cJGUYq{7l2rw!8>iG^&>e(5XX4*5~<$g9|m1*MXm+tQt;4P zu1Ip2LiXDveRNH|qe;x(+#Ztd4v)C%)X5>9?sn?)3?NN=g=P|}mI#oijtM)c8>K6% zs&$w-0>raUYKt_!MohLzl0ZZll;7*gM=5%YDXR*ZX=-cx0)F#^vKt{zd&VTBU5qG&O9p5%Ii?A|7!Ba}~0du6wtL*viy#;GpSM~gi zD{h~*5#_E^Kj%ClD?Riug*G(@WM7QqQ+j_iQAjwlpO_!6^Y$%$yB5mpry|s{TEv9d zUsH!{H16;zrjauO$I(xz=e?Ob^gaK~dxBNoqc(n!BYteK_4H*Hz&dG_y* ztR{AHkGAWv+oO6qJ|qx%JJ!Ul4O|J-1`xprmcKZ3R#<)n_r zn*=D?GgiuGOe0RHVYhK8uJJU_xOIRT#Ph0>#=Bmon#HMM5(mE+fqhArvWAhMwuiVT zH(X5HZmm;LH-`)~7EE77>kxnRBcy?d<@69W-6U14fmMCwq?(D1C_C=gl4uMZFH6by z-fKx)=8{+#%u!rA=92`}W}{@w`@6pH{k;)bwKYu69$Jl^g0Yddt{=ky(5T^-vgbQ~ zQBC{+1*2b{4D4w~__AqJp{R^$t?xNDO^9+lrt{ZbR+=jrtQLG|RsNxaMp0D&Ekwjq zDU~%Ml^h}pjFXkkk+adrOm8t19SUqz<#MC!Jp2cs3r0;sIS|6g+5qATOA8i}vLfub z&GBk%_S#7ab8#uol^K#)^^Nv8>4p_Cuq}EWb1G%os{eqk-4Gk$FgB4HDQal8ed#+~ z0tc;iiGpojByu*8YnUc&;5fhSxo2G;NK$$^3U6{`lW+4&~z%@ zmM}?OR6XNFG@_7AZ?w{2>)J{pv32P1u}X%^RDxWbgo@M;b#}h{t!ub8 zJu$&XaAsL*l2nRmF+L{b0gVEk*)l50xBBu9nLM6yFs7`QDz8v3&eVO+_EQo;bn(>9nY5v)4gBPOneVwHQWq6Z z8QL0yeaU6AFuY6S?$3mN1-Z@_Lf0^X{@95n$uw!CVRhhZ^VhwDP?~wOoJS*wP`HYj7u2$PGpkqtzp#M$q8%0>vtzB^yEl#G;BG$r#KWP>-8pH zci3tC##6`BV+?aL6f%Dt(p8m-1>4+I)Ix0g<0nyaCB=4f*H0_K;srIYj+1Q=u;_I& z-|YuZ@j`>MNA!fQ>Vh(d?s8-WiA*v~^|x(a%q*pLd3#2#?Qk*nc?RZMlUnLo%0@+S zn9M$#rUkG2F~f*kSUgKNgDl?HFRXy-xvqH(RSH?UP*MHjB4giV)MJ1YJWH;U1ZYsp zi&}=;HndG+r8NScE!^+QcRQ=D7DP;P9ON;hR|vJ_uD`1#bBodvlpuw4*n^BU2*;;8 zQy~0ZULDK`f)Q^Q&!eWfDDD=K+h)aOB=aEEus>3RJvpSEoQ!HcO1ikwNILCUmPO;y z`Xvsnfzaqff~xw)^C>3qbBF4YwKv_Jm#Wqt7o%kGyX$K10i7+8rmC6((#uvLCZFfr z?*$4pOc4QTIa$)gu41=G!eT*Y93@xyZU{dD5)#&Vg7VP%U`vYV)ll zYOvBo^Dsf^3qjYB`6%0gXxz!Ukv(xEF{4A+PnP53h%S@HM-28w?K5M0lJ_ z5$Kj%C>NJpcOK)N!GE{H+{B>OvFm`@*Pd?Qt3FUCin8}U#?>R&B_1f|Q+rHF|M{~& zw%ZWGD$H$i8o<(!3&rpGc1{%fnRR&t_}pQ#LhlVH64(jTu1Ou`C$Wd~{2;b>DQt}+ z^T)3(#umX$WVMcJGd(I{S@=;R`*C1eNs)UUJH$_V>+XJjQdJ?3T778WH?JcLi%&N& zHk)%ak8_R{_oIk*5??!#u8#|08#Zb$BD81NjZGA=2I{KIz=G{HivNpS#iz1DS(wHo z!AoCZ3q~O@Ff-0wF)iqyMAzoG(r6##4x^X&U_l+Vpdt(JP9pXU+|rkhHzUi^k;Tm{ zmjK|5^%+d{zmWMI)QG>L^3IxeYNuEn!bTGWFoY$cd0@Y$XiB#4kdwF#`kZ%|+p7IW zz9b?Zy{kK=R<=n+_Yo&xXyr~3#Z1fg8VwD2Fv7eiUvJb3#LH5sgr7!1gG8-JWa?K_ zu{yOnbU92U!6hPwnhJn|w`#d{!zu}kK!_jwfSCd7G~YF|SE2eB zk_|Gd&5$&l2SFit4v#@dY}cJZ#P^uGb(x?`aK|;GBrZ1vHJS*KlF!#A%liIrs(Ig? zrQx^_lgCRCQo__Tk>U^5bFVN=d^7ZAEv?m6ou6l$QX8@kd?!unq*RzcjB?bYs$9Tj zPNS`R=Bd|&N#X3{D0cE`3N#$DX-iog(f+PLc6N4-(66k}5lW_2Psm&WGcLx=>7Tm= z3t`jKjA6s70u-_HiALhkFi~3+lz$kqqYHIcxWaw|ruR?dn>((ErRKoyZj z#hQ1O6xVHm^y{|(^~Xbm4M*{PUJ-g@6N=w%e&_APYe8z!&J}yEQs+%r{NmMC z{+`oRo}dp;gMZ?Ul|s_d)C8XB@I;+vo!?wAjV1f?Y>m1SJ$iDGc1mAK6J`76tur#w z>S7TFJR-@VfDNq_hBHl@63q0>fKv)bEP>W{Ajb&{CEIrEc_T(m@co} zq!R1{qGhd$0#mcW!l2@v#hQzWj)z08K}7HG5?w#ofu|mI+4ZSGsEBM=|8z1X^L9`Z zzaXNCV&fSzYC18S`UC;c3lI1i2f;(QB8E_^A1O9wwHn-}0M$26vN0Q5azxWUKMv=t zRIxpp_Z+x<(NGTSwc|g|DC=~0%8>HF(BCRw58!9};m5HvX(RNwdEviE~ z$%{Nx6$&)GAIG7nWTg$dJ3T6(6s`;k$xIlW5UBF3hg#mVz-K-j_oAcw*)7yJB~be3 z;Zq^WTcGmOwh7BFwekDJol*DEvi|crP$=I2^E!O3*N3~_`)CsICzxcj@AJ65ClqXw z;NA}|-#EP`7k(2LxDM3bIlB6s&)%7;|5$gF;41*?8b4b24zKh>1oXdm_aA`8x^z5c zs;M&dyrT9ki`)~PX za(JhMiSNJr?E(GLLPKHez|n&}_dfmc*^Zr|V1s%3%_#Q=ayyCO#8JBOXtmJ|A~=QWq&{C?Hb?5qlc{jWN zlmGzg-WiVn{5{zTzJ0*C8OgBY`)IxE{fTPdO}5dW#0^Iv?5scW&O`2wb2@O}(Erub z7yL!tzU2|}y7TGxwmJL8;RCva-Tig-Dh-Zh^v~3H?2WCe@)`mP=V|x6QS1Gf>VJyv zKaB0agrOUjnT^oNSiUNsxHYEtc>g`0*ih)Y)0> z{GX(hTJOi%)@En#*x1%KN?-({XJBC1JOT>O3;w7*csBlg@VyTH99q&A4$$tuO*H@~ zMfG!(-2- z#!mpFyG7yQOm@qsv;G$(WMUqOfwgAK=VeD91d{F#?*j;z*n%|2ly=A#H!*hwz8*MxLMpVxIu2Qx#gwL)eH*=+ob^yPs%I(Q9(12J zT>KU?L;FJCF(FPOF`|&g6{ltKfaGL6%i5pyO(kf=HJG>@TMWa8MA&SSyh3AkY$LQ} z{w*=v<9LXYRp_^VaQZ79U1a)(V)Tk>7K{>lwvzDpSCRo!Fp9b}DiV8L-{B#&mpb%N zA!qn~RarR02KS)=XVZrWt)*3r6jFb?dpjVlpf!Iu!}w|tEsrKx;z{Zjx{DQk(==pb zkPjT7Vv^F9JI{g$O1%JH4R<1lH24pcY7onH9^1fQ*q;(zA_?O?6e>^_ zsFeQ7sJIp)c3CN8kP2VDv+6vE#4sT-Uxf+K==jxkXHODdg`-$omt_n7J{wJ_eeDqs ztnU;`M4p3*+Bc}9948Z_hSq2$*HIoAQ6gB7x`855rAq*I!UXH>ot3F`ctWAp{VZM( zU}k%PAkZgQ0xvh;{(~qbA^^6Xxba(oDGTZwQ2`>6+G*P0Gsm#oquFzZxU85p*)7bS zvvBzkPoW$ZT=f66u)vELtcg-FUAfLW=t0BqmBq|ijgz{7KN95o!K7CPP6?nuu%@$F zL-8HZbW@vcG;3$u%wx^%!d01Qq$P54m&GESBUO|f)j0WrnBwFYoA~SWsDbB1R(cw4 zuWGhT!$MLOd*O#Y*oz}6#*sL*e|qnuP_CX6{;`if1BYnK+ul13R%|CIag6@_`6h~2 z0}aIF-u8+y^g&MWdCH?}(K~ON9%2LRh-IN_)84X*ju(jcjoR(?m+W~HGCjR*Mss$Il$j{!NQt!;rn$9T`$lP-x(4IE7b#5CT8dJC zG+B8D7R^_oe+40^GK&-*`K9_b!9k;1oI=pcx(4>L=!JL`*52h_C3~^lrsc6Ny{y|#c+)I6+6IXcU9H$|ytDSj5x5D^CimKj z`c7BsG*8vK*Pcz(;N2+2aC+GJJvzGigzh;X^UHC3dcgs&e7%$J+)p#_gZx14oyUbJN9SwJ0(X;nimI4BFPim--Ti0$ zyzc)nul#0xo*#^TpoL%A>yK9a54fLi())vOdatveCxt)Ne>USO`~6#ds^$LR+Ig&H zKJEkcqSSjY(R+=i3na(JDt_E6e`Ivk0rsMerv7{Rjpvm&oQ3Xf0GvQTy5Fp4av81g zL)OY|?am{*(ET8aNer)Jx1-lq{dHEpFQ@-qTl>urPHzUa(B2(j%8Yor{_U3e=CIt4 zbmya%`OEHHp}4@QtnzQYSA=B$fP=C4JGg#OHxJP3G2NfC|2n$=H@(pZ21JU*xN_gW zR6-%&jQ@V;o*6*Zf7jhVw$i`*Y-ewOL$vd-^)^n@ANt?HPAKdgWa*>mB@<9$yv`m|GqH@>bZY?y5RmeE*IcVH}XEsef-}X2r#;s zzm5Hi_l2JAXUkOriw!-y z&$9=P+m9Z8hvEJw>cnSfe$VM%_huxs#&1W)x0e35V~J_(%pDioz1iIFdslax^*%z~ zo>zSFP}fNPPx5a!B>kz};9_pI-I0XkZMXj#%lLsXEe-oQ$x`3|V;lN&adeAGI1F`8 zMnss~Sp7n|{hF;+Ttjlp{nlT44+~I>7PgUSQVoFWyK7c-X-pQaOA&IskxL=vM6fnp z50&aM1in_7S|W6{phRs&$!%}A^j8y{l~|OaWYz$kDSL8gc<)XJBAQKy!N`t*o9-Ok@g05Zsarj)qnO^>^<1qV@*isi4!C zhWlZ|&|RUP{V51hHVz*M8PEZg(Xk-pA>>s?83Ih?Ow<8wy{7yyT-SDA#;EdQcky7A zAx$~4gE10v%8;Yz5Z}IuoAASgiJrqt%dwKG>{cF2lSgtzA&$V~qOFcL$C}kZnU!YH zQJw^%>Ol@4XZDZ}9mh#Fe@?N;N>FvkF%*m4<v4Xp!bk1ox=Lisa!>k$U>QN<&6?C=cibv}| zl|y04@Y9AP8xN#{`nb~#yb&hlC-32)`L-PH6R{a%C=_`B|9Ccr8SS9UsU;ePqt(+2 zdfw(0_f*cwvkMHvX$0^kB%0>k=k!#yIZJDusTw>#9qPJvQhh(nNCuZc{YgGV>+=0O zq>A4|qE6kir)!&Iq&DnOxOI0{O*!z?yYT@~0;BMyG?Azu8k3u0T5erL9<{a3y91C+ z9lKD-Bz#kS@2@&~df=WJtU>;{%Q0#PuO~7vF-0Lu++SQiz^$&E1_R5;rFpwsWgS@t zDDZM?!nt@iit$MLKB(l>s3Z~Oq6C-qxZ0(sax7;DgAKe#O3$~Ohs65j9lox=u1en7 zIXJ4WXO&%eJWk=o5erV}e;zV!x-E{aZEg-w1VEOK5HEHOV1fEjPynmsI-9+to%2-9 zRS9DDsC)#|d`0A26JAkW5Xrl}g)4@m87bm8=hE3h8*!VzGZ)L(T79^O_Y!WrM*p6bu+glhLH(NDh=gk8|HX^4~Z=UEXUqU0zvd9PFBSH-GXGsViBgECyB4 zAS{!5qzSpCXu37e-}{6a{+j-Ue7Wa`b3U9xKH>7`_z}DKG^MCXAv$Q@eB#k-w6m6$ zAX|N=HXaX|QNK9rVxjRhX%cXJXEcxsZo}DAokreCWIP+b5;t)q7IoKNw+(2)(!u03 zr-Zs)M(YknVo=jgqStcDPfjj8D5>*pF};64^cF z8i(SEN4MK;kKqbF?#oQ8)YDFEasb7xUZhl{*c>y>^9BD5Z|trU`_2(Ss(xpXLN95d zs-Q|vs+qPtTwE!aps7=ng_dF2wny8G#3@at9G(H$`+TcaEX_(*A{FOmW%sh>Cl^Oa z7~9%!`sL{4C`=7=p^oa#=Q?8~5r)y-;^lyfw{9Klt>>*#ED;7g;9glPm(6&t@xG2*XQ&OshFHH>5W4rK;1#?kIHlhp^vO(@?MKl!0&YZg?A_u{B8g89dM`hVvz@OpFJ8v zLVHD36(b+U=;&zQ`NcjJ z{2y{RlFB~#;Qw3oa;03*`~Uu=@jC=W-ctxQgp=9k%zxeYFtNwC{?Bkns6(UogZ94E z`saW3A0@yCa8tL^fV<^I{Ba$AcSGQ4x8w76Kr*&B?2?B}Ebs@qzAuZwp#u^%7Oj@^ zzu+KVzkL`u6hd$p{r-Ch5RHWN-$f*FD0V*WM+0WGe^L71aXSwC%z|&vxB=YLvgduc zK_C;Z&XSWn!++e?f8g6PI{HoOKXn0x(!qoAV}aMT+5N3607~)v(;^?YCn5O$|0{od z!96~C$biqs$JP2l&%u)hNFs^CcQ85c5C6_H6T~(s{_}rVXH-Atvwdd-@$pjsiDLZp zw;aNE!EB2+@3RLufA)a;^~=3?ud_FgZr-R~^c_d#1Y{MV}l?)4ywA8NesZ*s3Q z{m*-Kzfb>#r>|-d9FfapNu>ms1BS4l{7EUwiGQd4eU#vyFiBG2*Ez)knt0I=(WCiF zF{xxFM*8H&6~rpPwbq+LVem&Z%FOFP$Zd&Xi#+S1kr$noaKpxS#NQcW{c*|uOZ)$5 zI;*I-x*!V!!65{9cXxM(#@*cs!96&H;O_2j!QCB#ySux4nETJHdF_W@w^w(cQ?={c zySR0e5a}dP;a{_m5?qFUa28~SyH0!Xl3g8GF(jGTA2j1p=vAT#b}K*U<{LKmQr8E? zT+C3Cu)(>OQp=7%K0+Rei&w7c#^w?!TPpU37 z3$c0AOJmUf<`9WkjztCE#$_rEZ=oULJ9LG8CJwGd?w}s5fXz`0HAf}AH6y+Mqb%P9 zi600p9h3`~iAn9(;i5%Eon(5*p-NF{8RODZgvMx||FVImo>>rP)LEc9eJ@9jo>^F6&qyE?FQ(legKx?w?ia@4?XF9Q(HWSKfUf2sQFnQh`itcdz}vDrV{hl>?S6-i|}X;+=pSy)T6V32KryW8i~V^{ zX1t}uxdf|&Qhf=s=f+mw-@Y~di;tW{uSeeypC zye!p~Q;jUs!G4+Q`yGr>&u*V^?h4~=5Ly&VZX`GZWt6%;nwn@ydngyr_&5Uj7&Bos zwl&F$*8wk7urs+)DhOGx`34-XbElBJ1C>;F{S1Bn+6jvz1mjb z7n{kNmXydLr$>BJb3JWSy>kmAnCjvfrmW1CiJ3}H#$B7ERxUct9xtbR#`E(Y7R%5H zF5<%%eJT;Mb?YiG5!1N4Mbd?r06GX~lIwazO{PUEF9RQUrA<(ip>eYG*jyEUeTVa?X*Km{#}ZA> zFR|BCe&^?GuP8FH1kX)lS_`yY<|(07a`K*AiEJwerjK&z6pY^oz%pLi@}M=;CDMyi zsizB~q7}qQ49LPr)cE}b|M9UvpLJIDqga=LB7~vo4M-|2&5hb3e5w#dj!L3*h1=2}+>}cU^pxc?8(Ne*UC&%E5{~U@N zYHZDG&J=Y1onhCN#^iHYzdA*a2#wg>JoUEu_{e#7G}-9z9l3lwA)6X*??2%+Jw$N7 z}{4^F@5RuH6f?qg9WsJI~dVpxeho$IjR8p~Xc?b^W{A z82u?zqC0Fb;5O|3S7E=c2`rY_ysqdTg2KYz*EM(+&3>q4dTVHMz3u@oFE`=LaD2VT z;pF0)YWD?h$i@YA06hfy%m2D<->WBIqS#iWtIf_#eW5i>D8Yr+6&`~-RiRNE!#6hm zH@dEH`f-oP`mV_Tdf#T}!^xYIbu=JYS=D0(XplYl4{JVw_Wr)a55>mDreiPbYQHwd z2a)Lc=-cgFjnCH}DuKmzHcqZ)>}W|nhwJT^w>C>IF7Nj}_p@f9C7@9QV;^l@ls|ez zTT5r3BlSLwzI^AC=e(RUti-LA7FA&>c2y zhrefk20GtkV%Ba-OhC?%r^=TEe*Z(*YY-e(<1LjA%JE03&YI-S<%R@JQ$Gt?hoc4Z&zuCKZ7|UkKxm@qw z42;;f>t^-u_dTg}PZS^XB42g=^L*E?iGs+i$!h9*k5I??f6@BRLAg z(9wB2!6&twfZfuBUr*e4_pOI^XGwwR<{`-PmBbsDp$n;)+Kv`!C6U|?*D#Pub@z@W zW2X@lC$(~`QmpxJ13!Of+ys}_&kw>#ItlyzK`v0K!FQFKjhPR^!OOpFX&G9-M&ee1DW)8PTe8SL-&%9P;)#bM}*^_d-W zre5qrFemtj8;l!+>WrQ5thagzC3Np=CpIgMN5lyykr!3A;Ww#vTzTCcL$9yA=IY9c z81>~tKfhYX%shr#pZr52H}I8zOk%u5qQ-z%A(KB?NE&=bli zY^5Q2R%(fMDwE0F@g#Q^Zp~uqY?JX&1&1d#eppz1A6qfq{%t$pn;-d#C{f0N zS|b&9|AbVu!wQAwG`9--XoBP-(C$dr({EBm1H;Zq9q121-s%tSWE5C4&yezRajV(M zKa=qXIE+?1iUnmd+FN7geIdfin4%Y91pHNl@a!OQ;hOTZR5gUEA#5=YwD9n6f^H_p z=H_W^R51mn0kS6GG?8>g!T<8bbN|eps33*R&s^5fI2>yKCL{gaWou`{dE88J=iS9c zhEP`r>K7oGZPbkP{q^~sn<|vjhM+#*jGr(Fl_9&W9Hc5wC7-Gw`?I+4JWvN&Ccqi9 z2%pjw`>PEd0zKp73VqXRW3I@`#ePb=gD>JdDa(OjAkwt+aD1_DH`*xJ-$8KjM7v=7 zf_uVEnD9{O6Swv_nSEUuXqiTh2+!;<4PoszM>q@m(UMi(!pO;njnsm)P5U2rcGl>PHhP`w)6f zZKJG=FSJ5UzkuN7;-Z1gg(89>LtUL-tyeym{Zk+3ihi?G4?lM;oW`q~HxJ$bIy;lc z`LJUtnm}msQosF@^`)C{Z@G34OwVH{`2EnnGj8jnbL)ud^L($kUC$)`$M*$w$Rm`jPj;=PsYY?S=Qn=PTgYdCtdbzS2}5 z{J8QH+Pn|xo^s(m(Db`ldg&s17Ri2{FY(qnI$gfmJJ-=I*t)8>-!j0&#C%R@?mAG& zsb2(=_6$D*kDAlL+}-cn^Z_By7yJm{@AK0AE^6yul<)>t>Zn~JDvq#Nv@e%()k3>!OnU&=MAc58q}{-=~do^GM=dQ7VK6aq}S zZ3O2UcN>RUdf|^BKjIE~Y}%KOAH9Cq+SNK*WVMw}W0TiJs9&Vwn`uXbRBku@JJzUJ z2zJVNL4{EYBeVGVx$-P@I7m{ESR6|t*iM#6$yF!(x2tu!W8JK0Lq z*dsDnT@C_EZygFDPE6b;;r5QTi~pY8&3$+$Dylr6$?y1krNPA7I&GufE#V-msn4W= zQn6mchL~GXJxR;Hc2h+IYElew?odzz2lLk@KhIJT`qC#Fkz|~HlJ##%V;{o&ns=Jn9q3ntp zUofx7a}wxf`wZD90`k!+C@Zfq{P6Dj~?4>@&pNDLEO`Fk1YAPMLoD1}U3d2MxSGMN)lItqWH#6%p~FtcY$E<3OC zve5w>Na30W25CJ)O5n8?pVuXHVZppkEg{t(9w~}SR#i^T^UBQ&f4M!UYJve+;6?Um zY(ALw@U;Qda`izZoE<^Eb|Ga~v~)JghEBS^W)(jGo3loq7;MgZL)|UhTrZb?$iIDB z(Yn12K4wi}@&l>qx7cL0eO)bw_j=6WzP$Z|i?+Iv+l7`Rv~;H}7iqyx-4L*EkXEwlW=0*Ha&y*M8XjU|Gdw z!9@ao%s=eD0qej{1Xk>`9WISBeHEN|j!;=3K zivKdrP}2Sr+}j;|HZ%8&1P9uEDk_QQ&WG&H#7ek0o|^xthv;?mjzb1n^VX0VKgvLi zvj-Ji77N^l-8WrbpiEVQPEJV~;UnN|;=)F1W)7>gtk3U3V=i0Y5_KGL=o<2(It$@M zY?ks6_hyz?L1kD)k&)H(bJM2`7M*B*+Vyus=Jhk(rFaAE+oHWNCF#wae-0-U~~gv3HU;unR`?U4ggl6ki`vD zK$!K~AX^UI{%|y^CT=&Uh@EBS1sQnYnktR=WimB4XMx}1NzB2jB%78##B&YtWU4lm zSCz;kLlnv)BXV=OSi3^ilqy=qt^xhSYlw{*47x)=3JtarM>Y4{%+9g!z$)}O_@YBa z&2CML87rs)9;)vF71)NDw_#|*Fd1%T5lStXINeiThf1CVVLKo(q!Yo(3;m&tCBqd( zxbY8;55D$72lKO{G5$ej^l`kd2WF{yOOQJg?fdV{ams&@M`PoT!C;al-i%R9evkFf zXPoCmB8e6m~yLY|8Bea8So8R)QB_VhRfay4{XXCc-`;w z--e#og%lXK+c~!1b%^~g6qCn4OEaP2J;%4Fsn0&9Ti}%c9l_WZOD1JU#UgqGM{=!r z)y?L*Gl!#N)3pP|w7ukeu>{a?IZBW>b2$Awp;c83yaXUU#Vp>zs^$pxG`~)RJOlVu*w$ zC%Crc0AXx}tvhk4^WWEXhai`_v$jKkavA=-uNC+Qr)c8rjAn|csqdPU`!l|M^GWe2 z8~D&Af(N7T^EQ6zHr1Zg03IpDzq^BN>Tyuv_unY#^h@1 zLfoX7OrS(eBOwJEz@_)_jn<$HZORH^D15v7XE6J#Y;76b9L;){Kr)LbCRt)Q z)1bf;7ub5p8VCdg{lJMot_%dJb)-LR_cDvPuw&hwPCUF~mf{3#MQ)4)<(P( zW)uC|573D^ZuannRE@Htzj{WgIAh#<65ouT6JKQ>|0d86Qgo>i?wA~DQa^v*QXWzG zXXh){nDzLmQbC~of+Ss}-uIG2@)JzlFMt;EM<_RHQK~aj2J_9krD!0oVoU#5f?daQ zMGtRx$AKL1c9JR#KGkL^&d}^QzF*4!rYt?BO*duzYwZkoy)}d}wa1IGcuk{D^Mh zA2nsJEX!|_@bdEXT&yUM4~%iv(k?mR46v1VBq#KxhF*pEOtoF0l4lklx7p zaJX^Gp2Kx%no9$V+RVZc=ubL zLN1RnQQn$G9n_*S8(D{FfVU!i&xLUupWt%5Jl96Gb(nOr*u%G}sAw63|4IjWT3$Hd z_`Z*mtdX3S1eIkcQ(`*8EATx>DKVfZX+zI#5F^p8uXZgazb_Rv;sLP7oE*qz>KR(v zIA_pb&7M^=uM_V6=%EW?#Vq)$9iQ89DE9eC5-yXwOUdHFgzSXD^SFyfR9ba7e`1?C ze&Pzle^0U`>~P=4<7*rsnC$b0W>OU4F#jyvnr&hDr~u=`*nYi!z5$1p4Q1OH?taj%ET1S|5-kXJ*JVNJ2g_GEGQ=^ zxQPVDMP{7FUc9DyiHKBezZ*^DusZ+rC21OrasUkt%r`^v3yjq-2Z%)cVWT6nJq3g> zR*OqZfB;(iMuUGL=|Ag5w1fgG#>B#8Sv9qpdbLtTrbUp&PEeYl1=igIlKaY!p~aIq zvn<8~m%c-nAQRfB%}Q!)dU_?z*$pZnn|zQ*c_d|tJtATpn81&4uz|#FM%R^=I3j|e zQ8Iu#1B@AiGeS_wsF2nAsex1ll)2?{hKc*8gE8_3Ryrt zGck*lrh&+dlRvyG-VYnlG5#1P;s27(zC;=8xz;{iJ*Cj<=A$GNN6p~Z5YGc5fs$H~ zRJuU^O6@QyV@mAynuHm*z3n5LK^+lj*BlXkr^=^F1xE?mZzKpduL`DYL_0ajpA2Pn zwk#12m9TI8vO_EnS5-Mp;`(FTN-W)MzUc3$$%!SYQzH%1)JE>=gUlebO6VnnOrz*n z)8oG5h5xY?#4h%>M5Z#kv>u;(cy_TBlTY!G*XEmn?{$bTr2p0X<<%if*XP?yeuAfavfSRK| z$mO%gb^U(iLjczOc-GwuJkd8G)yl^2)$;lDh(9C+P{P2k>xkYQeP0`Ec542e)&Q%9 zgeQOI-FNRw9Q5E^EE7WDVhaxcuh0u5V)eG69oG?fF`BOwIGH zC9no(>tFoU_L1+UrN;J`fl9ZGQ*CC1~~b7@~SE5pKjM>VHU)8}Dn`oaY#YS?=`!e9jW z?@4dIRJ-56_+3*rg@|=sP;B)w0sN`&m{&fI;cJm$-{-#quDePmH2D8US~pk%QQe+E zTL=g&GrpGz1ZRK{0uU}vivP=>ED1c>c)recKQq?sAY^~?8@%t@@AZE3!OnT|)Vvwm zdjAR_GeQ7e`;p*%!`Ai7u6el6sK@?&wPv$QboyvlX~z!rHx?EQb^(vWHkhWKBM;W* zndsyBrdZ7y8Azg#jsbhJHx9xYL}G*xd(2IX zPj}ec2C4i8dUhFc&t%j=RUiu7=>va=8vsHU8aa5ihoY7YV>phk0+37(0`U#BG2KO$p_= z{WPtPJdZ8c;g^hW>*Cj>3efr{`UYo0mlFU~r6Ckm&qdl64Tch%~v0#juoRJOeX zlx@LpapJ0kdeB67gK zG2xU(O$RnhOLTYl1QERxPukjDPZ7OaQuc%BVNV{}X*%!Pa{L6 z01tB;-R;BI?#|@6fRPg43ZXu^%+F8KH4?;!HF*Iy? zO0`YL>*=J*YCMWOjluAw_4}5LgTmKFWJ(l=3f78hV%P5LyV~fK75NJu9zku8#Q(CfcYBvD7by$s^DN?^v1=HbG1 zvg5SyVK-xUMQ1cWC)Nh&(m~DZo)Cff5P|a@E7RrW^+beS{wBA|9KP|{T~+|^-Ptco zz+d+Br=Oy>8F%3Yf&f&Nji%~5ItFsL$UKH;`}|FKciU`){$6f)aeF@_XLV3{zlzU| zdS&vuhO3q+vSll@Y+p-cY731wlv*QeN|umDY9`51CM?1gR?B8O1M@oN1u6p3_M|%c;|I1#%=_$FRG7aO!CFhu!K}sl73#SR zm9NM;1KG|I?nfwx#XlbKn>JLS!FC6>o8n8CE1`oT<~jz}dYxrdUa zM~|WIf8rsU?XGR0o0kCfgT;(QcBOvav=Q&P6a~aea>k$(vf+K7%&_@!#Z{;Olb2Tv zDr&BF9QiQIo9OUNy}nyr9U+MsHolzR5_p`@*zfYmmgHgF@Ss~p35}&`g!FCNAr>7v zUeAy(FihJ$|Gv0*30MqPN+^+sxtO9cumGv1j$qe>SOk#qOnWld2DR=3hr$8bYP7s3(giX3X`a>#K!7mazd!jOdHrBQfD!RqK!o<+inOc0Qi zP^XG0i{?(^Qxk8jMi{s@|K6w$kKCds;>X<8X~;Ux#}(Gj%;%RtLd8mUhBgmYzXlPAV*YmmN!2U82wDDDOQkKenr%!)sUZbG}n8mfnnr4@5!pIb4^5 z5X5~aQQ@L=-~Z({fJRG}JNb&;+~q9DdEU|a>eynwgE`8Gq^`|L2NKg(Mor7kU9gnp zHHlw8dH?x!W-SmoAVsYQg4w^Mac)*o8H%yE@RM9ZApqXF`QWN^0cNi6sr? z9C=#)($#K;kDQ7!TFFhoQ=pPV_KAzA1u86|txBe|nmKrngI7k?1xZFfiFV2O{Qz8p z!gSa%Q6=NgS`jA)vbyRU}yY9-$$E$KUG|LiB-7=e;%_UL4mVW2_MA%B#pFCN<3RH>*Tx#e);UV@avW7J{fU@hPFqfXeRX@vJ zmQx3N!goR1sAjKXVgVse1!cAUth)U(XY_^$W&Pc(pos$X{n*8+vdVOrhW0Fky0TE> zLXWs0uVo)MC+Z&42I55Nju?@ zJp54(8U@HsTNmi0#^cDOv<=z<+2=g$r4usqOG_&t@V+#yzLsW*oFl(*e|mmDW0r}- zJrOCk9vZua*O96n-ahP0;4^Ll51k~9`r>cbN|=W+QC{UDCZ8T2?`bZfr#$MteUl3z z6ZTanIefLXN?@|TvcZK(JMhjksRCNw>fiNh(851~>yr^Xa zT8wGn!g@odLC7i!GXNlAc4a2-3NM@${(n2p?h_ zf?Dv=y~b$RO=?+CnmmuEoeZzmc3@KHJf)?cTBZFD08L7rkO7h&XyZN*dbjcahQ}8) z6CDKxVQv2aV`8@V#B78G4VihfX3d@fnQ`qgFbDd9PxI;%V=^h^@<6*)2_@6r);6~J z@s^5#;i?^%h7Lm>_Iv?(0jiITb_N`HJXwvIE=L5N?B@K0s!Qq!D2l3{k9Qqpc5o;< zS#Eq*Nn`71N90BM!rv1$E?ju6ifU1yMA?|iivRH1tND}H@;bfJS(-COl>RBNT)l$; zw*g#(q7{f3_y$YZ1kz|^m&j$XlrXj@-+o2MTZZLEoTl?a-Zs!-x-0C^r_%SAqGk#Y z;UVZ_;2~2gxC%~V`T=LS)ic3xeo}rkz7Gm@qBChv}c=G+MXqWf7hE72cEkx|@KT^lv z$7lltVOCHxo~d*fOI@gA+VfwSDJ86_)aZ(YDV#k<^bxPjtG|tnb(G?FHQ5@Ecx`bq zyZnmwyjbI?D2k?*zi^+W_~(@gc8QbY@t-PgSJEHTbw2E|!{v7;F#0L5_qpQOi~uG% zQL!(1a!2_99la3QE+dYf`K0qD5_40{ip19a+=>&wi_i5DlA9oJL%CKx7?vU@0-RIS zf7Vsjt*1MKTtM7WfJ%w?q9-gMGlJCVYmNKnPL5c;HRV$i_8&0`ED$1GfbL|a^NeUn zo5Q7Da7>r>RuQZsl24?)9^YY{xsI?zr-M# zFeeR%I5^!r$_f zjI$Oe1nwy1mY_^;^+{zE`#Rg}h-O^B5&ZePD6pG=-}ya;@BDcpYicQaYV*c(*>P1+ zwHj>KJWCwgBG5VCpD8~y+P@zPmIOmw4)z8ovfZiV$Pn&8g(mYG!2Cz5;0yeWoT-c! zxqWZZ+4K&bmJvPMs#?7}S?kXsa%-7u!s88TjGm}su|PLX|KlFxMAn zETNR;v&yZ8FLxSq;qCL1O~>t+q8VpdghN-i=62hq#yeU(ac^(YDWsMc&uGy3#$pjw zYKe;?5oRjTi*QRdt^$N4j!|P`zQ)xRD)UA_p@@`we6x;^r%v6o-%t;B0 z){@KHm!Ulx7{(T$_(|XoSU526_&RSsadE(+cOZ^pX#LvB2vmH#rb~W_3k&*x$HG5g zkXW)5t|y(}pB(`^2*8qq zzqI2X+?euVdc+sNWO(;lX(>^iWMiW#f*zDyPlz=@BZBYBKBq0xOs%b@L+&y4c!-IY zk->eWWnhrMq`Ms-!DPXomYcXczv7xFkt!Zpu-V$)4>yPQmj zT(?7}qwa!3v`UZi%j1>ijfa-=Ml?p293hZROq>q8 z%-@!$rUrlnfvD8K-p#9#;*UK6Pk%d(+U6`h-!W2V&Roc)@3Y4ijl zWiiNZ&&fyWE8q(_s>@eaH;W%*kMzrP|7@yg%a%0vxM--<*oSta6IMZN*kRewQO*VW z0BW3{YgEyte{e9N2u|iVzJXem@OqC@-^FiAYo)n78;q>!95>8qnQ zb=T#5`ZlQu!xLvh6Aw0*EIT%wgyS0qIRn@b(G8d=9QIUwhK)z|Bp`~s3s+}MXo0rQ z$c_wI%dqJN`ahgSnK*TS#k(jH0UKoE43c7_`#Jwiq}_wyd5gflfqL!p9J$vWWb+B* z)YXIJxuU7KAoHI+KKWKT@u*1aU$OkXTvH=@%qN%8vW%^OcW}ss*PJ)a;r#gmm>4O0 z;vu-oTk;VqB4VO3gik~X_OEmF7|E&KR?}}x`YR-ZiSZoR!4!)HQwHhV1UIvG z)BGwhT;j;83?l7?K^d*%?Jc6Ao@h}s^9+Ar1Go|#d2I~H!ndsp+|yYWI)>h`i?o83 zYEm{F8ygx9W}h}`-TFruwz#2k^Ecf<+R|^uC#wPfNRb;;8l7fyyQYh*PJuU z>3EvNuI&J`c#f8|2EAY>6p&_l#`<4}cu>En+m=P7fAcx+=YLLzVa8R^(uxJdU1eRV zWLKr$+B(kdaJsMkRV1=>rhxCAiWe1kgq5;B9NVP&et$< z7Uvsg$m}bh0z^9?2kr2_%z6E4Q`7PGFYiLb_Nw29W_9b657@Yr;G^>IdX$unGt`FL z${g(@z}P2OT;H_ElpjW;gQIt?)<|8XX&wb}OHKk(rz5tA?B%Ilyzk8`5F4qi>%&ms zgXEWhm7~Hq8e(G)=hrPsaEFDYl<4))F!CY3xWCca;g4(zL2PbLS zgAF)wkZm4yP#v8(r_c^wo})HQ2(nd-D*GShFI_PQwSVhxXvW z#bt%Vl2SQ;vmJ5ji0dbtL*zZN@Nh`RKRt%2&p?q`6TqJ8RBI;^_3C`vG`6`(sIIRw_nr2YId0wj|HR^UGfu7weET06y)D=sd}Z z3okbw$!QrT_=K9Wi@@9pb`@f$Zw|kqF)Pl_kEk*9rpjQcOAd8qRo(H*N*Z3BMW-x? z-}$B3F;uL6MQ~%o;%HxW77ZW*hYG@a-NI{!Ao6ptJkk@8ci(?xiRp@5aEzx!*G_cw z<}u5hb1R3pxmEe(ETUq~tFK_=NfIPaY@<`u zxA~wqpwGTaZ>BH=N<*b%%~>69q@a5BcLFiDMk zr7U)A%UU)S!^=JRXokO#uTT~Jw>%obm!EI;KG}~zc<_aabJ+VFFh93Cfaj@r)M)D& z6qnP5TT?J|73uU6X=>BffV^lLzX2J4rCB`-5#eprwTlHwc^Opb>heY3U+HA&vBmTk zATdhybEz#n3}rQgdV2dqR=VwpKKRAn{0H{}$;pTv2G~I}1QZ)0y0a&t4>2?Htc9ir z>jkdD?fxwJ3QP#)foehav{yMp3^#CBV8I|%-Ymuq-xLKQDp~a25_0u$6^_QLvhTIj ziNU(_dvo*CCx`d1JVC*XS$2}M@}n-Oy)O{%lV4o!GRfI&iPe)SdcDHyR%@B^8c_mE z@h|fK4NT%`qb2Nup%~B+(5zW}%I8T1Dq!%5#aW=Cz?0Tdp<|-pC4lwwD5}FFE*`6^B}-nKTJw5jFp? zqTTd~+x4cZ#w=Ww2@EX1t2)aZZ#W$XzbgTsz@3raZ|j;~DqLE@X2J;%o!gr;``zs> z{mROFX|$+IH)^%s*ECyBy+MaN{A%0;3m!-@bzKoOsKNw{2%<0$j$(6OWE;F?jSG~Rer~gDcH_;h;ua=X+vhNbtSl`Ph}~Pn|<7 zRF;zyx5a0*dO32-M-v`R*$nNU*2anM_qXl@9HmVb!tu_TuwcCgbla?o6~dUZa@K0N zKxj}sdIBx2=5UuE*a3y7O7Q|1N`#uWT>03TfHCX$tLvVI$7d7rBP>{}j=03a$6dV{ zYxIvjdmT+S2HL=8K&xDdUUa!ds;Fq6UR6rsFxPJuoai)YX1E0o<8J}JegT_C!uq=9 ztE_YuFDtWQ2_85XijS&o zpB6gX?7UJ6#@=YCz{iIFGW1WTX}2PA#D-e$FDSe0t-WhJOkEdOCR%soLRi{=%9n^2%Z z8C3%~1209~2tgT}jwF+!eKmwK-B_OXF!u&XS>AtT-dY20t(r?zt=S5Hy4-V9%k2EG|xxNeK1OrVU{#r-=J23 zdF zc{8(F>swH;uT9Z{t`_kW8!(m~IGkS8(q$#IpSyT~l`+;AKJix}6{nV&;P{OmqV>Wp z)ZeDX&BFUCQfhTjEH2cen<%5xwT@53s=2DU+JIo5K+X~VE{|adAu3;zFn#4V!pCDx zdn7R4n;Kq6n_(D--%?M4Evn~lQ}&?I zO}miO!bEFEQZ(0sI@CjZ%7KKAyv8b?@VYWj8Nvr*8IUwprM6MD2ZRVD5>S5G&OzJ0 zCZq(J=o{%r=>B}i2?IS#l7i=D2_-E+$}*79syP$(er}?ZK&{C26@R%t@J?3FlA|94 z($_t$>+?+GOSel5e_DEd<%!PX@4f77hpIp!02^S^4^(i(o3_Pr>S~7%A)7H_;2}_K zUD}B_HvdwNi-;qrzAvlqGF6*dI5UTr_&BctZzw~7Ix;lR%mHm~LNcSx>xmU*%$l}S z8TA)Erp|cyC7$tocQ=1pFc7^0dP5NKT>C?QwlBH?g;LuFp}9H>uHy0I>-m;nEL#az z>RU z%{#eX^pYioS&41curdQ9r)|lDy}z`4qX&hkaPg3|HXFx)qZkNED5w??ylob%N0Lay z-b_gUb>czo=7Eq+&w`#%W`zPaG}2WB3apQwvHAevp{R&Y=%Ql*h$RgR~HyuG>U{NVD=2*h5S7iZcu%EP&SPfXisupljp0Ghh^O7IS$6+K4al0ww-5FRjR=uE z)7hGGMS}(hCzu1CHl05a;A^sA#|(E-8M;J zMn(VXfi-+gOxY+hFU8U%Bf0o^J~xw;EOsA9-5h91^xFqE%MuQLZ9A;y$0JE7$J3UY zVwGhpjLucc3wLVz_nU=XCv(Ix{ZPsSdGzQiPR|-+BmPt?DydTlOrowXF363E-i;LZ zpkQ%8pMZ{Hflq)HYFL^&dEmQ$I;Dl!$*0) z8S5bS#NwhG{m6Rf&CHo#QxF>tDWpbohi(xh=1C>2CkKSjSElshb}WcgtM;&Datw)S z=$fy*999W3j%?^>PJw%!gM>}58)#SF5 zoy4Az?^?n$I0wSV5t8cDl6@FOf_In#0wplw8Hq;{gkC2s#aI?kaA7@pr;X8w7WcAf zDl}DzJTV@p#S|!%GhwGTj7!hVPgT*ay_bz5&QI@)zwHY{l0*q~Xg+JB6oc32sN6W1%Uc-6=x$N^^2A#j1;Ghkk6=#9Zqxg0(A%-wE=aony;O~5_UpPd|1_&mbDr2 z=wyqEnSf1bO#4T1+9E{>7ngWSFWF!RKM;DfZ;e!{!Lr381r&C8gGz~WoXRBPzAotO zHnKS~AmzVb8IdaOj8B+m5DcyA>(k3i+s|40#CX_#!E8K&*OXfDtLFJk87Ni?d6SOp)t2M-$Vot#;ny9$YDFcKgN97t&EW76mcxG$aYpBzR{^Xf`sp?|5szK z9})Z07LiifmSh@=nb+9ZF%GyKtXVMR;mx(RbttA-uPM|oN@Zj>S@yFKlfaUSoS+IE z2UW6-UcYwh->atg1*@1HX`ViAW_}8UQC-(W>)mrJD<;O zip|MI>9W~v;>GL`37arL?o|@O9T&8WtG zrKQ|kT$A?FS(*+1S4aZsw7>roBO!?9O2zZgUfdD#wq_Q;Q%*keIi8~*efQA2LoOCU zU6(-Z+Iw?f&v}9DEVx^yUpE%4rP4v)Yvi;d%QB3L-sP#g$X#IxLy)VVApmyrep*d~ z=bccqoA6Hvj`^9`nn*Qg9Fu~94@xQ6vEuvwszACr+`fhHeaMABMW7h9#}z zNShdmB;lG6tvUJnYL&!H7ecNbew+xCoPufUa5XxIo`h50Mma7}FB8~cR}-SZDq5;U zDFG#M08wxfNiR!N!q#Tp*FY_LOpqQ_Am;a5L7g zH(l-1x}l#po{F=-=rQO>mEzp>nxXvZ$4B^RcxMXBjG2$?|1=1fY~{_NkO&n(LF2*# zG7xW8W@UmB2B`yj1EihKM6f@*JhFt?=WvL$Au(p;>@RW-@>a?-v*Us3Gqd|Qfwm2P zN(to;JUBB8RTNv9xxjpCC7qcw*W(ALNRY#3eiZ3;DeaCP5;VcjkK-34ZaN7#Q{0*U zNdB02Eql`vsb*dKUDxs|Ve7s(^8Llm1jnt7_}{ zx1jI0H$c@iQ_Ku~OI@2g&r+&Bs>ctqA&4;dg?W~=0_!V5m#}Q@73H&;PF^_-?#l`v zmq)Hp|Mdv1EG*>ph|gu<#})+h05=af<&KZ^JDitAx2xrMX0cDCq5JUf$wK7P$>)b0 zUiWDxvw0_W#6o^u?m%sBI7rVp&!~#Lm2%=B^cIlr_F>m*CbrCOSLhhEhf&IlWC({w zwXn0ORrgpqRGV1;i6o?#smsNvzu`t=CcZACSk^0%_{aL3 znu^?QV;lsa-2wQ^s1?-f;u_wTO}8wJw`aMBezfj5Ml2z6+~yiW2m6M`X6cO+EbO7N zbA!{r8zosvfBp!_UFJv=2WTpe2b|P&r2uff!r8D`eRonKthCCCfCVd?%3o7;_05^Y zj_v79$-J_KSe4dOOT&UwcD1J1lT|h8c6!bBlV*Ih(E+7kdSIt{y;C89?#~!k#{2Ry zuKom^##vxQM{$-GWF1Epe-kGML?k?WXg+Vh>{Yfc zXBtOgDJ9XE14(Rv6*Od06}f&3uLla~5nYpFlrhi=8L*eSBq%H+Vc=!gq!q$~M~~?8 zyf>|n+S;xkXQTdta~$~mcVnZVLIKEZb{XcoDIG2>>{A!v1@lFwSp`!Ap>thAC)9FQ6h>G3*_C)&P!X-oHBbKL zMLdRc#oRYsr|LKb>ywNvQk{g^liQhhOd1lZyIsW$w%0NGsfI0)d^_!hfrq&aiYz2k zj2QM={sCK;$__o>Ou2}q3x|qOnwlOce&di%C*HvR)4I~P!o!kM3LFeQ#HK{EP~(`h zVq(rfG}rjFgF;tR-OdQ*aplMt<-vSOslb*}K(n$llSG}cW($Vf>MU?E1>9*?Tn}OJ z^JO0By)r_kH>8YiLE4*Ex9{BeqQYEYdL!Ku!>O9b`*c;cN?W z>leMKoB%gLoL`G7nL&+wUzL`z#OxapY318*$b77PFbjDMi|qHCO2&wjB=+4{>^6`V z(6L%E`@wR@?k_#4sQcT^)r2Gb4rbFkT;uCmJ|oUO;~0%-@vb>6w3^G5(?8UMZkxPS z5EB35mQoPD|K3c;8PYf(|Jp*kb?EXlj^GDR`pMUy3hX~7D!;P8p0rDqMjRCtGy^L; z?^7)SesS_}GHr6ptCP_R>SQ-cLG9 zb)SpUHtXx0rP4O#=U^i^Ky5i<0-Zk?@|MT1B<*^EIqbS2+eY`O{`+}B@<{9un#Efi zkY)o*@hTpkEjh_BLlvGAM>Q{)-rP7}E`g50r2|6f5!`3PTkud0iRR&Ac@*dOMBOk%$1eD5a$2lGHpNIcfbXp;Rc5-O(tGFI@dJH zBE>FWPdt#OsOVNU=PjMN6bXaENHb@|PL?9X!7Zzzu8+=?^#CIg!5C+btzuP;sb@lp!6v`~s zs;d92Z1j7A{BA_dL9EzG|KEx{7)H!?&_Z?kOgSkS3F2a^ETiZ3)Z`AxHm)8x3L^Bs zGLt?Nov)BCCe+CYf5>uGjTf^;>uvZUtBR|t^$wP+wm5wvy)V+-OhfbQw=1Q32}O_h z-@a3B1!^yf-l2TiLd&_8zHS_NO8=lbjUl|Owphb07BO3_s$*z7u+vYquFUWDT>Q;E zDKDd<-2|{&6c^K0v_~w@g+~{BFte7;v2_kJk!PSxLPNtvh)|dC z?)2|?e?Juv9HE(Xno2CDI#@n)W2_7)U~w`8I#KYJyCRIi1d`y;6r+uY;lMoI3~L2q zQUrDghiem#1vxG#A)%PDsmZJymw`vRI#Y1Y`2Lt^y=HiYu({%U6YlqRaOhV&taz)> ziSGgGzRIeE`6p)m3e)$6J4ARHZR~Wr(IHaLWWtRWHldZIt~yQ5$(jL4NpwRZgot?d z&j)H?YA=4r$qCaAL|&;dlR(+=1}O>V*e3M#BNbrSoHNj!3~ z;6pf`b~wu8xu7yRzkB=b{zqAy&sJXH@+#3`3%>InH+mcWCq{3Tik95aEAov2*Jbad zi&y9cq=eXUrxtoW4JgDE#B5i^z}L98ww1F&H*eXh8hDT?`(M6q-FHp@$6$@O_%J&@ z1#Uv-6xd&@9Nv;^fAaPK{Ls-&Kqe;OaySFN=sIzHOG)iI9T9YU5eP*m1>z!J2(cc6 z0~fc%8=i*H2(9ZS@kh0KmR&sdH6%e>tR7ft5gSqV-$SGy2-W@Jmi9K{9SM8GJyd&}YC28Ifs z4x#_X52KBigpZ4o*Yz-3UEI7Pt$weJ{DPGblJvVtmhq!7-{jpOnNnfVDj~O06I=md zhG`6%9gH2a`qcN6BgzfLc7q}FRI&m~8Ye7)*2@(e%h{#nL7g;S8tb5+KT(7l zn6jy1u7Trk;z5RC3lNi_oOTv!d&%DKkH-ib|CGRR9g{ylNk!7^aK1t6e$=@IFKk6E zkCintd@dy+4WCGpzkIY6ZTV})bml0$ELD}0vLKi=Bu-A(?=rdTzQ|gh42?0mtFW4M zV|qq4s&e@xejgZv-t!^KlG*bB_jVX~i>gA_WS69bGOVpGm#l5>K$x-vfg zkQ9dTfOdS#=9_)Jc`k7r`@q_(ay2%`%zoK?PbY*~ zUXpIm=yFQ#!hs>8-Sro;(is(%PX_Vv!qGesCC7hyZ4O(Uir>JAvW_g43XbcSD3Hnb zvUP^Luz_xO`Hm>HtV@;fmed#Nay!u`yD>mMA8{YD2Q~+({OS_zUkVv2HgI_oZTt#I zI8dL8dL-zn{I3;JwF3L{x~7;s8UyMXu9ga-Of(f4EV$_sv4GlrK_5cNiK3GeU&08a z+9~tOvf+0&mRZdGC#-;F@4~BQ+;53dnGWsAwq#!7Zq+qhYZ+fPTpM|vfebz|Af)si zOZ6Vo`nnJumQBwoAK-xy>{_-GkAb*$ay_1givvtlWYlw~6Qb&wBpJmnp}qxKN;=y5 zNi?jZC@Wh5R7%e-9e`v}lgjUU#dA3JV1F7V@Wd|JBzMj~ zmN_1CU1fqVA+v-bcVaf}D-x#+3P0kD39U1lZazsw2$>Agy`f(ZXZ~)LBFZb#rGg2=J)S;!w zu^4v(_7mOtWaY%hrs(Wx!t0BACcT)}yneG>O)d8(1Pfb8fD@=O3-XqnMT5;Ll| zYLfsP1lfweuRDtgJRma8rSpBd%)thx@Ec@dmuIr0hS&#)ZaK0a2#WE-Q>2%4Lznz{ zlyvk@6Ww9W?FnL0vyuh!#SiDu(goB7LL0dAH}lH8zX2>udSsGnQC)EFwp3$9Bwx!Q zmE<4Q3G|>c!JXo7r@<*@s;v}1QR_EA@vDO~DrXFe=UJfbm<$Cj-^mgw$Ffr@z^#Ul z&?h)og|%Ht-45zbEDB&?v;c(V`HjQFf?Zhf?=h{pq!dutgj~GE zpaEpmhW6^WfpknL&%pwVv)?PtKkjvn-(x~jV7dKG{j zzsz7jd%+jt+c)C5K<2gk1z=Gvzm2gwM6#L+#6 zvt`KfzwXM{r@GWv2Kp~Kc1?0nBl27#GinB03Z2F80!-)qTgMnju{eu*_kRtuc#Ny$4o6 zZh;WsQ_@hEuDT}4P=cCswU)xOlUH;UX&Hdpww?u8*t~X--54Fc38LZTOv8i^{|!Fesp&P#topqB;M;4m0=8wYwS)0SHEo#g!$oe0=atAb9E$)5(!h3P3iG z4UgBP`n`DK9_*|)=0p?TM-wtg(3$G6V3uKA0_)BfPBr-+ob&r;E3wRoBJMjDsbaCh z(J|>dH}*5WCKC!FyCnU@h-4LEBBh}~v2k(FIEGL%c!bK(Y6@GaR= zQhRYDf>Ls>_EHjHg&DHaLB~QYF!mJ>`B^sRl;``E&TD%PxAQfj27vbD(P+vRM>R@H zDwkoYbaF77oR1}0y@mbsiszNgMQVRjOAbY@v=wFRTK0eV{lrHJ;6lbwl3Yv-YzO|n zxHX8m>M`d@J=N0;NHTW1^s1SA_fcUulwMYM6%FI z)^t|_+{}5b0h@j^0qXpb<70;zL_G zIcszSFV68m^pO_6(MAhz(@bYbbNLC@x`V7BGxACz!e=4Ew_A)0i_LAc)=iCEB-AQ* zpu;hhH{IQZRAxU^l=XF*PT%A3SEqRPkMjwgvAG?4nG_zRq@RLyHs-E`AAoNS*YDDWK zfjskFc#1rB(w0mlWpY5a3;R$22fUNn6%pAZAjv`86r88xwss@D zJVOWYo!C}*c=C07zfVan2r*i6CrEQ<3pF?M4?@+gK{3qiwhGR2Be3onB}FIQLFDkD}Q015$QT8e< z^voHm2$0)H<5G~XbN(EkXd!Vrx z1p=upx>ZCLSiPR!h&ZCT24Fj}vX(TvHa==-Uwlt)JxtT~n~9gA$o|&!X|vFOMi`qK zSy-PU2se?2W_a+GE&V;cx;aZXBLmY&k$MyzEotH5y)eyBwEdz?`!1R{Dt&rxy-$zv zZ5{q&a_SPRgDQDlGX#xP0*qw5UUvsjt}>6!sg6HlbFcxhQu>ZpNzMJ0ep>!j^Z85` zREL#)YNpvV+h0jEab^C}Ey~+ULWc;ZTXu%I?ooGaYw&*E2u$tnwBV|59w!MPNy<3& zG5jctqT4bvGHGCB2>zfP5v>IKr7)3VC#ea*N!$H6xFwX`trJ*Iq7_>xDlf@&of*xO zX#wNumcstYpZs3h|L^UY`r)!%{8rp$ZL#iby(9Ib?|7ux$tpBa{FR#wP@(NgVt7$F zJ}esT3-{~-WpLNq<%Pccx~sm^d-954DZ{{nSBs_K+=`bl~M7>QxZ#+AY9P%pq@=A}y&` zu`t>HmuBUL^y_3xF%HS&H`wgR&bO_D>~~YkpIS|&3X&og55e1?82{@}j|LEK-7dj@ zl!mX=8FX!2bDjdh;7PM~Hm2lBOX|~yIPjM)PnM5I9DVQiQ2$j|H#D5iN$xe>b2;sM zAG-#PCl+)Xz;bxKjPAV1e(M#6o|1M#vM;t@ec!&koQS^?lS7wdf9!r}`EkN3C*XEV zGZIT`%15lWfMAF;E6E`wHC1eyOOp^a?i1MbRh=Pg*ErUfgn#Y3=*4U3eSMdAjKlP= z#yLwcxOeQ>Z$Ft9F_3IMhvqTcQ1%`$Zuji6j*kiXzH}|c(66g#v{bZLv8=i{sw zA&$<_j1o%AC0HNWQiMfuqlQtSQW?u4$;_%^zLV@#eJ2?nAdgOZsIqR*<{)A{(zJ9D zYkB6a?8^T^iJyD(;^pU6yUV)gw5Vlh)AG-p=^LsvMwFr zTKgEC4{;9VZA&e_hbmY=@PvmJ{w}`4=cPn6K|Ch-aEBe_f8VrWseKZ)Xl2 z+4SyIG#k)CcJ)z75~$+iff4{gL%K3ulFX>D*-MH04BqJT|L zY++e3-}1)p8bQ9C9`1Za2}g_q`K1IKaA?$C*LI{|XkqWs&w_htr<+c+&7ITK}Q5!B~bUo|Tl#ZICBqlz=m60senirX#?B3QbbGW2i3j6Ev*o#^!gRbsNXVt_4vTvZi4PH2$!%oEgKkQoS%bbkjCGZJ4>31L6F9O#(jbJ7F9VD1~gr z{?XNS9E3Y@%DA7`wtFWv8j>|j@%0u?1^(%0(&ZFWye(E=)|{?CS%kaJ<72M5e6ZI> z^qFp0GU*CIfePv7xnatp$Rj`%T3nubeRFub-8Tu!@1Fm$k2`-q$A!s@#`{wKz%S*^ zt%Bk*-s+r_U95Wc+&E%KOgBVQ#y2gM{#*qNPmPRBd5F|-x!xk{Q*zooUfdPa%Id@T(KcK<)Tf5|M zaxlOj+Zg=>9Kpz({uaVK1ioF}-Tm=_e)I{q6o<6^_mA*DX94Vr|1QOkh(g0fPO(y* zmi(RD9&+vv@ZNMPR*az6S{}mdG^MU!?M;3?9t6?>x@zzodu6Hz%9(?DVGp^Nh z$14WV@NZ5bBB`6;0pd336S2n{PR`)^REJ-!*M4P|fKx!J*ehX{>z01b)2$_d#ov6l zB_sZi`@btb*I@S6#hZ>Mpgg}~%Xv1P-qxA^Ne4E(%*XKE<6F}q{J$0^RQv_2ruAB$ z>|ff*bwTb^`UO}d_wA+UG7AC~xPOjE`Z4XfnQG+oSlbvif8o~S`?%lJ?|tqmZg`Vf zi?D@e^gtEs`GV7SvOWztoHd0Jxp-vX>i5*|&wZU1hy0xevwhsW+3@<4JMZ4%4nzL< zd-J-{QY5id{6_-X{N+wI$o@qS`A^IL@f!uBjqYVF6uLM1_6JjpmZ}t z+;1V;M;L|W6hAKvFw|T5R5{P;CIb*3#WCjKJSJWponOxPT&3B~L3O-^N7|hmpQ6?9NyGB;|7>W85zGnb znN~(nyzf#nn=qK_5C+-E*ptWnqdVJjkY<~om+t{c*qh?|IRUlkg*rwbp=;Jc%&cs`Qjr;U+2<=#R zGRIKR%ElC)RzGsOPMUGiMv*jW7{)DflAs^mBLV!yplvg0O!}ZcyEC4pJlM0pGM{(! z@&6RWRXUKm+LymxExWQ#r`ep6&~D`@m#~m(U!RlysO`uOns>_{hLXa$v9kWSyfk*u z7M<|WZPd7ET6CQfdDX{9BE?4xnT+O?F$W598e~DYTaMhPQs0AZjGp(VHUPs=uy)hb zyEWLECh(lq@HnQ`J@NEJ6qz0LuL%pB?tD1Nc|68-_-{tHp|$mQUmz0U7d1XUzTac0 zS?X9F)?;QuLkw{KjV=pf>DCO#%G*PtpQ0+uqgrsCV`j}FE<=CxAwYn=a!vkF z#fB);Q1q*6N3TzVI}Wr?->33nu_B$Dht+9`hWaIfC?Y#yg8fpQg2uD78K0o9M=lZ0 z{VYu50gdy;74nYNmapA(evbA`vb!j{i|WHO7q_ZHMHTOpo%ZIlXz(bckS2f9-GxNY z`6gB!OXQriC;St>bikb}D(xilRWkTk;P{PMXg!E!{IG~|wb}7LAc<4M0DFk@UrJvJ zf@&?C?#g@E&1tpee~K*A4QN!GyB8wFlRr;1uu=dV!qFwAaAct1M$dkk{M7-v# zOawnZ$WQ*Uocwu&_Q8KHNM4PxuFEbHN=r>~aq0C5urHsrGTP<3ln3`03|GwvIcRo{p};-R8z5^~lJD!A{PXTCE7ufp z;*FRhMopTerAQ(T248Ngw@pF$ z5;F41x@c4-LnYBws?8uA9zK>rXV64C!v5?+xV!6sc#L*ys6QmIycjzzF4B zRY5KTAmXv&J|pB`HSpf9#9u|kA3Hx@*2O}*j7l9>J%CD$*!Ojr9MG0{V*oy_gUz>B z1(6d$@!_2v*e^bFi5~YxFM{sE7Xf!GJ(md6mO|Or&>koZjQD+n_`oY$7l2EACG0$_ zc7)a>T^fOhY5~;h<7%uIaxretb%fFW;3!Tfw8d~Fnt$VW>|1E=UW?&jreiS8MD-DGY8;*%%mq^}|nK=t zS?syW^m=d<>-}q)J2@f_jqN-v^$q#*c0>Q4DRt6==K!zg$q2wwO?w^Z>geeeGN7_` zKbROo$JwbPsC*zF9QPo;+o=!NJ#WmwPbY+ZbLflM1wvKTsX#Hp)|v0+CV1u(8Dj5L zwlH|QV{@qZ-WTSJ$J%b|xWN>{R;llk3=oCS5`Uf-f6RfnEA0OFmf1PjU(bY!1W_P+ z?3t%teZ2U|KMlTXa9Dly9?yLIr_~+dXyhY!;d^29&TD%2zvBb6db!T`&4)s&VHoBe z3=BwGQXQRKYyv0uMI8#seM4aXxsBF+^6E2i@xu27d_2Dj{?YSnFji^!??mKAXWBY; z|I6khy~w2`#Cjfrk3*<=FUav zxjI&xy78PG7-#PZ0C3IsfV|ak+^8EO+Ig+f(?`wj2@iY-x);Hi@RFXup4X`*_yq9d zT9=+30B<{y;oUep#HiUC>IyP{38Qf@%V1VI?6X6Of> z5EBEfitm@lf%=~Nu2};0Q*(35Q{r!4Y~6=cQ^NP>S?)^)e-`yhO0j>kZ5djUY@ytH za-^<5%e6k#KsB|A38lPUie9<@ z%x^Tz)2xRlqpGru=gOK3WI1JYei{ocOQ|WD17{#p(j@_KZG}T6=H!}n#W&T{RgAd> zGu)sK0TjJV(-1vsfO2EQ7j~#ZfGOwC5E$B5?rao>#E){0fUD*_0<%>GFQH+e zmcpx-N!`pRr&#*6xXBq$_Z^wTTVZ!=>jK${Sq32XMv3U82**Z|_2*)@SY#{K)$MGW zQ?vDE>^YjYJNx7<(^g$q;O<!GhbF8c> zaKEcWF8);IjI9nQiTf3|xRzl26ON4PiM4?SuTBaYd5{d9+OtZ!oBxQFfQ^%-jYVoTuQJ{V*nMc_@!b~#p_72>(ns7y`EoERT(7yeol96a@ zi)-H31jK!ZhY|fzkzJ&5rCDY5wVE1PWGE#G=0L(Ob4d)yqP-tIVCJ|Ps{E4I9deOG z5A*e1Vk0Gk4=D=fk5n}9fVqX4sW+)L*p?}ao0BK~nVUY!qEcNRSOgSl4}xjY)i;Eobhqok20Q&mje$hBcFqD_ZNhq@<|IsLj%?5GRVnUSu)=KE0U zvHAjW?YzwkPZ$Y51HE*@PxP3*(?YY_pm}tEbkPQdmgdB%mQ@;%Jnk?+-N1fs4ibpr zSc>yFOR`RR+)3LMuJ2ALdZ-*Mzsud5pUK0%EMpRpDu$;He-~n0B zLuuUZ+Pfg}mVsfHzXsgVkhQ~#69-)q)$jTmnPJDR0ywB*aD=kSfMhsBG%{TDMYxE$ zV_K}nf$7Kn*vh&g+g-{9R+YKTxAqjqnP0f7-0sP;7e&=+dQN$q!`Q)C)+B)eoeaP0 zf3Rt$!x?mj%!(X-@DTp&>n*a_qf?pX?8BaWwmnAO6iX za=!;U93H)~FUaH%y_;*s5P)h~>zfT2JE3P@t;=0(+pC-1Bz_p)57c&>-P!b_SK%-K z3WEp(_&b*^ZzmVZ;Mh`;$59}PH^;O84&wo<=4r}(W%G64s5^8-?2a?b`|dA{$aQ?G zaW!!1a_Ej%67#Y_{AS*&8VEN2m-`+OKbMoKlwu@%YaIa&#e#09f9!=?1Y*Fz65^nd z?`7cG^v3hX{Z*Ew_%mPj=F3B*dsn8V=uJ9n*-e$DSfHct^D0pNw!DgMx_H&@0{23) zG3e_vz?O4ozwg|`uIaoUTYYVt^Z;IOqTBmfMZV7T`A)CP-HBzW_P;ev60sja0FU?b zaeCu!?AiO=oBiA~_ZbuZU99(nY2DI~XiH?To|~<03{P!l#K$l>k*vhZN?@SBHdW~~ z60nF?Fb(IVZym%!I`rXaiQuDKvwlw;-?d)mw0}Ly{=1czr=H=%n3@i;*!hi~H`Pg#XZ#Nr5keql$Zu!ECw4 z`;^D?H{CqnA^prCD2fvy!>@7Ge0s-itXD{Bg>Y@x3TMkdxy#H-EhbAF=!4PWaj zC9z#r4LA8joOT3eW&l%2nKzyW?VUe3o;zDHU74$*K4X&Fh*Z-aldez3p5`&30)Z-H z|D$I9rl+e(Mn(06#t92pm4if?AtFLqZUt^mndV-ecSp6`uwa2v<0u4+gS>2g&g+`< z;}YtF8ZJWOQ4&>cSYnW&(NE1li586vVUyF9wn)1SwIo^{)nDz+!(&VM;? zk48tdUMy9nS+<_fABtM=qD0nC9xHvb@J+Msr2OR>IA3(tsHT6|)ZkP7#n{G@Da8$y2MFQz&H>FibF(ViB21X56zVL?! z!-u%Hofxz|uTRT?iFrv8Pl2Hg$NR9vxKXnO*qsSl4k)?LPkuawMF(yQn0QU1{pHWL ztkxL`5S+$2mjrZk)i`qo&>S~cPMwh!4!p4~J`J`E^&*n_m6+q-V z3;j>C^G8s|kM+J2fI?tjZ=uL~Qc-Vm@)zdRCg&ZEy+%_Do_!jwZseu4yt>lWfBMR~|-OTKHHSdU7 zYd_kw(B!qZiH=oH3)kgT*++9C3@2G3fT)_|8><6}s)MWP?ESEGbn<|yZGtj=$^39NL4p+aIQr4i7#H(2;R)M_Yq>N{MchX^lRy1x+$sI zj?f*pKc&C%$5O-j3h@HP`%)2wDaSc(3g9&GNgAQ)V@A}gGc6m8yk3FFFhi4UZ@JM3dkxI5I`Aq^JfNfwDa3ldI~U!D09U{7 zYiO-^2X>7LTy)+%4AP5@&gVSg!a%nR$^RR`!N82f=6*9Z4J;M;cXW0VIzYMFV*gxo z@i7FjvbSuK17xqt+O~tFdxG0%fQiw4;;C)>nCK2=%zd1&^#99Sb+B>&O!{9z1BT>6 z2{)gXTK@LDxrn`{PhS()`Yd9&_?(=aybQ>Rj{&#)heJ7W#NVCKyJ!s~oJ^Bp`m0JgJ%382v?LS$Bnzu3oiMtx>8v0++_KN9A#9iVN^DlM;;7D%$*W>rk;dnm>bnrl z3|9Vck%B2wAq1+N;5bW(8&4dH4AUOsy>*#lIH~&NeA62;f1Sg2DG^%lgXDk> zivhDWWYa0LF#0dSHui(yuiDsp{LP5)`G_&Xhzcq7SJu zqhn0$ZPbD9?J~F_htdq`=x8hXjro~0(%vX${KF@Ms?w$NwBe?W*uwoVVbtYW!LKq= zyoxtbjm&saEYm>3&Y?Dv(H6h?f+|cXFMl4?dRi~{W3p+vP-RbMbh!u0OZGB@R4@<* z^Q);q7FMa0gtcw(o>M-z0%9;R$s4!PQ~#^rDOXFew5?2*zr_e`-z5Z5z(x&i>)Rkz zdA_rz(nV!%ha^FPsKjnuPy9ET4Skm55_sK~*9$(oq>cTYQGHj|I83m{Ydr_U{^x|> z^q2m==oWpnJdz;Ovpt4LdDxu_8ysN&;f-|Gwzb}wJ`ZTTYz1ylN; z&z`WWXnYM`T_XWJK~7ni!K!K^{RBsCyi0nr$1wXgb&O~x5mF*`w310~n7c$jyF^wK zM}q)ZWQ@qPUR|dO5&^Srit-Vm=;GuO=DsBVV$zIt0$sUwi0a_n4prcv`u3k;vyIRD9)0U&L1fu+2GBQ+aN^sK;-3CCGKQL&sps{`Y_z+&`GDwzjpf$v z^)K>m?3+{g{FF#<--#o@krvh+VX)OXWUu30GdVl4UE61a026|ZOxxP-6z1B_5TA^M zJ0u3n(IAIUs!MytG{H{TI0&fRQ{e?+hAqtRVT#L#O?L$FRYk=u;dm9I;H_K;bX3Ze zln89*lqd2(@qd5HCl=g|g3BQjEAB8Q{_7&Gk({&PrT`j{F-)#bYsm>c=7BG z=M=Y3gnSy$@Pl**xFiSzP*Yd28ms0v74ilDc@tE?9il1!6r8cL#6W!^K8iNH8?h~5 zX=|&o(L#Z>n$@ZU0MjU68M7rv0SRs>$j-D$y33zQ{_6)5=IId@c35)=v)sy&;j zczW}iTSa~*vka)F6dY;o(zaL|yqbT&%{o0q3%Q6S=?2`Emi8$h9v1bv*H2gb{UwpG zBuNxzWsuU^Wy@DSTAE!rtRW@gKU-O5p4hLXgpe=&X|_)XPS~Z5@<4Z-z>j-cV3)6F z^VM(CE_cTTOk=4O!^$?BYL-z7bQK?8Yz1SlojZ^>YxjSRe z1DZHS@A-NMU>EkfguCdOgv>+%dM76+7;<&6`MiGd>r~n)TYka5By_*#+_-j>b{bW#9c8p8iue}LNTznAFT(RxFR^*%LqaQo1m3-(aheNIPuGa_us{CIkR z?+{t2$~oB29I>Mo1WpRQA7x#SRjv{_a135N#V!I`>F31SXQ$9THwm-iIV} z>pQ&)(eqc=YEMWH{EDflDNm9Ke)nINAm-4G3Ljs{WiCy!M}dI(TFBC*M7_M9MkN@} zTtx+mmQAxv`E$+t0WMQ#uARXrChG)LQSorq<`fAP(2(uSiJBq+nq=I)A~1aqA~Mca z4AQAF{GkUsb_v{l8g|iF@n^8j`raj18 zx4QH$ukRyP8`olmRWvsiA#J-J^*BTD=&g_y7@fT>_ zRn2``IdRq2Kb==HO<=%xwfgdxe}iaZQMQbj$7dhd+V1cF8VaRIh9B07Abv+#=k%lc ztuauO<4B$9m(AO%`riv=m~TMw<9UDn-(7C!1&wX5*S`Z(hI4+FAd4zOO{hzfI8D$< zshZh(GHgd%8cuizi)^IsGpn|0H=BI zw!k);s$~X7WRd8@afy-;8HWu{MI3`X$_$H3dlieLWg{whe}LaI>ngLwniTfhV~~r@$zxJNllE>|<)SVR!;h##ETy?rS6*mGc=?)E zVUqE2LAIiESW~R-BgOZ7YvFKM8ChQ^X4`grgFL~9J-1;U;BcQE~bCDi)tE9iS(QUHYOk;j$gp5bII{l3lD z^-bq>S0uvdVG?n-tnKd;`NS9iq|7I}_-s{hx2mB$+T{68l;(;mdkWY!aY8T6b|aEU z0Eovm9p@Cw`kryb=%gwC^nwLQF^9ujIdG}=v^91lH~*QK!Q{^|&}-V5=M*+kp;AjQ zy-sN-VQF}4EegzY%)<-34~X;jya!3y+jieA)^ZWqV` zaC~QFsXS$=)`BC_ZyNifbiAJ%yvZvaIZork4`VUGs0M+k#-)W2CLGPloqkyBjK-FE zB7oPqGfa%`wC=j>yqmvEBI1=)SeaRc?i}N&EcnwTJGwf*>fLY?Y&!qhaw@My%3y`t zTf!2D!}XJn@PhvIn}|kt{<0p1jBx0`l;o+C0|wu0K<=fPa5)0n$xTF5SzuMGB#id3 z7)P}wWaS#Gzm@vg^h?^|$LWu0DSdlgckBHsd7BAgA#eyMq`juCNaI(s?YmIAK@*cIpuvvNwTx7F&dg zYY~Y3+iTCwOsH5891{B4!F}Xz8qi*H>IClf#@^nfeqVf_xL=-Ay9aN4uIb+ykN@XG zVfQ{7_d|yB*^V?4+4t7e3=00Qele~#7a-XBdov|i*h zDa5z0VoiY>X4CUVPq(gZAQZ!Sl6To_6LLKPU^RQ5pL-zW;#c8(Voy)}-F-{d95DY? zPT`+KFTLk)U>Otiz5nqNn0C{zKZB>AF}wgH=3wsIqtPX~&kp@c?k4bfsl4xwwG_We z=YM{j&xP^;u^`{qb$3V72cO|;Qh){q_`(_tdH|T>Fwor<-oNNseH8;H_YW(}-E4mO zO%@Q_(dM+s!`oP^DGUsxGx~iH zYoSeZy{+rK%oLKi&sFww9sJ=>2Y*fHF3T1VM4PFKFNO*Y;YSBbnbTPa24j)Eye4)D z>Zs<5U`z?l7Rg8HPR8>}MC^MP*WEUlGYBXoY~CLU=h7S6eX;qLo%#&xC3TGO4sWt4 z9$r>Z?g+LV_5K*GVj(6 zFSw|2z_`;vA;jh)^nC_OC8xI(?TKG8wQ`Cc*NQ^hKb$ zVL|LNr~GMY;(0aHSR!K(=u87Mb?m@kGLT$nadmP|Peldecti#6Pfr~EVGw{o2jcu( z+J^}xb(Sy_R&m$C6Id9AVP_52zP>hFa-N+^J$q+_pq5Xi%cYwq4S&cnL$L;;Kgbrw zw*;d8j)?d-$vURXP&EabR&QCQkD+EaEH1A|IC2RnS0HNhJn_$>`y4HW^~DbEE9UoU zYgjyN%!1Bw*~9U_4d0gaw6KABB=%3X zcjV3xzjyD6`hz2Hw}B#fWU-=EUK6eb4C}opo(XdvBab3rNno$hP$tN<~Q`1lzBx^j~G7F@dyaqUI)m>#U5f$qh=R0rt5(&*I&v2ILLxxfF2;@+NqROKO z2!2;$t1U-`d>YoHj$rv{tdPIo2uhsLFm64hpgH@eqiaYPL)FZ;{J6~if;KRzq-X$G zELA0X=4mgheyNp>A+I8kN>Jd}tC9qw!YGjpZX{FR;V}vPJVj15auo#j@xeK>zos%= z;rE=SSf@1;g5dp6L8_REmV(X3=L|B2DM=f=QnoVKu7|~w{%djwMGT;a z_A=)Io<5D}bs>D1S<9H#OX6UB^^WE85|%TZ7LEvM5tTqEL{pZ5QA|?A`Y&Li2ga^* zpX#Xo^!<{rx>cXOdG)OKSIdhew$`eo^oeJCzdMhVz+&*&?E8PwT}Cvv6^N)WV)(FY zJ?bG+%)%@IJO^bMncl1Fs-@D}R-RPV)QsgA<7Mt942)42K*}i&A)ta;q>vHJh-pB8AeJ?@2clsmrV>EXJ$N38fCTljN%qQ)R+Wo znCiVAF0Hx7&u=3hkkt0#-%PYAzqn;{*J1$?H2Xjx!kE@Q^JYzc)5Kddwmqwc=;||3 zUhCug72iM}W5OQx2_2QEn??EO*O8InsfGvGy6g9azeKh2Up$+2KcT2DMP5gE#>4El zkf*&By1#G&BWTFOFn`bJjnPBF9R!l)jDGPj&~gLpAlQ=Kg^hch?vhRawalJe-MF@Z zfnMR{{@=Z*H$d5Qsla~lpTlZ}*$APR+2>zRqs{5fF2B)@4WN)!0QV>6O#HW%*mHl- zayjCA8@hIrliFDOSiSs8_x2F}Kz5%|h5xIVfp8f+_-GvF2*F&9nGe@IcnPdf^ZG@Q_F4u0J!}hiump+=MD6Fh5KbP z=$RKT|4;bXRkg`0ukq`{=JtPV9^$(v+?U6TS9nEcv8$gmm-0bRV_J~^K@4>ouQM+{ zJ_4QNIB)+HM*RWEMY6JC+G`R38aDL)Lrq;A1x!-_4l=O!u8gzi=ieVpe?R-~(fw?) zKt;vLoyxMACME0e3cLcCQ0Py(cfc3caHz)QDqC}7jdW<{Wj#p7VambepKsvBl*=~o zy`$&!iCGUTc>E|nb0{9lN##g^Rw3 zD6uEJ-pi%0zz;2N?5qDaX76^wSHGHnk6!|}57A4KqC}tG|L+bLf@nh^i^utzt^@S0 zavMK1n^=2#rvK}^cz&9u*jRbHTlcF+v?6b`-D&O9f4|Pu{3k6SRLu{>cKdFK$#6S7 z3}4T_zKWT=Oz7P0ki4dM03ag3o(7(aqnB(axcCxm{`a?aD3U3D{wC;-&VQF;6W~)` z*WjK8Ir}o_Z2em-?!|f2dh*J?{Sy8H;OXwuqF)dXb5Cm|m83$jWZ{@EDfGAeD%PeH zHhE6+D9*M165V%vBrKFIPJa{qM^b$u$7Rj34o^R;=(c6^eyXH;JdU|!oERwH{AsHo zMx|j*X9!V0Wbo9}$cXH&202JWSXs)dX0@t|h~rj1U*#03Egir`OFS0Fw>y1<=Rvo! zYKj<1L(%awpl1%jlcf>XZilYspZx|3uv?v{q%6V3-w{zV1h9@7@mBo=qly@DEO_vT z31z|R6y=_>khqc58hd3c1IZF+PGIvoZ1%nI%lxS~x-@zUAvqBrk>2JP8?02viBH)d zaua{{`SCwT!0TnWKVwJ543bifuJ3YxwElbDGTZ-XH{m)!k zzp0UHYY>yubo2PpfV#ZC7gMvC)~ z_OrO(>um|?=~fvT#1Y2i5%ZG;hl^!M=TJ&NR`#lPen@QOLAhtiA5PIApJa<_j53kD zwqxNN2tT|tp*n67Jz(db*M2x;FKLDKD>7mHnt!cU*pcb&geuEf04KF?3! zsB0aZjg2dGSkke@)RS(PwR;z@+b%9MCDSv{Pn;M7=GZ>Qu6KX%64yV`JxhLeTFb~% zX570cv~cjvb99bB^5`D6V+;5JRWP=s6!warnxdJGIq99(C(OpIdg~=jg?^&K z{yT$~Zl(fB)wZjNq@kvcq_V|RY0imNDB){o#V*F8b>HEYe;Cg7L%?l8pwQ#T%^6#F zg?6u$VO6xD>{T)}HWDLO;_7T*H}^d*QzWXl(X!mqaL-YdWpn{!momMoZzRX5CSjBe zNDe&yyRcZE!0|d;9RXOarVd*|cz%@?@SK@MC2g9Q$6#~>&}AR1@XbTST4249FJq~W zMsiUS89udECW4F7xv9N9kvrp?X|i*LQp4uqpKUtI-ffh2m$h%eDmP|VVMVC?!2R`- z%vs>mf3L8X*>_y)T36up0Ct((J^H(g#otbf6XodWoJ7K)W9&l& zq>wEFobn<@kb$s%!@XDR+W;fCZ(WZ+zuF+H#I(V0K1`e8yfvus%HWBan|5pPGyd%i_@6FhW1dZ6h18yOZ3m8sYqBBx9LGae2ClO{y% zS;>;34~=Dp^5D_*s%GDvwApNvD(UGIrlF16$!60dXlMJjb1X$RS6AlJq0teyv%7Wl zZ07y7R5pVAM}CP+`s`T*5}pMd{sS(F*rDlWc=Lv?l9{;C6#&^LBSnyAmR(?YI= zZ5HeO0m6PC#q%DGe1mp)tegT88iJl{;zteEcSEnxJii}`{}UueRm%0e6$I|)LLA+H z%-cr^s*5e5X7EYw>LG?vQ&XPW+Fp(BhpK}D)=;0Awl+^dJ6^-2lcoGY*@~2nuDYPH8Un0bw2D{FDIDiecB&!Xq}&O9w} zmuHl$Jo3_vb(~11ixLD5J3Zd#5@z5XwN-t`UAf{u&yw=Xahr~Xn>y1(K#R_F)|z%- zjbD)tiUnOtt$$D(2Cs*Z$&SU*-CH?h+0{Hg-w{LqoY3L7?7kS!- zqZD*Ys}SAI0&Ehm;vITFU#6jlcVB%fFXW!oJc39lJ)n%F&}L$vSa z(Z1#);NES5+a~BPUu;@bk(XF*SwAKd^Q^~phpX2#vXdiJKbz2rMO=>eIjFgp;#Z|# zd-Jm)9hPDjmMtA;rH14fHIzRr$4>n)Db}`{W%@2OAZv6fKn*oOlB*rfz3J})P#!`d zj8YvVI!TEn`r#rPUc6nXDj@5UCA14|mCqyb7)%ntiY`f_M~gwIdf74+$)7dQm3ZvG z=&o&qC6xkH8Ft~qnZ_RS?p)?7X{Z3b{`$AU>45OnxB|0TeGvZwTdHM8(Uy;?wYxj; z7ypXP(QP|uG%ZR!(XEcvKd43)Rui7c?ii!@(ZroSFV(V*?6OC%P1?^o#?VOe1hH-o zv_nrbTQr;hH+E^X^_zm`{apX$n^;iFuEGK-f#Lu|JQgdTy(iEPp;6a}P#vvitb+T= z(|QKSZWUQ(uc4HURhfMzyOU7CR6YHJr-g&lDVTC30jYlT!VLlc6mjuwM6H<4sR5MTFvQ&V}0aEPDle*K6zUwRtS61=+jmh6Vmus5MR zrOOCHFbvSS4Mqvv~qQ;7lK*t58p<}|-bQofY167S; zYGg6I1AQ!9>$r7TPoQPB+(La z@()1Sg&CB|j@e;}8hsWJ0Wg7(+2i10u>Ze9hQL zuJzR&0M1n|pQml=Y8ziYVCjo^3nkZFBGQB4qY#a0FYEqnlHqjoNJ%Oi;g}oeJ;A75 zK!Se1kxz6LKg`@i23HJyeA>IZ3)_5sSKE+Z$``4|+M2jR?rcV636T_=>iRnxrp%}b z5LiN4xbk@V5z0&qxF4p=HE6Vhy?%>1kwhiFJvgDLhu>Xk>K)vfPeH{|N_;EILe5yu zIGaR|_e=H5R9%Y547x{j73-XFH0??CsGd?LaGMQ=Ln4>re5kTxo*5-)VfC_xX8##L z6%VIk6~4Re=$Fk`(IdUCnurCE=O9VusX^0Zi>NnvsCZ_$?XyVidF zZ?*b4j`P4^^Mwz1qHWZR;1VcuPIWcimzH#PbGM(a&Qm+aJ$Zoma7it0_z$WT#0T+3ZVCOciT>rvYzSd zGpEoOu}!w$R5clUP7B{0;f5xOOv=JPcnpmq^p|?;dbch(TLiZzmdN4 zx2?q<$EZBb-4>8OPEt+54Nv59!$P5IcQSxO{$-3xSzGViR;N*f4{t$;#9~VpUB{S; zv%3G0IReA_R6-L84<+~(tJ9i8?_EC+TPma15a!QVyF#2+I1`l+WV?m;up|$S?&r79 zfd$45^6D9N?b6AI!_d7f&$q6o(F z4-=m7P2X4(KOos*%sN;s;FYe?^qU}@w}^f-K+eLuQy@CImG^n6^@8^^QWnlN+s!h( zVw4mOPVMaUA{(_lDv0P)d!RJ8yx3R^f<9cZUW$;sM5?B%smNI^7)nkVQf@^viyM*Y z{6z?3oPRk64=TL-Em+M#2+WeBVT4EBcMPp$p49L?R*!cBE2Id>8ORb1SUN<%X9kO> z4RC;0Rov`+vZyht9IBk-GC$9{C$xB^Ala}1+14&W`d9*%{mxD4calk^^x*e3;RZn6 zD9FlK;cI*TjVYgOfCZb$^NCL9dAGx-YvAf;I!lr*&P&Sl1KGm5aALhJoq8r$>I-BF z8G;?LU~1pQSu-KU)`P$aJ3N$^wj=b0lh)I!JIdv5Kil*+Hs?UIW=B@_DLYx!NGAel zF|v=PsFbpleix>^r~ID8Ev$np@JfTeds0lcM zwaevP`%-z;*K(03=$X7zRKswZW$$a{waZ4xpm6EM+pl>BlM*mBRrY*gXse2#B1E!9 zmd!}^5@Nf4wA7m(eE^WRw-wDO2tZk?rPXw6=B&wY0KlwLiBU9%MOn1V5%?-m(PFQC zL1E+cVCE}70u2g`jKVTYm_E**-sl>c*!Vo+oCm!=UU|Q}H%Mz)w36N5`jZfK%+47L zG0jgVB8crB@Ue-H2rTH8c63Hre)874bUa?RtMW8AjI8@`S zv2rqd#^6Z7I$#P5x@j;xv*}{C(j7_^pvjqXq_&{}DAtWm!BKR;p%RtKIs_)|4PdSX zdMGT31f@>KYV(e_ov(aJT}?k(&gkJ+cr{z5G9v=t-JW=~6yr}_ecV2YA`$V`4(9I< zDZ|{K=K8JK(Gl>L9joUhxd_VU6%8@$cSC-10n}7n;8#wpb`d75;RWLqSTH~`6Y~L) z(J+bKTs+blUwGL<7FIL=MU*nS+VP+3E5*ylxD~{XDury&+M|D(q13dKZh$J(%7~x> zzLdLYw1+tOG9ygoa+6C!wXFM5CZONyHzEF!^6z?;@NaRudWL^ zZ+1Sz1>>1j`bcKv#LhkiUtk%do3PxZ40H)@oY(Sq-&64Z>u8xehxt;{zay;4m#~|I z)1t+y^q)OLpuWBZ%asIhe!2B{mGjrB8en>Uk#N}-0@+3!uI<73Q?%Y{TYVtcbN{pI z@;hW6$rgdAF<{vamql*OMTYF%r%w^)xZ6#$akFF>1aBXMd2ytLp7XCw^+7GU5~z(9 zU$mO%k@Ap+p`j4kJpxZZ9RY*;1RX`QL&qXaM*e`W6AO0YY}J)ZBH7y1w_ z&b~;3mB_EH8j}}{`iy&vC)p;LVmeKxPalv;5PRDG+-PAX+~aj_X=TN4H;>2SWYi{^ zBPHV9Ccl&b-SFF(u6{b(!^3N9t{rcQ1?MW^Zp*9#WplM1t`4DP&9$IQMf?-CA$@SR zkWtaKLCu0lLa_DR1H+W`xodveh@9_yx=Vj1uEib)2Yw!=jV47 z=F@o4Xc`49#@)IiVT8rMaP83t6X-Y<8B-DV(?l#Lbeu!s;+!Q(%x3QPmdSatn^~Z$ zD;%S7wJ}7cR*bXzvWR(fXq1wLXtu+J^j&D71DdH3_PI7>o{&#Ha9#iMRKGOlsIA7P zGVuv`IVL#so4+U1%pe<;rB|0(J)T$6oEc_jj>V6wWyMa4CQb;G`=MAZPD@>(w!^eD zf_Y^pSBU{OE=E(+BAzJT8;*f^6js(+@Qlyue>i#ry3AGWh`SQC>kIrmA(1H~P$zIY z0H63)T-7KG*3W?@?d7;RJtxhN4^rt^2Buk3(E2@cgEEjxi2IIqNL#ZpoUF0he}NlZ zZ(p%O?RZ8_U`{xF@Ic^_CY7T3~tJgNLcc^D#F8F(ZfLe04eLvkw1)|+jT}2>AFuSUGLQRc9mr|+( zS&EOOOA8fHjc%izWQ1emy!caFuV=_L^YOBG#>#{PE#EQI9n>UY8HX+KZ8EqGBW zRIPGPop9XU-tsecNqIpZHQ<=iYi{jTCXAHQx$x>E%9VViF2Z~LQK5Nx9L^O_=HV9( zeMe-gsEJ206J0Zc4qVB{(^WH%q~U*x6ZNg7LSHtptU| zRVPtq0tE2aC0*y(WyZsp4350o;k;%j5^%Z<+ylzBYPskqiby{YE?VcW@Awh2ojIHx z>m>=4Kr(c+Iq^SrO>6=zrapj>C=20R^K3VHy2GxJ(SOH}Th$Sv&~~t?-M-F9J4`8= zT$&pLlhxM(u{7bayxrFm=%W)Hg>PoQrq+lHnlEFg_rzx9#m4II(fOc>`aAgzyr}KFeMw*C5NEeGIPhvR}LuxYbRJ8pe*?re=);F?3Ot z4obC%1!)fLau$FDsf6&5M;)J_oK|4r*o!+IZI?kvMp&IY(XKMdJSm#_-arA`62S&-6wKV9eEZwE0! z`+D}iIK0CZ>9Tp}0U#xwZ}{<%@t*t9{IO9mhr!B)QiIgQ#PX!EvZ+K5z0s|Cp_E`w zKS-*IQZb0|p+9s{fyhKFA-!WT#Xd-V(Q+aF@29~}Y-u|n9A>4e_w;rW_)HpRw@drL zbT2mBF5|;0Fl+_1j;e(`u&{R!NNPE^83?}Y=H;)IUWy7Pqp@C3J-tHnv<4x*$ez!* zM~WsfFAR2erMbkbUJ8_7IO@O8S`S1CZfiqj_7D~)A{McQVVe{CF@q^JmNVu)#g0eW z+UTB?0XHqz47e!|{bs!QMwmh{NqGE3idnMKU|IS+-k$ zB&ThGY zbx4@E5zLkN-5yg?hUtupU9p&+A;&t`(4b=ZqQzxXte75O-x)WBkQYk0aB-tBk3(YY zO0)R{Fpiv=+Lp<7^g-$u#?QdmX6|+RKF-g=!-sDymG^K58(CGDmL1ayhtd zFU>c;($X9!5dZx$_jqy3eCp(caU?5JXvTH4QRHauB7VHxO_534eHp-LOSZ#bOk?Qd zSK0%FKLZYq`vFuj3DPl-1&*9uyu8*XJc3nEJuQ0Z7p@~*B<@jx6ajdMMF;(MO^rtA zg#-Z$aPwixu_lz2OIE3>23|u)9>T^et%GJwkc2C?P@Z#j2!kiHV_{^yF)=cVJT6L$ zXHU@!O9XW1z&zM#O{a4v;3Dn=?*y~59@OzP`l!(Zznz_3<9t=NVc80J8eq1=6X$)u z*Lq0Gc-M5a)fBmpIRC`kcpiKCrCCiS@V_l*QB>OPE>L{I3aVFDjA=ZYDruSyUvD2)4P zgpG}TcM#V?k=97ks&X>LJX>8mv6l__v8(daoOyxg(JDgQ+lphp)Oy2`7SPr#VcR#K z^^?a?K!2OkQ&vEKXo}j*IiuZ4m$-xxP1a_0**uMQ#+B-1>!e}xbFd`Z8FWOGrhh_Y zgEFye+UR&cmvrM+V0^V~4kOMTM2~GpaCjbNa}dGw`(-YraAxLgNf7*V9+8>}oZ@Nf z)gQvGLMthOeM#r2i^jrAj7WnV$GW=rlsL?nq120|dEtRUTLu>xAMb&1y%aM7+1K+9 z^A1&W%tKWt^fYcrp7E0VaokQ8L_meW$6-}>pjNxq=#qCIX9O*O+@ZjVnBr^$%HmmrO zdRAqp?^m(MJpa&rRE;Q#xrVhPyFteuK(>_}VOd-8q`16VaWpmFG5Z6R)t)SKOhvN2 zYetNy@eyMFXdke-DEFD>;RKZ<*K6k1P22nDyc?b>LGVaEMV$`8hyksrh zc^F5#2=AT*?eNsG&m-1L<1W{33$m5Zae zb*6A_dw7&o3nba)^`C|B_pgq3v$jO8FFquHrd<5P5~kSMV*hJEI>@qle{}oZ9lbvc zE`^>!MY!}AJd6cslMCUFT-EA#l9yS}^;Eu$m$3Vq?}$EI%BxOks-mJ76RmUP)HBaB zvJ%_-T|J#%R-F*tUD1c4B{Gq(gGo_XQ`+fG^n5gv$Tm6_3ZmFm){N_U2qL9uU`o%% zP5tkUz8vF}%W=R>=9%?jeU&y|+Ur6v?|cx>V_>4*2t<`M%02cuudtS7qIvHj47KYe zGE7dF9F}}xm*3df8eA1oZA2#Rq^S3(tehQr z?YmQBY}fRu?j*LkHhO^rHaMPIvysnP{@pFjz4TXoYxkWE8yJ7n7jZNc2Ef-cgqW2} zx-Y!Tv-cPQ$%o-!EZy#398f07n&55@JzY|+w;#dtxMj7itv=DBjvhvYrpSva;d){{ z;3E|$P@EJg4~&}<+eYllzMNMJ(oDj`ZjL<(TKrZUP^(ALclTE8o?|jw;5;>)M!21` z=vSJ^%rSkeGkuq?8Wq#u2y~VIVS~4;X>pqIx8SWv zqeZ7z2bKKVyKl{9rT9(#j*UAJtNfHb8)l&(c@iw?Y$sTzg zRYdUnF<8!{%kB@0x)C3jLy;M>gt2%=3${e#uQP>TC0v?5&L4-ZnHMuU(Mi(rFkdj? z(9Ewg`}r+Q^IJ4*{O^4#JodT)eKdfRsNPg{*X-%fNV;%T^6X~7-LgJuK0jb?%yEIF zQU*7>VT}py+Qqaaf;8CX%2LCf<^?uq%F-@4y{~e}@=qGnLoQjylC_`+RT4sVv#TyX z6Fv}|Wn8~Cm6ibML%>QAGsS%$VEVqpb6Tf-jn$V0x&GKeQ;2#t7POe_Gb$FzZwMC5 zdQYjMr~ez#Q;Ei_Z1xFQ^{etP$**ov&+4;i%O)hwXKX}8{)7JwyicE3!lC#+=<`W; zAxLSb@sDUb_VcC>ys(lUd2B6xj`dzyrM`}2aGgW-`*INWf-8oYZWGL`I=h+&(D%@C zf-um<;@t^-_MP_Ge6$JV%!Ex&6&Ek!is>ia9nVr_YnrCQzvm?;=7mHrY7E3=9`bqHpN)kvfg9Jl4MTD!!*z3xNG&2o>6v6$kZ}7^pW!$&1eHWvoOM@g+X!>KASrnDUIT ztgf1yL9+zT-sc|xLG!fTu|(IMJM?p}W%r)}t9Fi?P11`Ecqfh>YyUD_F(@eHO0b3U zqI)*Z3~SpcdtZEu7VS-{5VVZi5(%b-;%kn5D-bNOgwhTJc;2cnK_=&cow>bD%r1Eu z@3ZRQZ5c2a&|$7CcB5&-A+;71e&8-_giJ|wDDh)wk;>yT$Vd)i^RKVWPqq=O-Qs=r zB`g5qnP??Qr!qak?V`%y9$8!ksgU3vPu{ZH@CU;T1~7idj90cCh|((SaZf%)zAQ~w z%U9M7-UbU|RNU6-N;EYce`4W`tw{f)ry!yXf_#Y}JQVJ>O9}>!{8e3*| zGpc9+`ygrzsU0pE!Jh#MRh6-!)j!Y?izLUO!Q8mv#g`^9hLSmAh+gYX4iGU5pGVz1 zrr-MM12dCnwXPTMQEiZ<7SY>Hy8}~X-bJXD=`1bXSxO=J?L7X@P zd%O+e+~JEb8WrcLu)fFT4w8pT9Nl7KDjf~Xfi09FsfSt1ja-ZEfWue_OJ9Pb!gfTf z1XNm2H_vkec98hGoO)wG_VrEdodw|t!n{wwI}2=Zwy!rGurjDXf~fEspAK9|&MUo@ zO>`z1R7)N<&RujMMi!DOiIJY$MsIy$JM%!wbjNYPN(FOB^%U8#(sC$_f;~kzF$=<3 zb|eb$b*6Os%TTu0>ih>Ca<87BRSaYa@ljG52$2x&VTfW??N&1G12TLv}5?{aTXBQth!2Km*wi-=Dk!DPH zp`A>x!De>YBu|wjBLfPX2Mb{llN?_^0xh}aXZ`v@C3+{Qm$eT+ZXe#b}3=SLd{hNB#^ZVxG5M)%Q7F`OWuN z$$dI97&%3U_13$*HNlb{N|dCrb7&S=3wB^*ZIAhKUqcHvUAk|!N2z=k)QOfQabZZO zSWxl~3Jtw4>fxn~c~UegAz;y*GBuvo#7&s4#?kYOkV>CrX@5svBzAw{ z9|3K8R91G&wY7^g&i%xf{`lLpZ#mB48e}(VLyX%6r`W9tZ+Nb*q-|qlv(#&CkbL7J zcgT>?Cm3k8k6)+t57YPe<+MB%)JYNYI<6$E=@cSHOv1X;s8{dqEga;Xl}wD-W&NxE zO5dU@>+y+=)nf<3Z3?sU1tnkx|M)Cdr7wfwBs{ZsrKqXFqQ5OJh`PVVzy`4biPp7O zz2C$e%EY(mnEMZ@eL=XMj+qE&zkU1pJS< zQpeG#kp3GEI<0lgo&K9O`|cscfQ8`uD_?5}SGcWtqVuxaW#QDb^N`^m;IYa3CG3qZ zQ4vA3_$dl?BX(&q^32Z*EtNK=D*5F86VK=(kvb`E#10mIq1v>1T34-u5OpGL`9gN@ z`$bi#n^RbXtuUM?1UG^vEKq^Fy4S61H@>6bb!_?V4RQnY;G{x^a|W0}E@asg~n z&0^zphV*(n!agnH{$&v1GSa4JBF%1}m-vd(}h<$(;s#6t-s7+-S5-#wJEV`f$X+Ndl0?kLp|2p!&>??Aq;~^Gb^lB{Xyzd z?NI~znUzdzKXo6zV0UtxT(nieHS+^SUT1h?CFyBrXB)M%S78xMCO{j-9y`!u&O;l5 zK#d$;{T!@kFrs1}QcZ}BeU@{QBP9n}a`Ka;9OGvmj*iqkX3^7e!4KqfLZ0q!ALOh< z++-kIHl~vZ!JyrtF9hU7{G_<$RL#AGUeUU&IQ!Px3x!q%qZfM4j3SjT2!a29Q3no| z)6gFHU^!g2KU1{{RjVo_mlvpKy=|L*mn72$Z;2pNwi>Q(PCvFSELt&Fn(&iHnZY1! z(F9DKx|5&}^ljR@Q2a}H$x3P3P3d~i;CVd7nE57cj8oa3YyXsUN*a7p!MeV@yw^PY z1;Rxv=08k}0|)wvh=(=n&bOxre*)6=*=7*5y&UP@)yJ;3!uDikwU@3Rn5&x!Wo3y%{pqpYTxx% zq3r85kzW-GhWQ?O5wo{_gs<^BURfpU+AY(d;nMJqpS*Qpup0H>&6zOED_6X;$J{~H zuDl_=fc`_arc=NmR_R$|ud@=dvDv%b81s_G;eIPRR;m-rr8L$24&9(5Q;xDtEsJ21R z*|+$0yyafNu2}sL*{=3yS99Jx`9$@>_omd}K#n)u&n|=|ZO?r6%zbntAU=`|oa=f$ z%wjOqL{AZnA*~l{Kj!hCAxHU}&z5WAFC-P-nixX{g?Ao)=0D4~R+5Lbtj2+@raEbh z%f+#b`k;rtS~?)aN~0FX^4HLRRM0hxFJr;ZF&NU0E3^WKtQ2=C)<5Kv?fW=gbIOCw)LD53L-0)%tZ<({QY zTORFyiN5e9$_c0)6q~KJGXQNtn@=a)07@k_5B^DR-_Fiy?lAcI$idb6aH z`UTmJ(ET>c=5H@ae{>CCNB~OD%h;5_poDFpXKTOr>U{K2?9~V5*IPgoSkA^;v~N*4 zA(gTVN-O10YOfgRK!il-Lx8?iU}Yt&W2;gepyy|+d^Y!iA1pj<7{Wl)P8_TY2#Mp#{;KZhlkvozddZ zXw?q+4*tRgDmB)KlH%&R0s?zR+%v+_y8sP%q@#i2u%yvq^{RLEXj?#LhSsb8_g;s| zYxml-@qgNu`}EhRg02T)ovW`ew?mWyu3LQ1&#!myTn_s#{KO0H#y{} zX!`8F`M43)(SQFhu<##nt=fqYzgaN!T!QrO>~jKU&fkLKX%^4UyOY4WJm@ab`%j%q z;N*uAz`A&G-V4Y=4~sE5pNay`pE~L4cc}#X|3q+JW-s?AI@G^>JNTKm`}nS-0G^uh z>XRI$;?qT@PBY1(SAHyKkTB=gd~f@GpcoXYO4*l(Qu|F;MVqkJNkyQEZ$I+1<0-OD zh99g@91MgN%ZnU$^!eB=amL`Y+&`;t_52f^c7A@0 z&dkdbekU?iIR5<6=y%^z0m5#RyX+87BfCUlE3mJFOC~Pce17!e77EN$D@ZS|Rw`eJ zw_JvkR>`FoV9gL7O0HyFUe%zG7gvF{GrDH`vwX8tKTIjKEsB*32}Ucwg^A-_LL(LF z%BNG(8Dt@9Uyz?wqf{HlcF1hp&qd!23??pwTWxzA)me*mw~>%O9)1kOFu;shySEQ4 zM11Xw=H*S-I4*$*5QV1N-+9xeb!sOYw-E{bd}iRPF_JT~0TJEh%bV3j?@H6hyupht zgv7hR!Rfcl4awMr(!IXAi#t393wrKm7Hq0SG*&%H4g5~Bx$+qG{R8Cg58lz1g=(@q zRXnZnCC{*%G^`1cL#6INosE>le_VOGI(ZDR;_wr4C~TUpc_7$Xo!4-mN?Z2*(~S<9 zs?Y1uCHMHLZ&J2!JPRg3>8nTTY4hiGkf9ta1?#{mu+LQahtju?#vJ;t9C>zjs;pd! zxTGR9&0@^HJm{pG)x1^zXFh){!}0|M$2cgyCl`uhb0!=H72A%qVER6hG~nUNo7->m zM$ryX2M^7a=5Y$)8hkrmG>;8!YvY|3dc+z8U9K`$x3OY-xIbO8g|E(;M57g>QR#Y} zuTFai0f5cCz&F8>@m+^ty0e?gI%!lK9Z6hynXN1d^RC8#M;x4YLQ;f`JK@PBx(;Zr zNRmh2II}8>a8|mSHA4+bS!`;uMOcAl9tgajH8-E4PRuJw3cYDtZssAKJs!4YA9N_0 z%S_LULlPPkR8wVBCg~Q1AxKBo*4U0D@5<{L36JOVSh;(~x%i*vqY|E(A02ZMS%Ata8}Tv z5FPu~Ol(D0OifHeI9y!M#(Gj)e#t=(rH6T>*9_z8FxS@DAx)-5a$yKqyc$=#NfCZa zJi|m%mr>sf$Cw9Lj?kIf!}f;Xh3y%6J-4o#fHih?6lL@7fIsV?iz})at%4WG(Q))S z7a-c?N5J$+>B?5py@ZVBd6NHKFG1m%d07^98Gh%3W;?6#)%2OWhy`Q}Kju%WuF{+{ zl3FM%Xswc@>3)6N{TFSTSqK_Med|p1gH%DPuDt@($6B`1=B|^Il+{Jw)YOF7IAPwD z1_TZU@%6HHo8wh009Wza&o)0MjLHN$NrGV@z^N8O$b>)=J)H=7@y9Of2t@8pFTSah zp0_Roo)bOChxRxreXzO&Kjo9*XiAJ0rJMR&_q_ZC0)n40$N z8ZP`-(y)163~eHo-D)z7)nWBc=IF&Oh+^$$Fj5`%x7?TEH}3zLkxkdyoxH#MgT-ezO?;2bu2G+b*@^;hYK+I{O5|PmqMRpn4Gs66FP>RBy6;jn&qt^N zYCCu~u5>Q;+ZrC(jc+DQ4xLqcfMRE0;x(DKuR2BTOcZa9)0>rJ`u?3 zYi#^k6TcJbarb}S#j%BNY#C|(iDjhO<~T}qgUgH+TU$%20<6!FnLcLZ>gH(ZL^_jm zAK44p$z(Ii#4yq$V8O^%`4E=52ze&J4aFL?i$p957>HVx220O+)rT`(f(#cdTmA@4 zzk~H|Ui|VsTkb1=>Ri3>2M|&K*#n|5$*2ShOxM_EJ}q4szr4&hu~4;L^SDuU*nE#z z_JKzahNch;UD^PBJd%pM#YwC{w9L2FlH+-uI+;^yj7pKZy5h^l)%X#~&*z0R(>=e! zK5%yOE3J8BB&^g78(2lq#%j^lMiA6E00y#sUHi0)e-8TZCHPD%%2;Z&G@(}$=-P0k zhj(Jc2Lodk74K1G_S9Gw&T^Z}dh0cgsA+MCCA^;l(gw=SkP6dCymp9*e;lAxYxeh* zZP)gwe2xGv3Gf8msoKUmMOk^`>kd1C{S~5h z?Knh{woFba_%aT~)RsUQ%!`=ANj1LNc=fQLyj}+IuyWReOb1Q5wyqcceOO;lgJD^4 zL1ZggaVP~+1I4X`)+Ksk)tEeb5Zl@1<7;Rlh@MlrtM6}#becMygiY?&4?BVL%7?d~ z(bTSejR42-uzJ+DLAW}%QJ-U>c%rv0=jC~)3+hTNSl_@)rR$@JSxB|;UGoi zwK$7Kn3PGG53egV|4-@KH#>!taOVnX{4tqiwe2A;`dD*D2u*0=#s>d2I~wgDmdD`W zM6()icriO?{Fa>BnK~}RR2kn2{KN1w%gkr+{u-QAgHtd;o z33{ldXoh{yC~47b&%m$WLOdmAWxRaJ(`27u3TwkFDSiuY zL0ov1O}@gmayF&afvEy-C#>Y4cXZW$AJphJQ<5G&GtV^6uo*W$Mdjs*I7__=q9! z@3rF1?jyPQZ;QU$?$f)5ueYbYm&-v36{0uHXEVD32WD^l&|aTr3SNo=Zu54h=i-Hj zk>QXioQYKeSX;|42AAZXepQcWFs(h40%^Qb7` zAC)HvxoFmj-t@_$4(LdyF`)4jVW4Y)(#lCai|T~$r-okZytF*OZI?vpt!@mhU>FE1Lt;qr^a=mwRlZ%5C`rY2)z#clp7IbO z_PpkjJr1@51)SF3QfNT%<+(Fsn?dS0_r}bvZCdTt-Q3?61;N?#CX|h>uWaYO7pQKl zAw2|0RVyKaE_UTM{ioBRvg%8bZ(eRtS9A@omXNdFIMJRRXVfKq7J@*E(fLG*9*C`{ zrw)Jle?4Cpo(hpvDKkQ#wor8I0T(JY5iPo}!t-~ToT>Ex^v`1gZ(JsALAA+x%D7Ky z%9}i_-|D)%&rM;WWxggEh=#9;*lTu-)wVe!x*sOZ_jLOpS3FCpL)!kq6(IX||5bwF zj!~(K2XK-Ye}XTWOFFIp8Y#l5ySYN2Xi;1`WI9U|E0waU=390wQlLSYRY5FY%(Ky` zmizH;7maNrRyjCdRX$wG5dtVhY$S8OCcTZM{BGX6{(aZ>ud-XE9Bq(k2gU4}9H~|1A98e#(N)3pd1IWm9i!!m-ET*vreiyN;ko1d@F3 zw_$-%A~P#1D}zE~t|C^2_*$fDOOdOBu_8l)$H=HfKE{4iZKZiQK73_-#gWd{*#rMV zqCy(x?PPK334K)Uu$~3VZ>K>}{J8#zmQp()`rY9^vi&{I@a1eRFpVU>4c2V)?=45~ z5kfH+0-L8E#`CJ;BqU>B#!RL`9G7B{2axtOzufQ|I*rHS6Gb8^wlrHLKN|Z6J%r&H zIMn#xwiIlS4n_U!aCrwfM{PbfDCL$9j{c2NFQgO7!+`^=wT%w{I0ipSA~}>5`521^~AUd9$R0oklc^NS6;jk zQhBkUbw-v>V^dkNoQ{xxaHQ336J;(9=Y85lz(sr0BslZVdRjx_U1@&~M_aveC0bko zX^#w;O5nsAwmjUb#2SL8zRvY1>iE1SaPgnm1AswTS$a)Kyv#~mWDbdjhxG(v!^R_8 zR@P2OMBw)n0D2D|De+wBfpGpG3OoaTIeLFT1W(fIdYpe};Wf`15O*~xk{|#(&Atb8 zH6sg7F@Weda1ngkWD*12>oXk92G9}Dqr_c-eCZdKy_lxwzPT@z*14B$|3f%=1l-*T z`fnp|JU{9odahrYc4vSu2~Dnhi7$&e{eH4mcK`(6T>+CD7Ru*M)TRKR|Hu%4%WC(M zm7_Gp9UvK!)%cv)Ik+psA06R?tfmj&s#|XjVK1iOZXoFU58`ouY%MWFM|t7of8r{26AS*LWbX+%Y7hrLe;-un7?*|2ACZ%%8T!l*D9pYhY{kZ2PR zCB`5H`F&RouRF3qX3Uz6Mwxf=-}`$@)ILSvc{fLO*kcETmxNsLwmi7lbt62Wxs5=# z$W_b!m7IJO2@~4w>@oZB=c|iguh1v32X+<_^6oE=Vz5}YGMA1Dd05Mb>u(ob7{vsG zQv5mGOYSxE0uodelgjb%zq2tP#`najQJ_SbM4B}N+;4v z%x5s%*Fw2}&vktJz?$v|lgJDG$uFg|qi}WM)I`UKk z;>yu-E}EV}+ zcCgNF5d#2WR8^_K4rcSVDeqcPSJE?_m2l;g;1-H<5T-$)cL{^E!BK^57|DXY2A{t8 zIaM}YpRp?7ZQN13-e*cZ1mSm^JFnnP2$jq-+j8$V&Z+{NCu*ft{~GRiK~0u@Top%* z|5_~!mZ-&t`QHjVN7HN$N9jxf(12nVjN6lyq3szwvWg0TNbRIAY&*8qCjc}_uMKRe z6(W=IK7ULuQEp(KFnCq0Z}QpP%&a@gVrc14qYP*e=&E|=7fmpW=?+{YA(8&gqsx!N z20BwGB{CXP1hSU1%))5T1Zmlc#3&03$O`alz`^Y4EFiIAokf)#`(ANOjH69~DOV>< zH@OH+Lt(jKo4yCpd6@=HnoWt|rZ96^DZvA0pc3>a_$}S3ANUh`6CIV>KK3I>&^@+z z*XpwVi`wLf*!}LGGBR%EAno)gZ)>HQ1ZeQ6Z2^mF>|7KHL{x(rB`e z^QGk&ocbiuy}o?}^$qSJ-67#BHQ>wdHAa? z%+wm>j50X{RhH~Avx)SY{VappADA)gX^B6?{FKdI=>4HEqs<$LL)~gNYFm>%t9=4( zZVuO3gbfeb^ooN}9r%_*t`6T%uc-X=aL?V^(#8YZOM^^%Jbsw{y?&hYs!Lj2foQiIB+s6921+S8DK?&Zvzp<6h&e`_hWq1XmdUECfKSyUHBHVRO`gso2bbz3pn_+;r ze6fDlnQ+(fWDInp2L!S`ou@7bC*lBv44QZ85dg=2Ufb}`G^rUvh3`ps>x zLJTIiP$mN?1D@k0ipp7Fkbp<8|16f97E~`jhi!WgoSwLxUKgB~kV!udS&j2hMzNnj z`&HJQ`Hb}6XC4BSnL4n&5UMX9_OG%weA&UzmwM;_k+TGR>}wXG{~5uEh>0Hn0hhJO zc|qQ`e}>5j3NdKXg7U>?u#k&0U?AW>X5Dj5f^Q~p&3>^zBp&}CEK2mQRpNEG8vJ+? zSoDOSdjx!HUfKO*`pB&ous7b5Br-%H;?OP%XMeM6Yao>%C)%E7=cy~;)zof~fB8f) zAzb3s;|Z$!lk4ouZXsIryXvz1ltEst(&f9`*x_L2R_&K8bS(eVFOFOH4Ba-`OHJ`R z8d=Gt(+12^)fj`oxP`KjrtmxG9IwIeG^0F%PcG%XDh^$#wLQ2nvL6zL;&%_aK$SFNz21B;N?Exfhg zL45e!E3PgaU~q1PH3e>~{G&C^}}h$~p`UILv7ML?7P?6m~oOjQU``HTpShtg&*Hg0TaBaXn=m#LnA zW>YC97q~@+#${3Cq$|_?;-e~xUYf6blpxE><`xX5-n{mEYTYmJscmfOKU`)(#ik^P zsRGL8yCP|wg;+Vd_bE|#N&F{bn9`ETM(U~p?$Lx^CW$IM=%hc(Oh+>*N{E#fDve%L>VrPcjj^VY%U-^`Z@$Q z>d7A(1arVS673J3oSC65yhsEv+n;^^iUHnQ;*=tE==w?Zf4-j2PFr3~yZhMQzdtsj zfiQ++qQ|QMQassrEO~mx-fH9ar9T}ZWDbJ;y8w;?c&T=hV>pxCOD;ko^6@-BzozQM z$%^(@)YImv0-G1q+VqMt;MuMIIt!-aC1B*yrdVI3RgQG1@_0$IH02kF?qi*cl`PZD zL|s#pEIE3jWnBK^37(f^U0d}orBK-yVQ7DJ1Ix>2=h8|#L%Rt<3yBy1gk`0ARP*Vt zh^gkhS)LzN`WHZiNo~Nl6;Hvc?KW;Bx;30c$HvLo0KB?D+ON2}b)IDLAMoZAM^|WL z%FNjvKz92WgYuO;tjJc1922J~1ki&L);Mq;*&hsGssLao4{X_VjYUEoo#glE&h(X} ziO??=epM)=y&tIK@RJ42R{nd_kY?yFChbRhdjpx`oeY!Q+hm;oBh!8v0LF&EL!?@T zow~s;Qd_3mmU2}9aeUeUk5Z1rq@*wpvbNcqBa_1EsjnGNUBzEvG5GN5=4;{PI zq;0l`j7M63>)3plgcftYcp@w;F4jC`33R}2-b6^lR;b`y2+)Zf$ktWFG{_)?-{et7e*VDG63GjjkZ=cYR8u-Nez98Tp zyA}9L1T}`_ON(}5suO)G&rQVBR;ZV&unFsS7^kPWkB`siHs1&4JS`nUgW3gSa>vJH zP6%O*FJIohA}17ZTbs08l=?r~cN|-B?m|qS&AT^NI02gA=3)Rupl;#v2n-_wP>p&o zg*C{c#z%Htj}@NJQH-AOC#ucohpXe0lZ*O{&hPGBldVS_;`ir$i=y&Xd}sG*rdyxZ zuipa&Awu3$YhGUfJVnBcmsDc+rUrhzSl8Hy+zs5q|8;F&D;@g@^negDlLXCZ$WVgI z(@FEi)@&)F=lxcM*JArA1o#s2rW|~Xc65)*7WV)GWI|~I0-DZ}oaiT7Y^J4}pqg`GM>2h5l;M)wvX{RN6QJ`LAr z(rYm7Ze=gZAP9Cy-GA@HK_kKcYcpu2i{`o+2w7D=S#Yd=dlcO8asP0P<+2CG_k!FQ z!WvnVX?K8$vOs#+hCvax>_KB(n~t71AQ<)WU1&0zb=gR;Fz`b?aC%A^k^X3D5Ud%$ zG%%iFUd#|r_syPqpN5Ihi~b`)(g0Umd0DEI0@WMcfz*>Kl{0*Hi}Z}g)yG~RuU+fT zbiq+|ZVbtW3)!SFpM^*oVPsX$-E)Z-s(`%;xYU@t;)aDFn#t$u*A5scyd6(r2tF5Z z|1l9q%EyhC*9xKMQ(bmrn+X^_j$K1vrr*mi1rL|>YoIE+#vv&3o}82tAQII~&MO4l zQS|k^^_OO~nS*7YzG}GoA=CI|-BIu;<(c_)TzMjMy zZC+Dl#z#aG1dup?aS-vayfZRH_Wg#atWcqjJJ=a>eA$l@F5 zc5!SjtA4~fhld8aS8-eJ%h^6T`p};W3cOr7EjFL z7!=J9>%WTLlA`pzpojP>1a<$7^iTI%cPr~Ln8+22DYLVrPaJWaP-1x;9ko=HBaqeB z0Tj~tKDrPo0o@}!8rtN>Fc<2=$PEAIPX~=FFqdsKGj>(GMC#NpH&fghoW>&jWOIRiS?A=jeX0e+!-8AMSWQWhkBLo&k_Q19ee&2Y zYh`3YFZuF<0k`Biyv4JpTuXV>vf+g3noyfGv%*kdOh_Z`dn16-eEZ@a@zN;HXmgoYBL&w3_OImBupVUEu zQB!UMKbp@%l#YJKm8^ZkRm}Uv=j7P!;WDr)P5zvsPk<8F768$oIi?X8x+Q;(YvLOz zml@!a(+A=0=n%FYlUV6Abkz5ro^rSur^wV1lca_>#r27LZP6-Lj6YF%CK9hc(Hfq- zozOotY-nv#O#d@H8eO?Iut1m;8}hyCCh`MwK10+iQkiHbG=ktoJKWfCi}c6Q%Bo7| z(`_M8U6G=a&Rm0^s^F)eYGqB$O$`(IO+oK;v8y!GNRQY~R8bM%FhT-9;0F;ckrPTX z&3mj{)s_vkkvzV!z}3t@zX(G!B$$yjfgYbF5a;@FKI$$qEJf4DJM$NSRR1#4jo6YA z-hSE&X3DNDGLWK3BvVWtvq9$XzKe4Q#8NBbYxM9Yv?EpR9ma>aW7vmc=04HJkS(r|%o*URjPb3Z@Q8qjMvLMpEU5r(RUxkq{8t6TIC=mGM zUr+o&+X}<#e4ki~((+SRr=fIWz$5#eLp(q4J1w)S&_R+fb@y*2J$hw@K+~n_e|qAW*K-tb)$E@Q)SEwy1GhNiQy6O? z3GjO`Rpd_u|2=z&fyID6fx71AArJqdW+bP*V*~Ni0Z!p_Slo@K`Jr(5KtV;9gWH-lfG zhyXKR+&8o8q{=|!7fHbRgv3sU|3SvIoE8x*Q+yd@TW##Jmg{+`7-+qdD=Gr>hS(A# zked8_vlbxq>GWlr342en+ms6H1i_jvy5Ngo<1RZsjuDiil8^t4wo+ zLUJVi4XvbNJsJ>hNI}4o3K0$B4|tcIm8tF?50!a!NA7SFB5PGJ~e(6ri^zLU#G5|@ggv5 zU(c3<{>~7}I!oFSrf+~ROC8#5K4M5>n_LiRE6xzb(6pf4W*%UT8bxd0wD0Oo-UjoA z!4`c9*KXX@5?Wq|j<p?gZGJm0 z`jYMw!Xe}dL!F#Q+{;o42glKboDa3LL-L_*~{zY?4-%H2gKgYp(YyI)nrmuH@l>>9ax0$f5dMp zagI&Kuo!1Uv&ZW|(ngv7sNd&3GlmF>(M`Lh4bx>}vEX`ZUi|yp`0Ye)L_>L|41-DN zq~YgO3ms*wIilfD>B3^F#sQ!n*ju+F|PTfT`pfLter6QY@aM8zZRX+q^svGk8;tZZgJFPz}s|T6uUROn*@*r`65K0OsaZ zOFyMsRn}0^P67@USpwGNIf-VDso=_{!;y=JtvGOoNT$WH>;y?D#EV;6K0ByUh-4Vj@FCSQD9Qg}xdwt*)~NMd~Fn%MW1 z*Ve(ffG@)xR9KGHH;raj1OETl9r9GI-%f? zr+lxZ2~vN@=$GtR5vU%cu+0y-$eiCLvYnA*`Mdn6aoRFk-_|u@-@Fl~$t>4C<#tQ! zeBzM6Yp;3$F-$Dvy7xsJhA|7_Oe%>f+NQ3%y^TR%UI#jb-b3kD&iH*iuFk%)&o3X9v(?<+@ePwOOG|cV2I|)b za?%E$8{(ip}_-h;%4=gSc*RM7?^W$=(Al1SO#s$ zS*n-g96jpMp`mHCN6u*p9vQ1ua<$-G85{54U8lemv+sKUSNz|jnqCip#C*~>?#DNF z1pHql#{KWuHy-U9SJ?d@OV^_{qw^mAI9)8%4@VWb|EpD4a;(;r0~(-c!Udq7>h1C;uc!x!xFHP6wU z&`J2SaR&@5uWw|8TVT}*$r1jq*%*HhPLc;Zcpj;Nkp|q$2lQ8%Jd7kfwpOsRes^%7 zy#M!rNvv;b1bn#Kwzl4d+uP%ZSAqesR|t!F!m<_f+w6`ojjl&KaQX%;XQOz2Pskp2OYd2L0A;*xwt;6ySNavE3cdz7aTX5g70 z(utAanZpQInO~U8TI=M>&gRN-mnzMfaghDZlp7^JPIMGLYb{kQg`Ro|r7M>D{VqzX zt(Dq%O29gICklaqSmhK)&<*xE2d^RiUb$pK=&-=Dw(}^gCwNzLmLk`Yz=g7)DSbZ8 z%Dj00E*;?2cL>H+DHguP8?fZW_AHvB7>`QK z;rc8c%ubp+pmQaO#s!uqXQMR6vhEl>E~+#6Uj7*4a%4zxR7!-Cn>F%8-LH9wt90-S zJ270UTMLtxYHMn5b-Xk-BnJf%vuEJ>tc3a^)uX-CzxqXC=wk7mtj4d@i1*nzq5@2T z@ALTw)fZhDTz%Qd-uBkF)%Pad^l7`Pr1n?VRM&UZ1EV?bH~v|;*kzxr`GqDcU%jgG zL&%AISH)V60PlZ*u8!@s(2wFREa-~rH8A;=R#)%4FSD_8;>$*_z0d&7D^E4N;C;Vu zry2jWFJkwX%08ty1>da#{&Z(?EJaR9wU2lrLEoDa4Mv=}zZwbcBoVe5kfqpJ+6(&b zAPeM(4tRDN6M`7*}!CsP#T(lIxA2^a0r#Bw3Ld ztr)GsVNb1Fb6B9Zi`UzN`Ev}*-@a*CR2Bn<@;1o|Synr)375&fNzCv;alU*jnAhp3g+4cdaDs|L@z(-f$XLAnM3iWC~a8tW|{ zRUVBt6x?P49^avn%#2#9pFNW4Mn{$1J^pohB0|U`boH18E6A^~CtvW~YIv`qsidKsH4cb_ zARg&Coixs=^*kgW-t7WQVj8I^Pd-R&$xZXp*N>y*Yl35SkVWUUvLl3^h0|POQ&(J~ zrIj^CMGJQicOln(oHd6C-Sz=b?p|4cs+isD1xnVcCoy2a$Ob zc=CVanZ@0*oN34q`1JhM_m;`(_D=msPaUT?vxJF^u{*#VvSykrBaV(ONsEm6`D(gfb`(OFn)6U5m;AD5D=%R(Ms_s@4c*u@!0&U=sc0iP#^sBV$i zcEQ1vHyxIXDn@PbM%RuOcf9(FEhin%J~n}o7~_u~9a8pEpCE+&8?OEeeF!)Gmb*iO zh|x**?}7)Hb5Pbc%Eb8Ho2?wNO3Wt^+Jr!l?B6gS@h6Z|WtV;^vHPZ1Jw|F z^Xk~5?+H91!RI2z0P`*9X8ZVL=aY~E0J{qYt{h+qj|LKOOz`kP4DmzP*$X9*akU}S=l=BUSry22s9@)|jn%DJ6Qwf<4lOWm1lTqwJXx=6 zn@|*X4*~w*g9K08&uz0V%k?^wn_rG6FD`)iOx47L0=|0(4?N(_BOHR2{Eo#W=D4hW zI?YDM@o&8NoA<2fJ3+S5Ef6p&v5N}Z1#iyR_!DX>y$(Sn<}mrS_HEMSDO{i<_w4cX zZ0o<%;Iuuj@8Jsi5C-%@zFs)XPh*SzuN@!isG!hw*j2|t3^=lY>E6T9pC|A6Z(hHO zz#4LQ4Q#pQ;vw(O%Xg?5-T=N7EnwRIFOvJ;e|xxF?Xz!QQ!-xcfQp^vXeehn->wRQ zTpG5=UhX#3a-oZlO9_G|u4kP9)AI^R;$Hgs92-V0g$9FgzHonZqVsWowvQ{VLZrrB z=XWGho@~#92_;ioE}i!}iibmwr~~x5tCYeapqx(T6(5WDDI+Vbyo8$r5Xlde#Gku9 z*SDrLh=6J(a@Etl|1fd(wv%#XVt(MI5oB^2;|iSmd+U>kknfcL zWM6#!>T7vWoa9gFv4ees+XLS0!LSPknN5xz|FT@dM_OsV)o*=Caeco9X>FSoMC=RL z5ZO+6<+eh89?;7xVaI6ox;%+Ws3*V2&CwlEs!=Olqxr;BK!1yd2AyiV4Gu2OZ*LsS zZ^H79Sh(L2=t#=Wz4Mg;1x9AB9E@k0PD!w+Te0x7$t zepIJsxsg}zQE;qJRs;mx6lJ5hUoIzf&xav6&rgy$_*XG%dn?$>>FYghFKU5LnIRS{ zHl$cc8y7jKta^lbFvbBKth45FmKk0K6|MU2Qe#6yb1%0r)n<{S$X0}{R4Ll9qP1@> zp7tU1z;^1pE#%qyo$CYnhi+*qOBXv#Yn9DCDU$_lw>ZA^dNwH!x2`{E%$;IV`(N1E zZw}ns`Za2Q^c9+>hQ>*=uDXx1cbw-!e;lz3q!gns+#~<41{e^R6vlt?IYBwiIaj z4k}bi<(ImaLlIkT+hnetX+1hR3KDipE|kYEEV9T_LkQtp57r9g{7A^4|LG_3&MY(d z#t7WEJF53#u)tC#y-8svmVP|3XMP9ZoTthTEawBFFU4ASEwr>Bwl3LKYZT(=Tk`ka z5tMsl{~CZ$cKXOYs;GaCPbUe9h{VhP%u?9Q$|_71thV65lS6duaP}c5-bwl28h98V zO1U@9C?PYKyn07`w$-~p^b!YIeF@I^alE54{988NP0;%qc~IY+aCXEHh^gmhB}Sr8 z)+laKLw>>5N>+~W%QA&)Y^>R7cfE$Z#JA1|UjrrjODBc*$s0rfwNk!Z5xBU3!-$Ud zx3Qcljz(2$IftY0pntX|OQuiguKsM>{!Tp5h0)HG3#`{-PeMUII1VH>Kyrrm!?}3AgA%;Py0H4;&5!@0(br z)^!S4a#sz1atX9BAwWqvNNsA827Xm1lNZ_Sfemzn2-?Os!|C)lf2-aM7+G{qnGndL zG242GwtW`_9M55A&okXwoeeQ{?|)ZjQxEUmNvHMO9L4C(iZXKk;P?3RTYB0-I7dBI ztJ|#VJsy#jT~T$STiEYUsq;m>(@_L#ynrFQF*%bhTA?74KAFC*AgyV?(GWO=g>(3G z++)60&9#|}lJMljDr%{DO$Bk7#Q~rxPD>lCwrVC9(=XB51mviDIo8E8fpMIbK{V*v zny=eG<4>8n#E65%(Z7Er1g?9EaCTaoSvjJU3)sZi87BW$c)vGi45d~P?HnK-@)R`_ zzCmGSkPZ^sUmjKndm_L6#QdAIl<*lw#=Lv*ar(2u6c;AX*QZQ?OA>5s6Z&~P8~lwE zB`=fHW?WlRZGi1#PzwFed>YbFa{>%*X98T*py_{-;a+;|Xk%^Xq8MA4f(@b12w9`E z?}>3u;uC*yQX_#ZOy1z6hpW~LzWvoN$jFpNtbzx z1YN6auf5tJ5*;^;4=M1AQqlV)k!Uq5@` zSck(@(laiQw&56HU!_4c-~RdT;wyoNCP}u0)AJ`wVj>gBI_5d&wGwA zB5d({9Qfr^0778R)1xCWgyQmYQ+nT;=S8L_{yUlxNR^Q+8xaRPEwKkgFJsS@D*^(3WzVn#km0^{exnhEg37PEivtRcfKa@ z@X4(Zs^?97SSyqoQHWwhSg$?1=t_Z+Qv*_sDOS@oS&0ouEl^nXXBL*c;p zQ3KVfdC=~<9t9`YJj$E?m3UMNsB!Fi_`3dxFELRA7(XsA^}3?fo?;h&K!BT+GuR3E zr{7@b-TJ6ez-4L6&8aE6E^YHB9A9qFeymhAUoJGm=z%H%?6GOc?=mYQ>>CMK z!eC?)ceiv&({xChkW;Jq6kchMJ`Rr&84 z{@*S9%0}x_hFT#LB7$y*-aySVyv(d|oL{Rn=#QH^qj!i@bWCUeems-2Be=f)^ZFWe z^+8PB(|b5Vym4Sc^?>-LTi->O&U($IR&{nlQ+3TLlFZ@QrO%BbzM8Xc?yP{;*~z6g zXx3&`S=mW6=L6+;p7jlj4zQv)iFyWuTXESpX&q0a4{=4wuh>y^WvG3vR?u-hJ=_PZ-5QypjjZIA#z{xUDKg;5Z^LZr}-0a3M8gd z$?N|U?4<}eOYxd!HIc*#R+aud#NlHN5bmZFh)Y05~T};ZkEX={j(OPYEg|YMfDN+ zu`|qO6BXQ~1*|~FTWA;IXmU{|wD?|VqRoirl%#!~v-+E#CcWyvV*gu#D`zLw(1IZr z^+{Xj@5muWQncsuvC!*2TsQlu)L-)>iFg2zd;)iFAVk*6vnw@lx0pdVC-&uqBDz3E zSb}jmhlo*?+}g|QA7h!y`3P$Xp#Msf` ziDmACZ^ZxXld7(h6obonPaHCKZ=_>K&@GI$4)CnVe`srp`zJO19%WzL=(Q-N`U)LE zIqi6nb7*~ded}>o7Ms6zf+vgnpDeFa%>C|8-@v3~@vy$V6PkhoVX{*Jef8}Hu7ZbZ zz)2pkEvk!yyo;aLPhx?sSzh~Wyu+0nu#=6iZdUU#NGGR()2{7)6FEM~YinXf!R{cZ z=V7x!2yV?w?Br&v$Hw@`2!^aqZEM4T-D!F(^ zQ1x@CkPD35%K*P3bN!NKZGu~0(RhK0S$*QiRawgQ%$r)@eQE55#(J4l`p^IVS=sHx zpsqP2OndI&vgm`p==MiL{-cQqu|tPT5)~L(XgM*qnJ!r#Cp6M?k8F?#T3IU8zuX>a zgWj+DA5~oo+uxRInVfHDI2|u3h9(v{k4;RxJtDIM9)x#O4j!KSJ*ZyLGq|{;XCGM| z5zs8l8st}@Fh@c{FZwa%PS4KrX?vCrxfk@`LvRg!>>7<6x_+v*hY^^Z^Tqpd86nG) zK{|dsxC#&0_8rJm?p`0vu6jXpfR}wDPhxbdQ2wVfqs@^`v&i+6-{Ts;j@WK*80M<` zQ_e6`A=o#PO;s^DHD}HEzmulb^?}=V;WEsTE5bU2TE!fXp>~&`&_&t!K}P*v=5JVU zuBOT=wbO)oT?4&Z^l%NLZM2Jj0=?5zF}?ady-sdJGx$>xfk77a2YSWBMJ&Rn;Bfwy zu+HJ>76#8CeN&n1L~jWyOMT3aL_NHrcXo=~nVmi2nrOl&ZSB@DR=Q$(9f z8QZ0M`>B#|AOJ-u8VbLY8RfjrKrv>9=kvvokjoyqj(ucuYVj_itNm{lPW9hFc}@$c zFVq(ZrM!i8i)gp|=@^{i%jbYO1?9{d9+p6?`mz}GauKkj&1$GU?)-Roh)0PJ5`Kej0;Ql%c z#U{01DznAJV~yA#q(WnL$ej&B;rN@Jk^(da=_Ki}lEBEfyr`u2?ixh?YqiPq^KJ{+ zR3-C=03O08TjX<_XHw4>Ol!Y8Ev1BgrcpddCGnSjE%PcnS7%?}r)rPRBiobF$#^*5 z;3CWvo(bqGf&wnx;DW~t7F{s1t|W(=QSi&6#HC(9_r{Fp#?vX(2zJnXfiD3gasb3| zl}-P3Z@ZW>T^+?t;X3D3ppoG zISeTruNKL)cxfc`>=p9plz?bprbKn!8MKe$lA1A?%*e}OW z3{XJGf&BW>Zg79+J8RFfaH1NMRxCb0XO1sl1MZ)h!E;W2?OCiwdL_!3M|9n0A0WQa zC*pR%{@u5B7vIZT^mvLi#x?w#p{8Bm z92~gnG=UlYygJ#j#;7whiD=KRJC=k%b(ELIhf4u zV}8zw7FkUFDK1qIulN0<;5U(Ce%ac>QK`gjgeXHadNS0=3QR=Qh&Oq@_MgBcju+)2 zxyG|$d16{pfidKh?-LCT3}`fSMaWQYuER00#DAS}vO6E|YnT_;zCNrk`SaR*7o{u%9#sRhT-7WhXL$~$~{SU5UZb*H$| z3_i3>B`R5Y($;eq^6|?4;fQUVo;yh2`& z9>}w7EBtCIuBMPPims>DjCN=3D@HfU&ZhjkL+_mGU1z|mu4z`L|E;<8WWmTuXCNg( zOqEs9z{sd{)`5#WPD82gk9%a*npnvLZ})OGWf?HK?y7_I)($|CqD;?}anvqM*}F-i zU5d&pbXeuNbm35+yVq9ZO1gE~Rncn{Ev;-o_oK7|={PajoFFO!xD4oqM!?X%QpFl% zwH4FMD3Nj@hyIJ%)yVtTpNt>kZA9#xFIK&(zdQVRxnTsT5o(}ERd;&2Mu%MKAhf@z zf$k;>^}p>BDfd7n=uOpvFZ;ItJto#1c;3bNMexV_{V-glw~dXa!-+F&KQ|=OQK9cl zk*Os3S}4wYiURqD<_D>w4pLkbE5lBrq&2w>Wj4VW*k{OOL7bgqOe}Wgg~Z|RgZ7kEeLsREV~d4JFE#|+5&a@ zMl^=HSB-p`BbxJk23cmk7v+LdM$*e8!Iyr@HJ_zYfRD)em&a z2=a)eR}8Eez17t4#V#8RehJ~4N9ch8F$xHstD z+WYxm9$ctOckseu2m$`txNDowjbA+2sJ{UMkG;5-MJUd;C(u;jeB1m>djfO=TO`dL zMM>j(Q;PD`&XAqWAkq$q)3$yZh2k?EL>3YtrdmZskUSzd3W9#@D)s&VtF%}BHAK;% zRoJ!(f>Zl4NI%{wKtev@qRdGl8KvN{(vu$LcPr5a_tp{ML7e|?2EXW=sHY0|2-|9oPf7EdlD)joe&TThK)U1celH5HF< zNnbXCVeG|KD2Vk(k_NZtlDx8*1GC)rZzGefTidmsZtD}i#82Xm+u6vOw{IsIT^EQk z-^PXo8bmw!OPN(|ik*205Od@f9+*ElR6(E1P@GfcAe-Mzx(K#EUi$I5g@kPwiv?tD zn#o}YBB6x5Zu{pXnmq|_n?0Mfy>MOAf^|mH;`ExA)h&C-`_*$gtJ25@ccXq&n@8*N z=Bp`g1s_aR9b@5sQ|<6f7SH+|*)8HjUjoTppC2kGFiao+NLTSaMZ-9W-}V^OCF1o!VI!Cd)tDHtrSS6>$^36GW}&xTk2d>AI8w~ zAxo)4OHf=IgZEnXS-7pVv7={@l0~c21+6s)$ii?(kdTHpZ#7e2lJ)&J#_y*m-0$KP zz5U`>y)f+rOcPFvl+y}p`5>RNQ=cq$ZWC>+W7o*?!!69&6ecN}`_QX7rUw%fNhxQ zJ#Xt3T3TD91%M{=Y|R!&+i#5wnDoj?MIOcN*XZgN4ukUzdke0rBpGo}*52V$|oi|6ayU0x#6un(b z++v`4f)$+`1e>dL#j^fRULgYsY-ZL3h zX96lDlyY@soA6Re1yC(o^RGcpU%WHf1hL)ve@Iof>R5|7TYVF`aTVEGabKh55j}eh z^UXseopc``PRSSkA$yDfo-ft`{HBi#j*lW@f57lC)9!=Wgv%_o7uWi+8a06pSA6g_Re;%7gZtxq z2^Ud14g}4|Xa~CWZM~+wLTn<$uj7gyI50Q2-kI;*v%m;bCifEO(mDkLVlHIqZQcWAS3`JV-;1Sbs<}&V9eg zLO>b@CGu%Tit0wAVlwn?YOm(g(MVDYpVL91F-Wi0*tY*}^NSgsN`|_d79Q}{$U_t= zwsj0l&C`=J=>=8P>tAZ?vFl@0gHTb1G>#wB}o^|6aS{ZT@9ut9;(7<6< z`R|{~E^>XiKb7=_{DU*VFwB;N0Zz%{Dksq(q)r5Q`{UVHq~?W!s=|eE4_J=~F0ie* zO%kgt67Q&2y|q1 z(i+<-s4RsND7oeEjU@Cs1~TZPd7ZP8n|PvqLsN1qKJPK$MKuv>Dz+I!G@W8Z2#cBL z54)YTYgD1dSY<(#HG@Pt`n}=EooR#xm0?NA1u4|&D|2}7j;AQp{%x%8J%5Q|y*u-A zv!>||B2h_#1bb>GeT!@gS*8yA0#eH)5YZmIYMy=_Bri{5O`nrm`##SA)YZ+#T61W`XkQV;swz z*akIm#dNE8cEF$p1P}z8`B~&hACZx->!Vr>n@9bKFW%LucPFMfce+*=6!KbA1Q`D# z?HgAnPDG`j=+pnY_MhJJmy`=O*7siJ1z=-~T|0Tg?0;eD)9&&q0&8KKvdUNFTJz)* zUSc7g_P6dHzZewHYhwQjoq1d(71gcg>PBK-&t%mkt@`9y3X(O z1{!{yM`OfO*hM>PNVA;V(NC7Hcc)ZXH?Y zdIrN`8}Q7Y2}&i!*H4U@@u-#thxxlY2kifz!w_kJh8|ebVI%O2<212|qRnHX5bx-* zsnNd+ z-(S61Gzk~$Hu${1bhMmIOelC{?@*CdzeY2GmrVa&(L7<<=6)?dn;oR)+f;3xdqqo7 zU5ue5Ey>ivf|-z*xE&bYJ+{a08lzKGtEx4prIeHOr(MA;L}3H;$Ewmp_~3TAvby^I zYU)=UC$Fq#{spZoP8LeODx3aPpR)>&ByGr`nt|TF(?;m|Lg4tiGLw=Bz2WjNimilk zj}fxi-QbD0ucml*5sreJYAn(TM0~e%kqQ3NQheM@sQEV;mb&zdM{AK!cVtsP85!{t zZkF;^r??tZyohhd zInvX$&go7ww4qr;Br$bEL;Di&<9pKp-#zQD^vUP3MVK+wpw=Len!)!>;pZDSX22LI zF}d0X%12KI|W9d$opi?}bOS2{N88>=Gr zcxC|w%vrpz+lu5*BmU+RfQ;JdAXj=atQn^Sb$4wLlZ^a1X;(y`J}UqY^>`k(-OFx zn&3z;>Epm%Ftd{;7-D0u+9a1rqK+n5#pP{#nIIXkj*p2~{Q#3Js zlV(MXl60Et+{%*QpwIVA+iieOUgh3(pb~Bl@z~T~;Y_rZe|@F>L9G&sb6a{lOlIN* zp=rB+L_$M+>(Hq3W4+@Kvko8cD`>EtEDvfg*m{Uu+{FQr0QQ;A#tAble2;uD=PgyB ztQ57CsM=VzLv$u;)0NPL0LcU~A?Rv9-P(p6&4lPx5#U)T6sA;SPUaQE**`fs;mVCQ zFf`mcg|78251Qo)UeW8h{{iAgOIy|!Tb8yHj^gU+<$}&|MsepqOk)=Fr^CMr_!_gB3#+Kgb9WE=XY1$7FO!VPe|XYmlP4gp4ZwYk3P zuskuKm(S9zd^d1Y5XQpScalThB9za@Vvb6Ztnhy{on=g1ZP$fyclY96Tm~;PxJz+& zcXxLvF2&uQQrxvjkwOc_WpFKS-+A8T`$s}ThMdfO_Py6y*Yeq@Qr|G%APO%aIIOwE zBdQiATwB#$5@kZ6@P8retphJ#P@2p2FYc&X$4b^lQ~t=#&71T|NCQlgA1fZyL9tC; zI}4HSiVWsoklUL*gveW1%{hov?a!#@w)?b-iMR_Ci7*g7x*P?2`PQ9CSw22mOsNOQ zb~OwvE6Tu@#l@z=?Xq?;=O|X3USQg^3pzMnq^eZb)i<;(7?=FS4+6 zRrf)3X!ChQW$))I$(YW@ec!Y1zkf6%u2NH5Hg=xG{5BM3YlnLQWMNb9D#1aLd&k##X~2AA0v!r?+a`fFRz={dI`R7H-$2yvq#^A z@X}Jt`=pT?sj%%Oab!f*(o;#DzsJ%l$7qhwvR9v^(#iv%Dl?A1m8|YHQ)|-98DHp; z&pt;rpwg!SEFm|+F-`m$Cb#IZP*(y+o@J6YTa-#J%6&MP@Hk;~DW>RlrEO2PFUL}) z)w`|6hQw1XV|q#jLOb7S*;!Iq%hznvteBXuVDhvKaT%c9&OgN>S)UL)izunnFCu?y zv#9Q%s`C_am*Nxz#Zy`#J8Hn$9E5WkF@CmB#3>ltv-Rndb*#Ja(`Sm^1uVm7g}YrP ztf-CqKTl1SOfl!iTn7D(zSnx8ZyW0)u4bZxg*%&~P_efHi$lsK2-kN|sG1Xs=?#s9-eTOoUxbFwya*Y2_Ftq0=H)c7z4DkGD*kvp4Y? z99){4mWAX3Xf5*Q5r{whWgtuoHs?{7Gd4h-0H3@>I(?z+1MQKDjQ#FxGB5RwyqQqr ztZWSOK-p^D{d0Bd@mY4QQEdf z_M=2JR5MlIxfj3M%)%n2nnrF7I22o4cR)WNvufuTX5~_#NH>G>)06O39cfMQ{rKyL0;&frFlQ@@%>`lpwuF-}NC@4Y(A}IAH~&4MIlydTe-v1?ubf z??`#dAGT&^OPP8iR(M83b;l`R8eHi>HY`Vt?U;fGH^n)mCe2<_tgDPEMl|Ba6VeTw zDqCAGU71ijr|okt_x;4$_Dmq*JueO-tlAi(eu!yaJ3TTvk0aXd5l>9BC(!)%&o8j; z>he!l4U~BOjN%q^#I281!lii4E%Ilw@jgjHa9e8nkp;{{C)FCK+QOKZ{^>|malQ$i zro6fWIJSfjVbO`kaw;abcjlv;b@p*;PcGM=buflBne%O@sc$~6Tyml^$`#31x#ZWu z7zP>09~SpAJPTLFI_kP+yhpg*I&Gzu+tWXvk<#HzzJLNn2kvBy-j;0_Rz|@l*BOJgVM~x7U z4H(Qy0qbxYEe$&fBi=HRa=xHkuw_pF%a40bBDCL|o1=mXsa6h7XHDJxa{w@u{qZ3g z^0OG9!vEAYuBB}KTuqY>7$NKGntDAW^ViAGzrXTP_-%<}rT&tPjsYli{d2o2!l5m> ziMPBhAX7)rNGF!v>&{lzdw=NFlgAM~Ml>9{z$+RBE)PTZ(+AFP9Uaw@TsHNVJS2}6 z>~=WT{NeCI5L-su)M>#?^nm-VR>m)GPRX5ZOO{;uevF;V0skc!PgGt&KUi4)x(wfH zf@fyes%d;29fEBmZ`?+FYDvB9b1?=qcvigLCl9IM7LDbe&4*Iy|X?b|1yc-e{IUqinWX zPoQO}@p&H&ovOTS^J0$j7xiH?K%3dHL8O9P6t=eYokVSh&(C?yH$1kJFB|wp=c%@p zAU>9&lIcK0Px|mrTEqUGeAcfm&y!-aBE2YyObyTcUs$lv7Dp>g2r6zM-19ID z!zlxcFVAv}{cOzy#R6w|U${tV$BfW-7yuGNq>mGsT_oQ93t-}mawDc_`o+|9451=? ze#@rbm;7k_z$UWFK}l;s!^a5cO6IFsd>fg?qYz6CKXlT76u=oD!lgD9KZA0@q%xKb zFZGq(iRtLbpTbSdUhd(M`Q@HJFJ3xb2Z5OePH6j*ZJrV{m&n@HJ_QDw*%k(9;yueJ z&&ffD3SbhO}rafPM(OG6igAoY391_ z^9||}I7NXe(`jsx4QeEDJuj78Hqa(T5|#*;+JmoAq#??s`{&VDpcmP6boLw&8N+Ip z`r=56{`GprC;s9a$6%;)wg@o;sU9wH6exm>_iT3SU#}%vd%27I^X4xA_YizNYjFk` zbtmE`VsUL#N;btO5cUY{+EyD7W)Ht>J9=&+)zA)MXM+pVCgdlHCBDouqv|b_d;2<1 z>w&(9UbJ}D($gbBOJlI-qKC`CWV=w(-!~R}(g+E^H!Q{-mrC?eE}dm3LlGw_&+fAF zw#S6Py}qF^C%L*#i!=tpj$Z^}tZ937Uhets@Ql)P0%o>^d7lBtjtzpa#PIw2qXSs( zcrXMGP$6FCh2BGS#oeLVYV zqffIJMgTs{d#I+w@Ic%<)hWykF!qmu-F#F`viEezb*?@p(Xel>H!#~_Gm8W9USla%BMLp}Sh|K0H)IQxOb{b5^7MO74znbjlS}P>w z0qXRU9bjwDv|j{-+BCC&43DSOfh`|?iHnr<&NWG~NJ$kBFW?*a^*Q?7N0Em~jyakM zckeCRf!0-I7!)f4mPN_T^843Ceuwa!zDk`hS@tn6Tw+DjGBkmfISy;qG;#1SmoZ7_ z_!d~@wF)dCt>nmZG@vk_sj`)+Q8>CsEAg&>o$7`?`qQ9{3Ict604Df8HS^k5T z1)m}p1YDz8HY@b6A(APuD4-!GF%$|9UteG2$ zszs#X5Q9|(N@PvZpap=)b}C@v0F;7h_j5lCU7$6Vl`{uVwp?O+=|Vg4p}x|dspogy zNW_j+88!VPw*J~0h*g(`Y7(bnG4;qs%JAfqe%0g;rmnmY+!3`MfnP`tzvoE3Va&;9 zL5;ti?Cj2h8OTi88vv1?D=sBeBl$90`0}T}$_Ynn#DY#E^F;#tUb^RgHCRqDQ~P(D z5^V+~A{t&`jzMt@mk*;+O}l&rIxe04cU;pO+rZC7o_zdhKzF}x|)Fo7u)g01kXwAa*pO;UO z;{<&0ZlneZx%MPrY#Sw-7*s6q73*hxhin~lj^$}poEc#(pGqYAhJ6^G_k;>ilg$i& z<-KnuEcTrc6-}_nUl`s6J)VLfGgw0jW?ms9s)0YgWJGKS?fieN$Nx8sKIl`Z^h06E zFz%~P`FbuzDqS^_s2C=El?Z{vCP~xzchh{kA49tn@tAdo5eKJADj<{EfBc*!RM%*M zM4TckQ=pwN7KmUzY{EXSdx0!UlHuT(sC(vZ(?NTtyw49At))CbE+&NfN6w>(hE%iK z(kW(PA3W8@I$v?rVqD5%_q7O%WRx(J5cQuWj{jERTkrH{E63C8+w=!=CM;LQzjmAy zn7T${LsusZ!dHXQvSpM?)CQlJbcgNjc75cuXGk zu;kPM7@{sQW{nB;>G%3ce_x15JO*|G?jhQgc{H)B1`4e1DIaXkdQNu!YK6|p92)WT zzmv8i6+GE~*uIF|4glpq1ZD*?Gc$FJ3{7o)V>2>%{a!`ajWDU`bn~7d#0sMARFl^R zn;>|Nr7f~myB5}~b*g$#%B08WGz1qb5(Zyg%@5r z%uyipKz@#<|F$#0p-IaQ>JN8K zLe*b8J;%(pNiKEmI^)rtkZ$_Y}dO^zuk6KH4vUNQH-_P|woBb8z`Y zVw($itb_Ty@2hH3Crt)Cgr&6UK5NUOsnuaEQ%XsEq+Ryw_~0mfJZ@76A~~zFbLKvA zXANCKU%UE~0j2RY^_5)#O9dF3+Ckqu1d|b;VbLCnwd!Z$efJ_YjPmr8dVJ(V#RRO}W^bFlyvmJ9w?SH_KPzZQB_vnkA~2SSFs%C>fe`x>i+cE9X_lJ#2 z<6LIi%(p0Ln=^TC9T9^wya^7T=;z2{U}a&|L#f)q9I2pDkkI(jmLPM=*jn=S~gNdfgeZBxp^p} zR^jI0_Tq5euf)vJmVF(OPS6$vrds~l-40s)BvQ~2wdqn}HK>PmCy$=TmmXmxo+%*q z&S-fL=t4?Yr2^?~8L=6x90*w@uW7A6Rr2Pci96#Oz*pHE-hl>B$?DnxwjDrh0LVes zo|cg(4MMX(NNeoPX5wI(;LHm(92Gh9BA3WM#Z@9Aq6_VdLnCKNdRd0&mrrc8!$;XX z$}#%LmTEL1LEXb++n(RnI5-3zmB9wY$Me~BQRq1?pc6NXYOt~FXFrk8-6Ddn(){+% zY#sI*0Qcgk&RjFYV0E>E3n6Euik1p}Zt3_M1*~Q|rs0BtPjMtwzENvXRTScAYq=q2 zgk$n&*(6_j1s<%+F^Q^IZ2$L1SKE^U?HOM^V+l(Z(^Tq@tPYU-IZWDM3;?mC+=*bd zHTOttkf&yM#Q+@-Fx)Yl8nsO$gW7_!5-S)9J0V$t2}d zI(B3$DgdJ;xNTq0!U$ty6^0M=;9k80(q|=KEO& zJAQ9z{W0a1wZ0vr=xhJ26~azgZe|@^sN4~stIT9?ELBBr<2X@o?%br3Yl+ljn4i9^ z-yxvTxMJ=cydorLGuNF|lFg&UF{Y{|uzc)0|I_#Qi&qklk}kl}clQ23g{O5i51Xhb zx_}ya)OG!j8z~7tYTjk!dGlU0Gb`)xc2)S|95S!3XUa7RELDjG$(_Y~u6F2Vg&*No z{eDPq11_#2`~DRlq1lQ>xu3+YCOtv^b$H$SUm454Uq$IpwD5t|!dfSgN;I20dq-o_ zR(z=@w?firkqMxgB|wsR3fCn=OZd9W(zPhoJ>?~wyhFbZ-4u1vsw;qzA6b1Ta*JBr zk!QAwl89k`OfA!I`L?kwf3Q)B(N7TaMLFtQJ^OFHHQIi}6(wv{7kM8z*d)rKWB5x& z_|AeRnWj;#)crCUS{ToHxm4QHnlT+%`7u*+0@_%lDx~*1Qgh*HBcGZA+*y51wyFu# z?fB(ISLMtxXu0h)Nh+B3nc4e5CVZIaI5=AtdIcO8(W|8#I(cE3qB@1f_#MK-FV1{O zP~Ik(I1SBa2uE=06ROj9Hqf|OxKMmWa9?mjd+ji-f*V`zYh{1gs46R~IUy#mWb#5~_t~2BDGu2ZvwAb&o69dMZerZ| z3E~(l#o3oo>n(=ixl)o;yksPbb)~4^iJ*ytlZ~xM&0FkCV}}zoz)fUFF@Ya@xEbb@ zqzZ6g>`QihsWg5^54wyFiUD?4H%x`sBtfUZ8N$@~*xB(ey!k4!`5&^87YHtjy-127 z4P*s9YBx3a4Ppko_xr4lUv==_-QPbpT)a`dy%=7YSz2avyq~Ut0v`U;t3-qV@4#9z zu#=T7yEn_=!h;$yh}mx>S*ZyVv}R%%b}?w>&u;0};3BiDTW*asl%G6y8+-E03KA<_ z15C_7xXt?ZTE0-t2_#rUgvoN6`%FNSK^yxk;ifWw6f|SP zv)BKYEVkb)LvckK7bnr7@@N){z9T7dt;wsssgJ>Hop;k?yy@#z94dUV!$$u+fHw8l zpm3Np8c;{igD(Q}f(~I{HZEQ$3g1@eO8Wgk1448iqW6)f1!9uvWo^57bac&e!el~l zv`Eg-I`X4ujSpy3jOB!KG1PcC`&=Uy5_C0C&hCuZDHX)YB6px(qbwk>#mL*SrOOJX zv)%m;@YBTKZ+;5ebiKDef9&n&j==Cg#PWl;!K`!+n~QR04*Q*iwGq}}Ck02?U~UfK zul>hPKbn{n`t|u$PaG-xKz?B3b9G7p-o~W3yo>0iE3};*OfY8>9#>LxrY@EY7MVIK z^3^XqY$`HkqJ;V{Ew{}g{M2On-@m;HV^G_^Ek|9hbH85*{4%>cdHh(Af8hcuV??Rg zd+Eoxx5yb%dv;234wXG6kwrlTmwICCn?13&`OB zjV!VYON&yME(&!5l%0hTbGQfa9mybza66D^%N26V+8+f{VZfbnkp_?Q_oXFNhe8uxcPt`|WPPezsr@Pmm* zn0;@D=1ZnaMPY#NY6#p`L~+g`W*|B{gRkdHKzQzXNi!N#;@_P15ZnjsuA(^ac@s2#^WS`sRZ*&=CUMZ673&)y4ZO_P}=sn%v9RKCIoScS($H$i-r zwPG*(;#g;_49)uKd}Sh~e=n~}KMzC-0Nq<94GG4jbutCCDTMsLBo+^EgifqP;3EeP zqY&l?)`xH1mHy)6yfx9!EW2&rTQdmjZIvcJlGfX@q697&;R$GIMW2*#4CYsbW&;$gfedi~V*V((68x8u(*6pq|P4j9*W&kf$wZ(IzR_)`p@zzD= zU?Nc2RHZ8}juhLr)#eSGV@umF_rH1gN#O>QPxL9pLOd%`r6uBm1m+izH!W#+7EkI3 zmLyjrPNMYFGoo+bP%A8zV2dR{dbZQW`+R3f)N*ucv>ebS`&d#bDu=s_#q096mc*S* zP0B@y7T(T72g=g5rK(fUsT~V=46Mt(8^=DvTm5}En2(n<$tGc6a#X$(2pHT%{DTrz zhTGHD`J10zXx=KopT||`Q=>a{;l2#dCM25EwV(O*&!3I`oks-_mG52(X84ncQ}?cy zGKH9Y_sS^KwE~sOhx(-!?YcK$S8lw!5{CA&EI#uUsZ0ID(_Dv%D~~H<-pYY zEFLjH31p-eP&Di*zQ2nXc+cJF=o{zbL+9>#%@(7-Y=3x5@h(K=BxUn>B<#FwKn7Oi zL=8pFnIPI*r6O6ROxBwfyZYCYu-~8E^9efdTZ#EwAvp|nO4|Jb81@JGh{iT3Mw2uC zFiVoNUq}ls&cW1LvMo@11~HQ}&q#eu91zM`29%`=>1r4zjSmBC1o8w2OGB{S&kD## zkJ&tff7=hCl$!qWM04=m2>)Z}@EW8l=}bnA6tVvZHfm~bABDvfp0MGewr}TjEl0>uq-(>wRZWM`W#CS3X6( zSGJCu*FeNsMUCvEnub&6TCq+B*42z6SyD9t!c##BZtU(1|d zlC{8v9ynKHKC7?F#UJs=oaFW}+SD~4i1S(K#_K)Yd{so9nnG0{mH&C-={oBTDrGF` z|696#1eH4JGxYW*TB%Yfy~0asZx8$(m(9QnQ&28ksK6+2J?Of7+tKE0ynNVAzJBpH zPSBY0zK7$UiAOlLCt>Suuk*-iCeln*O~*f*=AclivKwBoi>|LH@5;wmF%FKKd+gzN zv+*Ub?A`eB=O&qh?2I$tDW!sG%!aSg;NbA8v`yd9=z53H)Nuw;?D8^Uil*)!j=dI# z3ZC9)CRrMmBJdy2GAPqeq^?2t_#+h-nP@;FKn#gi+z!H~#8&cD)&tu-O|o=(?Mm8F-@mu_uyz<*%>3hQNU@yAwg` z)Kg&8F<1VBkm)AmT9snba-j4WR%!b8n9zn~s{eX{%4wp^l&$@j8a0DxMtN1W1YUgk z2N9}NP8rM(^r>43rk2%nE*x8-(G(UZQ}jaufG2E5{ppMVNUjlzzDKe))_tka%?=2v z{#x53l*&`WqpD4}3!o+Y$5)@I@@|l`IYs9;*47I1Wop-{HrG%`Rrpzo%9z0`2(^w_ z@!^9mvPOI9T9Y2a*WZft%q6bCJgC$+B~|Vb=bS{P*2~U%_ROUsmLoRFZSF?6sGTJ(o8-wCaRjEMc(93DGCf*})5*-PK+GRTTuHAOIW$ zb##hloS*qU{<(eL$_kMY3wS7n4|e2TzjLYQs!xF6NF4Z6ePHMqLazC44;K6?Sj+xH zp$(}Gi5BBI&mniXyHeP+!>s?uqNoZic&DC9yonGDH$h=KGb4*D&S?oP?{D9X+p~C{ zlxIuZKFx0IB;>1c^olm1RfGmP#)ZwaxEu8s)qFJr{}k8zB>D8w$MxbL8^3x;+7N0! zUt*4GUMqA4U5|q#Bgr3^262wh299f_4ruM=9_`U@q}=i45tpAM`;b#gPq+-c*`JOL zK0!zEuJDiU4I&`D>5&~i3C~;s@vJOB55Bnpz#{=C9RW9|ko)y}r*zG~uH$DazH`?7 z=bm%F@82C05h;AW^xxl$rj(b{K>>@YzxU_f8kzf>S1JD+mHq!4mA?!PpOR4Z(pz@= z8S1}WP?Px~m?GHOPyWaqY%<|s{J|*oj1sJ-E(RA^1R=N zogwMNeix}T?Ma)Q-RNcPV$kmJ8Zq)VFIpK)mk7ps5a}qb4CSPH;U&^G{~SopMY@$g zXVxbSN0N*V;PBEU=h54*EA?+0exK_DaS}q+N3d?d%A^a32;SM}{1%^4w5K zi6b3}M3B-Q*VJ(6&A~i|Ge$ga_G#?R6Zer4K16uEiOgKd5t@{t2Q27ll09!mXYm?} zT}r68T6~%oEBvB}6fL6~0cB^zC{VS9xfM~&7g-5iBmuR9AuJj1KEv>5BUdqQv{3Z6 zz13lhnCPtu5+;i^t2;fH&%?*@|T-FaeRd{d?d9_Q}=u&S2f>El@0OnR=TZ zalMyxcSh6FNlAps&9x<*5u7~_@!}L$gP1E!thr#pmoe=1&tE42-ENd=^omW6od%mk zS`I&ufJH?2M{tO0Rg97Ah;Mk=#l_VDI?ZhrdI$` zWi4$z(>&}~WG<0>g2HQ*G~i5H*n3cwA9{-79rF`$XArd@^kXR|Xl7 z&)`11{iF%lg8i^(&^R8cK=_CJRI&&UX}>#xG#azja~}oB{YHNX$|mgpS3aT}4N_+O z;YQzZP~4K)(ol7rdt@Q+^+F_T?x2mRlJ+Ikmk(AWYM@^QOX_R zpExKIh11srsqst8tt@>rXp@e}j@+-N2%d+r(n!-<)Z5HfX`ylNi7S0nJBZ{a5i6H z*wA}@@cfScwH$we2gT?H+jY+tRW~!GeeFNPI8eoMp{n3q4Kesh>T&~j*#~?dqL)_$ zT-VhA8$*`M(E{D-Sps!q*mpxIBRnLgKO3t#o^m2~(~YUz*urqOc_wYQ_L=E`Z2R5N z#{!u40S^VUTic!H$NtZ7ZNFH3qigtzHR`JE6PJ10t2yb5>JpGw#S$4!WqtCI$v0Gs zn%-1?=eeqHJ49$1eSk(3)xJ~pVSyX-sSF3j%Hq5yd|RuJht zcC}jmZBqwTj`h6>Lc|a0mT^UZnQFOw*3N|E^QOBk`6M|Vi=)AbcaPpZA4x(3DY zWFVG*WM25OQtpnhYrfS}$YZQLRmZVerx6=#1gcjmC7YKe0Gbl-Gr>I$0gleL&{gZZ zQ9B~Php2sCo+2LS8s4 zlS3wf)OYyd4fbvQ>$}MN-pL!MZ7$4ZtJuBQ#=i>o1M>cB7DS`>Mqs-EZ~@;){{}rf zzWh_^^Srw;4jLDFh<(3ID`4AZExZ}yzh-Lm<$YffdlRJa-5Y*6e1CR+9Q^Qx4G>%( z*Eb(OCQ%3ssl5JMd)W8xG5`D$u=uqvn?LZ15Sn7>eSPye(4fyFXVN1sJ?#DcK9K$X zuRG@QYVyOz%#708@-x+v(zW78TU?iFc^IxA>aT1A>X%6joOGrOQc!K2vua z5i|Lm`a-xB;6Rg5r_`zzo`i9_Vev3`lxT7LMpZ-N85d2i0>3$97Z8KEPQNTE(RqeJ z0^(A6`3k!YLyaxG#-4uPO{1i@@Neds*7{0%&3LB#Pme3JMYgCvdt5No{R%g`8mdlE zs1`1TRPEj#(R&*^d`4qkjeXJ+Y$dBlv*3QwNf48<3|o0Z64P1tFRlnH)_b};JOgQc{WOCN&sFOi+_jizY&b}$l)&StnFZNGV@z5T>0 zh0oJBitg2bT+^r=*H{755KkZw7 z)|A)urD_EB;p(#IUpBIIQ3_wiZI6XcXVu}gjzDpfK$&x+LhY~8btm5mC&Sj}K4n_G z?rx!tL`rp{+Sn4JaVh5{&MP4LZwGcX-vi&f;fn z)o~o_k3;r*-|MS!B8aH1(gIzDWh6Ru7wdi{EfeDU9A<(Jk%5OG5 z5Qn9RmATDbkscP16+d|coY+?ZbYTAg>{LZRSU!Z$o%$j|obo&hl8yOUp9SYL1{ zU))9QTf>YA7vY%j7i~H9H--Niv%VPPju+H?#)DsX%JQn+_q|+BrQ>{c`pQB$8{VL! zr@JHh!6yXLw-tGMc5!t`lk5txb!1bs^_{viSl09bbm#opog9#nmdnG^se`mD5MkW? z+1U7x=H)W9aAFN)C=w*0??}Pe?Q8%QWrPz*r2-66c_t5Y`}obd@>Fh7FWt;mI9M{F zZXu|))sG7xQ|sK)9}5h%%amog_`Z&xj)_m!g96Tvv1ZLY6X)@leQNpZKT0FQdogfu z{X{2ptCaR6KR~%d5_d!&v)f_3GxVSum@s*@Z(i8MHMd6?hCWlCy1rge3?Dxc;;9lA zSgaZ3JbBSStwZ|xn`R1%+xaeaOkqPnp?e*0tGF5|%Pl0a9}>gU2PE0E2IR~L4BghW z<)0;TdHhUdn|ESMUGX>z6z3Wf2*%7aIsZ)^(4z8*nKDAAbqhPDl^zk1)6#u)VBAP^ zc{M^J6m@RpFZ2K*(sbwz(+y<{F=L3j?^iXIob33IeD|iAJ3txTQ+D+{>X+6N8TUkk zrUMPcd9V1Z2=}B(9|^5r0A?gJbH#?;b3%`Nhfx|NPD_)H*D4Lx;0TkZ_vwp9rBY3i z(2GSk%WA-82tXKz1k6G%hXFdz;A zXGyr;FZ!R=0L3Rb(fj2(7{Hs+^xXFb4?=>sH?3`}|91&^IRsu*i<9X9IL8=n>wl03 zpdSKYm;1j>-2;PCPyR~4apl#2Ty*ER3TL>jh4LRg|8PZ9K0I!J*aP2hJSP|d0S6$i zTz1ul3WWqOu^ll45_cRxCWSN9ghE`=;Z$*IgLmxxP{S>%wlt=u6*UO5cCX!AC`az@ zP8;Y%%h!T@`DADtRT{^0v)SLRU6Ke%&T1dilQT*`#jHq>p|h-pZK>CF=~X%1m`$(Y zY4f6Xwq%5IlOC3tsH8!fRK(Q@Y%71VBO?B;yQ>vNz9eY#9rBhOO=^EOT9Uif_Sowv zxHrb$CT*V(l_43eqbm>ri||Y%UCKEtQ1Dk|ZgmPizmENHVBuGuejzZzH1^d@` zg}knTbsH{0#vDLDIl}|Onj7|Nwl36uM6|PCyMasx=}qtZ_1eQP@1C^H*O|?GPFbuM z`!F&USfq8Qqt5qbc+BI`PvGgcM@UJqx{q?*-AZF<4eEBcbOHPCOWrGSwGa$8J4_$h z!V3eP6UG`82qlVy(U#Rqa2~{n@7`CftZ|!}O#4T-K(;v+KIw4eq4?aIU6-uSl+BocYSx%HxXH0I_=6Ztj#(r9g1>(Vg(S z#~V!V8xGirgII+_T4OnL+a@M~I@od5@bl--vT115aJ!R8A?4-xfc*?c*`$vB8*@8R z(;SPsD~_q6l4!mO$KGO|1g*!DLJX+5zb)(&z)qGoQjFb=$F-J-oSIw|4tP(%n1Nnk5Qa@Z$Dr78)YU)!?t}h!Yuw}WrFsLr!u3g=Ni9J z!v06+O%`$TSeb47u8c}iyOm&mOUsfqPyXfh;)jEs45igxww1!JBzH(b(WcXk)UgFw zb8Cl!ZssZaUG>xy;o*odGE3Z0e5DpI4Dl&3Zy(lSqef~O5Fl%5ZI!D($%*U4_-U4h zTE*B;4+LLQv*5vMex~Y7*7kC{-sck0B&Duh7S;Vyx(7jL%@`20@g#EKJ3oFk9L*Gm zoW+JV?>T5<9gi!MHi^9nw0hkJ^0fR}EtC z8b&WAgs!I}oC`eVtoDNI%0+Af6={=o6E$UK=DQrOI5g?B_4fVmdfi22VjTi_3jn}x z1}EL%V5jpY0kAFgd?LhO)-1r-LQ@~(cJ?wYp)}Lp&A&t&^Jx!)D9RpxRMxM%yB`+} z<;9>n{z5d{-K`_UBHHDW02AAa6Mti$pt(U!xc&GSx_&?5W~q$T($_b#yxdZX;6PGm zIDq;L+qf0O?Yq&cjTv?{+2V|)0{%+PkkjjRj&f-G5_rqq%T zbBKzC2zVyfr7zTt;73de>nFjo<_YPh&v7BySfYGsB0SG*uKx4~36iG~3e+o;RtF3^N-H5H!Z6Wc?8bju#ww4kROdkt zvBDH+YK+Ml29u2wna+C|DHeIi9>7BpHk9L`r;cvQKoo!TgPTroZn}Q~cKoEE;2c2R z(OXXvJ9iN$iL=y7R~$F5Dfvgj!EA%d3(rIqLmfFFWc6!SXprYH(%S8xpP}gcjc9Tq z&^x$uBX;5LyS5e-HTU{=j_OBC^3kipU-OW)29;Py)k1=J3%2ki0(4Tr7-{K*Pp zI`bmETzLaZ^c(|bRsz~LgG2l;0;$;jj}#u;jh{V5pFJCCesBRvc-ObnxwpLkekt|< zyZO%9fB*mS7V8SAkdg*;Un5hg=1YYm!q1TI36lO8|EfMI($I#)=xM$9Z(*;!$ZKm+ z3Rx`IOw)Ci1SoT0$KM|gK*hufC%Ttgbr4!o^JZ!Fba-F25_{Yty?88l87-2wSz?sf zF9eq2v4M5#k|xa(2%*K{@oiYF4vL7T&hhU~l+MaLJ>GN34s})}jDBPc+_!%aq&MKs z(c6TR%)O$YM{K2+PjG;n%@jjRoKfR&XDh^YxvB5l^jV`1Jfu8Y9#~E-^IujLVwu?IchC_gZoGSZ;;z>O3nj11ENUZ~=Kkr0F|lc_YRYd!bbk_Vde}=3nVJIzUBc z^8me$<}X3qnn;E4RB3 zps4Zsg!P7IA!lJJp%;q0t0)+|c4NDop7pv$x??C`sLcW$^Nl(bI4Q#B$pqc96BE%h z1r3uv7>(x%P69l6BJ^m*N_guz!=gMifZmmOJ4_}L1S9lOmn4C+y{w$t?2PdSCT#>5 z1T9#GrLa4BC#dh`4tyqjgbSDso@*diSQsLH8RtC3k)035>7f3%l! z>cWGzRYRw)BLd*%Ti^s_`xt%y(@RHiRf=j;jT$98*6+T#Y0W&kLnbQeO6OygyA@bw zfT%AO^lXYO(2oTC6XMm` z`)crK!%Vo~XC|^-rAq%|<=R>C<&L==4wY1Vy+T&3nx-qbd%bF|5}3o$%z0MU-Eipe zg0IJerE?%4mfwGSrmxHyzF&=zg4_>~v0$pr^jzh&R!qp*1GZ5G-1d-Egk7U1Ev5if zp<_KDV)%pXtSvrL)c0nS~528dF6Dsw2#Y-i5%roVZ7*@IO=ZDxhbVsc9U$g~k6%-T^Xav_O zZ1Y?IN%ueQ_k4`gxOZ~&Fm{ca4q?buNwEG`{hs%?`^B@{&PM{{g!wU5ZTQ{!|D36% zy^LR5H(HeB<@z`8RYHKWSC6@`Y#r@=zo~l*fL@V$USHAu(==3q^z(L~M5!S*QYYxuifj1IZbB?$~Hc#`QHWkcWxcEpDflBRjbGxip zc*wL5(Gi%jX8b~{^zz~|ohA-R1KT?kC4K+N;YwjoiO0scZ%_IY5B=0wUe)aL^qsvI zjUXW-;jC#`-;7z}A2#|~@fGMxL$?!~PsS@tm5)f02#G}{jEwOJ;=Ah{b<2IS>_yBd z&f|GfLF^uxI?M?-O5_qL#SJIKj?8gogmLH%pqZfcLw3gUm>ncTA@-eG3mcf2PGH5u zx>%TOsb)a}2jmApv$CyhwyP3Tmw#8S-fwT}@($1tB!TWuTe`l(Em*V!cPTY8DNL}r z5eIG}!Q3a)x8o~I<0tx!J8rSz;5T-FV)3lfKYQ_Z=NzPXL5hapaB)h8h2_w$*Yl*+ z_!4vRXKl?IMB=*ha0M&2`CA8)f*DK{()d;rEL8vr80HV;4u1_a0ua8Jft%0kvem#~ zFABI|=92n*ul_MXftU?j#R|-ph$lB3=d9!dxnSB z{O0Rwa!FgFcDw zb?RC5R9b}X-tbaJ>eP8f-e3-*=9YzVq|yAwN3;#0C(EehAR=orZMJ-fvb~53HoI`T zN~M&XqV5V%J*nO(qnjxuza2S+ldM_wvAqGv2qV>tu+Q570xNWbn5W3aOSsqo!sd2` z$xqr%CHzX{n9YB5g~O;umrQ?M5MQR&-qVBMUd2YV112}E1u3FOs&WU}daYZi8{Iyv z@D2qh!Mcp=wyX`1UWI9>)3xpy$5o_lsZ!Iz7VlD7sw&arq2(GQBQFf|*&A+WG@Fwp z$@+>@t_)nkn_^7mG=!z&;KHo_d2hdiECh&|D1vE8bd^su2?v=ffkqOU&}=i!_!l+BBl!wXu$g+Jt|_Wrr5xG>GrhbW zU%W^hb>$M>GLfL}*wir!3(JqTRox~%53~x6)b$a-1YP=T>ablOASNc&IfsPU769(i z=wu3Wy{EGC-znyKJ#T)gJfkEtZ$2X)Tvq0RupEjEqM^7F93N5G9F4AqjKvsud(dMg; z&vl2)xdI8x^X?1LinP40I-m&@ZxJS;IK%3{^?t|ZsP1q%pjE7|?Oz`dcpCbN5xz{%&Ac()e>mFbhq)%0D;CF9DPX?4E?`KRtJPx4eOa z=;LV5>cA{BF1-|`>*Sk>Sp=Fz=8+2PzZv9TNS5pHaSAQsLU1(Xx5bfh7|;kv<7x>S z+mCOd(M-i`HWV1ckT{=n@I>jq_(+xDSrvC)Se3W}gzzhmDcU((?=|!^%F6|EpwX2U zIV6~kb*a7h*YPxtPh+X%rw<&G$R_B3lMOsUw8KcPpf8$I&s>JOlR{9oq*LrVJqqOr zB2o#wff!}btr87vdgJ>l_j6+4%O%))e96tPz%JLw{$yyw>Kdt9EL&@3LdB46&+JlP z7Hs6;QtT5{KNRAwy5a}@dT?)I`%(U>ePWYqGoynQYm0>EgX#+Jx-!FIt!(2Q9(;t- z&1)D`yF=;=N&ID1GJ+OkZ^LlA-AR12ex8-bs)CdnN}_7MVeI44bo0mK@c zs5WV^r%v@n0)8oKKw!7glkxlS3hGO=B%pKi259cF4Orw4W+}X@F1+T{KWJZbOr_lh zTrdyW{k1D60PFUv{#V4Hptl$J|8+go)a+KRBTMPeZWgJhgG={>;lq=Xp(5T25>I~D9EQZ%Z^-yY>QRglXawHdYP}W0a zD{|G@eN+P*?x@wxuzk#3H_2?Wb-Y3YbEA4ln*JR=mbjkxczx}*7Sc@{`e}m{Dlq}W zG#1*;d*V9{a#e!#$t{{Ubf zf{v?a7!%oy>Qc=eHR=*2w3IzshFboSJB%~mA>3kL#U67CEnN;=5t0kWGBZ|eIdXwI z$2zmJ^gUnk#ubJ_MeI*_qoBGAjxpWC5n!nqe`PV$Hc@_c5uZ|l1KlWcPip8UbhH8o{40eWK<>({) zA4_K)6m=hNaX`AeyTPTGF6nMiI;0k9Y3c6nZV&`%Q97hyNdf5)7NjMX=KkJ$?|(4E z3^NS-e4jYyb5tV8oQV=UE|E~^nWYm4T0Qb|#ja$t*J#m^1|;7WaW;;wx=PVed;Ma6 znaKSXR)|48CH!3FINSF|R$a_PHl_4I9zRGnM2JL%I-|}0yx*^^oBc0Xt4sRcgw zM*WI{(xnbt3WC%1tGGJfLaiMk5@#CYD+crW@uv{Hih80}FFsFdY^pyb~ItmxIO zJGyC~f{HVPl3m)>@`j{%!MJ7*qC`V{ZC`=rP{cYm!m?(ya@~a?qGJBAnU;p-$m{n8 z6(4Pqi2Eb5(U(a4toM0(q@oZ0oxm;upN+4BySuCtALv=@+!wr1*lTNL|D-j4<%lb* z@hxjpG?8OQsanjbwd1EDsHRvnOk=JDy>?Bcz>J@2**Q~a6vFcO#;Ml2cqO)upCX&# z8{;iHTW??|(*PWKOsL!Qpxm1z`bhql!M3BS16=a~j8k&bm* zXy{_P5u&~jF*}33N3Wr{db+z=hnz+bb-vI*3xVc~*lNRQPV7{EdzFID9dUJ4V#F z&M^du8-nZmwPz3zc%Re>b|#C(Pz!m-;EY(HDB1HzABNal|Z&vCZ|M*HGWZW~GJEEZbyz^||I&n+8FFUDR-uqReizmCjkAYWZ_Gafr1%aLE9T1 zTFd?~J-x1<_Z7VIrRWV1>R5O=RO^~T%@|NJbEkfbg;u%pYS2hZQUa6_F{D)|+^-$v z?_Lv#1!!^sNg8=#%B*#c69?W?@kbVGOs!k)o!)Jo%<=~@bZ`dWt&Qqy6o><|bBo;M z;nRtjWntyl*HwHszkXX5!0Hs(R1orZ#AG|oXM_}guJz4}MklFINd-MKYn<~5R%bGz zbEKp~dEU>u*0U%-%Oj{C?|7j94jR5`iRiY;+Pgwi^AroL!AORAx6t zhET_#5jDu}($`(Z^WV7knFH_PJ@reEYCSDT??eZkqy4AONH2ag zka`)wdfW{r2ERz(1m8P8&eAnnuGtI?O>wS5RAUhP+Ynef@}EWNgF< zsfu%aSc(yj6sh(=yK+#1UhKLiSv+!enyP7(#qbvWoOAo%*@L o!;%kimdYPHoJSP$*bs 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�hBRpJbJ$=)nHGmm6 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"e8$AT`~>aO4=637ukK2eYG*As#*eC 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

    #z9-p3qcZk7mJK>t|U|5%`5%gz5XNLw2kNd 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 Tuple[List[QAData], Response]: + if infomation_getter: + infomation = infomation_getter.extract_infomation(images) + else: + infomation = None + response = qa_generator.generate(images, test=test, infomation=infomation) + qa_data = qa_generator.format_response(response) + return qa_data, response + + +def get_live_bench_data(driver, website: Website, screen_shoter: ScreenShoter, qa_generator: QAGenerator, checker: QAGenerator, infomation_getter: InfomationExtractor, test=False, scorer=None, score_threshold = 5) -> Tuple[List[LiveBenchData], Response]: + images = screen_shoter.capture(driver, website) + qa_data, logs = get_qa_data(images, qa_generator, test=test, infomation_getter=infomation_getter) + data = [] + for qa in qa_data: + item = LiveBenchData(screen=images, question=qa.question, answer=qa.answer, subtask=qa.subtask, criteria=qa.criteria, data_generator=qa_generator.get_name(), checker=checker, scorer=scorer) + if score_threshold and (not item.score or item.score < score_threshold): + continue + data.append(item) + return data, logs + + +class LiveBench(object): + def __init__(self, path: str = "lmms-lab/LiveBench", *, name="auto", split="test", cache_dir=None, remote_path=None, trust_remote_code=True, force_clear=False, **kwargs): + self.path = path + if name == "auto": + name = datetime.now().strftime("%Y-%m") + self.name = name + self.split = split + self.cache_dir = cache_dir + self.dataset_kwargs = kwargs + if remote_path is None: + self.remote_path = path + if force_clear: + self.clear() + else: + try: + self.hf_data = load_dataset(self.path, name=self.name, split=split, cache_dir=cache_dir, trust_remote_code=trust_remote_code, **kwargs) + except Exception as e: + logger.error(f"Error loading dataset: {e}") + self.clear() + + def clear(self): + self.hf_data = Dataset.from_dict( + {"id": [], "images": [], "website": [], "question": [], "answer": [], "criteria": [], "subtask": [], "data_generator": [], "checker": [], "date_time": [], "screen_shoter": [], "screen_size": [], "score": [], "reason": [], "scorer_name": []}, + features=LiveBenchData.features, + ) + + def add(self, data: LiveBenchData, id: int = None): + if id is None: + id = len(self.hf_data) + organized_data = data.to_hf_dict() + organized_data["id"] = id + self.hf_data = self.hf_data.add_item(organized_data) + + def capture(self, websites: List[Website] = None, *, screen_shoter="single_screen", qa_generator=None, checker=None, driver=None, scorer=None, test=False, driver_kwargs={}, shoter_kwargs={}, generator_kwargs={}, log_folder="./logs"): + can_quit_driver = False + if driver is None and screen_shoter != "human": + driver = load_driver(**driver_kwargs) + can_quit_driver = True + screen_shoter = get_shoter(screen_shoter, **shoter_kwargs) + if qa_generator is not None: + qa_generator = get_generator(qa_generator, **generator_kwargs) + else: + qa_generator = get_random_generator(**generator_kwargs) + if checker is None: + checker = get_random_generator(**generator_kwargs) + else: + checker = get_generator(checker, **generator_kwargs) + if scorer is not None and isinstance(scorer, str): + scorer = get_score_getter(scorer) + elif scorer is None: + scorer = get_random_score_getter() + logs = [] + infomation_getter = InfomationExtractor() + for website in tqdm(websites, desc="Capturing websites"): + try: + data, log = get_live_bench_data(driver, website, screen_shoter, qa_generator, checker, test=test, scorer=scorer, infomation_getter=infomation_getter) + logs.append(log.to_dict()) + for d in data: + self.add(d) + except Exception as e: + logger.error(f"Error capturing website: {e}") + logger.error(f"Website: {website.get_info()}") + logs.append( + { + "success": False, + "content": f"Error capturing website: {e}", + "full_log": { + "website": website.get_info(), + "error": str(e), + }, + } + ) + continue + if not os.path.exists(log_folder): + os.makedirs(log_folder) + date_time = datetime.now().strftime("%Y-%m-%d-%H-%M-%S") + log_file = os.path.join(log_folder, f"{date_time}.json") + full_log = { + "info": { + "date_time": date_time, + "screen_shoter": screen_shoter.get_name(), + "qa_generator": qa_generator.get_name(), + "checker": checker.get_name(), + "scorer": scorer.get_name(), + }, + "websites": [w.get_info() for w in websites], + "logs": logs, + } + with open(log_file, "w") as f: + json.dump(full_log, f, indent=4) + logger.info(f"Logs saved to {os.path.abspath(log_file)}") + if can_quit_driver: + driver.quit() + + def upload(self, **kwargs): + self.hf_data.push_to_hub(self.remote_path, config_name=self.name, split=self.split, **kwargs) + + def save(self, path: str): + self.hf_data.save_to_disk(path) + logger.info(f"Data saved to {os.path.abspath(path)}") diff --git a/tools/live_bench/live_bench/data_generator/live_bench_data.py b/tools/live_bench/live_bench/data_generator/live_bench_data.py new file mode 100644 index 00000000..65c83970 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/live_bench_data.py @@ -0,0 +1,116 @@ +from live_bench.screen_shoter.screen import ScreenImage +from live_bench.data_generator.utils.extract_infomation import ImageInfomation +from live_bench.data_generator.qa_generator import QAGenerator +import datasets + + +class LiveBenchData(object): + SUBTASKS = ("Basic Understanding", "Contextual Analysis", "Deeper Implications", "Broader Implications", "Further Insights") + + features = datasets.Features( + { + "id": datasets.Value("int32"), + "images": datasets.Sequence(datasets.Image()), + "website": datasets.Value("string"), + "question": datasets.Value("string"), + "answer": datasets.Value("string"), + "criteria": datasets.Value("string"), + "subtask": datasets.Value("string"), + "data_generator": datasets.Value("string"), + "checker": datasets.Value("string"), + "date_time": datasets.Value("string"), + "screen_shoter": datasets.Value("string"), + "screen_size": datasets.Value("string"), + "score": datasets.Value("int32"), + "reason": datasets.Value("string"), + "scorer_name": datasets.Value("string"), + } + ) + + def __init__( + self, *, screen: ScreenImage, question: str, answer: str, criteria: str, subtask: str, data_generator: str, infomation: ImageInfomation = None, score: int = None, reason: str = None, checker: QAGenerator = None, scorer_name=None, scorer=None + ): + self.screen = screen + self.question = question + self.answer = answer + self.criteria = criteria + self.subtask = subtask + self.data_generator = data_generator + self.infomation = infomation + self.checker = None + if checker: + response = checker.check(screen, question, answer, criteria, subtask, infomation=infomation) + if response.success: + formatted_response = checker.format_checked_response(response) + if formatted_response.question and formatted_response.answer and formatted_response.criteria: + self.question = formatted_response.question + self.answer = formatted_response.answer + self.criteria = formatted_response.criteria + if formatted_response.subtask: + self.subtask = formatted_response.subtask + else: + self.subtask = subtask + self.checker = checker.get_name() + if self.subtask: + for sub in LiveBenchData.SUBTASKS: + if sub.lower() in self.subtask.lower(): + self.subtask = sub + break + else: + self.subtask = "Further Insights" + else: + self.subtask = "Not Specified" + if score is not None: + self.score = score + self.reason = reason + self.scorer_name = scorer_name + else: + score = scorer.get_score(question, answer, screen.images) + self.score = score.score + self.reason = score.reason + self.scorer_name = scorer.get_name() + + def to_dict(self): + images = self.screen.images + website = self.screen.website.get_info() + question = self.question + answer = self.answer + subtask = self.subtask + data_generator = self.data_generator + date_time = self.screen.capture_datetime + screen_shoter = self.screen.shoter + screen_size = self.screen.screen_size + criteria = self.criteria + return { + "images": images, + "website": website, + "question": question, + "answer": answer, + "criteria": criteria, + "subtask": subtask, + "data_generator": data_generator, + "checker": self.checker, + "date_time": date_time, + "screen_shoter": screen_shoter, + "screen_size": screen_size, + "score": self.score, + "reason": self.reason, + "scorer_name": self.scorer_name, + } + + def to_hf_dict(self): + return self.features.encode_example(self.to_dict()) + + def to_output_dict(self): + return { + "screen": self.screen.to_output_dict(), + "question": self.question, + "answer": self.answer, + "criteria": self.criteria, + "subtask": self.subtask, + "data_generator": self.data_generator, + "checker": self.checker, + "score": self.score, + "reason": self.reason, + "scorer_name": self.scorer_name, + } diff --git a/tools/live_bench/live_bench/data_generator/prompt.md b/tools/live_bench/live_bench/data_generator/prompt.md new file mode 100644 index 00000000..10835d73 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/prompt.md @@ -0,0 +1,17 @@ +I would like you to act as a quizmaster who designs questions based on a provided image that would challenge adults to think critically. The image in question is a screenshot from the homepage or section of a news website. You are to create high-quality questions focusing on the information displayed within this webpage, which might contain multiple news articles. Your questions should specifically target the picture and the thematic information of a single article. Your question should be answerable, and checkable. Please disregard redundant elements of the website such as headers, and focus on the events depicted in the images themselves. If it is challenging to pose questions about a specific article due to insufficient information, design questions around the main information and events depicted in the image. + +A well-crafted question about an event should allow respondents to gain deeper insights by observing and analyzing the event, paying attention to the following aspects: + +- Basic Understanding: Questions that require direct observation or recall of the information presented in the image. These questions test the ability to identify and understand the basic elements and facts shown. +- Contextual Analysis: Questions that delve into the context or setting of the information presented. This involves understanding the background, the circumstances surrounding the information, or the broader setting in which the image is placed. +- Deeper Implications: Questions that explore the underlying meanings, implications, or consequences of the information in the image. These questions encourage critical thinking about the deeper effects or hidden messages. +- Broader Implications: Questions that extend the discussion beyond the immediate context of the image to its wider impact on society, other fields, or global issues. +- Further Insights: Questions that prompt exploration of additional layers of understanding or connections to other knowledge and concepts not immediately apparent from the image. + +Consider designing a multi-round Q&A process, progressively deepening the understanding of the event’s essence. Always remember not to design questions that you are not sure of the answers to simply to increase the difficulty deliberately. + +Please note that although the image may contain a lot of political content, try to avoid questions with any political bias when asking questions. Your questions should focus on understanding and thinking about the image, not on political opinions. + +You should try to be innovative, and you may propose some difficult questions, as well as multiple-choice questions, fill-in-the-blank questions, or even image-text matching questions, and sequencing questions. Within your capabilities, try to make the questions more challenging. + +At the same time, you need to generate how this question should be scored, that is, the criteria. Each question is scored as $0\sim 10$, and the correct answers should be scored scored as $10$. Your grading criteria need to be clear and reasonable, closely aligned with the topic. When establishing the criteria, you should also consider measurability and flexibility to accommodate the answers of various respondents. diff --git a/tools/live_bench/live_bench/data_generator/qa_generator.py b/tools/live_bench/live_bench/data_generator/qa_generator.py new file mode 100644 index 00000000..2ae893ab --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/qa_generator.py @@ -0,0 +1,379 @@ +import io +import re +import os +import openai +import base64 +import json +import random +import logging +import pathlib +import textwrap +import google.generativeai as genai +from time import sleep +from PIL import Image +from typing import List +from abc import ABC, abstractmethod +from live_bench.data_generator.response import Response +from live_bench.screen_shoter import ScreenImage +from live_bench.data_generator.utils.gpt4v import format_gpt4v_images, gpt4v_generate_response +from live_bench.data_generator.utils.gemini import gemini_generate_response +from live_bench.data_generator.utils.extract_infomation import InfomationExtractor, ImageInfomation + +logger = logging.getLogger("lmms-eval") + +SUBTASKS = {"Basic Understanding", "Contextual Analysis", "Deeper Implications", "Broader Implications", "Further Insights"} + + +class QAData(object): + def __init__(self, question: str = None, answer: str = None, criteria: str = None, subtask: str = None): + self.question = question + self.answer = answer + self.criteria = criteria + self.subtask = subtask + + def parse_subtask(subtask: str) -> str: + subtask = subtask.strip().lower() + for valid_subtask in SUBTASKS: + if valid_subtask.lower() in subtask.lower(): + return valid_subtask + return "Unknown Subtask" + + def set_subtask(self, subtask: str): + """ + Set the subtask for the QAData instance after parsing it. + + Args: + subtask (str): The subtask string to be set. + """ + self.subtask = self.parse_subtask(subtask) + + def to_dict(self): + return {"question": self.question, "answer": self.answer} + + +class QAGenerator(ABC): + def __init__(self, prompt_file: str = os.path.join(os.path.dirname(__file__), "prompt.md")): + self.prompt_file = prompt_file + self.prompt = self._load_prompt() + + def _load_prompt(self): + with open(self.prompt_file, "r") as f: + return f.read() + + def __call__(self, images: ScreenImage, *args, **kwargs): + return self.generate(images, *args, **kwargs) + + def generate(self, images: ScreenImage, *, test=False, infomation=None, **kwargs) -> Response: + if test: + return Response(success=True, content="This is a test response.", full_log={}) + return self._generate(images, infomation=infomation, test=test, **kwargs) + + def check(self, images: ScreenImage, question, answer, criteria, subtask, *, infomation=None, test=False, **kwargs) -> Response: + if test: + return Response(success=True, content="This is a test response.", full_log={}) + return self._check(images, question, answer, criteria, subtask, infomation=infomation, **kwargs) + + @abstractmethod + def _generate(self, images: ScreenImage, **kwargs) -> Response: + raise NotImplementedError("_generate not implemented") + + @abstractmethod + def _check(self, images: ScreenImage, question, answer, criteria, subtask, **kwargs) -> Response: + raise NotImplementedError("_check not implemented") + + def format_response(self, response: Response) -> QAData: + if response.success: + qa_data = self._format_response(response) + if qa_data is None: + return [] + else: + return qa_data + else: + return [] + + @abstractmethod + def _format_response(self, response: Response) -> str: + raise NotImplementedError("format_response not implemented") + + @abstractmethod + def format_checked_response(self, response: Response) -> QAData: + raise NotImplementedError("format_checked_response not implemented") + + def get_name(self) -> str: + raise NotImplementedError("get_name not implemented") + + +class GeneratorRegistry: + def __init__(self): + self.generators = {} + + def register_generator(self, name): + def decorator(cls): + self.generators[name] = cls + cls.get_name = lambda self: name + return cls + + return decorator + + def get_generator(self, name) -> QAGenerator: + return self.generators[name] + + def get_random_generator(self) -> QAGenerator: + return random.choice(list(self.generators.values())) + + +generator_registry = GeneratorRegistry() + + +def register_generator(name): + return generator_registry.register_generator(name) + + +def get_generator(name, *args, **kwargs) -> QAGenerator: + return generator_registry.get_generator(name)(*args, **kwargs) + + +def get_random_generator(*args, **kwargs) -> QAGenerator: + return generator_registry.get_random_generator()(*args, **kwargs) + + +@register_generator("gpt4v") +class GPT4Generator(QAGenerator): + def __init__( + self, + prompt_file: str = os.path.join(os.path.dirname(__file__), "prompt.md"), + model="gpt-4-turbo", + example_path=os.path.join(os.path.dirname(__file__), "example"), + check_prompt=os.path.join(os.path.dirname(__file__), "check_prompt.md"), + ): + super().__init__(prompt_file) + API_KEY = os.getenv("OPENAI_API_KEY") + if not API_KEY: + raise ValueError("OPENAI_API_KEY environment variable not set.") + self.api_key = API_KEY + self.client = openai.OpenAI(api_key=self.api_key) + self.model = model + if os.path.exists(example_path): + self.example_path = example_path + else: + self.example_path = None + if os.path.exists(check_prompt): + with open(check_prompt, "r") as f: + self.check_prompt = f.read() + else: + self.check_prompt = check_prompt + + def format_messages(self, images: List[Image.Image], example_image: Image.Image, example_output: str, infomation: ImageInfomation): + example = [ + { + "type": "text", + "text": "Here are few examples about the task and the expected output format. You can take these as examples to generate your own questions.", + }, + format_gpt4v_images(example_image), + { + "type": "text", + "text": example_output, + }, + ] + content = example + [format_gpt4v_images(image) for image in images] + if infomation: + content.append({"type": "text", "text": str(infomation)}) + content.append( + { + "type": "text", + "text": "Please generate high-quality questions focusing on the information displayed within this webpage. Your response should be in the format of the examples provided above and in JSON format.", + }, + ) + messages = [ + { + "role": "system", + "content": self.prompt, + }, + { + "role": "user", + "content": content, + }, + ] + return messages + + def _generate(self, images: ScreenImage, *, max_tokens=4096, max_try_times=5, infomation=None, **kwargs): + if self.example_path: + example_image_path = os.path.join(self.example_path, "example_website.png") + example_output_path = os.path.join(self.example_path, "example_output.json") + example_image = Image.open(example_image_path) + with open(example_output_path, "r") as f: + example_output = f.read() + + messages = self.format_messages(images.images, example_image, example_output, infomation) + + return gpt4v_generate_response(client=self.client, model=self.model, messages=messages, max_tokens=max_tokens, max_try_times=max_try_times, json_format=True, **kwargs) + + def get_check_prompt(self, question: str, answer: str, criteria, subtask, images: List[Image.Image], infomation: ImageInfomation = None): + messages = [ + { + "role": "system", + "content": self.check_prompt, + } + ] + content = [] + for img in images: + content.append(format_gpt4v_images(img)) + content.append( + { + "type": "text", + "text": f"Question: {question}\nQuestioner's Answer: {answer}\nCriteria: {criteria}\nSubtask: {subtask}", + }, + ) + if infomation: + content.append( + { + "type": "text", + "text": str(infomation), + }, + ) + content.append( + { + "type": "text", + "text": "Please rephrase or rewrite the high-quality question focusing on the information displayed within this webpage. Your response should be in the format of the examples provided above and in JSON format.", + }, + ) + messages.append( + { + "role": "user", + "content": content, + } + ) + return messages + + def _check(self, images: ScreenImage, question, answer, criteria, subtask, *, max_tokens=4096, max_try_times=5, **kwargs): + messages = self.get_check_prompt(question, answer, criteria, subtask, images.images) + return gpt4v_generate_response(client=self.client, model=self.model, messages=messages, max_tokens=max_tokens, max_try_times=max_try_times, json_format=True, **kwargs) + + def format_checked_response(self, response: Response): + data = json.loads(response.content) + question = data.get("question", None) + answer = data.get("answer", None) + criteria = data.get("criteria", None) + subtask = data.get("subtask", None) + return QAData(question=question, answer=answer, criteria=criteria, subtask=subtask) + + def _format_response(self, response: Response) -> List[QAData]: + try: + qa_data = [] + content = json.loads(response.content) + for subtask, messages in content.items(): + subtask = subtask.lower() + for message in messages: + message_lower = {k.lower(): v for k, v in message.items()} + try: + question = message_lower["question"] + answer = message_lower["answer"] + criteria = message_lower["criteria"] + qa_data.append(QAData(question=question, answer=answer, criteria=criteria, subtask=subtask)) + except KeyError as e: + logger.error(f"Failed to parse response: {message}") + logger.error(f"Error: {e}") + return qa_data + except Exception as e: + logger.error(f"Failed to format response: {e}") + return [] + + +@register_generator("gemini") +class GeminiGenerator(QAGenerator): + def __init__( + self, + prompt_file: str = os.path.join(os.path.dirname(__file__), "prompt.md"), + model="gemini-1.5-pro-latest", + example_path=os.path.join(os.path.dirname(__file__), "example"), + check_prompt=os.path.join(os.path.dirname(__file__), "check_prompt.md"), + ): + super().__init__(prompt_file) + GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY") + if not GOOGLE_API_KEY: + raise ValueError("GOOGLE_API_KEY environment variable not set.") + genai.configure(api_key=GOOGLE_API_KEY) + + self.api_key = GOOGLE_API_KEY + self.model = model + self.client = genai.GenerativeModel(model) + if os.path.exists(example_path): + self.example_path = example_path + else: + self.example_path = None + if os.path.exists(check_prompt): + with open(check_prompt, "r") as f: + self.check_prompt = f.read() + else: + self.check_prompt = check_prompt + + def format_messages(self, images: List[Image.Image], example_image: Image.Image, example_output: str, infomation: ImageInfomation = None): + content = [self.prompt, "\n", "Example Image:", example_image, "\n", "Example Output:", example_output] + content.extend(images) + content.append(str(infomation)) + content.append("Please generate high-quality questions focusing on the information displayed within this webpage. Your response should be in the format of the examples provided above and in JSON format.") + return content + + def _generate(self, images: ScreenImage, *, max_tokens=4096, max_try_times=5, infomation: ImageInfomation = None, **kwargs): + if self.example_path: + example_image_path = os.path.join(self.example_path, "example_website.png") + example_output_path = os.path.join(self.example_path, "example_output.json") + example_image = Image.open(example_image_path) + with open(example_output_path, "r") as f: + example_output = f.read() + + messages = self.format_messages(images.images, example_image, example_output, infomation) + + return gemini_generate_response(self.client, messages, max_tokens, max_try_times, **kwargs) + + def get_check_prompt(self, question: str, answer: str, criteria, subtask, images: List[Image.Image], infomation: ImageInfomation = None): + content = [self.check_prompt] + images + content.append(f"Question: {question}\nQuestioner's Answer: {answer}\nCriteria: {criteria}, Subtask: {subtask}") + content.append("Your response should be strictly in the below format:\n\nQuestion: \nAnswer: \nCriteria: \nSubtask: ") + if infomation: + content.append(str(infomation)) + return content + + def _check(self, images: ScreenImage, question, answer, criteria, subtask, *, max_tokens=4096, max_try_times=5, infomation: ImageInfomation = None, **kwargs): + messages = self.get_check_prompt(question, answer, criteria, subtask, images.images, infomation) + return gemini_generate_response(self.client, messages, max_tokens, max_try_times, **kwargs) + + def format_checked_response(self, response: Response): + # Extract the question, answer, and subtask from the normalized content + question_match = re.search(r"question:\s*(.*?)\nAnswer:", response.content, re.IGNORECASE | re.DOTALL) + answer_match = re.search(r"answer:\s*(.*?)\nCriteria", response.content, re.IGNORECASE | re.DOTALL) + criteria_match = re.search(r"criteria:\s*(.*?)\n(Subtask:|$)", response.content, re.IGNORECASE | re.DOTALL) + subtask_match = re.search(r"subtask:\s*(.*)", response.content, re.IGNORECASE) + + question = answer = subtask = None + + if question_match: + # Extract the matched groups + question = question_match.group(1).strip() + if answer_match: + answer = answer_match.group(1).strip() + if criteria_match: + criteria = criteria_match.group(1).strip() + if subtask_match: + subtask = subtask_match.group(1).strip() + + return QAData(question=question, answer=answer, criteria=criteria, subtask=subtask) + + def _format_response(self, response: Response) -> List[QAData]: + try: + qa_data = [] + content = json.loads(response.content) + for subtask, message in content.items(): + subtask = subtask.lower() + message_lower = {k.lower(): v for k, v in message.items()} + try: + question = message_lower["question"] + answer = message_lower["answer"] + qa_data.append(QAData(question=question, answer=answer, subtask=subtask)) + except KeyError as e: + logger.error(f"Failed to parse response: {message}") + logger.error(f"Error: {e}") + return qa_data + except Exception as e: + logger.error(f"Failed to format response: {e}") + return [] diff --git a/tools/live_bench/live_bench/data_generator/response.py b/tools/live_bench/live_bench/data_generator/response.py new file mode 100644 index 00000000..9eed882b --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/response.py @@ -0,0 +1,12 @@ +class Response(object): + def __init__(self, success: bool, content: str, full_log: dict): + self.success = success + self.content = content + self.full_log = full_log + + def to_dict(self): + return { + "success": self.success, + "content": self.content, + "full_log": self.full_log, + } diff --git a/tools/live_bench/live_bench/data_generator/score_getter.py b/tools/live_bench/live_bench/data_generator/score_getter.py new file mode 100644 index 00000000..89553a08 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/score_getter.py @@ -0,0 +1,157 @@ +import os +import json +import random +import openai +import anthropic +from abc import ABC, abstractmethod +from typing import List +from PIL import Image +from live_bench.screen_shoter import ScreenImage +from live_bench.data_generator.qa_generator import Response +from live_bench.data_generator.utils.gpt4v import format_gpt4v_images, gpt4v_generate_response +from live_bench.data_generator.utils.claude import format_claude_images, claude_generate_response + + +class Score(object): + def __init__(self, score: int, reason: str): + self.score = score + self.reason = reason + + +class ScoreGetter(ABC): + def get_name(self): + return self.name + + @abstractmethod + def get_score(self, question: str, answer: str, images: ScreenImage): + raise NotImplementedError("get_score not implemented") + + def __call__(self, question: str, answer: str, images: ScreenImage, **kwargs): + return self.get_score(question, answer, images, **kwargs) + + +class ScoreGetterRegistry: + def __init__(self): + self.score_getters = {} + + def register_score_getter(self, name): + def decorator(cls): + self.score_getters[name] = cls + cls.name = name + return cls + + return decorator + + def get_score_getter(self, name) -> ScoreGetter: + return self.score_getters[name] + + def get_random_score_getter(self) -> ScoreGetter: + return random.choice(list(self.score_getters.values())) + + +generator_registry = ScoreGetterRegistry() + + +def register_score_getter(name): + return generator_registry.register_score_getter(name) + + +def get_score_getter(name, *args, **kwargs) -> ScoreGetter: + return generator_registry.get_score_getter(name)(*args, **kwargs) + + +def get_random_score_getter(*args, **kwargs) -> ScoreGetter: + return generator_registry.get_random_score_getter()(*args, **kwargs) + + +@register_score_getter("gpt4v") +class GPT4VScoreGetter(ScoreGetter): + def __init__(self, prompt: str = os.path.join(os.path.dirname(__file__), "score_prompt.md"), model="gpt-4-turbo", example_path=os.path.join(os.path.dirname(__file__), "example")): + super().__init__() + if os.path.exists(prompt): + with open(prompt, "r") as f: + self.prompt = f.read() + else: + self.prompt = prompt + API_KEY = os.getenv("OPENAI_API_KEY") + if not API_KEY: + raise ValueError("OPENAI_API_KEY environment variable not set.") + self.api_key = API_KEY + self.client = openai.OpenAI(api_key=self.api_key) + self.model = model + if os.path.exists(example_path) and os.path.isfile(os.path.join(example_path, "example_score_input.md")): + with open(example_path, "r") as f: + self.example = f.read() + else: + self.example = None + + def _format_prompt(self, question: str, answer: str, images: List[Image.Image]): + prompt = [{"role": "system", "content": self.prompt}] + messages = [] + for image in images: + messages.append(format_gpt4v_images(image)) + messages.append({"type": "text", "text": f"Question: {question}\nQuestioner's Answer: {answer}"}) + messages.append({"type": "text", "text": 'You should format you answer into json format like this: {"score": 10, "reason": "some reason"}'}) + prompt.append({"role": "user", "content": messages}) + return prompt + + def get_score(self, question: str, answer: str, images: ScreenImage, *, max_tokens=4096, max_try_times=5, **kwargs) -> Score: + prompt = self._format_prompt(question, answer, images) + try: + response = gpt4v_generate_response(client=self.client, model=self.model, messages=prompt, max_tokens=max_tokens, max_try_times=max_try_times, json_format=True, **kwargs) + if response.success: + content = json.loads(response.content) + score = content.get("score", None) + reason = content.get("reason", None) + return Score(score=score, reason=reason) + else: + return Score(score=None, reason=response.content) + except Exception as e: + return Score(score=None, reason=str(e)) + + +@register_score_getter("claude") +class ClaudeScoreGetter(ScoreGetter): + def __init__(self, prompt: str = os.path.join(os.path.dirname(__file__), "score_prompt.md"), model="claude-3-opus-20240229", example_path=os.path.join(os.path.dirname(__file__), "example")): + super().__init__() + if os.path.exists(prompt): + with open(prompt, "r") as f: + self.prompt = f.read() + else: + self.prompt = prompt + API_KEY = os.getenv("ANTHROPIC_API_KEY") + if not API_KEY: + raise ValueError("ANTHROPIC_API_KEY environment variable not set.") + self.api_key = API_KEY + self.client = anthropic.Anthropic(api_key=self.api_key) + self.model = model + if os.path.exists(example_path) and os.path.isfile(os.path.join(example_path, "example_score_input.md")): + with open(example_path, "r") as f: + self.example = f.read() + else: + self.example = None + + def _format_prompt(self, question: str, answer: str, images: List[Image.Image]): + # prompt = [{"role": "system", "content": self.prompt}] + prompt = [] + messages = [] + for image in images: + messages.append(format_claude_images(image)) + messages.append({"type": "text", "text": f"Question: {question}\nQuestioner's Answer: {answer}"}) + messages.append({"type": "text", "text": 'You should format you answer into json format like this: {"score": 10, "reason": "some reason"}'}) + prompt.append({"role": "user", "content": messages}) + return prompt + + def get_score(self, question: str, answer: str, images: ScreenImage, *, max_tokens=4096, max_try_times=5, **kwargs) -> Score: + prompt = self._format_prompt(question, answer, images) + try: + response = claude_generate_response(self.client, self.model, prompt, self.prompt, max_tokens, max_try_times, **kwargs) + if response.success: + content = json.loads(response.content) + score = content.get("score", None) + reason = content.get("reason", None) + return Score(score=score, reason=reason) + else: + return Score(score=None, reason=response.content) + except Exception as e: + return Score(score=None, reason=str(e)) diff --git a/tools/live_bench/live_bench/data_generator/score_prompt.md b/tools/live_bench/live_bench/data_generator/score_prompt.md new file mode 100644 index 00000000..1de806a7 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/score_prompt.md @@ -0,0 +1,20 @@ +Based on the multi-round Q&A regarding the image, please evaluate each question and answer from the multi-round Q&A based on the image for their authenticity (whether the information can be directly obtained from the image or reasonably inferred) and logical coherence. For each Q&A pair, provide a rating from 1 to 10, where 1 indicates very poor and 10 indicates excellent. Additionally, please provide a brief explanation for each rating. + +Here are the criteria for evaluating the Q&A pairs: + +### 1. Authenticity (5 points) +- **5 Points**: The information is directly observable in the image or can be reasonably inferred with strong evidence. +- **3 Points**: The information has a plausible connection to the image but requires assumptions that are not strongly supported by the image. +- **1 Point**: The information cannot be observed or reasonably inferred from the image; it seems unrelated or speculative. + +### 2. Logical Coherence (3 points) +- **3 Points**: The answer logically follows from the question and maintains consistency with the image context. +- **2 Points**: There are minor logical gaps or inconsistencies in the answer relative to the question. +- **1 Point**: The answer is logically inconsistent or contradictory to the question or image context. + +### 3. Clarity and Precision (2 points) +- **2 Points**: The question and answer are clearly articulated and precisely address specifics of the image. +- **1 Point**: The question or answer is somewhat vague or overly general, lacking specific details related to the image. +- **0 Points**: The question or answer is unclear or too ambiguous to determine relevance to the image. + +Each Q&A pair can score a maximum of 10 points. The sum of points from these three categories determines the final score for each pair. Provide a brief explanation for each rating, focusing on how well the Q&A adheres to these criteria. diff --git a/tools/live_bench/live_bench/data_generator/utils/__init__.py b/tools/live_bench/live_bench/data_generator/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tools/live_bench/live_bench/data_generator/utils/claude.py b/tools/live_bench/live_bench/data_generator/utils/claude.py new file mode 100644 index 00000000..9678b727 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/utils/claude.py @@ -0,0 +1,42 @@ +from PIL import Image +import io +import base64 +from live_bench.data_generator.response import Response +import logging +from time import sleep + +logger = logging.getLogger("lmms-eval") + + +def format_claude_images(image: Image.Image): + buffered = io.BytesIO() + image.save(buffered, format="PNG") + img_str = base64.b64encode(buffered.getvalue()).decode("utf-8") + return { + "type": "image", + "source": { + "type": "base64", + "media_type": "image/png", + "data": img_str, + }, + } + + +def claude_generate_response(client, model, messages, system, max_tokens: int, max_try_times, **kwargs): + messages.append({"role": "assistant", "content": "{"}) + + def _generate(): + return client.messages.create(model=model, messages=messages, max_tokens=max_tokens, system=system, **kwargs) + + for times in range(max_try_times): + try: + response = _generate() + return Response(success=True, content="{" + response.content[0].text, full_log={"input": messages, "output": response}) + except Exception as e: + logger.error(f"Failed to generate response: {e}") + if times < max_try_times - 1: + logger.info(f"Retrying... ({times+1}/{max_try_times})") + sleep(3) + else: + logger.error("Failed to generate response after retrying.") + return Response(success=False, content=str(e), full_log={"input": messages, "output": None}) diff --git a/tools/live_bench/live_bench/data_generator/utils/extract_infomation.py b/tools/live_bench/live_bench/data_generator/utils/extract_infomation.py new file mode 100644 index 00000000..6946c815 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/utils/extract_infomation.py @@ -0,0 +1,116 @@ +import os +import openai +import logging +from bs4 import BeautifulSoup +import requests +from live_bench.data_generator.utils.gpt4v import gpt4v_generate_response, format_gpt4v_images +from live_bench.screen_shoter import ScreenImage +from live_bench.websites import Website +from live_bench.data_generator.response import Response + +logger = logging.getLogger("live-bench") + + +GPT4V_EXTRACT_TEXT_PROMPT: str = """\ +These are the images of the website that we have captured. Please extract the text from the website. +You should extract the text from the website as detailed as possible. +Only output the text extracted from the website, do not include any other information. +""" + +GPT4V_FIND_IMAGES_FEATURES_PROMPT: str = """\ +This is a screenshot from a news website. Your task is to identify the meaningful images in this screenshot and extract relevant information about these images, such as the environment depicted, the actions and expressions of the people, and the connection between these images and the corresponding text. You need to think deeply about these images and provide as much detailed and useful information as possible. +""" + +GPT4V_THINK_DIFFERENTLY_PROMPT: str = """\ +What makes this website different from other websites? What is special about its news? Since it is a news website, where is the "new" reflected? Do not give a generalized answer; you need to provide detailed answers based on the specific content of each news article and the accompanying illustrations. +""" + + +class ImageInfomation(object): + def __init__(self, text=None, image_features=None, differnt_points=None): + self.text = text + self.image_features = image_features + self.differnt_points = differnt_points + + def to_dict(self): + res = {} + if self.text: + res["Text Extracted in the HTML"] = self.text + if self.image_features: + res["Image Features"] = self.image_features + if self.differnt_points: + res["Interesting Points"] = self.differnt_points + return res + + def __str__(self): + return self.get_info() + + def get_info(self): + res_list = [f"## {key}\n\n{value}" for key, value in self.to_dict().items()] + if res_list: + return "**Here is something you can take as reference.**\n\n" + "\n\n".join(res_list) + else: + return "" + + +class InfomationExtractor(object): + def __init__(self, model="gpt-4-turbo", openai_api_key=None): + if not openai_api_key: + openai_api_key = os.getenv("OPENAI_API_KEY") + if not openai_api_key: + raise ValueError("OPENAI_API_KEY environment variable not set.") + self.client = openai.OpenAI(api_key=openai_api_key) + self.model = model + + def extract_text_from_html(self, url): + response = requests.get(url) + soup = BeautifulSoup(response.text, "html.parser") + + text = "\n".join(soup.stripped_strings) + return text + + def extract_text_from_html_using_gpt4v(self, screen_image: ScreenImage, **kwargs) -> Response: + website: Website = screen_image.website + if website.url: + url = website.url + text = self.extract_text_from_html(url) + text = f"Below is the text extracted from the website {url} for you to take reference:\n{text}" + else: + text = "" + text = f"{GPT4V_EXTRACT_TEXT_PROMPT}\n{text}" + messages = [ + { + "role": "user", + "content": [{"type": "text", "text": text}] + format_gpt4v_images(screen_image.images), + } + ] + response = gpt4v_generate_response(messages, model=self.model, client=self.client, json_format=False, **kwargs) + return response + + def extract_infomation(self, screen_image: ScreenImage, **kwargs) -> ImageInfomation: + ocrs = self.extract_text_from_html_using_gpt4v(screen_image) + infomation = ImageInfomation() + if ocrs.success: + ocrs = f"Below is the text extracted from the website for you to take reference:\n{ocrs.content}" + infomation.text = ocrs + else: + ocrs = "" + messages = [ + { + "role": "user", + "content": [{"type": "text", "text": f"{GPT4V_FIND_IMAGES_FEATURES_PROMPT}\n{ocrs}"}] + format_gpt4v_images(screen_image.images), + } + ] + response = gpt4v_generate_response(messages, model=self.model, client=self.client, json_format=False, **kwargs) + if response.success: + infomation.image_features = response.content + messages = [ + { + "role": "user", + "content": [{"type": "text", "text": f"{GPT4V_THINK_DIFFERENTLY_PROMPT}\n\n{str(infomation)}"}] + format_gpt4v_images(screen_image.images), + } + ] + response = gpt4v_generate_response(messages, model=self.model, client=self.client, json_format=False, **kwargs) + if response.success: + infomation.differnt_points = response.content + return infomation diff --git a/tools/live_bench/live_bench/data_generator/utils/gemini.py b/tools/live_bench/live_bench/data_generator/utils/gemini.py new file mode 100644 index 00000000..99c1eef6 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/utils/gemini.py @@ -0,0 +1,37 @@ +import google.generativeai as genai +from time import sleep +from live_bench.data_generator.response import Response +import logging +from google.generativeai.types import HarmCategory, HarmBlockThreshold + +logger = logging.getLogger("lmms-eval") + + +def gemini_generate_response(client: genai.GenerativeModel, messages, max_tokens: int, max_try_times, **kwargs): + generation_config = genai.GenerationConfig(max_output_tokens=max_tokens) + + def _generate(): + return client.generate_content( + messages, + generation_config=generation_config, + safety_settings={ + HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE, + HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE, + HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE, + HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE, + }, + **kwargs, + ) + + for times in range(max_try_times): + try: + response = _generate() + return Response(success=True, content=response.text, full_log={"input": messages, "output": response}) + except Exception as e: + logger.error(f"Failed to generate response: {e}") + if times < max_try_times - 1: + logger.info(f"Retrying... ({times+1}/{max_try_times})") + sleep(3) + else: + logger.error("Failed to generate response after retrying.") + return Response(success=False, content=str(e), full_log={"input": messages, "output": None}) diff --git a/tools/live_bench/live_bench/data_generator/utils/gpt4v.py b/tools/live_bench/live_bench/data_generator/utils/gpt4v.py new file mode 100644 index 00000000..2ee70794 --- /dev/null +++ b/tools/live_bench/live_bench/data_generator/utils/gpt4v.py @@ -0,0 +1,72 @@ +from PIL import Image +import io +import base64 +from live_bench.data_generator.response import Response +import logging +from time import sleep + +logger = logging.getLogger("lmms-eval") + + +def format_gpt4v_images(image): + if isinstance(image, Image.Image): + buffered = io.BytesIO() + image.save(buffered, format="PNG") + img_str = base64.b64encode(buffered.getvalue()).decode("utf-8") + return { + "type": "image_url", + "image_url": { + "url": f"data:image/png;base64,{img_str}", + }, + } + elif isinstance(image, list): + return [format_gpt4v_images(img) for img in image] + else: + raise ValueError(f"Unsupported image type: {type(image)}") + + +def format_printable_messages(messages): + for message in messages: + if "content" in message and isinstance(message["content"], list): + for content in message["content"]: + if "type" in content and content["type"] == "image_url": + content["image_url"]["url"] = "" + return messages + + +def gpt4v_generate_response(messages, *, client=None, model="gpt-4-turbo", max_tokens: int = 4096, max_try_times: int = 5, json_format="auto", test=False, **kwargs) -> Response: + if json_format == "auto": + json_format = False + for message in messages: + if message.get("role") == "user": + contents = message.get("content", []) + if isinstance(contents, str): + if "json" in contents: + json_format = True + break + else: + for content in contents: + if content.get("type", None) == "text" and "json" in content.get("text", ""): + json_format = True + break + + if json_format: + response_format = {"type": "json_object"} + else: + response_format = None + + def _generate(): + return client.chat.completions.create(model=model, messages=messages, max_tokens=max_tokens, response_format=response_format, **kwargs) + + for times in range(max_try_times): + try: + response = _generate() + return Response(success=True, content=response.choices[0].message.content, full_log={"input": format_printable_messages(messages), "output": response.choices[0].message.content}) + except Exception as e: + logger.error(f"Failed to generate response: {e}") + if times < max_try_times - 1: + logger.info(f"Retrying... ({times+1}/{max_try_times})") + sleep(3) + else: + logger.error("Failed to generate response after retrying.") + return Response(success=False, content=str(e), full_log={"input": format_printable_messages(messages), "output": None}) diff --git a/tools/live_bench/live_bench/driver/.gitignore b/tools/live_bench/live_bench/driver/.gitignore new file mode 100644 index 00000000..0ef18421 --- /dev/null +++ b/tools/live_bench/live_bench/driver/.gitignore @@ -0,0 +1 @@ +extensions/ diff --git a/tools/live_bench/live_bench/driver/__init__.py b/tools/live_bench/live_bench/driver/__init__.py new file mode 100644 index 00000000..5ac815d2 --- /dev/null +++ b/tools/live_bench/live_bench/driver/__init__.py @@ -0,0 +1 @@ +from live_bench.driver.load_driver import load_driver diff --git a/tools/live_bench/live_bench/driver/load_driver.py b/tools/live_bench/live_bench/driver/load_driver.py new file mode 100644 index 00000000..c0ca7528 --- /dev/null +++ b/tools/live_bench/live_bench/driver/load_driver.py @@ -0,0 +1,71 @@ +import os +import zipfile +import requests +from selenium import webdriver +from webdriver_manager.chrome import ChromeDriverManager +from webdriver_manager.core.os_manager import ChromeType +from selenium.webdriver.chrome.options import Options + +import undetected_chromedriver as uc + + +def load_driver( + window_size="auto", + headless=True, + driver="undetected_chromedriver", + driver_version=None, + chrome_type="CHROME", + adblock=True, + adblock_version="6.0.2-mv3", + extension_cache_dir=os.path.join(os.path.dirname(__file__), "extensions"), + *, + service=None, + additional_options=None, +): + options = Options() + if service is None: + chrome_type = chrome_type.upper() + if chrome_type == "CHROMIUM": + chrome_type = ChromeType.CHROMIUM + elif chrome_type == "CHROME": + chrome_type = ChromeType.GOOGLE + elif chrome_type == "BRAVE": + chrome_type = ChromeType.BRAVE + service = ChromeDriverManager(driver_version=driver_version, chrome_type=chrome_type).install() + if headless: + options.add_argument("--headless") + if adblock: + try: + adblock_url = f"https://code.getadblock.com/releases/adblockchrome-{adblock_version}.zip" + adblock_path = os.path.join(extension_cache_dir, f"adblockchrome-{adblock_version}") + if not os.path.isdir(adblock_path): + os.makedirs(os.path.join(adblock_path, ".."), exist_ok=True) + # Download the adblock zip file + response = requests.get(adblock_url) + with open(f"{adblock_path}.zip", "wb") as file: + file.write(response.content) + # Unzip the downloaded file + with zipfile.ZipFile(f"{adblock_path}.zip", "r") as zip_ref: + zip_ref.extractall(adblock_path) + # Remove the zip file after extraction + os.remove(f"{adblock_path}.zip") + options.add_argument(f"--load-extension={os.path.abspath(adblock_path)}") + except Exception as e: + print(f"Error loading adblock extension: {e}") + if driver == "undetected_chromedriver": + driver = uc.Chrome(headless=headless, options=options, driver_executable_path=service) + if window_size != "auto": + driver.set_window_size(*window_size) + return driver + elif driver == "chrome": + options = Options() + if additional_options is not None: + for option in additional_options: + options.add_argument(option) + service = webdriver.chrome.service.Service(service) + driver = webdriver.Chrome(service=service, options=options) + if window_size != "auto": + driver.set_window_size(*window_size) + return driver + else: + raise ValueError(f"Unknown driver: {driver}") diff --git a/tools/live_bench/live_bench/screen_shoter/__init__.py b/tools/live_bench/live_bench/screen_shoter/__init__.py new file mode 100644 index 00000000..e5ea9856 --- /dev/null +++ b/tools/live_bench/live_bench/screen_shoter/__init__.py @@ -0,0 +1,2 @@ +from live_bench.screen_shoter.screen_shoter import ScreenShoter, register_shoter, get_shoter +from live_bench.screen_shoter.screen import ScreenImage diff --git a/tools/live_bench/live_bench/screen_shoter/screen.py b/tools/live_bench/live_bench/screen_shoter/screen.py new file mode 100644 index 00000000..5817b8cc --- /dev/null +++ b/tools/live_bench/live_bench/screen_shoter/screen.py @@ -0,0 +1,30 @@ +import io +import base64 + +from PIL import Image +from typing import List, Tuple + +from live_bench.websites import Website + + +def image_to_base64(image: Image.Image) -> str: + buffered = io.BytesIO() + image.save(buffered, format="PNG") + return base64.b64encode(buffered.getvalue()).decode("utf-8") + + +class ScreenImage(object): + def __init__(self, images: List[Image.Image], website: Website, shoter: str, screen_size: Tuple[int, int], capture_datetime: str): + self.images = images + self.website = website + self.shoter = shoter + self.screen_size = screen_size + self.capture_datetime = capture_datetime + + def to_dict(self): + return {"images": self.images, "website": self.website.get_info(), "shoter": self.shoter, "screen_size": self.screen_size, "capture_datetime": self.capture_datetime} + + def to_output_dict(self): + output = self.to_dict() + output["images"] = [image_to_base64(image) for image in self.images] + return output diff --git a/tools/live_bench/live_bench/screen_shoter/screen_shoter.py b/tools/live_bench/live_bench/screen_shoter/screen_shoter.py new file mode 100644 index 00000000..6069cd26 --- /dev/null +++ b/tools/live_bench/live_bench/screen_shoter/screen_shoter.py @@ -0,0 +1,141 @@ +from selenium import webdriver +from PIL import Image +from live_bench.websites import Website +from live_bench.screen_shoter.screen import ScreenImage +from typing import List +from abc import ABC, abstractmethod +from datetime import datetime +from PIL import Image +import os +import io +import logging + +logger = logging.getLogger("lmms-eval") + + +class ScreenShoter(ABC): + def __init__(self, screen_size=(1024, 1024)): + self.screen_size = screen_size + + def capture(self, driver: webdriver.Chrome, website: Website) -> ScreenImage: + if driver is not None: + website.visit(driver) + if self.screen_size != "auto": + driver.set_window_size(self.screen_size[0], self.screen_size[1]) + else: + driver.set_window_size(1024, 1024) + page_width = driver.execute_script("return document.body.scrollWidth") + driver.set_window_size(page_width, 1024) + # print("Screen size:", driver.get_window_size()) + images = self.get_screenshot(driver) + return ScreenImage(images, website, self.get_name(), self.screen_size, datetime.now().strftime("%Y-%m-%d %H:%M:%S")) + + def __call__(self, driver: webdriver.Chrome, website: Website) -> List[Image.Image]: + return self.capture(driver, website) + + def get_name(self) -> str: + raise NotImplementedError("get_name not implemented") + + @abstractmethod + def get_screenshot(self, driver: webdriver.Chrome) -> List[Image.Image]: + pass + + +class ScreenShoterRegistry: + def __init__(self): + self.shoters = {} + + def register_shoter(self, name): + def decorator(cls): + self.shoters[name] = cls + cls.get_name = lambda self: name + return cls + + return decorator + + def get_shoter(self, name) -> ScreenShoter: + return self.shoters[name] + + +shoter_registry = ScreenShoterRegistry() + + +def register_shoter(name): + return shoter_registry.register_shoter(name) + + +def get_shoter(name, *args, **kwargs) -> ScreenShoter: + return shoter_registry.get_shoter(name)(*args, **kwargs) + + +@register_shoter("human") +class HumanScreenShoter(ScreenShoter): + def __init__(self, screen_size=None): + super().__init__(screen_size) + + def capture(self, driver: webdriver.Chrome, website: Website) -> ScreenImage: + path = website.get_path() + images = [] + + def get_image(path): + try: + with open(path, "rb") as f: + image_data = f.read() + image = Image.open(io.BytesIO(image_data)) + images.append(image) + except Exception as e: + logger.error(f"Error loading image {path}: {e}") + + if os.path.isdir(path): + for root, dirs, files in os.walk(path): + for file_name in files: + get_image(os.path.join(root, file_name)) + else: + try: + get_image(path) + except Exception as e: + logger.error(f"Error loading image {path}: {e}") + if not images: + raise ValueError(f"No images found in {path}") + return ScreenImage(images, website, self.get_name(), self.screen_size, datetime.now().strftime("%Y-%m-%d %H:%M:%S")) + + def get_screenshot(self, driver: webdriver.Chrome) -> List[Image.Image]: + return [] + + +@register_shoter("single_screen") +class SingleScreenShoter(ScreenShoter): + def __init__(self, screen_size=(1024, 1024)): + super().__init__(screen_size) + + def get_screenshot(self, driver: webdriver.Chrome) -> List[Image.Image]: + screenshot = driver.get_screenshot_as_png() + return [Image.open(io.BytesIO(screenshot))] + + +@register_shoter("rolling_screen") +class RollingScreenShoter(ScreenShoter): + def __init__(self, screen_size=(1024, 1024)): + super().__init__(screen_size) + + def get_screenshot(self, driver: webdriver.Chrome) -> List[Image.Image]: + screenshots = [] + # Scroll to the top of the page before taking the first screenshot + driver.execute_script("window.scrollTo(0, 0)") + # Get the total height of the web page + total_height = driver.execute_script("return document.body.parentNode.scrollHeight") + # Get the viewport height + viewport_height = driver.execute_script("return window.innerHeight") + # Initialize the current scroll position + current_scroll_position = 0 + + # Scroll through the page and take screenshots + while current_scroll_position < total_height: + # Take screenshot and append to the list + screenshot = driver.get_screenshot_as_png() + screenshots.append(Image.open(io.BytesIO(screenshot))) + # Scroll down by the viewport height + current_scroll_position += viewport_height + driver.execute_script(f"window.scrollTo(0, {current_scroll_position})") + + return screenshots diff --git a/tools/live_bench/live_bench/view.ipynb b/tools/live_bench/live_bench/view.ipynb new file mode 100644 index 00000000..71d99d91 --- /dev/null +++ b/tools/live_bench/live_bench/view.ipynb @@ -0,0 +1,354 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Downloading data: 100%|██████████| 470k/470k [00:00<00:00, 575kB/s]\n", + "Generating test split: 100%|██████████| 9/9 [00:00<00:00, 341.15 examples/s]\n" + ] + } + ], + "source": [ + "from datasets import load_dataset\n", + "\n", + "dataset = load_dataset(\"lmms-lab/LiveBench\", \"2024-06\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DatasetDict({\n", + " test: Dataset({\n", + " features: ['id', 'images', 'website', 'question', 'answer', 'subtask', 'data_generator', 'checker', 'date_time', 'screen_shoter', 'screen_size', 'score', 'reason', 'scorer_name'],\n", + " num_rows: 9\n", + " })\n", + "})" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

    \n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
    idimageswebsitequestionanswersubtaskdata_generatorcheckerdate_timescreen_shoterscreen_sizescorereasonscorer_name
    00[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Look at the image provided. Two of the article...The shared theme is the legal situation of Hun...Contextual Analysisgpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)10The answer accurately identifies the article d...gpt4v
    11[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Based on the provided image, what is the main ...Ukraine has launched missiles at sites within ...Basic Understandinggpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)10The information provided in the answer directl...gpt4v
    22[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Based on the juxtaposition of the articles on ...The two narratives are the personal and legal ...Contextual Analysisgpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)8The answer is mostly authentic as the convicti...gpt4v
    33[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Examining the headline and image, what visual ...The image showcasing a relatively unscathed st...Contextual Analysisgpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)8The answer is relevant and provides a plausibl...gpt4v
    44[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Based on the juxtaposition of the articles on ...The audience might infer a potential media bia...Deeper Implicationsgpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)8The response provides a reasoned inference bas...gpt4v
    55[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Examining the image and the headline \"What son...Potential narratives could include: the impact...Broader Implicationsgpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)7Authenticity (4/5): The information about it b...gpt4v
    66[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Based on the visual framing and placement of t...The BBC seemingly prioritizes Hunter Biden's t...Contextual Analysisgpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)8The answer effectively compares domestic polit...gpt4v
    77[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Considering the use of the word \"LIVE\" in the ...The use of \"LIVE\" could lead the public to per...Deeper Implicationsgpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)10The answer provided is directly related to the...gpt4v
    88[{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH...{'url': 'https://www.bbc.com/'}Based on the image alone, what elements sugges...The juxtaposition of the image depicting Presi...Deeper Implicationsgpt4vgemini2024-06-12 01:14:15single_screen(1024, 1024)8The answer effectively discusses the potential...gpt4v
    \n", + "
    " + ], + "text/plain": [ + " id images \\\n", + "0 0 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "1 1 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "2 2 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "3 3 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "4 4 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "5 5 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "6 6 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "7 7 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "8 8 [{'bytes': b'\\x89PNG\\r\\n\\x1a\\n\\x00\\x00\\x00\\rIH... \n", + "\n", + " website \\\n", + "0 {'url': 'https://www.bbc.com/'} \n", + "1 {'url': 'https://www.bbc.com/'} \n", + "2 {'url': 'https://www.bbc.com/'} \n", + "3 {'url': 'https://www.bbc.com/'} \n", + "4 {'url': 'https://www.bbc.com/'} \n", + "5 {'url': 'https://www.bbc.com/'} \n", + "6 {'url': 'https://www.bbc.com/'} \n", + "7 {'url': 'https://www.bbc.com/'} \n", + "8 {'url': 'https://www.bbc.com/'} \n", + "\n", + " question \\\n", + "0 Look at the image provided. Two of the article... \n", + "1 Based on the provided image, what is the main ... \n", + "2 Based on the juxtaposition of the articles on ... \n", + "3 Examining the headline and image, what visual ... \n", + "4 Based on the juxtaposition of the articles on ... \n", + "5 Examining the image and the headline \"What son... \n", + "6 Based on the visual framing and placement of t... \n", + "7 Considering the use of the word \"LIVE\" in the ... \n", + "8 Based on the image alone, what elements sugges... \n", + "\n", + " answer subtask \\\n", + "0 The shared theme is the legal situation of Hun... Contextual Analysis \n", + "1 Ukraine has launched missiles at sites within ... Basic Understanding \n", + "2 The two narratives are the personal and legal ... Contextual Analysis \n", + "3 The image showcasing a relatively unscathed st... Contextual Analysis \n", + "4 The audience might infer a potential media bia... Deeper Implications \n", + "5 Potential narratives could include: the impact... Broader Implications \n", + "6 The BBC seemingly prioritizes Hunter Biden's t... Contextual Analysis \n", + "7 The use of \"LIVE\" could lead the public to per... Deeper Implications \n", + "8 The juxtaposition of the image depicting Presi... Deeper Implications \n", + "\n", + " data_generator checker date_time screen_shoter screen_size \\\n", + "0 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "1 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "2 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "3 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "4 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "5 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "6 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "7 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "8 gpt4v gemini 2024-06-12 01:14:15 single_screen (1024, 1024) \n", + "\n", + " score reason scorer_name \n", + "0 10 The answer accurately identifies the article d... gpt4v \n", + "1 10 The information provided in the answer directl... gpt4v \n", + "2 8 The answer is mostly authentic as the convicti... gpt4v \n", + "3 8 The answer is relevant and provides a plausibl... gpt4v \n", + "4 8 The response provides a reasoned inference bas... gpt4v \n", + "5 7 Authenticity (4/5): The information about it b... gpt4v \n", + "6 8 The answer effectively compares domestic polit... gpt4v \n", + "7 10 The answer provided is directly related to the... gpt4v \n", + "8 8 The answer effectively discusses the potential... gpt4v " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dataset[\"test\"].to_pandas()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "live_bench", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tools/live_bench/live_bench/websites/__init__.py b/tools/live_bench/live_bench/websites/__init__.py new file mode 100644 index 00000000..a865d16e --- /dev/null +++ b/tools/live_bench/live_bench/websites/__init__.py @@ -0,0 +1,2 @@ +from live_bench.websites.load_website import load_websites, load_websites_from_file +from live_bench.websites.website import Website diff --git a/tools/live_bench/live_bench/websites/load_website.py b/tools/live_bench/live_bench/websites/load_website.py new file mode 100644 index 00000000..10976db7 --- /dev/null +++ b/tools/live_bench/live_bench/websites/load_website.py @@ -0,0 +1,34 @@ +import yaml +import os +from random import sample +from live_bench.websites.website import Website, DefaultWebsite, HumanScreenShotWebsite + + +def get_website(website_dict): + if "website_class" not in website_dict: + website_class = DefaultWebsite + else: + website_class = website_dict["website_class"] + url = website_dict["url"] + if "args" in website_dict: + return website_class(url, **website_dict["args"]) + else: + return website_class(url) + + +def load_websites(num_sample: int = -1): + website_list_path = os.path.join(os.path.dirname(__file__), "website_list.yaml") + with open(website_list_path, "r") as f: + website_list = yaml.full_load(f)["websites"] + if num_sample > 0: + website_list = sample(website_list, num_sample) + return [get_website(website_dict) for website_dict in website_list] + + +def load_websites_from_file(file_path): + names = os.listdir(file_path) + websites = [] + for name in names: + path = os.path.join(file_path, name) + websites.append(HumanScreenShotWebsite(path=path, name=name)) + return websites diff --git a/tools/live_bench/live_bench/websites/website.py b/tools/live_bench/live_bench/websites/website.py new file mode 100644 index 00000000..327bad37 --- /dev/null +++ b/tools/live_bench/live_bench/websites/website.py @@ -0,0 +1,62 @@ +import time +import os + +from webdriver_manager.core.driver import Driver +from abc import ABC, abstractmethod + + +class Website(ABC): + def __init__(self, url=None, name=None, path=None): + self.url = url + self.name = name + self.path = path + assert self.url is not None or self.path is not None, "Either url or path must be provided" + + def get_path(self): + if self.url: + return self.url + else: + return self.path + + def visit(self, driver: Driver): + self.pre_visit(driver) + driver.get(self.url) + self.post_visit(driver) + + def get_info(self): + info = {} + if self.url: + info["url"] = self.url + if self.name: + info["name"] = self.name + return info + + @abstractmethod + def pre_visit(self, driver: Driver): + raise NotImplementedError("pre_action not implemented") + + @abstractmethod + def post_visit(self, driver: Driver): + raise NotImplementedError("post_action not implemented") + + +class DefaultWebsite(Website): + def __init__(self, url, name=None): + super().__init__(url, name) + + def pre_visit(self, driver: Driver): + pass + + def post_visit(self, driver: Driver): + time.sleep(5) # Wait for 5 seconds to allow adblock to finish + + +class HumanScreenShotWebsite(Website): + def __init__(self, name=None, path=None): + super().__init__(name=name, path=path) + + def pre_visit(self, driver: Driver): + pass + + def post_visit(self, driver: Driver): + pass diff --git a/tools/live_bench/live_bench/websites/website_list.yaml b/tools/live_bench/live_bench/websites/website_list.yaml new file mode 100644 index 00000000..66f7cabd --- /dev/null +++ b/tools/live_bench/live_bench/websites/website_list.yaml @@ -0,0 +1,79 @@ +websites: +- url: https://www.bbc.com/ + # can add below line to specify the class to use for this website + # website_class: !constructor website.DefaultWebsite + # can add args tag to specify the arguments to pass to the class constructor + # args: + # arg1: value1 + # arg2: value2 +- url: https://www.bbc.com/news +- url: https://www.bbc.com/sport +- url: https://www.bbc.com/business +- url: https://www.bbc.com/innovation +- url: https://www.bbc.com/culture +- url: https://www.bbc.com/travel +- url: https://www.bbc.com/future-planet +# - url: https://edition.cnn.com/ +# - url: https://edition.cnn.com/politics +# - url: https://edition.cnn.com/entertainment +# - url: https://edition.cnn.com/style +# - url: https://www.bloomberg.com/economics +# - url: https://www.bloomberg.com/industries +# - url: https://www.bloomberg.com/technology +# - url: https://www.bloomberg.com/politics +# - url: https://www.bloomberg.com/opinion +# - url: https://www.wsj.com/ +# - url: https://www.wsj.com/world/africa?mod=nav_top_subsection +# - url: https://www.wsj.com/world/americas?mod=nav_top_subsection +# - url: https://www.wsj.com/world/asia?mod=nav_top_subsection +# - url: https://www.wsj.com/world/china?mod=nav_top_subsection +# - url: https://www.wsj.com/world/europe?mod=nav_top_subsection +# - url: https://www.wsj.com/world/middle-east?mod=nav_top_subsection +# - url: https://www.wsj.com/world/india?mod=nav_top_subsection +# - url: https://www.wsj.com/world/oceania?mod=nav_top_subsection +# - url: https://www.wsj.com/world/russia?mod=nav_top_subsection +# - url: https://www.wsj.com/world/uk?mod=nav_top_subsection +# - url: https://www.wsj.com/science?mod=nav_top_subsection +# - url: https://www.wsj.com/science/archaeology?mod=nav_top_subsection +# - url: https://www.wsj.com/science/biology?mod=nav_top_subsection +# - url: https://www.wsj.com/science/environment?mod=nav_top_subsection +# - url: https://www.wsj.com/science/physics?mod=nav_top_subsection +# - url: https://www.wsj.com/science/space-astronomy?mod=nav_top_subsection +# - url: https://www.wsj.com/economy/central-banking?mod=nav_top_subsection +# - url: https://www.wsj.com/economy/consumers?mod=nav_top_subsection +# - url: https://www.wsj.com/economy/housing?mod=nav_top_subsection +# - url: https://www.wsj.com/economy/jobs?mod=nav_top_subsection +# - url: https://www.wsj.com/economy/trade?mod=nav_top_subsection +# - url: https://www.wsj.com/economy/global +# - url: https://www.wsj.com/tech/ai?mod=nav_top_subsection +# - url: https://www.wsj.com/tech/biotech +# - url: https://www.wsj.com/tech/cybersecurity?mod=nav_top_subsection +# - url: https://www.wsj.com/tech/personal-tech?mod=nav_top_subsection +# - url: https://www.reuters.com/ +# - url: https://www.reuters.com/business/aerospace-defense/ +# - url: https://www.reuters.com/business/autos-transportation/ +# - url: https://www.reuters.com/business/davos/ +# - url: https://www.reuters.com/business/energy/ +# - url: https://www.reuters.com/business/environment/ +# - url: https://www.reuters.com/business/finance/ +# - url: https://www.reuters.com/business/healthcare-pharmaceuticals/ +# - url: https://www.reuters.com/business/media-telecom/ +# - url: https://www.reuters.com/business/retail-consumer/ +# - url: https://www.reuters.com/business/future-of-health/ +# - url: https://www.reuters.com/business/future-of-money/ +# - url: https://www.reuters.com/business/take-five/ +# - url: https://www.reuters.com/business/world-at-work/ +# - url: https://www.reuters.com/breakingviews/ +# - url: https://www.reuters.com/technology/ +# - url: https://www.reuters.com/technology/cybersecurity/ +# - url: https://www.reuters.com/technology/space/ +# - url: https://www.reuters.com/technology/disrupted/ +# - url: https://www.reuters.com/technology/reuters-momentum/ +# - url: https://www.reuters.com/investigations/ +# - url: https://a16z.com/news-content/#latest +# - url: https://news.ycombinator.com/ +# - url: https://www.reddit.com/?rdt=48006 +# - url: https://news.crunchbase.com/ +- url: https://www.cctv.com/ +- url: https://opinion.cctv.com/ +- url: https://sports.cctv.com/ diff --git a/tools/live_bench/pyproject.toml b/tools/live_bench/pyproject.toml new file mode 100755 index 00000000..79956c40 --- /dev/null +++ b/tools/live_bench/pyproject.toml @@ -0,0 +1,47 @@ +[tool.black] +line-length = 240 + +[build-system] +requires = ["setuptools>=42", "wheel", "setuptools_scm[tomli]>=6.3"] +build-backend = "setuptools.build_meta" + +[project] +name = "live_bench" +version = "0.0.1" +authors = [ + { name = "LMMMs-Lab Evaluation Team", email = "lmms_eval@outlook.com" }, +] +description = "Live Bench" +readme = "README.md" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] +requires-python = ">=3.9" +license = { text = "MIT" } +dependencies = [ + "PyYAML >= 6.0.1", + "webdriver_manager >= 4.0.1", + "openai >= 1.32.0", + "google-generativeai >= 0.6.0", + "datasets >= 2.19.2", + "Pillow >= 10.3.0", + "selenium >= 4.21.0", + "undetected-chromedriver >= 3.5.5", + "anthropic >= 0.28.0", + "bs4 >= 0.0.2", +] + +[tool.setuptools.packages.find] +include = ["lmms_eval*"] + +[tool.setuptools.package-data] +lmms_eval = ["**/*.yaml", "tasks/**/*"] + +[project.scripts] +lmms-eval = "lmms_eval.__main__:cli_evaluate" + +[project.urls] +Homepage = "https://lmms-lab.github.io/" +Repository = "https://github.com/EvolvingLMMs-Lab/lmms-eval" diff --git a/tools/live_bench/setup.py b/tools/live_bench/setup.py new file mode 100755 index 00000000..b908cbe5 --- /dev/null +++ b/tools/live_bench/setup.py @@ -0,0 +1,3 @@ +import setuptools + +setuptools.setup() diff --git a/tools/make_vatex.py b/tools/make_vatex.py new file mode 100644 index 00000000..7882a38b --- /dev/null +++ b/tools/make_vatex.py @@ -0,0 +1,31 @@ +from datasets import load_dataset, Dataset +import json + +with open("data/vatex_public_test_english_v1.1.json", "r") as f: + data = json.load(f) + +for da in data: + da["url"] = "https://www.youtube.com/watch?v=" + da["videoID"] + +vatex_dataset = Dataset.from_list(data) +# vatex_dataset.rename_columns({ +# 'videoID': 'video_name', +# 'enCap': 'caption' +# }) #if change name is needed +hub_dataset_path = "lmms-lab/vatex_from_url" + +vatex_dataset.push_to_hub(repo_id=hub_dataset_path, split="test", config_name="vatex_test", token=True) + +with open("data/vatex_validation_v1.0.json", "r") as f: + data = json.load(f) +for da in data: + da["url"] = "https://www.youtube.com/watch?v=" + da["videoID"] + +vatex_dataset = Dataset.from_list(data) +# vatex_dataset.rename_columns({ +# 'videoID': 'video_name', +# 'enCap': 'caption' +# }) #if change name is needed +hub_dataset_path = "lmms-lab/vatex_from_url" + +vatex_dataset.push_to_hub(repo_id=hub_dataset_path, split="validation", config_name="vatex_val_zh", token=True) From dfaa4c261233c61eeca39dcc6db132c869116ab8 Mon Sep 17 00:00:00 2001 From: Pu Fanyi Date: Thu, 4 Jul 2024 01:14:45 -0700 Subject: [PATCH 11/32] Small Fix: GPT (#130) * small fix * lint --- lmms_eval/models/gpt4v.py | 8 +++---- lmms_eval/tasks/websrc/utils.py | 12 +++++----- tools/live_bench/data_summary.ipynb | 13 ++++++++--- .../live_bench/data_generator/live_bench.py | 22 +++++++++++++++++-- .../data_generator/live_bench_data.py | 17 ++++++++++++-- 5 files changed, 56 insertions(+), 16 deletions(-) diff --git a/lmms_eval/models/gpt4v.py b/lmms_eval/models/gpt4v.py index 729e73f7..1a47aa76 100755 --- a/lmms_eval/models/gpt4v.py +++ b/lmms_eval/models/gpt4v.py @@ -120,8 +120,8 @@ def generate_until(self, requests) -> List[str]: for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: # encode, pad, and truncate contexts for this batch - # visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] - visuals = [doc_to_visual(self.task_dict[task][split][0])] + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] + # visuals = [doc_to_visual(self.task_dict[task][split][0])] visuals = self.flatten(visuals) imgs = [] # multiple images or frames for video for visual in visuals: @@ -139,13 +139,13 @@ def generate_until(self, requests) -> List[str]: payload["messages"].append(deepcopy(response_json)) payload["messages"][0]["content"].append({"type": "text", "text": contexts}) for img in imgs: - payload["messages"][0]["content"].append({"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img}"}}) + payload["messages"][0]["content"].append({"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img}"}}) else: contexts = contexts.split(self.image_token) for idx, img in enumerate(imgs): payload["messages"].append(deepcopy(response_json)) payload["messages"][idx]["content"].append({"type": "text", "text": contexts[idx]}) - payload["messages"][idx]["content"].append({"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{img}"}}) + payload["messages"][idx]["content"].append({"type": "image_url", "image_url": {"url": f"data:image/png;base64,{img}"}}) # If n image tokens are in the contexts # contexts will be splitted into n+1 chunks diff --git a/lmms_eval/tasks/websrc/utils.py b/lmms_eval/tasks/websrc/utils.py index 3cd024ee..6e2584a4 100644 --- a/lmms_eval/tasks/websrc/utils.py +++ b/lmms_eval/tasks/websrc/utils.py @@ -46,11 +46,13 @@ def websrc_process_results(doc, results): return { "websrc_squad_f1": websrc_ans, - "submission": { - websrc_ans["question_id"]: pred, - } - if "question_id" in websrc_ans - else None, + "submission": ( + { + websrc_ans["question_id"]: pred, + } + if "question_id" in websrc_ans + else None + ), } diff --git a/tools/live_bench/data_summary.ipynb b/tools/live_bench/data_summary.ipynb index f7bc83e9..43048195 100644 --- a/tools/live_bench/data_summary.ipynb +++ b/tools/live_bench/data_summary.ipynb @@ -126,7 +126,7 @@ } ], "source": [ - "top_50_per_subtask = df.groupby('subtask').apply(lambda x: x.nlargest(50, 'score'))\n", + "top_50_per_subtask = df.groupby(\"subtask\").apply(lambda x: x.nlargest(50, \"score\"))\n", "top_50_per_subtask.reset_index(drop=True, inplace=True)\n", "len(top_50_per_subtask)" ] @@ -188,11 +188,16 @@ "from datasets import Dataset, Features\n", "import datasets\n", "\n", + "\n", "def gen():\n", " for d in top_50_per_subtask:\n", " yield d\n", "\n", - "data = Dataset.from_pandas(top_50_per_subtask, features=Features({\n", + "\n", + "data = Dataset.from_pandas(\n", + " top_50_per_subtask,\n", + " features=Features(\n", + " {\n", " \"id\": datasets.Value(\"int32\"),\n", " \"images\": datasets.Sequence(datasets.Image()),\n", " \"website\": datasets.Value(\"string\"),\n", @@ -208,7 +213,9 @@ " \"score\": datasets.Value(\"int32\"),\n", " \"reason\": datasets.Value(\"string\"),\n", " \"scorer_name\": datasets.Value(\"string\"),\n", - " }))" + " }\n", + " ),\n", + ")" ] }, { diff --git a/tools/live_bench/live_bench/data_generator/live_bench.py b/tools/live_bench/live_bench/data_generator/live_bench.py index 4748d75a..84f72ec9 100644 --- a/tools/live_bench/live_bench/data_generator/live_bench.py +++ b/tools/live_bench/live_bench/data_generator/live_bench.py @@ -31,7 +31,9 @@ def get_qa_data(images: ScreenImage, qa_generator: QAGenerator, *, infomation_ge return qa_data, response -def get_live_bench_data(driver, website: Website, screen_shoter: ScreenShoter, qa_generator: QAGenerator, checker: QAGenerator, infomation_getter: InfomationExtractor, test=False, scorer=None, score_threshold = 5) -> Tuple[List[LiveBenchData], Response]: +def get_live_bench_data( + driver, website: Website, screen_shoter: ScreenShoter, qa_generator: QAGenerator, checker: QAGenerator, infomation_getter: InfomationExtractor, test=False, scorer=None, score_threshold=5 +) -> Tuple[List[LiveBenchData], Response]: images = screen_shoter.capture(driver, website) qa_data, logs = get_qa_data(images, qa_generator, test=test, infomation_getter=infomation_getter) data = [] @@ -65,7 +67,23 @@ def __init__(self, path: str = "lmms-lab/LiveBench", *, name="auto", split="test def clear(self): self.hf_data = Dataset.from_dict( - {"id": [], "images": [], "website": [], "question": [], "answer": [], "criteria": [], "subtask": [], "data_generator": [], "checker": [], "date_time": [], "screen_shoter": [], "screen_size": [], "score": [], "reason": [], "scorer_name": []}, + { + "id": [], + "images": [], + "website": [], + "question": [], + "answer": [], + "criteria": [], + "subtask": [], + "data_generator": [], + "checker": [], + "date_time": [], + "screen_shoter": [], + "screen_size": [], + "score": [], + "reason": [], + "scorer_name": [], + }, features=LiveBenchData.features, ) diff --git a/tools/live_bench/live_bench/data_generator/live_bench_data.py b/tools/live_bench/live_bench/data_generator/live_bench_data.py index 65c83970..db04bddb 100644 --- a/tools/live_bench/live_bench/data_generator/live_bench_data.py +++ b/tools/live_bench/live_bench/data_generator/live_bench_data.py @@ -6,7 +6,7 @@ class LiveBenchData(object): SUBTASKS = ("Basic Understanding", "Contextual Analysis", "Deeper Implications", "Broader Implications", "Further Insights") - + features = datasets.Features( { "id": datasets.Value("int32"), @@ -28,7 +28,20 @@ class LiveBenchData(object): ) def __init__( - self, *, screen: ScreenImage, question: str, answer: str, criteria: str, subtask: str, data_generator: str, infomation: ImageInfomation = None, score: int = None, reason: str = None, checker: QAGenerator = None, scorer_name=None, scorer=None + self, + *, + screen: ScreenImage, + question: str, + answer: str, + criteria: str, + subtask: str, + data_generator: str, + infomation: ImageInfomation = None, + score: int = None, + reason: str = None, + checker: QAGenerator = None, + scorer_name=None, + scorer=None, ): self.screen = screen self.question = question From 00657e625e8b18686b18a76a80be856f744f413a Mon Sep 17 00:00:00 2001 From: Kaichen Zhang - NTU Date: Thu, 4 Jul 2024 18:26:56 +0800 Subject: [PATCH 12/32] Add wild vision from public (#131) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix doc * [WIP] adding mmbench dev evaluation (#75) * WIP * Update GPT evaluation model name and sys prompt * 🛠️ Scale accuracy to percentage The accuracy value is now multiplied by 100 in the aggregation function to represent it as a percentage. Regarding the evaluation process, `math` module importation and refactoring reduce progress log verbosity by logging every 100 evaluations instead of 10. It prevents potential logging overflow. Handling of NaN values is added to ensure 'default_value' is set in case of missing data, avoiding errors in split, category, and l2-category assignments. Finally, reporting of categorical and l2-categorical accuracies is streamlined through a new `calculate_hit_rates` function, improving code readability and maintenance. Issue refs: #1427, #1533 * Update GPT evaluation model name and API configuration * Refactor MMBench_Evaluator class to handle missing columns * Add print statements for detailed results in MMBench-CN(CC), MMBench-CN(Dev), and MMBench-EN(Dev) evaluations * Refactor MMBench-CN and MMBench-EN evaluation functions * 🔄 Refactor result processing and logging logic - Simplified the result processing functions across different utility modules (`cc_utils.py`, `cn_utils.py`, `en_utils.py`) to unify the handling of multiple-choice options. Now, all options ("A" to "E") are dynamically added to the result data, and default to "nan" if not provided in the document. - Removed redundant keys directly from the process results dict creation to avoid clutter and align with the new dynamic addition of options. - In `mmbench_evals.py`, removed the unnecessary check for all splits being 'dev' and streamlined the evaluation loop by eliminating the progress bar (tqdm) for a cleaner log output. - Commented-out code and verbose logging during evaluation, which may have interfered with performance, has been removed for a more efficient and less intrusive logging experience. This cleanup reduces redundancy in the codebase and improves evaluation performance. Refs #2045 --------- Co-authored-by: Bo Li (cherry picked from commit a19278c2ea6ddcbca64d3cc7f4efec7fe5775121) * Create README.md * Add files via upload * Add MathVerse * Fix typo in qwen_vl that was causing "reference before assignment" * convert contexts to list if necessary and remove unnecessary construction of `questions` * refactor query construction for clarity * Create ScreenSpot on clean branch * Update README to reflect new tasks * Add README file specific to ScreenSpot * slight update * Init webSRC * Draft README for WebSRC * Update main README with new task names * Draft and validate websrc eval on dev split * Add code to enable compilation of submission for WebSRC test split * Bugfix: WebSRC should be token-level F1 NOT character-level * Add qwen vl api * Fix llava conv template for llama3 * Fix llava_hf generation for 1.6 * Parse result for llava_hf 1.6 * Add model_name parameter to Llava constructor * Fix endless warning for llava_hf generation * Fix llava_hf image tokens number issue * Create LICENSE * Update LICENSE * Update LICENSE * Better task list_with_num * Fix idefics2 llava in the wild bugs * Remove redundant code in fuyu * Fix instructblip qformer size mismatch and multi-images problem * Comment out parse result in xcomposer * Comment out Spice in caption task so that don't need to download stanford nlp model * Update gitignore * Add separated pope tasks by category * Fix pope random name in pope full * Set printing info for llava_hf to debug level * Adding Phi3v model. * Adding prompt arguments for Phi3v on MathVista-TestMini * Adding documentation of Phi3v class. * [Fix] import issues of multilingual llava and olympiadbench * fix compatibility issue of older version llava * add upd * add upd * add upd * add upd * add upd * add upd * Group MMMU images into one image (#83) * update * update font * Add matplotlib.font_manager import in utils.py * Refactor font handling in add_order_label function in utils.py * group mmmu --------- Co-authored-by: Li Bo * merge model_specific_prompt_kwargs and dataset_name into each task yaml * Add MathVerse in README.md * slightly change query_prompt for the reproduction * update utils.py for leaderboard submission * add conbench * update README * Update README.md * init include vcr * modify the form of VCR * switch logic * add crossed_text to vcr_wiki output * include the try-except logic for spacy * update vcr_wiki tasks * update vcr_wiki tasks in README.md * include std and confidence interval * update gpt-3.5-turbo version * update gpt-3.5-turbo version * chore: Remove unnecessary files and code related to live_bench and sft_eval tasks * Bump version to 0.2.0.dev0 * chore: Update lmms-eval to support video evaluations for LLaVA models * Update llava conv_template in lmms_eval/models/llava.py * Update image alignment in README.md * chore: Update lmms-eval to support video evaluations for LLaVA models * chore: Update lmms-eval to support video evaluations for LLaVA models * Update README.md * Update README.md * update aggregation function for vcr_wiki * update README.md * Update README.md * update version * add II-Bench * fix dataset_path * Add qbench, qbench2, abench; fix phi3v as its current implementation does not support multi-image * add tinyllava * LongVideoBench support: image LMMs (idefics2, phi3) and video LMMs (LLaVA-Next-Video-34B) * fix #117, allow auto download with tar format videos * fix #117, allow auto download with tar format videos * fix typo * feat: Add support for auto downloading tar format videos * Release llava-wilder * chore: Update dependencies to fix potential risks and improve compatibility * tutorial * docs * update preparation * small fix * small fix * lint * to sh script * update readme * Remove handling non-visual loop in llava * Add llava_hf back to registry * Update README.md * Update README.md * update ablation for videomme datasets * chore: Handle ImportError when importing models Handle the ImportError exception when importing models in the lmms_eval package. This change adds a try-except block to catch the ImportError and print an error message indicating the failed import. This will help with troubleshooting and identifying any issues with the model imports. * chore: Remove unused models from lmms_eval package * feat: Allow loading model configurations from other packages * feat: Allow including external tasks from plugins * chore: Add loguru for logging in lmms_eval package * Remove unnecessary lines since use batched visuals now in llava * Add longva * Revise model registry for llava_hf and longva * Delete unnecessary lines * Remove unnecessary lines for video llava * Update pyproject.toml * Update activitynetqa_generation.yaml * Fix vid mme post prompt issue * Add wild vision 0617 * Hardcode to keep image for wild vision * Fixing scoring logic * Fixing dataset name * Fixing handling None filtered score --------- Co-authored-by: cocoshe <1228759711@qq.com> Co-authored-by: Bo Li Co-authored-by: Gagan Bhatia <49101362+gagan3012@users.noreply.github.com> Co-authored-by: CaraJ7 <1350074492@qq.com> Co-authored-by: Li Bo Co-authored-by: Andrea Tupini Co-authored-by: Hunter Heidenreich Co-authored-by: Victor Fragoso Co-authored-by: AtsuMiyai Co-authored-by: Pu Fanyi Co-authored-by: Yuan Zhang Co-authored-by: Yuan Zhang <56063339+Gumpest@users.noreply.github.com> Co-authored-by: tianyu-z Co-authored-by: Suyuchen Co-authored-by: XinrunDu Co-authored-by: teowu Co-authored-by: Jingyang Co-authored-by: Teo (Timothy) Wu Haoning <38696372+teowu@users.noreply.github.com> Co-authored-by: choiszt Co-authored-by: Lorenzo Mammana --- lmms_eval/__main__.py | 7 + lmms_eval/evaluator.py | 7 +- lmms_eval/models/__init__.py | 19 ++ lmms_eval/models/longva.py | 2 +- .../activitynetqa_generation.yaml | 1 - .../tasks/videomme/videomme_w_subtitle.yaml | 5 + lmms_eval/tasks/websrc/utils.py | 8 + .../wild_vision_bench/_default_template_yaml | 23 +++ lmms_eval/tasks/wild_vision_bench/utils.py | 188 ++++++++++++++++++ .../wild_vision_bench0617.yaml | 9 + 10 files changed, 266 insertions(+), 3 deletions(-) create mode 100644 lmms_eval/tasks/wild_vision_bench/_default_template_yaml create mode 100644 lmms_eval/tasks/wild_vision_bench/utils.py create mode 100644 lmms_eval/tasks/wild_vision_bench/wild_vision_bench0617.yaml diff --git a/lmms_eval/__main__.py b/lmms_eval/__main__.py index 96be8f06..159ac5a6 100755 --- a/lmms_eval/__main__.py +++ b/lmms_eval/__main__.py @@ -1,3 +1,4 @@ +import importlib import os import yaml import sys @@ -236,6 +237,12 @@ def cli_evaluate_single(args: Union[argparse.Namespace, None] = None) -> None: eval_logger.info(f"Including path: {args.include_path}") include_path(args.include_path) + if os.environ.get("LMMS_EVAL_PLUGINS", None): + for plugin in os.environ["LMMS_EVAL_PLUGINS"].split(","): + package_tasks_location = importlib.util.find_spec(f"{plugin}.tasks").submodule_search_locations[0] + eval_logger.info(f"Including path: {args.include_path}") + include_path(package_tasks_location) + if args.tasks is None: task_names = ALL_TASKS elif args.tasks == "list": diff --git a/lmms_eval/evaluator.py b/lmms_eval/evaluator.py index b05f00d1..6788467e 100755 --- a/lmms_eval/evaluator.py +++ b/lmms_eval/evaluator.py @@ -325,7 +325,12 @@ def evaluate( # hack: remove image columns to speed avoid loading images and speed up postprocessing # reason: doc_iterator will actually load image if it's in the doc. docs = task.test_docs() if task.has_test_docs() else task.validation_docs() - if "d170" not in task_name and "dc100" not in task_name and "dc200" not in task_name and "llava_wilder" not in task_name and "live_bench" not in task_name: + if "d170" not in task_name \ + and "dc100" not in task_name \ + and "dc200" not in task_name \ + and "llava_wilder" not in task_name \ + and "livebench" not in task_name \ + and "wildvision" not in task_name: remove_cols = [] features = docs.features # If it is an Image instance or a Sequence of Image instance. Remove it diff --git a/lmms_eval/models/__init__.py b/lmms_eval/models/__init__.py index a7f2fb39..17100e95 100755 --- a/lmms_eval/models/__init__.py +++ b/lmms_eval/models/__init__.py @@ -1,3 +1,6 @@ +import importlib +import os +import hf_transfer from loguru import logger import sys @@ -28,6 +31,8 @@ "mplug_owl_video": "mplug_Owl", "phi3v": "Phi3v", "tinyllava": "TinyLlava", + "llava_hf": "LlavaHf", + "longva": "LongVA", "llava_onevision": "Llava_OneVision", "llava_hf": "LlavaHf", "longva": "LongVA", @@ -39,3 +44,17 @@ except ImportError as e: # logger.warning(f"Failed to import {model_class} from {model_name}: {e}") pass + +if os.environ.get("LMMS_EVAL_PLUGINS", None): + # Allow specifying other packages to import models from + for plugin in os.environ["LMMS_EVAL_PLUGINS"].split(","): + m = importlib.import_module(f"{plugin}.models") + for model_name, model_class in getattr(m, "AVAILABLE_MODELS").items(): + try: + exec(f"from {plugin}.models.{model_name} import {model_class}") + except ImportError: + pass + +import hf_transfer + +os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1" diff --git a/lmms_eval/models/longva.py b/lmms_eval/models/longva.py index c5bf6861..c599d344 100644 --- a/lmms_eval/models/longva.py +++ b/lmms_eval/models/longva.py @@ -458,4 +458,4 @@ def _collate(x): res = re_ords.get_original(res) pbar.close() - return res + return res \ No newline at end of file diff --git a/lmms_eval/tasks/activitynetqa/activitynetqa_generation.yaml b/lmms_eval/tasks/activitynetqa/activitynetqa_generation.yaml index fe0c18e4..fd7e069a 100755 --- a/lmms_eval/tasks/activitynetqa/activitynetqa_generation.yaml +++ b/lmms_eval/tasks/activitynetqa/activitynetqa_generation.yaml @@ -1,4 +1,3 @@ -dataset_name: "Generation" task: "activitynetqa" test_split: test output_type: generate_until diff --git a/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml b/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml index ac34cdf4..b7724748 100644 --- a/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml +++ b/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml @@ -26,6 +26,11 @@ metric_list: model_specific_prompt_kwargs: default: frame_num: 32 +<<<<<<< HEAD + pre_prompt: "" + post_prompt: "\nAnswer the question using a single word or phrase." +======= +>>>>>>> internal_main_dev gemini_api: gemini_api_flag: "full subtitle" # gpt4v: diff --git a/lmms_eval/tasks/websrc/utils.py b/lmms_eval/tasks/websrc/utils.py index 6e2584a4..7286cd62 100644 --- a/lmms_eval/tasks/websrc/utils.py +++ b/lmms_eval/tasks/websrc/utils.py @@ -63,7 +63,15 @@ def websrc_test_aggregate_results_for_submission(results, args): for result in results: out.update(result) json.dump(out, f, indent=4) +<<<<<<< HEAD +<<<<<<< HEAD eval_logger.info(f"Results saved to {path}.") +======= + lmms_logger.info(f"Results saved to {path}.") +>>>>>>> internal_main_dev +======= + eval_logger.info(f"Results saved to {path}.") +>>>>>>> internal_main_dev def websrc_aggregate_results(results): diff --git a/lmms_eval/tasks/wild_vision_bench/_default_template_yaml b/lmms_eval/tasks/wild_vision_bench/_default_template_yaml new file mode 100644 index 00000000..7ce709dc --- /dev/null +++ b/lmms_eval/tasks/wild_vision_bench/_default_template_yaml @@ -0,0 +1,23 @@ +dataset_path: WildVision/wildvision-arena-data +dataset_kwargs: + token: True +output_type: generate_until +doc_to_visual: !function utils.wild_vision_doc_to_visual +doc_to_text: !function utils.wild_vision_doc_to_text +doc_to_target: !function utils.wild_vision_doc_to_target +generation_kwargs: + max_new_tokens: 4096 + temperature: 0 + top_p: 1.0 + num_beams: 1 + do_sample: false +# The return value of process_results will be used by metrics +process_results: !function utils.wild_vision_process_results +# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results +metric_list: + - metric: gpt_eval_score + aggregation: !function utils.wild_vision_aggregation + higher_is_better: true +metadata: + judge_model: gpt-4o + baseline_model: claude-3-sonnet-20240229 diff --git a/lmms_eval/tasks/wild_vision_bench/utils.py b/lmms_eval/tasks/wild_vision_bench/utils.py new file mode 100644 index 00000000..bb426557 --- /dev/null +++ b/lmms_eval/tasks/wild_vision_bench/utils.py @@ -0,0 +1,188 @@ +import json +import re +import os +import requests +import numpy as np +import time +import yaml +from pathlib import Path +from copy import deepcopy +from io import BytesIO +import base64 + +from loguru import logger as eval_logger + +NUM_SECONDS_TO_SLEEP = 5 + + +with open(Path(__file__).parent / "_default_template_yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + + config = yaml.safe_load("".join(safe_data)) + +GPT_EVAL_MODEL_NAME = config["metadata"]["judge_model"] +BASELINE_MODEL_NAME = config["metadata"]["baseline_model"] + +API_TYPE = os.getenv("API_TYPE", "openai") + +if API_TYPE == "openai": + API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") + API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") + headers = { + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json", + } +elif API_TYPE == "azure": + API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") + API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") + headers = { + "api-key": API_KEY, + "Content-Type": "application/json", + } + +system_prompt = """\ +Please act as an impartial judge and evaluate the quality of the responses provided by two AI assistants to the user prompt displayed below. You will be given assistant A's answer and assistant B's answer. Your job is to evaluate which assistant's answer is better. + +Begin your evaluation by generating your own answer to the prompt. You must provide your answers before judging any answers. + +When evaluating the assistants' answers, compare both assistants' answers with your answer. You must identify and correct any mistakes or inaccurate information. + +Then consider if the assistant's answers are helpful, relevant, and concise. Helpful means the answer correctly responds to the prompt or follows the instructions. Note when user prompt has any ambiguity or more than one interpretation, it is more helpful and appropriate to ask for clarifications or more information from the user than providing an answer based on assumptions. Relevant means all parts of the response closely connect or are appropriate to what is being asked. Concise means the response is clear and not verbose or excessive. + +Then consider the creativity and novelty of the assistant's answers when needed. Finally, identify any missing important information in the assistants' answers that would be beneficial to include when responding to the user prompt. + +After providing your explanation, you must output only one of the following choices as your final verdict with a label: + +1. Assistant A is significantly better: [[A>>B]] +2. Assistant A is slightly better: [[A>B]] +3. Tie, relatively the same: [[A=B]] +4. Assistant B is slightly better: [[B>A]] +5. Assistant B is significantly better: [[B>>A]] + +Example output: "My final verdict is tie: [[A=B]]".\ +""" + +prompt_template = "<|User Prompt|>\n{question_1}\n\n<|The Start of Assistant A's Answer|>\n{answer_1}\n<|The End of Assistant A's Answer|>\n\n<|The Start of Assistant B's Answer|>\n{answer_2}\n<|The End of Assistant B's Answer|>" + +def get_chat_response(base64_image, prompt, max_retries=5, wait_time=10): + headers = { + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json", + } + + payload = { + "model": GPT_EVAL_MODEL_NAME, + "messages": [ + {"role": "system", "content": [{"type": "text", "text": system_prompt}]}, + { + "role": "user", + "content": [ + {"type": "text", "text": prompt}, + {"type": "image_url", + "image_url" : { + "url" : f"data:image/jpeg;base64, {base64_image}" + } + }, + ], + } + ], + "max_tokens": 1024, + "temperature": 0.0, + } + + for attempt in range(max_retries): + try: + response = requests.post(API_URL, headers=headers, json=payload, timeout=60) + response.raise_for_status() + response_data = response.json() + return response_data["choices"][0]["message"]["content"], GPT_EVAL_MODEL_NAME + except requests.exceptions.RequestException as e: + print(f"Request failed on attempt {attempt+1}: {e}") + if attempt == max_retries - 1: + print(f"Failed to get response after {max_retries} attempts") + return "", GPT_EVAL_MODEL_NAME + except Exception as e: + print(f"Error on attempt {attempt+1}: {e}") + return "", GPT_EVAL_MODEL_NAME + + + +def image_to_base64(pil_image): + buffered = BytesIO() + pil_image.save(buffered, format="PNG") + return base64.b64encode(buffered.getvalue()).decode("utf-8") + +def get_score(judgement, pattern, pairwise=True): + matches = pattern.findall(judgement) + matches = [m for m in matches if m != ""] + if len(set(matches)) == 0: + return None, True + elif len(set(matches)) == 1: + if pairwise: + return matches[0].strip("\n"), False + return int(matches[0]) + else: + return None, False + +def wild_vision_doc_to_visual(doc): + return [doc["image"].convert('RGB')] + + +def wild_vision_doc_to_text(doc, model_specific_prompt_kwargs=None): + question = doc["instruction"].strip() + if "pre_prompt" in model_specific_prompt_kwargs and model_specific_prompt_kwargs["pre_prompt"] != "": + question = f"{model_specific_prompt_kwargs['pre_prompt']}{question}" + if "post_prompt" in model_specific_prompt_kwargs and model_specific_prompt_kwargs["post_prompt"] != "": + question = f"{question}{model_specific_prompt_kwargs['post_prompt']}" + return question + +def wild_vision_doc_to_target(doc): + return doc[BASELINE_MODEL_NAME] + + +def wild_vision_process_results(doc, results): + pred = results[0] + user_prompt = prompt_template.format(question_1=doc["instruction"], answer_1=doc[BASELINE_MODEL_NAME], answer_2=pred) + base64_image = image_to_base64(doc["image"]) + resps, gpt_name = get_chat_response(base64_image, user_prompt) + score, _ = get_score(resps, pattern=re.compile("\[\[([AB<>=]+)\]\]")) + + if score is None: + score = resps + + if "A>B" in score: + final_score = -1 + judgement = "Worse" #Baseline better + elif "A>>B" in score: + final_score = -2 + judgement = "Worse++" + elif "A=B" in score: + final_score = 0 + judgement = "Tie" + elif "B>A" in score: + final_score = 1 + judgement = "Better" + elif "B>>A" in score: + final_score = 2 + judgement = "Better++" + else: + final_score = 0 + judgement = "Unclear" + + + return {"gpt_eval_score" : {"question" : doc["instruction"], "score" : final_score, "gpt_resps" : resps, "ans_1" : doc[BASELINE_MODEL_NAME], "ans_2" : pred, "filtered_resps" : score, "judgement" : judgement}} + + +def wild_vision_aggregation(results): + score = 0 + for res in results: + score += res["score"] + + return score / len(results) + + diff --git a/lmms_eval/tasks/wild_vision_bench/wild_vision_bench0617.yaml b/lmms_eval/tasks/wild_vision_bench/wild_vision_bench0617.yaml new file mode 100644 index 00000000..93576768 --- /dev/null +++ b/lmms_eval/tasks/wild_vision_bench/wild_vision_bench0617.yaml @@ -0,0 +1,9 @@ +task: wildvision_0617 +dataset_name: release_bench_0617_with_modelresponse +test_split: test500 +output_type: generate_until +include: _default_template_yaml +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "" From eb261f6e9e1ec630f9d07287102dbd80f1ed2173 Mon Sep 17 00:00:00 2001 From: Li Bo Date: Fri, 5 Jul 2024 02:34:27 +0800 Subject: [PATCH 13/32] Dev/interleave bench (#132) * feat: Update LMMS evaluation configuration and models - Update `activitynetqa_generation.yaml` to remove `dataset_name` field and update `task` field to "activitynetqa" - Update `utils.py` to add default values for `API_URL` and `API_KEY` when `API_TYPE` is not "openai" or "azure" - Update `batch_gpt4.py` and `gpt4v.py` to rename `max_frames_for_video` parameter to `max_frames_num` - Update `reka.py` to rename `max_frames_for_video` parameter to `max_frames_num` and add support for `continual_mode` with a persistent response cache This commit updates the LMMS evaluation configuration and models to improve compatibility and add new features. * Update LMMS evaluation configuration and models * Update LMMS evaluation configuration and models * feat: Update LMMS evaluation configuration and models - Update `activitynetqa_generation.yaml` to remove `dataset_name` field and update `task` field to "activitynetqa" - Update `utils.py` to add default values for `API_URL` and `API_KEY` when `API_TYPE` is not "openai" or "azure" - Update `batch_gpt4.py` and `gpt4v.py` to rename `max_frames_for_video` parameter to `max_frames_num` - Update `reka.py` to rename `max_frames_for_video` parameter to `max_frames_num` and add support for `continual_mode` with a persistent response cache This commit updates the LMMS evaluation configuration and models to improve compatibility and add new features. * Refactor error handling in GPT4V model evaluation * Refactor error handling in GPT4V model evaluation * Refactor video decoding backend to use "decord" instead of "pyav" * Refactor image aspect ratio handling in Llava_OneVision model * Refactor GPT4V model to fix bug in visuals encoding * add exception for azure gpt --- lmms_eval/__main__.py | 2 +- lmms_eval/models/batch_gpt4.py | 6 +- lmms_eval/models/claude.py | 44 +- lmms_eval/models/gpt4v.py | 73 ++- lmms_eval/models/llava_onevision.py | 565 ++++++++++++++++++ lmms_eval/models/reka.py | 35 +- lmms_eval/models/xcomposer2_4KHD.py | 295 --------- lmms_eval/tasks/__init__.py | 2 +- .../_default_template_interleave_yaml | 9 + .../llava_interleave_bench/in_domain.yaml | 29 + .../multi_view_in_domain.yaml | 29 + .../llava_interleave_bench/out_of_domain.yaml | 29 + .../tasks/llava_interleave_bench/utils.py | 331 ++++++++++ .../tasks/mix_evals/_default_template_yaml | 16 + .../tasks/mix_evals/mix_evals_video2text.yaml | 5 + .../mix_evals_video2text_freeform.yaml | 22 + .../mix_evals/mix_evals_video2text_mc.yaml | 31 + .../mix_evals_video2text_openended.yaml | 22 + .../mix_evals_video2text_openended_2nd.yaml | 23 + lmms_eval/tasks/mix_evals/utils.py | 284 +++++++++ lmms_eval/tasks/mmupd/utils.py | 3 + pyproject.toml | 1 + 22 files changed, 1503 insertions(+), 353 deletions(-) create mode 100644 lmms_eval/models/llava_onevision.py delete mode 100644 lmms_eval/models/xcomposer2_4KHD.py create mode 100644 lmms_eval/tasks/llava_interleave_bench/_default_template_interleave_yaml create mode 100644 lmms_eval/tasks/llava_interleave_bench/in_domain.yaml create mode 100644 lmms_eval/tasks/llava_interleave_bench/multi_view_in_domain.yaml create mode 100644 lmms_eval/tasks/llava_interleave_bench/out_of_domain.yaml create mode 100644 lmms_eval/tasks/llava_interleave_bench/utils.py create mode 100644 lmms_eval/tasks/mix_evals/_default_template_yaml create mode 100644 lmms_eval/tasks/mix_evals/mix_evals_video2text.yaml create mode 100644 lmms_eval/tasks/mix_evals/mix_evals_video2text_freeform.yaml create mode 100644 lmms_eval/tasks/mix_evals/mix_evals_video2text_mc.yaml create mode 100644 lmms_eval/tasks/mix_evals/mix_evals_video2text_openended.yaml create mode 100644 lmms_eval/tasks/mix_evals/mix_evals_video2text_openended_2nd.yaml create mode 100644 lmms_eval/tasks/mix_evals/utils.py diff --git a/lmms_eval/__main__.py b/lmms_eval/__main__.py index 159ac5a6..996e1e53 100755 --- a/lmms_eval/__main__.py +++ b/lmms_eval/__main__.py @@ -165,7 +165,7 @@ def cli_evaluate(args: Union[argparse.Namespace, None] = None) -> None: # reset logger eval_logger.remove() eval_logger.add(sys.stdout, colorize=True, level=args.verbosity) - eval_logger.add(sys.stderr, level=args.verbosity) + # eval_logger.add(sys.stderr, level=args.verbosity) eval_logger.info(f"Verbosity set to {args.verbosity}") os.environ["TOKENIZERS_PARALLELISM"] = "false" diff --git a/lmms_eval/models/batch_gpt4.py b/lmms_eval/models/batch_gpt4.py index 8f4c2220..7541b709 100755 --- a/lmms_eval/models/batch_gpt4.py +++ b/lmms_eval/models/batch_gpt4.py @@ -59,7 +59,7 @@ def __init__( api_key: str = API_KEY, api_url: str = API_URL, modality: str = "image", - max_frames_for_video: int = 10, + max_frames_num: int = 10, timeout: int = 120, **kwargs, ) -> None: @@ -69,7 +69,7 @@ def __init__( # Here we just use the same token as llava for convenient self.model_version = model_version self.modality = modality - self.max_frames_for_video = max_frames_for_video + self.max_frames_num = max_frames_num self.image_token = "" self.timeout = timeout @@ -128,7 +128,7 @@ def generate_until(self, requests): img = self.encode_image(visual) imgs.append(img) elif self.modality == "video": - frames = self.encode_video(visual, self.max_frames_for_video) + frames = self.encode_video(visual, self.max_frames_num) imgs.extend(frames) messages = [] diff --git a/lmms_eval/models/claude.py b/lmms_eval/models/claude.py index ff066d35..e843871c 100644 --- a/lmms_eval/models/claude.py +++ b/lmms_eval/models/claude.py @@ -40,6 +40,7 @@ def __init__( image_token: str = "", # Use to separate interleaved image and text system_prompt: str = "", # Whether you want some special system prompt here modality: str = "image", + max_frames_num: int = 10, continual_mode: bool = False, response_persistent_folder: str = None, **kwargs, @@ -49,20 +50,24 @@ def __init__( self.image_token = image_token self.system_prompt = system_prompt self.modality = modality + self.max_frames_num = max_frames_num self.continual_mode = continual_mode - if self.continual_mode and response_persistent_folder is None: - raise ValueError("Continual mode requires a persistent path for the response. Please provide a valid path.") - self.response_persistent_folder = response_persistent_folder - self.response_persistent_file = os.path.join(self.response_persistent_folder, f"{self.model_version}_response.json") - - if os.path.exists(self.response_persistent_file): - with open(self.response_persistent_file, "r") as f: - self.response_cache = json.load(f) - self.cache_mode = "resume" - else: - self.response_cache = {} - self.cache_mode = "start" + if self.continual_mode: + if response_persistent_folder is None: + raise ValueError("Continual mode requires a persistent path for the response. Please provide a valid path.") + + os.makedirs(response_persistent_folder, exist_ok=True) + self.response_persistent_folder = response_persistent_folder + self.response_persistent_file = os.path.join(self.response_persistent_folder, f"{self.model_version}_response.json") + + if os.path.exists(self.response_persistent_file): + with open(self.response_persistent_file, "r") as f: + self.response_cache = json.load(f) + self.cache_mode = "resume" + else: + self.response_cache = {} + self.cache_mode = "start" accelerator = Accelerator() if accelerator.num_processes > 1: @@ -81,7 +86,7 @@ def __init__( def encode_image(self, image): output_buffer = BytesIO() - image.save(output_buffer, format="PNG") + image.save(output_buffer, format="JPEG") byte_data = output_buffer.getvalue() base64_str = base64.b64encode(byte_data).decode("utf-8") return base64_str @@ -129,7 +134,7 @@ def shrink_image_to_file_size(self, img: Image, max_file_size=4838990) -> Image: def encode_video(self, video_path): vr = VideoReader(video_path, ctx=cpu(0)) total_frame_num = len(vr) - uniform_sampled_frames = np.linspace(0, total_frame_num - 1, self.max_frames_for_video, dtype=int) + uniform_sampled_frames = np.linspace(0, total_frame_num - 1, self.max_frames_num, dtype=int) frame_idx = uniform_sampled_frames.tolist() frames = vr.get_batch(frame_idx).asnumpy() @@ -137,10 +142,10 @@ def encode_video(self, video_path): for frame in frames: img = Image.fromarray(frame) output_buffer = BytesIO() - img.save(output_buffer, format="PNG") + img.save(output_buffer, format="JPEG") byte_data = output_buffer.getvalue() base64_str = base64.b64encode(byte_data).decode("utf-8") - base64_frames.append(f"data:image/jpeg;base64,{base64_str}") + base64_frames.append(f"{base64_str}") return base64_frames @@ -154,7 +159,7 @@ def generate_until(self, requests) -> List[str]: "type": "image", "source": { "type": "base64", - "media_type": "image/png", + "media_type": "image/jpeg", }, } empty_text_block = {"type": "text"} @@ -220,8 +225,8 @@ def generate_until(self, requests) -> List[str]: gen_kwargs["max_new_tokens"] = 1024 if "temperature" not in gen_kwargs: gen_kwargs["temperature"] = 0 - if "top_p" not in gen_kwargs: - gen_kwargs["top_p"] = None + if "top_p" not in gen_kwargs or gen_kwargs["top_p"] is None: + gen_kwargs["top_p"] = 1 if "num_beams" not in gen_kwargs: gen_kwargs["num_beams"] = 1 @@ -244,6 +249,7 @@ def generate_until(self, requests) -> List[str]: ###################### CONTINUAL MODE ###################### if self.continual_mode is True: # Cache the response + response_text = message.content[0].text doc_uuid = f"{task}___{split}___{doc_id}" self.response_cache[doc_uuid] = response_text with open(self.response_persistent_file, "w") as f: diff --git a/lmms_eval/models/gpt4v.py b/lmms_eval/models/gpt4v.py index 1a47aa76..5f89cc5d 100755 --- a/lmms_eval/models/gpt4v.py +++ b/lmms_eval/models/gpt4v.py @@ -7,15 +7,13 @@ from tqdm import tqdm import requests as url_requests import time - +import json from lmms_eval.api.instance import Instance from lmms_eval.api.model import lmms from lmms_eval.api.registry import register_model -from lmms_eval import utils -from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs -from accelerate.state import AcceleratorState +from accelerate import Accelerator, DistributedType try: from decord import VideoReader, cpu @@ -50,8 +48,10 @@ def __init__( self, model_version: str = "gpt-4-vision-preview", modality: str = "video", - max_frames_for_video: int = 10, + max_frames_num: int = 10, timeout: int = 120, + continual_mode: bool = False, + response_persistent_folder: str = None, **kwargs, ) -> None: super().__init__() @@ -60,9 +60,25 @@ def __init__( # Here we just use the same token as llava for convenient self.model_version = model_version self.modality = modality - self.max_frames_for_video = max_frames_for_video + self.max_frames_num = max_frames_num self.image_token = "" self.timeout = timeout + self.continual_mode = continual_mode + if self.continual_mode: + if response_persistent_folder is None: + raise ValueError("Continual mode requires a persistent path for the response. Please provide a valid path.") + + os.makedirs(response_persistent_folder, exist_ok=True) + self.response_persistent_folder = response_persistent_folder + self.response_persistent_file = os.path.join(self.response_persistent_folder, f"{self.model_version}_response.json") + + if os.path.exists(self.response_persistent_file): + with open(self.response_persistent_file, "r") as f: + self.response_cache = json.load(f) + self.cache_mode = "resume" + else: + self.response_cache = {} + self.cache_mode = "start" accelerator = Accelerator() # assert self.batch_size_per_gpu == 1, "Llava currently does not support batched generation. See https://github.com/haotian-liu/LLaVA/issues/754. HF Llava also has this issue." @@ -119,9 +135,16 @@ def generate_until(self, requests) -> List[str]: pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: - # encode, pad, and truncate contexts for this batch + if self.continual_mode is True and self.cache_mode == "resume": + doc_uuid = f"{task}___{split}___{doc_id}" + if doc_uuid in self.response_cache: + response_text = self.response_cache[doc_uuid] + if response_text: + res.append(response_text) + pbar.update(1) + continue + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] - # visuals = [doc_to_visual(self.task_dict[task][split][0])] visuals = self.flatten(visuals) imgs = [] # multiple images or frames for video for visual in visuals: @@ -129,10 +152,13 @@ def generate_until(self, requests) -> List[str]: img = self.encode_image(visual) imgs.append(img) elif self.modality == "video": - frames = self.encode_video(visual, self.max_frames_for_video) + frames = self.encode_video(visual, self.max_frames_num) imgs.extend(frames) - payload = {"model": self.model_version, "messages": []} + payload = {"messages": []} + if API_TYPE == "openai": + payload["model"] = self.model_version + response_json = {"role": "user", "content": []} # When there is no image token in the context, append the image to the text if self.image_token not in contexts: @@ -170,19 +196,30 @@ def generate_until(self, requests) -> List[str]: response = url_requests.post(API_URL, headers=headers, json=payload, timeout=self.timeout) response_data = response.json() - content = response_data["choices"][0]["message"]["content"].strip() + response_text = response_data["choices"][0]["message"]["content"].strip() break # If successful, break out of the loop except Exception as e: - eval_logger.info(f"Attempt {attempt + 1} failed with error: {str(e)}") - if attempt < 5 - 1: # If we have retries left, sleep and then continue to next attempt + try: + error_msg = response.json() + except: + error_msg = "" + + eval_logger.info(f"Attempt {attempt + 1} failed with error: {str(e)}.\nReponse: {error_msg}") + if attempt <= 5: time.sleep(NUM_SECONDS_TO_SLEEP) - else: # If this was the last attempt, log and return empty - eval_logger.error(f"All 5 attempts failed. Last error message: {str(e)}") - eval_logger.error(f"Response: {response}") - content = "" - res.append(content) + else: # If this was the last attempt, log and return empty string + eval_logger.error(f"All 5 attempts failed. Last error message: {str(e)}.\nResponse: {response.json()}") + response_text = "" + res.append(response_text) pbar.update(1) + + if self.continual_mode is True: # Cache the response + doc_uuid = f"{task}___{split}___{doc_id}" + self.response_cache[doc_uuid] = response_text + with open(self.response_persistent_file, "w") as f: + json.dump(self.response_cache, f) + pbar.close() return res diff --git a/lmms_eval/models/llava_onevision.py b/lmms_eval/models/llava_onevision.py new file mode 100644 index 00000000..5cfbb538 --- /dev/null +++ b/lmms_eval/models/llava_onevision.py @@ -0,0 +1,565 @@ +from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs +from accelerate.state import AcceleratorState +from transformers import AutoConfig + +import math +import torch +import transformers +import re + +torch.backends.cuda.matmul.allow_tf32 = True + +from tqdm import tqdm +from datetime import timedelta +from decord import VideoReader, cpu +import numpy as np + +import copy +import PIL +from typing import List, Optional, Union, Tuple +from packaging import version +import warnings +import logging + +warnings.filterwarnings("ignore") + +eval_logger = logging.getLogger("lmms-eval") + +from lmms_eval import utils +from lmms_eval.api.instance import Instance +from lmms_eval.api.model import lmms +from lmms_eval.api.registry import register_model +from lmms_eval.models.model_utils.load_video import read_video_pyav + +try: + from llava.model.builder import load_pretrained_model + from llava.mm_utils import get_model_name_from_path, process_images, tokenizer_image_token, KeywordsStoppingCriteria + from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX + from llava.conversation import conv_templates, SeparatorStyle + +except Exception as e: + eval_logger.debug("LLaVA is not installed. Please install LLaVA to use this model.\nError: %s" % e) + +try: + from llavavid.model.language_model.llava_qwen import LlavaQwenConfig + from llavavid.model.language_model.llava_llama import LlavaConfig + + AutoConfig.register("llava_qwen", LlavaQwenConfig) + AutoConfig.register("llava_llama", LlavaConfig) +except Exception as e: + eval_logger.debug("") +# inference implementation for attention, can be "sdpa", "eager", "flash_attention_2". Seems FA2 is not effective during inference: https://discuss.huggingface.co/t/flash-attention-has-no-effect-on-inference/73453/5 +# if is_flash_attn_2_available: +# best_fit_attn_implementation = "flash_attention_2" # flash_attn has a bug that says: ERROR Error query and key must have the same dtype in generating + +if version.parse(torch.__version__) >= version.parse("2.1.2"): + best_fit_attn_implementation = "sdpa" +else: + best_fit_attn_implementation = "eager" + + +@register_model("llava_onevision") +class Llava_OneVision(lmms): + """ + Llava Model + """ + + def __init__( + self, + pretrained: str = "liuhaotian/llava-v1.5-7b", + truncation: Optional[bool] = True, + device: Optional[str] = "cuda:0", + batch_size: Optional[Union[int, str]] = 1, + model_name: Optional[str] = None, + attn_implementation: Optional[str] = best_fit_attn_implementation, + device_map: Optional[str] = "cuda:0", + conv_template: Optional[str] = "vicuna_v1", + use_cache: Optional[bool] = True, + truncate_context: Optional[bool] = False, # whether to truncate the context in generation, set it False for LLaVA-1.6 + customized_config: Optional[str] = None, # ends in json + max_frames_num: Optional[int] = 32, + mm_spatial_pool_stride: Optional[int] = 2, + mm_spatial_pool_mode: Optional[str] = "average", + token_strategy: Optional[str] = "single", # could be "single" or "multiple", "multiple" denotes adding multiple tokens for each frame + video_decode_backend: str = "decord", + **kwargs, + ) -> None: + super().__init__() + # Do not use kwargs for now + assert kwargs == {}, f"Unexpected kwargs: {kwargs}" + + accelerator_kwargs = InitProcessGroupKwargs(timeout=timedelta(weeks=52)) + accelerator = Accelerator(kwargs_handlers=[accelerator_kwargs]) + if accelerator.num_processes > 1: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + elif accelerator.num_processes == 1 and device_map == "auto": + self._device = torch.device(device) + self.device_map = device_map + else: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + + llava_model_args = { + "multimodal": True, + } + if customized_config is not None: + llava_model_args["customized_config"] = customized_config + if attn_implementation is not None: + llava_model_args["attn_implementation"] = attn_implementation + if "use_flash_attention_2" in kwargs: + llava_model_args["use_flash_attention_2"] = kwargs["use_flash_attention_2"] + model_name = model_name if model_name is not None else get_model_name_from_path(pretrained) + + self.pretrained = pretrained + self.token_strategy = token_strategy + self.max_frames_num = max_frames_num + self.mm_spatial_pool_stride = mm_spatial_pool_stride + self.mm_spatial_pool_mode = mm_spatial_pool_mode + self.video_decode_backend = video_decode_backend + + overwrite_config = {} + overwrite_config["mm_spatial_pool_stride"] = self.mm_spatial_pool_stride + overwrite_config["mm_spatial_pool_mode"] = self.mm_spatial_pool_mode + cfg_pretrained = AutoConfig.from_pretrained(self.pretrained) + + if cfg_pretrained.architectures[0] == "LlavaLlamaForCausalLM": # Ugly code, only used in vicuna that needs ROPE + if "224" in cfg_pretrained.mm_vision_tower: + least_token_number = self.max_frames_num * (16 // self.mm_spatial_pool_stride) ** 2 + 1000 + else: + least_token_number = self.max_frames_num * (24 // self.mm_spatial_pool_stride) ** 2 + 1000 + + scaling_factor = math.ceil(least_token_number / 4096) + if scaling_factor >= 2: + overwrite_config["rope_scaling"] = {"factor": float(scaling_factor), "type": "linear"} + overwrite_config["max_sequence_length"] = 4096 * scaling_factor + overwrite_config["tokenizer_model_max_length"] = 4096 * scaling_factor + + llava_model_args["overwrite_config"] = overwrite_config + try: + # Try to load the model with the multimodal argument + self._tokenizer, self._model, self._image_processor, self._max_length = load_pretrained_model(pretrained, None, model_name, device_map=self.device_map, **llava_model_args) + except TypeError: + # for older versions of LLaVA that don't have multimodal argument + llava_model_args.pop("multimodal", None) + self._tokenizer, self._model, self._image_processor, self._max_length = load_pretrained_model(pretrained, None, model_name, device_map=self.device_map, **llava_model_args) + + self._config = self._model.config + self.model.eval() + self.model.tie_weights() + self.truncation = truncation + self.batch_size_per_gpu = int(batch_size) + self.conv_template = conv_template + self.use_cache = use_cache + self.truncate_context = truncate_context + assert self.batch_size_per_gpu == 1, "Llava currently does not support batched generation. See https://github.com/haotian-liu/LLaVA/issues/754. HF Llava also has this issue." + + if accelerator.num_processes > 1: + assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." + # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model + # Also, you have to select zero stage 0 (equivalent to DDP) in order to make the prepare model works + # I tried to set different parameters in the kwargs to let default zero 2 stage works, but it didn't work. + if accelerator.distributed_type == DistributedType.DEEPSPEED: + kwargs = { + "train_micro_batch_size_per_gpu": self.batch_size_per_gpu, + "train_batch_size": self.batch_size_per_gpu * accelerator.num_processes, + } + AcceleratorState().deepspeed_plugin.deepspeed_config_process(must_match=True, **kwargs) + eval_logger.info("Detected that you are using DistributedType.DEEPSPEED. Make sure you run `accelerate config` and set zero stage to 0") + + if accelerator.distributed_type == DistributedType.FSDP or accelerator.distributed_type == DistributedType.DEEPSPEED: + self._model = accelerator.prepare(self.model) + else: + self._model = accelerator.prepare_model(self.model, evaluation_mode=True) + self.accelerator = accelerator + if self.accelerator.is_local_main_process: + eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") + self._rank = self.accelerator.local_process_index + self._world_size = self.accelerator.num_processes + + elif accelerator.num_processes == 1 and device_map == "auto": + eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") + self._rank = 0 + self._word_size = 1 + + else: + eval_logger.info(f"Using single device: {self._device}") + self.model.to(self._device) + self._rank = 0 + self._world_size = 1 + + @property + def config(self): + # return the associated transformers.AutoConfig for the given pretrained model. + return self._config + + @property + def tokenizer(self): + return self._tokenizer + + @property + def model(self): + # returns the model, unwrapping it if using Accelerate + if hasattr(self, "accelerator"): + return self.accelerator.unwrap_model(self._model) + else: + return self._model + + @property + def eot_token_id(self): + # we use EOT because end of *text* is more accurate for what we're doing than end of *sentence* + return self.tokenizer.eos_token_id + + @property + def max_length(self): + return self._max_length + + def pad_sequence(self, input_ids, batch_first, padding_value): + if self.tokenizer.padding_side == "left": + input_ids = [torch.flip(_input_ids, [0]) for _input_ids in input_ids] + input_ids = torch.nn.utils.rnn.pad_sequence(input_ids, batch_first=batch_first, padding_value=padding_value) + if self.tokenizer.padding_side == "left": + input_ids = torch.flip(input_ids, [1]) + return input_ids + + @property + def batch_size(self): + return self.batch_size_per_gpu + + @property + def device(self): + return self._device + + @property + def rank(self): + return self._rank + + @property + def world_size(self): + return self._world_size + + def tok_encode(self, string: str, left_truncate_len=None, add_special_tokens=None) -> List[int]: + """ """ + add_special_tokens = False if add_special_tokens is None else add_special_tokens + encoding = self.tokenizer.encode(string, add_special_tokens=add_special_tokens) + # left-truncate the encoded context to be at most `left_truncate_len` tokens long + if left_truncate_len: + encoding = encoding[-left_truncate_len:] + return encoding + + def tok_decode(self, tokens): + try: + return self.tokenizer.decode(tokens) + except: + return self.tokenizer.decode([tokens]) + + def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: + # TODO + res = [] + pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") + + for contexts, doc_to_target, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: + # encode, pad, and truncate contexts for this batch + if type(doc_to_target) == str: + continuation = doc_to_target + else: + continuation = doc_to_target(self.task_dict[task][split][doc_id]) + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] + visuals = self.flatten(visuals) + image_sizes = [[visual.size[0], visual.size[1]] for visual in visuals] + if visuals: + image = process_images(visuals, self._image_processor, self._config) + if type(image) is list: + image = [_image.to(dtype=torch.float16, device=self.device) for _image in image] + else: + image = image.to(dtype=torch.float16, device=self.device) + else: + image = None + + prompts_input = contexts[0] if isinstance(contexts, list) else contexts + + if image is not None and len(image) != 0 and DEFAULT_IMAGE_TOKEN not in prompts_input: + """ + Three senarios: + 1. No image, and there for, no image token should be added. + 2. image token is already specified in the context, so we don't need to add it. + 3. image token is not specified in the context and there is image inputs, so we need to add it. In this case, we add the image token at the beginning of the context and add a new line. + """ + image_tokens = [DEFAULT_IMAGE_TOKEN] * len(visuals) + image_tokens = " ".join(image_tokens) + prompts_input = image_tokens + "\n" + (contexts[0] if isinstance(contexts, list) else contexts) + + # This is much safer for llama3, as we now have some object type in it + if "llama_3" in self.conv_template: + conv = copy.deepcopy(conv_templates[self.conv_template]) + else: + conv = conv_templates[self.conv_template].copy() + + conv.append_message(conv.roles[0], prompts_input) + conv.append_message(conv.roles[1], None) + prompt = conv.get_prompt() + pad_token_id = self.tokenizer.pad_token_id if self.tokenizer.pad_token_id is not None else self.tokenizer.eos_token_id + contxt_id = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) + # Add the answer of the second role + conv.messages[1][1] = continuation + + prompt = conv.get_prompt() + input_ids = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) + labels = input_ids.clone() + # Context part no need to calculate for loss + labels[0, : contxt_id.shape[1]] = -100 + with torch.inference_mode(): + outputs = self.model(input_ids=input_ids, labels=labels, images=image, use_cache=True, image_sizes=image_sizes) + loss = outputs["loss"] + # loss = torch.exp(loss) + logits = outputs["logits"] + greedy_tokens = logits.argmax(dim=-1) + cont_toks = input_ids[:, contxt_id.shape[1] :] # [1, seq] + greedy_tokens = greedy_tokens[:, contxt_id.shape[1] : input_ids.shape[1]] # [1, seq] + max_equal = (greedy_tokens == cont_toks).all() + res.append((float(loss.item()), bool(max_equal))) + pbar.update(1) + + pbar.close() + return res + + def flatten(self, input): + new_list = [] + for i in input: + for j in i: + new_list.append(j) + return new_list + + def load_video(self, video_path, max_frames_num): + if type(video_path) == str: + vr = VideoReader(video_path, ctx=cpu(0)) + else: + vr = VideoReader(video_path[0], ctx=cpu(0)) + total_frame_num = len(vr) + uniform_sampled_frames = np.linspace(0, total_frame_num - 1, max_frames_num, dtype=int) + frame_idx = uniform_sampled_frames.tolist() + spare_frames = vr.get_batch(frame_idx).asnumpy() + return spare_frames # (frames, height, width, channels) + + def preprocess_qwen(self, sources, tokenizer: transformers.PreTrainedTokenizer, has_image: bool = False, max_len=2048, system_message: str = "You are a helpful assistant."): + roles = {"human": "<|im_start|>user", "gpt": "<|im_start|>assistant"} + + im_start, im_end = tokenizer.additional_special_tokens_ids + nl_tokens = tokenizer("\n").input_ids + _system = tokenizer("system").input_ids + nl_tokens + _user = tokenizer("user").input_ids + nl_tokens + _assistant = tokenizer("assistant").input_ids + nl_tokens + + # Apply prompt templates + input_ids, targets = [], [] + + source = sources + if roles[source[0]["from"]] != roles["human"]: + source = source[1:] + + input_id, target = [], [] + system = [im_start] + _system + tokenizer(system_message).input_ids + [im_end] + nl_tokens + input_id += system + target += [im_start] + [IGNORE_INDEX] * (len(system) - 3) + [im_end] + nl_tokens + assert len(input_id) == len(target) + for j, sentence in enumerate(source): + role = roles[sentence["from"]] + if has_image and sentence["value"] is not None and "" in sentence["value"]: + num_image = len(re.findall(DEFAULT_IMAGE_TOKEN, sentence["value"])) + texts = sentence["value"].split("") + _input_id = tokenizer(role).input_ids + nl_tokens + for i, text in enumerate(texts): + _input_id += tokenizer(text).input_ids + if i < len(texts) - 1: + _input_id += [IMAGE_TOKEN_INDEX] + nl_tokens + _input_id += [im_end] + nl_tokens + assert sum([i == IMAGE_TOKEN_INDEX for i in _input_id]) == num_image + else: + if sentence["value"] is None: + _input_id = tokenizer(role).input_ids + nl_tokens + else: + _input_id = tokenizer(role).input_ids + nl_tokens + tokenizer(sentence["value"]).input_ids + [im_end] + nl_tokens + input_id += _input_id + if role == "<|im_start|>user": + _target = [im_start] + [IGNORE_INDEX] * (len(_input_id) - 3) + [im_end] + nl_tokens + elif role == "<|im_start|>assistant": + _target = [im_start] + [IGNORE_INDEX] * len(tokenizer(role).input_ids) + _input_id[len(tokenizer(role).input_ids) + 1 : -2] + [im_end] + nl_tokens + else: + raise NotImplementedError + target += _target + + input_ids.append(input_id) + targets.append(target) + input_ids = torch.tensor(input_ids, dtype=torch.long) + targets = torch.tensor(targets, dtype=torch.long) + return input_ids + + def generate_until(self, requests: List[Instance]) -> List[str]: + res = [] + + def _collate(x): + # the negative sign on len(toks) sorts descending - this has a few advantages: + # - time estimates will always be over not underestimates, which is more useful for planning + # - to know the size of a batch when going through the list, you know the first one is always the batch + # padded context length. this is useful to simplify the batching logic and more importantly to make + # automatic adaptive batches much much easier to implement + # - any OOMs will happen right away rather than near the end + toks = self.tok_encode(x[0]) + return -len(toks), x[0] + + # we group requests by their generation_kwargs, + # so that we don't try to execute e.g. greedy sampling and temp=0.8 sampling + # in the same batch. + re_ords = utils.Collator([reg.args for reg in requests], _collate, grouping=True) + chunks = re_ords.get_batched(n=self.batch_size, batch_fn=None) + num_iters = len(requests) // self.batch_size if len(requests) % self.batch_size == 0 else len(requests) // self.batch_size + 1 + pbar = tqdm(total=num_iters, disable=(self.rank != 0), desc="Model Responding") + for chunk in chunks: + batched_contexts, all_gen_kwargs, batched_doc_to_visual, batched_doc_id, batched_task, batched_split = zip(*chunk) + task = batched_task[0] + split = batched_split[0] + batched_visuals = [batched_doc_to_visual[0](self.task_dict[task][split][ids]) for ids in batched_doc_id] # [B, N] + assert len(batched_visuals) == 1 + + # we assume all gen kwargs in the batch are the same + # this is safe to assume because the `grouper` object ensures it. + gen_kwargs = all_gen_kwargs[0] + if "until" in gen_kwargs: + gen_kwargs.pop("until") + + question_input = [] + + for visual, context in zip(batched_visuals, batched_contexts): + if len(visual) > 1 or "image_aspect_ratio" not in self._config.__dict__: # for multi image case, we treat per image aspect ratio as "pad" by default. + self._config.image_aspect_ratio = getattr(gen_kwargs, "image_aspect_ratio", "pad") + eval_logger.info(f"Setting image aspect ratio: {self._config.image_aspect_ratio}") + # if (len(visual) > 1 or "image_aspect_ratio" not in self._config.__dict__) and ("image_aspect_ratio" in gen_kwargs.keys()): + # self._config.image_aspect_ratio = gen_kwargs["image_aspect_ratio"] + # eval_logger.info(f"Setting image aspect ratio: {self._config.image_aspect_ratio}") + + if type(visual[0]) == PIL.Image.Image: # For image task + image_tensor = process_images(visual, self._image_processor, self._config) + if type(image_tensor) is list: + image_tensor = [_image.to(dtype=torch.float16, device=self.device) for _image in image_tensor] + else: + image_tensor = image_tensor.to(dtype=torch.float16, device=self.device) + + task_type = "image" + + elif type(visual[0]) == str: # For video task + image_tensor = [] + try: + if self.video_decode_backend == "decord": + frames = self.load_video(visual, self.max_frames_num) + elif self.video_decode_backend == "pyav": + frames = read_video_pyav(visual[0], num_frm=self.max_frames_num) + frames = self._image_processor.preprocess(frames, return_tensors="pt")["pixel_values"].half().cuda() + image_tensor.append(frames) + except Exception as e: + eval_logger.error(f"Error {e} in loading video") + image_tensor = None + + task_type = "video" + + if image_tensor is not None and len(image_tensor) != 0 and DEFAULT_IMAGE_TOKEN not in context: + """ + Three senarios: + 1. No image, and there for, no image token should be added. + 2. image token is already specified in the context, so we don't need to add it. + 3. image token is not specified in the context and there is image inputs, so we need to add it. In this case, we add the image token at the beginning of the context and add a new line. + 4. For video tasks, we could add a token or multiple tokens for each frame in the context. This depends on the training strategy and should balance in test to decide which is better + """ + if task_type == "image": + image_tokens = [DEFAULT_IMAGE_TOKEN] * len(visual) if isinstance(visual, list) else [DEFAULT_IMAGE_TOKEN] + elif task_type == "video": + image_tokens = [DEFAULT_IMAGE_TOKEN] * len(frames) if self.token_strategy == "multiple" else [DEFAULT_IMAGE_TOKEN] + + image_tokens = " ".join(image_tokens) + question = image_tokens + "\n" + context + else: + question = context + + # This is much safer for llama3, as we now have some object type in it + if "llama_3" in self.conv_template: + conv = copy.deepcopy(conv_templates[self.conv_template]) + else: + conv = conv_templates[self.conv_template].copy() + conv.append_message(conv.roles[0], question) + conv.append_message(conv.roles[1], None) + prompt_question = conv.get_prompt() + question_input.append(prompt_question) + + # preconfigure gen_kwargs with defaults + if "max_new_tokens" not in gen_kwargs: + gen_kwargs["max_new_tokens"] = 1024 + if "temperature" not in gen_kwargs: + gen_kwargs["temperature"] = 0 + if "do_sample" not in gen_kwargs: + gen_kwargs["do_sample"] = False + if "top_p" not in gen_kwargs: + gen_kwargs["top_p"] = None + if "num_beams" not in gen_kwargs: + gen_kwargs["num_beams"] = 1 + + input_ids_list = [tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt") for prompt in question_input] + pad_token_ids = self.tokenizer.pad_token_id if self.tokenizer.pad_token_id is not None else self.tokenizer.eos_token_id + input_ids = self.pad_sequence(input_ids_list, batch_first=True, padding_value=pad_token_ids).to(self.device) + attention_masks = input_ids.ne(pad_token_ids).to(self.device) + + # message_stage = [ + # { + # "from": "human", + # "value": question, + # }, + # { + # "from": "gpt", + # "value": None, + # } + # ] + # qwen_input_ids = self.preprocess_qwen(message_stage, self.tokenizer, has_image=True).to(self.device) + # qwen_result_list = qwen_input_ids.detach().cpu().numpy().tolist() + # qwen_result_list = [i if i != -200 else 100 for i in qwen_result_list[0]] + # qwen_input_text = self.tokenizer.decode(qwen_result_list) + + # original_result_list = input_ids.detach().cpu().numpy().tolist() + # original_result_list = [i if i != -200 else 100 for i in original_result_list[0]] + # original_input_text = self.tokenizer.decode(original_result_list) + + # print(f"Qwen input text: {qwen_input_text}") + # print(f"Original input text: {original_input_text}") + + # assert qwen_input_ids == input_ids + + if task_type == "image": + gen_kwargs["image_sizes"] = [batched_visuals[0][idx].size for idx in range(len(batched_visuals[0]))] + elif task_type == "video": + stop_str = conv.sep if conv.sep_style != SeparatorStyle.TWO else conv.sep2 + keywords = [stop_str] + stopping_criteria = KeywordsStoppingCriteria(keywords, self.tokenizer, input_ids) + gen_kwargs["modalities"] = ["video"] + gen_kwargs["stopping_criteria"] = [stopping_criteria] + self._config.mm_spatial_pool_stride = self.mm_spatial_pool_stride + self._config.mm_spatial_pool_mode = self.mm_spatial_pool_mode + + # These steps are not in LLaVA's original code, but are necessary for generation to work + # TODO: attention to this major generation step... + if "image_aspect_ratio" in gen_kwargs.keys(): + gen_kwargs.pop("image_aspect_ratio") + try: + with torch.inference_mode(): + cont = self.model.generate(input_ids, attention_mask=attention_masks, pad_token_id=pad_token_ids, images=image_tensor, use_cache=self.use_cache, **gen_kwargs) + # cont = self.model.generate(qwen_input_ids, pad_token_id=pad_token_ids, images=image_tensor, use_cache=self.use_cache, **gen_kwargs) + + text_outputs = self.tokenizer.batch_decode(cont, skip_special_tokens=True) + except Exception as e: + raise e + + text_outputs = [response.strip() for response in text_outputs] + res.extend(text_outputs) + self.cache_hook.add_partial("generate_until", (context, gen_kwargs), text_outputs) + pbar.update(1) + # reorder this group of results back to original unsorted form + res = re_ords.get_original(res) + + pbar.close() + return res diff --git a/lmms_eval/models/reka.py b/lmms_eval/models/reka.py index bc461cad..ee1b9c67 100644 --- a/lmms_eval/models/reka.py +++ b/lmms_eval/models/reka.py @@ -36,7 +36,7 @@ def __init__( self, model_version: str = "reka-edge", modality: str = "image", - max_frames_for_video: int = 10, + max_frames_num: int = 5, timeout: int = 120, continual_mode: bool = False, response_persistent_folder: str = None, # We will cache the Gemini API response in this path and use it for future requests @@ -45,21 +45,24 @@ def __init__( super().__init__() self.model_version = model_version self.modality = modality - self.max_frames_for_video = max_frames_for_video + self.max_frames_num = max_frames_num self.timeout = timeout self.continual_mode = continual_mode - if self.continual_mode and response_persistent_folder is None: - raise ValueError("Continual mode requires a persistent path for the response. Please provide a valid path.") - self.response_persistent_folder = response_persistent_folder - self.response_persistent_file = os.path.join(self.response_persistent_folder, f"{self.model_version}_response.json") - - if os.path.exists(self.response_persistent_file): - with open(self.response_persistent_file, "r") as f: - self.response_cache = json.load(f) - self.cache_mode = "resume" - else: - self.response_cache = {} - self.cache_mode = "start" + if self.continual_mode: + if response_persistent_folder is None: + raise ValueError("Continual mode requires a persistent path for the response. Please provide a valid path.") + + os.makedirs(response_persistent_folder, exist_ok=True) + self.response_persistent_folder = response_persistent_folder + self.response_persistent_file = os.path.join(self.response_persistent_folder, f"{self.model_version}_response.json") + + if os.path.exists(self.response_persistent_file): + with open(self.response_persistent_file, "r") as f: + self.response_cache = json.load(f) + self.cache_mode = "resume" + else: + self.response_cache = {} + self.cache_mode = "start" self.reka = RekaClient(api_key=os.getenv("REKA_API_KEY", "YOUR_API_KEY")) @@ -99,7 +102,7 @@ def encode_image(self, image): def encode_video(self, video_path): vr = VideoReader(video_path, ctx=cpu(0)) total_frame_num = len(vr) - uniform_sampled_frames = np.linspace(0, total_frame_num - 1, self.max_frames_for_video, dtype=int) + uniform_sampled_frames = np.linspace(0, total_frame_num - 1, self.max_frames_num, dtype=int) frame_idx = uniform_sampled_frames.tolist() frames = vr.get_batch(frame_idx).asnumpy() @@ -141,7 +144,7 @@ def generate_until(self, requests) -> List[str]: message_content.append({"type": "text", "text": context}) assert len(visual) == 1, "Reka only supports one video per request" media_urls = self.encode_video(visual[0]) - assert len(media_urls) == self.max_frames_for_video, f"Reka only supports {self.max_frames_for_video} frames per request" + assert len(media_urls) == self.max_frames_num, f"Reka only supports {self.max_frames_num} frames per request" for media_url in media_urls: message_content.append({"type": "image_url", "image_url": media_url}) diff --git a/lmms_eval/models/xcomposer2_4KHD.py b/lmms_eval/models/xcomposer2_4KHD.py deleted file mode 100644 index 6c4f81a7..00000000 --- a/lmms_eval/models/xcomposer2_4KHD.py +++ /dev/null @@ -1,295 +0,0 @@ -from multiprocessing import context -import torch -from transformers import AutoModel, AutoTokenizer -from PIL import Image -import numpy as np -import torchvision.transforms as transforms -from datetime import timedelta - - -from lmms_eval import utils -from lmms_eval.api.instance import Instance -from lmms_eval.api.model import lmms -from lmms_eval.api.registry import register_model -from lmms_eval.utils import stop_sequences_criteria - -from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs -from accelerate.state import AcceleratorState - -from typing import Optional, Sequence, List, Tuple, Union -import re -from tqdm import tqdm - -pattern = re.compile(r"[A-Z]") - -from loguru import logger as eval_logger - -meta_instruction = """You are an AI assistant whose name is InternLM-XComposer (浦语·灵笔). -- InternLM-XComposer (浦语·灵笔) is a multi-modality conversational language model that is developed\ - by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless. -- InternLM-XComposer (浦语·灵笔) can understand and communicate fluently in the language chosen by\ - the user such as English and 中文. -- InternLM-XComposer (浦语·灵笔) is capable of comprehending and articulating responses\ - effectively based on the provided image.""" - - -@register_model("xcomposer2_4khd") -class XComposer2_4KHD(lmms): - def __init__( - self, - pretrained: str = "internlm/internlm-xcomposer2-4khd-7b", - device: Optional[str] = "cuda:0", - batch_size: Optional[Union[int, str]] = 1, - device_map="cuda:0", - need_bos: bool = True, - padding: bool = False, - half: bool = False, - **kwargs, - ) -> None: - super().__init__() - - accelerator_kwargs = InitProcessGroupKwargs(timeout=timedelta(weeks=52)) - accelerator = Accelerator(kwargs_handlers=[accelerator_kwargs]) - if accelerator.num_processes > 1: - self._device = torch.device(f"cuda:{accelerator.local_process_index}") - self.device_map = f"cuda:{accelerator.local_process_index}" - elif accelerator.num_processes == 1 and device_map == "auto": - self._device = torch.device(device) - self.device_map = device_map - else: - self._device = torch.device(f"cuda:{accelerator.local_process_index}") - self.device_map = f"cuda:{accelerator.local_process_index}" - - self.pretrained = pretrained - self.need_bos = need_bos - self.padding = padding - self._model = AutoModel.from_pretrained(self.pretrained, device_map=self.device_map, trust_remote_code=True) - self._tokenizer = AutoTokenizer.from_pretrained(self.pretrained, trust_remote_code=True) - self.model.tokenizer = self.tokenizer - self.batch_size_per_gpu = batch_size - - if accelerator.num_processes > 1: - assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." - # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model - # Also, you have to select zero stage 0 (equivalent to DDP) in order to make the prepare model works - # I tried to set different parameters in the kwargs to let default zero 2 stage works, but it didn't work. - if accelerator.distributed_type == DistributedType.DEEPSPEED: - kwargs = { - "train_micro_batch_size_per_gpu": self.batch_size_per_gpu, - "train_batch_size": self.batch_size_per_gpu * accelerator.num_processes, - } - AcceleratorState().deepspeed_plugin.deepspeed_config_process(must_match=True, **kwargs) - eval_logger.info("Detected that you are using DistributedType.DEEPSPEED. Make sure you run `accelerate config` and set zero stage to 0") - if accelerator.distributed_type == DistributedType.FSDP or accelerator.distributed_type == DistributedType.DEEPSPEED: - self._model = accelerator.prepare(self.model) - else: - self._model = accelerator.prepare_model(self.model, evaluation_mode=True) - self.accelerator = accelerator - if self.accelerator.is_local_main_process: - eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") - self._rank = self.accelerator.local_process_index - self._world_size = self.accelerator.num_processes - elif accelerator.num_processes == 1 and device_map == "auto": - eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") - self._rank = 0 - self._word_size = 1 - else: - eval_logger.info(f"Using single device: {self._device}") - self.model.to(self._device) - self._rank = 0 - self._world_size = 1 - - @property - def config(self): - # return the associated transformers.AutoConfig for the given pretrained model. - return self._config - - @property - def tokenizer(self): - return self._tokenizer - - @property - def model(self): - # returns the model, unwrapping it if using Accelerate - if hasattr(self, "accelerator"): - return self.accelerator.unwrap_model(self._model) - else: - return self._model - - @property - def batch_size(self): - return self.batch_size_per_gpu - - @property - def device(self): - return self._device - - @property - def rank(self): - return self._rank - - @property - def world_size(self): - return self._world_size - - def flatten(self, input): - new_list = [] - for i in input: - for j in i: - new_list.append(j) - return new_list - - def generate_until(self, requests) -> List[str]: - res = [] - pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") - - for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: - # encode, pad, and truncate contexts for this batch - if "[UNUSED_TOKEN_146]" not in contexts: - contexts = f"[UNUSED_TOKEN_146]user\n{contexts}[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" - visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] - visuals = self.flatten(visuals) - - if "hd_num" not in gen_kwargs: - if listinstr(["docvqa_test", "infovqa_test"], task.lower()): - self.model.hd_num = 65 - elif listinstr(["docvqa_val", "infovqa_val", "OCRBench"], task.lower()): - self.model.hd_num = 55 - elif listinstr(["mmmu", "mmbench", "mmvet"], task.lower()): - self.model.hd_num = 16 - else: - self.model.hd_num = 25 - else: - self.model.hd_num = gen_kwargs.pop("hd_num") - - pt1 = 0 - embeds = [] - im_mask = [] - images_loc = [0] - need_bos = self.need_bos - padding = self.padding - for i, pts in enumerate(images_loc + [len(contexts)]): - subtext = contexts[pt1:pts] - if need_bos or len(subtext) > 0: - text_embeds = self.model.encode_text(subtext, add_special_tokens=need_bos).to(self.device) - embeds.append(text_embeds) - im_mask.append(torch.zeros(text_embeds.shape[:2]).to(self.device)) - need_bos = False - if i < len(visuals): - image = visuals[i] - - image = HD_transform(image, im_num=self.model.hd_num) - image = self.model.vis_processor(image).unsqueeze(0).to(self.device) - image_embeds = self.model.encode_img(image) - embeds.append(image_embeds) - im_mask.append(torch.ones(image_embeds.shape[:2]).to(self.device)) - pt1 = pts - embeds = torch.cat(embeds, dim=1) - im_mask = torch.cat(im_mask, dim=1) - im_mask = im_mask.bool() - - if "max_new_tokens" not in gen_kwargs: - gen_kwargs["max_new_tokens"] = 1024 - if "temperature" not in gen_kwargs: - gen_kwargs["temperature"] = 0 - if "top_p" not in gen_kwargs: - gen_kwargs["top_p"] = None - if "num_beams" not in gen_kwargs: - gen_kwargs["num_beams"] = 1 - if "do_sample" not in gen_kwargs: - gen_kwargs["do_sample"] = False - if "repetition_penalty" not in gen_kwargs: - gen_kwargs["repetition_penalty"] = 1.0 - - outputs = self.model.generate( - inputs_embeds=embeds, - im_mask=im_mask, - temperature=gen_kwargs["temperature"], - max_new_tokens=gen_kwargs["max_new_tokens"], - num_beams=gen_kwargs["num_beams"], - do_sample=gen_kwargs["do_sample"], - repetition_penalty=gen_kwargs["repetition_penalty"], - ) - output_token = outputs[0] - if output_token[0] == 0 or output_token[0] == 1: - output_token = output_token[1:] - output_text = self.model.tokenizer.decode(output_token, add_special_tokens=False) - output_text = output_text.split("[UNUSED_TOKEN_145]")[0].strip() - output_text = output_text.split("<|im_end|>")[0].strip() - # if DATASET_TYPE(task) == "multi-choice": - # output_text = pattern.findall(output_text) - # if len(output_text) == 0: - # print("Error:", output_text) - # output_text = "Z" - # if type(output_text) == list: - # output_text = output_text[0] - res.append(output_text) - pbar.update(1) - pbar.close() - return res - - def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: - return super().loglikelihood(requests) - - -def padding_336(b): - width, height = b.size - tar = int(np.ceil(height / 336) * 336) - top_padding = int((tar - height) / 2) - bottom_padding = tar - height - top_padding - left_padding = 0 - right_padding = 0 - b = transforms.functional.pad(b, [left_padding, top_padding, right_padding, bottom_padding], fill=[255, 255, 255]) - - return b - - -def HD_transform(img, im_num=16): - width, height = img.size - trans = False - if width < height: - img = img.transpose(Image.TRANSPOSE) - trans = True - width, height = img.size - ratio = width / height - scale = 1 - while scale * np.ceil(scale / ratio) <= im_num: - scale += 1 - scale -= 1 - new_w = int(scale * 336) - new_h = int(new_w / ratio) - - img = transforms.functional.resize( - img, - [new_h, new_w], - ) - img = padding_336(img) - width, height = img.size - assert width * height <= im_num * 336 * 336 - if trans: - img = img.transpose(Image.TRANSPOSE) - - return img - - -def listinstr(lst, s): - assert isinstance(lst, list) - for item in lst: - if item in s: - return True - return False - - -def DATASET_TYPE(dataset): - # Dealing with Custom Dataset - dataset = dataset.lower() - if listinstr(["mmbench", "seedbench", "ccbench", "mmmu", "scienceqa", "ai2d", "mmstar"], dataset): - return "multi-choice" - elif listinstr(["mme", "hallusion"], dataset): - return "Y/N" - elif "coco" in dataset: - return "Caption" - elif listinstr(["ocrvqa", "textvqa", "chartqa", "mathvista", "docvqa", "infovqa", "llavabench", "mmvet", "ocrbench"], dataset): - return "VQA" - else: - return "QA" diff --git a/lmms_eval/tasks/__init__.py b/lmms_eval/tasks/__init__.py index 19f7fea2..fadbb7bf 100755 --- a/lmms_eval/tasks/__init__.py +++ b/lmms_eval/tasks/__init__.py @@ -111,7 +111,7 @@ def include_path(task_dir): def initialize_tasks(verbosity="INFO"): logger.remove() eval_logger.add(sys.stdout, colorize=True, level=verbosity) - eval_logger.add(sys.stderr, level=verbosity) + # eval_logger.add(sys.stderr, level=verbosity) task_dir = os.path.dirname(os.path.abspath(__file__)) + "/" include_path(task_dir) diff --git a/lmms_eval/tasks/llava_interleave_bench/_default_template_interleave_yaml b/lmms_eval/tasks/llava_interleave_bench/_default_template_interleave_yaml new file mode 100644 index 00000000..25b44461 --- /dev/null +++ b/lmms_eval/tasks/llava_interleave_bench/_default_template_interleave_yaml @@ -0,0 +1,9 @@ +output_type: generate_until +generation_kwargs: + until: + - "ASSISTANT:" + image_aspect_ratio: original +metadata: + version: 0.0 + api_type : openai + gpt_eval_model_name: "gpt-3.5-turbo" \ No newline at end of file diff --git a/lmms_eval/tasks/llava_interleave_bench/in_domain.yaml b/lmms_eval/tasks/llava_interleave_bench/in_domain.yaml new file mode 100644 index 00000000..86255d95 --- /dev/null +++ b/lmms_eval/tasks/llava_interleave_bench/in_domain.yaml @@ -0,0 +1,29 @@ +dataset_path: lmms-lab/LLaVA-NeXT-Interleave-Bench +dataset_name: in_domain +dataset_kwargs: + token: True +task: "llava_interleave_bench_in_domain" +test_split: test +doc_to_target: "answer" +doc_to_visual: !function utils.doc_to_visual +doc_to_text: !function utils.doc_to_text +process_results: !function utils.interleave_process_results + +metric_list: + - metric: mcq_acc + aggregation: !function utils.mcq_acc + higher_is_better: true + - metric: oe_rogue + aggregation: !function utils.oe_rogue + higher_is_better: true + +generation_kwargs: + max_new_tokens: 16 + temperature: 0 + do_sample: False + image_aspect_ratio: "pad" # for multi-image, we treat each image as original aspect ratio without anyres strategy. + +model_specific_prompt_kwargs: + default: + oe_post_prompt: "" + mcq_post_prompt: "Answer with the option's letter from the given choices directly." \ No newline at end of file diff --git a/lmms_eval/tasks/llava_interleave_bench/multi_view_in_domain.yaml b/lmms_eval/tasks/llava_interleave_bench/multi_view_in_domain.yaml new file mode 100644 index 00000000..f478caeb --- /dev/null +++ b/lmms_eval/tasks/llava_interleave_bench/multi_view_in_domain.yaml @@ -0,0 +1,29 @@ +dataset_path: lmms-lab/LLaVA-NeXT-Interleave-Bench +dataset_name: multi_view_in_domain +dataset_kwargs: + token: True +task: "llava_interleave_bench_multi_view_in_domain" +test_split: test +doc_to_target: "answer" +doc_to_visual: !function utils.doc_to_visual +doc_to_text: !function utils.doc_to_text +process_results: !function utils.interleave_process_results + +metric_list: + - metric: mcq_acc + aggregation: !function utils.mcq_acc + higher_is_better: true + - metric: oe_rogue + aggregation: !function utils.oe_rogue + higher_is_better: true + +generation_kwargs: + max_new_tokens: 16 + temperature: 0 + do_sample: False + image_aspect_ratio: "original" # for multi-image, we treat each image as original aspect ratio without anyres strategy. + +model_specific_prompt_kwargs: + default: + oe_post_prompt: "" + mcq_post_prompt: "Answer with the option's letter from the given choices directly." \ No newline at end of file diff --git a/lmms_eval/tasks/llava_interleave_bench/out_of_domain.yaml b/lmms_eval/tasks/llava_interleave_bench/out_of_domain.yaml new file mode 100644 index 00000000..62601c85 --- /dev/null +++ b/lmms_eval/tasks/llava_interleave_bench/out_of_domain.yaml @@ -0,0 +1,29 @@ +dataset_path: lmms-lab/LLaVA-NeXT-Interleave-Bench +dataset_name: out_of_domain +dataset_kwargs: + token: True +task: "llava_interleave_bench_out_domain" +test_split: test +doc_to_target: "answer" +doc_to_visual: !function utils.doc_to_visual +doc_to_text: !function utils.doc_to_text +process_results: !function utils.interleave_process_results + +metric_list: + - metric: mcq_acc + aggregation: !function utils.mcq_acc + higher_is_better: true + - metric: oe_rogue + aggregation: !function utils.oe_rogue + higher_is_better: true + +generation_kwargs: + max_new_tokens: 16 + temperature: 0 + do_sample: False + image_aspect_ratio: "pad" # for multi-image, we treat each image as original aspect ratio without anyres strategy. + +model_specific_prompt_kwargs: + default: + oe_post_prompt: "" + mcq_post_prompt: "Answer with the option's letter from the given choices directly." \ No newline at end of file diff --git a/lmms_eval/tasks/llava_interleave_bench/utils.py b/lmms_eval/tasks/llava_interleave_bench/utils.py new file mode 100644 index 00000000..1b95dc5f --- /dev/null +++ b/lmms_eval/tasks/llava_interleave_bench/utils.py @@ -0,0 +1,331 @@ +import os +import re +import sys +import datetime +import json +import requests +import time + +from lmms_eval.filters.extraction import ExtendedRegexFilter + +import yaml +from pathlib import Path +from loguru import logger as eval_logger +from PIL import Image + + +def doc_to_visual(doc): + max_visual_count = 16 + visuals = [] + for i in range(max_visual_count): + if f"image_{i}" in doc: + image = doc[f"image_{i}"] + if image is None: + continue # Skip this image if it's None + if isinstance(image, Image.Image): + visuals.append(image.copy()) + else: + try: + # If the image is not already a PIL Image, try to open it + visuals.append(Image.open(image)) + except Exception as e: + print(f"Error opening image_{i}: {e}") + # Optionally, you can add a placeholder image or just continue + continue + + return visuals + + +# This is the place where you format your question +def doc_to_text(doc, model_specific_prompt_kwargs=None): + if model_specific_prompt_kwargs is None: + model_specific_prompt_kwargs = {} + + oe_post_prompt = "" + if "oe_post_prompt" in model_specific_prompt_kwargs: + oe_post_prompt = model_specific_prompt_kwargs["oe_post_prompt"] + + mcq_post_prompt = "" + if "mcq_post_prompt" in model_specific_prompt_kwargs: + mcq_post_prompt = model_specific_prompt_kwargs["mcq_post_prompt"] + + user_prompt = doc["question"] + + if mcq_post_prompt != "" and doc["question_type"] == "multi-choice": + user_prompt = user_prompt.split("Your answer is:")[0].split("\n")[0].strip() + user_prompt = f"{user_prompt}\n{mcq_post_prompt}" + + if oe_post_prompt != "" and doc["question_type"] == "open-ended": + user_prompt = f"{user_prompt}\n{oe_post_prompt}" + + return user_prompt + + +def doc_to_text_multi_turn(doc, model_specific_prompt_kwargs=None): + if model_specific_prompt_kwargs is None: + model_specific_prompt_kwargs = {} + + return doc["conversations"] + + +def interleave_process_results(doc, results): + pred = results[0] + sample_id = doc["sample_id"] + model_response = {"sample_id": sample_id, "subtask": doc["sample_id"], "question_type": doc["question_type"], "answer": doc["answer"], "parsed_pred": pred} + return { + "mcq_acc": model_response, + "oe_rogue": model_response, + # "in_domain_oe_gpt_eval": in_domain_acc, + } + + +def mcq_acc(results, args): + correct_count = 0 + total_count = len(results) + + periodStrip = re.compile("(?!<=\d)(\.)(?!\d)") + commaStrip = re.compile("(\d)(\,)(\d)") + punct = [";", r"/", "[", "]", '"', "{", "}", "(", ")", "=", "+", "\\", "_", "-", ">", "<", "@", "`", ",", "?", "!"] + + def processPunctuation(inText): + outText = inText + for p in punct: + if (p + " " in inText or " " + p in inText) or (re.search(commaStrip, inText) != None): + outText = outText.replace(p, "") + else: + outText = outText.replace(p, " ") + outText = periodStrip.sub("", outText, re.UNICODE) + return outText + + def process(answer): + option_regex = re.compile(r"^([A-E])\.\s*(.+)$", re.IGNORECASE) + match = option_regex.match(answer.strip()) + + if match: + # If matched, return the option letter in uppercase + return match.group(1).upper() + else: + # If no match, process the answer as before + answer = answer.replace("\n", " ") + answer = answer.replace("\t", " ") + answer = answer.strip() + answer = processPunctuation(answer) + answer = answer.strip("'") + answer = answer.strip('"') + answer = answer.strip(")") + answer = answer.strip("(") + answer = answer.strip().lower() + + # Try to find any single letter (A-E) in the processed answer + letter_match = re.search(r"\b([A-E])\b", answer, re.IGNORECASE) + if letter_match: + return letter_match.group(1).upper() + + return answer + + # image_choice_dataset_list = ["recipeqa-RecipeQA_VisualCloze", "RecipeQA_ImageCoherence", "COMICS_Panel"] + mcq_eval_result_list = [] + mcq_eval_result_list_detail = defaultdict(list) + + for result in results: + if result["question_type"] == "multi-choice": + pred = process(result["parsed_pred"]) + answer = process(result["answer"]) + + if pred == answer: + score = 1 + else: + score = 0 + + mcq_eval_result_list_detail[result["sub_task"]].append(score) + mcq_eval_result_list[result["sub_task"]] = mcq_eval_result_list_detail[result["sub_task"]] + + overall_accuracy = sum(mcq_eval_result_list) / len(mcq_eval_result_list) + for sub_task in mcq_eval_result_list: + sub_task_accuracy = sum(mcq_eval_result_list[sub_task]) / len(mcq_eval_result_list[sub_task]) * 100.0 + eval_logger.info(f"Multi-Choice Sub-Task {sub_task} - accuracy: {sub_task_accuracy}") + return overall_accuracy + + +from rouge import Rouge +import numpy as np + + +def oe_rogue(results, args): + rouge = Rouge() + oe_eval_result_list = [] + oe_eval_result_list_detail = defaultdict(list) + + for result in results: + if result["question_type"] == "open-ended": + pred = result["parsed_pred"] + answer = result["answer"] + + if answer == "": + continue + + if pred == "": + score = 0 + else: + if len(pred) > 512: + pred = pred[:512] + score = rouge.get_scores(pred, answer)[0]["rouge-l"]["f"] + + oe_eval_result_list.append(score) + oe_eval_result_list_detail[result["sub_task"]].append(score) + + average_rouge_score = np.mean(oe_eval_result_list) if oe_eval_result_list else 0 + for sub_task in oe_eval_result_list_detail: + sub_task_rouge_score = np.mean(oe_eval_result_list_detail[sub_task]) if oe_eval_result_list_detail[sub_task] else 0 + eval_logger.info(f"Open-Ended Sub-Task {sub_task} - ROUGE-L: {sub_task_rouge_score}") + return average_rouge_score * 100.0 + + +EVAL_PROMPT = """ +[Question] +{question} + +[Assistant Response] +{model_response} + +[Ground Truth Response] +{ground_truth} + +[System] +Rate whether the assistant response correctly matches the ground truth, it's about a question towards a sequence of images shared by the user. +The rating should be 1-5, where 1 is incorrect and 5 is correct. +Your response should be in the format: +Explanation: (your explanation) +Rating: (int) +""" + +NUM_SECONDS_TO_SLEEP = 5 +dir_path = os.path.dirname(os.path.realpath(__file__)) +with open(Path(__file__).parent / "_default_template_interleave_yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + + config = yaml.safe_load("".join(safe_data)) + +GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] +API_TYPE = config["metadata"]["api_type"] + +if API_TYPE == "openai": + API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") + API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") + headers = { + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json", + } +elif API_TYPE == "azure": + API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") + API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") + headers = { + "api-key": API_KEY, + "Content-Type": "application/json", + } +else: + API_URL = "" + API_KEY = "" + + +def get_chat_response(prompt, max_retries=5, wait_time=10): + headers = { + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json", + } + + payload = { + "model": GPT_EVAL_MODEL_NAME, + "messages": [ + { + "role": "user", + "content": [ + {"type": "text", "text": prompt}, + ], + } + ], + "max_tokens": 1024, + "temperature": 0.0, + } + + for attempt in range(max_retries): + try: + response = requests.post(API_URL, headers=headers, json=payload, timeout=60) + response.raise_for_status() + response_data = response.json() + return response_data["choices"][0]["message"]["content"], GPT_EVAL_MODEL_NAME + except requests.exceptions.RequestException as e: + eval_logger.warning(f"Request failed on attempt {attempt+1}: {e}") + time.sleep(wait_time) + if attempt == max_retries - 1: + eval_logger.error(f"Failed to get response after {max_retries} attempts") + return "", GPT_EVAL_MODEL_NAME + except Exception as e: + eval_logger.error(f"Error on attempt {attempt+1}: {e}") + return "", GPT_EVAL_MODEL_NAME + + +def in_domain_oe_gpt_eval(results, args): + total_score = 0 + available_count = 0 + for result in results: + if result["question_type"] == "open-ended": + question = result["question"] + model_response = result["parsed_pred"] + ground_truth = result["answer"] + content = EVAL_PROMPT.format(question=question, model_response=model_response, ground_truth=ground_truth) + result["gpt_eval_input"] = content + model_output, model_name = get_chat_response(content) + try: + explanation = re.search(r"Explanation: (.*)\n", model_output).group(1) + rating = re.search(r"Rating: (\d+)\n", model_output).group(1) + result["gpt_eval_explanation"] = explanation + result["gpt_eval_rating"] = rating + result["gpt_eval_model_name"] = model_name + except: + eval_logger.error(f"Error on evaluating {result['sample_id']}. Results: {results}") + result["gpt_eval_explanation"] = "" + result["gpt_eval_rating"] = 0 + result["gpt_eval_model_name"] = model_name + + total_score += result["gpt_eval_rating"] + available_count += 1 + + elif result["question_type"] == "multi-choice": + pass + + return (total_score / available_count) * 20.0 if available_count > 0 else 0 + + +# class MultiChoiceRegexFilter(ExtendedRegexFilter): +# def __init__(self, *args, **kwargs): +# super().__init__(*args, **kwargs) + +# def apply(self, resps, docs): +# filtered_resps = [] + +# for r, doc in zip(resps, docs): +# # Regex to directly extract the option letter from the model response +# option_letter_regex = re.compile(r"\b([A-Z])\.\s+([^\n]*)") + +# # Process each response +# filtered = [] +# for resp in r: +# # Try to match the option letter at the start of the response +# match = option_letter_regex.match(resp) +# if match: +# # If a match is found, append the matched letter +# filtered.append(match.group(1)) +# else: +# # If no match, return the original response +# filtered.append(resp) + +# # Assuming we need the first response that matches or the original response +# filtered_resps.append(filtered[0]) + +# return filtered_resps diff --git a/lmms_eval/tasks/mix_evals/_default_template_yaml b/lmms_eval/tasks/mix_evals/_default_template_yaml new file mode 100644 index 00000000..ce26b0ea --- /dev/null +++ b/lmms_eval/tasks/mix_evals/_default_template_yaml @@ -0,0 +1,16 @@ +dataset_path: lmms-lab/MixEvals_Video2Text +dataset_kwargs: + token: True + video: True + cache_dir: mix_evals_video2text +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "" + gpt4v: + pre_prompt: "These are frames from a video. Please answer the following questions about the video." + post_prompt: "" +metadata: + modality: video + version: 0.0 + gpt_eval_model_name: "gpt-3.5-turbo" \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text.yaml new file mode 100644 index 00000000..ed0a517c --- /dev/null +++ b/lmms_eval/tasks/mix_evals/mix_evals_video2text.yaml @@ -0,0 +1,5 @@ +group: mix_evals_video2text +task: +- mix_evals_video2text_openconv +- mix_evals_video2text_mc +- mix_evals_video2text_freeform \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text_freeform.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text_freeform.yaml new file mode 100644 index 00000000..e8ec9b4a --- /dev/null +++ b/lmms_eval/tasks/mix_evals/mix_evals_video2text_freeform.yaml @@ -0,0 +1,22 @@ +dataset_name: "video2text_closeended_free-form" +task: "mix_evals_video2text_freeform" +test_split: test +output_type: generate_until +doc_to_visual: !function utils.mix_evals_video2text_doc_to_visual +doc_to_text: !function utils.mix_evals_video2text_doc_to_text +doc_to_target: "{{target}}" +process_results: !function utils.mix_evals_video2text_process_results_freeform +metric_list: + - metric: gpt_eval + aggregation: !function utils.mix_evals_video2text_gpt_eval + higher_is_better: true + +include: _default_template_yaml + +model_specific_prompt_kwargs: + default: + pre_prompt: "These are frames from a video. Please answer the following questions about the video." + post_prompt: "Answer the question using a single word or phrase." + gpt4v: + pre_prompt: "These are frames from a video. Please answer the following questions about the video with a short phrase." + post_prompt: "" \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text_mc.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text_mc.yaml new file mode 100644 index 00000000..d04dabf4 --- /dev/null +++ b/lmms_eval/tasks/mix_evals/mix_evals_video2text_mc.yaml @@ -0,0 +1,31 @@ +include: _default_template_yaml +dataset_name: "video2text_closeended_multiple-choice" +task: "mix_evals_video2text_mc" +test_split: test +output_type: generate_until +doc_to_visual: !function utils.mix_evals_video2text_doc_to_visual +doc_to_text: !function utils.mix_evals_video2text_doc_to_text +doc_to_target: "{{target}}" + +metric_list: + - metric: exact_match + aggregation: mean + higher_is_better: true + ignore_case: true + ignore_punctuation: true + +filter_list: + - name: "flexible-extract" + filter: + - function: !function utils.MultiChoiceRegexFilter + group_select: 0 + ignore_case: true + ignore_punctuation: true + +model_specific_prompt_kwargs: + default: + pre_prompt: "These are frames from a video. Please answer the following questions about the video." + post_prompt: "Answer with the option's letter from the given choices directly." + gpt4v: + pre_prompt: "These are frames from a video. Please answer the following questions about the video." + post_prompt: "Answer with the option's letter from the given choices directly." \ No newline at end of file diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended.yaml new file mode 100644 index 00000000..eb3fca3d --- /dev/null +++ b/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended.yaml @@ -0,0 +1,22 @@ +include: _default_template_yaml +dataset_name: "video2text_openended" +task: "mix_evals_video2text_openconv" +test_split: test +output_type: generate_until +doc_to_visual: !function utils.mix_evals_video2text_doc_to_visual +doc_to_text: !function utils.mix_evals_video2text_doc_to_text_open_convs +doc_to_target: "" +process_results: !function utils.mix_evals_video2text_process_results_open_convs + +metric_list: + - metric: submission + aggregation: !function utils.mix_evals_video2text_aggregate_gen + higher_is_better: true + +model_specific_prompt_kwargs: + default: + pre_prompt: "These are frames from a video. Please answer the following questions about the video." + post_prompt: "" + gpt4v: + pre_prompt: "These are frames from a video. Please answer the following questions about the video." + post_prompt: "" diff --git a/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended_2nd.yaml b/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended_2nd.yaml new file mode 100644 index 00000000..e8c0f1fe --- /dev/null +++ b/lmms_eval/tasks/mix_evals/mix_evals_video2text_openended_2nd.yaml @@ -0,0 +1,23 @@ +include: _default_template_yaml +dataset_path: lmms-lab/MixEvals_Video2Text_OpenEnded_2nd +dataset_name: "video2text_openended" +task: "mix_evals_video2text_openconv_2nd" +test_split: test +output_type: generate_until +doc_to_visual: !function utils.mix_evals_video2text_doc_to_visual +doc_to_text: !function utils.mix_evals_video2text_doc_to_text_open_convs +doc_to_target: "" +process_results: !function utils.mix_evals_video2text_process_results_open_convs + +metric_list: + - metric: submission + aggregation: !function utils.mix_evals_video2text_aggregate_gen + higher_is_better: true + +model_specific_prompt_kwargs: + default: + pre_prompt: "These are frames from a video. Please answer the following questions about the video." + post_prompt: "" + gpt4v: + pre_prompt: "These are frames from a video. Please answer the following questions about the video." + post_prompt: "" diff --git a/lmms_eval/tasks/mix_evals/utils.py b/lmms_eval/tasks/mix_evals/utils.py new file mode 100644 index 00000000..6c3e6e6c --- /dev/null +++ b/lmms_eval/tasks/mix_evals/utils.py @@ -0,0 +1,284 @@ +import os +import re +import sys +import datetime +import lmms_eval.tasks._task_utils.file_utils as file_utils +from lmms_eval.filters.extraction import ExtendedRegexFilter +import json +import yaml +from pathlib import Path +import requests +import time +from loguru import logger as eval_logger + +with open(Path(__file__).parent / "_default_template_yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + + config = yaml.safe_load("".join(safe_data)) + +NUM_SECONDS_TO_SLEEP = 5 +GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] +API_TYPE = os.getenv("API_TYPE", "openai") + +if API_TYPE == "openai": + API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") + API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") + headers = { + "Authorization": f"Bearer {API_KEY}", + "Content-Type": "application/json", + } +elif API_TYPE == "azure": + API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") + API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") + headers = { + "api-key": API_KEY, + "Content-Type": "application/json", + } + +eval_prompt = """You are an AI assistant who will help me to evaluate the quality of a model response to a few candidate ground truth answers. + +Some criterion +- Response that perfectly reflect the meaning of the ground truth: 1 point +- Response that reflect none of the key points in the ground truth: 0 point +- Some part in the response are correct but some parts in the ground truth are not mentioned in the response: 0.5 point +- Some part in the response are correct but other parts in the response are not mentioned in the ground truth: 0.5 point + +Here're some examples about the scoring criterion and format: +model response: Steam Cleaning Services +ground truth: ["steam clean", "steam clean", "cleaning", "car", "steam clean"], +Point: 1 + +model response: A cowboy action shooter. +ground truth: ["man"] +Point: 1 + +model response: I'm sorry, but I can't assist with that request. +ground truth: ["quality"] +Point: 0 + +Let's begin this task: +model response: {model_response} +ground truth: {ground_truth} +Point:""" + + +def get_eval(model_response: str, ground_truth: str, max_tokens: int, retries: int = 5): + global headers + content = eval_prompt.format(model_response=model_response, ground_truth=ground_truth) + + messages = [ + {"role": "user", "content": content}, + ] + + payload = { + "model": GPT_EVAL_MODEL_NAME, + "messages": messages, + "temperature": 0.2, + "max_tokens": max_tokens, + } + + for attempt in range(retries): + try: + response = requests.post(API_URL, headers=headers, json=payload, timeout=60) + response.raise_for_status() + response_data = response.json() + + content = response_data["choices"][0]["message"]["content"].strip() + if content != "": + return content, response_data["model"] + break # If successful, break out of the loop + + except Exception as e: + eval_logger.info(f"Attempt {attempt + 1} failed with error: {e}") + if attempt < retries: # If we have retries left, sleep and then continue to next attempt + time.sleep(NUM_SECONDS_TO_SLEEP) + else: # If this was the last attempt, log and return empty + eval_logger.error(f"All {retries} attempts failed. Last error message: {e}") + return "", "" + return "", "" + + +# A bit ugly here +# But the idea is that we will unzip all the zip files +# To HF HOME cache dir +# And load it here +HF_HOME = os.environ["HF_HOME"] +cache_dir = config["dataset_kwargs"]["cache_dir"] +cache_dir = os.path.join(HF_HOME, cache_dir) +cache_dir = os.path.join(cache_dir) + + +# Pass in video path here +# Can only work correctly with video llm +def mix_evals_video2text_doc_to_visual(doc): + video_path = doc["video_path"] + video_path = os.path.join(cache_dir, video_path) + if os.path.exists(video_path): + video_path = video_path + elif os.path.exists(video_path.replace("mp4", "MP4")): + video_path = video_path.replace("mp4", "MP4") + else: + sys.exit(f"video path:{video_path} does not exist, please check") + return [video_path] + + +# This is the place where you format your question +def mix_evals_video2text_doc_to_text(doc, model_specific_prompt_kwargs=None): + if model_specific_prompt_kwargs is None: + model_specific_prompt_kwargs = {} + pre_prompt = "" + post_prompt = "" + if "pre_prompt" in model_specific_prompt_kwargs: + pre_prompt = model_specific_prompt_kwargs["pre_prompt"] + if "post_prompt" in model_specific_prompt_kwargs: + post_prompt = model_specific_prompt_kwargs["post_prompt"] + + user_prompt = doc["prompt"] + + if "options" in doc: + option_prompt = "Here are the options:\n" + for idx, option in enumerate(doc["options"]): + char_idx = chr(ord("A") + idx) + option = option.strip() + option_prompt += f"{char_idx}. {option}\n" + + option_prompt = option_prompt.rstrip("\n") + user_prompt = f"{user_prompt}\n{option_prompt}" + + if pre_prompt: + user_prompt = f"{pre_prompt}\n{user_prompt}" + + if post_prompt: + user_prompt = f"{user_prompt}\n{post_prompt}" + return user_prompt + + +OPEN_CONVS_PROMPT = """{PRE} +{FIRST} +{POST} +""" + + +def mix_evals_video2text_doc_to_text_open_convs(doc, model_specific_prompt_kwargs=None): + if model_specific_prompt_kwargs is None: + model_specific_prompt_kwargs = {} + pre_prompt = "" + post_prompt = "" + if "pre_prompt" in model_specific_prompt_kwargs: + pre_prompt = model_specific_prompt_kwargs["pre_prompt"] + if "post_prompt" in model_specific_prompt_kwargs: + post_prompt = model_specific_prompt_kwargs["post_prompt"] + + filtered_first_turn = re.sub(r"", "", doc["first_turn_user_prompt"]) + return OPEN_CONVS_PROMPT.format( + PRE=pre_prompt, + POST=post_prompt, + FIRST=filtered_first_turn, + ) + + +MODEL_CONVS_PROMPT = """{FIRST} +{MODEL_RESPONSE} +{PRE} +{SECOND} +{POST} +""" + + +def mix_evals_video2text_doc_to_text_open_2nd_convs(doc, model_specific_prompt_kwargs=None): + if model_specific_prompt_kwargs is None: + model_specific_prompt_kwargs = {} + pre_prompt = "" + post_prompt = "" + if "pre_prompt" in model_specific_prompt_kwargs: + pre_prompt = model_specific_prompt_kwargs["pre_prompt"] + if "post_prompt" in model_specific_prompt_kwargs: + post_prompt = model_specific_prompt_kwargs["post_prompt"] + + return MODEL_CONVS_PROMPT.format( + PRE=pre_prompt, + POST=post_prompt, + FIRST=doc["first_turn_user_prompt"], + SECOND=doc["second_turn_user_prompt"], + MODEL_RESPONSE=doc["model_response"], + ) + + +def mix_evals_video2text_process_results_open_convs(doc, result): + pred = result[0] + return {"submission": {"pred": pred, "question_idx": doc["question_index"], "first_turn_video_caption": doc["first_turn_video_caption"], "target": ""}} + + +def mix_evals_video2text_process_results_freeform(doc, result): + pred = result[0] + ground_truth_str = ", ".join([f'"{gt}"' for gt in doc["target"]]) + ground_truth_str = f"[{ground_truth_str}]" + content = eval_prompt.format(model_response=pred, ground_truth=ground_truth_str) + eval_answer, model_name = get_eval(model_response=pred, ground_truth=ground_truth_str, max_tokens=1024) + return { + "submission": {"pred": pred, "question_idx": doc["question_index"], "target": doc["target"], "eval_answer": eval_answer, "gpt_prompt": content}, + "gpt_eval": {"pred": pred, "question_idx": doc["question_index"], "target": doc["target"], "eval_answer": eval_answer, "gpt_prompt": content}, + } + + +def mix_evals_video2text_aggregate_submissions(results, args, task): + now_date_time = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S") + submission_file_name = f"mix_evals_video2text_{task}-{now_date_time}.json" + path = file_utils.generate_submission_file(submission_file_name, args) + with open(path, "w") as f: + json.dump(results, f) + eval_logger.info(f"Submission file saved to {path}") + + +def mix_evals_video2text_gpt_eval(results, args): + score = 0 + for result in results: + eval_answer = result["eval_answer"] + eval_score = re.search(r"([0-9.]+)", eval_answer).group(1) + try: + eval_score = float(eval_score) + except Exception as e: + eval_logger.error(f"Error parsing eval_score: {e}") + eval_score = 0.0 + score += eval_score + + return score / len(results) + + +# Factory into different aggregate +def mix_evals_video2text_aggregate_gen(results, args): + mix_evals_video2text_aggregate_submissions(results, args, "OpenConvs") + + +class MultiChoiceRegexFilter(ExtendedRegexFilter): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def apply(self, resps, docs): + filtered_resps = [] + + for r, doc in zip(resps, docs): + # Regex to directly extract the option letter from the model response + option_letter_regex = re.compile(r"\b([A-Z])\.\s+([^\n]*)") + + # Process each response + filtered = [] + for resp in r: + # Try to match the option letter at the start of the response + match = option_letter_regex.match(resp) + if match: + # If a match is found, append the matched letter + filtered.append(match.group(1)) + else: + # If no match, return the original response + filtered.append(resp) + + # Assuming we need the first response that matches or the original response + filtered_resps.append(filtered[0]) + + return filtered_resps diff --git a/lmms_eval/tasks/mmupd/utils.py b/lmms_eval/tasks/mmupd/utils.py index bfc724a5..818e8cb1 100644 --- a/lmms_eval/tasks/mmupd/utils.py +++ b/lmms_eval/tasks/mmupd/utils.py @@ -30,6 +30,9 @@ elif API_TYPE == "azure": API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") +else: + API_URL = "YOUR_API_URL" + API_KEY = "YOUR_API_KEY" mmupd_evaluator = MMUPD_Evaluator(sys_prompt=config["metadata"]["sys_prompt"], API_KEY=API_KEY, API_URL=API_URL, model_version=GPT_EVAL_MODEL_NAME) diff --git a/pyproject.toml b/pyproject.toml index c65d3b8c..6e6ebe00 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,6 +63,7 @@ dependencies = [ "decord", "zss", "pywsd", + "rouge", ] [tool.setuptools.packages.find] From 8e27fd19eb573e44e75b2858ee6447743021191e Mon Sep 17 00:00:00 2001 From: Pu Fanyi Date: Fri, 5 Jul 2024 20:47:58 -0700 Subject: [PATCH 14/32] [Small Typo] A small typo in LiveBench (#133) * chore: Update lmms-eval to support video evaluations for LLaVA models * lint --- lmms_eval/evaluator.py | 7 +---- lmms_eval/models/longva.py | 2 +- lmms_eval/tasks/websrc/utils.py | 8 ------ lmms_eval/tasks/wild_vision_bench/utils.py | 30 ++++++++++------------ 4 files changed, 15 insertions(+), 32 deletions(-) diff --git a/lmms_eval/evaluator.py b/lmms_eval/evaluator.py index 6788467e..0e7d05c9 100755 --- a/lmms_eval/evaluator.py +++ b/lmms_eval/evaluator.py @@ -325,12 +325,7 @@ def evaluate( # hack: remove image columns to speed avoid loading images and speed up postprocessing # reason: doc_iterator will actually load image if it's in the doc. docs = task.test_docs() if task.has_test_docs() else task.validation_docs() - if "d170" not in task_name \ - and "dc100" not in task_name \ - and "dc200" not in task_name \ - and "llava_wilder" not in task_name \ - and "livebench" not in task_name \ - and "wildvision" not in task_name: + if "d170" not in task_name and "dc100" not in task_name and "dc200" not in task_name and "llava_wilder" not in task_name and "live_bench" not in task_name and "wildvision" not in task_name: remove_cols = [] features = docs.features # If it is an Image instance or a Sequence of Image instance. Remove it diff --git a/lmms_eval/models/longva.py b/lmms_eval/models/longva.py index c599d344..c5bf6861 100644 --- a/lmms_eval/models/longva.py +++ b/lmms_eval/models/longva.py @@ -458,4 +458,4 @@ def _collate(x): res = re_ords.get_original(res) pbar.close() - return res \ No newline at end of file + return res diff --git a/lmms_eval/tasks/websrc/utils.py b/lmms_eval/tasks/websrc/utils.py index 7286cd62..6e2584a4 100644 --- a/lmms_eval/tasks/websrc/utils.py +++ b/lmms_eval/tasks/websrc/utils.py @@ -63,15 +63,7 @@ def websrc_test_aggregate_results_for_submission(results, args): for result in results: out.update(result) json.dump(out, f, indent=4) -<<<<<<< HEAD -<<<<<<< HEAD eval_logger.info(f"Results saved to {path}.") -======= - lmms_logger.info(f"Results saved to {path}.") ->>>>>>> internal_main_dev -======= - eval_logger.info(f"Results saved to {path}.") ->>>>>>> internal_main_dev def websrc_aggregate_results(results): diff --git a/lmms_eval/tasks/wild_vision_bench/utils.py b/lmms_eval/tasks/wild_vision_bench/utils.py index bb426557..b7ac6c61 100644 --- a/lmms_eval/tasks/wild_vision_bench/utils.py +++ b/lmms_eval/tasks/wild_vision_bench/utils.py @@ -69,6 +69,7 @@ prompt_template = "<|User Prompt|>\n{question_1}\n\n<|The Start of Assistant A's Answer|>\n{answer_1}\n<|The End of Assistant A's Answer|>\n\n<|The Start of Assistant B's Answer|>\n{answer_2}\n<|The End of Assistant B's Answer|>" + def get_chat_response(base64_image, prompt, max_retries=5, wait_time=10): headers = { "Authorization": f"Bearer {API_KEY}", @@ -83,13 +84,9 @@ def get_chat_response(base64_image, prompt, max_retries=5, wait_time=10): "role": "user", "content": [ {"type": "text", "text": prompt}, - {"type": "image_url", - "image_url" : { - "url" : f"data:image/jpeg;base64, {base64_image}" - } - }, + {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64, {base64_image}"}}, ], - } + }, ], "max_tokens": 1024, "temperature": 0.0, @@ -111,12 +108,12 @@ def get_chat_response(base64_image, prompt, max_retries=5, wait_time=10): return "", GPT_EVAL_MODEL_NAME - def image_to_base64(pil_image): buffered = BytesIO() pil_image.save(buffered, format="PNG") return base64.b64encode(buffered.getvalue()).decode("utf-8") + def get_score(judgement, pattern, pairwise=True): matches = pattern.findall(judgement) matches = [m for m in matches if m != ""] @@ -129,8 +126,9 @@ def get_score(judgement, pattern, pairwise=True): else: return None, False + def wild_vision_doc_to_visual(doc): - return [doc["image"].convert('RGB')] + return [doc["image"].convert("RGB")] def wild_vision_doc_to_text(doc, model_specific_prompt_kwargs=None): @@ -141,6 +139,7 @@ def wild_vision_doc_to_text(doc, model_specific_prompt_kwargs=None): question = f"{question}{model_specific_prompt_kwargs['post_prompt']}" return question + def wild_vision_doc_to_target(doc): return doc[BASELINE_MODEL_NAME] @@ -151,18 +150,18 @@ def wild_vision_process_results(doc, results): base64_image = image_to_base64(doc["image"]) resps, gpt_name = get_chat_response(base64_image, user_prompt) score, _ = get_score(resps, pattern=re.compile("\[\[([AB<>=]+)\]\]")) - + if score is None: score = resps - + if "A>B" in score: final_score = -1 - judgement = "Worse" #Baseline better + judgement = "Worse" # Baseline better elif "A>>B" in score: final_score = -2 judgement = "Worse++" elif "A=B" in score: - final_score = 0 + final_score = 0 judgement = "Tie" elif "B>A" in score: final_score = 1 @@ -174,15 +173,12 @@ def wild_vision_process_results(doc, results): final_score = 0 judgement = "Unclear" - - return {"gpt_eval_score" : {"question" : doc["instruction"], "score" : final_score, "gpt_resps" : resps, "ans_1" : doc[BASELINE_MODEL_NAME], "ans_2" : pred, "filtered_resps" : score, "judgement" : judgement}} + return {"gpt_eval_score": {"question": doc["instruction"], "score": final_score, "gpt_resps": resps, "ans_1": doc[BASELINE_MODEL_NAME], "ans_2": pred, "filtered_resps": score, "judgement": judgement}} def wild_vision_aggregation(results): score = 0 for res in results: score += res["score"] - - return score / len(results) - + return score / len(results) From 41f831b639d4a5b7b3b920fadcc119bd649b4ccc Mon Sep 17 00:00:00 2001 From: Kaichen Zhang - NTU Date: Sat, 6 Jul 2024 12:26:30 +0800 Subject: [PATCH 15/32] Add vibe eval (#134) --- lmms_eval/tasks/vibe_eval/utils.py | 201 +++++++++++++++++++++++ lmms_eval/tasks/vibe_eval/vibe_eval.yaml | 35 ++++ 2 files changed, 236 insertions(+) create mode 100644 lmms_eval/tasks/vibe_eval/utils.py create mode 100644 lmms_eval/tasks/vibe_eval/vibe_eval.yaml diff --git a/lmms_eval/tasks/vibe_eval/utils.py b/lmms_eval/tasks/vibe_eval/utils.py new file mode 100644 index 00000000..5a64cce6 --- /dev/null +++ b/lmms_eval/tasks/vibe_eval/utils.py @@ -0,0 +1,201 @@ +from enum import Enum +from dataclasses import dataclass +from typing import Optional, List +from pathlib import Path +import yaml + +from reka import ChatMessage +from reka.client import Reka + +import re +import os +from copy import deepcopy + +REKA_API_KEY = os.getenv("REKA_API_KEY", "YOUR_API_KEY") + +with open(Path(__file__).parent / "vibe_eval.yaml", "r") as f: + raw_data = f.readlines() + safe_data = [] + for i, line in enumerate(raw_data): + # remove function definition since yaml load cannot handle it + if "!function" not in line: + safe_data.append(line) + + config = yaml.safe_load("".join(safe_data)) + +EVALUATOR_NAME = config["metadata"]["evaluator"] + +_PROMPT_WITH_IMAGE = """\ +[Question] +{prompt} + +[Assistant Response] +{generation} + +[Ground Truth Response] +{reference} + +[System] +Rate whether the assistant response correctly matches the ground truth, in regards to the image above. +The rating should be 1-5, where 1 is incorrect and 5 is correct. +Your response should be in the format: +Explanation: (your explanation) +Rating: (int)""" + +_PROMPT_WITH_NO_IMAGE = """\ +[Question] +{prompt} + +[Assistant Response] +{generation} + +[Ground Truth Response] +{reference} + +[System] +Rate whether the assistant response correctly matches the ground truth, it's about an image shared by the user. +The rating should be 1-5, where 1 is incorrect and 5 is correct. +Your response should be in the format: +Explanation: (your explanation) +Rating: (int)""" + +@dataclass +class Example: + """An example loaded from vibe-eval, stored as jsonl in the repo.""" + + example_id: str + category: str + prompt: str + reference: str + media_filename: str + media_url: str + + # The fields below are not stored in the dataset, but are populated by this script. + generation: Optional[str] = None + score: Optional[int] = None + evaluator_explanation: Optional[str] = None + +class Evaluator(Enum): + # Use Reka Core (including image input). + REKA_CORE = "reka-core" + + # Use Reka Core, only using text input. + REKA_CORE_TEXT = "reka-core-text" + +def make_evaluator_prompt(example: Example, include_image: bool) -> str: + return (_PROMPT_WITH_IMAGE if include_image else _PROMPT_WITH_NO_IMAGE).format( + prompt=example.prompt, + reference=example.reference, + generation=example.generation, + ) + +def evaluate(example: Example, evaluator: Evaluator) -> Example: + """Evaluates the generation and populates the score and explanation fields.""" + include_image = evaluator == Evaluator.REKA_CORE + evaluator_prompt = make_evaluator_prompt(example, include_image=include_image) + client = Reka(api_key=REKA_API_KEY) + content = [ + {"type": "text", "text": evaluator_prompt}, + ] + if include_image: + content.append({"type": "image_url", "image_url": example.media_url}) + evaluator_response = client.chat.create( + messages=[ + ChatMessage( + content=content, + role="user", + ) + ], + model="reka-core", + temperature=0.4, + max_tokens=1024, + ) + evaluator_response = evaluator_response.responses[0].message.content + # evaluator_response = reka.chat( + # human=evaluator_prompt, + # media_url=example.media_url if include_image else None, + # temperature=0.4, + # model_name="reka-core-20240415", + # request_output_len=1024, + # )["text"] + re_match = re.search(r"Rating:\s*([1-5])", evaluator_response) + if re_match is None: + example.score = 0 + example.evaluator_explanation = evaluator_response + return example + example.score = int(re_match.group(1)) + example.evaluator_explanation = evaluator_response + return example + +def vibe_doc_to_visual(doc): + return [doc["image"].convert("RGB")] + +def vibe_doc_to_text(doc, model_specific_prompt_kwargs=None): + question = doc["prompt"].strip() + if "pre_prompt" in model_specific_prompt_kwargs and model_specific_prompt_kwargs["pre_prompt"] != "": + question = f"{model_specific_prompt_kwargs['pre_prompt']}{question}" + if "post_prompt" in model_specific_prompt_kwargs and model_specific_prompt_kwargs["post_prompt"] != "": + question = f"{question}{model_specific_prompt_kwargs['post_prompt']}" + return question + +def vibe_process_results(doc, results): + example_id = doc["example_id"] + category = doc["category"] + prompt = doc["prompt"] + reference = doc["reference"] + media_filename = doc["media_url"] + media_url = doc["media_url"] + generation = results[0] + example = Example( + example_id=example_id, + category=category, + prompt=prompt, + reference=reference, + media_filename=media_filename, + media_url=media_url, + generation=generation + ) + + evaluator = Evaluator.REKA_CORE if EVALUATOR_NAME == "reka-core" else Evaluator.REKA_CORE_TEXT + + example = evaluate(example, evaluator=evaluator) + data_dict = { + "score" : example.score, + "evaluator_explanation" : example.evaluator_explanation, + "prompt" : example.prompt, + "generation" : example.generation, + "media_url" : example.media_url, + "category" : example.category, + } + + return { + "hard" : deepcopy(data_dict), + "normal" : deepcopy(data_dict), + "all" : deepcopy(data_dict), + } + +def _mean(scores: List[int]) -> float: + """Scale from 1-5 to 0-100 and compute means.""" + return sum(25 * (score - 1) for score in scores) / len(scores) + + +def vibe_aggregation_results(results, category): + score = [] + for res in results: + if category in res["category"] or category == "all": + score.append(res["score"]) + + aggregate_scores = _mean(score) + return aggregate_scores + + +def vibe_aggregation_results_normal(results): + return vibe_aggregation_results(results, "normal") + + +def vibe_aggregation_results_hard(results): + return vibe_aggregation_results(results, "hard") + + +def vibe_aggregation_results_all(results): + return vibe_aggregation_results(results, "all") \ No newline at end of file diff --git a/lmms_eval/tasks/vibe_eval/vibe_eval.yaml b/lmms_eval/tasks/vibe_eval/vibe_eval.yaml new file mode 100644 index 00000000..ed7f31c6 --- /dev/null +++ b/lmms_eval/tasks/vibe_eval/vibe_eval.yaml @@ -0,0 +1,35 @@ +dataset_path: RekaAI/VibeEval +dataset_kwargs: + token: True +task: "vibe_eval" +test_split: test +output_type: generate_until +doc_to_visual: !function utils.vibe_doc_to_visual +doc_to_text: !function utils.vibe_doc_to_text +doc_to_target: "reference" +generation_kwargs: + max_new_tokens: 1024 + temperature: 0 + top_p: 1.0 + num_beams: 1 + do_sample: false +# The return value of process_results will be used by metrics +process_results: !function utils.vibe_process_results +# Note that the metric name can be either a registed metric function (such as the case for GQA) or a key name returned by process_results +metric_list: + - metric: hard + aggregation: !function utils.vibe_aggregation_results_hard + higher_is_better: true + - metric: normal + aggregation: !function utils.vibe_aggregation_results_normal + higher_is_better: true + - metric: all + aggregation: !function utils.vibe_aggregation_results_all + higher_is_better: true +metadata: + evaluator: "reka-core-text" + +model_specific_prompt_kwargs: + default: + pre_prompt: "" + post_prompt: "" \ No newline at end of file From b838e64691a511f54823c550c510d2cd7b256a2a Mon Sep 17 00:00:00 2001 From: Pu Fanyi Date: Sat, 6 Jul 2024 17:50:14 -0700 Subject: [PATCH 16/32] InternVL2 (#135) * internvl2 * fix some bugs * fix * lint --- lmms_eval/models/__init__.py | 1 + lmms_eval/models/internvl2.py | 236 +++++++++++++++++++++++++++++ lmms_eval/tasks/vibe_eval/utils.py | 54 +++---- 3 files changed, 264 insertions(+), 27 deletions(-) create mode 100644 lmms_eval/models/internvl2.py diff --git a/lmms_eval/models/__init__.py b/lmms_eval/models/__init__.py index 17100e95..46fd92e8 100755 --- a/lmms_eval/models/__init__.py +++ b/lmms_eval/models/__init__.py @@ -25,6 +25,7 @@ "llava_sglang": "LlavaSglang", "idefics2": "Idefics2", "internvl": "InternVLChat", + "internvl2": "InternVL2", "gemini_api": "GeminiAPI", "reka": "Reka", "from_log": "FromLog", diff --git a/lmms_eval/models/internvl2.py b/lmms_eval/models/internvl2.py new file mode 100644 index 00000000..2763e935 --- /dev/null +++ b/lmms_eval/models/internvl2.py @@ -0,0 +1,236 @@ +from typing import List, Tuple +from lmms_eval.api.instance import Instance +from decord import VideoReader, cpu +import torch +import torchvision.transforms as T +from PIL import Image +from torchvision.transforms.functional import InterpolationMode +import numpy as np +from transformers import AutoModel, AutoTokenizer +from lmms_eval.api.registry import register_model +from accelerate import Accelerator, DistributedType +from lmms_eval.api.model import lmms +from tqdm import tqdm +import logging + +eval_logger = logging.getLogger("eval_logger") + +IMAGENET_MEAN = (0.485, 0.456, 0.406) +IMAGENET_STD = (0.229, 0.224, 0.225) + +DEFAULT_GEN_KWARGS = dict( + num_beams=1, + max_new_tokens=1024, + do_sample=False, +) + + +def build_transform(input_size): + MEAN, STD = IMAGENET_MEAN, IMAGENET_STD + transform = T.Compose([T.Lambda(lambda img: img.convert("RGB") if img.mode != "RGB" else img), T.Resize((input_size, input_size), interpolation=InterpolationMode.BICUBIC), T.ToTensor(), T.Normalize(mean=MEAN, std=STD)]) + return transform + + +def find_closest_aspect_ratio(aspect_ratio, target_ratios, width, height, image_size): + best_ratio_diff = float("inf") + best_ratio = (1, 1) + area = width * height + for ratio in target_ratios: + target_aspect_ratio = ratio[0] / ratio[1] + ratio_diff = abs(aspect_ratio - target_aspect_ratio) + if ratio_diff < best_ratio_diff: + best_ratio_diff = ratio_diff + best_ratio = ratio + elif ratio_diff == best_ratio_diff: + if area > 0.5 * image_size * image_size * ratio[0] * ratio[1]: + best_ratio = ratio + return best_ratio + + +def dynamic_preprocess(image, min_num=1, max_num=6, image_size=448, use_thumbnail=False): + orig_width, orig_height = image.size + aspect_ratio = orig_width / orig_height + + # calculate the existing image aspect ratio + target_ratios = set((i, j) for n in range(min_num, max_num + 1) for i in range(1, n + 1) for j in range(1, n + 1) if i * j <= max_num and i * j >= min_num) + target_ratios = sorted(target_ratios, key=lambda x: x[0] * x[1]) + + # find the closest aspect ratio to the target + target_aspect_ratio = find_closest_aspect_ratio(aspect_ratio, target_ratios, orig_width, orig_height, image_size) + + # calculate the target width and height + target_width = image_size * target_aspect_ratio[0] + target_height = image_size * target_aspect_ratio[1] + blocks = target_aspect_ratio[0] * target_aspect_ratio[1] + + # resize the image + resized_img = image.resize((target_width, target_height)) + processed_images = [] + for i in range(blocks): + box = ((i % (target_width // image_size)) * image_size, (i // (target_width // image_size)) * image_size, ((i % (target_width // image_size)) + 1) * image_size, ((i // (target_width // image_size)) + 1) * image_size) + # split the image + split_img = resized_img.crop(box) + processed_images.append(split_img) + assert len(processed_images) == blocks + if use_thumbnail and len(processed_images) != 1: + thumbnail_img = image.resize((image_size, image_size)) + processed_images.append(thumbnail_img) + return processed_images + + +def load_image(image, input_size=448, max_num=6): + transform = build_transform(input_size=input_size) + images = dynamic_preprocess(image, image_size=input_size, use_thumbnail=True, max_num=max_num) + pixel_values = [transform(image) for image in images] + pixel_values = torch.stack(pixel_values) + return pixel_values + + +def get_index(bound, fps, max_frame, first_idx=0, num_segments=32): + if bound: + start, end = bound[0], bound[1] + else: + start, end = -100000, 100000 + start_idx = max(first_idx, round(start * fps)) + end_idx = min(round(end * fps), max_frame) + seg_size = float(end_idx - start_idx) / num_segments + frame_indices = np.array([int(start_idx + (seg_size / 2) + np.round(seg_size * idx)) for idx in range(num_segments)]) + return frame_indices + + +def load_video(video_path, bound=None, input_size=448, max_num=1, num_segments=32): + vr = VideoReader(video_path, ctx=cpu(0), num_threads=1) + max_frame = len(vr) - 1 + fps = float(vr.get_avg_fps()) + + pixel_values_list, num_patches_list = [], [] + transform = build_transform(input_size=input_size) + frame_indices = get_index(bound, fps, max_frame, first_idx=0, num_segments=num_segments) + for frame_index in frame_indices: + img = Image.fromarray(vr[frame_index].asnumpy()).convert("RGB") + img = dynamic_preprocess(img, image_size=input_size, use_thumbnail=True, max_num=max_num) + pixel_values = [transform(tile) for tile in img] + pixel_values = torch.stack(pixel_values) + num_patches_list.append(pixel_values.shape[0]) + pixel_values_list.append(pixel_values) + pixel_values = torch.cat(pixel_values_list) + return pixel_values, num_patches_list + + +from datetime import timedelta +from accelerate.state import AcceleratorState +from accelerate.utils import InitProcessGroupKwargs + + +@register_model("internvl2") +class InternVL2(lmms): + def __init__( + self, + pretrained: str = "OpenGVLab/InternVL2-2B", + modality: str = "image", + device: str = "cuda:0", + device_map: str = "cuda:0", + batch_size: str = "1", + **kwargs, + ): + super().__init__() + + self.path = pretrained + self.model = AutoModel.from_pretrained(self.path, torch_dtype=torch.bfloat16, low_cpu_mem_usage=True, trust_remote_code=True).eval().cuda() + self.tokenizer = AutoTokenizer.from_pretrained(self.path, trust_remote_code=True) + + batch_size = int(batch_size) + assert batch_size == 1, f"Batch size should be 1 for InternVL2, but got {batch_size}." + self.batch_size_per_gpu = batch_size + + accelerator_kwargs = InitProcessGroupKwargs(timeout=timedelta(weeks=52)) + accelerator = Accelerator(kwargs_handlers=[accelerator_kwargs]) + if accelerator.num_processes > 1: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + elif accelerator.num_processes == 1 and device_map == "auto": + self._device = torch.device(device) + self.device_map = device_map + else: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + + if accelerator.num_processes > 1: + assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." + # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model + # Also, you have to select zero stage 0 (equivalent to DDP) in order to make the prepare model works + # I tried to set different parameters in the kwargs to let default zero 2 stage works, but it didn't work. + if accelerator.distributed_type == DistributedType.DEEPSPEED: + kwargs = { + "train_micro_batch_size_per_gpu": self.batch_size_per_gpu, + "train_batch_size": self.batch_size_per_gpu * accelerator.num_processes, + } + AcceleratorState().deepspeed_plugin.deepspeed_config_process(must_match=True, **kwargs) + eval_logger.info("Detected that you are using DistributedType.DEEPSPEED. Make sure you run `accelerate config` and set zero stage to 0") + + if accelerator.distributed_type == DistributedType.FSDP or accelerator.distributed_type == DistributedType.DEEPSPEED: + self._model = accelerator.prepare(self.model) + else: + self._model = accelerator.prepare_model(self.model, evaluation_mode=True) + self.accelerator = accelerator + if self.accelerator.is_local_main_process: + eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") + self._rank = self.accelerator.local_process_index + self._world_size = self.accelerator.num_processes + elif accelerator.num_processes == 1 and device_map == "auto": + eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") + self._rank = 0 + self._word_size = 1 + else: + eval_logger.info(f"Using single device: {self._device}") + self.model.to(self._device) + self._rank = 0 + self._world_size = 1 + + self.device = self._device + self.modality = modality + + def flatten(self, input): + new_list = [] + for i in input: + for j in i: + new_list.append(j) + return new_list + + def generate_until(self, requests) -> List[str]: + res = [] + pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") + + for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: + if "until" in gen_kwargs: + gen_kwargs.pop("until") + for k, v in DEFAULT_GEN_KWARGS.items(): + if k not in gen_kwargs: + gen_kwargs[k] = v + + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] + visuals = self.flatten(visuals) + if self.modality == "image": + visuals = [load_image(visual).to(torch.bfloat16).cuda() for visual in visuals] + pixel_values = torch.cat(visuals, dim=0) + num_patches_list = [visual.size(0) for visual in visuals] + if visuals: + image_tokens = [""] * len(visuals) + image_tokens = " ".join(image_tokens) + contexts = image_tokens + "\n" + contexts + response, history = self.model.chat(self.tokenizer, pixel_values, contexts, gen_kwargs, num_patches_list=num_patches_list, history=None, return_history=True) + elif self.modality == "video": + assert len(visuals) == 1, f"Only one video is supported, but got {len(visuals)} videos." + video_path = visuals[0] + pixel_values, num_patches_list = load_video(video_path, num_segments=8, max_num=1) + pixel_values = pixel_values.to(torch.bfloat16).cuda() + video_prefix = "".join([f"Frame{i+1}: \n" for i in range(len(num_patches_list))]) + question = video_prefix + contexts + response, history = self.model.chat(self.tokenizer, pixel_values, question, gen_kwargs, num_patches_list=num_patches_list, history=None, return_history=True) + res.append(response) + pbar.update(1) + pbar.close() + return res + + def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: + assert False, "Not implemented yet." diff --git a/lmms_eval/tasks/vibe_eval/utils.py b/lmms_eval/tasks/vibe_eval/utils.py index 5a64cce6..9e3b3c56 100644 --- a/lmms_eval/tasks/vibe_eval/utils.py +++ b/lmms_eval/tasks/vibe_eval/utils.py @@ -59,6 +59,7 @@ Explanation: (your explanation) Rating: (int)""" + @dataclass class Example: """An example loaded from vibe-eval, stored as jsonl in the repo.""" @@ -75,6 +76,7 @@ class Example: score: Optional[int] = None evaluator_explanation: Optional[str] = None + class Evaluator(Enum): # Use Reka Core (including image input). REKA_CORE = "reka-core" @@ -82,6 +84,7 @@ class Evaluator(Enum): # Use Reka Core, only using text input. REKA_CORE_TEXT = "reka-core-text" + def make_evaluator_prompt(example: Example, include_image: bool) -> str: return (_PROMPT_WITH_IMAGE if include_image else _PROMPT_WITH_NO_IMAGE).format( prompt=example.prompt, @@ -89,6 +92,7 @@ def make_evaluator_prompt(example: Example, include_image: bool) -> str: generation=example.generation, ) + def evaluate(example: Example, evaluator: Evaluator) -> Example: """Evaluates the generation and populates the score and explanation fields.""" include_image = evaluator == Evaluator.REKA_CORE @@ -112,11 +116,11 @@ def evaluate(example: Example, evaluator: Evaluator) -> Example: ) evaluator_response = evaluator_response.responses[0].message.content # evaluator_response = reka.chat( - # human=evaluator_prompt, - # media_url=example.media_url if include_image else None, - # temperature=0.4, - # model_name="reka-core-20240415", - # request_output_len=1024, + # human=evaluator_prompt, + # media_url=example.media_url if include_image else None, + # temperature=0.4, + # model_name="reka-core-20240415", + # request_output_len=1024, # )["text"] re_match = re.search(r"Rating:\s*([1-5])", evaluator_response) if re_match is None: @@ -127,9 +131,11 @@ def evaluate(example: Example, evaluator: Evaluator) -> Example: example.evaluator_explanation = evaluator_response return example + def vibe_doc_to_visual(doc): return [doc["image"].convert("RGB")] + def vibe_doc_to_text(doc, model_specific_prompt_kwargs=None): question = doc["prompt"].strip() if "pre_prompt" in model_specific_prompt_kwargs and model_specific_prompt_kwargs["pre_prompt"] != "": @@ -138,6 +144,7 @@ def vibe_doc_to_text(doc, model_specific_prompt_kwargs=None): question = f"{question}{model_specific_prompt_kwargs['post_prompt']}" return question + def vibe_process_results(doc, results): example_id = doc["example_id"] category = doc["category"] @@ -146,34 +153,27 @@ def vibe_process_results(doc, results): media_filename = doc["media_url"] media_url = doc["media_url"] generation = results[0] - example = Example( - example_id=example_id, - category=category, - prompt=prompt, - reference=reference, - media_filename=media_filename, - media_url=media_url, - generation=generation - ) + example = Example(example_id=example_id, category=category, prompt=prompt, reference=reference, media_filename=media_filename, media_url=media_url, generation=generation) + + evaluator = Evaluator.REKA_CORE if EVALUATOR_NAME == "reka-core" else Evaluator.REKA_CORE_TEXT - evaluator = Evaluator.REKA_CORE if EVALUATOR_NAME == "reka-core" else Evaluator.REKA_CORE_TEXT - example = evaluate(example, evaluator=evaluator) data_dict = { - "score" : example.score, - "evaluator_explanation" : example.evaluator_explanation, - "prompt" : example.prompt, - "generation" : example.generation, - "media_url" : example.media_url, - "category" : example.category, + "score": example.score, + "evaluator_explanation": example.evaluator_explanation, + "prompt": example.prompt, + "generation": example.generation, + "media_url": example.media_url, + "category": example.category, } return { - "hard" : deepcopy(data_dict), - "normal" : deepcopy(data_dict), - "all" : deepcopy(data_dict), + "hard": deepcopy(data_dict), + "normal": deepcopy(data_dict), + "all": deepcopy(data_dict), } + def _mean(scores: List[int]) -> float: """Scale from 1-5 to 0-100 and compute means.""" return sum(25 * (score - 1) for score in scores) / len(scores) @@ -184,7 +184,7 @@ def vibe_aggregation_results(results, category): for res in results: if category in res["category"] or category == "all": score.append(res["score"]) - + aggregate_scores = _mean(score) return aggregate_scores @@ -198,4 +198,4 @@ def vibe_aggregation_results_hard(results): def vibe_aggregation_results_all(results): - return vibe_aggregation_results(results, "all") \ No newline at end of file + return vibe_aggregation_results(results, "all") From b9ce5c0b24b9797527cbdab28bcd5bae71c142f6 Mon Sep 17 00:00:00 2001 From: Kaichen Zhang - NTU Date: Sun, 7 Jul 2024 12:41:41 +0800 Subject: [PATCH 17/32] Update videomme_w_subtitle.yaml --- lmms_eval/tasks/videomme/videomme_w_subtitle.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml b/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml index b7724748..cfa5f070 100644 --- a/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml +++ b/lmms_eval/tasks/videomme/videomme_w_subtitle.yaml @@ -26,11 +26,8 @@ metric_list: model_specific_prompt_kwargs: default: frame_num: 32 -<<<<<<< HEAD pre_prompt: "" post_prompt: "\nAnswer the question using a single word or phrase." -======= ->>>>>>> internal_main_dev gemini_api: gemini_api_flag: "full subtitle" # gpt4v: From a4d59de22a956ab4af6f4584527a9812ce43bb0f Mon Sep 17 00:00:00 2001 From: kcz358 Date: Mon, 8 Jul 2024 02:39:06 +0000 Subject: [PATCH 18/32] Fix gen kwargs image aspect ration in internvl2 --- lmms_eval/models/internvl2.py | 1 + lmms_eval/models/{xcomposer2_4khd.py => xcomposer2_4KHD.py} | 0 2 files changed, 1 insertion(+) rename lmms_eval/models/{xcomposer2_4khd.py => xcomposer2_4KHD.py} (100%) diff --git a/lmms_eval/models/internvl2.py b/lmms_eval/models/internvl2.py index 2763e935..1f5a0185 100644 --- a/lmms_eval/models/internvl2.py +++ b/lmms_eval/models/internvl2.py @@ -204,6 +204,7 @@ def generate_until(self, requests) -> List[str]: for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: if "until" in gen_kwargs: gen_kwargs.pop("until") + image_aspect_ratio = gen_kwargs.pop("image_aspect_ratio", None) for k, v in DEFAULT_GEN_KWARGS.items(): if k not in gen_kwargs: gen_kwargs[k] = v diff --git a/lmms_eval/models/xcomposer2_4khd.py b/lmms_eval/models/xcomposer2_4KHD.py similarity index 100% rename from lmms_eval/models/xcomposer2_4khd.py rename to lmms_eval/models/xcomposer2_4KHD.py From 266bc700231138940d708d64e295a63fb5624063 Mon Sep 17 00:00:00 2001 From: kcz358 Date: Mon, 8 Jul 2024 02:39:28 +0000 Subject: [PATCH 19/32] Fix llava_wilder bug --- lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml | 6 +++--- lmms_eval/tasks/llava_wilder/utils.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml b/lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml index 1c493673..1d112ee2 100644 --- a/lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml +++ b/lmms_eval/tasks/llava_wilder/llava_wilder_small.yaml @@ -1,8 +1,8 @@ -dataset_path: lmms-lab/llava-bench-wilder +dataset_path: lmms-lab/LLaVA-Bench-Wilder dataset_kwargs: token: True task: "llava_wilder_small" -test_split: small +test_split: test model_specific_prompt_kwargs: default: pre_prompt: "" @@ -10,4 +10,4 @@ model_specific_prompt_kwargs: xcomposer2_4khd: pre_prompt: "[UNUSED_TOKEN_146]user\nQuestion: " post_prompt: "[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" -include: _default_template_wilder_yaml \ No newline at end of file +include: _default_template_wilder_yaml diff --git a/lmms_eval/tasks/llava_wilder/utils.py b/lmms_eval/tasks/llava_wilder/utils.py index 96a020bc..04bb8273 100644 --- a/lmms_eval/tasks/llava_wilder/utils.py +++ b/lmms_eval/tasks/llava_wilder/utils.py @@ -119,8 +119,8 @@ def llava_process_results(doc, result): a dictionary with key: metric name (in this case coco_bleu), value: metric value """ try: - question = doc.get("question", "") - ans1 = doc.get("answer", "") + question = doc.get("Question", "") + ans1 = doc.get("Answer", "") ans2 = result[0] if result else "" content = f"[Question]\n{question}\n\n" + f"[Assistant 1]\n{ans1}\n\n[End of Assistant 1]\n\n" + f"[Assistant 2]\n{ans2}\n\n[End of Assistant 2]\n\n" f"[System]\n{judge_rules}\n\n" visuals = llava_doc_to_visual(doc) @@ -148,7 +148,7 @@ def llava_doc_to_text(doc, model_specific_prompt_kwargs=None): model_specific_prompt_kwargs = {} pre_prompt = model_specific_prompt_kwargs.get("pre_prompt", "") post_prompt = model_specific_prompt_kwargs.get("post_prompt", "") - return f"{pre_prompt}{doc['question']}{post_prompt}" + return f"{pre_prompt}{doc['Question']}{post_prompt}" def llava_all_aggregation(results): From 6b7f253b24711ce50b710ccec15172fbace03f4f Mon Sep 17 00:00:00 2001 From: Li Bo Date: Mon, 8 Jul 2024 10:47:35 +0800 Subject: [PATCH 20/32] Dev/interleave bench (#136) * feat: Update LMMS evaluation configuration and models - Update `activitynetqa_generation.yaml` to remove `dataset_name` field and update `task` field to "activitynetqa" - Update `utils.py` to add default values for `API_URL` and `API_KEY` when `API_TYPE` is not "openai" or "azure" - Update `batch_gpt4.py` and `gpt4v.py` to rename `max_frames_for_video` parameter to `max_frames_num` - Update `reka.py` to rename `max_frames_for_video` parameter to `max_frames_num` and add support for `continual_mode` with a persistent response cache This commit updates the LMMS evaluation configuration and models to improve compatibility and add new features. * Update LMMS evaluation configuration and models * Update LMMS evaluation configuration and models * feat: Update LMMS evaluation configuration and models - Update `activitynetqa_generation.yaml` to remove `dataset_name` field and update `task` field to "activitynetqa" - Update `utils.py` to add default values for `API_URL` and `API_KEY` when `API_TYPE` is not "openai" or "azure" - Update `batch_gpt4.py` and `gpt4v.py` to rename `max_frames_for_video` parameter to `max_frames_num` - Update `reka.py` to rename `max_frames_for_video` parameter to `max_frames_num` and add support for `continual_mode` with a persistent response cache This commit updates the LMMS evaluation configuration and models to improve compatibility and add new features. * Refactor error handling in GPT4V model evaluation * Refactor error handling in GPT4V model evaluation * Refactor video decoding backend to use "decord" instead of "pyav" * Refactor image aspect ratio handling in Llava_OneVision model * Refactor GPT4V model to fix bug in visuals encoding * add exception for azure gpt * feat: fix bugs * feat: update * Refactor image aspect ratio handling in Llava_OneVision model * Refactor image aspect ratio handling in Llava_OneVision model * update interleave bench --- lmms_eval/models/llava.py | 2 +- lmms_eval/models/llava_onevision.py | 95 ++-- lmms_eval/models/xcomposer2_4KHD.py | 294 ----------- .../llava_interleave_bench/in_domain.yaml | 9 +- .../interleave_bench.yaml | 5 + .../multi_view_in_domain.yaml | 15 +- .../llava_interleave_bench/out_of_domain.yaml | 9 +- .../tasks/llava_interleave_bench/utils.py | 456 ++++++++++-------- lmms_eval/utils.py | 9 + 9 files changed, 329 insertions(+), 565 deletions(-) delete mode 100644 lmms_eval/models/xcomposer2_4KHD.py create mode 100644 lmms_eval/tasks/llava_interleave_bench/interleave_bench.yaml diff --git a/lmms_eval/models/llava.py b/lmms_eval/models/llava.py index 6de4c8f8..7528e356 100755 --- a/lmms_eval/models/llava.py +++ b/lmms_eval/models/llava.py @@ -97,7 +97,7 @@ def __init__( self._tokenizer, self._model, self._image_processor, self._max_length = load_pretrained_model(pretrained, None, model_name, device_map=self.device_map, **llava_model_args) self._config = self._model.config self.model.eval() - self.model.tie_weights() + self.truncation = truncation self.batch_size_per_gpu = int(batch_size) self.conv_template = conv_template diff --git a/lmms_eval/models/llava_onevision.py b/lmms_eval/models/llava_onevision.py index 5cfbb538..3f27c803 100644 --- a/lmms_eval/models/llava_onevision.py +++ b/lmms_eval/models/llava_onevision.py @@ -1,29 +1,23 @@ -from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs -from accelerate.state import AcceleratorState -from transformers import AutoConfig - import math -import torch -import transformers import re - -torch.backends.cuda.matmul.allow_tf32 = True - -from tqdm import tqdm -from datetime import timedelta -from decord import VideoReader, cpu -import numpy as np - import copy -import PIL -from typing import List, Optional, Union, Tuple -from packaging import version -import warnings +import json import logging +import warnings +from datetime import timedelta +from typing import List, Optional, Union, Tuple +import PIL -warnings.filterwarnings("ignore") +import numpy as np +import torch +import transformers +from tqdm import tqdm +from packaging import version +from decord import VideoReader, cpu -eval_logger = logging.getLogger("lmms-eval") +from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs +from accelerate.state import AcceleratorState +from transformers import AutoConfig from lmms_eval import utils from lmms_eval.api.instance import Instance @@ -31,27 +25,46 @@ from lmms_eval.api.registry import register_model from lmms_eval.models.model_utils.load_video import read_video_pyav +# Suppress warnings +warnings.filterwarnings("ignore") + +# Configure logging +eval_logger = logging.getLogger("lmms-eval") + +# Enable TF32 for CUDA +torch.backends.cuda.matmul.allow_tf32 = True + +# Import LLaVA modules try: from llava.model.builder import load_pretrained_model - from llava.mm_utils import get_model_name_from_path, process_images, tokenizer_image_token, KeywordsStoppingCriteria - from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN, IGNORE_INDEX + from llava.mm_utils import ( + get_model_name_from_path, + process_images, + tokenizer_image_token, + KeywordsStoppingCriteria, + ) + from llava.constants import ( + IMAGE_TOKEN_INDEX, + DEFAULT_IMAGE_TOKEN, + DEFAULT_IM_START_TOKEN, + DEFAULT_IM_END_TOKEN, + IGNORE_INDEX, + ) from llava.conversation import conv_templates, SeparatorStyle +except ImportError as e: + eval_logger.debug(f"LLaVA is not installed. Please install LLaVA to use this model.\nError: {e}") -except Exception as e: - eval_logger.debug("LLaVA is not installed. Please install LLaVA to use this model.\nError: %s" % e) - +# Import LLaVA-vid modules try: from llavavid.model.language_model.llava_qwen import LlavaQwenConfig from llavavid.model.language_model.llava_llama import LlavaConfig AutoConfig.register("llava_qwen", LlavaQwenConfig) AutoConfig.register("llava_llama", LlavaConfig) -except Exception as e: - eval_logger.debug("") -# inference implementation for attention, can be "sdpa", "eager", "flash_attention_2". Seems FA2 is not effective during inference: https://discuss.huggingface.co/t/flash-attention-has-no-effect-on-inference/73453/5 -# if is_flash_attn_2_available: -# best_fit_attn_implementation = "flash_attention_2" # flash_attn has a bug that says: ERROR Error query and key must have the same dtype in generating +except ImportError as e: + eval_logger.debug(f"LLaVA-vid is not installed. Error: {e}") +# Determine best attention implementation if version.parse(torch.__version__) >= version.parse("2.1.2"): best_fit_attn_implementation = "sdpa" else: @@ -146,7 +159,6 @@ def __init__( self._config = self._model.config self.model.eval() - self.model.tie_weights() self.truncation = truncation self.batch_size_per_gpu = int(batch_size) self.conv_template = conv_template @@ -484,10 +496,23 @@ def _collate(x): conv = copy.deepcopy(conv_templates[self.conv_template]) else: conv = conv_templates[self.conv_template].copy() - conv.append_message(conv.roles[0], question) - conv.append_message(conv.roles[1], None) - prompt_question = conv.get_prompt() - question_input.append(prompt_question) + + if utils.is_json(question): # conversational question input + question = json.loads(question) + for idx, item in enumerate(question): + role = conv.roles[idx % 2] + message = item["value"] + conv.append_message(role, message) + + assert len(conv.messages) % 2 == 1 + conv.append_message(conv.roles[1], None) + prompt_question = conv.get_prompt() + question_input.append(prompt_question) + else: # only simple string for question + conv.append_message(conv.roles[0], question) + conv.append_message(conv.roles[1], None) + prompt_question = conv.get_prompt() + question_input.append(prompt_question) # preconfigure gen_kwargs with defaults if "max_new_tokens" not in gen_kwargs: diff --git a/lmms_eval/models/xcomposer2_4KHD.py b/lmms_eval/models/xcomposer2_4KHD.py deleted file mode 100644 index e741f637..00000000 --- a/lmms_eval/models/xcomposer2_4KHD.py +++ /dev/null @@ -1,294 +0,0 @@ -from multiprocessing import context -import torch -from transformers import AutoModel, AutoTokenizer -from PIL import Image -import numpy as np -import torchvision.transforms as transforms -from datetime import timedelta - -from lmms_eval import utils -from lmms_eval.api.instance import Instance -from lmms_eval.api.model import lmms -from lmms_eval.api.registry import register_model -from lmms_eval.utils import stop_sequences_criteria - -from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs -from accelerate.state import AcceleratorState - -from typing import Optional, Sequence, List, Tuple, Union -import re -from tqdm import tqdm - -pattern = re.compile(r"[A-Z]") - -from loguru import logger as eval_logger - -meta_instruction = """You are an AI assistant whose name is InternLM-XComposer (浦语·灵笔). -- InternLM-XComposer (浦语·灵笔) is a multi-modality conversational language model that is developed\ - by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless. -- InternLM-XComposer (浦语·灵笔) can understand and communicate fluently in the language chosen by\ - the user such as English and 中文. -- InternLM-XComposer (浦语·灵笔) is capable of comprehending and articulating responses\ - effectively based on the provided image.""" - - -@register_model("xcomposer2_4khd") -class XComposer2_4KHD(lmms): - def __init__( - self, - pretrained: str = "internlm/internlm-xcomposer2-4khd-7b", - device: Optional[str] = "cuda:0", - batch_size: Optional[Union[int, str]] = 1, - device_map="cuda:0", - need_bos: bool = True, - padding: bool = False, - half: bool = False, - **kwargs, - ) -> None: - super().__init__() - - accelerator_kwargs = InitProcessGroupKwargs(timeout=timedelta(weeks=52)) - accelerator = Accelerator(kwargs_handlers=[accelerator_kwargs]) - if accelerator.num_processes > 1: - self._device = torch.device(f"cuda:{accelerator.local_process_index}") - self.device_map = f"cuda:{accelerator.local_process_index}" - elif accelerator.num_processes == 1 and device_map == "auto": - self._device = torch.device(device) - self.device_map = device_map - else: - self._device = torch.device(f"cuda:{accelerator.local_process_index}") - self.device_map = f"cuda:{accelerator.local_process_index}" - - self.pretrained = pretrained - self.need_bos = need_bos - self.padding = padding - self._model = AutoModel.from_pretrained(self.pretrained, device_map=self.device_map, trust_remote_code=True) - self._tokenizer = AutoTokenizer.from_pretrained(self.pretrained, trust_remote_code=True) - self.model.tokenizer = self.tokenizer - self.batch_size_per_gpu = batch_size - - if accelerator.num_processes > 1: - assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." - # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model - # Also, you have to select zero stage 0 (equivalent to DDP) in order to make the prepare model works - # I tried to set different parameters in the kwargs to let default zero 2 stage works, but it didn't work. - if accelerator.distributed_type == DistributedType.DEEPSPEED: - kwargs = { - "train_micro_batch_size_per_gpu": self.batch_size_per_gpu, - "train_batch_size": self.batch_size_per_gpu * accelerator.num_processes, - } - AcceleratorState().deepspeed_plugin.deepspeed_config_process(must_match=True, **kwargs) - eval_logger.info("Detected that you are using DistributedType.DEEPSPEED. Make sure you run `accelerate config` and set zero stage to 0") - if accelerator.distributed_type == DistributedType.FSDP or accelerator.distributed_type == DistributedType.DEEPSPEED: - self._model = accelerator.prepare(self.model) - else: - self._model = accelerator.prepare_model(self.model, evaluation_mode=True) - self.accelerator = accelerator - if self.accelerator.is_local_main_process: - eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") - self._rank = self.accelerator.local_process_index - self._world_size = self.accelerator.num_processes - elif accelerator.num_processes == 1 and device_map == "auto": - eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") - self._rank = 0 - self._word_size = 1 - else: - eval_logger.info(f"Using single device: {self._device}") - self.model.to(self._device) - self._rank = 0 - self._world_size = 1 - - @property - def config(self): - # return the associated transformers.AutoConfig for the given pretrained model. - return self._config - - @property - def tokenizer(self): - return self._tokenizer - - @property - def model(self): - # returns the model, unwrapping it if using Accelerate - if hasattr(self, "accelerator"): - return self.accelerator.unwrap_model(self._model) - else: - return self._model - - @property - def batch_size(self): - return self.batch_size_per_gpu - - @property - def device(self): - return self._device - - @property - def rank(self): - return self._rank - - @property - def world_size(self): - return self._world_size - - def flatten(self, input): - new_list = [] - for i in input: - for j in i: - new_list.append(j) - return new_list - - def generate_until(self, requests) -> List[str]: - res = [] - pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") - - for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: - # encode, pad, and truncate contexts for this batch - if "[UNUSED_TOKEN_146]" not in contexts: - contexts = f"[UNUSED_TOKEN_146]user\n{contexts}[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" - visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] - visuals = self.flatten(visuals) - - if "hd_num" not in gen_kwargs: - if listinstr(["docvqa_test", "infovqa_test"], task.lower()): - self.model.hd_num = 65 - elif listinstr(["docvqa_val", "infovqa_val", "OCRBench"], task.lower()): - self.model.hd_num = 55 - elif listinstr(["mmmu", "mmbench", "mmvet"], task.lower()): - self.model.hd_num = 16 - else: - self.model.hd_num = 25 - else: - self.model.hd_num = gen_kwargs.pop("hd_num") - - pt1 = 0 - embeds = [] - im_mask = [] - images_loc = [0] - need_bos = self.need_bos - padding = self.padding - for i, pts in enumerate(images_loc + [len(contexts)]): - subtext = contexts[pt1:pts] - if need_bos or len(subtext) > 0: - text_embeds = self.model.encode_text(subtext, add_special_tokens=need_bos).to(self.device) - embeds.append(text_embeds) - im_mask.append(torch.zeros(text_embeds.shape[:2]).to(self.device)) - need_bos = False - if i < len(visuals): - image = visuals[i] - - image = HD_transform(image, im_num=self.model.hd_num) - image = self.model.vis_processor(image).unsqueeze(0).to(self.device) - image_embeds = self.model.encode_img(image) - embeds.append(image_embeds) - im_mask.append(torch.ones(image_embeds.shape[:2]).to(self.device)) - pt1 = pts - embeds = torch.cat(embeds, dim=1) - im_mask = torch.cat(im_mask, dim=1) - im_mask = im_mask.bool() - - if "max_new_tokens" not in gen_kwargs: - gen_kwargs["max_new_tokens"] = 1024 - if "temperature" not in gen_kwargs: - gen_kwargs["temperature"] = 0 - if "top_p" not in gen_kwargs: - gen_kwargs["top_p"] = None - if "num_beams" not in gen_kwargs: - gen_kwargs["num_beams"] = 1 - if "do_sample" not in gen_kwargs: - gen_kwargs["do_sample"] = False - if "repetition_penalty" not in gen_kwargs: - gen_kwargs["repetition_penalty"] = 1.0 - - outputs = self.model.generate( - inputs_embeds=embeds, - im_mask=im_mask, - temperature=gen_kwargs["temperature"], - max_new_tokens=gen_kwargs["max_new_tokens"], - num_beams=gen_kwargs["num_beams"], - do_sample=gen_kwargs["do_sample"], - repetition_penalty=gen_kwargs["repetition_penalty"], - ) - output_token = outputs[0] - if output_token[0] == 0 or output_token[0] == 1: - output_token = output_token[1:] - output_text = self.model.tokenizer.decode(output_token, add_special_tokens=False) - output_text = output_text.split("[UNUSED_TOKEN_145]")[0].strip() - output_text = output_text.split("<|im_end|>")[0].strip() - # if DATASET_TYPE(task) == "multi-choice": - # output_text = pattern.findall(output_text) - # if len(output_text) == 0: - # print("Error:", output_text) - # output_text = "Z" - # if type(output_text) == list: - # output_text = output_text[0] - res.append(output_text) - pbar.update(1) - pbar.close() - return res - - def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: - return super().loglikelihood(requests) - - -def padding_336(b): - width, height = b.size - tar = int(np.ceil(height / 336) * 336) - top_padding = int((tar - height) / 2) - bottom_padding = tar - height - top_padding - left_padding = 0 - right_padding = 0 - b = transforms.functional.pad(b, [left_padding, top_padding, right_padding, bottom_padding], fill=[255, 255, 255]) - - return b - - -def HD_transform(img, im_num=16): - width, height = img.size - trans = False - if width < height: - img = img.transpose(Image.TRANSPOSE) - trans = True - width, height = img.size - ratio = width / height - scale = 1 - while scale * np.ceil(scale / ratio) <= im_num: - scale += 1 - scale -= 1 - new_w = int(scale * 336) - new_h = int(new_w / ratio) - - img = transforms.functional.resize( - img, - [new_h, new_w], - ) - img = padding_336(img) - width, height = img.size - assert width * height <= im_num * 336 * 336 - if trans: - img = img.transpose(Image.TRANSPOSE) - - return img - - -def listinstr(lst, s): - assert isinstance(lst, list) - for item in lst: - if item in s: - return True - return False - - -def DATASET_TYPE(dataset): - # Dealing with Custom Dataset - dataset = dataset.lower() - if listinstr(["mmbench", "seedbench", "ccbench", "mmmu", "scienceqa", "ai2d", "mmstar"], dataset): - return "multi-choice" - elif listinstr(["mme", "hallusion"], dataset): - return "Y/N" - elif "coco" in dataset: - return "Caption" - elif listinstr(["ocrvqa", "textvqa", "chartqa", "mathvista", "docvqa", "infovqa", "llavabench", "mmvet", "ocrbench"], dataset): - return "VQA" - else: - return "QA" diff --git a/lmms_eval/tasks/llava_interleave_bench/in_domain.yaml b/lmms_eval/tasks/llava_interleave_bench/in_domain.yaml index 86255d95..9a6bf8e4 100644 --- a/lmms_eval/tasks/llava_interleave_bench/in_domain.yaml +++ b/lmms_eval/tasks/llava_interleave_bench/in_domain.yaml @@ -10,11 +10,8 @@ doc_to_text: !function utils.doc_to_text process_results: !function utils.interleave_process_results metric_list: - - metric: mcq_acc - aggregation: !function utils.mcq_acc - higher_is_better: true - - metric: oe_rogue - aggregation: !function utils.oe_rogue + - metric: overall_score + aggregation: !function utils.overall_score higher_is_better: true generation_kwargs: @@ -26,4 +23,4 @@ generation_kwargs: model_specific_prompt_kwargs: default: oe_post_prompt: "" - mcq_post_prompt: "Answer with the option's letter from the given choices directly." \ No newline at end of file + mcq_post_prompt: "" diff --git a/lmms_eval/tasks/llava_interleave_bench/interleave_bench.yaml b/lmms_eval/tasks/llava_interleave_bench/interleave_bench.yaml new file mode 100644 index 00000000..2d68410b --- /dev/null +++ b/lmms_eval/tasks/llava_interleave_bench/interleave_bench.yaml @@ -0,0 +1,5 @@ +group: llava_interleave_bench +task: +- llava_interleave_bench_in_domain +- llava_interleave_bench_out_domain +- llava_interleave_bench_multi_view \ No newline at end of file diff --git a/lmms_eval/tasks/llava_interleave_bench/multi_view_in_domain.yaml b/lmms_eval/tasks/llava_interleave_bench/multi_view_in_domain.yaml index f478caeb..5b3dec18 100644 --- a/lmms_eval/tasks/llava_interleave_bench/multi_view_in_domain.yaml +++ b/lmms_eval/tasks/llava_interleave_bench/multi_view_in_domain.yaml @@ -2,28 +2,25 @@ dataset_path: lmms-lab/LLaVA-NeXT-Interleave-Bench dataset_name: multi_view_in_domain dataset_kwargs: token: True -task: "llava_interleave_bench_multi_view_in_domain" +task: "llava_interleave_bench_multi_view" test_split: test doc_to_target: "answer" doc_to_visual: !function utils.doc_to_visual -doc_to_text: !function utils.doc_to_text +doc_to_text: !function utils.doc_to_text_conversation process_results: !function utils.interleave_process_results metric_list: - - metric: mcq_acc - aggregation: !function utils.mcq_acc - higher_is_better: true - - metric: oe_rogue - aggregation: !function utils.oe_rogue + - metric: overall_score + aggregation: !function utils.overall_score higher_is_better: true generation_kwargs: max_new_tokens: 16 temperature: 0 do_sample: False - image_aspect_ratio: "original" # for multi-image, we treat each image as original aspect ratio without anyres strategy. + image_aspect_ratio: "pad" # for multi-image, we treat each image as original aspect ratio without anyres strategy. model_specific_prompt_kwargs: default: oe_post_prompt: "" - mcq_post_prompt: "Answer with the option's letter from the given choices directly." \ No newline at end of file + mcq_post_prompt: "" diff --git a/lmms_eval/tasks/llava_interleave_bench/out_of_domain.yaml b/lmms_eval/tasks/llava_interleave_bench/out_of_domain.yaml index 62601c85..47c3a951 100644 --- a/lmms_eval/tasks/llava_interleave_bench/out_of_domain.yaml +++ b/lmms_eval/tasks/llava_interleave_bench/out_of_domain.yaml @@ -10,11 +10,8 @@ doc_to_text: !function utils.doc_to_text process_results: !function utils.interleave_process_results metric_list: - - metric: mcq_acc - aggregation: !function utils.mcq_acc - higher_is_better: true - - metric: oe_rogue - aggregation: !function utils.oe_rogue + - metric: overall_score + aggregation: !function utils.overall_score higher_is_better: true generation_kwargs: @@ -26,4 +23,4 @@ generation_kwargs: model_specific_prompt_kwargs: default: oe_post_prompt: "" - mcq_post_prompt: "Answer with the option's letter from the given choices directly." \ No newline at end of file + mcq_post_prompt: "" diff --git a/lmms_eval/tasks/llava_interleave_bench/utils.py b/lmms_eval/tasks/llava_interleave_bench/utils.py index 1b95dc5f..77175600 100644 --- a/lmms_eval/tasks/llava_interleave_bench/utils.py +++ b/lmms_eval/tasks/llava_interleave_bench/utils.py @@ -1,18 +1,27 @@ import os import re -import sys -import datetime -import json import requests import time +import json -from lmms_eval.filters.extraction import ExtendedRegexFilter - +from collections import defaultdict +from rouge import Rouge import yaml from pathlib import Path from loguru import logger as eval_logger from PIL import Image +spot_the_diff = ["Spot-the-Diff", "Birds-to-Words", "CLEVR-Change"] +image_edit_instruct = ["IEdit", "HQ-Edit", "MagicBrush"] +visual_story_telling = ["AESOP", "FlintstonesSV", "PororoSV", "VIST"] +visual_cloze = ["COMICS_Dialogue", "RecipeQA_VisualCloze"] +text_rich_vqa = ["WebQA", "TQA", "OCR-VQA", "DocVQA"] +multi_image_vqa = ["MIT-States_StateCoherence", "MIT-States_PropertyCoherence", "VISION", "RecipeQA_ImageCoherence"] + +puzzle = ["RAVEN"] +nlrv2 = ["NLVR2_Mantis"] +qbench = ["QBench"] + def doc_to_visual(doc): max_visual_count = 16 @@ -23,11 +32,11 @@ def doc_to_visual(doc): if image is None: continue # Skip this image if it's None if isinstance(image, Image.Image): - visuals.append(image.copy()) + visuals.append(image.copy().convert("RGB")) else: try: # If the image is not already a PIL Image, try to open it - visuals.append(Image.open(image)) + visuals.append(Image.open(image).convert("RGB")) except Exception as e: print(f"Error opening image_{i}: {e}") # Optionally, you can add a placeholder image or just continue @@ -61,6 +70,20 @@ def doc_to_text(doc, model_specific_prompt_kwargs=None): return user_prompt +def doc_to_text_conversation(doc, model_specific_prompt_kwargs=None): + if model_specific_prompt_kwargs is None: + model_specific_prompt_kwargs = {} + + conversations = doc["conversations"] + + if isinstance(conversations, list): + user_prompt = json.dumps(conversations) + else: + user_prompt = conversations + + return user_prompt + + def doc_to_text_multi_turn(doc, model_specific_prompt_kwargs=None): if model_specific_prompt_kwargs is None: model_specific_prompt_kwargs = {} @@ -71,18 +94,22 @@ def doc_to_text_multi_turn(doc, model_specific_prompt_kwargs=None): def interleave_process_results(doc, results): pred = results[0] sample_id = doc["sample_id"] - model_response = {"sample_id": sample_id, "subtask": doc["sample_id"], "question_type": doc["question_type"], "answer": doc["answer"], "parsed_pred": pred} + + if doc["question_type"] == "multi-choice": + score = mcq_acc(doc["answer"], pred) + model_response = {"sample_id": sample_id, "sub_task": doc["sub_task"], "question_type": doc["question_type"], "answer": doc["answer"], "parsed_pred": pred, "score": score} + elif doc["question_type"] == "open-ended": + score = oe_rogue(doc["answer"], pred) + model_response = {"sample_id": sample_id, "sub_task": doc["sub_task"], "question_type": doc["question_type"], "answer": doc["answer"], "parsed_pred": pred, "score": score} + else: + raise ValueError(f"Unknown question type: {doc['question_type']}") + return { - "mcq_acc": model_response, - "oe_rogue": model_response, - # "in_domain_oe_gpt_eval": in_domain_acc, + "overall_score": model_response, } -def mcq_acc(results, args): - correct_count = 0 - total_count = len(results) - +def mcq_acc(answer, pred): periodStrip = re.compile("(?!<=\d)(\.)(?!\d)") commaStrip = re.compile("(\d)(\,)(\d)") punct = [";", r"/", "[", "]", '"', "{", "}", "(", ")", "=", "+", "\\", "_", "-", ">", "<", "@", "`", ",", "?", "!"] @@ -123,209 +150,210 @@ def process(answer): return answer - # image_choice_dataset_list = ["recipeqa-RecipeQA_VisualCloze", "RecipeQA_ImageCoherence", "COMICS_Panel"] - mcq_eval_result_list = [] - mcq_eval_result_list_detail = defaultdict(list) + pred = process(pred) + answer = process(answer) - for result in results: - if result["question_type"] == "multi-choice": - pred = process(result["parsed_pred"]) - answer = process(result["answer"]) - - if pred == answer: - score = 1 - else: - score = 0 - - mcq_eval_result_list_detail[result["sub_task"]].append(score) - mcq_eval_result_list[result["sub_task"]] = mcq_eval_result_list_detail[result["sub_task"]] - - overall_accuracy = sum(mcq_eval_result_list) / len(mcq_eval_result_list) - for sub_task in mcq_eval_result_list: - sub_task_accuracy = sum(mcq_eval_result_list[sub_task]) / len(mcq_eval_result_list[sub_task]) * 100.0 - eval_logger.info(f"Multi-Choice Sub-Task {sub_task} - accuracy: {sub_task_accuracy}") - return overall_accuracy + if pred == answer: + score = 1 + else: + score = 0 - -from rouge import Rouge -import numpy as np + return score -def oe_rogue(results, args): +def oe_rogue(answer, pred): rouge = Rouge() - oe_eval_result_list = [] - oe_eval_result_list_detail = defaultdict(list) - - for result in results: - if result["question_type"] == "open-ended": - pred = result["parsed_pred"] - answer = result["answer"] - - if answer == "": - continue - - if pred == "": - score = 0 - else: - if len(pred) > 512: - pred = pred[:512] - score = rouge.get_scores(pred, answer)[0]["rouge-l"]["f"] - - oe_eval_result_list.append(score) - oe_eval_result_list_detail[result["sub_task"]].append(score) - - average_rouge_score = np.mean(oe_eval_result_list) if oe_eval_result_list else 0 - for sub_task in oe_eval_result_list_detail: - sub_task_rouge_score = np.mean(oe_eval_result_list_detail[sub_task]) if oe_eval_result_list_detail[sub_task] else 0 - eval_logger.info(f"Open-Ended Sub-Task {sub_task} - ROUGE-L: {sub_task_rouge_score}") - return average_rouge_score * 100.0 - - -EVAL_PROMPT = """ -[Question] -{question} - -[Assistant Response] -{model_response} - -[Ground Truth Response] -{ground_truth} - -[System] -Rate whether the assistant response correctly matches the ground truth, it's about a question towards a sequence of images shared by the user. -The rating should be 1-5, where 1 is incorrect and 5 is correct. -Your response should be in the format: -Explanation: (your explanation) -Rating: (int) -""" - -NUM_SECONDS_TO_SLEEP = 5 -dir_path = os.path.dirname(os.path.realpath(__file__)) -with open(Path(__file__).parent / "_default_template_interleave_yaml", "r") as f: - raw_data = f.readlines() - safe_data = [] - for i, line in enumerate(raw_data): - # remove function definition since yaml load cannot handle it - if "!function" not in line: - safe_data.append(line) - - config = yaml.safe_load("".join(safe_data)) - -GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] -API_TYPE = config["metadata"]["api_type"] - -if API_TYPE == "openai": - API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") - API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") - headers = { - "Authorization": f"Bearer {API_KEY}", - "Content-Type": "application/json", - } -elif API_TYPE == "azure": - API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") - API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") - headers = { - "api-key": API_KEY, - "Content-Type": "application/json", - } -else: - API_URL = "" - API_KEY = "" - - -def get_chat_response(prompt, max_retries=5, wait_time=10): - headers = { - "Authorization": f"Bearer {API_KEY}", - "Content-Type": "application/json", - } - - payload = { - "model": GPT_EVAL_MODEL_NAME, - "messages": [ - { - "role": "user", - "content": [ - {"type": "text", "text": prompt}, - ], - } - ], - "max_tokens": 1024, - "temperature": 0.0, + if pred == "": + score = 0 + else: + if len(pred) > 512: + pred = pred[:512] + score = rouge.get_scores(pred, answer)[0]["rouge-l"]["f"] + + return score + + +def overall_score(results): + categories = { + "Spot-the-Diff": spot_the_diff, + "Image-Edit": image_edit_instruct, + "Visual-Story-Telling": visual_story_telling, + "Visual-Cloze": visual_cloze, + "Text-Rich-VQA": text_rich_vqa, + "Multi-Image-VQA": multi_image_vqa, + "Puzzle": puzzle, + "NLVR2": nlrv2, + "QBench": qbench, } - for attempt in range(max_retries): - try: - response = requests.post(API_URL, headers=headers, json=payload, timeout=60) - response.raise_for_status() - response_data = response.json() - return response_data["choices"][0]["message"]["content"], GPT_EVAL_MODEL_NAME - except requests.exceptions.RequestException as e: - eval_logger.warning(f"Request failed on attempt {attempt+1}: {e}") - time.sleep(wait_time) - if attempt == max_retries - 1: - eval_logger.error(f"Failed to get response after {max_retries} attempts") - return "", GPT_EVAL_MODEL_NAME - except Exception as e: - eval_logger.error(f"Error on attempt {attempt+1}: {e}") - return "", GPT_EVAL_MODEL_NAME - - -def in_domain_oe_gpt_eval(results, args): - total_score = 0 - available_count = 0 - for result in results: - if result["question_type"] == "open-ended": - question = result["question"] - model_response = result["parsed_pred"] - ground_truth = result["answer"] - content = EVAL_PROMPT.format(question=question, model_response=model_response, ground_truth=ground_truth) - result["gpt_eval_input"] = content - model_output, model_name = get_chat_response(content) - try: - explanation = re.search(r"Explanation: (.*)\n", model_output).group(1) - rating = re.search(r"Rating: (\d+)\n", model_output).group(1) - result["gpt_eval_explanation"] = explanation - result["gpt_eval_rating"] = rating - result["gpt_eval_model_name"] = model_name - except: - eval_logger.error(f"Error on evaluating {result['sample_id']}. Results: {results}") - result["gpt_eval_explanation"] = "" - result["gpt_eval_rating"] = 0 - result["gpt_eval_model_name"] = model_name - - total_score += result["gpt_eval_rating"] - available_count += 1 - - elif result["question_type"] == "multi-choice": - pass - - return (total_score / available_count) * 20.0 if available_count > 0 else 0 - - -# class MultiChoiceRegexFilter(ExtendedRegexFilter): -# def __init__(self, *args, **kwargs): -# super().__init__(*args, **kwargs) - -# def apply(self, resps, docs): -# filtered_resps = [] - -# for r, doc in zip(resps, docs): -# # Regex to directly extract the option letter from the model response -# option_letter_regex = re.compile(r"\b([A-Z])\.\s+([^\n]*)") - -# # Process each response -# filtered = [] -# for resp in r: -# # Try to match the option letter at the start of the response -# match = option_letter_regex.match(resp) -# if match: -# # If a match is found, append the matched letter -# filtered.append(match.group(1)) -# else: -# # If no match, return the original response -# filtered.append(resp) - -# # Assuming we need the first response that matches or the original response -# filtered_resps.append(filtered[0]) - -# return filtered_resps + category_scores = {} + + eval_logger.info(f"Evaluation Sub-Task Results:") + for category, subtasks in categories.items(): + score = 0 + count = 0 + for result in results: + if result["sub_task"] in subtasks: + count += 1 + score += result["score"] + if count > 0: + avg_score = score / count + category_scores[category] = avg_score + eval_logger.info(f"{category}: {avg_score:.3f}") + + # Calculate overall score + total_score = sum(category_scores.values()) + num_categories = len(category_scores) + overall_score = total_score / num_categories if num_categories > 0 else 0 + + return overall_score + + +# EVAL_PROMPT = """ +# [Question] +# {question} + +# [Assistant Response] +# {model_response} + +# [Ground Truth Response] +# {ground_truth} + +# [System] +# Rate whether the assistant response correctly matches the ground truth, it's about a question towards a sequence of images shared by the user. +# The rating should be 1-5, where 1 is incorrect and 5 is correct. +# Your response should be in the format: +# Explanation: (your explanation) +# Rating: (int) +# """ + +# NUM_SECONDS_TO_SLEEP = 5 +# dir_path = os.path.dirname(os.path.realpath(__file__)) +# with open(Path(__file__).parent / "_default_template_interleave_yaml", "r") as f: +# raw_data = f.readlines() +# safe_data = [] +# for i, line in enumerate(raw_data): +# # remove function definition since yaml load cannot handle it +# if "!function" not in line: +# safe_data.append(line) + +# config = yaml.safe_load("".join(safe_data)) + +# GPT_EVAL_MODEL_NAME = config["metadata"]["gpt_eval_model_name"] +# API_TYPE = config["metadata"]["api_type"] + +# if API_TYPE == "openai": +# API_URL = os.getenv("OPENAI_API_URL", "https://api.openai.com/v1/chat/completions") +# API_KEY = os.getenv("OPENAI_API_KEY", "YOUR_API_KEY") +# headers = { +# "Authorization": f"Bearer {API_KEY}", +# "Content-Type": "application/json", +# } +# elif API_TYPE == "azure": +# API_URL = os.getenv("AZURE_ENDPOINT", "https://api.cognitive.microsoft.com/sts/v1.0/issueToken") +# API_KEY = os.getenv("AZURE_API_KEY", "YOUR_API_KEY") +# headers = { +# "api-key": API_KEY, +# "Content-Type": "application/json", +# } +# else: +# API_URL = "" +# API_KEY = "" + + +# def get_chat_response(prompt, max_retries=5, wait_time=10): +# headers = { +# "Authorization": f"Bearer {API_KEY}", +# "Content-Type": "application/json", +# } + +# payload = { +# "model": GPT_EVAL_MODEL_NAME, +# "messages": [ +# { +# "role": "user", +# "content": [ +# {"type": "text", "text": prompt}, +# ], +# } +# ], +# "max_tokens": 1024, +# "temperature": 0.0, +# } + +# for attempt in range(max_retries): +# try: +# response = requests.post(API_URL, headers=headers, json=payload, timeout=60) +# response.raise_for_status() +# response_data = response.json() +# return response_data["choices"][0]["message"]["content"], GPT_EVAL_MODEL_NAME +# except requests.exceptions.RequestException as e: +# eval_logger.warning(f"Request failed on attempt {attempt+1}: {e}") +# time.sleep(wait_time) +# if attempt == max_retries - 1: +# eval_logger.error(f"Failed to get response after {max_retries} attempts") +# return "", GPT_EVAL_MODEL_NAME +# except Exception as e: +# eval_logger.error(f"Error on attempt {attempt+1}: {e}") +# return "", GPT_EVAL_MODEL_NAME + + +# def in_domain_oe_gpt_eval(results, args): +# total_score = 0 +# available_count = 0 +# for result in results: +# if result["question_type"] == "open-ended": +# question = result["question"] +# model_response = result["parsed_pred"] +# ground_truth = result["answer"] +# content = EVAL_PROMPT.format(question=question, model_response=model_response, ground_truth=ground_truth) +# result["gpt_eval_input"] = content +# model_output, model_name = get_chat_response(content) +# try: +# explanation = re.search(r"Explanation: (.*)\n", model_output).group(1) +# rating = re.search(r"Rating: (\d+)\n", model_output).group(1) +# result["gpt_eval_explanation"] = explanation +# result["gpt_eval_rating"] = rating +# result["gpt_eval_model_name"] = model_name +# except: +# eval_logger.error(f"Error on evaluating {result['sample_id']}. Results: {results}") +# result["gpt_eval_explanation"] = "" +# result["gpt_eval_rating"] = 0 +# result["gpt_eval_model_name"] = model_name + +# total_score += result["gpt_eval_rating"] +# available_count += 1 + +# elif result["question_type"] == "multi-choice": +# pass + +# return (total_score / available_count) * 20.0 if available_count > 0 else 0 + + +# # class MultiChoiceRegexFilter(ExtendedRegexFilter): +# # def __init__(self, *args, **kwargs): +# # super().__init__(*args, **kwargs) + +# # def apply(self, resps, docs): +# # filtered_resps = [] + +# # for r, doc in zip(resps, docs): +# # # Regex to directly extract the option letter from the model response +# # option_letter_regex = re.compile(r"\b([A-Z])\.\s+([^\n]*)") + +# # # Process each response +# # filtered = [] +# # for resp in r: +# # # Try to match the option letter at the start of the response +# # match = option_letter_regex.match(resp) +# # if match: +# # # If a match is found, append the matched letter +# # filtered.append(match.group(1)) +# # else: +# # # If no match, return the original response +# # filtered.append(resp) + +# # # Assuming we need the first response that matches or the original response +# # filtered_resps.append(filtered[0]) + +# # return filtered_resps diff --git a/lmms_eval/utils.py b/lmms_eval/utils.py index 80231c9c..40e71b22 100755 --- a/lmms_eval/utils.py +++ b/lmms_eval/utils.py @@ -2,6 +2,7 @@ import re import sys import yaml +import json import inspect import pathlib import functools @@ -41,6 +42,14 @@ SPACING = " " * 47 +def is_json(string): + try: + json.loads(string) + return True + except json.JSONDecodeError: + return False + + def escaped_split(text, sep_char, maxsplit=-1): """Split text into a list on occurrences of the given separation character `sep_char`. The separation character may be escaped by a From 252f72fe757ed1bb828e5d0de8301f1790ddd468 Mon Sep 17 00:00:00 2001 From: Yan Shu <570533048@qq.com> Date: Mon, 8 Jul 2024 17:06:13 +0800 Subject: [PATCH 21/32] Add files via upload --- .../mlvu/__pycache__/utils.cpython-310.pyc | Bin 0 -> 3207 bytes lmms_eval/tasks/mlvu/mlvu.yaml | 21 +++ lmms_eval/tasks/mlvu/utils.py | 124 ++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 lmms_eval/tasks/mlvu/__pycache__/utils.cpython-310.pyc create mode 100644 lmms_eval/tasks/mlvu/mlvu.yaml create mode 100644 lmms_eval/tasks/mlvu/utils.py diff --git a/lmms_eval/tasks/mlvu/__pycache__/utils.cpython-310.pyc b/lmms_eval/tasks/mlvu/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a9fda0f2b70ce7af4bbcc1868a64d7c8e67571d GIT binary patch literal 3207 zcmZ`*-E$ka5eIO`*_PaPf+llwI)Kzk z_d(;1w8c4g+Hv~ShxR=mL-noyME?-H=E?tpXENz7j*{&pJ@NqT-eLjl{&pAH>}-?3 z6MyrM?k8x_Dx5T_S^9AMC#DX{roaw@i&&bb$8?GDv5LUw~eT!<(vwt!yl$yBPKkbXYcO`<%HvefTJv4n5-!=Tvf*xLSm zlo#6m2&QQFLB9ZzAl9`%q%Z(6C(e33sX7hL9&c;5xy{)hceu6nXj8L$+uVBiXp>tz zJ9jzTd;srVUBCaafB(TJ_eP6r>wj5a3xjY^uI~+cy(sNnpc!Fw0pd>fjA?9&M=tinEGV_E{j zR>+uD+>(|IxD{1{F;y2zpi9=HJEU+Xbphiq0dZej=(CF7vA1}07zvsAX^_a#j2U}< zu-V4wf+sSWdudj9@)=m~n%9pd?AwE*h6f#2vn?Kmd7<*9zo?Y4iQfEs+ZXnuyGLSj?dvw0} zAdL^bUNn?mu_wJ<;Cq=t;967D=BWMKSDX!R)ttUlQ!A+Ee3A(n`*~l6Q8xv^7rDn=iZ^H~e(;dX|F$WE4^r`cxZSHlW6!KYd8@M^8)9kOrezTQ6zn1!B9ybS*Db)Yr8r z74jK?fadB7d;ugWDXPtyZJQl0!zNV_7Jdj=fL^NHSF$Ic{Tim^EofZo(k7jQz1vKo ztKM*=1B{ax`Tz*n;WTPW_MCzvjZ?vS;Mf&X+9h&qaC7Y|dt4JvS&JZkI`z?in;txy z5U(3%gcQJQ!wbA9&5IxnrI&S$hY^(CG{#S4mCPY!`HL0Q`IU9WsV*;wz>~0a;&+o>oS)uQkSW9Am6}e1HZ#- z@cA*EG9qJI5U5v;F%#fz!M?~5mUw?}b1~+grQYeMzs3&OR8zWg(8ehf;Mjm0;vxWFYo@fW`6g{t zwH5DGz8NYDC)crN$I-5`k+Si^qn2>!K$?NekiztoT8fL55Q)h|%g>B&N-LtWqN`g>U-)jV>W@>xGf#UPhTEg-|r`ZCq7Z|;4* zubn>J9nwP6u5Kt9h&W1Ru3Z&8^)U(YMjmvf8R~|FO_=+mrjfQ$5)xw{^a)*w#aSTK z8QjuYZ1B2Z3Z=<>CM6jozvjnR70kT@C43Oe4>1AfA41bIHLG$LR 0 else 0 : .1f}%") + + total_correct = 0 + total_answered = 0 + for k, v in category2score.items(): + total_correct += v["correct"] + total_answered += v["answered"] + eval_logger.info(f"Overall Performance: {100 * total_correct / total_answered if total_answered > 0 else 0 : .1f}%") + + return 100 * total_correct / total_answered if total_answered > 0 else 0 From 3018af5ea5569960e05ef1f4897edb3d87679004 Mon Sep 17 00:00:00 2001 From: Yan Shu <570533048@qq.com> Date: Mon, 8 Jul 2024 17:17:20 +0800 Subject: [PATCH 22/32] Delete lmms_eval/tasks/mlvu directory --- .../mlvu/__pycache__/utils.cpython-310.pyc | Bin 3207 -> 0 bytes lmms_eval/tasks/mlvu/mlvu.yaml | 21 --- lmms_eval/tasks/mlvu/utils.py | 124 ------------------ 3 files changed, 145 deletions(-) delete mode 100644 lmms_eval/tasks/mlvu/__pycache__/utils.cpython-310.pyc delete mode 100644 lmms_eval/tasks/mlvu/mlvu.yaml delete mode 100644 lmms_eval/tasks/mlvu/utils.py diff --git a/lmms_eval/tasks/mlvu/__pycache__/utils.cpython-310.pyc b/lmms_eval/tasks/mlvu/__pycache__/utils.cpython-310.pyc deleted file mode 100644 index 1a9fda0f2b70ce7af4bbcc1868a64d7c8e67571d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3207 zcmZ`*-E$ka5eIO`*_PaPf+llwI)Kzk z_d(;1w8c4g+Hv~ShxR=mL-noyME?-H=E?tpXENz7j*{&pJ@NqT-eLjl{&pAH>}-?3 z6MyrM?k8x_Dx5T_S^9AMC#DX{roaw@i&&bb$8?GDv5LUw~eT!<(vwt!yl$yBPKkbXYcO`<%HvefTJv4n5-!=Tvf*xLSm zlo#6m2&QQFLB9ZzAl9`%q%Z(6C(e33sX7hL9&c;5xy{)hceu6nXj8L$+uVBiXp>tz zJ9jzTd;srVUBCaafB(TJ_eP6r>wj5a3xjY^uI~+cy(sNnpc!Fw0pd>fjA?9&M=tinEGV_E{j zR>+uD+>(|IxD{1{F;y2zpi9=HJEU+Xbphiq0dZej=(CF7vA1}07zvsAX^_a#j2U}< zu-V4wf+sSWdudj9@)=m~n%9pd?AwE*h6f#2vn?Kmd7<*9zo?Y4iQfEs+ZXnuyGLSj?dvw0} zAdL^bUNn?mu_wJ<;Cq=t;967D=BWMKSDX!R)ttUlQ!A+Ee3A(n`*~l6Q8xv^7rDn=iZ^H~e(;dX|F$WE4^r`cxZSHlW6!KYd8@M^8)9kOrezTQ6zn1!B9ybS*Db)Yr8r z74jK?fadB7d;ugWDXPtyZJQl0!zNV_7Jdj=fL^NHSF$Ic{Tim^EofZo(k7jQz1vKo ztKM*=1B{ax`Tz*n;WTPW_MCzvjZ?vS;Mf&X+9h&qaC7Y|dt4JvS&JZkI`z?in;txy z5U(3%gcQJQ!wbA9&5IxnrI&S$hY^(CG{#S4mCPY!`HL0Q`IU9WsV*;wz>~0a;&+o>oS)uQkSW9Am6}e1HZ#- z@cA*EG9qJI5U5v;F%#fz!M?~5mUw?}b1~+grQYeMzs3&OR8zWg(8ehf;Mjm0;vxWFYo@fW`6g{t zwH5DGz8NYDC)crN$I-5`k+Si^qn2>!K$?NekiztoT8fL55Q)h|%g>B&N-LtWqN`g>U-)jV>W@>xGf#UPhTEg-|r`ZCq7Z|;4* zubn>J9nwP6u5Kt9h&W1Ru3Z&8^)U(YMjmvf8R~|FO_=+mrjfQ$5)xw{^a)*w#aSTK z8QjuYZ1B2Z3Z=<>CM6jozvjnR70kT@C43Oe4>1AfA41bIHLG$LR 0 else 0 : .1f}%") - - total_correct = 0 - total_answered = 0 - for k, v in category2score.items(): - total_correct += v["correct"] - total_answered += v["answered"] - eval_logger.info(f"Overall Performance: {100 * total_correct / total_answered if total_answered > 0 else 0 : .1f}%") - - return 100 * total_correct / total_answered if total_answered > 0 else 0 From b9c391adcc263d8201ef12e7dfc407305e069205 Mon Sep 17 00:00:00 2001 From: kcz358 Date: Mon, 8 Jul 2024 10:03:01 +0000 Subject: [PATCH 23/32] Restrick max tokens to 4096 for gpt4v and claude --- lmms_eval/models/claude.py | 2 ++ lmms_eval/models/gpt4v.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/lmms_eval/models/claude.py b/lmms_eval/models/claude.py index e843871c..5829fbed 100644 --- a/lmms_eval/models/claude.py +++ b/lmms_eval/models/claude.py @@ -223,6 +223,8 @@ def generate_until(self, requests) -> List[str]: if "max_new_tokens" not in gen_kwargs: gen_kwargs["max_new_tokens"] = 1024 + if gen_kwargs["max_new_tokens"] > 4096: + gen_kwargs["max_new_tokens"] = 4096 if "temperature" not in gen_kwargs: gen_kwargs["temperature"] = 0 if "top_p" not in gen_kwargs or gen_kwargs["top_p"] is None: diff --git a/lmms_eval/models/gpt4v.py b/lmms_eval/models/gpt4v.py index 5f89cc5d..7d9c5850 100755 --- a/lmms_eval/models/gpt4v.py +++ b/lmms_eval/models/gpt4v.py @@ -181,6 +181,8 @@ def generate_until(self, requests) -> List[str]: if "max_new_tokens" not in gen_kwargs: gen_kwargs["max_new_tokens"] = 1024 + if gen_kwargs["max_new_tokens"] > 4096: + gen_kwargs["max_new_tokens"] = 4096 if "temperature" not in gen_kwargs: gen_kwargs["temperature"] = 0 if "top_p" not in gen_kwargs: From 843d27330c1a150903a24d6384d116e6c643d9e3 Mon Sep 17 00:00:00 2001 From: kcz358 Date: Mon, 8 Jul 2024 10:03:35 +0000 Subject: [PATCH 24/32] Bring back xcomposer 4kHD --- lmms_eval/models/xcomposer2_4KHD.py | 294 ++++++++++++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 lmms_eval/models/xcomposer2_4KHD.py diff --git a/lmms_eval/models/xcomposer2_4KHD.py b/lmms_eval/models/xcomposer2_4KHD.py new file mode 100644 index 00000000..e741f637 --- /dev/null +++ b/lmms_eval/models/xcomposer2_4KHD.py @@ -0,0 +1,294 @@ +from multiprocessing import context +import torch +from transformers import AutoModel, AutoTokenizer +from PIL import Image +import numpy as np +import torchvision.transforms as transforms +from datetime import timedelta + +from lmms_eval import utils +from lmms_eval.api.instance import Instance +from lmms_eval.api.model import lmms +from lmms_eval.api.registry import register_model +from lmms_eval.utils import stop_sequences_criteria + +from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs +from accelerate.state import AcceleratorState + +from typing import Optional, Sequence, List, Tuple, Union +import re +from tqdm import tqdm + +pattern = re.compile(r"[A-Z]") + +from loguru import logger as eval_logger + +meta_instruction = """You are an AI assistant whose name is InternLM-XComposer (浦语·灵笔). +- InternLM-XComposer (浦语·灵笔) is a multi-modality conversational language model that is developed\ + by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless. +- InternLM-XComposer (浦语·灵笔) can understand and communicate fluently in the language chosen by\ + the user such as English and 中文. +- InternLM-XComposer (浦语·灵笔) is capable of comprehending and articulating responses\ + effectively based on the provided image.""" + + +@register_model("xcomposer2_4khd") +class XComposer2_4KHD(lmms): + def __init__( + self, + pretrained: str = "internlm/internlm-xcomposer2-4khd-7b", + device: Optional[str] = "cuda:0", + batch_size: Optional[Union[int, str]] = 1, + device_map="cuda:0", + need_bos: bool = True, + padding: bool = False, + half: bool = False, + **kwargs, + ) -> None: + super().__init__() + + accelerator_kwargs = InitProcessGroupKwargs(timeout=timedelta(weeks=52)) + accelerator = Accelerator(kwargs_handlers=[accelerator_kwargs]) + if accelerator.num_processes > 1: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + elif accelerator.num_processes == 1 and device_map == "auto": + self._device = torch.device(device) + self.device_map = device_map + else: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + + self.pretrained = pretrained + self.need_bos = need_bos + self.padding = padding + self._model = AutoModel.from_pretrained(self.pretrained, device_map=self.device_map, trust_remote_code=True) + self._tokenizer = AutoTokenizer.from_pretrained(self.pretrained, trust_remote_code=True) + self.model.tokenizer = self.tokenizer + self.batch_size_per_gpu = batch_size + + if accelerator.num_processes > 1: + assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." + # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model + # Also, you have to select zero stage 0 (equivalent to DDP) in order to make the prepare model works + # I tried to set different parameters in the kwargs to let default zero 2 stage works, but it didn't work. + if accelerator.distributed_type == DistributedType.DEEPSPEED: + kwargs = { + "train_micro_batch_size_per_gpu": self.batch_size_per_gpu, + "train_batch_size": self.batch_size_per_gpu * accelerator.num_processes, + } + AcceleratorState().deepspeed_plugin.deepspeed_config_process(must_match=True, **kwargs) + eval_logger.info("Detected that you are using DistributedType.DEEPSPEED. Make sure you run `accelerate config` and set zero stage to 0") + if accelerator.distributed_type == DistributedType.FSDP or accelerator.distributed_type == DistributedType.DEEPSPEED: + self._model = accelerator.prepare(self.model) + else: + self._model = accelerator.prepare_model(self.model, evaluation_mode=True) + self.accelerator = accelerator + if self.accelerator.is_local_main_process: + eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") + self._rank = self.accelerator.local_process_index + self._world_size = self.accelerator.num_processes + elif accelerator.num_processes == 1 and device_map == "auto": + eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") + self._rank = 0 + self._word_size = 1 + else: + eval_logger.info(f"Using single device: {self._device}") + self.model.to(self._device) + self._rank = 0 + self._world_size = 1 + + @property + def config(self): + # return the associated transformers.AutoConfig for the given pretrained model. + return self._config + + @property + def tokenizer(self): + return self._tokenizer + + @property + def model(self): + # returns the model, unwrapping it if using Accelerate + if hasattr(self, "accelerator"): + return self.accelerator.unwrap_model(self._model) + else: + return self._model + + @property + def batch_size(self): + return self.batch_size_per_gpu + + @property + def device(self): + return self._device + + @property + def rank(self): + return self._rank + + @property + def world_size(self): + return self._world_size + + def flatten(self, input): + new_list = [] + for i in input: + for j in i: + new_list.append(j) + return new_list + + def generate_until(self, requests) -> List[str]: + res = [] + pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") + + for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: + # encode, pad, and truncate contexts for this batch + if "[UNUSED_TOKEN_146]" not in contexts: + contexts = f"[UNUSED_TOKEN_146]user\n{contexts}[UNUSED_TOKEN_145]\n[UNUSED_TOKEN_146]assistant\n" + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] + visuals = self.flatten(visuals) + + if "hd_num" not in gen_kwargs: + if listinstr(["docvqa_test", "infovqa_test"], task.lower()): + self.model.hd_num = 65 + elif listinstr(["docvqa_val", "infovqa_val", "OCRBench"], task.lower()): + self.model.hd_num = 55 + elif listinstr(["mmmu", "mmbench", "mmvet"], task.lower()): + self.model.hd_num = 16 + else: + self.model.hd_num = 25 + else: + self.model.hd_num = gen_kwargs.pop("hd_num") + + pt1 = 0 + embeds = [] + im_mask = [] + images_loc = [0] + need_bos = self.need_bos + padding = self.padding + for i, pts in enumerate(images_loc + [len(contexts)]): + subtext = contexts[pt1:pts] + if need_bos or len(subtext) > 0: + text_embeds = self.model.encode_text(subtext, add_special_tokens=need_bos).to(self.device) + embeds.append(text_embeds) + im_mask.append(torch.zeros(text_embeds.shape[:2]).to(self.device)) + need_bos = False + if i < len(visuals): + image = visuals[i] + + image = HD_transform(image, im_num=self.model.hd_num) + image = self.model.vis_processor(image).unsqueeze(0).to(self.device) + image_embeds = self.model.encode_img(image) + embeds.append(image_embeds) + im_mask.append(torch.ones(image_embeds.shape[:2]).to(self.device)) + pt1 = pts + embeds = torch.cat(embeds, dim=1) + im_mask = torch.cat(im_mask, dim=1) + im_mask = im_mask.bool() + + if "max_new_tokens" not in gen_kwargs: + gen_kwargs["max_new_tokens"] = 1024 + if "temperature" not in gen_kwargs: + gen_kwargs["temperature"] = 0 + if "top_p" not in gen_kwargs: + gen_kwargs["top_p"] = None + if "num_beams" not in gen_kwargs: + gen_kwargs["num_beams"] = 1 + if "do_sample" not in gen_kwargs: + gen_kwargs["do_sample"] = False + if "repetition_penalty" not in gen_kwargs: + gen_kwargs["repetition_penalty"] = 1.0 + + outputs = self.model.generate( + inputs_embeds=embeds, + im_mask=im_mask, + temperature=gen_kwargs["temperature"], + max_new_tokens=gen_kwargs["max_new_tokens"], + num_beams=gen_kwargs["num_beams"], + do_sample=gen_kwargs["do_sample"], + repetition_penalty=gen_kwargs["repetition_penalty"], + ) + output_token = outputs[0] + if output_token[0] == 0 or output_token[0] == 1: + output_token = output_token[1:] + output_text = self.model.tokenizer.decode(output_token, add_special_tokens=False) + output_text = output_text.split("[UNUSED_TOKEN_145]")[0].strip() + output_text = output_text.split("<|im_end|>")[0].strip() + # if DATASET_TYPE(task) == "multi-choice": + # output_text = pattern.findall(output_text) + # if len(output_text) == 0: + # print("Error:", output_text) + # output_text = "Z" + # if type(output_text) == list: + # output_text = output_text[0] + res.append(output_text) + pbar.update(1) + pbar.close() + return res + + def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: + return super().loglikelihood(requests) + + +def padding_336(b): + width, height = b.size + tar = int(np.ceil(height / 336) * 336) + top_padding = int((tar - height) / 2) + bottom_padding = tar - height - top_padding + left_padding = 0 + right_padding = 0 + b = transforms.functional.pad(b, [left_padding, top_padding, right_padding, bottom_padding], fill=[255, 255, 255]) + + return b + + +def HD_transform(img, im_num=16): + width, height = img.size + trans = False + if width < height: + img = img.transpose(Image.TRANSPOSE) + trans = True + width, height = img.size + ratio = width / height + scale = 1 + while scale * np.ceil(scale / ratio) <= im_num: + scale += 1 + scale -= 1 + new_w = int(scale * 336) + new_h = int(new_w / ratio) + + img = transforms.functional.resize( + img, + [new_h, new_w], + ) + img = padding_336(img) + width, height = img.size + assert width * height <= im_num * 336 * 336 + if trans: + img = img.transpose(Image.TRANSPOSE) + + return img + + +def listinstr(lst, s): + assert isinstance(lst, list) + for item in lst: + if item in s: + return True + return False + + +def DATASET_TYPE(dataset): + # Dealing with Custom Dataset + dataset = dataset.lower() + if listinstr(["mmbench", "seedbench", "ccbench", "mmmu", "scienceqa", "ai2d", "mmstar"], dataset): + return "multi-choice" + elif listinstr(["mme", "hallusion"], dataset): + return "Y/N" + elif "coco" in dataset: + return "Caption" + elif listinstr(["ocrvqa", "textvqa", "chartqa", "mathvista", "docvqa", "infovqa", "llavabench", "mmvet", "ocrbench"], dataset): + return "VQA" + else: + return "QA" From 4ec1c585c0df534d8180fa902a47885b882b61de Mon Sep 17 00:00:00 2001 From: Yan Shu <570533048@qq.com> Date: Mon, 8 Jul 2024 20:14:00 +0800 Subject: [PATCH 25/32] Add files via upload (#137) From 77992c31929caaea9fbb3382becf905f8de3121d Mon Sep 17 00:00:00 2001 From: Bo Li Date: Mon, 8 Jul 2024 15:41:06 +0000 Subject: [PATCH 26/32] Fix gen kwargs image aspect ratio in internvl2 --- lmms_eval/models/internvl2.py | 3 ++- lmms_eval/tasks/llava_wilder/_default_template_wilder_yaml | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lmms_eval/models/internvl2.py b/lmms_eval/models/internvl2.py index 1f5a0185..5f4365d0 100644 --- a/lmms_eval/models/internvl2.py +++ b/lmms_eval/models/internvl2.py @@ -204,7 +204,7 @@ def generate_until(self, requests) -> List[str]: for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: if "until" in gen_kwargs: gen_kwargs.pop("until") - image_aspect_ratio = gen_kwargs.pop("image_aspect_ratio", None) + for k, v in DEFAULT_GEN_KWARGS.items(): if k not in gen_kwargs: gen_kwargs[k] = v @@ -220,6 +220,7 @@ def generate_until(self, requests) -> List[str]: image_tokens = " ".join(image_tokens) contexts = image_tokens + "\n" + contexts response, history = self.model.chat(self.tokenizer, pixel_values, contexts, gen_kwargs, num_patches_list=num_patches_list, history=None, return_history=True) + elif self.modality == "video": assert len(visuals) == 1, f"Only one video is supported, but got {len(visuals)} videos." video_path = visuals[0] diff --git a/lmms_eval/tasks/llava_wilder/_default_template_wilder_yaml b/lmms_eval/tasks/llava_wilder/_default_template_wilder_yaml index 37b744f5..356df525 100644 --- a/lmms_eval/tasks/llava_wilder/_default_template_wilder_yaml +++ b/lmms_eval/tasks/llava_wilder/_default_template_wilder_yaml @@ -3,11 +3,8 @@ doc_to_visual: !function utils.llava_doc_to_visual doc_to_text: !function utils.llava_doc_to_text doc_to_target: "gpt4v_answer" generation_kwargs: - until: - - "ASSISTANT:" - image_aspect_ratio: original max_new_tokens: 4096 - temperature: 0 + temperature: 0.7 top_p: 1.0 num_beams: 1 do_sample: false From e6844db1605cf093c6d7424723d37be6bbbb770b Mon Sep 17 00:00:00 2001 From: ZhangYuanhan-AI Date: Tue, 9 Jul 2024 00:13:32 +0000 Subject: [PATCH 27/32] add vila (cherry picked from commit 701d12e570c08f45a91b2700fd10dd349b5f683a) --- lmms_eval/models/__init__.py | 1 + lmms_eval/models/llava_vid.py | 16 +- lmms_eval/models/vila.py | 376 ++++++++++++++++++++++++++++++ lmms_eval/tasks/videomme/utils.py | 1 + pyproject.toml | 34 ++- 5 files changed, 417 insertions(+), 11 deletions(-) create mode 100755 lmms_eval/models/vila.py diff --git a/lmms_eval/models/__init__.py b/lmms_eval/models/__init__.py index 46fd92e8..b77adb48 100755 --- a/lmms_eval/models/__init__.py +++ b/lmms_eval/models/__init__.py @@ -37,6 +37,7 @@ "llava_onevision": "Llava_OneVision", "llava_hf": "LlavaHf", "longva": "LongVA", + "vila": "VILA", } for model_name, model_class in AVAILABLE_MODELS.items(): diff --git a/lmms_eval/models/llava_vid.py b/lmms_eval/models/llava_vid.py index 675c396e..14cd7e61 100755 --- a/lmms_eval/models/llava_vid.py +++ b/lmms_eval/models/llava_vid.py @@ -59,6 +59,8 @@ def __init__( mm_spatial_pool_mode: str = "average", overwrite: bool = True, video_decode_backend: str = "pyav", + delay_load: bool = False, + tie_weights: bool = True, **kwargs, ) -> None: super().__init__() @@ -86,16 +88,19 @@ def __init__( self.mm_spatial_pool_out_channels = int(mm_spatial_pool_out_channels) self.mm_spatial_pool_mode = mm_spatial_pool_mode self.max_frames_num = int(max_frames_num) - print(self.max_frames_num) + self.mm_resampler_location = mm_resampler_location + self.delay_load = delay_load if self.overwrite == True: overwrite_config = {} overwrite_config["mm_resampler_type"] = self.mm_resampler_type overwrite_config["mm_spatial_pool_stride"] = self.mm_spatial_pool_stride overwrite_config["mm_spatial_pool_out_channels"] = self.mm_spatial_pool_out_channels overwrite_config["mm_spatial_pool_mode"] = self.mm_spatial_pool_mode - overwrite_config["mm_resampler_location"] = "before" - overwrite_config["patchify_video_feature"] = False - overwrite_config["attn_implementation"] = attn_implementation + overwrite_config["mm_pooling_position"] = self.mm_resampler_location + overwrite_config["mm_newline_position"] = mm_newline_position + overwrite_config["add_faster_video"] = False + overwrite_config["delay_load"] = self.delay_load + # overwrite_config["attn_implementation"] = attn_implementation cfg_pretrained = AutoConfig.from_pretrained(self.pretrained) @@ -146,7 +151,8 @@ def __init__( self._config = self._model.config self.model.eval() - self.model.tie_weights() + if tie_weights: + self.model.tie_weights() self.truncation = truncation self.batch_size_per_gpu = int(batch_size) self.conv_template = conv_template diff --git a/lmms_eval/models/vila.py b/lmms_eval/models/vila.py new file mode 100755 index 00000000..295bf123 --- /dev/null +++ b/lmms_eval/models/vila.py @@ -0,0 +1,376 @@ +import argparse +import torch +import os +import json +from tqdm import tqdm +import logging +from typing import List, Optional, Union, Tuple +from PIL import Image +import math +import numpy as np +from accelerate import Accelerator, DistributedType, InitProcessGroupKwargs +from accelerate.state import AcceleratorState +from datetime import timedelta +from decord import VideoReader, cpu + + +from torchvision.transforms import Resize + +import signal + +from lmms_eval.api.instance import Instance +from lmms_eval.api.model import lmms +from lmms_eval.api.registry import register_model + +eval_logger = logging.getLogger("lmms-eval") +# import sys;sys.path.append("llava-video") +try: + from llava.constants import IMAGE_TOKEN_INDEX, DEFAULT_IMAGE_TOKEN, DEFAULT_IM_START_TOKEN, DEFAULT_IM_END_TOKEN + from llava.conversation import conv_templates, SeparatorStyle + from llava.model.builder import load_pretrained_model + from llava.data.dataset import LazySupervisedDataset + from llava.utils import disable_torch_init + from llava.mm_utils import tokenizer_image_token, get_model_name_from_path, KeywordsStoppingCriteria + from llava.mm_utils import process_images +except ImportError as e: + print(e) + # import pdb;pdb.set_trace() + eval_logger.debug("VILA is not installed. Please install VILA to use this model.") + + +@register_model("vila") +class VILA(lmms): + """ + VILA Model + """ + + def __init__( + self, + pretrained: str = "Efficient-Large-Model/VILA1.5-40b", + max_frames_num: Optional[int] = 100, + truncation: Optional[bool] = True, + device: Optional[str] = "cuda:0", + batch_size: Optional[Union[int, str]] = 1, + attn_implementation=( + "sdpa" if torch.__version__ >= "2.1.2" else "eager" + ), # inference implementation for attention, can be "sdpa", "eager", "flash_attention_2". Seems FA2 is not effective during inference: https://discuss.huggingface.co/t/flash-attention-has-no-effect-on-inference/73453/5 + device_map="cuda:0", + conv_template="hermes-2", + use_cache=True, + truncate_context=False, # whether to truncate the context in generation, set it False for LLaVA-1.6 + video_decode_backend="decord", + **kwargs, + ) -> None: + super().__init__() + assert kwargs == {}, f"Unexpected kwargs: {kwargs}" + + accelerator_kwargs = InitProcessGroupKwargs(timeout=timedelta(weeks=52)) + accelerator = Accelerator(kwargs_handlers=[accelerator_kwargs]) + if accelerator.num_processes > 1: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + elif accelerator.num_processes == 1 and device_map == "auto": + self._device = torch.device(device) + self.device_map = device_map + else: + self._device = torch.device(f"cuda:{accelerator.local_process_index}") + self.device_map = f"cuda:{accelerator.local_process_index}" + + self.pretrained = pretrained + self.model_name = get_model_name_from_path(pretrained) + self.max_frames_num = max_frames_num + # self._config = AutoConfig.from_pretrained(self.pretrained) + + # import pdb; pdb.set_trace() + self._tokenizer, self._model, self._image_processor, self._max_length = load_pretrained_model(pretrained, self.model_name, device_map=self.device_map, attn_implementation=attn_implementation) + + self.model.image_processor = self._image_processor + + self._config = self._model.config + + if self._tokenizer.pad_token_id is None: + if "qwen" in self._tokenizer.name_or_path.lower(): + print("Setting pad token to bos token for qwen model.") + self._tokenizer.pad_token_id = 151643 + + self.video_decode_backend = video_decode_backend + self.model.eval() + # self.model.tie_weights() + self.truncation = truncation + self.batch_size_per_gpu = int(batch_size) + self.conv_template = conv_template + self.use_cache = use_cache + self.truncate_context = truncate_context + # assert self.batch_size_per_gpu == 1, "Llava currently does not support batched generation. See https://github.com/haotian-liu/LLaVA/issues/754. HF Llava also has this issue." + if accelerator.num_processes > 1: + assert accelerator.distributed_type in [DistributedType.FSDP, DistributedType.MULTI_GPU, DistributedType.DEEPSPEED], "Unsupported distributed type provided. Only DDP and FSDP are supported." + # If you want to use DistributedType.DEEPSPEED, you have to run accelerate config before using the model + # Also, you have to select zero stage 0 (equivalent to DDP) in order to make the prepare model works + # I tried to set different parameters in the kwargs to let default zero 2 stage works, but it didn't work. + if accelerator.distributed_type == DistributedType.DEEPSPEED: + kwargs = { + "train_micro_batch_size_per_gpu": self.batch_size_per_gpu, + "train_batch_size": self.batch_size_per_gpu * accelerator.num_processes, + } + AcceleratorState().deepspeed_plugin.deepspeed_config_process(must_match=True, **kwargs) + eval_logger.info("Detected that you are using DistributedType.DEEPSPEED. Make sure you run `accelerate config` and set zero stage to 0") + if accelerator.distributed_type == DistributedType.FSDP or accelerator.distributed_type == DistributedType.DEEPSPEED: + self._model = accelerator.prepare(self.model) + else: + self._model = accelerator.prepare_model(self.model, evaluation_mode=True) + self.accelerator = accelerator + if self.accelerator.is_local_main_process: + eval_logger.info(f"Using {accelerator.num_processes} devices with data parallelism") + self._rank = self.accelerator.local_process_index + self._world_size = self.accelerator.num_processes + elif accelerator.num_processes == 1 and device_map == "auto": + eval_logger.info(f"Using {accelerator.num_processes} devices with tensor parallelism") + self._rank = 0 + self._word_size = 1 + else: + eval_logger.info(f"Using single device: {self._device}") + self.model.to(self._device) + self._rank = 0 + self._world_size = 1 + + @property + def config(self): + # return the associated transformers.AutoConfig for the given pretrained model. + return self._config + + @property + def tokenizer(self): + return self._tokenizer + + @property + def model(self): + # returns the model, unwrapping it if using Accelerate + if hasattr(self, "accelerator"): + return self.accelerator.unwrap_model(self._model) + else: + return self._model + + @property + def eot_token_id(self): + # we use EOT because end of *text* is more accurate for what we're doing than end of *sentence* + return self.tokenizer.eos_token_id + + @property + def max_length(self): + return self._max_length + + def pad_sequence(self, input_ids, batch_first, padding_value): + if self.tokenizer.padding_side == "left": + input_ids = [torch.flip(_input_ids, [0]) for _input_ids in input_ids] + input_ids = torch.nn.utils.rnn.pad_sequence(input_ids, batch_first=batch_first, padding_value=padding_value) + if self.tokenizer.padding_side == "left": + input_ids = torch.flip(input_ids, [1]) + return input_ids + + @property + def batch_size(self): + return self.batch_size_per_gpu + + @property + def device(self): + return self._device + + @property + def rank(self): + return self._rank + + @property + def world_size(self): + return self._world_size + + def tok_encode(self, string: str, left_truncate_len=None, add_special_tokens=None) -> List[int]: + """ """ + add_special_tokens = False if add_special_tokens is None else add_special_tokens + encoding = self.tokenizer.encode(string, add_special_tokens=add_special_tokens) + # left-truncate the encoded context to be at most `left_truncate_len` tokens long + if left_truncate_len: + encoding = encoding[-left_truncate_len:] + return encoding + + def load_video(self, video_path, max_frames_num): + try: + vr = VideoReader(video_path, ctx=cpu(0)) + total_frame_num = len(vr) + fps = round(vr.get_avg_fps()) + frame_idx = np.linspace(0, total_frame_num - 2, max_frames_num, dtype=int) + spare_frames = vr.get_batch(frame_idx).asnumpy() + return [Image.fromarray(img) for img in spare_frames] + except Exception as e: + eval_logger.error(f"Failed to load video {video_path} with error: {e}") + # import pdb;pdb.set_trace() + return [Image.new("RGB", (448, 448), (0, 0, 0))] * max_frames_num + + def tok_decode(self, tokens): + return self.tokenizer.decode(tokens) + + def loglikelihood(self, requests: List[Instance]) -> List[Tuple[float, bool]]: + res = [] + pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") + + for contexts, doc_to_target, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: + # encode, pad, and truncate contexts for this batch + if type(doc_to_target) == str: + continuation = doc_to_target + else: + continuation = doc_to_target(self.task_dict[task][split][doc_id]) + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] + visuals = self.flatten(visuals) + videos = [] + for visual in visuals: + video = self.load_video(visual, self.max_frames_num) + video = self._image_processor.preprocess(video, return_tensors="pt")["pixel_values"].half().cuda() + videos.append(video) + + qs = contexts + if self.model.config.mm_use_im_start_end: + qs = DEFAULT_IM_START_TOKEN + DEFAULT_IMAGE_TOKEN + DEFAULT_IM_END_TOKEN + "\n" + qs + else: + qs = DEFAULT_IMAGE_TOKEN + "\n" + qs + + conv = conv_templates[self.conv_template].copy() + conv.append_message(conv.roles[0], qs) + conv.append_message(conv.roles[1], None) + prompt = conv.get_prompt() + + contxt_id = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).to(self.device) + + conv = conv_templates[self.conv_template].copy() + conv.append_message(conv.roles[0], qs) + conv.append_message(conv.roles[1], continuation) + prompt = conv.get_prompt() + + input_ids = tokenizer_image_token(prompt, self.tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt").unsqueeze(0).cuda() + attention_masks = input_ids.ne(self.tokenizer.pad_token_id).long().cuda() + + labels = input_ids.clone() + # Context part no need to calculate for loss + labels[0, : contxt_id.shape[1]] = -100 + + with torch.inference_mode(): + outputs = self.model(input_ids=input_ids, labels=labels, images=videos, modalities="video") + + loss = outputs["loss"] + # loss = torch.exp(loss) + logits = outputs["logits"] + greedy_tokens = logits.argmax(dim=-1) + cont_toks = input_ids[:, contxt_id.shape[1] :] # [1, seq] + greedy_tokens = greedy_tokens[:, contxt_id.shape[1] : input_ids.shape[1]] # [1, seq] + max_equal = (greedy_tokens == cont_toks).all() + res.append((float(loss.item()), bool(max_equal))) + pbar.update(1) + pbar.close() + return res + + def flatten(self, input): + new_list = [] + for i in input: + for j in i: + new_list.append(j) + return new_list + + def generate_until(self, requests) -> List[str]: + res = [] + pbar = tqdm(total=len(requests), disable=(self.rank != 0), desc="Model Responding") + + for contexts, gen_kwargs, doc_to_visual, doc_id, task, split in [reg.args for reg in requests]: + # if self.task_dict[task][split][doc_id]["duration"] != "short": + # # import pdb;pdb.set_trace() + # res.append("A") + # pbar.update(1) + # continue + # encode, pad, and truncate contexts for this batch + visuals = [doc_to_visual(self.task_dict[task][split][doc_id])] + visuals = self.flatten(visuals) + + num_video_frames = self.model.config.num_video_frames + videos = [] + # import pdb;pdb.set_trace() + if self.max_frames_num == 0: + images = [Image.new("RGB", (448, 448), (0, 0, 0))] * num_video_frames + video = process_images(images, self.model.image_processor, self.model.config).half().cuda() + videos.append(video) + else: + for visual in visuals: + # images, video_loading_succeed = LazySupervisedDataset._load_video(visual, num_video_frames, self.model) + # import pdb;pdb.set_trace() + if self.video_decode_backend == "decord": + images = self.load_video(visual, num_video_frames) + elif self.video_decode_backend == "pyav": + images = read_video_pyav(visual, num_frm=num_video_frames) + # import pdb;pdb.set_trace() + video = process_images(images, self.model.image_processor, self.model.config).half().cuda() + videos.append(video) + + qs = f"

    A$+irsiEL;4jd`mSt@1x}XKr>WW7$PskdAhRDx9 zn@-#XUS>;EG*sPG=lzVufn~orxS|4aoIk@w*=dRnIJ#z@b6Hh#(iaV#E5EHIn3N8+`35IV2rQb6 zDu5)~Wsr8*?0&2^BX?mH_T6yG&vozQ7(==UW972mYtz-+1!)P_@gw<%A(T`_v=vE% zn;uRG$d$50tTLv)=2E1_nuiektaB@iGfHGGOd6o70YI19(`B<3~nHL5uzS@AOw9^|x`b|6XI)hvB$G}P?Q+8ye;!(eBJ7|sR^*_E%%BZ7KbUGX~ zQW?;6^-aMvjLY9=Mm6z*FpTzQM+4$~yPFEaX+QoV;Ua|IsuXlOIS`RvvY4m9w7>PI z-0079ki>Yj?^W&wEGIe+G5!q{W9K{RXPhyc1o<0Qtjp+pM+Kf>zW=F`Lx_wYmZF2vemZ} zLbIH^1Q@e~Nh|aF_13sSTslby(7ux-plz$tT3nHFy)NL6NkQAe8luI6XV#*%Sn{&b zmTY{+qyFK{PRPSf|4*Ia<+K-0*n8&p^j5|0Y+XBcAg`ql@9qrtR%dL2cM1~T#5LUc zgbaWE2gfOSIjP1>fI9xs666wV`E44akf4CxZ$&SH9#)?x6OIpOO>tq!E6BzQ zFxn)ypy6JN`!;DORh!H<=x1iq+er`l_eRQ#7(SJDx8|Z2a}B1Y z_Fk&c=aS(Xg$vR_V*F_apW#P3qt>|A_q!Jb(DdSw8Zu2V#sE=C<+TnR2h36Ba%Z`}VZQI%#-w1gb3 zH8g^Y6UCCa)0s5uielYIl^re(gz)qQFO6Js&%X-34L#+%7e!#iFu8P)G@kje<11^X z>Cx@`1?f5vky@i7Uwc?{F_RtACi?oZIU38y7=2cK?O2L$yQZR70SyUs>WB$gon0T~ z`Rx2-TJEIk5V@r3jE}fvl4H4xPSeB?J>a|1sSmk2w>-4S50Jc;C?67Y(_I0vYIj5M z+o#9JyK=uuyH`b9a(+f9rX(i^?r|gS_xmcF68pdSCn1|+ZnE!INg@KHlJ7a(zcYzA zojJI#zkogTZ#Nu{_7n&LsktPg(ET5^8J(83k|q+l{ihk#iqsb*HkBy5KjJuP_aNB? zk7%XIRR=iA{h+PjM?@a)(JrB42hR#kyYHPc1^)<8(K4`K#2>qI4W(PU*f1jpt;pD! zVNf?6i0gg&8H313np1<~0bljRbga2AlYrTE2`Hx!hu=e3LEecrZE?IPn$5Bfys5-< zt0Lcyq%bWsdGo{9n?Oy7SD`m--A$g8P{Y43gAwJ76#h1%TtXpQN36IXXI$xju>h7n zX%M`c`ZglZq%tyyZ*_|);NQt=^xso(rkeRv*iFb?DI6wt;XTJuJj6btpvrbri=`A& z`4)?z${PmC;X@6aXHL#GEyQ_`4&R3o{Xl$T%q~J`&3NKl;FY1i00bxq-d%2T7Es_z-Q(>{yH_1Cl4xz5i32T3^ zsi;#G?k{cGqqF!YPUCVKQp`lEsgIb3bTbC+i^2LGB0d; zPpZIL?ctY1pNQw+rQZC(6XQZ7&24WcS#)y&r|XOVv} z`aa5wngft=bJMv(e(s{G`<_FQ&n3g}s|hS1A4s47D}ix3}3%nIQ3`nYBB$#T2#s zLPz~cp~)uyZRFKV`2K{I_jCJW&r0Sa_{=S{o#m;c<6i4-654?mCGH7SmY5)=~~zw zXY0Hxm(Y)*5`U9`_9Xd=Pxb14NA5q6c^mnc2~Nc26_LpUTV^w6Soq;}p2=G6t~{9Z zxFPNt20&MG-v~FP$Z%x=fkPwQj^@#)IdMYhqTix}@4ffBz?--i1L`k=Bjh|(O{W14 zXB$Bq>a)?D0XL0>D#!Qdj&A9Kz4wOG}M`3aUvw2v6wcUoGaSu&))4~2>5pJ+Y@ zE@%w#r<6|9adtQM&NBFzvgGeP*y+QfrXBoG3z^TKBMidppJ9K%+B>cp30^x0$ptv{ znCk+NFBuM{zRY~R&ooM;UdOHNfE|;l&_5-a2>Z-<((kbH`kv^#8GM)ooquffE1#_o z3eK8qzo}OmLxwMYCG~;gOCHWx&dO$mOM*FVrnZ zBV5e2Sb-kNG_CqtN^IAgixR_ydzYQ~4|2aDlOWiKu5w4g!2<@Ir#dvUR)*9Zz5Y9q zfuo(*9B8#I5Vd8`4w{YFco*N4|qTfl_UJ1v4(6OfqM--}p0s zwtGiU0{zj>t{|5n4AmneNk!3O`*do42cyUptw1kJkz)1M?S$5xm{s>%SqzM#Jq~zv zos#C*)_U7?Co_?xlsFPwYbUpz^R|hG$iwOXT>q-J;Dl+tNjlne)UJoTiWlA0^((~O z{%sW?)pI*D45oQ`(nD{RM&E~-?8eHNvHpI(St^~m6Ftz&PgrKupEF;{wM`I+pZ5~= z5iB-s9-moOD)0Nxu+jI>v1oH(@~zA)^VXm0X&v=HP`?k*f^Q@}-n%yoUgbjq_2Ypy zuCHy7_EZbHN@12r(FT@g{?_T!cdRzBG|QLMKA)&IwTN589%#*#8{+=OTu-K!=Xr)@ zu?0b;su*3#`i4)O*%Xiz7v@4|z_H6SdOsuHA+5yn=8@v|r%tO$@zHt9TBV+ zqYvFR{cnMTR7!3KC|CiYG4$0`jDQ4M?S|`$!jqB*r^aa@`~A#S|nyyFD2e=opXt3r*}m;lm`g@hAu`0Ta&cL%gb5cgH%+R z%-mLciRHKHFgzOd!utIARxHmXno!G|Gb!@mfU%n>`OV~zby~@y&kmyEgQcOy1_0Q) zP);;B5@1bL3)e!&40HHVb%@Btv;dJ3h{h!JisbCFa!VO`9NHhF#4jub?xKrGC9vk_ z+*~cKY_J)}({Q5S3U@c2x@MQ>io&d~#1K`G)>X_C2ZsY&2}gu#4g+FAi>|6Z+!=9| z8#k2S)ioHw6&E4JzU9?@{$)_YQka|aLRxcU`^jBk)IHP7sPCj<*O^|CSXApV`TA<%;z!;T^$SH9#QN8z0O}E9-#X;8z(_QwPag zb=Lsb0d1pqaDz#C`D@9xjll>5{e2>Yt^^5Y1=NHe*O{1WvzFoE6;)@V3m7b@1020E zdK@!Mg_PO>$EhJ%+=w0~(2UiyI*a9ATwdXB9$)@|%qVzws&Ww40JXT!9ljrxnDcEH zN5uQWcOFC+vc>+xSa;pO$GqLUSPThn481hmLzcX?}eek!X4$Z47qS?8$asyHVS-3PWl} z2rk?t{ULyxj&&&qmiB7?K?b-9#fpg`2388R(~T(1L<8%!jx^M(HFk0`9)N?&l1&aO zd=oldHxD&@Hk~T{2w@5yi^*_DboClCV zZalOYe?T3V6xRavoZZ%a=H)osnVj0$TZ52g$j&r3E@q%0mswlX*`+La;7ss?_;A%5 zaxxnIH>v$nXX_RMBx2W!?^2jn$WByx zhG|wkH#4tx>^4H8-XHMnrle`!CleldSk z$+hKs8%mx3R@4c|hS+*805WU^EENB;NCI#vtSh0n0PUk^x@)!|UVqVBShQyEhA;DRD> z!P+&)op61y`rfZupR{Vf>+YlKn4`NV8uvPB2D?96QV2`#tb*-733*(Y*+$R3pOL65 zcYM-_Yp9O~Oe2wAUtjmt%mEzgCiyB{^;>s~%gk)&bb$F~{ISFB7_@&2ZU(kn-C7}D zolVa8FUl9J)*_RY_24-n$>G)83X4gLYoj%Yy?4x)R=?Mms*KL)#g}!FelXuv&|$; zeY5NR&G)7BaX0c875Ue=`~wGjPuz8%LUzDq`$j)GC}NykDcza=c&+SkOwqRK@0zCW zS`e<-Af`*yfEQ?p!VvS*Wot9#i`mop;s&oGZPc2+ZEx+SV!vgvNa~JG`?ln!9poff z>+$zo8{2|+ccGcHw&+K(+&iumrH`pIw+VG#uycvdWW(rKuATSlwdZPFC{kHb+{-Wq$o91*nJBu?R$e454{{dUVuCx0R zZl0wC(SHnH7h^ao2OA+8{u)Ef9uUEHm)za}XPAr#$AP`)lMzu8b(Ix3!G7na&yE1# zF2cux57j|O*}(|dWes#;fM=c4RC$|8?HNLxTjXET{iRw84SsDwxkVUmm>)qat?-0P zyhy1P@8Mm+N<1o_$atv4*MNb*-{E}-)Vs&toESy1?23h!Jxt=iMyppCK|M6r#zC43JFEjmqp0PP|da zw)n}3KK~V^KEHV1Y0vUdBC?1ih33QSpQhvQkBVhIAb^uMA za`)nncwm7rP6F#Wh9M5T>|29|z&|cR4xj|?6*0kr$$3vad&{V{{%_qk2@b{GwP>;86e~rGwa@~^ zAw>hlT@tJmiqn?hPJkk%xCd#{7I(Me4#g#K`0X?HJ?H=5_l$k+eYwUOW39Z&v*vfs z`8*$aFQrWe+>4PpeSF)imWpa2xeXMCSDT5jU}Xk3@&U?BhiNt+^BcB$+W&ZuQY0tb z81)DXn6QX%huEt&AG2h48G;7K$R&682@n*(h{5g0mo6W%Igd3EdFP+-G_j%ZcWFv> zVA(6L&`W;Jr#P8*AAn~q|DyfMVsC?~UAN?S{D0s5|lz6+q3OvKt*=gM4R)D0Q=UNw5j&Oj@4G#@55fIw` zNw)0?^>!QNLC;sG$dT_^X?LNAn+a_HQg3Q8WAr}hmk&yp@YR|)<3Smt@hHhWo+pyN z3jA%5dQ^#hWMf0<%|2G_QTywH$J%zr`1!Ox^*5zho@7@p%d5%DW1GN| z!4*5VhLD3yD~aTpIq#5V&SF{FPv|PfZ%~3Kx6reNy~&Xsp-HCWATzYdSCUHp7N%KI z_N<6RX(WyKQ2&=^@^9=BTJM@vLGI{>Y>ACZ8g4&WVU2lps$-z&;HP*mp7~HFOS|tj znr)Q5-f3OGoEtp8c6xnp<^nyD&ZDcj8J7!=5?wfAT+!M+PjiJ3PZ9a;0PT8?9G(*P z3UJ-;nv0%#uKlq+*~=%FdCBFTHYF+b6sJ31(|~x}*sa@t3v##enNL`9_=vKxx@`d> zo+|N1z&wx}_Lx_XIpgqEXJ+AWN-&-9B=PmC=s+F?pKXz-cNc`Rm3zz$i|m^gCL?Ct zHf}pnw?^}M{PAGFN;SR6n)%4+{(Mu^uQM0@x9>nzS-f|S*?wZNE@Czcz zCS7T%jqPU{Q7|v%LeG7uFDr1NdfRm5$?XA?WF?yJ=tB(4> z%20;XMXlrS#Z1t(+m^LF_g{Onm=~r%K*Pbw%IrMN!ISjp`Gwx7bLxhJ`l!2W!_oTL zz{|r01i>{FHHJ}~wYa{W*WWnU|9IE3Vv1wB5S&?+CCqYNC4b8}c;3GN$@IETRS-wD zw528-pzc4p1ca@$N+XJhx;-+K=e3VQ`|M6P6!AC9IO?`yy%ZAFv45wB>ALIiac*;U z`s8)(Bd2ZZ5$LNw(Xi5bpb&KqKfi)et| zID6W`v+(iqXm9trWjn?si=#Di7WtjH94A zS5=q3WsAgncd7Nui`#b)jMnT?`N7@%#ohV1Touk>z}niaEzWn)o6vG4LpFg#>Ys#f z|MPNb7J(GQS#@^t9{sHKWD6i|^;`G?@^_rf3}vPT!&}0|wN4g7g^k&RNtEPcC%WkWz?d4&WiKurh}u4!G!ao8#WIi=zsAW|hhw zEy3Wc^Rp=+($Xd5NX-n25@DREni zS@etEuZ(m;RcLeH0N}A2Gec%=JrO!%FX7OybboPDT77C01~I9Tw<8thKk4XxdW8d{ zA5nWv<0wyY03Dd0`7pwNon7^=dLx+(+{MiUv*{-%bN8WK!AGQU&JQmEW?154Feb`{j|q0fGmfzT$cbOZ4$lrj8yMWd_lSlxMS! zGej$|9};w9iaT-vIG83*o)YKef`CJ>wyv{$-yv9SS~Hl8z?s@Y zM~Z)Y{0{vc)u1q>win#S0eZ1%J+oV{kMI%gXE;eX$tC>O9jg+_kLxiiXlOl$%dLFi z3C|yD0?=Y-^K2 z-~K=;G7LqE6*~-W*#u#2l08~(ow%j?x#@5xKHnCs=n{PK?4_6llFC|)X>%*E@}T%2 za4piy?L=1=yM*73Dxoe%$$3l=!Fh?ti_2yee;J}H82NQxa!6tMbJb}l|Ht(o_MQg8 zQ;IOU+oC(T4*|VdqmSsGp00kDq_H}1sIK%nt4>@V=bOwn;{3o&ui%+gMK>53i59gS zYei=|fI#IydSd!f_S30-pAizfd70BkZ`ULN0n&erhV?=z)Vg0Xd`9J^dHy)kUkS*n z3u~5mgKpXk%%fh$4JCj~W0!t+qY0KMEyIdkcM`MwhB!qcRXIph{VbrW65lgkZ_yn; zf*X)~SB#(Qs>nYO5H_sVz-$q^9-I*4y*1~9b zCh|q7HdqSW=`|{VT(59vu0w8DZlRacIk>24ZRpWPj;?FarPdaEM>~DGN>+2br<~T3 z415gtH+lIJF7NK^oTZ&O+INMJ$x8IqUPPnk28$*hPu@l=YNpWb} z_3i?l(>@^l|E`(;OF{?BK=;`R&@UmEsnE-v=JS7S9!HB!?fc!nZK6p-5lpPCm`(Nn zAcy+~XIR?(r|SN%C;V4UMvAS`2m<438E%yoQ8s-&5)T?4YJU%7WpL7h-~VD(1Ys$t z=(J+WH#T$>Q`b0o`57a7Jt0a=WVy6Q47VRUK=9*kK2M>d)0cBn;v&`_W=Mnpt*xxq zG2Glkz}&dvq2WzyC4u5jcr*EXTLo7`+0s7YW5}wx^#t>=+z+aXPTANyq-=Y3;$JcD zA4{vNyz*TS<_~gISvfed3+h4v#LEN}g6m4yK&a8v-S{;aNw z3yMA*t*g~#=q&o!;+VRcP0W^0vTm!>yTQi_L|J`76_XqqAX!1mXKCF93Dm?}x5H5t zTiL-l9^5c7?_{Qd#syC8QJz4&!b(7IqVC8}R^o$KNIBwMxMw3D8J4aY-3m}?j3&#z z*D2E^<@CW%$05c-*>s7}5A_ohBc3-Lu4&jYx831hcW36wZUI~G2sXEEcq*WOy0^%2 zPw~JboOE|;rDH+J|E#b`JnA_w=Ept_z(SgLTf7$fvc;6>Yf;*;vn=_>4KE zzh?>>G`#(;@sYqp7dD5tMJ%l*P|PgzRvOjje_q>#w$ShkMu zlTXA;OA*~h^jNk5h0dlEjJQlK6>iT3bz=^#6G*L8VP;B>@IY2GbX;em8$EW$b;t%q zPcpr?8!`hNRh))wLoO}p?B(`7_gIdxG=PbDI3+_kKSik#ityY(e3qf`y0w+9ngCux zd)xQ9#K;H1)IRzhLor7_eOQfY=_7gEVT3`qt9~0MpRcl#RMw=go0^+)B&5>xMwv7S z)ZYJ5Q(XT5v5z*+F>GUA3YDNHc(iF|qmZgO&Ue)ORFQj39kCZ|u!BD#!<3 zdt%N*I#1;fVy|H@G(UP9-vg}bb)>SeZi?nfgQY>Tr;XI! z%M#l`lN>nqKU(**s&5T!imOjqavg`0}k(SZo$KX9s(e-HlFn5hKSKN@4JDRvGl7nsF6%*j8o=X#9m!q<2AJj_3%=a;JgUeW%Wwl2NVM?yEQ zrw2nMG0UvC_nmfog=25?>(7>#pHDdNJ$07n(^Bo1ZHw1!2-g2VWgi{Dazc_V|DO{1 z-yZlcm;cnxH!F)6;`JrIU&3^-qpf(2-<|73_@KF`9I6Bbm($BDUMgXoWS(BEXc-5b zVypJ!)H_-jIp-2%-;Zo?{BqhH>23p^b6_{jt@-Br9nJds$5f%>eG{H>5xZ3BgkpOG zNfuV7WZpv&t7JY$a-!H>hSYg}>kHiNqs$wkL!5(Ck&FNX+|8lg-442QYr;sSf$3?V z=6i=dxzc$~8GSEe0qB8Q3fV^pK! za|D2XcD9fZ_&6)~YcyB!YTvHFkbd0pz|evh5%C;%V3+iwA zrttMAI57C2YH`hf49#1oUL6H zxXQFZc139X)l5k;+kxZ-d+ZCeh~?J`Y2kvWHqQ(H9=4IeagTAVbXmc7iZ|zjh&znp zT^0PAmdlZ8NO;C_tC%shVMJZ=P`}ytVoiMQMjllKd}OyB>CLOn#x-d@heQ8mtj>{= za(#^=7ZyL{>=Zi*eE8y{r&GK3kz<(s7q@-yug3u2>CihOVpUCjkXLNGP{}L|H#XE)sl;6Q}GAip=zG zz5~F7zq=(iZk8KDjO1QyK`gTlD0V)%+6dpqtjMV8n0McxL}`TF_hLT@Z>s^iqX25a zp9IyS_A8zVEfvIqV zxXszvqt&?}8VJ#(#HqGO|Mdg`!5i~^*HmDjb{d77*IZ_AD)vFT#Keulr1)A?^+3Y8 zcBtNcXs3I{KPxVJ?>0z7GrZTwD@+?etFm`DH<$l-nZZKY9fO1awOsz!j)uKzsCoj+ zLuf0CmEjtNuENYz{lkQ`yh0^(>|-)q+tY4W^=`Qot_$vSR!(luJMMPc2VMWWGXFo` z3Q#<$;p)n;yfC|=xRdPYSwtDn_M9Z3X<9^?arW6vIODDmTh0OSc#)hOt3Qh14D0sO z)T0KC$!X_TBeL1M{8lQ|-QI6i5?=d zKGCf|x5SP-aDN>-IxCZR)@njWZ5d1ba2<{O-*r21xJ03mv>yF&3u>J~NiAH#89?L! z%kJlnB%gT;O14Q?kMmM4Q;&QV&c43I&Gx}G^)09}3@5wZW+)rdhqpvd_vYy9ox~De z+`TVLayMtwO#qafSXl~x1qd^N~QE0dg_ zZRQc>Vji;u85oeT9v~`cEpy|>2(Ox4 zp)(05L#7;SfTcx|a+*;JQ$yFBpH1hFpu z3sFp_l0-OS3E)e*jWA`M%KePX6QmcMp-(ZHFX#l$$Rs`TukDotos^d)ktl!Cpxe;t z5J|Ip2hxwKCA-=*cGDYrWOM~ow3NrR!fu?j_%=R*0i)R=7y!0C&?8h-O&x@O+G0S zUOCwuUa9?M))M58m$=0>-?AYGy5SToMafc}Zq6ZSbbgm6A`3SS%b+(1KM%7C(kr_= zzY3Es+lg-(ZboT>B+J6fgtKeiR8-3!a8KE4x!!V|aA{a?Ycay@dtTcsNqA0V;INH{ zoxTNfMU)k45PYUOUG~>`^xe;_!)dJFd1Aw?-t=dGa49Qp?sfo5CPEcd|8XT>vsytg z)GG$MTC9ZzaQ^(c6k5s$i##^@gMLK*gT zh;_q8N%=%CE5baeF}s0;0{Atl&EqecVKpButeETuuXjZfC5>@tg9RJkH@=Bt2BdP17@O&hwZdEL5rC~- z2(1!NGThi#yEzSzhd&ti<}N`u@Q3wT_)27x_JxV)EdpT=T$G!cO*k@$si<(VVn8zN z6KC}0$U54@mzL^Pc8j10@;ZCkghuW zKo>SNA&-d!u)J~dT*I$fD<=MYS}1_%9KR3#+pa~su3yl>d?G!vizmUE8r#mo)436#75H8UH@BsR|lhxLkR8 zZ)a3Y4LQVvieN4h?k=R}6%YQUQT<<@_CN35a`L}ue3_G!eK$pl0hE$kyO$*O6ItGc8lR5sK=k6G>G#}^a1P3YW1CT0pGlWwr;Z5(&Z)3PV5TLfUMlAnU z*&IH^0ZVJX?%Swi*pi`}!K2I76J=3EeuLt26_ma~+THg7$=0aYzyuLtv#DcoU4^rZ zNmk)9&6?tBk&xE{Vc5puj^FHp;&yG9($ught5L2LfH~}tVn%LfGyKt0`pE@!i5#w4 ziPePEsqL93rxPW%>DpVpmf z2gUaF8%FiOz7D_V`$g6pcn;Eb zvT|NPHZJ4}c458N9!W2fd3kdb#85OjA);^Dh@U8?S5TKSrgYuk+fw>#gP6k2X;X5! zh2SdIS8DX+hrm|WEaoK9C*)-2hj{LRy>$6(A+1Dn;qxK149aouRN%pZz=^pVW-Ucj zT%t$}+)8Uh#i6tO)eg$_Crbg6mswMgqS2oQ@+5HaAJAxAl1=aDfq(x>H?`MIcU-@I z_^j`wWj3SqwWYdLGR>Swr8;B?j>7Tt$o@_KOJw`^2E)=|2kqbL*Ig38rNepufDaOA z0!&mtp@-f!*}U@XROs;#1fk2@rF^iNVZPB^+uKZL=oV69nsWKdwa(@?Gb^(gFKbO-iaGtvj#beHq*`@E$#ko~^ziiP&zSoF>=?~3C3<4*p>F>c+bfg1<- z9aNkg-gbL6LgA8=nrdCUmUwKuzI3ctq7HM8v0Wy4b{Ma!RZ}jk=WH zz(kz(T{cr#SP7Q63DN>*871t!{RHzK!1CYua(dIFZwU@H<08KEAU^=2c1Qzh_KNMa zeN0eSFUFGh#8vye5z>k+f0s;eslb+IVhSOXmLa{va@18Z8@_vFnAO4`>SnW;KfysK zg~CBXZ&xHrlvZsq*nQ>sdEXXfs3;i%g=T~!M#V&ndS-SRlsP3!lY0BYy(h*C3M{s< zw#MGr3-mgfbky!~sZ7!nyy>s4sgIkOgGhJqi51UH-Fc7p8b6EZ%|AEOrR!^k9Qnuj zn+3glvMHRg6F~|jN57h~C;TABb=2$b?U^kM^I-ZCgCrL&=d*r932A-rC@sIwscZlW z#@cty(v{lV-7O?JC!j1hlhRf-dC9t6Bw1zwt{{Sa@ZUBrb63*tYa~H)N)xFl&r$l87$q_`qz= zmN+jP7(a9Bv+d?8CeOQn`DhFzWdP{d1AHt?auUPAWlj_~Qj#vz1djW6P$R|azRpkK z51~~Gals?p^t=@1yqUjU_SgF2h?9roL$|NmLYg~#73Z4+1yD1x;??`?TYk#s3kRls z2;&xT#9zyUNYFhpv?Dv@o@g$CxzC94zUsY?>N&Z`tRb$?53p1f0s=1oi5RjL_uH$R z9Qh~YNM%m}^SI-Gn;ZU5Ilg&fgzVARX;8Si^Sn&@-{*?Ro@2d`zbQ$)nB)8Sq%9uk zU!GAd;kFY&q7~BT|B>I@&@iZ8M?wY_})8y$bQw? zT7G$Fbs)-ZGpf#i^Zg!xwEsr7C*m4DCV`f@`Ee5-9?X{JaUZP}*CH!PjO2lT z)&U!vTB5(UYB0Xa#kGoC3Sw4s2V%1`{dw?5OlOUuNvpO-Hz3jx`w89G2I1Y}b{OgU zd0hXV_(W_RyQRo#*91=ApTS5?6Z|~29FBRlXA;HxKgB~fEo*AnT1qgKBZ=nxIU7P=CBchREXABH`n zjGd?K8x8E4oWt!*-?J*`-YdM@6p7PdEIn@19%C|Jaft}QV*I<5 znfYXFe=@eM*$DEI58{|9>HjWhgLyJ#;K&jPM3!b$KO&Gyd}O`-fsZ79EqU_n8rD3` z_Oyt&2e!k+rqQTYAa@-xhtwQPc@e+ig{%m-DQKvjKK`)*dv=5)xS~21!|lI#xqG;U zJf9YSuq*@=wTAQYjQP3dCov!0?9*`v_N@ldFP;QByjcmaZGYyHd(NlH3<4edD^i3PE6EfX ztcT*fA0gde&`E7SUxSkh09dS}VR#pkXW#r=N1TPZzSZG8xMxJ}%QdE&m}WWTI5HMP z@uBcP`fE*u$hzy_bz_UOT3hg)PP}ph12#&ecpv9kQ|y~H==Crw&QFt}`0G;W0~Pd< z0qW(n&KLKL8eMJr4FZD4-1ZW5gn6JJiqd`$$V8vtt=Wh0W4aIukqhDC(oZx76`|C~ z@~n7ZAph73{-#ZzsFN_hXrXRa%WEh5f#z4h#~<7`3W2L7!4G7hM`;qzM0+54GS)a! zDb3}o)-34Yo=j$tQMoH2t;l4#|BSO>n$Ke!g%TrG=_Cd|idH~KIkOj8dv4+zF+aVQ z)Llw%>d%I_K2AkMuuxjx`q8&3=@!iTVjKd`Bxh7Hs)8f>Ipd@10LI!J`Rs|x(+$pC z%G<$s*k|~ipPc7q65dPGVS07Y1YNS`$;ciL$)J+kZIR9DJY!g<6}0K7kNW5 z-jyUQgF?HnoV&CHH>97c3GDL>MBl%3pOAOQFZqg8Z^W)5g_|p&j?qQ`r=-SwK27OI z(Qh*)vdRUxe3BTijREEv%{XAPi;F8F^*)e9<4u$Ij^PYvl4I8f>&7G@hFaOc+w6MJ zD67uS(Ol90!2a0;-Jp!9b@cgw>tx&WuR>4M1s~As?X#BG7?Ol{PSIHDgdd&5jSt=g z^2}-R11#%%Wh*?O--^pKIEwJ*m0zsWPrB<0%gb!IDFU+yOEr}9pDj{O+)^r!R^-o>NtMVL3wBK=&q&O_iM7H z{r|)H*+E{q1t{Uonxb+8ZiUZqZ=RBgMPs+0A>}GV}v7A-XZkHL8xwiG;6_6?|8_ zqj)jk)2vJp9sM*+m!U*L1wt~(HjnLbf7X|Ot|T93Kr*Y(ixuTb;MqvPp@sM5s8hz` z1kdgLZvNOt$`kl-0>Hb{yyMF{++$EAY~>yLMjq=oAUnU!hs;)nl~4KvqMH1>^|cO` zRW{#7*@$Es)m`^}aEgj^El0L0{uztaC;Q!W_%`!7`AVgKFaTSUYhI;a&Z!vQS}OX5 zGj^}bPk^KU&re-kUdNoWsV<)T5tP?C9g)%d}KzltfNLsl0oeIQS)O<3VHO5W8Ey~Bf zHX;;=<(k;M0&uuu1s|xf(%GBaqKhO!)GeJo~}(gJ3>^ ziI+|`xG+&$sWai19o$bp8#6|^vVzdBMpgm~YJ=CPClF7sepfV%KD`syxlTFxb1cP? zw*r^A+p7wZ*j8f>;Ch@Uw=PT)kRU53m)|s&F=_Xez(n3L9Ab-u!Le*5#m7^7&N!5_ zSoh}6tN=U541!nw@*zb4wx4XDBXEdbDQ#y9_l4=3i()=w{UZ4yKu@L?WL|eHf6`kH zM<(^*$?^rA@_}RR{Q1KP7e)t+47zPnGJVg>`doibY+^!ln8U^K!3q5k`+15-QIbiJ zMd`4`f~#4OP}>2t>5IaHSk6_3b7mpYJZL671d#O@t=n`ylf!MLpMqVEdpgaw=kih1 z^sy3AyMdlAAYvHQ*Yq>sX*%VMEZ!B@+KCK$Ym4A`oQh+gXfDc3#@qJ0?)KV585kzz`K7f7YT4O zdALFA>i;ge|JJ!!Qp^Y4Hhj4GFU9n~=<$Evg+9T_=3}#uD#X?4KF=UM`VH#MoqfRR z0&mWN_oXWFF$`53gSqkKkbb=fr{M1>7%^`R+pt~CkrCK~`I-B?kr3gdD8h5O41(MAR322}uzmoNLM5O!=`aD*cAFOhnioqw$^Ntoe!$X(isyNiXE|^V`>V# zHqQ2HJD^Hh8llM5R#n0TN6Gn9Vq~VIl^T(f5_7He=)z+Rl8(6GY0gHiE6dPW=7A2K z13>$gfJI6nS?s#_Lml)!qBC8T65uxGS2=VZBeUL9s&4-Y`$>;TOP9`v_1;F|TOL3L8 z?k!aIhiQ95Je+o{(!^gG4b?Q==6c_^IZMddHhG@;4%mKpdyB!0Ei`3V?6)h{i7pwu zbv7W!aLnf4BFJWm{%trAtzx*mLNy@m#t4e`W!s zb!fS^AG4hT3C9LxY)JD_!FI=3!XKN*o}hyC3rs5PkS_5fF!8tvT#4oftNiiqELCLA zs?e6y`jNHN$|5mcZn+ooX@&f!Mx8rQC69qS%$6R4TWM~`wLMxBn*7czF#FO{CwN4H z->lcr4|9A(5zN1C^&CXO~WRe%SjQ`)U|zC=4u1Nnw^18>COo` zU2R(&?UR20rNw^CwLH9bewBZAd#xawe6UCSseBc9WT@=_9H$0f2N+9VklR?s9T$?)T za93I-w!$U=e;=BQ(5eKrM}!QsHa(U+<+vexAKX7;y@12A+^VJhQT2xM zlc1SqJ69``T7g`ip@o_50pflt+aNvyXX?I7Yab)VnI*_+`g81|1R+iN`F`S&r%p$0 zOQ8uAj&$u7AkoY$;?W9IUy-CiP1Z*3#{^q)bYCHKB|C*NuQU^edsw3g$I9tacwDPf zjzzEXe=)g4g1!`TK7tt(8(eq)D72AARX?(pOt6m|g;(MD^2a{oQgNGOda-)38td+2 zwYi{4e5JTcI?{RMUOOvk1Ou8d8Kn0agjd9bwg?r#=!11_dSI0#PVh2DBv0WQT}A%L zMh4GF;ej1R?@Akb>vBWr$2C3bymU|b39GWqLn|RlnD+dTo9pjE?Bny5@NO>`NLDRZ z9l|p9DH0$DAtd#D;xeL=FsRVFmK0IwBl*$&`%CMg4LA&10+gVpi*b)LR5$oj1yhmM zHP)I!rBkZJ9K*4@!VNAOpg+2e())<4uxmOFf$8`@Q@Gxxp7GQe%Ex{y6|<$^o4#21 zFA}-;1++Y+pac`VI_0bi=E6Wp&qq7M6+{MN-Lnz0DSrYjgJsN3W;H83o}9)Hj66v= z#jA%zlSa*@>pe@f}t*{N~ucEC>xRDX?5?UP7&d-A_hny=@B|zvKloZl$9{A zwrw%@{Odi;ynnNElTGkCmUxefuqF7|Zd+760T3u>L1yC%;mI0KZ3~oYYb;y(0oA9j z<+Ku3sL`3ImM{lb$jB%>w+z61+!{A}CvvBu!2XM82|ocrL)`&;Wc&oq%F7s>4tzva zYEjO)OJj6GHo!`%5G(WZ`r_x+ksqq|qIHO88$UP##G{1uj(X&SO`E@m4KRW)n1KX_ z$G@q4-4e#whhPsTql0+7q4XT8gk#QESGOG1`t>T2^Ah9C*HO9qn#4g)$d2+$i zIj6^~!uxOC*43?7UD`(t{(RqYwH#>jsJx7oG+sgmXijF`yorAqZ=i;)yt z7u$B$y{%CI#Px9>qmarW=KHN22A>%qWTPpW@|MgwqLqhLRilUW*%y<*oVE2 zFRC)P1pO}5tDpAfoQUVivcP-4n_SO5#W@7Nu0T@|MW5R0Pvastk|lf(*n?dSNAA~H z%MD<1Fu{JGsA`GM_u_QxpWTe<6Gu*}jO~ZimP#UY%L{>6{;ZVSlpF?%v(zpHI_}PK zZyzSF=j-%Uke`2~2=I}tAKm}F;|LDqnfT1Gvk_$fWnvamIB13|RCISTcx8*-ST!~> z-x5{p@;lQ$vv<5W1?G|@*daHm4SXr=f0bo`uq z9X~#e37t4}&jn9VLxyxoh%Jo{M?~;i2oFIImPFCD(ztAi-hJ*~7R)TW>f>oIPGGC8 zY9Cd^eD(S>5_f_JB2K))8CbTL4zr8C{ z@f_9|$Gx^zlMK#_d1*wZ1pXckvK^p(57GY39g7VL^-mK}3*=9xGKp|+f&4u8uk=sz zNk`@n`%3fbdy2<<#)wEK0G>rCs&Or8i^>WExlyeNTqL>+=4i?OI$FAq62Upi3i>Es zv+fsi8w}ik`b6Z2WH(D2TwZJcHbtt}SGLp zX;C77Qd^{xOyQ3gH+7oQt3ON zRC}p8X?XLN*s5NkJ7vLTY&9q(T?$Y&)c%;q-`+xp*~$8+LM?v)i47TeJXgM8`B9d< zLasnI5US1&IYWW6?n{(L`~Kf*Q6UHD2BqZGgQp_Z!sJeU!q8;`ejX0%@@kTL6M z9~kEeWb!J_vQ{+5n!4(Vve0yuzcn+-$}S|y?DEhKEScWglny@nc$c`p*p!oAS0|n= zb@9LW`**Q9N-&ry=v|l| zH})HK0Vn9TvHJpS#Q5v|28x!{7#s^xF~jKCchy6V)G17Idk9%!N;ZBGk;xBZ(gowi z{8dUJWcWN!+ZbxC+Y{)%|M=VMq?wu@Gmhq`#^5q!JY{kr)5oGM&70`D_x>vi$7^tR zd$+Vutyx`0oj2ceX_UwnQq74rGuToFl_kR*RjW&hJm<`FsH{b=W2!394$^x9?Fh^m z4AQdLRP1j|u*88BM78{u<2`yLT`S@ai6DDm^BFSmKGRO0Nvo!WTF++DFMn@9^mnMe z5~&erW(PhVO~s!RJNj!SM0VDGJ}p-c;ZiV8g6zF;&K9bWb!+D;@Y-R+;E89GxF-s7Tfi-h1u8f(Fd+fUTk?>_(U)3X2H zqWd5EefWr*M?{{&h;?4#ZnKB+AH^x=)?fDx_ok`&D5cYL z+k`Yh@y)>b;beNubVak~q*mbgG-C(U&c)ZeUfUE*u_K^XpBZcR@RGvnEvgPLNU?|a zU4A^K65KZ-#~h8X#K*nnKw_EO55n@wQ3(sFis}qWV=x1&et++V%beS9mf%U`JM^Lz zQ!J1;(&>K21He96;*5Vvq1qbLg+mS(HZqBeadOOWFo~v#NP)#SY!WtwtM%vmC706WW#M)9n3%Oh3I@KKnXoy&WJ!l8Yavc#5 zVXIzWgbk`6bxvC>44vMSy^o6I+9Js2$~);smCebvsgS*og%l|`$8W&)dD{;n4!*|@$wG$fSzd}0adtHzmoS;c`;2gUtoy#U~*`g2uZ9hgh9 z!r{%@NfND4q12hK{%8N%^ztI0n|^BZE%bJ~qsUb10H9Jnthb%a#eYh<&r6}p6pmDU z^i^Yvj4WMN*l{w(r&bfM)CQgtD>6%}83-KnASN>tWmoBLJ$%zfWL!I|8LTWgk+Y~R zpbx$x9n>e5E)d000mhc;hwm^i?FeatK@UvZt3^eIXs3|}eSgo+RH;tTqEJ~f{3fA3#mWE_;z38-cQnn1WFA64Sn~MQ2#>9KE0~a8vz3|p z)y;oE)f7k9th-rB4kE7>8mJupb)pn#2Qk6AxF>xP00K4A>y5@}047xpsSFv&jC*Sx zz%D}N!;-bjpSg03_et%kz(g_q&dD4#HoUO!68ltF@4E0C6GCiBvXgVvWGaoboI1X! z9#g<}TM7z(P2T{>aj4>K{Karj@OhnaY=}S>-CHzB?Ze~pK-?wA92?P ztD2_9B6gm~L8P(Fr_GcNxexquJcV8ud9k-sDtrB8nk5XE0XAk`CrDim7|k;Q@Vccn4;W=&DFJ)U4>v%TTm?_eAy>p)KPTL$_H(*mZz8UvJGPbcxH0j++ zHGEcwf;@J3sr==n;1WaMA~(Ln(uBIj_)R%|>W(A6uVVjbdP$r}^oqYfiM+#{pat!F z*Y>WT1D7&-X^`~qc~AY`Yx>7VPl+cJbnGfJk&IXkX>r1sI*Flm9a^$V;r7hixRjaa z=+Uk5GtJ{xluQ3Hk#Cn=D+L+SxvFF8)dOJMwA-fub#=NzQI>+IzJVWWL%E|xxw=o# zj+S&dS+q)cxjISN?%FYWk)Psi>!RPx7+{fEo6)=){#mi^Ig0PlfVz8!UIkS~iq1sj z<6z3H>fc$FOESNWwr*1itUeyK85dmoL|y#uQ*lmgk|tet>Iwvazr*F{)+DYVs})`l zzL_&Q{(S%0u@{%UTgWm61dL)Ui6iU!v|~LB-M+*NeNl1I{^HxzqMq z;O_2FTHJ!W6qn*okzmE$y+DGsXmA>!SSjuvXmKg-p|}=@LJ$9Q#&>S_x5wU>>voMb z=DXf!&gVCe=;;~01QVQ=D>z%n*aX+CeL0a;IywT4-BXw^2$6!9ydRo(#OGt<9!n7j zq0m#56J@Gg!>V7iq!!L)pR=p&qV&OzOf+>aw&|18Mp~xstEnQ21fp$nHvr zZMUYbQ-M!~yX$V7OvqY#3PP{^;FkPP=Bl2ceC5TaZ=}4|>zHGzfB)%lx4rda zDv;nK@xnyn-cY5`=jBN|JV@6ctN&^N}!yY|4dV=S;f-lKRrQ0YaY zjO1W_m(0hj&9{=JRsj+cMsr!dZO>gi!3ZP1FsJP=?Fzy(cGF-~^Qyu^J| z%7|9?%iq+<(5+-k9xh#)a4E9j28Q;gnii`9mL2D$Poh)Jm#gm-Zw34Y=?8=;+XBLqR9xScVut3 zEj+`d{be9_)^=l>SLdzU#=%9ewVm@2EZ>=>uZy-HOPm76RSpqxtmak3AR-uxCNgKI zLu??K9l%EyaUFq{Sl4+WqDK4K=f2Hi#vcDA(%|l1w#R!`W@OchA}GR6SMjMG31iJL z&6W%v&PBT1W9>>+wuuInPaq5>m95{H5EexThfTMNV=?Ayapb43@BB69JH<)&i!pyI zPk(I2QX}8cgIGBBQ~kmOeD6=9TAYTFL=QlE(v_)oE5wLUm;fhrbj%qrEPmKwvkUv$ z5Esk@jQ#WX&_0+>#)ily2GjpEBgF14782$bOPEpQ^Vf`GW>OJHXm)pq8R{6a9tt*9 z8sko`5auf`eFW@ss?4cF;kSlJ(_k6_XS{cA$aY%{kp_ZVJ3`7yKk15H_pmhjrz|cTvOZ9RO26KB&?!AooV8_us96qtWMz@NrLv z8fc|xucl|0va?@%eG1kG?;?qek?rS!YmJ{dC=^PX{3^$GVCfI;?y!?JZV*^Vbhe_s zSIlC9tQq(}LIU)b&~53v^?|K;$lO_BX4;RKiW5Hz&04NcrRO=5H*xDo&E_Mih!3lPJW z5nW@R9nUFIBu9}_MODSSarYU>Hy&fPS2&wVU5K^f^mW05LD}-gQ$}+V8EoxPX!{z@ zMGJEV_Xs}BB0)Zi5X;S;rk_TpwIboFK3m_Wsfk)pHT>YzmImB8b$cDYg#Sz9fu3wM!@n?gf>{_tEwOoO={+OhU zABGi3dQo=15v-nv>|qPXPFvtj zhc*p5Y1Lqp>OgF`TX=p__Me1(HYKf2@WC9O6~bQTjo4be@5;YPc{E8$YmUmy9jReC zDvuaf9V_~GoY1l+{#%E^xliBqdC0#1c=9Ns?PUcRTv|z9@9;NqVGFRuM&gNo1DWkw zA(*+YGD52U3W_GBo2-Y=-ETe?sAEzdi?&`VrSp81_ij)d!z7W5v2|c|e$5OXYD@l| zPYu5Dkg6jAm#lF=xc^KI$~K%n^^lfD)h}~!9kX3l6~GuanD)nD)kS5zTqQ#)m|a&p zOsAGFMXpEU%tTZGU37wqf8PIRSNL+FwtS##xY9pJIdOPLEl;BX`7KFB5xqu;uDq{< z?a(8J%Mcexk0o92koA6U(eyLc|9#_S)qr)B~1$}r}MSz9o*PWUOuw{7npQ5aa*IU|Ok5qagUqhn}qnLrVwX~X(i zS06eh)4cMOHFr$ft0mSqNFswMOLGu@5B41A7X0_CQ|>U8dXaNaZw{849$`mH7L6g< zXCyhqsk{ObCvXO*#Q4#2*wEf4Ooo>5Xin-H``4>h&S&Q-0{I8S-ix;nEcTJVjDdKdBi3cv$zXpHi}i=b!{%bQzBNdJyzm zRg@&szZuFJ6^6|H#@hT;lVJ1=j#z22ft_`vx0&J#PTmAg^?1k*un580cb}0AL_q$Z zf&6b9o}PrD(4c|hf3>r7!rnTeG4r&;hNu;Q1aCVx)QIZ*c?p;4Ju>f_aAg#H({~4t z>F9cQdZF=1VZXl@Q6RlK8jJz9BSn$YdYw)Z4I#0+)N8%L794kqw%h&difoA2#-P#3 zz?WN#>bGi2`p5j`)yiOdF!#ND-75FxX}3zdUBdy|Ys;&u6n_4C@xq6=cay$Z`3TB| zS9|%B#lXS`f&W#n-{L=BzY6LJiuaoW_fN~`JuespBCwInStNRbO%r{1VV(oS*bC%u|5z7%yI-qHh`IHEX(}_-q4X2LRH#-HFzoxavfkLpTJiI(o z@h2zr82GG}B!q?Q>OP>g3SzKV+Dd+~p|0~a^&F=fc8;)|DqusJ@|aS`#7vnj4fdZI zz$A!phk-Ie7bM0T>zgnhWy9kKRGDm2Q4*a>lCVgGHJ08Dmj_OI9P9$Ug`kMxD|rY70XHA4Xr1A*=g$K`uGmi^yC`Q1*BVbaRy3dx5g zjdfxe5o-GI`5*~NbVAAx8HqDR+WKP%%4uP6Lt(1YFY3V$yswLXtfJ-Q`u4*PR!m!@ zY1LiU`|w&vbVKyCVJW0)I$_$QOOih)YdYGVRAz~h2K1@>jE?un`I1$p$p3w6tGHCz zSBmIuOqIqW7LFkAMu%j>kEna$rH_~gyG9?rj80l<;t)IioOh^#22EP1)+_<`i!z&+ z;<`eScpfwveh#K3Pyz&VQa@!~I;5*ZRid;Mf5!KwMg2lXTP|A%q!`nbZizLG zzJV9)uxLEF6?0nWiX(>9Di)fAkTQW7q-Mf3Z^my?yq(5`9Z2MIxIn^HKDd&Hi0i+tFw-!?lZc%8T$ghiB<#7y$+R20ES)Kz z;^APGgR8qwfeyJ89+)RvV?%#K1;XmJ?w8MK)r-K&ZFvu6(vd1dw78T>q3{S{@0swJ z>voqndNCSU@{W*e$+v;s_w#;vK8SWMW6osGRiCqIJK3rygQaCHZaJJrp&A%+!rqi( zF7{s8T+Sql*nG;sq3!Fhj^IEk$J9E>M9dG>4FP-I+Vu2C1G$hnTA9tl)NG2EYjp;@ za4Xt#<+n^>lhKwAno42Jn81Kc{B@uP!TO>)LHCUIY_z?zw?{m`s^Cmyt8J30r#oHN} zBK!(is2sjEsP!9TS!j|wmt|Ro3R`sgV6A~@2q!*|%DT#P$-bVn3YV50z;f}J1Ts~W zAPMz4?v)@oL-eY#4pmXN*Y$c`_Z}%+dQ`|C;!`^zp1bA+$Y zBD|@7zVqs+XC$&p@-H`&^~a6$VC^ zVC*jR+N0{LEL!wy<&f!u$vN5Hk@#UULiQ)0NZ)Rce?*&20GzHnV@*nhTj4d8I~ZJ2 zkj>HYQ9eQprDJ$F9)w%5(|JMU!tTquvg0z$_P;Nmm<&GI;q^E1Ih`fCG_$Wi6jHlg zVx**lXE6$_`I*ID;Rl+}AU zGf1j9Q#-C^G2|LK=UIOpUG+0q0w!|?JS;F#KuxdGYV{F!7+h#D&1?)t$0Fcjs53jU zH9k4d^e3sL3_G^nE+ieQ7T+|0;w!)j77PC{*0u(4AwdL;Ov~OY=-VzdxY@OnEnX?0 zo;>zAJdA{^peK3c z%YMH@+f`V7b~)z3@y=^HyGDAiv4aE9O9-0L*YQ(xOS4}5;3pB~e+N!b7%SZ1kaf}e zoB>Iynol`TkMKaaF+7ec=p&XnYNuO)iWlLoC$Ttr@+7WkC{`$W_8#Vw&7tQS5aWQ- zN8<{GgFOv^?@P6Z#7K$CVABov=qlq?UzRGF4c(6X=8F2@!TE61Fh6QR+sEJOY+F{C z)?HTn8SEzulwyRLJq90K2@W3&t*IZN@^*cywe0@nx8#4nPjo(vyz7H^hC*_MN^*zD zux!6u<>8=sX7p9HlQp_#-g~$7e&{9PB;{3A6KO`2{Phs`j6W<3k4wUS|2LqP2a7VDw6vyGT;%akJKs zMNT-$*7M^8z9d`S^A=-d$em2KS7F9j>sJp_n>k!qS}4Y46-C}Hvzkp!*uK&z+ekOg z{2LGu=)6^kb85y<--?(Fee%74q;+{!`^Tl#25b zNKvUbJz~ZQ@fzNvs_5B0-fEq6?Iho2f=JQ6ogK$aLC(qr1=r-U%aTg%p5n?@u3Jw? z@X-pgqdTA=8Mvo5D&S>BuKfM!7p%zy6+n(-2ojM1TZ?BDL{Ysx?4YjhG+M4vfzGYkP~dHXW?32i?vkid(! z@RR%Yr)``&V=UeDhEzGfidMKmRxs8DL)ka!8w}C)q+dBXk_7 z_aH$Y&q^y!C=Xboa9ZE|dXvWKL7Ei=dv7zT^hX-pjZ5)Oor$eb#Uj;no}2Oo?inZQ zv6?1#Zm_XJ`BnLt)Yr*e$&*{;O@}cslMb%Fy$=+k4QVBS4uue9zQ4!77mRhw zX%_XL`LZ@TmJ)O*D4GJ%5_3pvM-mrlmtPSHqEQ?K_fLP-(9YaP6po! zZ2cl$prI}NqSA7Pgqc1!aN)hoe^Lnl>pESWd4v>%<*i(Eo^xav8(D>7K91y1?xfgK z`ZTddbxYM$sydxiztip*E&W1t;&f!G5hUR8n3NE2Pj%l2;n2jeJB-41)LARQ{TQ9W z@Lyf;{~MEn$#4JJwIbPdhc>gv#H>(Vek;Vn9z>06PVG`q%aZYjEtWLBK5 zO&T@EKMXTE#P{B~^NE-q9?&hYnTJyH_pR5j@7Zc+?w_DLjUOes=y?kA2L1_5@ zmRR%g9xH`t%1MZ+A9{sH8%V~^6f~BF^>pYJy`pz_xsBBP2wD4_q)X}a(^VkI258r&`N{t6hVQ`Fz2M%5qU8LdpV_Xd?JA73>*QrlG+XT9^vefmgf9D^f8Q zt=JwH5yX7_Nm=E{W(~E^@gdQ}op=DrioeCeFGn^Px_klq=Fds!Sxxm{@XsoZ+a^EJ zcd=7W2Je$7hmIYf05hWr3X_8Pej^7|>4u1+%>{gG$S`YK{qr>Fn$`x;&rO?ymN_C}l!m6Q@G z*3HcgCLQ;PZ`TI*t?9Y#xsyy?I6AmN&|ee0M~$)mt_OZXnGyRyFbR;$@abt!aSSanbRVZiR|zS5oP;6I^H9#-3UN^(qJdw%^XL z`CKxbmOr%wapl*}1XZeeVRMgta>32{P$VLJCF(gU?AK?^RrPJDO-EkL09fi+b1zCj z0~fK|``N!EK)pBYO8+W=3)hx7$vRPI^wXuNsqlQ6Zu{j>i)zOKQpD@oE%K&0_wSY| zvrmt=EJ`jQP0znzm&x)fqjFhm|CziGJ^69f8AlY&GfL^+BBCv*tKWTJqOl7?eXsDF z*os>aZx$T~pbX8r5#QgA8?U^-MN6=y_{sh}#o#i(m;C{%!N@UBLTWd(6XHCPeQ|7z z+lr}?L*YB)g%KeduflGDoRJnLEGDIOwi+S<|99AQ1afi9cq9e6R+CIxv=uzh5rG**}*!8e%)dEVg@Pq4nnH@j;QkGe^$#m?6P)RQx*NAU%+O)gg_ z$6J=vrwm`PT~e>*ej{uB$>p#3K538*Sabu)>1NfE%?Cv^ao1KECR;283wax^InXBI zUeU`Y-QXgHK_b;z*f0Uts0?>VF8n_<8XtEqn0`k?T%}pwNmgI}UoKhwU#W0_A6Wn_ z0*V!9mht{8b+Fyo&+G}8zspi*e5=l8BA;#W?4Dy!EM|n}`H)-goFk{HP=ztPGnh1F zK_2Gd%SQfff4=&LosinPpyR;0aEEePLQg5=!L+encwJX-I$|Ho zZ{=i<=l%C!^*tK+iS0o%kN?M6+Ob#uGxjl{W@?QRRr8GcI+pn`g7D1^a7jkv1#e1J z2HPf`=Jl-TpUM5gQ|GLph1@{=g^p+;kt3ZtztDMDBBM6RQJ~?TJtmSQYMU$`+vasMY1{DIg7lv(h* zcFn(BhC}NrjcUoj-q67?>z(~Vm+A;P1`~3>e=m|Ja^NObKonbuR0$0e(`yp|(;zM- zpB&|nh}Vynt_T>PQrmL!F|)t}N%@)I#@gQfvv6k0Y$Cx zcfi8&ET&8S>V7cbn8x~*mbga#q**+s&TK|k*VV*{1grg6PA3V|pdVbv{kJ+OuxBlA~^YRFw zehR<;vNx-=%ST;p;F}!ydA|yxD)fF{X&xZiO{BAeq!^Dr)S`!mT7B9WP8JLjGBsA z?P{P0?{y`DDZ6-fc;`~wwo(4$r~V7It@I;Prflx{Ob>f;8vWs=6n7?(GU)?8hiVe9 zx4PKWxdFP>W7!6!>zuG$#B&L1^3fVJaN1hR+=&J9mD!_=oO^y|=*Pm$A+bw8>j`7J zcaRE}JK=P_8G9ybW z(Fou@ng9w_WU}o4;IX$MsaKF~1UO_OFG~L7q}{Za0)N|WYYypxdizd*M`-ecJ8T>$ z%VWeOLJT5>wX^<=v<*bF{Md+1NlGb{S93@9bR_CtW;e(&oI1gF31NIV5~}ZLDQsq% zWuPm4Ee4F@!%NFKVlCEYM7*8PyfaIkE{;~XdXq4(h%vp?98&1Hmc6)Z&Z5?u!sn#= z*Bv_nmL7jFjw`@Ndo>638ao1MUrZ3i*wZn5?Q93wh}4;D(IxbX@2Q3rD#$OW?NNp} zbK?z)TsLBF1wyzXibwMT@)WgnvZi%jXCHTbM<(8w<1CNjY$?wcf(Z$Z70Td|Y^y2` ztzcOQtj09{ts;p{s>e5{N3- zUo@F5JCIq;qqcTKwvkPeXh&)kgTSz3oFTELm902CuQe_d<9cLua(>uSj@m4XEUM79e3iHyE!mBA5R#~`gV>~0 zNp=Cvm};oB^1j}77wEUQbxK@h4=mnPT!?$cPXSc2oTiW{E!sBsDK&0U8rth z*x(=TZgz4K)p^S?#qKRbhC#x$Mrf>&QngzJ==ecet#Vd-=J~>7bxy;|C3rv1H*x!{ zC@5ECq)+3x$G=c~VBIUPQ+fyw^7yn%r+S_A#Rq&JaJ`L=;gb|5Ky4YXKSr1VV?*<} zR$BJ9jH+bOOZXJvXc=UH3GrSc&Q`emHCsXiwt_qKN}s(G)1m93G5 zDj|YeAc#{jvKm7gE*8eQ-c=g~gNqm+_{VRZD#d?EJ@REtjI!)n?nA+mv5!kc0hDJe zXFY}P-G9OsWdgdgbI0Cj0YTaJw!6X_Nt>wP=z-;-~B+VcPr%&fRoDJE18i06(F(WmcI$R8~LJ z@Cqry9yiTs9>bk?B8;=sY(!#sQD^N#`29w5xA^cYT-DF*jW4b3B$2~D3BAX$k%`aVk{9wR0`FxtF z0j_PqJr`6ZgW$l=PvFMBhn;!_XM2kJ(tgp)w*G8*5S$;~&fRX+ikb77=i6`d1ps2p z-aOWc0QUzbK|U?QLm}T?gpzltcoy4TvsP*j0QLI$ncbFWHGPDHjXTu2LB3BsG@m{> zha{nfv>3VHX^thlG8o`;_{Lepwi4ZZ{-;<@6L}`#pH!Kwx^fDuAU2DR8}q9#8w=>; zrgA+LWPt6zL+{;~5`F0XiM;VzRq|gM6);Miv#eBx;pLu=i>T*gjq5VAgLb(}Ls%e|^)ZK&|| z*LVq5VCw+y(NQYuFeOJ6hNAVzNvnHI6<)Qy1qSOW! z|4RIHo4x;O#Vy}E(P}qqe}$(ddWTo{@soGEm{amM8p`c#Jvt-id1N#)@>+oB-6ay#` z=?gfKSX8P7Z<&pRUbr}8dLxQw2`iCCA)CU92CRtSF>o`HqbH|V69i}QePV0Wj(#ig zo<}%3>u&AdQbFMOXUDxM_L9#6m^6TnxYRq2c8vh9PFEEUs%^$*dc@6j-C94J9a9q# zBXpBTSBX?dxlwTN$NNxEJdVns_V0oGO-EKkT!4T0wz`sna$?^Dw&bT55^5P2D0p59 z@wN^ewwUs@zM5CD7?wArLa0?Dvv`2w9{XP#8+!8M)}%`y?Cv_|iXmi*B!Uk*?ufW( zPDc-cgl3---8n)Y+STDUN+y8X3xd31{A?p6KYv#mvH;ynzQrV9D8n=}J7|!3FqyWg zZJfaluaKB;PB|+TM z`K3L6;@Dudp==nxat-9I z^mBikz?j$&)Zu&3ko{!)2R5i7+l4ByDrqF%pzuY_#ZCme z((!+&8OK~h_y`<-Ash600{W6UwtX+rco43KE%Y*Y?q)+EYRUXjMNBT=@U<5!LA8pw z2^gS_Nl5*KEgQxU-%P2HvtSMBfe@$n*j@ufsW33C}O`-~k z0<>8{>MftWkJMi^YB+5uq@w05oDpwLs{Kt5X7ey=8>aNDm(NkgaYRI;2j}q;6qexuBW!phtG4sB0Da9eS^NIJGpi z0z8Ab5{59vQj!^!xOYHJ%Lgz0d<5~3f6uWSn&o1RjjbEMtBhtir0+la(CKQ?ctWDm z>38MYlflY&j-q_SqBa7EPE@2C6J1(Ci z1xS(nwSDc%BS%b80re)eBsg``SF4f{Iult;89s;%A#>9tlGh|M6Jy8rVpgJz_xOR_ zgRCV9FCtXllFyM74WIK6YxaGvRX8q~-r#xyy`Iy{;fJP$qweo|D>B-T-0Iy7?QWuZ zVjO{KzpA?&cBXjmtWQR<%qt}7)T6Pid<8YQ@|9`izZqdlq0zy2ikPsh6SoY8bUH&IfJq2_&a zA+GskfPlWzVvA-+iIv;ZA!|ea9!Fh*AN?jOnII8JN(F(H3Lz5=p(k0-Sl3dx8`>?) zJIUc2^py>*9!5S!{9OQj0bl-##WBj!PCB4;%d)RG2L*F{V3RG6^D8A4+-<0Nu&bJr> zBJs6?kk&P5jB3kWCR=g{#L9K!*?${~pXv^K{Kam0y`0xh&m?YQW|G+MdOV-{>QX~@ zbmmZbXMkhC7A%NULoVrTVFGQeZMACmL{wf4HDH zxgO_&xhStNt=#;q+K(1WaJs-W>`A`Cf3zHpNie%UuO+^SuHp=5uQf8NwbV+XmjU!0 z5c~3e_#ciO{?A|Wf2J3cJSdZ&7*&Y02+Nq(G0bv%u+zP!e4}-^sr>yNd3`;37gr@U zN7auA!MC%~!?%nt9lJ@qs~YNJMzk!M74rREXf~E!|4!G#+OH>qQ$6<%KBs8TT+$xN z6=Y?b$7-1Owe{t_qSQIoCFn!7MIWR(z059Kzsy2Gg_MccqTng=VPi;YGl3sf65L?} zCe8|PE&GdMkjG@^4CME}>1}iI`7OhrgZ?u2D7v8oF)=a4(l=jy>!x;lyJ|>Sv|k4P zR)I}KLqHiLMA$|oNy`Xp^WH;Moj_f+Y?sSjXj2)Ex(4IXQj2(!EvfbVYpN@&>$z^4 zlL9hBg4zR4Y=cf8G;66~(;Y2D1Lye2)OqNu$l{HqD{@>32P{~Rtz6aetCr@bTEVM( z7xNiH5guLj-I=)wQHJyLp0Ry3=w6Ms#as)AC3;G(MNXB;3UKkg+Nr&!FItBu?`BS0 zf>`~?dnB&>b@eiQeh4#7Pqem97m>v{qd^K| zEkTqkZ{?b&5+BNe*`F5Hupwr=TE#yZI;Um8l8U!DKShBHHn>Mn-exv*?}gC=|5YWo$-q#^ zC?6pyb6Ea(wx(%h)$@s`nrS2wDias7pEs^?{Y#lf7S8tu11UCQ|ACqH80x??zCM+Nn1X{$4_B3{($4g6&!Nr0U z;vWemaX-4er2=gW%rR~Rag>7!mlw^=?Z*z2k$quNy(KZOczfyI{I;u!B2Sm&HFwo$ z@s?gz(nRT(6Rm@#pbLQ~kd3Q1F(mdov&Q0!B1+xgK61=`4Wj;~eh?t3p|Z1t)t^fYe%D$XzxlSW z&@7hr&Fp4&yO=FK71-S!TZv5Gq=RgS(qFeOQ5b#?s__t9Ppvj4Sdu9@`3M2NJ0$Ui zX}h-X7{JK3vjtS(2Ljn2Ubt_*ST-vjp9)sP`@0?vnBB$NPdEqlQU#Zc?c6_(0h#yT6nr723O> z5xzXmuUETBufd?c%OvUkT&bmnK<;63LitrZPLbYPoFucm~x$OU^B`TR?ueq;yQ@$pyJ> z^xg;Q!u0?I9$+Rf!P=DYbNRt^smj56SMZiOGrw^>B|36cQH6X|H-uMMk)?Y*_;Jn0 zE9fV%^y+R4A=DtV$xI&l5T0x|VYU&#{j~7!!D@Cb*nbwxoi+OftQjLKI_o{zqxg^L zMwYy1xXFHyv&k@iLZly5N|4q@5E%l%l8}?M+A!7@E$D!FBllxHh$=AJ$SmU|@oQnf z=KCC(iRUnAQ7gRf4es9jiV9a4qzQgp0eSFg-kx=W&4xYOFVbkvPb3aTTj=@mrQjGJ zQEsahjO)Bs_)*Z}a<|gbYXhP_So6c}`|AncuaUB@9?ccG{6tHRgM1*|#u`EUL$)Va zYtB}@@=^bfq`A`Wrm!;SXYn`Y@rg!D!F;uLBfry|RIbiQH5^-i2NaUaSEH*Q3!a|| zDBlupceVv`Sq#3}4{+f|qZ0H2C%=YkPNOlYe>eKX%q0al*ljEnGram?IaGPE27UcU z;Cng{iKsw?{rkU3k(8u3GpKf0(2d57#PF+-!aw)snS@bTH{)bfs(&~*hK%FM)b8ae zAQY!8Dx@RO&2G=58vj`p%Mf~9SvFxJ)6L6t$PKP7jLfg)4e`>bR%$NImXBOK zoxrD#%JMwSDdR|CD5vjl47)}1|EdsUK5*5SzXD>otuT_l2?{#VFLVrJQnjs(Bf_yW z+-(;+guSdJQ*WmWqg`$Vq~=CP3vIOJeU*ZWBYo%}CqpfOGB3)eDgYIYE4b66P_|k8 z`d?Xgnoz_rp;>#w=LeDtIqsylq!W?jcRVm#GSF#TNUOk}8_q0WX|@^T1kiDz5()A; z9Rb>V=GLk-TgQq??z?rU)NLxA`h0nuPI9Xy9;)y3>0VP*kl?WGsH}APJXWR5Vp_de z&+Z8ES;zKq3cZiZ7PgWu=K47-w58(*bE|X1Kih0^$GpAMA32w0Ylxl{!lUdoVn~1z zZ0tuhwnXSgkZP0gIC&!8M--A9RBkQf38i&Ve20=JWuhnpnS0Yp1h$YjpV2o#$&&S# zXv1glFG5j>GJvnGTVBTZg8*;MZ#%_|M5%lUl4UBE8KAhhmU=6>i457#ca<6R3>EUp zHNAp=h*nv&S;GDhFdlD2h_%lJADPFR3fC}-lugu{cYb;W@KhGB;9p{YXZ|JgWBrW0 zWbH8c^oo_D)txA-P9GwL#PPshP!Wqr*8~#q+F?ou`;ZQQY?k)d}dDi4LAndWYz7ENf5jt}T4VAL!@O#tc zaT$B{XOtJyXzH<`XJ=ilSt4a9;5f;Ry8Q9?<%0#}`z_XUyXU~bWrL)_z3(5q-@ZQ^ zuHw6-dKQjgFNlIoZeCtqrIqI*|GEv$j*gClySoHwt6ryVl+K&F^15&YjYrJAji=ZF zM>g8=*_jHiI;9HflOh9B%e9L1Ez7}dVVIyrZ_zeN_Vs>n76Xi-U#cmzuJGc|bNqRL z_FdY8v;*BCU`GT_@MpG10IGSv0)I=fZAtAvB0Ps?hs+aVL0_?q{$M~%Vkr#ot*;!d z-&^I-Zk`Q2U+-Vs#hIttXH>CR0Tf!MaE1H4 z`26p>K}H`6{rB9>a;|~p#mYR8i^u%kHp-*E2oOVv{_|hV_7|t3WJ+111S}GTneU38 z8BMj(xC;`~tl8ZA9$s%0H0a}3`jXYABNp+0EJOj+7Etzs#kRlIEmjaW(ztr8+sX6Q z%M+rYFJf)^mTMfpLjUnp8mnvi-j>QG!HW=R3?=7^(;Vr7msR!e{#HMDA(OtX>v}eA z_xk-db&Ku6?3jloJMi}}BTngH(k0=O;@LL={%Evr{VRe%4*VnRP7vWPLN^i5xN-}JxF^PJx~oo}O1K8Uxycvr%x^=3#>dEWrttceaZSpVf= zNSL$AzxQIyM9lugK5xyI>J z$XMR)oZZX-HlOcy3=O-HwuY_=*TAf0n?1P0ZkL* z8{T4cq!;ZIV&3OB?|m-noTsbwMrX)E8visoN3ahP(nBesf9W0t7jf#VDSiR06XopY zBtPRH6)K+kiRU;-exOEUhjuDQ43q`5Bxm+GLC`B~oJ1N%heTguB=cng?$ry_J2Q2s z#voGE7e1kx3ZwEW9H_J^;6g4MT7--rp#_I)fTJUSr4|l8MM^L-ei&;M$=w!$!X|s; zl`sxm*S@dk)e0lJ+mv?U+D;+lwqN43410v)Fs2M5unUEK7ummDmA*T0Zp~?IpHmsr zGIndZtkipdtQmbb42VLO zgz1hbUlpBKPB`1tDutD`4Tfs zm0Sj{Z9YM4=ES2`{7@}PL&{H-fJuJF1MRW9Y)hMaKYzslba-@AaOBXDN7>$yB;b^@~m>4>juEj{YbM5ZP^) zco$tBr$GJ18!K3~$@fEG>BePGv)0$nzUB6WY6&A;!aACD7Z1dVIL%i?!IPY+oAv7d zx4lG4VLgHzso9}@ypLV_C^V31K)EaGw5u}gY@lRazyH>CcKy|`zFTsSHPq zRa?C(cFFI7Oa~d=DB2aErdDpfHar9oS828=B0?I?_%Ds0T8HFzy(N!}i&w(eub$nu z-Ci*Wv6G8`6W(BKSCT^L+StW7ns6g~;P3S)nTybYL;w7aGrrj7UVCgCwWl0pn!tCf zv>XUA@A%!?;i&s>qN~pz(XwNcn6qAs8|tmm6UB3UMWL2jlOj%QKaZ%kv+? zxh%rmrRYIZc_l;Md9@n?^bWb6y1)(q!7ofq{V`o_x%*$}0z_)E{c~>*FQyx|%dakk zxR8)i$+|<}Bhs0~gTigP;#dKNk-V@|B90A$v;S2bt5;O4Kjbh{(wUY9HJ4Rd6^%Lk z-61_m5Kr_gMd={MM+;=FnwthcYo6W*5MN$5vhZzTAkjFV7Un<-nzk+f-(Ws%k8s;! z)6>FO6$ql{ni;S}rD9A4XhH3oAL`@YLeNpi3pdt70m(|g>*I*WborPd$v^u&5r?fX zD{-)l+X|e}=~Y6AN7C!dZy=7u!zHKZz5ei)0RUzTBoMwoy8<~w3`!zY;!`yF)ePYKJsu&ykdDGt&5nw3A@AVj-RkmDKbhTsc^ExdN z_DDmY@weXCh;GiH#r;!wx@l11i#Uw=hz&h;UU|Pnuo~*HrdBCJPpv=uCJYe8W?iq5 zQi1o$(6t5CJuQVTgi0AWeRfGF-s;BQ=H<=GX?mm%xwG>OWX2;)i}XP0zQyYEQgSFS zlS?dnZ!h?VIfmbS6r`C(sxis+hQy9(%dtJ)Q*DNb@q+cB|L1)Dpjd8c zU-7r#)L#&-8ou`oWP?VSE^%yuY&lY?W&v>6{e|5qySY(C5&vNL0Re_ z0J8L@x{Pr~!1(P8tXngKRzwnAhcmJuLk1t0MJ@UG_njjHS$T5w zXIIbQ=D*g`k^wb2!&E8t394P;?Xham`L{6Nm{%x2=g(cCt$Tw>6y%wo@A7}Wv7Xl= zEqq5Klgq|<$J&j4b2q93{6t~1JBXE!7ta4N+GE)@Rr47zwPGrmqD#0jHU2|F4MQks z)>L0@C4#oFvP+|7T3Tq9x>zKibk0`}$nkxZw!%L=>th*BG?O6SGD*FGWG`Mb+pZ|t z`p7>-##+N2qoXM_Dff>LF*Q=NY}&7XYxU_J*rGmS>JG5fS%W`P7yuEtvGkSF)oU)g zufIGKX#C)UTF>J~cGRG*;XAggQWYb`{XO$6Ul9HgfOw8O3YEHtYcpLpxzTnAsPn*M z{cw-@u76820$vKbqe3v-1tJ)!`2w-9OIW`E9z}&|3Rl_~j8(ruj^?y78n0CW5%r~^ zm2Z~q4DCGjWki-WJfhV@DbylL>>lae7J)yB+mkbStwkmv5et6}O6l1O1AxJJC`(<0 zrTm3ev$~r0+G@0Z8>)Bb&aEl^zB98T84)-iyuY2r+1sS>Iuf({YYSm)&T8(^U380q z1H)@w#9Grt{h)3RVv^qy+B8^%`&tETES-7-N^l7j{J0DuqF%wALDo~nW1{c&@}aBK z-9Sb&uin_j9iTbOV7!K5zA0{Flcq(5q23&Qg+vIsJgrAkMHeuG-j;G5!l#`mD^~QH zoWc6_TPMW<|6<*Z^c^whNf$i5-{1UqjQcn&zu>OOzEiB^aoySSic2zj3Do?&dxpsy zhi{>6ai_SUyp6J)N|6k@kkc4BxrVuSFLNaS5hKz>X&D^}@Od8ReG@IbE=x_2i#U~7 zckPcAdFYPTn=Y^Rqi?(EE>9GcH3k<~^gS}r0DTJpbO%So1QWAHI!AGT!?GPfTO?D{ zBx!Hk2^0q&WY<}8Hp9N|b{$`y6#PLt!{T>14x<>FAd@K(kp~Zky6CMFO8@Ors9@T{ zT1fkY+ui5$|T&HxaaJ$vcl4p_#-5Vv3S-ZfI&N^5~mwr6H-)u?_Q9R`54c z^QRudy3zuKtF;#bx7p1KxLB`qz5yDc;3v`l2G3=HKA}2*VO|*&VbnE{l5F(w&-bCG zrMF%PUs4~x1gI_?pAC!d2tlx8oRU1{atS?Qwnns?2FFNRaXTA;;*4Z%$if&vi&*$B zQ>l(ONf*UZa=D*f?$@D*?bH3J-CpHqxQ8wVq>B`F)$4<a`=R*=;j3$vnjr-EP3Mf&~$rTi8RR zrR2nES%M;PnWS>?Zyw0_Wy7JG&CI;kNDA9a;@iyL%*A$HS0xISe6iQ9U2kiQ)N=LX z%B5OI75&PZ-YaNLf9Q6v2?yQ5b$g(5^{vp5ZPwX-NHLGH!&Z2sOHw6rB8eAy(>oPr8;C_!fkTx&!2Qf#x)-O`llf6& zun?7#MvOz#4yl!JjjOK>(|sSFA26H)dDnWYH5r|Lz4yNk2!trr%$1f-7^Z&-;c?&w3;`BS~^yJ z7>UNgsB}|t6zu)1vYn}gRhUR01VVSy*IhzfWX>yxxTg{p`>S&Q{U(cNyXKX_Cr!onqJJKhwP2T~An?REkv*6M^^bd)j%Hx)goPUqV0J7u z0TxiPftJf9j6b=6QNYo(%xEqzUM%kgmgo;LV6d~Z|FDI1cDazGxHZUmG|SHN6V`m@ zdqYQtul986nY^_77q1BaCU}=8@iS%dPzBUG?A*xkNUvijg;)hPb{<$XpsJeeAhujW z_%OTQ>}aKgyCUsoe0JSCy9p9@jnXj|{R?J)P4_juiXOAMHqoc4iBR!s20QG*%PXOE zf_6plhJt&=_`@8spsaUGuwEEOfVl`Ab19|ymW9!WmrkCBR%qDAapswn@+@dn!VLRI zOcdr(BjXS0vZOmu0=dtwhBg`KkL<8GH!sA>J8ySplk}@;h0xnvA5_^YHNZ7!G1JgI zKY=$FpFWtC0&eoaY`!3)q{lQty+tG}f?T%|Nx%+~78hsy;3JjIJrqAzBUks+$y}1V8Z92ClTvMu=1x}^1&qvWF8P}q^qWl9KWVITp+E32jT#T!^tKH*xQ9*h@$cemhqj;I^+()s)C)QztQ^eITvszX@Kq8Vu#nuTf8Dz(sC& z!An;z=kB+V2xdH7Pp1e8{z1Yju;Qf9l#4Acm=fh32Bbn=5nApj5@N9#m(F0~Lvd9#Upw#5{FN0| zXo>+sa$<5ppM}nFvQOjB*Q18B5l z&DUNeBxo2Zn$1sMxcH4%;z@ZA0YB5VTs9@)VBU9o7D;_@+#@jb5x>=cVCbF{f%nZ~ zol{cdY5$hYPZ7E&Pm^={VvThEkEDxBmj0V*L6RKM?Q3Tdaxnf0iJfS=n@B)U89!V^ zwJ;wlO{A!!XQ9cy^LhhFUu)K2^pkN$Al_ z_{gDz6!YIT3^iD3MeMWtyD7g) zxTe$Q`|97%&`<2@$6;Fk*%zC0y{&{W48g^C$_fT$Sdi?wRw(puj~KHFpt0lTgCbmH z$VvZ3bGfjWv#W*cd=AsXHn+a)^ZmmA6{2qCZ6_SH3*UQpOc&QO>b1P&oix|^G!uBB zR`mFXe5Udl{%0SMe+QgGNn%)3c)>yBv}|zuEn>W44%9jfP@xekyu(8a^n{N#9XU0C zk3vnNEfFlEAU_^Gs~wIX7hGa5cq8ZdHWWreD~7-wu}zDPYNq>;y=#GlPK*i+|Bx)< z78{+66M{3ix*G6hgUO>%3uB6_=y@PjE?HyX`X_dd4J`>`}r zC4zW`vW}7b3H~Tl61T|RY~%BQP5Wh?!&mUv(f*fx1D(Hb)G;4k47oVv7C}a*ttu+7 z3k4++WiNxP0Fp%Nanslj7T4kI7>C|1h%=2ZpzpT4+}hN7%q-5HG)0x7r$r(%KR+91 zP(trUN0!w-^E|o{R{1zv!s=j}t$!vyMTc%NMvJ)7^=ik!S@AiUA&LE4dU*3m`1IWD zx?`}$o>W7!_Hy??iRr3n3G{nLs=sH%fKw5ejE9m)qdf1A)j7x8g6wCiROt@ zw8n5~FVGGD?(8*&T~m~h!jyHE@IO(J_Xyg}q#onE6)y=Luf0rtMP-$FwjJnAbfvdA zEO_E+!fu{dBm2Dw+P83?uq$-tbb*GVIXdSu&K3?P(YX~K>Gi|Y=_{ev7~#OLUfpmrYl{dO8s&;ui5Rv?_-ASjb6DsJYifMU z0O&nK#IK4(-+kWdx2k$Af0av7a*F<{dwQ1DG3*Ekh^@;%M>h8wQ`5h4mG|u3^NXqO z(XT*>vxCP+Q>cJr-K3}-3Q`k+JG-w40mS@stn=Lhw-e{mj-P}|opt)YB`QAjbS)zt zVjYgBOR&37hmVQZk(--%hR0e6^)UK$zHojbfD6_>tDxrYh8zq%d)@-bnY!zqdsp< zc{}&9i)^7jCwi?g?;1Vj8J$H%s^S0Gy>ZHF3|#HM^`_BE-~97P-SuWR*!qVo{)rGy zE8_+$FbQU}j`AHBu6F}Ra8p=N2@Ru3peg!&5JQX5rYSa-g~M{5$YAE>ed20> zx889;9Z@YIVt(YbNSKTy45Qtj`2<23P=D+k$*q6R+i#Q;0#zJr9I#%>rGjVs$D`a< z6X5;FT{nPC{PL-1DHI+!Q`BJrlXS)i3L|zRje8BiJP2f~<-!CMMrRy9ct*F(h>#sgR$)mVwuW&xl!ebMiBm)vwA1+I# z`*5fd4hdv=5nabic89$35$~bjlGL|hSjf5Y9Zw>?&)~bF=NsCLUVaNUY=3FvYPzir z9|wxegoM5yQ-(_AR9S!}Leijkd~p+FKA)G3Ms0pFK0P@q%E~G)GPcs?WSPy37WN`i zI6hdtGH2&+(L1TXr9X<|gcJoCz_hZxRnkh%8-~-}{Dr?Pl}U&?A${@#K#R^kE3gN@ z_(EWakVQI;lep@!FKuB26m&#=JcFOl+Rwb9D=P$HrXY@7zg$6!WTO9S66rpU_32v( zP&HTUsLi%NT|`xOTwLCmr#2{&_N*dW2A#};x@m)Z=q%}ZjOi2>Oy^&xMwpgrj@?>M zQ#ZJ{rXJZ6q<%(y0| zCftj_?1@(hR;Qrv=AHltDJuJ`3n_S=t#>`n?sOr2CMD;y@uGtUJ`-Nprl;!7FT|?H z8doNKEO@c`-K_eS&59~heT1MKVAk)TxHeFb??P}~Rdh0{SbIw`3%{ioQOFL+e)np( zs3;MtW)Z1Xv!ofW5bPnm9fGqV{z}V7khs~_hKgc3W?{(EIJ8!&+~d_`ChB3ACKyce zmvebkwE?+ALW4JPcBq;SbMF%@sbya}r$FPc5we4^PDr1|D}wK}xcy-xrzO=-g1u~t z7w*mB`Y0NTSSDd1rKR(#ThI{$8saozg}L973A=j>Ko1J93~o4p$g;=I0lp%<@!3hh z_xi8p12?|6kkh`f!)li=sV95;l1+{$&^K$=ztk3HoS-2lw(+MsQq1d|XF;*>U7tbm zH!89|W@Bd(9MwpV;+vRPxI>~f%&XK|Ig6vmZ{6O*3)k*P1KTxlpmEU^B_chSgp&z6 zQ^8uj))>&pzb?|Q6*=*I;Tp4pAc9F1SJ%(pZ(c^M5SHD(diM=%e$Vg=CObm-;`Ozz z$iEe9&OJIdN8X4%oQ8Rf^NG!vi;M}sII;2~SP!wQD$WN>9o}&$v2(dbg+21FNM)(c zlzj@2=%ZUrJWFZGph6eG5$|qR!?ki;ykz!@70QBXxTDiWt(a|#@X@@$Tye>zF`8}#~q#g|5FPZV|K#u<%b zIbVCxHrbUEqXKe4eAj6Y?}ufizp*ff3H(CW*xXlFcU1hu^PW?^J)2#1Q$$`lsm897 zLY^>gm)g?%4e$IT8R0}7;M*6x?latw`-JyeJ8nhw6n#9HL&~WaGJLXf7G1WMCEH=? zZ;3xDuk(g?duvycGk#g|$o5k0WXntZNQe9BtzB1Nuc)o$ds6Fj7qO2oG542f%sALq zh#R_<)&MjOSy7c+3HsG!7z6eYFIzWSwu`P-@;^J$=^HWsbC`1>A$DiA-&Hvv(+1O9 zpa;7`6(|nW>z^T3f-|pck*t$#IqdC_c)#yYsVB&I(0FvBte_q!oU_{^k!f(Eo|U%f zy|?EN;CAR$2v!1RY}7^b*<={p7J&od?7V0@5BM%Xr`yx6kV zcvJ#Tyc07vuQi}#*YDb2M)U?o()Zo%HToN#$$ica>tIH23!7|gB;0{!T?D}Hk}D*) z$W#CG2zhU?!PH(7zp)}w4UMYpcr9z@6psVh+$v%2p>`p`n! zqO-|)yTRSPNNkt*YVtyH7+R6zl)5BH_3Q9^@G9e70+7 zn3n@O88O*JrIX|p-6l6|8vOifSt;Q+ap(<-<>Dlo^;ZFF>ps!PH&m6_?HSocdSNe|CBt=NZ3 za1H_g6~!*p{-uZ;3O@9*Wj$y3-SaN8*`bnxk4b{1%r-6p?R+!Z?7`x0lRQAM?RG&h za)ambggk)z@%r?E>%t}dX`%xzIQ`c?Z5o*PfpltRe{SWSj~{d8_W?V?hut?}_-}Hg zMukvim*2YLB;tfe8W(>J(t-cb#H0Z>QHX9jYW9#&=p)Dg(tihka#b0{5u4!7e>Wwd zlG=3A#?dPQU3lWhMct4Qa&k0zCG6Kv?>~VTmlSy1-0*6WDVN4GE)++V*81*TM3^7r=Q) z{SprAYp<^I__hU_ojwi<*_45zyy9pzM6l{w%pV%8_@!)2kq zy}ia+Y+ER$wfRErf-aM<>zvo2nw#1nSL@GOVPei2yldJ2y( zobbCFyG%?odn3Wd2%C}eg9f^UIc`~qP2Q_>2T0tsoXGprn~@e7FpKYqO}W;_Qw;ce z#oo7EmQ+)u_*wq6j5QzUs#I5-Pq+U(XC-fkPZ{S(9L8tk=00xNlVc%qAQ7R9p(wcO zL3IwS(kSIaegEhcMuA7>YO10pAj=TqMiUCEl+B4ePd&)(`svm#8sJE(bd(JcSP!cG3o1S zF`ds3dCz=ph*e+kQ~bkVeBtT5NYZ?hBs^i8xC0Nh{j!L=$aBqK(C}tYQ8H5k9;xO> zRk{7Kg9=k0=cy;~hG44x8UJA@?_uZ$apVazZ65nSfX zGFEy~qzXRUDS9CT@Z(hmv%LSCb5ddy^Ja}I#Fr@^Ph!b<^Yv1*l7gxi&?ZledB{CH zNG>k(0rq2_)L4x5%lSWt=!vH@A55EnoPzaqXJpH|)mPh0)hqT6Yxj2xmaccLri8KC z3b!z)6VZ;jeV1gJkzFjKBQehPrI59Z6$3X}4MZAOeWzjnk}5Pp?BfJ4Ox?cRmU zE1$g<7gYTnTo=m|LZC#xj!b5`^GC?bztvVtwdL4L8Jr>pZq9QZemwEsEMfUzYD;?Y zGW5IFYX6mf!)CE=x{LsxBJ6DAA+ct$io!W%Vt<*k_}&Xp*RxMV~6fJ5w>`36bKo(PwNFde*{$+bmLhCpQdq} z#O3E3PP=MazCCoUjiKs}mtkr6)poyn|7l1k5i*LvvdH_Q5`kj!jYRVYz1&&8r821l zQ}U-p|KC|YrMN~3=Wl5B!04GWQn?yIACqqOwNM6d6Dd>s%W&Yvn)Qr<)RgY~=~LcA z6O4_JtXHq3UcHx-)+XxraQ^}7iQFWzvW|$eWWd}bIw#ki1I3?~6cn_*3rlG8cgYqZ z{|0y<@2-Tohxtax(ikLj8`$d6NqW_B-tW=!fj!VBsC*b$;UAuN8k z6Szz}-9Nsn>T~lFE_8dqj|y}nt5h|2ojxs|?lx?BI3LhV#{AZn>@N0Cjhfu_yi-D0 zS8J7YO_}M1Q|OT>z}LX9y`}yVNU~#Ldb8ji?9=eeEg}4mekX4sWPhK4hYKf3un)Vk;0u+-xv=hR;=|T-0%o z*;#9cg=~S|IGq$EQ?`*8HB)YU8_^^6f^nzwY z-;SaXz`v7d;i}GfAv7rI`^$2U3gyFuimc+dsl4i5bzw)m4s{QT5>(u!U;#Jvr73~y33gH<1zpN<}({$vN z#evN_qcjNnscI~4dGpn!8^udIrSZKVr2c4sD91VG$os_E%BW&Ypiq63f3(A3 zG=ct+M?(lt#8=x{0_olFB`(8U9;ra{D)xSdy41?ATm!q*#^oe^F|u1S;?)A_Zqcn1 zfZe01Qld0hALSKijS-0}cznr3+ik|>^ceY2p3eb@KC4C{5j6D_mX&b`Vx#XMX%SKD zTSWl2ZaOCf7z87>dYY>exPhJP3qCO*Zx4FF|Q=s~BJ zjfsN*xrGyH2TLak-y;}5(+%GOgwN5QmFIo`1fqL-ep-9Jza)6xkc?@0Qj|Xz?YI!N zb91{O0O~?6+$0fhp#EDFjPdq|%8sk1>9t$YK<4(xnZP@>|6I?k5`jmSv>!WeqC0LP zOwLD7?w`AdCBN~JrMPI zKksS3HG9Q1Gw7BF&|bs?mhFWx~j_82&BgmuKxF?=9#DP0fw{r zr$w`9+E#c)$DQ8um%FmOyE4hAkkj?4=X0~Ck1zKQ%;cj3_qiX7E^#`}aMrr!^4f|6 z;-A;HDw|fL;tZ&sF7uvd)~;09MxSr4YL(u{Sb@?kk5cEHCQ(+?qY4{lCM|GwJ~rB)I*6zD_;2K+ncpEaZUP<^!Rq+(Sp|h`=K&b zT-JkKd<@9k*SYyXCqUUB-E6kDqVt)$EPSI z-#(TN4=Q*bbs(}X(K4aYK7HRBZh-?53HbEP;q5{062ec2#KFm>K>}FCZ7EwTE!-v@ z+yLaLJOGpv>PsFX=IQojCOydBhv*8k*a^=1s|H+TzON1r4Kt&5945oGpb#|>?+?f^ zz61Drs7$^7jBfzNHZUO%lM#{bt^d@lo?sb#MpIN5V*PWUSgm~F4H=1>ka`SA_ao|@ ze?jb(E;-VmVEfaR`|;vm_fM7#CL83-r1VN#PV1^uih%mokcv>`ZL4RF6X5msq4P?< z8RScaWeWP^1|M~nY8L^kIxSqjZU&QZl7#*V2%41W&NVE^o|{XXnGWY)R<)(=uJ1h| zgLA@WrPMSDe)eKL>fnNX7I6fBV*O%xzbos)sj;-)i9FD&4avokhuSHsf4egxuCum@=iX{16XXruSPTecwmbrCvCcj6|~ zN7Ij+GS(DuGHu9cEs6<`|8FPDMfUY?!INQ)o`ZHwq4=RJiQte?7+upWlXLvssW3 zD7)zM>K$cKi0C=I57x%~3K;^iElAw-ZVvfQ*%`$v4iX-OQOGRd&=ILsnT1w>?4#!uu{T zp;m6q0~vc$d?TH>f9s>>6GXrRo;X|mar`Yp^i7^xoZ1W$uVZ~0U_6#kDP|fuB)jb; zAEUlaO)q67h*qUfJmZMV6=}!dnG}X9@Z)HKD`7LA<>&Y^wjiSs{e*k+FD-LVGM%gA$_q-us)BKvy#6w)NNTSJEES~q9SX%eoj$JX3$8?d z7Z%HTr=wx}+w;4wkY`z2dYpb;uYdPhvjQuoM(5szL36*XV0!uaT#@Y{Wl4fde|Cji z2txA>!Fj!gSZiv=$B*pnWwWy83Y9Fdb}bn{LpIX<5eW~kaeo1qGDCxIY~n7}qJ}WO zS-1TcBB*}U_sd(#A`q87My+YoeBVd%8Fucr?5Cy)e*u#Y*I00OWo*Mw%_^;XaB#u1 z%0WQdwIb$`%)W}M&XH0Kn(zk)YjrjOTUQhg!iCI^*j!M7zhm$b@>}cJ)Jw^UBpgK)c)SxYqO;_Qgqr-F>pf z)eE5(sAzuM^nAT0(YJ{HyxsATw(tCW+>rwuX!W-NoGpxHORO>e*g3ur4YL0$%-a{p zw(AW7 zM!`WH<3|K;&`6Edc7N1%qvq@C=c^9Yj)##BAkx#n_{V<;xrB@30=Pr{*<(8MTIJPA z#O<2Pgo411>3`)`5FxL{Uv2jUt$Dt5XY*Wg4xF_~uVcWU?Rj@zp85HF=DFiAUgpE@ z`ZlOi3ZZo4@skSG%o^7Za;ZE>(&1dS@GAJ0tqr zGCpIsye~dV&w&fKqqNRfem1VwM{OTS7!i8=KVw8W1IZMcXCkr~wZIR+R ziV>p_1&_I5$gQ)-g=it`Q4K9cpd;!3o*18#_RypMsRr7imYz%DF;Wy`_&Mh%I2Dc6 zyA?*)5kzO>@0jzR(ZH8dt|aAe1B*gZdi*Wg6EP~66H%cDp`9n03#3ye?8WS=?31Ho zONTja$xLcCWz-w?Q>K^uGR;O=VH}b6XhSlIr25L#sEfZK#xdB+9IGQ$9qU#(jqwtSCd{!lDRD!5)=)HEI7IxFZ>Nk^c*7L0!}5nu~i<@3uu8Yrp)$4rLVo zc2tq{JNM}Hu(~ZZZtw6|)Dtx9R>g&iY2HtQW8#K+U!lLQJSqO(GTZw@LTO1t>0!Ya zLlZMtD>`x(NR>gz6HwZKNh!dE^D@*3bh$z0owS3nGdihph-DYj^?Kr@k}r7TBXDLJC#Gz^;TB zWtm&W1^(%$jng5Z;8o{CWO}R3WmS5aT)!YMI}P?Yt%Bd#l!}~ST>5^twd7aC*B+2! z8sL-bxEi5ZSk<~0H???c&MzoTdv`XUsP|tB3=KaDKV$w4dTE8oKnVr|63&xiI|(w? z-}>#}1hkNWo1>l#iv9LCscWi$rbxZdnL3Yuar z8LrbM`2^{S?qGS|HC8VDm{(Vc{=XIzl$2|cvL`1k%99SZdcHXFR_f_Z8<{odIX$j9 z7d?8aY8s6(n9$FFCw>Buy8Mo0$sXxDg5TV&`>yx?fkvlYah?ZXEborM^&kUAvlO0D z()C)c{&gyb@Px{~wdKykO%DmAbR1n6lw}n*do$A37x1OS5j=*eGp*c56Dwy@V7Jm` z&5XG}SiM0~`&v~4Z>}647Aco(@2^zcn8a?SCPbw1u=fO^95XgIg}NzA4v2*{4j$uQ z$2U5w-cDA0Fzqsqtu5D@oci~(nqyp8WBptCD2=M|=f#T9N^^Ye!d%c(UkQ{i9adJ@26>v9` z7stN=hYbvwwa-iZ<&{_)jepkZy-1e4P2Qh)T9C||n{~Z9G>~pQ{|Q8#PTNRaWYEr5`Pps;q@KfMQ4S2~)()?ZeHWhpc%By1 zKEr7PeMUT2y_ug>?q6ha0^tolD8cPm6xGU!Y5R(c`9%!=m;Mwh$K2vSF`!;JHR%Wd zJa?o9!nvRNXaO+42NvAqh)V8(lLxRLD;fE=D37=mo$9TDTaj;2S& z)%cADY_@3q?siZ#dw9LVm#aDihVPcid!3HR1m|WUFcb0DVkdM%76<>_KlAv(x*z5d zXh_~?6QjkIx){MD2Qtha;5CY*f7oo;h#>mg>_Vnm;!e3!4vu2^@#@VeqGT+YD%3Ti z(GLJBFPhVH1GrS_big#;`Po`%QJ7peFgeVl2 zyWv|MU~h(@7w%(i9n);0m>82B>0^=*Qp}`V{3y*Yl*Mt}OPbt(c5qeLhvWktb05(@ zPzTK27R_+=Zog!JGQCg4iM|H&%8C2{bW=xv%DHz7b$?BsBPdy^HU3U~VI>-wH|U}A z%vMCvODfS(;P3^_l2maael44uE1mBISnD4)G+csy*VUV!dAP(BBLmYI22-dwl(bN; z7xw5M9aGaO9H8$TdM082(uX-{9)wNbi*gnZ&0%b1*yv)PvPbXhFF= zG+gc=ml}CqPcASGErXgkt9D6$C#r1|SOJL^&7x%s5^?d>f6D6WxU{@4MhH=FR1v00Kb z820pVqB$lS^gf?&meOd*t3`K^Ll$j{y89l7l1YyFi?JVL*Hx*wEyPxg{Amv zqMY%Jxul(|zyKjpO>8n*1&-nzi&HZNRZxL)9u9@tjD0Dt{$ zNP5xFvD`{?N!Qauv-c4Mr-kgFfhr0@vJJ~-%OEn#(}A|=3vVHm5}(U^4s5#L-vDd~ z-5YCM31tAr#SpOW`Udx{^l0P1u9e_SVG6c6jiVs3Z_tPfjaf7i;QXCZQ%xh~ttTW} zjbOJD%k|f5`rMxctUDNPjq@dI+hifay|#R)en&>1!~_o5g(fbvdF7zbe}qoa+ zj-svKWqtkl+iD?-TJ-C5nAA0C5>aYZJqc#yOzNBP;==E#Tw$qXwhK$s^+j)_=r~x_ zkw2?g5N-Y&-{D|vwEWok#y&^Bj@x-vIk4k&JjYnP!{A+J;+t)n{jrsC@e$AViyXJp z$LEPAPP}-TU%>1S#{dB;QG>{iPh8?2=VdiLO)Fo0TVQd2G|f)&?|>e?<6QZCpJ+)` zAQ=AnxQkAQxrjtBI?M&zK+*t+gwyYenae-IcOuB<+I`l_aTX)oQr(3y2}D#oAP89H zHUW8i$~jBAtrP##n<*&WbAnI3O}#MeYs~ysNu{f@=VdH72bClGQIlR(Akn5Z9M#%P zpON5@#PN#-@5Y!efo)pMH%HSg2}8bsgQ1Yzx^DbM^29`x53h3xv267&bjCS5eOE7X zFS}nBpZUL`lxB`XUyt+w9_JTp2>-RT)w{W-orv0$Y%SaXI`F4I<4yPF?R64 z74`hSa?Qb?caO0na z`Ao-`OXv2zHQt9;rXzI!2U~9$)mET(>*7)zTHM{;U5Y!jNb%wlC=S7)6pFjMJH0&dn@CXXi^bi<)^nY zCWlg6ZG(6_g@CNzzO`R>){~F9){5vQQ{@-}G++whcy(bW`|fLpzb>gc>G2EzO4#?5 z7YpF3`rTR1fQxNO<}a7Yox(3YY|oP3Op~gh?N8Nmn-?UTv1CcB|9-E4oPbSFqo$CP zApYM6Dj@48WB)Mm1}&^ zhHNs`Zwsb>_LF3c^!q)^nFnFO4qgzL%P#jJ^l*ZGC^urKoEWXY_*D+~pd4sMGw z|GDpXy>hmkL>EU^^LNQDq{O<#7^*fbCDk<(f7o?kx2>b0aOq-QC4LV*9=KL8OyIiK zb?6eC2q53DK-jl>RNqB46{)^IRw|*wJ95P4rpu~u#0 zdgFqQRmOWK@$XSgm#g$pcbq?sg8~V?bFmpVW=$k8#9ux+z!ZMvdkmC&TP6iafyG*4 zz8Xp?8~Uf%2dJa5RA)^60d{hNSyotc6i}iIrm+8k8VmmLFBv(`tqORAV*|;!5Fg2P zj7B2Q7AHT~M(kaf4!U}An58-gKbs)bIpk7HQnkyWhg_F{PyNN@`Ufo1(G-D0%CbRf ze?biXJ(V81a;6@50mkfuExM>uv{J>f3)))F8CW(6U@yN%v;6qi!kSQ!+ zFpz;#hXX=t2xB2SFjiiCcfxNEld66f(@%lIIEF}2e{Dl=K75H)qdX^-jD_-z98?is zW4kX)F3N9OL!B<*iWFap?W#p%ql%1#9Nu5x97^4-rB7s#so)Jjo$O4TN4Z>o`$+D1 zR1}-s&)-vah2t?X?QbVV`r^U5jIdnLAdf%|`7De~V5yS1<1Q!+P zWkEys2GNMzK8%&Un_cXiIiJ0;g+8zGFDqZ`KGw{KYwCpQ0t~2_*c= z>Sm#?g*1t%@#N*X-OF-v#>eO9pbv~lcv%on@pGW-nk3^Kr)s^?V8SV6zfkxeIu4E4 z_EyT?PNsR1E?;srBdco4-1-Cg2@d>+%#G?Caup;(4`sBe`{V-k{s1fwHS1+zo$Bct z9XmJv*^Kvd=2s=VJ*eGtl3<58jW>1u9OuB2T9PEi~n@|-hfnNb(v>Rw;i4+}q&8AmySPRH2= z5_Wk-s7l!+xKC6%NLWhS&?Z%4nA{{E2?RvbUZ0!JRO!SpkZsev!7RZVq1zUps4-kM zJk4>CS#bj|DmB-Fg!3!(wNH)Wd{}RKA{Evz$SiuEMHm#FE0$r~^+*dZf`tXPuYK%5(@dxr$fx>^u9Q zPAc!j@C?#j@Jj2A#ZNIex)8$@pk5%*7DDQc$ap*QPN}#6d(@4fAW&n;cz##hmyi(I zsXA*Ujf|aVW`Ot6b<6c!DOUuUhizJhYVY~x0OR0{Hnp{ zfeD4s109Wo%j)d(Nik}rXuRwrznv_1g`9feH(+aPqhpnQWSh|2OIxqc;SnwI6fZTmGv{dei~O*52>zRpM|Gb~7tA`-poLrQ@4d=bhJ%*R`v9 zOD*>QRm&2vo8ge_gKlsfl1&$=mzzDFgmtuPI7l){{zg#9(PiLVt&F(h0r8&F*zlRP zRHFsAbHQEkZQ|Z2_?|lhEi{r*V6N}z&92)m{KqHE`1V!dtGIlKQ!MOV0X%y@_mBqR z?O<_`7+HIf5c%1EO#ST$_Ub3plc`2zRa?vR(3t(?l5B2FOY9tIx)XNoY%9939wR$` z#S41Ma)5bC2CFx0Y=Z@-4;=Hdw#Ghe6EO>)4?K+_}c~i0=*dY*RsJ638P@PtwRX1=Ev^( zCl07L=_ZF=u@aq|z9f)=aFN2n%Lymv$vDKdgNe{nHYK5~4rbd)a0F^xD)1~ex%hBriax2=X9zW3S56gyeQ;|L5_Zc zz}=#`&NsE8<{E;yiK>9PpV0QUGf!xwsw%>1qC!rzU!lG!_FzRA6psIxhQ24sAM`|q zJDD;hkQ3%Qzzo3uvJaiVYDlQM?!z;+fP$UP9*1)sf#MN^ua|=U!&7=o0Aigsf1U%! zoFQyy#7I#~obM1cdqnuT+OZ@TJrMnYKjnx)Hh)DX9R)kui~lxD3*k#Qq8gdbG%Ou*=as2NJe(X;U&Z z0gPfI@Q6q1j3cg8sZRbq1&j*WGR;}U%BsGl?fYCl+f1!c76{ZexO`dR*uX%E5CIq))W@EZgY!B}ScCt<9`@`MYkaDf7woV~!Z+QaD33vD8yR__ zy+IbSqBc^|tG~D9T4n2%Q6m-Ey}rIKNCxfF9PB8y`nwlc%i(F5GIGrx#^3pTM5LLu z9=vUw(@9lQ&b0Xm6c;H$-AJWoR)e!k^-P@={xx949yo0-BF1w(AL7)uIlqo9kKpN? z|5@_4qWU7j@-(*1^+cdHu^i4Um(tP!>`J?qofRFSNLX=F&GhfNh(#92$wyvyl|X#b zWKI6336mr3blg4juIBy9et`l$_#58%+q@GHvW%%EFhDyo*?$(5wroBdw zHCIL8=1)3@UFkBu8jMVpjGB}h{TR>4-^{^p6dEBI+$ao5%v`D=xFqUi&%pg=JxWSD zacwQ4$m8roO1T2}$UlP56I`W5zC7i1fgRj_(00_C_50T^L`^=yH55mU#4i@DRt0x( zLWav86jvIF%G-9E7MF29m-zm~U-A@Q1@&GFT{i)Q`lf%o0Ph(FT3fE$!Rx7pPic!q zRDAC&+<_SId$_b%9!cJ&^;tfVP4sGVOfH2TN~@f@ zAac&+uQ7|s+oamZpx-^P=S3}v0svP_KLH0dr_}SZ17fcYGa-T(Wrc&y>^EN&&-BN` zml6?%q6&7rDR;volmF=bvXp@tj3UvSxL=<1y}f+>CM1n{8cQW>b^Lz+@}aiFm&W{N zD+ojKQWV5|{I5$sRCWN)Udpa*K4fmnJ9w?GCRHa3{f}4~=l@3pWkz*2wEuS(_Wx_k zs%VgfZ{{@dJ~dq{0b}_`g8r|~8z_RBoI&cu%J@g}x&8Na zu10*_eji_u{WKtTeTYIuq`zgA6Zj4X8%>XpSQ{kqiAd2RU>2|QK zS|$EYgKdxUmjkqL+0%BnUb6-C*x*xttsYs<=a*TTId-4YMw-WA1|H@V@y+A!53F zs>WsML8>ToYPMMpvi`nbPivQpCl7R_vqnrQpUp`EywVtx;yj9|8e`k3Dw%sOeUl86 zsyyW?u!0FZ$(=c}Ya9fa=@&(!tYr4uQ&yS>ZbC=Z3949;^|gOy2#Ad4oVX>R3nr6F zeuHOF9Fp*~gpP=gRL#A2(HBh2`jI8kIvYhVtd|eyuX~=YqO9xTpn-?DVQIqh9^JU0A(I_ zy%Np#oWhn8NGjo=HYeH8@IX&w9|cwT;}LdHW{7(6ig@nZ5l+V=?o~sjB^Un@Uqe7$ zfEh3+42*rSgROUn8pofvk94pU%ED0Dkv5?ec|Pbp#57AMXlJ>;!PrWDznjp_Pem2( zy?;Uw#?)KOwC?x>8BVkjef_NppUW^r9_}Fp1xIRV&hD+%fDV4L->-_yOt77 zql<7{^OM`I^dt6rCOP+)%BTf5Br}6K=&APs)+r#Ed%DBYuT>s{ zzmG`BT@WoVAJ$_fB_rim-$xoW4HYhX#WZqjIR$mC=ijw_;`s4^-+{s23BjLfP$-(k zh;Y?i(S*g2p-s*OP%m^%+_vBIpwIl57SKIEZ2#g+#++T;j0fUgoOF+m$8hgooO6ZS zWAwfonsz2y4$=bvCLb|pQBd$&`n7m0P|DUdObnqaLHC4i(_ z75$@8G^)~tffURp6SXHf4svsZqJE;Gwg%U^){m-GoFX2_sSovJSCQKaXTeCJ~bcsSiXU9()1XH3T9ICS)|q zu3Ko9K-_4$uR{WuA0~GIb{2Gov1u#xda}U#ZrNEpvJ^SkIg=+!km}GP@L^J;%=Vgg z1?NShXk<~Q2pz%T#S;@kdgsw3NZ27V;bj*JNMZ(G)hRCWf1#_i)DOS?ONgw8i!K#K z8WO_o5bjJ`N47Vl04Y@J@f@zbO0r^jvQx}X#xH)YkCTI6%}Qf>pQu?LogFL8XTD(e zo!qeuLA(jch<_)TS2wYvkLL|KA7QwuP^JUz1caug>CAyNGm1&l$B;8cMD&xvsCYWl z2xdqfrl=+USv^+Lml4IciS>f?$dK^sLHkPw>5y;axoe(Jb+e1U{3N&1g+TK?vb*ywQn-R0YxxI-e!zC_Yap$AlD6>^Sm0 zemZol1Ab~1_nV4xaci#i_ep&HEc|oab0}eneK7YN9ZuH@tF3gfq6$*!*m?L%n_YVg*6|O(YiqwSLVdh!3F=M-# z#;^g{VOZQcyg2L*$M{a<%A@puhlQ0Vp8^j)3q;roX)$gg7~H4()Km!63{h9MrECZr zxYxojjLYfM=v|Hvf7`cx-eOU&|M4N$@JA2-HgN|ja+(A|)rbGc+lLLfGUxHqGR{le z-1vqb1>2vAv?e`KW$Lq6%E4dnEiYO*(4fEnu;RbT41ua~w#3hr5T6>b?dxI@mpP1^ zlNwBgC3ybW7fT>KXT>ffI|$oV?MS_iEfEwYiFl4EjOPrvT!7Z6>T-$X3$E&`5n*&ar*7J|#Kf*4>LOca=evc34cSic3pTEAcH%n-^( zkd>K1>Ptn*H;sWlkMmc!#W+!LUvu;lL}ci0{Z-Cl#xN_sXvBHNeF^Ztc)B}9Y~Msa zNV!CfEUd#2NfUjDjV{RTzOqKbU{e)#jdS`yWTb=>N6OBd83Xuc6^$Dahj92jWt=7^ z2FGw9JQ%0^?K~8QVS7z@Bk*x%cS+fUei=O`yWqTxa=GWx%^jc^(n#Xp{DVBx>!5qi z1Nw}{V@D^WKR@PI`t3I)(}?lkxBfao-8@K`$*}|ls8zaA_m0X`UxVQ|BuZt;2_mGj z53ONNRP;X7RFgl!r(k~M5kDC3a}ULgv2RgAgai%6_1}>q<{Fo!@ya-}BJkusVrxNF z2*m_UEk5 zmPgASd<|5CM}72wAH3rd?8p62QBDVTvgn!btJt5p8y_;7?Del=aJ9%YEESb?@ z>o7GlwDjNV7tvYdrVmuvIvyFvs{uiXGnGvw%6_+&ellJ>#jjZ)Zn@1Cle2(&L<|j~ z$JLoZvbT>66UC4i9_)C!pM-sZw7XOF;t!cfa=$n%FJtd5qJxr#1X!t5=~&&;OG_05 z-QD;h9l0T9DgH4@oRR=3ydny!M#UIO(biF}L#-h&^9yb$iVB)$+Isjq z*@xs2yO!QFye#Lb#{&lyX1k}7#GXdf=Q<-Bqsy&CVedn`g#pr4V$V=yMPjzh`tb;V zQbxWY$lmP zu-1bHO;S~drrz?0xxZv*;-f`Kvob6Wgc_?2+o?4KbQ4hbWl=gJAuAm?szRpLm~A3q z%1t_}7hy$~^+fhdich9gQ(t+$#O1tOffjW?nj$@QBI(Xu0FvBDNHZ1CSV#^9nl|DL z-yW;wCtLS$ziSA&nB%kITh2oM6Pz1!m3*MXF-^O{e-*&n9)WhU z79^@g06X}bL4f{A06BR851{f*f<25^i}L{Hf!|j#wBBRo!|PzXi3NfHXULQn28(34 zO?a&r^_qaJ8m_W3_inN}J~6S9(R~lzjP6k1%gdNaiYAHi#Pq1XS%*Z6$mI~#;Xmih z(DnJ>-ophwhe9LvMI9=uV<$aZLC_~ucZxFn%$^Bd(k~&|S-rP?7cKCdEI4LZxtmxOh&N>dw*}RsW+HX#FZ)!vU zi^3kSyTkE^HG`z#S3upB4lj4#meU11+yOD)XOH?!z=25PolIZ>=jxECIa%w~gwSlR zRLDZ6q3B}C{9-#Z%*14-(BQo&2_!q)J-um9;SP6a;Z*N5gv^(JHzrcOZRY&~&yF^c zd!gy?7cjx(v#yGf75(JP(_OX8s5H1b>2)6lvFi13lCu=U>-GdWIzpOAgW0<(KI=-i z4*$}PA(30fLil5k4uG@0_B1sYW5_B7w~a?8j@e}8gg9+epkmgG#XPY0K-t!wYEH0Q0c zF?1IW9VK0bPI~Wiab#4lXq_RW`)0;B)!VCZg2hue`x1E6LM{!9dSJB(f>i@j+vz8qb~UF%VK=cYIh$RzT|ad~t7$l2KPR|2k0# zy6Vb5+2q53gaW>I)@2K9I&G9F>oRq;M& zrcc47O-n4V;hBi1kImlcOR^vc42WBt-vI($1{*ZsNf|5I(6#UiZjE$F|F>Y0hqh1?TW6@z&E{*h|Aq%Rot1^8b@}0J`uSdb1lyA&=I1J;jihA29B)0jt4Mo~nxu{m zJEQPpTZJ_je9TsTG0jT&dF`Swh3?kRy`~TrcAJl0w-3G}K5bH2=+&>t2fw5aB+Dsd zQPd9amY&pc@?kFORm9$-9;X$SgUN@#B=Ol2U33;5I}%ip{&)N$`in>YT6}r`gqvPK zFf^Gk^b?fX;Nai|eSS#BnDcM)7e=N%ZTLmLs9;CzpXFGXp~pOJ1qcfJe~A(7v2#Fh zq_a`UMSai%vaIxiVmTn_3BaBmQ8AILX}2%a(iE-u9B>(*Gz*GYIQ6mVrq~b)0*Rr- zC44vpz*aMdd&F7y-`_yTt*p@V{*L@15gQ`eB=omMsg^=5+WnuX3 zZn!*-9bT_2f@npq&!tLnVg`iYDa>OQOSaD$ZgL28(7%vd3GztS5RAS21YPbiWy*LW z_3`_IPY#f?$~`rm02^2n_K%k#PKD;pbFu%Ww&hXV>WeM3CZR-=dZbV=KN2#`06cKkP@$5WmvaH{KsM=jNtm@Ps4xC0!uFqL7b~Z8G0-M9%GzR9Nirf?~LS6%!*e zo!Ppn*Bo-=h7hHcY3x5NCgg^s}=E5yOyh(5p*CMEuPZz+vI=rtq&BR|@> zRw9@;=M^$%nYO-_fJd; znlV-$yKd@ww3N%dAbvme(wHkj6L|pYWu&>IG5kr3R~*ZMGo5-d$BuDDxVjPgO!FiUvhCS8A}Jn;78pv(7tIGdOGQJ;|RCsqEsCG$}ezv*Lj6gW+h6{T6e zc^;gZ#Qat!ia}qKL6kOZ9I>15#vI}j9T`e9=B%`=4RV!#N^_kZ?=|AxiuGo7AQ^NknWCU#AV&V@Fi>j zNkX_h3?47uP1x61!_D63m3W4)m&wI^?SIh@|6xm{oaK0f0>hoJi*JH2{YKBy9iz~! z&wt5Y|GsZgM5<3+144_8*xn;Tp5-pJiF^-2eCg#+??=kM)$!+p*x*V?r-*wckg2zHltDZip_GPmm~h?)3evp>)WPI5r($6 zN252}$IiFAw}o+|xUqL~DjMF3N)_zX2s6OE`m}KeYJHH;daOEotU4FgWFsTnVAIyR znK3xdfT*Dwz1Ed)uZYR|N=1M_P7zKx~cDU!VNm&akAX_TL`F-soITakB3}XVk5qy$7u< z-9`JKfyLe)MhD4W&qH9lYP|C%q7GlzCSUX)|5@_)Zc8F*Yfgzke~D)Jd}jGX(5_4E zafqPI2C^SFSA`|6j5 z&ZOs#_i7C^#OgcRFfVz0e>_YnA@5FECJP)A56>5pCWNG}Ef-`^@ho_~QmW zysY{?IhbyWiDrAhqXX!*&4AcJy(qOM&v9GB_}68zCrgfGmW-(Nr?XD6nJSU9i_Ir5 zzv_*{>oD#1@2O_mY=P!)lWz}VA&`m=R;24n2cP3G>&1aP9piA`ij8eL{_{5QnmhuCKH>hwq63_s!w4JeRRCT_?-}FN9eM*V50&)bOZH8XCfwZlmsu# zy3*YUDn}69PT{reeUZ7c+|&U9;AQI%#y(d1ylx?i>F_l^-sFot=DQB-rHg<7NmUO4{#i30kE&mf_EulFFkZ<+S4ZizmK}w?X45z7iF+>^ z<$T>Du*m^xh7aDR55Lk#vIDN?z>@+7fFENs>6`x&d#VL27B|`!YOXNA*_{vRow`kA z0{bhIVLP53+{fd=#IW@ZOgDwqFDuo`Q7nN&w!Min4J+P@f}jjX&&v8^gUu7r*3#vK zJBX_mc;1a@nhOKI5{;HSs73>sKHfUK-G&c*mY6B}t6#aXbegeZ+1lW;ukkp%H{??{ z*!GRUvpvg_e`n9xX82+vmsrSePurKK11xe@%B1)N+KJp*{?_f83@9BhU1Z&G0B$~y zZ)WI67}KOf^e0>LOgfxn&z>jF^hx!!T8piym@Tt93kZ*myrXV(a||C|h|#I(yvDj4=Jb0-Z)4m7hLzZkRuK7(Uk4KL%8`+OXH zum0iM^HQ#EBHeeK|HzHx{QtZu;;wEL(UOHGmTxDDukJpBCLb2wPaL~`lA`=+=yEj>7f&v%%nA#F^(q_+)DO zi=nN^&ZyS@JEUK3rCUs)n*ZF!TU`us|&zJA_=@^vdlRduia_Ua!>Ru>t z3w*EXJ4fFu`q>|Cx@U@E*85ixH=wrFFn5;z%ehmdQypVqzkn>@@n)lqXz;;>;J^OX zA02XC7rmY)fFD>Ccv>wPTh3;$%sNV7hnLFE22^pDEVesEWV=QdD}m`=FoMh0a;YCwU#oU$_u&Cu&=VoapfFH?7+oh(~ulOh}!b6W~v>!OFdx!u;NN z5ZpS;%s%W%>`CwbCkq{iiTA59qm=ucyW$38(bPMFMCGk6)pCZ%P;wkIPVLxwSy(oG z9D3*+{tJ3zl>NiFyL2G)1zqW_bb;HA_KCP3ttF4p$o8;R zMDv)9pNBhOK1PocNS7vlw-?WZ*>U4$ZBac6PXc$+r^ zsiB;19+C4kukaCt8FNgzTxLe72ds z$ym7YtNQHd8cml3%1NLce&amh2bF%H4lzcAI+rblK*j8Gc5z$t&8UBqTfDg|hpJ#| zZ4QK+fzB8ZhhIKRwn-0x_~&m2*o3XL>O_( zng-jLoq>43A6=D%8s9p_4YCqDktLA$%isdPN0Dvg2RBrlH{31;8u~j0e`V4oi)mXj z%PWV-x9-A^c73J<>#amaOo$w)B2?8$U3Rk3Amr1Jk~JB$=HrNgOQ~!e3TCHf_nD!7 zKoxoToMwNFguy4JnyEwuo+vUzg?;L$xcaAvQ*9LQiC}t zwuvL9rKQCpy|hkIo%Mgj<)~dt8z>sEqetRS@Pp&*xeuPJHHFgX@fHkk3X-Lho&D^G zw}?Q2HCFfmHlfzqwm%;WqEDf0NAH9<6vdplD11TfDwh&Nb3i^TN5spm&c?zlL1gY? z@_H{OZ$M~dR>EMvLwcO66p)E{PK+jwfnQG!b4VZ?LPMyG)-h0D=7lk{g^MH}ILtyz zjdN`~5}#o$A(Pa9Tq_l#L*o6ziTP%Wr8KtQEVry0;6KX68L5COmw6ReSau*`q;0tZ z^6^R|Bv9zZbVENmQf2d)x1G5NAqyP)X-T)Ddfcz`dzly~z|Ozk7YMe__v7ZJ?^dv( zi3C(emZFdx_Ju2k15CvN_h!0O&-mk<%8qJD3nd$Oqjm5?6`^aL2946EeMz>Peoarr z{V~H<{1a+}vk0wX3dP2Y^erD}XQ+wi#`UhCbb{j=nUWOtkoo~#YhbqSb}gn6au`(q zOBQP;U3wq8jhdYQkF@92QM|Iun8sOcYlz)+F>{X8nxz-$Vf9R<+WT-6`b#^Pa+E5k zF-FnvqjHU-)l_?r+swmVqgPLx0k;Oe26&t%DFT`CDc$2}bo~A6M#+|sQkd_QkkMii zcN0&DY@)6(23l4+YPD3H0b!#Qt*vuyZ=Yhdf&`#T^V8=7S~HHwtg$@4IG&2DyddGv znNhC>)*#sTq^wKl0qT_B-t^_<=9 znzz%H694_NOW#t8P{5IO93Ye=_(Z3bN#I9>8-mG7y85+XXON{GEM>JktJ z6WMLS7bCULv8E6{j}g#_qDoNh*SlC)?L9ntV1)TYt{8d73T1CWF)rBsvLd9)@ucx~ z@NorlQ$`(YVc7C*xDaF!#B=GKM|?Ew`n15jJNMy{=I`)u;cg-V;Yf41N0BY1Dx{dt zQ4uqeQh7FtjA(W6JristsB-?wfXl4d-b^R>gfEn@)neCuYwHzi{>bz1b!wfp**%OK zd^KRMxEiBc{g!NmT>yFdV`_|P613+5gF^rZyB2y*)TdKDaT7uEyjb{`UoG%Ek$cv` zc17d)gYYeppQ~2Mt^Rs}z+N$UruU40rN|!DF6r*u4Kc|XVt@@UaQpYzy65!;$ty8I z!ZwrDt|vj$HV;*dwI6f zsbnCXw=lIUMln{c*<_3-ea$-iwz_#Axv3LH*;0;VjCH_hJ$(L;agmQvbxhpbBRW1o za+&C5dzoP?GMh#^?ok#)Zyr}%2Zo3H6GdW!YkbPhsMpa zoF>Yk9Qo14q>egO2eYTa8eV$`31w@`;Tv3KBU{Zi+tjlLBJ8Ecj<+uf2ZF zlmTO2FDa#HjgeX(s(kZRRy$FT_JGI&*vOYT0H)jU=VvW@K2!bXxl3djpR4rE_A*k& zi5#!zy099~0lbKq$uA==2k_8xQ|^HgcrA^nV{M6 z)Nb$RwDErb@06Eo4J|;d|*gEd)YXP^sOZfknE~~#K-R*7w!qn zI@=#k)~M9_0ZI^csv>!cme|9oJTmXK zK_RO~VH_hb#*w(#lT#duy%fLITg<~v>osM>TzxXS_%!;HINOi<+tIpHsqP)o-w`?G(Zjx?Sa;EMJ}U z0pKaa!k{~e9tX%_&-vD7N0BwUa>(z!;56K?TvI6fN?RVR=sDP&`eNI_IdACfUGrx5 zes{Ilr)4tCQ_#L?+ecn>vU$zjz2C`x;ngAnKFM6f&9-htzew}l@6fd%FHUZGA*9Sf zH(X@f5zYfT`*ySNjp!Nu>sh+ddmrk9@g>7=&+++|UUc6Eb!6ghzM&g@HcGQA_xk!T z=WLFa1VvF8VwQ;`8a+SJ5xGyveC)G%<{WWVva%)Ae#1Pl)4uZ$p|o{~e*eeRF212M z&0Ev7JQAxv5nFcnoN4Ko7>m@Nixgx@g-c|F`!FK{@T%um?>aVdRD~Uc5^nemd&^kA9a(|bXLBzWu{t)+1HVLNL%6sGSJ%nE9 zDsBHY0v`sU3VO`~`mFpjbN1p(6ytyZdt(OPTZuCqGWT}XxZd*>cM1T{>83rUWdvJY z_DuA(4>Npt^0)B5Wg0MEch|e|T;yJH!jt8E#2A{0un%m$_lJ3WtIc%|3#B6b0#1rp z8j&}}1W_LL#4uwtHr;S1TZM=@yY@<30=;fr@Z_AdCQ7%Xe~K5%;+kKPPUuV|No+-0 zAcz1xgW;kNoi81CQF-_}Aw5)5z3^i|^Y=OiE{Y?zW%6*6Rbj3?>DJMQSZ(9lSgC^E zHf{6o4-r%j#w^U(>Z3p4X?_@BIZce`&Orq;p)^}cUf{CBSQBHu4k@MO=BrLW5a}-a z0WIQGQe2bZBP6}t-M@8}OG%Z(r7)7}>Fi~zRA4Ixh9+KLWSN9U4Rj35{_*ESJVzgg zrkuKd{zz(CG{f7~iGry|C>Osr3xAo}r^fp$plb^16hd9SJnU?Jq;I>ju$e7$xJ&m- z7796X=#10k8jvf&aQ56p8H@bCyRAnSDceSX(+*nidhLdetoc z)W;|H9)!MLC z$@EoDSt0||Rn-7&6;DnH)w3|3{yBknH6ftuHak#Q13qQrgH=14zbou#vJQRn+%K_R zl+KPx;rQyvw1nmzTnF8K3fAHz!t+$FviYeP8fh|!T?GEuBMm`~8RlCFm_-$2(Egnc zXK0wT_&=cr6u(&86tzcsu;=>hlZVAH!zJ6SM4{K`)S+9UB{Z$9q)s4G)Y1StZ=&XW zc9UGvqEAeVCv)n6G$!XzAKBnxzbXL^Qpv9fRw`q0P!7^|q5I--X-sm@lmm|{g8==( zKb&P*XfFA!boi>}%dBF!CBdN{2W4=vDsrU25o;Im)I11-EDqn7X+FeK-*$Hw)h`-& zpMzA8U`*>Bd(y+<$^=GuI>kG{)_RYbdvy@%oO(_jg$YMv!1vAW7FdH>y~xv>>olHd zWwi}plM|)!asBQ~$fZ^h`R0^Gyi~q*oP5}B@`B3g&g%q8htg*aLi;RvAKAM?btJ4_ zRn$0Hs;n^b=GbpcwP``W3sH%N($zC=r=<{nrbvsX%*Z%@4b@C2CGeCGlcT}}zwTnZ z(r0>Jerdg!inKmM<15;s%gX7jFT6_NyE#=zTyH7}zOtNI8#|oiZ42c;059Pqqg>5( zY!|?BM&M*14{?MmA>p2HP5*q#U=+*;XCs*PR1Sr=w-mRT61~9pthO9-BO?ECr!#}2 zHH?huNi&v||2eh5%{r#;M{7A`KvJF;zf<4;QGu^>3I@}|-A0NJVG<*kH0D#qS9p;E z;&Ds~+(FC3k@cnif$J7om7?EtDuuUNp@B<5S?eClf+8a#8+&uG0@JhzH-jJ>ou3gj zLi|)Ax$z0xO>5>7MYbl4g-x zfjgFdvf5U2BGeaPxvml?zvg;9fPfb4@QV8dLuMIpEK{P90JQo~f}t$dF)fjq8J;$b zByacm*0*z3WiXt_{69l^Gzb_-t{P)%SwXo7WA2dp4gO=ASgeDiqsz5 zdZ`)jWn05!(6)Is>eGJ0pN0T=!COGmg=v!8JcuWsY=M0UFk~iiNrj^*Unvn|8i971 zC7Dx0{lv5Kw}wnK)qf}ac!lzvBBp}LL#uol>a!Zi7TokUE@UK z0?Is$Pw#NYi^^)4@gGG6!pZ>Z*-(~p)+Mk>`i`~L^f2>Y`^D78bzXHlisa10b%2-` z=Qsy?>wYx;<@!CdrwUd?g+}#0Zws$#oA2Vd5^@_iy(ah zJ#$BI`@kfGllg`(Uc#Z1iDsPHTOEfCt(nSa`9GYjwQ!Nf_^9imjttHlcYtEIWDSfG z_AlAdvx1cfzqeP9{d!^Fm|;lp!wT+-uPZMGFr7K6DWyozK-J+m06vpTj+T2;xP%PI zcoh`IIpbSuiEzx2Q+UwN+{w17U^VOZF{qW{ei|cq|M0_%fOzAQVZYabTwpwy z?(l9<+~VR>7$+_igi8U?{3S1#w-f(FvnV&D)OW)b8MT4s5@e$fod;}FM_eFcE{B77 zlkV}CEOKXqwNQL@=;JIGR>4Pw46$FfCDo%EhyN{KQeanEvCA%7ZQkaDhBa1FMv<#d z0n6d0L01;$C8X(=)299JsRVa4cvSa|4o{6db(MU0PD(#AE;5a$k7G^!jpd=Y`yKBU z4p!1WF??Q%aBPWLYjtaCWt)rBobT{{Eft{`9h5^Tl|^#gD2(K;y8Afj^7}NZCON-6 zo#Jks@N8k;DjBnsU;B<1Ox;p(ZTKaj^F=C}g9$q3L`s^dYCU1jHvN&b+tP6G_`6@{ z7xD?3FM#n9;HUVtugq6Ad;*I#qAe_AJ2utcNi$g}1ET=d>49CxV?ec=kPdU*WblMf z*p*K8>cU7j$NDXcsF2O<)z*@_H#m>aWV5{D)1_zh1)RYH)|*C;MU?Zz@a1KR(8O#e z(fcP}5#XzY$-VwR%U4z3SCY$)`@MX~a%J=KSm+J?Xm77Xlfad)21oZ-=JE9id9@O9@-kkHTfbM- zYggxtdNHl{&ahYy?YfIF)C)e_`b}%C;KEt;%HaLiG9jm4ot#V5BRcu~UoXDzcrW!m zfW$f9LDmMpecW`@O|_@%9{cQH`y63JpGRxIwb$#9brao!lg?Ls*If+iY;75f*USBj zC2*zn<>K7SBgeH?p+PX; z?V%HrIQqa{d!O$e9fytYyT3>aJg2zP$;k;Ydg7&7Tps+Yo>aQJz_jwMr@I^MAn)1C z!*54!#YTz=nx2{t@9+TcGCU=v^SZh!Ufi_j`Gzj}1+ZY;r``1%k@!o0LttR1Ca0pj z>ahf!3nLeTK;-)d<5~`Xrfa!9*9IQ41&m#Iy#Z?*WTL=7XCxdK_m<4#J^sW2TTaU- zhEc+j-^el&O;)EI^SJ;{agj1h#Id|$x5be9Rgv4{j~g-g;{9~KARf_RoifJ+)R{Ys zCmG3x%ge8P#VA`wV~=(Mwd#~X+v_*?RY zom0@fUSIn92V#{>U04vb;j1g|Dv>>7?UT(IfHjM8aOhU`u3K3xU?mf{to7r!L*wKmyo9=GOH?sf) zZUu~eIt=Tre1L7|+L<%w!Y~OOl3)?!Bf!ng0QBeRxOW1a8v;P_k&oWXxwZhqn|A|7 z=-jE3>0^MJTQK7D7;CI3o?0dVTTh3#lfE4TX%B{bk#bjBVQ^B9U59Q?(|9jf1gHhU zFg=A=pJR_aoSr=PSlYK|SK7b#KzJo-=V5PP*KX3;79MV@kf@pLhj87BzC{TmwW7*^gnEiEmIJA`o9gY0yBD zZRl$Ztdv{UXS0Tta!p~h&+`#>6#4c+P;od=Z({(#_%D)Im9(sage*beURS&IWKyLJ za3azKb)^bv$H0yxlvmLE1iDtGjXJsBfbMldETQs%`J3=+(iXZT)3ZgU4t+x}C1K#L zuW}>(_>sAT38%6_2>IIo^576bL$OKb!Q|aso-d#HSQa2u6CQc6_J4pufsU43P zRr>291QuDNR6>>D}84pT#)p{5jzYZDtDAjGov`mCTPoIq4QXlZ0KB?8_4M{Z)R{=PW7}`K=|~#BFq$6x z>|ds@dhturSH9?_j7jjxu-OuA<{;tdp-LB%Ax+ZG>cIpXyQ2*Jm)DOfF2zF!kzu2H z$~}rRNP7rKa-kk_rWxm|^dSj?_!V19&%7X=Eg~P%)m~_iO(UDIA~W_w_FUHh8E+}q z(A6dgIokh4$UpWsZKiG8itcagYGtgTevoTs=f={GodbZwp9NXx2IPWVk;`euq=~6< z@@q@|JNnZ8gL~5Ro_`y%>mj}Q^zjEik^bo92O;F)`jQNKdb-o?ciff^9^4;&uZi-t z(2?Sy#{yi3L4bD=7-AI#WZ!-F-Lw}*q!4_eE106*3wc2bMKX>rc?Gjegvf&)3zA?Y_v~BUepa1!vPe1vSKN)cZqpb$& zep*78c)}0M%1zKsQEq~aBpwxCcv`L>`k^1X#2n};^tpGu;~f`$q;OT`S`vj1?0^67 z|NUhkzF-+%o#J~UrxSqUmF20yG6gD+P7SR**e@aw<+>l-5EDX z@DGCoR`2DqI{KzJz3HNr@3q0Mo}GK|F%4HL6I4}fYtI`5q89;v0;C1E6jzXPMyw3>)tOoyPg*Ti5K>Z9MC3E!*(x%*6NouJ9{Pio9&Z_!-o&2cfb4H0jkW;rLg~{kwmcM~n8&Kg0;yGybIp0e(e*qjpw;pMc?d?f?4Mzdqe_&piPk)dtq~ z1@pJFessw{(EioG`d7nlTff>M0Nn9G0GHusfA(i%&Q$dNV*ULYoWnU5 z<-vYh&o1ZJ*SnQar`_}8uH}_jU7N1Y$M#bRG@d7v^Y>cnbgaEy5S+ut7cKYQ-VVmp>NN6P!A$Bx~$cOI^UuH|{HXS*5W@_OO#?$2wre(DfUA>plC}r8a6}jn=#&P zwESz`r~JPE`@cU{94^is1gP1^i_eeNqaGngl44Qj+7ag*#q=zPcGEep0A1%7_RnW3 z)RMup`4X~yZgJixfx8%7+#$CYo_8*;ZX7&#uox{q9BbQrc3Mxk+U;Pm4$d`-^H_Dq z^1tk5FDpiic6L1XnX}l&lD!0M2B|B0=0mIPzyx^DVwNs#lKkTq%K40#}a&B)b&nrp1y;XkP0ZgY(pt$T+6u z!oa@wT`l;nF`ri!Px0xOX{l(P#c)cZD2lwI-Jqj=tZ-(N|#x#^~x zYA;=MTwKVjc;VHres%G%+%F~YGzs{Qq4*BQ2;v=G=(7x^1g-@M=;5T^dqck?)P6g@ z7V1-$@zNy_L<(-pac~kr45Hx-vta6`zzbLB!Ayfe>i`?B!-hHDLyK|M8_NQ?InL;_kORpu}Hkc8Nc)UK0VHJ zZwq7`vG}GbKCl_At~gkUGZk3xGcZ8NSq8yonb)zZb@{7 zp51R6M6=5l*HNus#-uY zh63>HJPNvq_nKzBuDE)?9b1DkuVSL)3+(IJVj9qRYYUzVrZH+0(-;ywlF;ex$a5Gh zfw*>r1yRJqtMd}n-HVYF5!f@rmQy-xEN&ojrZwGVCe#(2HAu)oqNnfz^VtVKl|J~Vf0B*>X!e7X z^`dp~(9)QCxAnk%f-HfNUR<07cs`kCo95F6hyfOp5sI9 z_C0&UsA@d*cw+lh@gkvN*UJkE9V9eI7gRGmLa472OQvCPwzM^81P}CdfqFJ{cj1W# zJ?DYCxmrm*d!Xu&#^8C_wdigaX)Y3XesV6gk*1zi=mtT^&=U;>2t$wKi|`~A0->G` z8p_oWX5PV4S`BdSnyC6Vh`)v{)fm$|eEGNq};-Gz)Xt;AtiF)Z-wmfsmXuhkRyW z`kJ6@-U>g7IJ)a|LShPwcnN8kUZn3%LMrP`J8syU&VKPks!UJNPsoopb#TVHOn574 zj`ksa?ryY=$uJ~=@Q4{@SDqA;mCz5R*T3$oS*>AD$hi-~#OELSd^+{i=`;-yqP?>_ zHTUgImBC&-8ueh$nD}5jC{YNxk-9h0*8X(Y=cJ^CU+69wwAha!R<)r6l9gs>AUbq5 z1mRCvZ^s@?Rb~OYkEaH_{q*+3hK9`7h|Sc?SU7q@pJ!lxT)^|y=*&WD>qTE6JUsO1 zW9bAQmn1%p;$>wFeVfMybfCK!QtYJlhO9&zPEz+7I#nx#tG#>rQV(`?d~_nsK6#%0 z3z5zG5d4d1XwU2z>BkxWW*ylbj*Jv>j2BluLCEgQ_WkR%EEU_ypY4(L|D{+&SyJ1j z_?ez6!zhP0%e#KpK_DcgueT=R}}oER>Zskn_vA)=YX^H2-=-h>RCPPITF zVY*8PtEN48?2wUu24c;rC!a{CPo7A9*ubf&nee_Qi(U4)FFz0LKS&>_vclvUNLIt- z&bWprDb$`aGU+1|`_}2xC({glNn+(^KK)s2|19Iu?$m+Z@7uX6^{_9w>fntxk#{c> zTD>9Z-H9qu&N;|tl0IdX8>;AnV}(D-dNB#Kzo{?Q15q#)#8&Y`2kocYEPqi=^utNF z%y`G8R&1JHvKEn>AR@0B&xvGA{>jIEQ`aL-u)*_YR^aUOHw$(u2tFEcZBE?7b#1XO zF`FPCHtOMreyKhkxN(1a)@?^q|3E)u{&afi3tt4N_=T(=wK9&jH>KU^>wyD|Wdqyr zVup9Nv61xQ4}K)Z6j)U}`1G;Te?MTTJ?JHUo&srOrg#YI?0ht8 zcfIRrppyLhp+kq#Kl(@iC_lVtTYORG2Umec^pj%;ig%yuN;r*hmn#ReYhn(n}n@RR}zhT#~;;SH`~Zv2C7-;9TuJ z?|IL1)_#zw1*v(_mEvqiojv#4>@>G8(NQ$Blx2Tj1&-Pzpf>Pn6B+)AG4iY<$k5$oJ@do z?(s&C9cvMCik>?3uv5>rt(4#8o_{9B1qo$*j3BlabdUOwS0fA=S)2fuSLiye&@>5bz3C07tfdbYfHen zqKoSIuCz9|Xuw+E*=iS^s!hZ1n)Tk*7UR{++w1k-?HBJW_e%+s5-255N}!a$wJrfk zCce}6U7y%g2{z*8#JP$~k?i76l8fGQ#M902E!@TC^*j@C`M#!Cm)2Gs2Y`t)4c|4I zu9)#4mT)W{TCAb@=-9z`b}q0gZgQM|;$7R@JK|m)O$4r*{CrO!_QQAAY_b3;C$P9; z_rOrbJ7Vy0ffwYQ|16v3mXPDtYZ7hd=fygUYX!+C*3bU|;1z4hIbeKojq3)>Z~C6I zjDbT@E*6Ho4I~k`Me_-4BKH7EUIq~cvBy$Hc{6OU<%|56%IdK{^QZ!p6cZUhME*wL zUds~17t`Tn;FBpwj*U?k#?i4rGZ^-26WHUW@>^W|GR@fKZE=sup&mO@3 zAyVL)3$U`rqqnyw4eaO-V$2jCJudJON^clFtZ=&Tz`?Zt@S$|@rX%SFNGE-GI;a2~ z9)VDD3Xdh{SebuL48e&E4$>E_S z6uhgmi~APRBgdXdAN|Cq)4d=6RQlrMCm`;$(4LT+AQniHY656I2QffW2~h3~AgwXO zP{{z*qYA|egXCG+qA^GqgLryX(!2&40Wi3RToAtZ3BLEZ1o)#zg6S6kuFoSg z4W2-7WuF1pA^0FuJ>P^^o~5k=Vi@3p5tiL4qg7)p0p#rY^AKw&4dsw%LZSh5cM!8K z>ZsmQ=3s+VsC$)yEt0th^uZbGKjYDF}M}a5Y7C?A>a%X`y7Mx1qRMa zkQOACF!1whgEY_#VNJIgi_}xU74wv#8s*6376VMkmkgGI<;w;zWW_aqP8N*j&{<(y zp*nL6wiEP$QToaZq_k#oxM83-^|k?qr$4l)*W_P?95gjD0a1kV*k0yiL%88zkb&5D zaFax3-tnXE4)QUuA&(aNdpl$jw-T!K%rXlhM}k`3mn^F(`?pc}`Sn~O*wq+8q z%!%}=Puxpc#?nsOXXyNJdJ>`qQ?NAGM4EjNcG`NF;Qv?Z#j*Wv6()pUbSHxBp_9g^SPmkbm}bR z!Lb?o6z8`?yd(cHy!DLY;YR&v-G&`NcAtFkGwImlPozmEePa{j*gNkVO@p-MC^Drd zqW>LCTJXv<3n>p$&M*_b(VlH-dSH91;+1C+Ph3(M>@WF03Qw?Yztq0kaeoVLY5WCd zP!im{CkPP4Mhx*|vmCsxzGW%7!x;|zgJVjug^yT<{Q|Ir`3FMaR> zf0iEj*nR1~`#+K%e&h?-We7Fc?p+W-dV2=aK=1Cfqkm7@i|uT~YfF=QM%m}FhbK=w zp8n#`?@7P+JHMNL^EZAg-TTq|f;`p1l55yIy@ zB(`}x^+>qMCU4nVWv zGV0y>%jKe%Cx0@)B~>a{lXja~Ior(xu4_+;+sMO116%EO)~?x2h{aQ=JZ;Et7evIP zx80IocYOg{@gHbKOw<(bp|1)mwwaM0YPnkiZN!A@o;C_yKfh1^Du)R zN~~0+)UNQFUt4V}m`0BZd3Xx| z#noQ!3OW;DmIndV#d755ua&LfMf=4{K`>vjzK=foXgp}H6u;hi=W&9&@*oguwG~x- z*w=eb9$W>h*hcyJE4B4Sd=bE1Z)IG|QtO?fxZ3o3%j!zCYXRK^&AYl%9s~xhMQjlO zSq$~S<;RX43*c-X?+1S12kMe>^6P%w%FAIJ<*V=K*XwPa)9Cq0Akk=aD-|E6<1jp~9mkoiu zn;q=S#Xj@4x4mt}EG&0rT^<+j`*9+Bik~RBO9x9Q*IVw|Rh4}izfzE_SDYJc#9Kg~cCFVC$L!VS zb9w{H$86Im&dc&N*Sjt1?CrPTzN*&)NfyO zx5GyIg0`$487EKEt#h(saIU=CSf&maJuXV*ibXPtiL7(~T9ErXt5P?bKre~7s|CqV z#c=ZE$>L$`7v(Eyq8=INX*XR3C+zv?bijkU&(VjU#8*UkyA z#Jp?0x}MjoxRn5_hmp0$)Z#r`xxba;`;~akUQITemH$@RtkufC+1EBp7FVKwtycHV z8fTyBXT^=aFWKyOcdN;IwQE~37Oa+Ed99Q{DS>N80xNw#(JS#}0-IUG{zz*m5 zJmZRI^*hfv*i65@1~G^4Uz03^?fYgu>gX{=w1)U~2{~(PLJ6z)jdJ^nhy|A{)*#V!u`E;z7(-~z;3i^CS| zCtgupaFA1wfq4b7Mp6-Z#V^i*;brU3IL<%gw}eyl9w43I0>L$c_48NpCuW&A%ikgq zvgHeG%+fZHtG5c(!^R#~>ActI@Kcm|mNHksYR;18C`5(x7e>;^#AuqHm!=~y84?D0 z$&8$V{ip$wkkbRm+Lw-PfbC^LYK$c0NX`*--_^Yx?-+Aw5sEOO9ueeF&}taQ{@u<-yN>E|}$x{-KUZo_=bU{Mspv~LpFKx)dYxZ^fjcMsR zuN%)!ow)03V_%kV8#*e})ZRCXYoNWi9!YbMTc($YAx>U8AcnOv0coIudfJ(#AI-6? zSU*U0;h{wjN{jxet$Hv&!+=~#I|e$!b4&|uI7FYAhnR8v#8YXSc(V{<+IHTMs$CE! z8avZe^R_hA*iL)n9ZQBmv_nQ~(UVgHGX!N5qzEon(MKsSo%D;I?VUkf7#p8XBV&;H zXxAy^J34`vBK9Ydv!tBU=SI`e=yV#zbJ+0MGvLKd2Gx$9ovilWa;GRly{`dA9h1$y%s6Ng{5>z+w1DE_ZUIF z@Fy8Zk5Af-m{1Xy|4Si@lM$}6v;MVjelDnnQpu5xoID1=>=zuu@4hKy%`f4+OPrW zDK^az?iUq>@*ud)`Z(oRPW}`W|D#?M(qku^K0qih4Th6#y>m&(@tzji-ahJ$K}JM} zoS>VAdD>^2xo!*_C6lCOFfR>KWEl2bLQV^PyR~B*Ud@mT{n0xpDTT_)XLpf|)79OP zj^286I&{;GskOa1ogW&+h4H7-Qzy>>hS^4Wnbc$NySH~h8trEOAfe6?p_00LI?^6U zIaRz5H8e6VFh`JJMTygyv*+>D@sac=fBdKELm&Dut3^F%$*-&63WIqNV7S)GS9#pp z?FT;afs0P9CmmO|FTTWE>t*jn8C-)0M~@!8sMLebr7j`3%JuQ%$CvMT>s#NtyuZ?p zK+7WG!Byv*`+eA{zT44u-_oB|$1LPI; z*j3M8{pwe*nyfEkzU#ZbYdOwZ-b{?>>bw#L9LF{z6w7RSddIm^;mDCA%UP|b4VELX zu~TeYqh4x%bMb;=D6ULjJpWAW3oyFtuDdop>qCbQEvLB=K>hN~E9?|WE0Wvv9=2L= zW%Z){ss$|iVy#Hz6f9TlpR1+4)-?%w#k3@^t`zPme2CPxUCED&&&0U!$Rm#|d+AUn z>luqyl3nrq=RWtji%6Tb1ju6Ce7~5tD|7lDWi!HN>*_|zbjKZcEZ?>j{c$<*P1va= zhU!i3QbW;8i{t@U?OZ7oSL?K&uE(=ly|jG((eq3m)VZ}h?dUP1NRH43={4a}gZ8UP zDti0d-<~~Rt&)($x7;oX3SVg@*;SILdr4cHhxHO;^Y~YCdo_>Cxg0j5FXU+zw}%fO zE*|1BckMZ=?kUbyy|3Q$27Ju1nGNyiED_jcegQ7gef_<6OS>dqQm-k5_xQ zM(is4de)hk7*C_47t#gr+!B1mVs?Oq^?R1sSaGJY;62~OVgYXOdg5d<{Hd@#v3d!7 z9N4?1Ye7OGjzpl0pu^QX9=oRF`3!3*-jbhjm(tDi@tlCj9MdgESNyJJYXSc#_E3^e z;14N*WwHF0ChjF&injdAN-6r#(iX09pLvLB4m>K@#oP%15uX;~ZptN2+r0ljd+z~e z$x)td*W^62vpH$C0VNaw2_z5_l8MF!V`LjJIN%&EUrvoo45-; z)R~5FsU&OVxLU|hk1%;-VjF~H!I?O?`sf3S;&7- zPSJ7JU_esl7_nG)YeoW7HDt}CXHf|mhYaF}-GqdaSYZXJ19S!~D<*fmFcInjlt1gb z8^UW}^V;y5uX{~+Hh|iFz7L;6LBj&kiVEqGqkZ?MprHCAC#bK1$iBqS;Bab~EzVhh7@aW@@a~ukfA2|jQ zr6Zi{><%YRp9@c%;)A2JD-1%s&~i^Rfa;A{N!WxnAFXsq6c|7e#*Y>nl8QVp1SD%(%-_|7-H76rd?P965z=&+v^+-o9_6|Rg{uOSIoaLa z9ToBU^Bqwcs(5dE{`14Lue}aHc@)Wkah)D&q;B+fmuMXyvFtovDHeI>|GMEf|S_P?3--=%yf{B#K+LX2bEoI09B% z2pY0MEg){|n~KnSm@q!6lWJ0wpyg&cCCb)rz}t!P^_(bph*oxx0@sPVgK{`exkwC} z;N3}-dWB$q(~qoUedioI75)%4DVRzh^+5WjsfzU$TsYR%8wLqw46uBGvd)u!S(ykZk_PGk=~v}xXOfg`Z^UE#F=8W6 zet8k|7dxbwcRMKB7bKJF2|CM3n7EJ$8mk+_M#vjmnjsQkm1P^Gf_)I>8hO8R6xofC zzfp)`efiMW*$*iv7cGiN8j{QqyE5fRI#brD1Ru*GcHBIZbW>0LuLY!Et;`A579^iT z%N!1L?7W(>93nBT7WS`}cI@Dr8k<5R0Dn6*E&KFAC~4lgIkfEF8b&Dm5y>{>%QCdB zMmDlxk{-EC9+LHxkwlz{3E8Sxz{+a{NuYyf1IHr4ZxX`YVSsC$=!bql5TnRAuf-Bb zEuj@FIZaza_auazT8MXzn?k-8f?Y*D#Y??~G-SPvWGU*2@o9x*pnoU~&~7wUXnom) zg`b-Gx^TXGFdRH|DjYs~7UGwKF0A#CSk!3f>m3Tmj-CpS9y}U#)F32^YIMux`}T*+ z_wJ?K3$UzVU_;CsgnT$UGzf8ufgf_OrfxPsW@_KIHEiF$Gi=_lIn+bqnIOMiJ$>Qm znX?f2cn@ODFpRmO2?v%>I?L0xW%8C#!>jtRBV0r+e$dN+=89TzUV@H^f{6hG`=kE`P4;^BXsw13- zz|)O2v5^r;A+?ZpHUp5@fiKfar7II9t17TfkQ?V`c8yQ8Sl;z>SQ>rI|MM$14RerPBV?{{{er%j-Jc=yRcxmq<5vjcP*Qfj~t=BpqsEll}84)<2Gct zvAvDr$%k$TsP;4Jv)#LQ#yT*D6(Yw6#xOzHy}jMxp@+T_zVxLphJyzmrC)uB_%1Cc zur_ty`@P?LK}#N~zjEhekd;%XbpS!hvpGLD-}I(86}_!x5MVKpi?}ESv^n0Jk2?+- zJax)Iu0vy|XfBKmN18(>K2HjYU0FE(LepbyxAWpwroQTq}B>=S6l$ z^6ZYs7YZf|dT@+T>ayi@+ika%J}&$F#v5-e-p{tB;?0taREL+`UhvOsobF(H%{A97 zIIP)TwB9Rgb+Ua>oOGJ)r3E}+Y{{1tPl;r$w!$aHme4Dh6ZQYsbRqY_3#Son}LnrEp7KS7%F;y3lzcb)(;~ zy17^um@VApdY#yt~BIUAl};H*x}w#BT!`Cjkdy}S5I*2+im<{G(Ji~aI)w1slwwolUPO6nX# z&E|IQ+&Rt5LWpAquomS$En_S2Lm6bhZOh63iYu;|mJ+{l-}9dL#QFVc4=&OlT6axd zIYLGHY(D3UNe>E2%YG|5Z?YJdwWjzV|M4Hp-IgcJed<%6Dn=s-YXAQI#ou$eD3$S2 z_H$Y5h!+|sXY;Uc-@cF~9H)6$>2X&Y?_AE#WnQdqx%&6TerGRMo^y$RIds-y)4d$; z&qWq%xqYQFnM*&r8sCcPIBzlYB`Y~Mkjk_4yqtYOXBM zyt4kXn+9a>dp*deYPm*4nwW`{kW&pFt_5uCW-vfo*o<59jzkS{iCT)$ulP{Uey@s26sKZb zgJ8LxUvv$iAFOAx=3ft<5Iik$i_?o3K5)p+b&1hSu+GkViPZzViE|oEY^3;5agZK< z*NUYyjOYjd5&MTf@d^nkC&5ie-22qMi0h5<@E-psi9<|xJ-Al!2;z2~4-n5TZa1-v zqd(z;{2{&yFu~$C`4urG#_x4ZXha;wAMqX6S;aYPv>_66IG17`^*!B9<-z=s?u2ZU z#ASHN;Tz^bENOB?zoaYXi>D^nL)c?H_+wfkF(}^iw|Hmen-FqhzWj}RHO%1}koS_g z$OJ2GS?A`k7BoFi>%W#$0x(rB9cSZ?0BN!$AX*r&fL{qYl>l}-A(1@zg$Ki)%l3v_ zUwB)%`MJ+S5mbd!$B%@^A7*Dxq@kq;syD=zT9iT66u5o@0Pe1E0~Q4)P*g__AC5rx zF~|avIt2I%>d#@JN97aQe6+Dj8i53lVZyWlX(nnA!1WNvBe$8%!TNw{}8o$pd88`bIPXM#GKDfH)#hlHV$;$i_nkHbO}_TE4N7ng$iJ z0A>jkwE(lX@7NiMJ6gNh(1sFchjB?4#zW+>0lRQ$7&c-p|I|ZJxE)fCaXs+mFGo^H zfi!3}L}ioL5(qLgPXz$ib(lt*h?WB;LRatkaNphh-DAtil3hDzHqvu6XnnK zV1L+#wUz?bjVb^(S89!*FcLxejifmNcB!N~y*pP8y2NMY_q&p$xsJyj+fQ1HRT2IF$OH|;trr9K+OrS)~PmXX3 zSV19&(Z8iFG~Jk@Z~?JblHqFVSv^FT8c09N%QBV75<3;bvu-AemiKUpV)Seok`nwH zb{%!VIyl1Ny)HV!GnD`35L6mStA5Ojoyi2u3CrL2lkgBKd8j1c5`?%7kpasw$ZMhz zKbA!`)_};Z%=W4cCD} zmoOyQJ;sN1sI&vHzNOAId03YfmpPB}@QN_B7&9?$hk^M$NO2QbeCdUJGY+w2-}W8h zq2rxl2(p0W6?{QZstyCxncCJmh%?Q^pVViX4uMNnB1H<6!_G=Mm>gwf8Vc0yaq?xo z7QAFyl-(FsgiL26mV(+hLJESAqZJ|vHPzJldImBTkbus^5+0>oC7-oXC3jtQAaor& z6^UX^#9tuuIV}3*D3>v;a7;w=OfhLmvdBe6g~S;xZBTx&9!9CF1A{&21auS%s19pe zIV@$J?|M93ebZU=#ZYLcj`s`>gprEIFy68q(jHcBCb8Z%HVhG{hj6IZ60fSq!ekAW ze#o~3mPxGajFLBXQeCZig#?5p6s_27Xx|W;Hnh?%`>}@8#b9d`l1?QSav&x$sHv-~ zi9oMBMlA<)qIn!3eJ(EaV71Gljrt2&)#2Cb5o!}6MqP7bXkegNPn{bZ8V!RG zM+PP!oWO?Khz{ITTLq~I{W47bM2}jGI$@(JbTrX7F*-gb#gy? zC_YbrP2G6%#bUUI<823eNnPenj4!Rjwrl*r3aX&an4UODlW673xbz(BJ->M~-cQ>> z91vMH{F|7vyyk#5pU*`SOm$Uln8b3?z$wZd*-fbPNyHOJk3dk&Q9hQ5{Qwr8AZU4R zWZ+p(KNBFgsjJ&JNNRAfOM(=Sp3<7yr*REIfj@J>>_cIIHJWcrA*sHDMtNfeoS*7 zD?bjN3#74XipfPaj`FCcjqN+IH|*SXdB{P$>BY+1{g9l7hak2hM~SfwO;81CGww#( zDzRyNAe=aPl8=b$uyb2mxaz8_!l&Cl2hnXb5^}52leXt^h&x*5vmdby4Lc^dgq&rV zU8q(L3w4JNA1=PSZ{NP+^=ubezuC0R_TI(#+>hqPxGZVHU9W9Zb8%VHiT+)T&4T*o z62@ZveBu+Im=?sVU;XN7ze|6(3!1>UbVsfafB3`UWiNYKskcS{_Cr5)jv?mavhS4h zpKS}JVDWPPy_em^T(FmuCT)yeR?215oZU%xG4ZQkw45af>v1+PFpeycZ82fb<=w@$ zH{4C2{l<_+e~TpezsqF;)y4wdCh`yd{7EVn&x={KLnh<``z!3Z@SPd=svpxz7K4x z0x45Bn{G?}E!BB7`h_eBz}<}Jsyk=PbGCf5WVj2x=l8gNEgzkPoNS%B(7Q7|TaLP# zjmwE~+oG0L9)9@YX_oJ@{?^L1?d+fb`JaP2QQyWTMVD{Pu;Km+OLJ* z`@P=_ZbYE2TBu)LhIW610;~npa(L0ah_g*=<*q^8Fb+3C}dRaU#_qeMV(bMo^ zDf@w}_?F^3I~(47uV;&YxpdZi)43A>j70j-3mb1~UiC0)#9p>eLn4ad1Z`lCOZ4Yqha6XECf+ix%WDR&{3 z;h~2figQ$72G``AjB}G(lb6h+C6?@3OSv$-=iG{OOsR9OIy<{GK-zxc&3UU0bC7Y)-**V6f;>@x{7GtHq}UUPAu z`OIg6^`@Nr!WX_!?sk-4*$3Qoe%<#Z3rW=S>?YF^vv%#;75oOZOtYKXl?%)F?!W*3 z;v?5j{cg#wqnB z228F+d)~WuZ@B5Eo1QY)>%4wC*2``nnuaSrCc7b8df&Qnp*pdey21_2%2^Tfn|wBF zySCBNIp3`S^KZH3mNe^Y_UyNq>9-Epmerk}C4ahMgu2JG8(9j#pUK(&)ib3|87PZ# z&VC`g8G(L`qjVELF@>M}07QOvAhKjC|c)tu3Y*VB*K!aDGu2@wWt9rrZckP?1; zNz8m(D_B|Zc#?(O3_b=%c;e&yjuww^x=4=EP8}(}kKc^D^hXkDXJ7}#u5+#ij~iby zCu09h>r}pMTR_Nt87wy_TGDD-+??OA^eDDnT(x*b@xbEYtHdAT49|GuL70)SqYz>O z`C~lBS&Tad8Q=ApX)QWmo4OZ`5AY+wCnlc6Opa>}AUdwWJ(^C_l$?|NC1Fsu54oY^ z(V|UZydGe34j?V04#4y7pf8AhI|KNeAb`}d`~K+2c=+OjUy2OB90Zba!0}pC&@#_B zN>7E?!~&d?gS8AAWUbk7#{tJjix+^AWmXgb%xkfrsxl#RY}vRGve0E=>z2(?nRRxa z$5KTf@NKR95C)B>Kqsw2mINcPz5<1#m6ueps+?`)G6c1PQwuRi>o(@exC-p>FMM4B zPW#49(JGGCE>uvau?NcxTIFfq0I-kW!!&5wk`1yA$yZxrb9nZ3*Ri7%I454?7c$8BUz*3MbEXLl|ldo40Ha z8#e8L)HHxakItCRQQmI_klKQ^jjryV@bKY-0Qy5Xiv^e5cw;zs@BN|enk%Apn{hzU zXtk&e^T;_Wc9GS}VBdjQE?Phu!h(brk4AsX;; zG>lV+HQ`oGosM!aJ%IGbCu$*m(J>S-KLs8l$ifv6^Z zExa=Uxu=HCs~xj&{nVu#b-4mklEeamY@JhgW^LQ7V>=z&w(X8>yJOq7ZQHi3j?;1a zj*X6;eE0K?vG&#vm^;^)8#U^zI_mm(q}S$C?6@Yc*DR@=aw~0>A`-)Eb)8BXMCF%t z)qvY^(8ZI66qO@vyMsNF<`n=ZUdR_Fu~(zIF$4V8tW$^x*N5aLah!HiR%a3?XLK_> zkMk}i)I5U8u|N9FdaJ5jP-Z+yiUei6os?xT-UCFNHbK6%D=vpi8JbHZwx$9}Omz1% z*j(Hn;ydMqSv2cZNOH##0K4otvAW>#Wx2khgbo!RF$vmCZUcEFnqN(gFgmASi#Q~T zcc6cfxIx8}RBExc!sEF>8wh?zric#@?0@>B$r>1jFc#Yy;~t6%V8%T~$WK;6p^Ye= zWHE0$p*gFYCU&Dz5^KjT2Bmbk-_aK-?JR6=54PZ^NF>@Nrql-*QL8PL(^Y-X*3F_| zHx5Gb7^AW3{e6?mrz@W{pQcm987@GosEQ%e>N}rS)|sS4N?nmnbzyMhmCPHYhr1P} zFaBFOV%_+U&9k3Pt&8r?(Ga`n=tm`9W-45YU7`dOjp5%q(bHGhi)_xk#!HF(p9`*w zG|Y!#viL~_b8G0bS_PYE=qX^=I3*!Ic_e%*!mo<3=Sj7KsPB)FM6nayJ&uYhUq;;PbrM>SzFRg0-}|$-Lc-mn8ts!lNco>3gJfDX*54q2bfY*#Y5C0R7+%qQ56nw|m`lUf}u1=Wlb=mea1^65Z<; zC9mfwL1<_71sjgj;;K&??F3$VvpySG<@UcWdSbQ|xjJw^@2p$H+BE8GNS@m$L%K>& z_y+Fz4z}ljO9(`meYyc(KrlQlAy{N9Eor2A*}zydtj=HWhI?+NAGfOa16kA&gM*hWgp>u~mX{#In*nt@j)JkZ zDJ+M^Y|W|v*ruPd9vpbZZHtTB?ZafHY7#^cToH`JE>dF z%$;FvC{s|0g(&Uf9=fdON_F|Z7y4Gcb|*J6BjWz$GOLL4t_N#izyJK-xPdVx-STRO z3Rot98m;bk!C}sSzsfWv*~foa{p2ZMok6TyLWo!-Wsk8s49Y+4+%g()2-_w>IRiE@+cia3FowL4xgLOJux_nCld}BG=KPCT> ze{+kY?V;HY`)hb+frgjY&>=9N-ob7+r}(j=_^IaT(gP7$ASgW-|2Z>t^Pf{`L4N4_ zP(p+V1c(N(Fc7af$O37s=rSYj^>czl{a0K8_gpa-LCat{Z+qo@LicP!=-ESm%N1}^ z!?Ofs=WhbO-$Nv;*c6tt++yrhHyT$PG!4M^SM`Ww|ApHt2uO^B5>c%#TR=7{nQV{F zMAf;)7Jff$RKCdR5e~4zeJKyuM$_EuEoiV7qCJ zM&@`#_)uC1yPI%!VP!+BC2A1=kRG4ISOOnu6Q0`B9cMY9mE<}==OT7Nf{Y;=y*w0! zh^#6`l1iv7#D8!H`!eL2iPJ<9AJ>u+!L~wkmdQJx)D# zsZdM6KwKe&z@0T{jzQNo#fX>AZ`#8Cqp{R zZel~`?jX=P0lq%>2GcaflatOWix;gB$<1NL)nJz-wJGdb(fG{}r;9JZ9BWMop*{`c za>HRYA-Cl!>YLG}u1FUk;JVwIXtpP>QTzNpNsx!Ea$VKIkQ}TWkV^PxOg~NVXZS)U zJCk}j3zd3&-at-Op|nJ+!b_LeL9}pU=t~aTihP7?_z_VcbecX2IU-QH`6Nd+<_tbs zN9TUl2!@Pkae~6^M6@MO%;O`Z^*{~(@o^XCUd%>tNP>baZC2HwC92DnijACCD@^3B zKA(baUf!4Gm>&l%p78J_aH}Y9haNJ4H#w=OmT!}&JtG1=_4$G{Aes2A?LK%~=-b}jp2QGz+%Gv?ECl*5 z@R^5pmhMDnS#f(6S(Si~+03Cri;gAk&9LA&f-$HS9^= z*rbvcpXd_aYrp8ZY@`l$i&#=#g=&HZd_<9+O`>U8T1>QAY*2#DwH) zaD%nuYr?s0huDSmXMZwss{x5IlJ>!T_hkwvy%7w%jh#b@eX)>K3xdkldZnD9)Gsnu zYco!rxu*W-lkgFD>={1fOGI$Vxln^cMR^b0dDj z6%mQbINT7YS7(n54ic}z%thol_}j0$?FxGy&KM%Bf&aq`wq!N{z38gqIJ6Ra)RMKb z`}-q%vm-)}%B%xDVuaa_Mo2~g`vyKv?Jv}!(R+hPds}-D>?D5cln#s}cLrimd;=axg#E~a0wG)W#?NjHeXfw(`VFiz{eH~{vlYb6)el+#`IEuV^rGh$4c_FJ3Q+0X? zcA)(3RnWV$|Bz*)+{PyFw{0jVV%4@SU{N!xvK~yZ3#rD2wT_3csdDkt_k(pxdQ*~x ztS&;x;c9D%8GdYC^W}Cq_dUJAiMo*qcU{20a7+6PzKRUu?C!@Ts0nMHdBTTbdOz2U zIQi=3EUuHZCjrNueFh0-M z$jJHp)o*d1xrf=@f|da6ky8mku7HbR?$#nseYXjku!QQi-N`l%Oj&I4`FS;tk6KvY z`%`EXpM4y}Ag>@?yCH;Gph?&4o~SI1_KDfLXf6@L20=((Zhj5jjuz`Vehznj{J;AM_^1f109cv_Qf%94?2fr@)Yqr z;RE0R_0AWGKXm!xi+rZetdq!OSbtmVdsk1QmD8~6uRLORk)m_MnPI13biv>r3mt^n z{((drEW;Li5_5Y&{w3IR+kTlxJYxYRF7ZFe19e|pSeuqT9nEuF=66@=R9E+Z zk}qE4$A4gXk8BPmz;n)NhyO*#{;eJ0$!_mIS$xpx$!OeAUU2C-Sv@oI66Hc$0!?=46+L*YqX^q;u!UmY?U9wM902PHk0<;TidqZkaM}8z$H-q$r_oH7g89U zn995>4H&MZl^rOZ2shgZSkW2+hjvoiU~aqS{TPGmRRhkvfIj2ryB#CSyPboN?%NyW zJki@i1ZkIevM`O6Z#kCG=b56UQK<$o;IZCg_Rvn`Ssy$}N@dREC+A>TEtxrB-e6wb zHap5PE&ig#*i*k=FK@(Iq1v?t>I9m|?_qI?m=uQ!-e7IS=kI;K*Npb?!iC}YTjwus zP3M)q=f8MP9KojNGf#IB6}FJuA(+mY(PFM6XFiS!);5yHx)BRKe*>+bFheI}t)3dzShZj5a07 z)~&@~YXP5YGs%~2tL5nwDH)!HCJ|$0(S43BwvWl3JSTBuJ-iL)B)4OTm1A3H4@}fd z$b|JswT0M1H}Zi~=q0s~xKlJH@1#Ey9N~Ab^|r7I=#PixtKzn1r^lY6Xb6Lu%L^b> z;T2F3syeyztdY_F!fY+!v#4C@EC24HgP^8^<2TJr3Tb zVamr4d&$z*lwc)84Yz;j^HW%{AOSe)O0*EFA$>CUF~>yl+6ShzwRw1O75SWJW zXsM8sazn8JECEpk`)5-zRg!N>;KT-6zl$Za|6ucjlAl2M;5O}ykNB{BWR^X|QH3N7 zt5~W=7-!;tkA7$==;dHB99WV_s<<<(e~TNeMv%`Pj$!Y=6>ty-$wnvMt1|_d+XnJr zzDa__*VsZeLKIbv#?RGjeZGVC3ca045TU3L{wp)^Y8935_hU19XC^2Ztv? zzXA@E#6WUDsYbB6-m=z0>jGgF;_`p;7#D$~+*?9SiP3`y*QSBf`9UJ?R2xu${DrQ7@Pd65b@#7>yvX49xjdZkai0jT3SkU)a+Ga)GEr6Y6_fAXy<4MTmucUdL=tbnwy$Q?w~K$&FI#b2HB=^ z(hY3Tg=(G@(Br>m8)2<~kov^wUX7{c3jHxdr4u9^d)0d8N^xXa2Nn+E7WV+6kg%HK=>bAVBX*Eh zJUCD-i55BiCgS@76@8Yu}7s3&w3QT=8n*GEs+J1*g>#M zstjF>F9x>6jq?+ZEXh(mAq>`g(K4;F9fuSBWdAr61^x2H24>9v9=Ix zxLLBy6oT0frp=~_*X?f=4bl*1U8tsyMIjh%L^5Hql^eW#H?fz$HvzKTl3ToQqv*z$ z(H2UN#8k=-KsfCoaRfhjsWtt9+MkZl@^*$ItAqFjMeRKP4=rrLTTASQQ81LF+A#Vx z;~cB4S^1JuK4fJi8?IBXC}Ev|B^_Bm0u4zie{i!bok$e4%hr6h(rXdQHk2b#FUCx%+4zYKn`&Hn=n;6`S&3ntADT7-^^C|hQHgnvKl~srQw+V}=7{QW&0IGq1 z*ucbewvy**jH;qD$C{JMfrj7LY zUB`8H`l)KbE#YGr6(PsAjX5{3_KXio4s9Y&dv;_?U|Bon!v_XSY&fE$KqmwKx)2Vg$CQoct0mZH>X%$(j1{zkftb8q-Fk0!nf@1ZXjPG$%tH9l7skc zwVmRY5~sDqP2NP#V#y-j)OcF30Y}9Wp1k9P|D9)ValRlLVr~4_g&RyxqiYK+Y3kVp zw})UZ&km}BJYOCVH2~x_F@!<4T(bdL$H0CwjX?z@tHzP#` zq;DpZG)NhGiOW<2?|S2sbjJgKh6jg0u3MSaw4hJ7p#|01G58lfM^f*S#;;tx*=``Z zLI{TFV;8!m1%|`m)Qz_+;DpF%|maeJCa$}lUd18=1Y@DF|f#lsGbnTqAWl<0lEwX~aQPdxZ}vKaxvtD^y_EMd@dm&5r^Sl*qh7}h{Rckp2kK8C`d-pV z_GEjCkK(Yi@H9Bmj504~X(JD6=8Cb?m4=3B$@&3)qq%jKDQ)I>%qu#}bv$feH?p4r zkts*0fI&jv?c}J|9RL3LKR$rp&bs%gw!X3g$&?Bej;CXfQyuEanZ3g`A-KREP-P<6e3~ z<(1(o0aAi#?D=r46uO1{H$9I93#&VSJ>eQ!{9Inqr@c(x8j`N`i-sg&GwX}aV{qtJUI^pQH*n07I~`>5ak)XT)nhh zipS-4^)#~+Jeu@PJBSX=E|Y9wd-!i10q-3VS$AB^J}zB1_=aa(dwPF$V~My{n&yAk zBVy;@Z-E<)>kLwxzcBi|BUC5M$;GwyM79ea-e`R)8zH#6rJg1kC@Rsa=+4hG63n}49p8q*_@#ZlF+VA0r;?uVPM(5QOXA_c9P}6}<6ro44K_CR?FRaY z{rH7?qwIJ68kXb-omm5&Jh%Db4nhq9O~Q+V5S;=}NgTV1W5qE|Sof6a>x~q?+^c9< zR_iAFTR;V#ooBD0yB*XUw-)`k12*wmItCo%< zFTS?xrLsI$6q5LzrpheQkEO~8CER9!y5lZ#a_4DO)znaehLlJtlhh7uXO{SV1-B-I z-@!tW%XFXKr@dmSsG5bjaf-dgo+in-ext499$lz6XGEnGL7wq@d&|VjBV6bw@MlT< z&;Gaie>LNi9kz`IlpJlxkFSl~3Itlf!lD|5k#RTp$VSTv z@kFb*EGT#gxbaf2#5Nk*{!Y&8x(dw z&dzzWiO&dV;cIo+L~A!rDy{Ofuso~C&2~v-oJ2N5x!=)R!*;hfrus9iZhZOs*70(* zs?iTnztC^4`|^?WE(+LHTJQK4KAj*1?G0ik>5OoWT~$%)wYK<9GQNwOK3Y-$OF<~A zFQZ{Mg)K{tFV?{O`iSiL&;Ix3{ar8d@4dGoP2MaC76(Ep8qj$&mv%*s%W}*>+ zNxd`ttZnWcR!iuM{_VC4j{VH@^oJi26USjg^ot8hxWdpEVR&PSh}g0~R4tm3&hQ(% zbdoqqNO|rHSNtF1DC%%Z7SUp54w5`hrG4Ia;Nsgm>X*3(sCaClJ z(sinH&c!H*ULbjAZ-3I0h)gcIF8=<~VE&bT8v-K6cBKffsuLI$7P&hmBR2q! z!yu(i*j8Es_ML`c`#Z-@wOBz{S9bk2wy)^K)&iTC%PbK^0c|0Gp%hMslqL~dJTn~< zak#~;I^1(ogB!qs?`~@m$Oe`Lw-GSY5um$15a2+L;O4dx(E{SnDCDSK>97&#NzDgk zKvr6X=BHw~h+>UvjJ(1n#=MQYNtXys9$p=k@*|FQ*%~`k#M+U=EUP{4&z|iX2zXZ! z^Ypv=$~UbP`Y)jbj8dIVE5y-K+IYCld-BjC{xf_kQw)@5qc&wt43rSQDb&f5?ry=A zR#s&;X&xMdGH6>n7sb3kcT>!mVfZLKi8ZR4XvUCo6UP3?%HQXkMjB$(*tmiCV4&u* z66i-VexbG&+I!S*Y%fTDTN7)fte%$cCQianD z&4N}B>A1fo+~Q5E<G2@G5(G^^N&C5jH(>>-UMmZq`SQczl2Eh+E&qQ9hSjA^gdEs{Lm zY43j-l!Vps%7E__pj=v-u3Ci&Q6PW5DvD~VvU!K1LTzKMv|xHjVMXw+H8+pRFJY=? zJv_KC6E;?_8Wl)nl8@~>23q6A4)6cM@Y{oUEN}0pd0K`%FMYE^sBt?Nf0wyG3FPOU z(>X{wln}NacLa{hIKo_b@G)&+x!?4$UIIFVE;suG@OeEmPg?0*H^$}b9%e5Q0_&L# z@i>Kllp$tCRFBhsIFR`dmwk2~^n8Ao`teyg?mMUQ3bOO>ObaI$#ymTmA(aKQKivQZ z3K4jCauj-Jp)Zpjdw>Bytz&qZ!R1|wqZD2S?caaWuF1QSK@{F?f_`aR2uNSZJbl@& z0sF0p$bv6Mo^vkwY&mP{e))Fr*LMf?`ZhaV!YPcLvlaGf$20nM^c5?gvw#nI&&3#n z)UV#td4H<^Dj0DS|HaTG5|0c&{}{^8w3ss%+S3F^$Dn4Knt6cBF0}y-L#qbZL__PYEkzkKnXQQlp|9KhYrw{s)Ww)Jii~E7;pDUcWRe11B;?oR z@z@R)a8WuSAc%zFy6vd422EDwB-5GUG?HE5Xzs@E#wVr&QtX9~V(bSI{c;%mInC78 z7{r!AcW0WN3vgFc-Se*h4B2ft8;?Tr}os2#OTd-do`*SBgka%0;@&F zsO$YdQPuLxA47n?V_TEOMi#d%9cBQ??BF4cZ=j&EWMF_4uks-0^WOz0(pm-#2In>l zGY$YONIm8y1F=#Ff1i8J%(ALc#yHJMTb*6~x1?yo9FL(QI)`5CQU)S%pndwRrZGOV zIBylUxs#~6A9rxLqEqQL33m727<~rDnsaQ=^v_oRdn>Y_qa|&u5)h`cr?wTK%Ch_a zsH~Jhc*B?B=FnVdLeE{A&|K$H#5EgyHh}w|yLU5a-D?<*)CmpoIslYnK9jD7kSe?j4!vdCrT)DEp(!=SYP#{y`nb$e#F zoj6PPI@eqFsBd18wsiig%VjeJDx?cp9?dzOg!?$4b(H{nSP-Kgf2s3F^gy@f#_yP| zAPO&Yp2E+bwS8sIyKkZUN@rT7r>&e$PnEW!;0riZZu(PHp=-9QzW?nU((X`=7I0L} zWM^lmtVrL=Xlcyb6R(|p-S(ziV|VmcJ67sZ*H$%lcy#tr-^mL4eqfX`Rv7)BVtb?| zwOx{F>tt!~eX~sr()seczcX5Xb=i%(>0!IMzH?9cPNYBV_dUes) z&e7;AUMJWjgJYiPWfpv+D7dIc9;vWyJ$y}RKceASVx>{Shp(`4lN9?zEla0HBK8Z> z6{kmS?uJksyZ}Jvq_={~*_7*QD&hg@Z_ z+?5Y}-$@HVaBNJsg9DjUH)^A1#*0k13>2J!2mR0s8H1~B`=_94DiAG-!V2OB()&6j zK2>cCDJW?!Mzi4>`W*5tal0A;9MldrhNR{&wF0}!YD5E-uW?lm7;ZKO<_ z;YmqerzW*zH4++*_`qLI%3-(m8!Ud+NzE)o>xZ+Xw|uePplFOW5PQ|xnf({bYuuy&?-P4>aLo{LDr6wMy3hBTjcO99S2l0i@NT0g}n4n=(FcMmH2#f+cs5LipR!UbB2lV@CQB6CvC3FY1d{y_*O+JRV0zRUcmUOjvIYFWTxtx?YTLIdv*|IgpcxY)} zOkR1Q8=vlb5w4k<^oAx_Inlw6@wq8-Xo)CMXc8|k>?GpnrzuLS)QGsiDjjFoG4CY% zN`h#eg4;`C6*WnB6L*@14FOF7BP#C z`+A^xuD4d7`vO`z{SC_!Sr3<@Ku4UG;<=SgdV;?*3ii*&?Ug?}7@HoKuy~-y9XA`O z-QLJa{xH&+{|3i@R*EKKu%c1pt-z6{Q>J~0{m|RP$|~UFLV0t?Am;fa_OXTgbh(44 zkS8dOCpK51n3TTgc*L=m@+-<639AqjB`}1ZEsuyGNR1_SF!45=pvVoH_)%1d^*jb5 zAN6k8uN~S1!7azvI<6YDZ}}&|8gKODM4`2^9M7g0A&wNKGYV^PZFrv~?*xe#LSoWl zbT&vI(0TA%pux-DYUGvBbqM-l%-iUSMoHY8l+VBFN^TgJ{LBxYQNDWYNMYB3^XYiE zzR1kaj?(>;1lriC5~*1e5h8UOzdM~>ID@QV^>Wn9f0}~}f0=tSDbSdp@$0;k{!KB! z=SdoYu6^oIXP}B~iyOG=B`NAk=IaK-RGv_G&@PfpaG?(wRuZq2FP)wIWNX>}iCyJ@ z7Y==;YT@gcxnLYRaf7d6(;ELLT)m_Tan=~7>(8(+U}2STin>i*i_h8?QTH^5FyO;U zE-!y{QyKY)7YB+YCVrtjKPYzKEv*5LOYk{eYMe%RJSr4>bF6bMHOAcZ?>R+hBG*)Y zGH%;T@gsdsv$=ip)c`)RO%j8&3uy+oW30!L(1T*@E$>@J_Gal{zQT@qYGJdet7PBR z1xC_k0`01IC=%a%0UxMOHc`Cdc+vvuQEIv`Vx^-W3Dw15#OLOTCt_3v>TbOdW{b4?tg#q0h zwttsI0rH6Co#6A_C?3R(hPI>C8ijJ4_SPjgqqP`KT#1-dyb7OxXZCJ?qT`{r*2c%DT*?j3x9hz+oYXSkfF~Nxk9g^L<5C73MIy;-~0I(-v!4sId zff&9{-~gTEy6vmi|6)JU@F9#aurlxYH?R2^a)8`rmGLzc!C!>b#15NoG8kh&< zGiG^iS{JyoSM&$1ew{U0d;@3A@Y(P?UA|3L`f>gwvgfYb%xnFY?Y+P5S(m}CZH?*2 z?tyv<8kvxu^6I_+<~==^TLZxtmXUtG_JiW?b*E8f?#2b{f#T|{l{hJ0zQxYIJn!iw zWsaVE_8H>0Y<1r3u);U!nddbk$Ia$or8rw*z-&(!Q-=KtQ< z?ANjGYPi~FVEyu zt>wXTHl!kO!!?h{wcV(NI+`~Obi-CT+xkl|A{Bv^ld;CD8~hyl(X?_Oo;RL}zceHh z4v+tJKP|c&OmG*~mK4sAwypfrO@W8QzRi=i1$Rwds2YrK=Tji}Y{q22FLiTGC4jEJ z?KOEU_1^ZTUfhsb7k9Pbe}x1aLohaNs+a8(K`w^d{dn^A)b1a8H&A>)Wpl!x3*8T# z?u%~l0~!F-1{O?uiqvk}G0Phk!7CK!+zDihtZmJ?j|Xk0>I`ZP%+aP$A9TX zO?8MfO0=@5mome*GH#2)GVR+)`_rS%X=tIBq2jRh+Bv6u@-~qBh=7*}iChuf`ch1; zF*>)hoRT^Y{XH$c3!`Jci*3hg`3lHG3wZ=LeO}qgo~=|J#^@k96-Vjs`FJ z6{b0tcU=M!?de&|zrY)*00rG#Ock9f{=O=I?LWk*NS%MpU)J)!d2*c7lm94IrKCQ5 zJr4+dJrJw~$mBiCFwC7%*~~guZK_#q|F2wNAIgBK1q2=e; zTCl1WJ`@l=pZ?nfuTISHkM#>kZjsa0vrpzPwnPt%Y4Pci<9Q|lFL58_!T4KjaFm~z zymD!630tm0Re55ye|maOA!l}~-jPL9h_8I)A+!W(|*A%ibbCad% z;VfT8XPDal=xl*_Dwfogi5MU`2HeLp?44T(usu9I8kIpdUcOMT3X)eU#epVnd2=+W zD<6@(5EL@qz?(3|nqYwMdO8GP1@0{ZcUe1dheKCoY(deSaFx8(*|mtzUe?eQiaX69 zt5NJeIM@+z;?V?ganCKaAVHopp+a_vvArNz6GAFWLEroL8}~{OER~W;$N_r&Hj?Y1 zfAaNvm}FBOZ3_<;%`%Uh0n~G#0-28CP@Pqk4O6e164X&_Fmlz2n4jhz#-_qHlHyp1 zGW)Jd)cz{b`<$38R+wFRJjp0jMP`y2IG`&zR)*Fw(S-DaG)Yt-> zzL0-AOVP3K(E#%r`+58)@wKq!X#_s&v{6Mi(yT)6;ZKq^Q~k*&W?tqWyxl%~c}iFw z3v-R#t#*L?g|M_-$8xUNljJuNRLrg+C?!U&b5WO|(?O_)aY^>IQ6^W^omO@rCBv)X z1k!#cGLIrYyy)25Y(pP9+1PEjLzD7X7kui;VhMTi&nqS6Q$6g_LCj z%4b_eaMzg03ykl2-0ssG@tmisB9M(2YlUowRJ0+>vm52bqclw^Bu(OHliH1BqvE34 zP5UIUo)azS0eF@_&ahi6*Fv zttPor;e>-`LW}1*)g_SxJj!CcHrr{Sf0I87V*)2CDhK(Z+Ii<78we*Yg)dTK? zWH{2n{bz$UDs`H8%StvR^JsY}DKdXva6eF#$az~cObB}uyXFgcq(8+#61W`LQl zbc_cHA#e%tlSj*FWd|;jFH$GKvfBx72+0V_X93W};SWud5p*1^Es=E~z4zChYL5k= zrd+r$`2q4mk@kgohF*URzK-mDy=q zGvJe-FMrOs_(=GENf;}4NV2Y%x(;^z94nLaLwNo|C~ z1A4V?%Ftu`?iMrxiHOy9d=XD5pyONS%C)*5B6~T^(hPw(lv?!|4m4%TFL~z-6f!9G zySSBkhXzue<~f)c6U#s29xv4!y#Ev@lQc55l^P2(4tG!PaqX&fyDD!m%YTm`3*p0J zTtifY9E966WCBH#^o_>D}~a&qI$^ zdS35!yAO(|2NgPhvmPA z^$StO#9-C@!v5(itX}pYeek1ut?yd2p|;B+rp{(2ttjkirtC}`-mZvU-sbgL^hj{+ z%bwxHPtYo5ko=|hOF>T6h0B@I& zCT4j?g+f5{Xzs7hLfZkih{c&gbFc#hyo{}Mo>6*Ow+arEq!3l&d{g72cH%S^u>Gl3 z(BgMw8~R#C=)s_7Aba~)$EHU%sUn6Y_Gm#HK50bf^nfw#DUHB^X{=*kW-f!i^t$wh zUV=a;s-IZ?=FRIrGDoK;#csErdpyT%RH>6l@EP{R?8MSd=1Rhet12Tb=20$r9zDs4 zfg{?{_T!qN&{g|w+2PG4`0_<}F+h`dqQt>_Ifpd=oC;V&X)!o>bog9#nB4*k@k_W@ z)zo)WcSLj}vB^kAY1SZH4#jB)sB05keQW`X0u4|nh!&)nr8o1BzB3HA|Fp-unoPR) zQWIpQ)&8oM(=;NJ{-v>ga^k<;5M-zc zF{lF7t5R(+%9wi6BUSj^7@qWedaP_aN6nn_{@v`ulYnH$qrQz;pjtDMLs5m@+8- z&hyLnWWl?n3xF2ErNGQ`AD{Xa`21Q&?ruT(8sxr+y6J3pG?`5 zP_nB5y`i;**jYDVQn=Hozg=gwSm3F;j59*M9l1e1js5&1pLs}uGBhoc?$AFt;#sa6 zW^II-oE)?;o?F~$75B%#Pkbxsf6u$s(m9=dskWo0e+j_f^H8FGyU0oYPQaEr*sBjH zc1_(#x$|0LdZj9`pJY5G)zR0qUYG~0U0 zl)zn*A_;iT2h75q8Zr1)b52p$1zzRWW>NptoM>I1s;SHTVh$`bVpy3Yi-@BzaUzC= ze?rNQy?A^;uWcYN;SdRV3ZGCtooF70KHMZbmdu@5)qzUC7>@1CQmq&@kT8wMjA^+-lC%kaVN|AKKSk^1vUHG(?1Vd$>0bb$VA8`%UI$Vd5I``>qOl1enn+*_(-g z9+u{2APaLpSBDS9iX;MmEFw*KOv}fuy;ln@x=vEUo(q#+?-c9P(lnXakRDDKxES>P zp^}~#XO~!cV3ts;zxDUHPS*s_+Q`IcroFBR1FHMc2qw{k2;qTn(+D{|(yT<6ik!qU zs@h;i6X6#<`pC{`sl0&sRbfTP0Fk~b4yUl-R=WqXn%Sf;$0{leNUA)>Xr?r;O>tBk zWRemQzZCwF?(RlceE+}GAu3{W*N6y0o=CxS_>-Qwh=h-efpAqSg)p`XtC(DZhtc>9 zO}A;)7$ugHl{Kf~k|LGkNkmcjAC=eiYBF;{wJY0%?$>>!_?^e$jTh4v;j?o79M?NU zv^kk8*`?R20dR={DkEN>jd-A<{iqnfGb~9gl6hW%E4^ z2afU}vZ?a+w(OTi-fVlg9$NX6UGCEDmb@8RCR}XGMln8>#LoetjwZOtuAVc*R%NNU zpV)5OB8P};02G6viTk*DKf=(lRZlHwin&RCK$8of-_W1EHw%5N`o6tQ#|ce8bJq$f~T$Zc^BgmU->GD421$E)qHo~Yxq=6ysfIiG*w;}dzplDmpx1sbU zVeGkYGVQELnPJ3E-(r#0<_=2hc221|YboQl;b3)}QO0DPF0-!}UbGe3s}EyiU@hI7 zJNg(A`WTULPzZ)+&z&8Ms@>o>&)02e=~fLMtPp&xDn>3apJ{(F%E#JZKGqS^C^1Z| z&0q-dpw)vr5v`2*u1X1Q(y_0)u;#lLs7i_LO=Z+|Kv*Li$@`B>A*6&bAHc*1YOVb>~`O z(dY99L6??;;h=mFQ2-a{lcGmJUA0^gVXef7hE1IS+OhM|kPM z=t=Jke9R1p2d9%W~DU>G0S3hredTk44-;e4(e^! z>HPXuH?L(*0_sLP@Of?Oy>xB-w#%0K)8BMi_~vxuUz595Gn~Jg0h=y)HZ)iY-VPLR z!R+;q_uUYy6ppttgB*MRNltUN#7{yR$!$l*c`y7t)1u2ab=<<7^s+gQL+3s20n$pI zi(k#9C69~F_o8!)<@eGXj=3QUYxOP9Gx{|VfVb6-@h-zUA-GB`DFPPBBZJPtK3CNc z6(*s7;6luCu_=BAv>}%*uLeC%xj7seyiuasUjI3WWd_6l1s?Y|1Kj)QE?9KqH@uS{ z*_M0Wnrf$$oSJXw5-xvfpRsX;qpPxMo@Ac>*S$D^!m$tDrNr6rI_(N?xxSHxHJea9 z)1Mi0`*t=j$xlK^)3=ZY=w5mOb>G@hi)jygfp%Wz-}i?Kp*#c3`DC$XJYh_t+NPLU z+wDvK40B(SXJ^h(rW1ucUiIsz=)W!oC8@EdV83-~ev-&*31tqKx!P38Gnn`1+Z)^c zI&g;l<#QTBfTiDma@QErzwV{9w#myo*A(tS>zaE5k}@;?&*)0e&>3-&cVS@xJK^Uz znUk0|^Qrw0vw(W12+l?Tnm6gMT+WjZTUN=MAy@>dKru@&2Lou0ZGg%4C*}Xqbk5&# z_piVX7A6k=roJmt0~Li;fRBA1FXuoO`c!0LwbJ( zvR;qeDNrAECiwMb?_H-9Au)Ef1z`5B`oiO%Jgof5VxjX1aUZzN$jFiLDbuWOVu|7P zoe}cz0y1{FKQ5f-OJ`wj?smJ0RMNN{?+@iMl0q4i;$!Fsy|IoO;b{`m;b=nP)mdH` z@@d*q*SUzs`zgA7l}QlV7N~$Fm(Fazg5o1?($#_SML)88?-D=T{&y#ow$|o5(NdM6 zhH=(Z&%=O#AQ}4JdmN_@Ugn*s8GxJU2Nq$1CM<-w=aJ@Z>~AwdId&~Jxyk~^SU8Z6F~MQ{(Ph-ylIin2GVsViFwiZ~F#ulqOSjos$HFQubw3^)@BOwT_ZR9fm@Q;hSVRDRK1;)+ntWm9@G3YeD8J{8Wx%lGz{k0&olF_& zlMvqc%qE-zEZBy9eOo^1VPrQ#FCO==%~FCl)DPi>S|N*lh_)uPT=$;1`zetjM;tbSA%seMBGjanZ@r(IENe=@$E`?WM#(Z{>I@sz-!j>`~yiFeui* zKSU5(g}!mbC=ndyUhTF1fiK*|O3Bi&L;-`ab7+Z@gzJx{F-2lkhwT}S>X|j=PUTVJ zH8P_pXuRPz5Tq~M{*N-J5||G)#pu_3B2kugmT;{2+4=#ugqf8HADVwa9WgXer71h# zY2?$vyONjR)0g@F*4IU>a5m5gwsQLI-@fE8EL2e-?n8MA2O)78iksi3(sQrCQ`ncF zJ2~N5kks(qcu6z!>lcm14Q}^h-704zt5kW2_dND=77z9m^A?Cdv(x=1NV55~i5jfv_ev}U zIgno(8L)UWpo$T$qNMV@PEakNDII?`2&X|JT^v`rw9miHTKtK*_Ow*jIcX&rC!Tbj zokLlX6hV65)}!VDt?4T9!ps=>=rYh!~upZMw)d9ezo-qo)aa=B(Ejog6Ac^ zWw4=CBV?Z{v!OuI~kOa%W|)_TWl*x<24QHFlr9-(KJdP(Dw{EcwJE zW8L@r&6>oZh&un5Ee03Y{HhozkV!fiHJpbe<+m^D*x@fj9BY*+=+8=Yeu)}J;u$4~ zAZtv}QYgk{3|*e=`7d1G3T}Ws((e9{G-&es>Unc^YRH#1}_Y3`su2J~i2{yl5>E$+o{Z z%-!OvHP6htG_wn;Ucq}4gv3<-TAqNCt6pPA45p;0i_y2ne+t3o`XGF?2ufynVbfoD zI>E%9>zkNsgIq7>^}7?Vfuql@kDcpO)DV_RZH~B-MXMq_2%;4@+%dP* zTzbyP^_^3RYPhgKSO3nk9KqF6(`8Vs(2H1w#+9ET1 z-g_N}+mYTDt4+g7b~kzK7V|z|A5Q@L)XRcw!BK5C$Nn**zLbdz5c&kS(b1Ga7K_A$ zv2i>8A3(4jZH5(*ath;$RYdS$&NW^y>EG%v0XV%JdW~z!quUhv}0}G#wXs%DJXaa=Nr-zZ#*x+ z1=Nm2Efr#NU(A?RZZEE`SaD2oITH088Z&*U@#J;^SVb1&xYbjx-+#Ph=}}HLmpk#r zn+-JBG#F#%>V4~4abxw`8atpD{nx39+ect@O?@3YrCIS@imb1ydLpAA1NvRD)l`r?FX%sly2yZ#?q4x zu_W^emtG>%Q zQf1AjsGO~47#0F6+7ebDJ~#h7kMKE6=5l@k66#x20SlJ$RL5vh)Ag zC6vouciC4+vI6D?jDlBHYIO}VF(I_#s9{%rb z*Vn|mR)6FMnsTnoPL*|oT1)k+mAEwRxk+J@{!hi43o<>_X4b_~#Fu0v?@;}=H45@z zfyB@ojO9x`O&cBHP+3ACT5Ghmh&+OkW+B9|USBA0E63|sz%XO`eCMnl2#h9}l^j6X zj-a@K+Rn;s?_g;@8=f8-x=DBFrJXFUZ|Snk>-*gb|B1_O?UHa zCqb!zDjhBcYod?LNpYRZNOq8gMEfiqi;w$Y(7ocU@lRrc%OI{5o+Je#J{T@!7(Kjs z+JhJBJhk+(M>x z)zu}$&v~&-m)EidR2o#*Lw(oa`J{^OhA(nP?!AS``^c~UoN*&QBg+2B&n!IiCRt>c z5ItJC(_A!c@k&xBj>Jt2IvpOaW=+RK|pq#YZ$v z$b+Ro>`9-szrMBtZkdnr3k7tQrk6AnFo&2x9S~!_Q39(X;0imlYv=L4;OZ3Ye0{J- zFt|guhckF+G9bBpKGg_G_1&-@(CB$2=%>?v$hh83?W8~7=*S&rjc@^zkF8@9x@xxD z#KGsXMO5>zr6C~Ovk7~5zIZTV;_GX+wHn!#R^wioC&@81@1&W|Mn?5MklpdS>fi!F zS$~atLM35yAL7F53jCQ<4p?p-(q3~=+phX{LR}dsSAf*C zKK~E87WWJ~AzqtIMrtxXE|I3@`$9aSx-^*7*84jkxW?~7FAi`jMtqP;0CO%hgGyV# zhop!ST%BJ%!!tuLZFF;Zyo0$jiFp*qv|oNFU{u*a7v<&>oX@szltI zvH-C&k~yF$ghiStm`6mCS-SOJDIcSl>AK?&EA^;SHvr^H4P(jA)yWHolB*=Kosg1+@<`~jNTG)!&J~f`UbJx{ z*{@@IT4jhS?BZtIVP}g%Za*RL?(yDg%~<{Tp_gW{i4lXM8q(3@!0){)OVht6w(t^) zOorN4si|3niSzadpdaDf^ftN|-o(auNm7dSsg z%nO(ndUnU3ICzySAuy|x){^tdEgo~A)#2*WLk)&Nat{B1PsM# zPo4bq)!x7>J>LZj?2CX5(OwO+4fT&hOer$#Ru{Ig3R+hS38|R>&_fF=Bbxe`?SgLqHBQ*4mbEa#}Cdh7nQ)w!7Tj#is62_Vo3H;tQptiA{zEp zF+DugpameIi&Nk|A9G@nlCS~FeF4C0Ha%{Yn(RAwppt!*6OwQvegGVc<{DJ~AE(t? zDt3Kewbt{Jwf=*aPD*ycy%Oe`X0ChH`R2bZp?}+>^8qWaQK%s*FEKMhG0+rnn9CRW z)ymOy1huNawcH=?a!Bkv`>JMFHM;AlemB~p@)zw2jO5LzOIA?=7No07 zoNTAN0_ZJB2n8jP##YWI`%K?2w2lmc4r7!a_u~OX_U;aAx3tZQIec(QafLsaEqS!l z=L(dd(N|Lv&?xt>sYP(Pq-lBKdDz8KfWaeP#L1_~tG3uC+_0ML#;aggTm?ZoWrawc zBc${9ITt9=XpY)z%>}U;Wb(6zI;*p$sUgGBneMUe5(Hb_cef4$$UsD|Cw(#l)&xgG z{7{+uK}wgkGlX&FsXbEFNS%cDQ*FzUd((f%4+!_;;z>dKA~0KxIuYF8{RdfN(kYPM zun>%ton$BJm6`cZ(@e73Q}9oTg9-JCez+ZY;0VQ>*ncN78IU6(CiWMG>8n=9SjJVi z_7n>W7XGb7x6_g*Ng(BhxI}QKBP#1dXK5+^`Jg!?ikcsEhZIa>^eMkMbEF~4R2jT2 z7C0Pd86csar&wJnoEdXu@k*(>d(e7d=%L~#wI^kucZm z=<{YbN)|WHF=qH5Kp8=$`?Nq{Bv%Pz)-%Xb-DIEYY{?^g8%TD#^4fa)^Ao;*Y4BY% zt3%a!t??0p)FT--WT;kan=hJ_F@@!Gdi*D7}NK5Ad!+f}+z2Dnf z(4wSg9k2E&6eOr!e3c{dcU}?aw_UgHy--ldwDJ*S?kVEbg84(Q_IC|wf~^~(E%b>Y z`2D*hV5%9#XUhK0zLTpYH-K=wZ7xCwK$8M7s=>$z7=MS6%l02}LNrcE?8ve%&%b{O zq5nb1?Ldl*-~Uo->?1{U{0CKrF$+r7ym;EN{$|>QcBI|dZ*SU?O-t61D-(o~&Xo^} zGM9E>%#yKkKv$b7+iA_rDVh&y)v@nt`lfjH^&bN{=x0lMcd-Lv6$!}W_nznSnQzpC zV$fi)PF@7}`|#ZTP-dRFv{(U2Ajb6I6+@DKR|q z@dI6baa2ux{)d_=^-s%Ab>I?uLwvAb)C*s?=*gj)DT@Uy!vReVa-Uq9dtCV~@KRE$ zZc}wlR$lqf%;r+Hgc|hd!WQs=AjI6)aPDanz-Y{)Jd4k96;M3g>U$0AcTF1%xT9<3 zmnFyEKDOIHbP03?L3?^Sp4**N-IC9^9w?R8e6?gDK?UwFU2pqh#+1V9DVmFkStcOP zm$n6BL$PC9E>qY#V0DYZO&@^S{VI|dyw!t&G5(+vS|jL&bpA}|a`1aKnrkynFvi@? zAGD6{Rl1?V^rrWbz4em))6HZc>(DX6_qi(01)^lK0gP7q5ks_T`}8Sl>v4s}_p$5z z0TebM($PUFcP2b5A-}ZIsgC`Pbc$<6-D`v&!{=qrP_lwrJbeu~Q!mJMHckemM23pA zFB3FWxBy_Y%CQ}Dtr~lsIBS)C(L=3DH!6V-A%%62pJ!>O6SN_R3kJ~_;^ zXMB}s8V`8UBXI7rpau=pEG7Hw!vr+&4A@y)XHKnU<)-SKF{6NkTJ&b*+QkGR#do&F zCytE#XIXxXF4HQ-TRxUAW*^*PT$sJOe$^arKJ+gmb!#N=eI!s-8h*!OB!8TvrzI`Y zH{3xtf9I)4c=L~q6O7h4D%G>kuNNWE44XX!m6lVAxulw1a+8M3!=}In$3}w%QPC_j zsWqO&FYF`OF$a@p(+OPJu%PI3+J$OD_Z~lZK!ShW5e5Mu{-Rl^S=2p2#9~`w)g(x6l{3H zyLtm-r(7YEP*gy|}9Z*(*Ledwt!c_CEz8M^CST08NBPj?D>*Bl&c6dW68j`=hR5z$b? z7TTsQOoIGgAO4>SeTYbX$g>q$5&{#*7eUU6Cn7o2Gr}#Oquy83-meHuh1$qnKp!Q9 z$-Is{>OLMk|Ex3eQWS_2hJiT4!yIWi>QO_rGh}^e{3?}@uiFKb3Lo2z>UE-63GyDym(?#88WjYfw5g+A8FD3E~FEKYf(WQWhFA9*1z8?T=}HxMXa zC|DS^Nad^kbvT0l6+tV13LtXv5184DxuBTlBfBgr_EfmVt~u9Ue5{*nl>e7)TbxQL zmSiOFb|ZQOjG6IITR8eTW4q{-mXY(z{NKrFXyQy9cu^*F+UCX&Q0{RJx=b(5(;hX7 zlN$*MAbcAbMPOt{ygQ0TtfSrzc6)_V?8G3Kwe$hlKFA^CAB_UHgjtTINkanLU3tMY zLNOHLq`kj?3^Nj*WAb@f3fXIc)D~i$ZtCX#1{(_YbMIhSq^u>HFmF+><1xe@^6w^J zE8qJH;FCWIjQ$CQC?Ku@6+=u=4#*&xs$*QV*5yX13=Nfzcq9s)5GS4w_cJVl8&azT zNxFC@8M)@Qy#t(A#Q>%$7y{NRIGS$`nwf31&Q2S_o=PNW+eLW7g7SWMQ;yTXgkSWp zv};*a*r(d*$V6`brwGi`cL|a?WMcRQM-)RBQxB^32N$M+vq{nCjjzYGIwG04Y#0>t z{>wXeeY{YMpG+ae@M&2`hXdoFNQZk3cWi1BkCZY#dEdMMWJmw^!6@uidNHvF6Vm5x zUbF6CNw}ErgVAiIilM$;ap%Or?+xN>;NXA=Mh|Gi)~0GpxGKu+Pl30`;W6vvF;OuC zCUBY37*7smCM@VuxQ{&aXe%qEj!`CjlWHmn-V-K>wF_A78MSdOqhIL*#zXw9^!=>K zq{hTrQReKgvuKH-u0S{|E}=Q?959bRu~7J#wBT=}DY#OGiK5jM(RK32v|vx zF?X*8k0?>qil|)v0mn|qK0$v3+w*9`Eg<%` zqeV^?_`@ge<8Kk}{y0lOWNPW$f>8Rg9^A6t9#r9G+Y+>Nfk=iL*j4dAC(Umn=z-kL zPm5wk!1y4vrnD&B4xg1AX4OGG63T1@7ZU&DnIPD>wv&}wX5O@)(KBZHJJp<~JDRk?9)aMjE!iTRw^y-z9(i~<4xW%)m)m|tqIX8M$P1+Z~) zc!N?=sHa)+q#&4;y44a1lwfLwmN*bsP{ajr|?zkc) ztb4A>b*fZ9)7v$y<8ln!qz>uCOmvC}=*51{zo}{f;erbXjP6G-^6kIek2l<8M^P^W zkpfcbN6}4h)vH;Z7(^B{_31;1qsS+O&T+(PhGn=sfx@lK`l!T%n&mq@@Fd@Ve|G!Y zoLvjM4;gs5xW6~#BHp125&wy+$jgln+UrG6fI6e+fo;cK9RG~F_Zg$CxYs+gAQU^7 z85?=#>blgbj~35m$6Z3ZnE5e<&(wCg#cn@l2Y`epB0n`?GGU21YJ$tzlj2Hf8$q$d zcS#w|h+-KggUaByjidQsr%dkg+*TZ@s_{dn9PNtAglKLe{LOO$;cZvVg)uB4DKW4k z7S<2v9EH6&@H4s&9RS=5e{LY)|KH8 zr;K_bC|VccW@y57lxn`y5!{Vm!jB5kJfunH3UOe&vH-6FkaPwylY-|ON~uYalCPao z4#EblTAADYy=K}R5C;c03SrajZsSf#fdwd&`bqX7EDpEn&O7fbCuMC%Yb1XA9nO|_ z184zF#1PRw7Js{L!GFFgjfSOFp$0vkuV9Lle7)y>-9>&+_|N=(f+Bfe<$55WZ7+<^ zyFbhpXQICJZWV`&dHRo*0|eKD7X&;%tS)tP20Hl&f6#U&vIo_Bm-z^|ZN83cbYn=D zTS8a6xETcS3;HVtbue;47R;UT9aQrD>WXH+Li)fIy1|@v4nw6H85tR%vZJ+Wx3o&9C#gg7Fu(3QtQ8x#_d26j zJHJs4b<4vUeU)`F!QJO|x!SxbJ2SPo^?vTRsu6_xLd6L8x=_;b7Cq=6EgZPGLFBy( z-DS%G#1nLQGELu1`CY>>I|?iFU-aNJYk%?IC#m$XAzt9B58lZR|1N*wNX}uZ?PcQy zu9Hm@jBO@r`CPlF!LEMC#)tO2-DAhy(v#2D)6m9!#=Ml=%HL1VrjI>|NkqZ4kFnhM zF)0+O2QtS2!R_g=%Zy|9N7Hl9JpuV8@8&Hlz9zbp*15;G-C>vDL7cVKy1mG~`{Ejp zWs*!=JLhhVI}f_Izs8Cf#_gf?3Xhf(Gi-q-SVUz=NRUR7ExAJqVVGoZ$$$q}MsA9^>O`*j~IQ^MS;sl(x9x@&69afY#;*S~f% ztm7&q9lXt#X*Y=un_LcVRGr8F-V6GmH~Ua(!Rle-M^s^zJ=K=yhfGi}q{zAD3Itge z*Toe?mJj;vAf}>toGAVXt4-|L$pdrMlKN8<`_@Eui?x2YZX2Hwy{^LWMQ4wmXV2=3 z9p9NJgGcF^$DPB)uJ-DHOWhfH-%2$$;lNb$zh?}05S!p?=OhEv7auk7MoPb ztL~XR)=E*fFaQTHM&spWhOlUemv8TiI~iBFcq+ zd+YV!%AVI_Td^a6?qYb&Ea2geCE0D;Ru4X70k%;;J}En2bM1Tjj~=@FZjQTXSZ^-f zy(tiOEH!-cl~-QWYo%7~DP-;CFzs2>`O(=u-6c#sBt~BvTr{La-`;ONq#-iWh#mP# zLJ}dL+aR~DM4q)Anxo2`hk6Ot7+gI`R={E{4P68R-PV<8KBDIdM;?B6AS-5opILez ztwsj|Q`SPJ(41C_J5sEx+SzNWwD;`Q8T~Yx5u1ZD`=2{2IG%||-F{5<9hqGCzO67( z5;m@-%^q1zw_WuAhvl{(b8d3==uxWf`uezv1rl(o7<8djNp`Qwy}CMjbDq8h9GcHv z?7n=CAs6v`!|cKkrxJ`@+^!t2Dl}u;t#03a9X{bM4!J#_Q0rd|$6k#u+^C0KoHBKn zdQ9kSI^E!ns*k;iPMXt1mjenuTmDXaNU?V}U|TGLeQECtv@IQ)hYdiq+Q4%QI@d%x zhAz`;+|~Vm7QpV|t!F;1@LXK)FEq?=#A3gHbul_ZiyID-1r}1;OAF~noHg(|4mIMX z9%v(Nvc)*p4&uQxIJxc@({_6Y}p#U=)AN>&@D5iy> ztf>5{&9LWkCoLntOPy>WOQV^5Z#6&1phMUK|10BJ@+B&6l%|^JSK5#bMQjF|p`Nh*_uX>_uA9&Z-Hq{kp`Z<5ZGp2q;D*EFcH})k|+>SWHNYzF2 z^X8B0IljC;#-t(5+)mDe)6DjQ?0Cp(K-z90o|XrD4AIgwI5FGum9X;QynNlFz{R`1 zn%ifmOoi`cJpKUN;-uL zI?I?nn?AL{#RF+5|I+#m+%-8-9JH(|t{8;Dw56>lPlqLcgB*7xMR3`j{X~%T^$Ag0 zM*ay^gO=ckQ<_rOUrWDq&kcz#17r|rR6%AUnTS(DAk+eT^vu#4PK*f^L=-XqIrlH* zE}u8NC5KE3%sm<&tX4$S*oWOvft%2`D7(swMBmTz?Tx%`l+yvCEU`!5FeXcCFdJn*FVU9K)u@eHtthw&NVE$r3uLD1q2V-#f~i-Nv&?~?`8(%i^c z=vzd<;4`@m*HaSJbfC2fNpz3d2B#D2-H_E15z`;?q4xNe!NTLF5y5D}je8!v+LR*! z;CPifW%j5{vH9G3QNx9C{AtXmh+Zf0nB2mEbMz}s;$IhKn#0J+dwZJr&$CC~R`|MeL<1jsxf)e5;0y@!V)V;lPD%1uOIZQgo<9MuGbb(_ z>YXp2JD>;?>DDRw3qVs(xUneM$l8F0LpuCi;DK*13+W{ZzCg2|LB8M2Pb}0 zT~sqACl~rp8Sf3uNC9~Or@E?uZj~S7uuLZ@gfkg*>=*HujlTEPtdA;ei3x-BdJM%I zbr2Ki+86Pl5Hot(2{Q6<;-nYhrW@uI@jX=!WzK7Nb}y-`(x_zv#Z*JO`~goS%dzL~ zaTytoxS>Gb!-l9tm7N17AID|4>l9{KGO2`}9pjdKw(qvgZ0F&``M)}r)zOIC$xx)A zbh87< zfWe>-rmt6Kr;!P2*c#hJjqhEk-t8$%F0HDXyl48*VGR~oGyty#vKa7 z7%nBHjuowNw7?-k$~=0+25+Lw$Qaa3U!7-b{-_rNnlB+ILqc+6z#fSe%odS{YI;z` zO@qPhqqK=D(hC!c;Ai!aW{26m$vJgfS}YO#i?(q>Ee{}7^l{An->12{HM$K%&=O(c zDmZeiu~a7R-tawT1kn=t)ByB~Hm7dtZvbG#yE^$kIr-h|mCgX!96X(PrGtjP7Ayta zR_|iO)0+1;oFdP?>{}(`vD&aYHlNW7qqz04P`p6AxW@%zPLsQ#6CJJ%@ZV|-FvqLj2AZAJLVx4ynZ>@{d|1!L%6G@BmyXiiD;5#9B`7g1urJ^X3BxDyAN7p~#vj4QvfY31@hn!Uv>C z3`~`w4W&$ZBS+>l*sZAAnc!243q%#G7ur;CKSV|7Glw;m)j2Ya*h_ScmnnW#CZulPo{UrxLO*80 z1hL$J?Kv*(${Xp#u zfv{(ue5)2Cln;B5j|+ksHHPPhag%pb8r7E#y)JhO@WO|?6F_zUjwR@mXNVu7rk)1E zJD#MxZ+~-$d=E5yhxS<-SMwkApWD{52OHhQ80CV%7R?|OJOu=}p6c$k@3i`Z#0&px z)N7}L{d$9|ZYGSN(7->(oO_ zEa0eq)K~gz62{*BBAak+0kB!SSiW$mc>T*Ml5nR3N}5LQR#dotD4_)ol8dYd>L8~= zB6Dv^1=|pdRWWIOFf^=euNO1SBr4*2d#uLvnyx3UT9FgdVw!H^x7K1(tTBjfGc3I2d*a1Ew%9(L z=>@54w=q7jr7}gq7Za%1mc{-p_Uib|pq|)!<;_>5D-fbo6Y3IC)E-$d)$Ylg!l!hO zaLeUR!l>)b+1Z(ZYAwZUSI6%6wO%5SQ+tbO6-7|vb?fWR&w#w(VhKMhNXM@McVtV% z&TRf&hgyE^)Rd-6kc9=EYg4AjZCaxgTwvSQwQ%C%c6`4?+tb8mv&gw{_4$3(P3_1=RkN#>`$fz*P-=BjPjlFvDiS44@k_}NPDnY#?Q(bY zVg1Q{$l;YSkz*YP>u+4gUtVLp?iA*Y5EeJ33P1xTeC|?Bj6JVZ@OJ+wU;)p;FVkPe z6Hre4Ifw7bYpxxIyTUJN5&8k+kIwY0`iiGUsxAsCEJfTj5!#@%kcseY0o)op;wDez z9n{@%aCTw9`84{$Dph(;HoOX(|7s~ya5|#7SO9T0K_A~R7%@}3L*Ec7wnh~`8n!*O<5>S4zFO45O1c&!n^_ji5Pb)=o;g- zaop|jZpyZ^Kj_Uph4P8XHj&>)IxYhCU4&gTEeC$W9WVwiH+@i%pDUtH>BCe#8fqk? zFm)q_d3TP zcv{}Ogsk{W68q2o=)~nFqZf;#Eu64}X%lu7@a}xMbM#SURdDY@5GWz}E70trBU47U-457{Al%GbN#Q6ey4*wk_l5CHg*Qy2w5wrb z3EXK%RY<^J|6x=ENk1qhP{e4;gL&D(S_^}5dnVKA@}q3%m?ceJT*c6&mNVl(X~Ov0 zqL{KEoS&=;lswDoxGZv&Rnm;Ui@4NZ>UF+qcE2e!xN-;+R*>gqd`!$2$)u#Q!ac+( zs-yNLv^G2)MK&!oX({T-UJ78N2iK`nI9M|9KP1vxnen=AzSTIn&Ptxb<+b3_gv0$U zB@`&JXoViPPUE-*eZFLi>2EL^^fAIm@ViF?Ip7g)?6W6keZzv4)*Rc8wgyVDiHH)C zX{XG-*DI+%mY69S;z=;8V?x8A$wp$>OkdH5(iMEPC*?Eb*AQC8x)$o%*(b z0scJ;4a~4DZ+(LD+E7hb>>(dbzT(J0>zw^M0Dx`ELhE=Kz;qbcdbQm3( zY_n3Qbw;|M25LdxlrWtOx$`3t`Dtn5tpiF(8Kk34Y16-ku34`H*M;sTVF4VxBfM}-WQ6K!#`(~why1?lhpkVdoeET6 z4*pjf)I4~O;lMz4q}0g1So(?r6Eyh-%%>)>gSocP=8mO+~TWh#raS z$PfDq-&5?7n}nza%48o7>Fwn_sJS72yi?2C1@7U=*bx15APRLLy(JT!Ta4g_p&cvy+P^@+)Mo*DKyuNVG1yDw6Q8R z+?Ox>ZjUDJHn*bgzc0Oyi7yd{241cYfM05w?$`0m(p}%FU?hkLewNg5-HvWz6MH_N zTo0by`&h8gR9k3eg$eE zlx`(##*%zjFgkcKD*v^xj!)ZO1>ey+2#jcZWk2$xi_?a>v0L0Cbr^uCfnQBM9g#{Afi*6O4J38M;Xa~Gl*&H zrqGe#l(E+Sa%Xnes*C>yI*B1FIJMN7CCEDCb?-m-feh7SpS+h>b?H-7R7Sw z2#Tq}3^R{&jRbV4IF7LR`1ogXNqfAWd)b}^Z#rKb?izjH=P*C+?#i12k7A$U?sY4j zYO`})`3zM}7wYgsNxyqZiu@ll@1D(*?2FR7$(+9_SYsSFpn&&u0(MQ9tIoFF9XrK?qi6&sj{Al4p}GJl5=HYJ;oc-n_^D!tQ?qmHXTziZhvf0x}{c5 z^^j{y{EAp@pE~1G=DimOHYJ5#XY;~}TrVsLWD*iO588KOeYasV5^LVH1f&$66~9h| zh91PvWcS$fKQz`Xza9>@%=(ij?R8c(F0NJ={_D+k4~hjk#m2@;di{OkdMmc}dpKH- zD{K9Ez2Xlg3U3@!?kW%vM{lP4yElz@NA57ZTU-NjfnTDwLxpU}su1qfi zA5zgMdOheyg)Q+k$j@Bwn^a@&*Q;ynMmpDdmr4#=a@_hgl}ZjjZTvR=&ScqJ=d9&F zHAY#dU(NAr12yJSb>{Ui-$--XmJnm)FGf1HJ}#wd=Og7#MT+(C1DgNKrv`FPn{%H* z`%S>x%?YNNTi232^G$4dUH<)!&PKIwV@hJlu!PJ5LYeypNxoyw23>*(o~E4KZD=4) z1pboFBG97}&!&Ep@t@@;NaHR@v^~1eICLdfwcLb%^t)7c{4ijArk7QeKJgrR8Rl`N z8&C&2SJm@?s1ZwYaEo+@Af>AdQo3#bDcz`zspY|nm+ZC`c7iFU@@cM24g9UUV-1nzs@19k2hEzJ^j-x<2k8UR( zExsqd|Ag?cMK8zYe^gjK<<`vFM$b3)1n~^lzB7=}&L#4y+F;v$2q&m6*V&S9mEM*x z62OSM8+kyPvVLzo$G|N+Bl0%L{9KfpXeP3Wbp_r(gwEr86BmV1xt&g{u@9XmoBc*I6MF03 zJ}CwL9C4aT&b(1?J_e$RRkB@MJ&}=im4xLCpwD%&37tbfugum5wk3w(Hg+I9qQy+uiffEW_AsT-lx!4!a(S|Pw-TaXCgbp-NN`)_Zgkrbx4*n z+uA+9Fc5hgo}I$KU$QnF+bW&o_s29wQ@q)_dpU_{V-7e99a{-;AhsvKsM}Nb|ll~{zBpt_GUQWY~Wh|3grsTpJfs5KpO1ao(Mh$J4_8|_ zMF#7VfO3`6)b1ld;ky7rJ_-n_pcr`V%5l56h7vsjL#TX(v6dft>L6}ROj*v)a^NMM z=V#XxiAh;aI+#P;@;2Uu-vdZI0Gr?I^ZWhJ`k%+JbhWjiu;hJ=z>noAJ(UdOPQlI5 z77r3g;h>Ug^E26C>uyhoN}~b{z_7ZR!xX@H0c6YjRDd1$LXdpLFcBWwGcCk{Ny8oA z7lPc$2iy)pqIxs(KQ8a>^f7sVKPNavdD9fXAnvoJZFX|R`2epMbOsNEf^o`$F9CON zN0@1^n1O=~5^zVxL#%Nhvo%^0ws(J)jSU$g_P{TkBeC;4(KC8CWkObQS9_UDr|CD~ ze@$lA(hk41u4J1-$hIHl;tMW~%m2mwddoNPJYj%^S7@%78z8P6o`ZWD#|mYs0T!Zh zoukAfgxyXmhE1Ar&+o)b$lrr8tl?}#;%|dYbI72e05OsM*UV5u?uiwB-Q!yp$?!bH zuoL_M4V<1~m*+zk?%rUWH3Oz7iU&E<%3#DGPiU;Waj)=v*jz*}8>L+DSsdHU*Vo&I zJqqM~sYsL!3@SMlznp6N$DhWCq8!FmI}ambAj*6r*QNt=CyKKGjh1VUG(T`(=BUts z51X4-WO`d02Z$ok;2U_Xk)0P$2kS_o_^F^h5vNM|SIKj-Cmh8Ktj9c!`A*J3ISMq3 z6bVRC=Jxm$eV(KEZwSEVAEXGZ16U*^4IWJ;vA>-b*iX+3S`q3(?KqE=L}^@sL20d( z>|Sj8Q+7PX@3J2*KLsaH`7w8XL_BJiM31{$WFit&1|t@6fS37iHwK6%)ukG7xXv61KGN=7&3i2zW;fM1-JL6Pja8 zI84Etc=^F^DxU*4kLp8aQmPQlZ)^-7E9@*=VdRQ_EBu94H1s0%SLa8r>^)h#m!?xy zuTZOKerQ-t-oov1IQ{FbO{t3+{m-#|dH-^s?_<;jvRBOQZnmS(KKG{Ht5bg1V+VBqtkf0U zV1(SUDcKXi@4fsQ+%XQ%^#?$FIf8(TXjN?^BhQ6@W;oqi- zHwPuz$jw=gc@WQ-+9M%AeIH$#!&?L30uWqZ$W*5ksvEuWHPLk5u)_ifSoTl?*0gvi z_oOvh(pn;^ZJVI72yIGQ%fuVMe{d#be*1>1RXQ`J3+ZSHQ;RP^w-8H=AoQG*i}1tW zhV5`_78cDKE-;ZC;py)FYVvsF`gt}jW<>{VHOf&r@&l@L;JHlaM&^5jBvz~ zk}zJ8k}^I&k{8g4ftO9u7=h6q>W0kL9C?pe&0Ol5Ox7gAt&^|F$S^75nvHlD=^fhJ z1`$A~m@$0o?Y>*njZ6GKND_LW0t~*H?Q?jmg1xq3fiXg{cU-2ZBq?gb9+jS09+Eo_ zJO2~PnBZ7HYC`bKNEDS42%+!6daRA(9`vH$f4t8Bh}J*J?)*l-nNG=Ny1@dbl}ZMk z+=$2QE*q!Y5I1g?PGa`@#|XS&hu!#Jd}d$hgBU(tL8?y9;gZ>(m{w{YU6kTyMkKz5loX3OImb(UPL4X7ii$ zt~0Mi^{T3^;Eh~1Ej*bicrkEV7kXap^IV#d7?f|e?1IjwLQK-8T^V;xg4Qc#lNV`-oZoAl zYYGEmU|hRl-m8|*#{`qzy}kJb0Wv+M<^ufB^c^6hJl_SAX|FOBNF($z<}ks~(rAWx z-?<`l?iiHzz}dzM34dpIzK9RnL-#%6A?8_MFHJ5gC_Vfw*1C8?afnUrkjAI31$oU9P?!r`0CP7v^Y~O00rzQSMG3wvFk6B zyj!f*7qr`40J)^?E|`emZ>O8lYubL2ABXmzX3v1HT?5?&wF-rEy2tdz?L!N}wT=|h z!?F!8un}24)Z^0`c^B=VOy}pA9htxn8O5q9qpq7JeBf1c&qp3dD}44+h4B=-@7g) zV!9#c)!D-yUe%nl9s~`5p9SwRv~PZi)a2n3+@z!`oKq`OGIXSd=n~%;^!N z=9bT##Yv0MA(;HxIre?Wyr~h0Ss7Uoi=>w4933@Aq$>zqpFVJqH|smYcOWw+AF2#g z8?=ciBvT4#Wvb`E5bo9gqIFX>{`=kZ%IlZ`;81~|2W28);}PRSF9i=(tGGJD6A;R4 zpXj`IhtuU^Cgg!+^{TWY&H7W~f$lhyQ*-OB3XR-=&#$QZa#aV$5_+i*$5T1!C96Dw z!cGD3NkzJ*OsfGEh2y$ujA8Vk%;(-c|4t<~$9r%RkxvYIf-Y#s$7i>@3PH+-2Zsv% z98pQ|RZl&OA1mUik4+K%ljwlBI$XO}-c70+Da54X2}H*UM5HnBINAia%SNd&7L7^6 ze;kb_troR5_$AJM1mYK67LZ4E$kNX2lbtO(OppW4vTjsghb$$j6*tMwrv9z;VdSM1 zd}?4G@`7QU(ea1~540E#Hi{_Mulw_!c;&;<(3YioeFuYxmpSQ?;r&Y@=%)aExNZbB z?GAxBzYx)nDpLNqLjg!zpvRu&F7*$_VAWBk^G$fo^fx8 ziIBX>gOz(A4BQL!Z6+@P_7;j30XttUj4XLu`l0~PL?s!I*{nnJft}dW)xQL9mxdg~ z&nZ#vXa71K5)(qp$D~s1s_ch&a~C&I%iv5d{??^d!e5V|kfP7Dy+?jGD1^KaLmP!+ zjLlB+%J-R+O9*n(N^CCl*EP;}F!)(Cf#7u!P*ET8x`y+ngP_K$_i%rK6#IGvy|tBi z(1QdM`1v{RyE7M7d<>hBFYhqIaTAI|_}Mm8*S-CAX=OaFfsm@u@kDs2)A11ZT3`Hf zK#BqJ-2jPB@_yQ;Ne(a82(nv758rrpZ?ztj@qx|m5P2?dHS>OXU-i=d{_qsC$PkE~ zje`(Kp)y1ZOT`MLyy4e!z)04A+kS{`m(_>bjz`%;TrS++g+~;|cKGmL%d7FF|FKWI z_}PQhK{Ed{o~yw+hqw^aJ%kHCu@+8ed^WPqO~%52_GIM(Jw@|dC|X|NPd5a=m&B5Z zkc9(}p2+wujI;G$-xpJ7r6~L+7p(Se_~D$fl+d+XK<{yMEGanf9H+}<;=%p>?nA^+ zHBk&~{z1qqx+c-?3^Sc6EmecrWPO4i-|k}05qmw+yD5&N@4sJ<9gpzu4w~P_G*yum z;^7zyxD6lYZJdSBOuHTmALa@Yn8bJX#3olUE+_l2LT%;8K7Nl&3xRXc-@Ft&h4i*S z48Y)ot|w4b00Z#zx2?mqhoHfaU93f|XC8+|DGHrMOUyL#tC)l$ln);6B5GVL>pu13 zD`Kcgjze}!5pXba>ns^BrvWh1^oPhL9*e@kuZO+^3R5TX9F_={1wqU2zugSOAHu%) zQy`868QpWdXO?V91^UDk!nGm2luEHKUC%NA~ z4hb*LWDb�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

    p3{iu%!3x8^p% z9`$c`!yJC;u_Rozm{Xh^N7hSvtmin=ZChjnY4B*{#xXUQ$<1x>dSE=S)Z!bDjDD-ne%Wa=5;a zK5#%HSJrBb@r)pIJ{8P_w)V22!$9i}J64F2r&4=e^ps3avw6xh3B|IIe~bkZr`j5W zYxS0t#Y&^alE3ip0m%g~=Vm3RoFqHPY_u8jq*Y_}4a{$-BUh;M!)!G&#!tZ{yF5&m zn+vG<_uYg%JpLpsM1h+Vu4S7(pQyb@I4L1I&!actua{J^y!WmM_BZ>d!(V@{mD$_F zho{0SZd2euW7H@EzM?vQe@*xwWS7VM)4?7io=LfEQh8xB)uk!UrLeTeDIJCCruh!d zOP3S#?tdDbmXzojWM?mxHY35W<{v6Gw`rh*GcoTuh+5+{azwJ_#@NeQk5+eS) z0RZv@uFL`LwHo5Pxzm^PoHi)AJ;LWj(ei`UQFH#XQaF> zEWZB*GVNlBS0O()J|3Efio!%NKlaFZ)$x4Zu7_U*sXw}x1K@cu;>_^fkMf8JON#z0 z>fb=_A83O0GX~45nXq_W~%nb!1;5u))SzPHgo2_G!btbC&@-8zuWRCoGgLKG@%rhsCRMMpp;Jf}5A} zz4Ob>IQ3H0C{z1QcL>2}o*x~tY>?|fI7jfKD^Kx-&A;0La^%1_l$|YmS2R1$zQF=@ zC$fh~DthQzww9kdQjpPiIsY=N^C%8#h|_NxA7N8Cb2cQB_uX~Q2OgkxA|EQn1}w4> zyydGi!WSPzLSVJS%N6A40F*~|JpgBAqJ@-gjbLSp%bkG`(LYVWhAhVF-jSpCi6SzI z@*L1de`9DHuO$5QdnDmU@5wlOMQ21h>Bmz&J|h4wf_JC}`gsul9eu1}eH5pp^W8vG zCW<7{C@0T|Y|!1@hh--|lQKji`*2wGj6}4Mkyc%w6#gZJ%d=a4#?X;0XCQH-(8%<_fOt*qmxu zw1c4v2@6)^sPx71o%~YR%FH~dfc6XwK2BL$3{9i@SzBKqLyQ!w8y?*Lr#s6RBz2wctXnAI7i2 zk_{%mWH+oM-N*2!sX3ynuWo3eYOenkvypExaa4HXuxL~^`LwzX zt*N=TH^8xDJgi_S=r-cYy}CI7-f4QKdl=*jiR>zO;WGfbzdAQ{g?! zjd2-(Y0l;8?&K#)^k;;i=;duV9j^Ju0r$MUD9XYGwnJLX_^ha7i_(oJ{;!Q7&l3(! zygp6H35WI3EZ&lBjhu%E(VdOvw~7l(9OA|%3yn2er3~Z@_tfLuX^)_Bciex^bOI}$%ljM8l)t4L(Mqf#MY)tpWPT>a5!_4=7nEqU0%JrN zS4g_{99mwH1YC_}RgE}49B$|7#>wjml#20f3%tPTtwdgiBv|>4EaqA@OKd)E2Qwtf z1HsPu+Gjn)$S@HdcL)3_4PKV8QVe0HB>KxhB0lrvIacqi<^wk(E_n$!z5B$84qJgzzFV-LwA6oC9O46M_D zTn}u7FD7NGUho+T+0da3R~tt&YkD!n_Kd%++dlO4=J!tc!V;%yiW7)4!Z{8zCHe#+ z+aJh>f#gcY_yXap{0inWH0^}%Li}x89sX35SA-^Wg>?CQ8jQ~$lZ8_BM0`fLL&ia{ zj~?bN^@{IE2yrosp`J!}S$;xgOq)*I(Ci|jlC*eW7nA}rY};*_+K#n$_A?r>XIxok z4!{!gspNHME2f5KvAlo4_WHK7g{wKf2~@i&u;pp?@xp^b(LN+$XSaVY;{>DCXK~yR z#Mcf1hrrqm3)TN|ZJKE^2e|b2*Be{&;GN;En-$1xX!8#jg$~slWm?ul2V7ye<;Nxg zoXPj+rjRZyDsY7^v5>X{`kasaAm;4s*k(dHU!y@!*>!e&M<&~746h*jw{{@&THzb6 zMP5(Zvx*jD3#xI1@qCj-!aL7shX%_bygu~(VCh824|8p7rvz0_&FjGL5qP-j6Yp(d zxY(lx=}>bzDHCpMwAyOaX)LiBqWUx-L8s1^S`$l=+urnGg}7OU2k-dqY>|yCYsdTO zUuGuV>g>o48FHTH$*>`yxi}Hf^LC>jvL;rTYBI|wWDKQ?8Y9`etB~?q=Atz27O^U$ zVBGpj*)3@k7|eiO82BG%F<^+(#E;b+wosL4Y-v#9{RCM~cz(~Uk$VlnpfMWCFr#A| zW|;Xy*iXLop4YAvtOz;i$SfTR!J=Y$^f zn)s$tb$bY;fLIk$8I54)4TJ0^p(&DPy z>i%9<*O!u)bPTLZhB1ezt0%`*7}G6MkIPG8X87kfm#*ycSm##XRSQ-5Iz0y#8`;>w zt&nkr%vhV}SypOX; z85Nv*BQ{@Hlrc~0#+-}n4rRBT7K402E1p|SuM!NT zQAc=})^GZ(2H}*6u)T2CFuVPEKSn)j?kjD|{;T%kE6~aBu13*CgXd{y%(%5 zrQ!YNkhx^OyHau0W397xw(-Eto?-AId;3~$9H6K`VV~@#Q zK`*SA=Cj?aQ$9g8BB_bc9hULkYr>lyS6>W<0?cIDekgvzCUN+9*^A5~;kFU)3$O%+ zMvzn;!@|mv82f7S{%Wc2Z=oD7G4@j=AA;rzK_U+I%}~3FT>xjlu8M-h{UPopZerj1 z`5_LVORK&5RNoAp$d}JDpGaD31SO#9Eugk*VH7;ifD!}~ znaI0%KTp*LMGTq^r$$ff6#bn#_peWntwDL`M677OfxULYE#lCw0B4b9xZs#TR&c}R!VH1HyyA4X<9Aq#JPz}^#^#b@1Mw&!wC zRP9VWteGY}@1;i_0(*b4V)pSyH(T^ntllbWh$jx@YT83s>4^#n&A64S?)Ti^89siL zjtl5ezs#yeIaKZ=3VfUmw3nAI$t-nHN)^)Rq@RaNS8l2jMb)F`pyDLqmc}L@+*ej{ zddTj&MPorZ4iKM7+?SiJ_G5~@b*V5LA&hsBm<<$eQPL_VwU$wv*wJ(m7O!aSnhoLg z!}B*(m>%#`Fvl3_iARG5sqH!qJqg#sgazHjziI22W*$x`Rq98-3-kYA$S}gsK{sxi zTNYk(qxqG6S`e%iK_9ewXu3HfW(324f^4kD{s{M`b1)(Mfl`L*%dUi?)J z3GVOWf3ltb=rq&5Q>*0(n6Y|LHumz<4U`m^j7_PeHRw9*-dkUbNx2Fw zWkU}OynTk}RrrYcB2#WQ9y_`sU3+*R+Gq>cRa)Ke%~w`deuyr=1#e!x+&EmmAK%z@ zQCo^#ZA-BojE$H^(elQ=VpQKEB4+lQENNz?SyxfJRQ9`zYc;O>6npw{Ud}riH}c@& zQmHn4#~n2}>Hl4_uercUt1SB%YyK;_wI7#JV!;`DUd0Yxcy%cWu&p&^5K|h!+a;fs zQp!=?bkSqptZO?!A{WtX{$*jMNHbO-Zp6Q4GkH66x9TKfYGWgM4`w|TZ0RDSdFt?~ zbNkK?2h8)ULYipvp0`>TqeE#Ee@V*+L@9&jqMPxuB$?=x(pY15VF{5Tx4$FZj%PNH z@@_#ZsnV*R0UYZ=Eqk4G7MKt}`Q9oV04Vrz=6>B;6%|^HGS#FUi|C?e!ng*gve>Zx z|G<%d%dP%{4*Sp8D+VFGmSmpQ4-yZy^y9VAKJ}-nUHFU{TZS8PS3(!3q*z18%&?Dn z1drmUBI)a#q*w=uHAG%KT37&R*Zh6s{T0*_t*44s)=#H`rRbwC5e3OEcTi&d!;|*VaF?l5Pdsj z?DpkA#O>-9k6QJj3x3J`#UL|!f?npxf`Nd9&Vq+;?3;D*-&(_bZP@Q7(UXwwMOi>rA@w+Y{|0o7#p1h6Tj3u2H9~C*?Xw%elXqk9K*Ovjd#mWoZ*iP-6 zt8@@ay9YL?H22npkiJE3^ynX72UN&jQMkSpSH-qb@WoJbBZ$e z(&AJ%vk^c*bIOfwKhBuy_Pg16Y-1yJ0uyoAU#>=CJ}PuRAk}+7+3+N`KXxyUtwy0p z1F=xcjc1aNJLMPV&r;{$jpMAIYJ6bn%kaKySv#qrZdi$?u$ z@PY|1eFv@#{!ne?c;O-Yww`KDgnO1YHdi~ol+b>?rsNC=+-$gjCKDR=8nP zw=c0Dxb#D>uoz1C&O~Vfj#u`*q%il)57}RH-fXUbv1xt$JWAePJeXl2o7$$jl&Vw- zduSe2fr{0#mUBj98tIc8rNT?M2W8UTje7bvZh*WR>yGgFYj&w*4aW*3j6YP;$u>9(!Tcfr$gN2H>u%yAH>|w zYH6uI*RVTVxNeRN_q#skrxK@L-==7FUk+GPbU%h^Q)GQ!pdNM$-~LSL(0m@Qbyj%- zJK?)dLFqc0R19Ug#^Lc_#l1NQm3AV&R}0`psJ09y^me9}Y8}U&Tk1d>`7J*vHiXh2 zq-QP>vMd=UK=*3tu`AxI(AR1d?%)5W(A_(jorJMEby&bY1+iNaCT$Lkbf%f_Ukwwb zdPViZEH{!_ka2f138HwF{6n%$-|V}Y31XKgYqlR zd=%P^6uYX%9)}pJRkCntBg228PR2^9A7jC=aKx<2R}M38amdlA5Fg5sBZCuT2I!%v zG|c}e6aPPfEm{k($fx|NR$exI5}cctmE#~Zp6)j>u4t!i&a%FAp2Y3eit4QWr$S5x zy>QvpWwDbq{fvZq+?;IS&fPfb+<;XNy;JCL0tPeaGDm6zEs00eQ8 z-LuQfNMHEB-cr)OGn==0(FWWg4kF z0&wlTq8W?>vtGIK1)Ew z-apX=*^?Z#!>$o@Ay>#SnB`_ODd0>?b|1z?*xL{P0p^-$KTOy))!5Of-qaMD3R=LZ z;Q)liG_IOK8>Yo*8aX%4-ViK$`WC@{d@#^i%MZ(J7Lhyn2ZqL}Gc=m?<0}5fUfaxL zyu%^_T`^jRyA|A1KFGxQ9C*M^zEgmyuoUk6M4lz#Ve!zBrG()`vGg)fCkcbuyo%_? zOt(F?+~5*xy-2J2R;7{c5~HnY5XP;gR}w_ajos)huL6xb?zrUFiih^pPO*OS0z10s z(#sEylJUbRY*r$hqYnC0dL5Lj{Rx|w_&S&K<`n$b8GIV@%;~j2m_NUrkdYa`>&i3?a!y4P9L^I`=VLk|NYD%bGw(RU{3rCnhBV6R3TH}o2VQan(6)YnkMfYdl z+}gznq~SSm4n~8v43r{Atjx+_9Lp_PXpCu>ej3(vDd~4{o|lVru>8C;-_+99Z>X zYCOaNJ#Kir2FYyRQZ5hoY`o99-;wJRUrsCc4h{G@3zc4u{YgCD>Co$>Z}$}$(?e>JaPT#t3eg~Nz@GQmm7N>> z8+LHLDOx`EmUhdI4dERk_~E6TRE!r)du|A75%7ldUD)r&CY~90vg3T9NBkRISFFYB zmhNC^r-`Pw;$Wc5dNfT0ILE|XV6tIC5A{uOh)|ZYuF2I1Lge{RM;6=yGIdFMrT@{& zLm>oQyqz2vB(&rbx26ogpsa3Ls@!G^g;q&R2xaKCHbMI*#1<%^EmlNJC z1CC6vBV5$un9_!{9W5ywBA+FIKy21S<|fDQr& z8so&~1&A>0!NCvJz|07;Mmx2P_FUxUT}R>J3tpZCj%``NHo(dE`t zS)}mdb}WM9nO3%t;5`iL-X(akgVU2GtCcPy(N|L1dy1(t+cT|;UVtQAVEHbLVQ`eWrEs89b0>W9lv8`hc+MtqczuH|Q zZ@B3~#I3+_#Gk@{sga*8d#3svXw+&OuvLdj{kohKdaxO7eMF~ZCQ^Sr zXMm|_h?U@14%R$sOg#KiB63T1I`OPiMro%d!1(JXEAiy8uJiQ$CLBrA2!FKjpbhO% zZPs?iVPW>-e}+>3qRFr7gn)GGA(8xauYh=Wt`-J!e!kD%TlA5m@G^@NjEeWiUeO1C zJp&yedyL=}26-L@vttOBq^^6gPcA#!@UzE6pGLoEnf9>H6AmzRA6p%RFkX(X2%npW zMHVoG(?x>qGYCWg*G5Qt9egWzt2FU$W+G+htVmtjbn{0gzyC}Lb_u|1?~XH(t&p~{ zGqKHC6HR=x$6AXX+%pH_h?BV&hNo9CM4}@wF9Mw=IpJRYNxs^8i&dI02-x|`V-pb< z0BR6Uf*Zz3>=}K(!MGavG9m)4+gm#GsD*_5v9;{g5C4QOFITtwd@J6q$@F*o<@9GgM8&OovYF=)y!12?X|1L-gxdBp8+5O(*1h7OhQU54<0l*< zD{Nh@UrWYgdIIGzz<{{^niMcD-S>-4Yo@3j`&o@4x(!hR0`Qa6P4bpVaRjjuTDU z=xq)uHedLm-#E^6@L|dIBY6NObOb>}&0y~UYB05HBs*_;3$;4r4KTATZnvug$iS&_boG{P^nBJgM4kpg;4oPBz zj11QT#Z0xeXR1!fyJ7JQGU`MWYQ+xDgUaZ1>U{@3Om}+65zMW_AA^5JV%QDZ z)55g3$##uC;{9`JK(ph-^*)%mnoZBi8v?;#=GIz=AY=^jrK6{N^=*Gg5I#9-EM+ty z$D2cKKsBdRrK)`=X+P`p(j_V8tr|W>*89wGzwSP#O}-c+uxf3C;&XfRUCiy|S~ltP zkh7~^tHrVC&FAw&^yz=GcGf|0b={f|fdmVl1PJby&`5CT#yx1TAdN$Ccj(|6ENHL* z32wo?ad&rjcbbN7hWDGgRd;IY&YimT{e9}3?mB1JuC<@_tltyw(pUfMZIi! zMw(6T-i32*M)`PwmQHl;g6{O}ZgBLMs(P(dss0S-g90si%hfxR{n-z2tx(v?iVPTe zv%t+zJ4%yP*eA1FmY34IVpXtxomn~J%9sD~x}|?l%`}@e>vZhawzjwv^m4IWcWtcD zIA+H0lu=8ljL}MWFR#P>bHITF6KOyT=a8-DH}ovI5viKOmC=PbYmRMSEib>mKTf0N z%4RaFts9k}*#|5=D(t z>ZxiD?EffT*pBY@aZP4#c3@{jbMF%UtbB5oTPur2t6cv>(}Q6P?;bIF45QB}{UQmo z_^KYl<+^{6s*z~`uZtL!FshM_c5lzUm#1TA8l`o-+~=3D!yU3RLcQG26BUD1!Y2auroG}u$XwV*2?N=hN^B$&e zfyfPb0nukMD!cQ%7SNBFT}}e$u}JpA46f3)8BK!!P7KJX}#sVAm& zjTq*Fb<%l-j{bwDR&Q>l-5q8e8_&LG-`voEQ+sF_3aUm-^nOSP=lppm0)cP0vWj7m z<^6%vk2 zB^(MLku=-nwk$MSeT-4BGffs0F%t4DO++Jt2wM>2(o>}S*2>+a3K~aoDq4>yT!xH? zZis0g;1_*pK~HjdJvm)CnF*80uK)QQ`^bs1F{k=N@n)5Ml3Pe-8L-3K(XfB(wF&rH zAWDh)j2`Jl;kavnb8zk)_6X>WXF6vTePYlyL3v)XAz0(vsDIGCXh2=})%USfqPl+C;b$SY>ffIG&z&PRUW5NS#&f zT{B^&RI_0J(G2)OyE@K6^r1yP@<~fu?3I>BkwzPMbZ~m6vP9uz07! z=Ic6WT&vcGLbxfvoG_92IU)wnuVTq(hs7X|Y}=Cf)9}U9vi8>K?n@nt1w*Yu!4C(A#TU``oIS0QJ29zEm*3*o zJiK+Uw^OXBENX6SD_fkfMQW8xx~mTgZi5=oH*~g_tKQi_(tK>6in3ppBpWs2>A8jt z=v#DH(H(hM#~BOKJV{&Mgb=)6uEweEX|qUrgvx65J7g(#|8%h*Rg&GP8;)-W{xWf# zR#-986mW7DI!yP#V}_*+3%51$M&%BmxzU7jaj2TvPTFTJN61G>u~MA zNr<}AnyPzGTOnG?0srpzD`_(>-Oqk2pa1n?=X+9%EUJiP46gNg41u~EJX*o%ID2Ur z7ul!Y!?kY(0+N9`-C18C3&*9UPX2q`@%Hp6`xALof7yE^(pP7wgY|;YoYpto8eGDy zozbc0cmgm=k|n~Zn!KOfEa1Rc=Ni2xzm}upQ>kC58M{Zik5ZU)1_b^gKt(uDet9GE z05<1sw94ArF`YfqCuj{@ush$p)}?#M!G@nP8MH$d_V^`^NY=|+I%1H@(fP3^(cz4N zlrG9N^CSpqs@Ai}I#4DphbWB5Di|$WC)Pb6HV~H#O%7u*Uvf_F>Bo4YP!}1bKAn|P z!H(vp_Lp2-<8uRIB}{Wjk8yhNTURs6b8f6d{qo@-tg}>o=?PMAO(Z}rXZm!qfk6cd z#57xa@v+V{w8V0K^V+>K9@UhsQE*A+)O(4Yr3N7*oRsKw6j?68o%z-;Ugy*f$^=dm z0<)!=N)3thn_uIDk}1!YQ4Hnyrz<(^Baz=|GrZ}<6?f0dPsU>-k4FX ziw))bdQ{*TahF{jA_;JqKRS##3}m)(T{$HDGKR+S8`7V@8mkEqv0E1YNkr`GooShj z_|AW&=#Skvp)=pQSJg>xjxJ=C;m%ntW1AqbH`ry7hE^BW#L_QV*ynabr zF0oubysw^%km@wAEo%V9nRL?$w?LR@CKZNK(TEpgPB7e)JdbiDE62SUYx0uvS1~z! zFYMe38}KqlSRyk#vgc3`KzE^%cMwOjL@2iZy2GZWGN1V;7y2^u*x|yrHM(iS!v3gO z2M$I){@=4^5H5@BwVjq99<;=gOz6M$wN0z(s63(ugVoO~C66frnR;?A8|Bhiqg2Oy zgM41GgDo{?R&sEBLqn7p4|CsKdxFlpgAv34nUSlq49wR zmkXhTfp{XHl^8>}pIt;>(mK0l0k{dn{E$$@t<(C2@AmQPnb0^l8x?X4-Lvr2WC#=O z?{}vPY|q_^KTa-&mMxAAc=MR_Wpg%|uCH?awphn}oT70^Im=99lB>)fbo6gkhfq^A z6Di(n9P9DUE;QE7zNFPG6^!FbeK;pWCF`R{uE=Su~lh`5e9PI`STB`+iwZip;E? z*1S;Zvxc;O{6}js_tS;dygH_tQ|Q}K+c#gzJVt*hh={%Z4IANS&V9Sex4e=|?dUih zuFQW{7w3JR9?X4 zyRyG`xu;F{p=Nko(aEL+hvILk=B9~qn$Lu%iDz!88^rJML7L0+S4P0Da@U@i&O;$$ z&`mV7D$cpKVdm`9wcq;lpmgk5QQq)@06-bg*W|&_egBe`KD~IhEIDnDe@*5*A9l5% z3`;RSm50gZ$JF@k!oSGu!iS914d56X`Js?A7UbEtOx;7;ZCT_@yz9Cl_B%Y7q}3qb!XpKHe~J?_UXS`RgsWdm{5?~WS*lwqTe(*k!bJ72=Tm&MP8So2!8C%W>vN4st|yl6<%%U}O|WaZla^MH}z@THqNYr$nJ z8GpKq0EyC^WxQ<1IB3Dkkh;ju&D~XH#I2|x^m_-E(xJCR_i^}Yd~OM9UnQe)@FvGqb!e`nqtKJGM>+|EHUz5k-Zg1{wb8N_t-~Ga zN2{c|*Jv`Hw+C+THU|k_-le0*c;({UDoHKvZb|~1%D)s%kuKkPEatlf%Uzo9$&IOT z$3!y={*@Hy=hlyFk!~5*W?JA$^%7NXkLGZ|mysqPI^^KgGE$7lSf67guV;$Q5Wc4; zc09@n?ZbY(Wn{yr^A@3Ds;6!wa}{yC;;G7CejZ^K?Lm+sx+4G#o(gOwxFmhAb#%s| zS-jsB%;YH^th&=|^x~W8=$_;h@HHt+l(2lL+vHT>wb}Xvldoi;&7a!zPj9YyK3uWO z$Gue7sXesDPl|4WL}fio-qC)d`>;L8*mZIFaDec&|Bg!&Tj9Wbp@qv>@Q}_ntpEUmO4XIjZ42?3othE zs=qXH?FF_}oyFT&f*vL2FDIIzmuLotp2x*2Y;OK<+@4mOrv~`LkaN&wx#rUTN+&nR zN#?Zv^^|-0@Q3eoIs&G&OQ!f2uny&x+LF@qNEGsP14r4AJS(Y|d`^Lvz44<0&_S-5 zbbT3?W#E6Ze*Paug#XLd`CngM+YV}z^0RJ%%Wk%R$73yPN;%}lh~|95S`EeVD;w%+leQUnK$yxg(3ww$Lghb8+ zzV=!*9ds|R9CGi7miw(*oO0HDL4vR&iS&7PWLYSGqdfB$9+luN0-tF|Qt9{tAgq;g zh2O9_-XKq`YraRu4Rvv*c4qJ;feY{7aZ7>8RA2|}V6z`*?SoylD?HiEPj%B1)*pvQhp|BU3}6*_+FW7IC%#`i=xqe4%i zyHL^}QN33?QFuGbS!WnCG&)#W=H)y&#QM}1!y_YZFu)-c+R`#y6AXZYFo13Oshnlp zcn<^J9rrx~Rue-=1rHz3jp8VIeBGe zwh8J{tf!~@zQ`^_?FMfAYGt1ppGZ1_J}< zYGu@A@l0rOacKBB8RSln(yu;Kx{v+&q%bC_!Z|3j)#)$Mhop==Zxio*5(BoGV z`J2ViWqqm@`h|Kv(+oj$v8P@Ztsp0Ww1pK@z`6orR>Mja#|e)R^0rnz(h3##$MBHK z5xwu41xT`$X)I(`Sj427fbHn6gz%)>8oHBnEQ~NumlrzU?nEUQMd_p#SN=SOtodIs zJb4+M>U)!unJ58uW#B*Dt(I-fl%jA!V0warR`dWKVhk^F70CnE@Ec5qNO>NO%M3O_ zE}#i9kR!UaIx%fwFX!=WduirYlvNC4u*PeOpnliW?@&SR9qR~3t|a_&TdQq>+k|6G z^ypn|_XT?*{7!AY0xVl$s~Bf9CxfQ<3fRTIwc-yA-9C4U5sj?rQd#E~VEbwP#1D;Q z0o7GA)7}H7`mw?V4tjo9fAKsAjGMy%aSn~UvHQTBQY+g|@U+Hm4ZwQEy<30M`SWT` zDcl69Ho$4AoI*_XHDkUa37)PsV9Td0>+&lk#BW-Uk$e9A3!4coqSFF=b;v;I7vRA? z<3Mf(*IkAf$8z$*eD7x+Ks1rsv3lXhx-!+nx4+ZbV^U1M{#z`bD;Rn|e^Z%C_O#R3 zx|)KQkrsiRz?!3tm+BH9qIeTpu(KA{PlkM|-Uu zZ0I}?)04GXWlQ;LQr8oEqt`c9qD+*qfh5k6xrhO=pXcGvM{1_0mnG!j{-z{ls~ugDn4_fZQCj??5MH_#uspA*2wDI@S(BZdIEn)d&4 zwinKmR5-dM&&p};!W>GvjSwF#t@kC1CjpOV38f=-0;Gc@?dt|)k^1fnW5mZr(O(z^ zq`@ASGehyG?=m-j+QxPV$7LZ9#MP+-8Epc`6u#O6;c!ltiF*EK8Cc?|XG;?ZH;3P={k=#}Q+3wOd>l zn+}yfaJX{#R>k+96MGn0KR?8{wNngK(DiL0#?O99lJ zYnQ0O>Lk?)Y0bu(tj&Uj>2%bnzd7oMLo~$r??w?1JYxy0lWTW@F%~cI zx3@t7j$THg_%=?EUW@`@U+gSveC#69)n;luJeaZg zUMv0f5!Vd%S2|uiPaV69=YHL6U>$?YyYdfO296NVo7DUP(??Co@o)riE!g`q0iew{ z(1cuW8sJt2>91TQt*Rl*SMP?mK@ay3E#N~oSQL*Se$P7wKuefTD0FssmTEF;y3J9r zcVLXq$puWec)TupB9h#e5jjR*uIY(2R$nfhk~UPZ0ZY!7bl$4efrm_G(a#4&X8wGn zc{6)W=FT?4TJ$}0*H=f%xJZ7`#CBPAlyoyrPNbo?dfzRaJ7Q`z1CJ)7GYxzA5KY4y z*7UUO!`HZHEBl6K`*JKZz1gk1;nCWk&kkCww&uB4-HdhA8QxFtHm!Q&>_%FtnkQ4% zxr&70>+;S-*EY(OT!uA9l^ru%{~w*P5P z`hP0qFQsAVrEh!>5lUs>X2MtG4J9+PxOej0W&`U}dK_C1$iP%@S%RYSuQ3u+{C_ya zTAg9*$HnHxkfo=PB3F>q4_L?|Hfvbaml()476I5rYckm(EQb8^k9z68V;dVrn%xbh z`Sk_Hi>Pt4tGd~Y8CemN+$X;l(Ho2MC2FtXb^@h=Vi-gDev@zy6nC}B=%rc8dbzb} zIw>&YwM3(U|B!PO6^ALIZ3Q{RfuGT=-boS<-;rbGT#jF`nUnoTi%#m%$iT>%_e@=|7%6!kYLrhrM<`wd!}-PiA< zfX-bpTQT9l*O}Ka!txDgk$|zB$eQtxsEaC;GJg8dmh5v<1Gc5COT5S z2UEZ_5QE5l!F6<|-)3^*C-Z@tIe8>aNmP>21PlLyYO5Tq44asD!@)?qPt0`8GgTpt z{EHxqZmiP4t2j#zQik5<>(mXJv9J*Ruchj&E}pwsT+srJm9GZGEdh=2c@q`IT z-40vWC)`3Gq36#j673N)_8-9auB$4UJ{N^foAVabHynO&T?sd=cIAMHulP4fiuqvg zXwpO0Mie)RV{_+*acALa*ZsRKB#>|ZT7Tjx%_$pM^+|+pvm_^mW;{=LlWRMrF|_;G zuJ--!kzs*RPdnC)`V?n7Ir6{C<%^T^cGI~>w#Qy70sw!yN&%UxxeNk#`bigkndRjz zuN{q+mK@L88y>)(*~uKFeC24~m1q-_R9S9DH&iSclN@y-Gm~NId753UNNSUXI`Cdi zjX@+NPIyWT5pX$Z*h!jZPyv3wNWV!Ijtx$8~-ymGwvOm8i z!t4o}^$=j}=#Qm>fYa988)PJt5BUbxYskz_7plyf>y(4YQ{H=&;=s-?)Y&&y$8e!) z4>8JTuF-4H>+>?!=uUXPedN~DVM9gq7(JY&UBGmbDnmd^FF};hDzWOfS0x(~zFvw` ziTkVsUec1TG;o}4_4E`x415P?Wm;U*UvFruMJ@gP)iJgM>`$eJi(V%zkXQ6oQz7w+?SDwS*ZHzuB`|t{WF)~&<`8WMdI6wN2+)Cx@V2K{bFuZbA zpMYjGOp9kHUJ;v#k8)Iak|;nY9oFdtop%^;EpJv=j-z)S&}(C70FL~11zVoCFhFyvs&ffg7coH>1_eYs3x)e>kPFEOq?<;M%c&X2FEhf`sL>K z${pi>c@wZL;jqur=)M{O@$zp4)$5~Wh7PkX_ul+wekI5l5orncLP;1SOrqmmA4_l` zY!on@Zv4i4t^G?Lb6HA=hK(*r@~;M;9|9~J*Z!m@Ojtd z_H?;$UY$D!DBk8?aMr;7n!IrSxeRtdx&c+=+TV?w)=nz>@Bq8!-v2Ch3QEW() zoqCZcQYg$VLUkcr?A2)JOqpI`fF(pwP}x$noBHRt+0oos*=1L@B)cI`4{+J*+2f|6 zTvvBusIH$pKE(L5#v@-Jf4r0Cxx22E zWd>E{YMAVYL$hG2*yLuXj~NL>&!6d0*LS{@OrcvK-w*V0`D`cl@}0yG=~?a>ouE*A zzMa{(7$Nv8LITihJQP{ohjkCv<$BM^U!*YigTX=Hj9<@@eGi898Z#u9R`}+xIIaIj$Km1NtD)3cvy_|p;-oJI&E%wBX8Y5;`<8iRz=EW zIkCmu9KIbUA11fPC4#-i>bN6B#xrA?L@Bp%=&bBO3!- zyi(kV;>LsGYq92b+(8C+sTvob=K5tNz! zV96S}^eKJ^kyrsKX)=8cBMTBdgC%{)_zcg+g08Go`MD7{VSI~`c{buo-B?`iRpS$n z4ec@rDUq}FO4EXa5%Xhc6o8##TdTo`8|{L%rnpSV+euo&EL1KYmw8L)wR4Y;fl|@M z7p1RF`sVui{-H;7ji*1qVE_PO)n<_u4u`oC1|*?|gUQjB>5WAc({{P?-I3z}Qhiev zot)_TYk`Zwm(~NmJIV1TH~vN^&FDrU`;I4ssM0cgWxalt779f#I6)(HFKXUzOEHC; zwXQKFWQa%T==_0FFLFxT)Vp3vdp`WgVkQQFH?VtN8lCZ8{uvOQzy}v4m+6HQ7Xz*^ zH#ZRE@R>Vtr|kj6Hc!?g#=YkU@tv0Y{$RmiGJZJm3{u7<;642CG1&p7FKUPC~j zDqomjq!A$Sq9Gd8s{(3j7w9AY`5bsPBiE|#ecq(rU}nKKHJL^ft~FBFFOVd6?8m>K zGQ8{NEv?MF2U#*Jm`8L}%neew`MyadR@dy02hK>_zw-A9ot(e%WVZk}%*5h9NA8Ta zNGs5j|D4`+CXi-4K4rOkZ`xVQAYyc-7LMm1sQoOKWILs+LkV1ceMO~aD@=}o9}>~BZ)_uh+V0hV%xqRZ^5BxJUYw_2ScaoALNm# zf}?Ko7jLi6uLRmfc%aq5e;E78S&w&FfG1>i{=jAo$e>KWNz>rENGq|I(z`?$zL&fG z-QLH<^Q;|xlwwK-coBDj6&9Hc00Xu1G@7dk_%|S9kHwJd@&R-ZOiVUkIbjxxyxy)u z)ULjrRd6-+%fIVl0;)cx^Tj0o1G9D%xg6r&rpeh5x#**F^j#{A6JhCB^9lbi62yPqGWg#Zuq9Ie<-{xH$zWS~>frfv zlK7V+=Alj7u$~H^i-XDSLhI3lG)a%t4M?N-SuiZy>wzIgX!RnSz~Ib?n>s+r4z7mV z5Jg#qd2ap!q?5|R7O%1=YuxwkA^?2;en|u255W-j*^4VYJx@X2;KmG`ApHc|RvBp5 zU(KG6(i;y+J}$lz%!a%_kcE$k8Mfmd-h_!)HR@{l+Fl<;YFk6{x~M5Jrg0LR>$w{y-(jk}vuu zp6ge;)N;_6wz@b(Zh*5xj$u=Bwb~t({b=)SqUX*{e@bU2RS7}6KXBYm(fBvX1ZA-T zkLku0cYB;M^x8LV+e;uwt~Z47D)m4_FTi{a)vM+ls@X@e|>fO2wlGs1WVCeJ0$0Rb3G^7LkL&c8zzTYIl!lkb;-HHEHqCK5l(K9=- zvI_Gs{@7ti5L@rHsg2mrFwB0+^vx|7MkMRh%tFTSh(cLt!*%uw-h!H*YuJ~YAm-^J zA$`sWeC=~5eserMy+!u&R+sE_$~IYsoFNt%*SV~dr-Y`6G(@h4nObG%A;S`MFY`Rg zx9pq{th;EuRAq>ztm8}wIfBjc0l;WJsf{y=CGTuh?`eZuTAtrZ9GxoB=d}q3I{dLJ zMtcvP)2`j{Yo8%_;*B3Cw~%QKUR%@-PUllHKiM~u2XCPP_};plezQ)kAC>8>rahX` z=~4h3lGqnyW3Xq>mnDb?(x69!fxh?LAVlT`6!?IR?`QNDjQIF|2h(JdcGhv@En76F z5bka8p%#}|OE0XX<`s1p?M^?Z5a(|JU_^NI_YZtvb&$de;3dLk$I)Qgl@k&TtO+Lc zcBJeS#;Ud#Ef5V?@(a}6R>*sAJ-YK|R*rX1H<5S2Q=@+GtAK?F3rB>H@n6dn6Q#nc ztU*@<=QQ^iSGZu|sIc>}-h5WS_ZCaJSxsqeqy)oa7k};>s;S|@50|OXw$g$01}f(h zExlv5-HebH)1Z{FHYuIyHym&yol(22UDp=Jpp}mpp0jQ;K&d&^d#NSv<ojo78w^KYrbfc-Wm9bCy;(mWK0Z(w_H|I>dZz<+$l-8=Yqw(VgDr%vy#5j zAGbC&;jgdn!(4nA!$YXtjXb5QP@guR`ks2T^OPbP!rEj&@bL@V z)f-!>4NVZD6nb4ZQ0FsPmjJz)MJ^~rL@}HzE+$#ywk5=(Lw{lucJ%Debv z@1>rOgQ(hgVmRJM&SJ|!@7*6yF8CgIR()tb{j>>fJG~Qu=07|^X<_A9c(({Jq8P&C z@_>Lo-VXjlQ$rM8&BLf30wF4`JJzk{a-)2ZOTOf%e3=#nvt5yg4Ctl%z~ahH?PZa! z=l@LP1e%~_W>ADc7hXdv>B=O0R&dX~yNgT7*E``Kf5+w9ovdR=osxoFpjfG9VKM18 zainOJEwC$Zp>B}v+vxm2&#_c624MP6{2qScqAK0_BRc z7`@K6%+|HdkB7f?5S7g3<<3<%Jn<2dtP=u1PZcTr6s2CXA-v;*&=pUDkf++7gBLjf z+mh=N2ua}fm*ncG{csff+sV-z8@y9ZRcE!Z`6f){@T!GpiH2*0k-&#{&=5-pLs-cb zoxy6%;Rmvguf9AHMQJQQ_6wtAN-Bjj4e=Je&$H`ZWvGGdd&#c(;5Mg3szJmS)7|(U zQzq-Eo_DQYi(~Q966k#sel+7#KJ^JoP}X6yvwrH%h*1C>#KFIv0>F$0KH}m0_;kSf7;O6$G1xHXq$O> z`G#*xZV!Tvn2RSXw|Ro2MlUPJ@F!}+AeVv>^Be~*kEt$n$`KY%=xA?i5-&CsOnlPiZ8zyw`brS@3wlqV@y|0E0r$Ng4K=LitCmIwT z#$eoNGxr}U%TG?xZWqE1uS|=6EPq4wsF2QjJ!o9rqBJYOP7*+FGaa(P2p3l|7VpcR z6{Khv>FZhw)b|S^P$c0RmvgwNvtAV77kct-Y(6{6WbmGoCb%~5!nGZWB&y@p3MMbv zO&uXtoH{L$jvxLz#PT!C;Taxvb4g5F2&ep)g8P8}L$#aDe2MSt7pdGTW|{YtY)#zr zGYbV}q^B4=msp$!TFQP@Fp4jCmvE`j zrzmqObLkdDl^ypMaOX?Lj$?v1G;e0Faqv$h7R@(ShTXMdHw$W-MQs~o=SK)r3$t~F zs+o?=p}$7Y{3iR2QrirHb1kZNdQi=>^A3=aQY~zws&$0;DaMY}un)SQ6`w*Ed^@yI(`ZSKh<$)#)k;!tLZE!niBft{uw zBmC8Msb=2SynTL(Y{v)8vIi>T<`{O()NsC;uSK|Mj#hGFnK-8>u95r}YMrZ)`Hn&F z*ySuy2n)z{;WhFR_{Ok!Pq9jqRf&ySGYqhbyms`?t=be|%N`*&!BYv!A&%_uI6s2# zN4nloFS}eOn!ADk{f0t;wyPyn~+uqTt8-oO&LPIw0D1)f z@0aC(#|r=e1PcU_sOB2T-m^B1mM1)%gOI(0(1+y5%D2O(CrwDd2j$0o(3^4)BLC6l zF7xy*b1ueteN?Q+IeYc7yf!lHp+9TuXq3C<;O80SsCf*C3j+mwfe+#19}-90&Syr^ zYD`*iL27It%QCC>XG(QP7d1zJ|7T9ze^>GUC)nj#gXr2fs^!^ym!X&=DpBM4PNp4E zTI^PP8Cb`1Ta3#i29$^YEox4OECy!&M{-wXv);8x-fyu4e%49r#&tcH?@S3G^co+Y`z1bzLN#c2_BOr3aISx@HN88D=nDq%2=+X*Aw7Iv z1D&5x1yzx^dLG^T7R1Q8`V%>hj_~rOh2;;kSSfUAv{x6lGK128Xf&T0PNd_PqKC-Ce}q6NflaWB z{Ym#{`#X$5Io3}m$^0y@M&Y}zA5RFiwQ_}^bWH6}q;r_sq!hh5$Xe`*c2Snh$4oI5>DkR4Pmo$9?F2^+7dTp6`7&S-Gr2^ zHrczCiAXem?}%6;?CD_AN0^6yzgcGVlxK`a3@%^E*M3z2tfK)xH6VGEuQ>49q27_% zllj21{4&MWarbQh_Ki~W!ADPR{%9-F*-(uN;|?AEksr*mg$GsSv^7f^19`aKmcM!| zcO5L(P?~FNb$I#sj07kX5fXF>L;O=rX3|~ciZf8qyBD?bUM>kIVfc>ky61?K-1KEY zZvgi-mn3S5yJ8uFGf!w!+xg|fs+M}slsWCF5DvKTQJ2OA{=BDCdR|0vSM=WNY)c7n z0S0X}fQ)WFDkSLZrrlf(CVdzIfLtdx{+U`GVjJFX=WL2OE>0&yLNw@jaqK{J!j9meZU-V&)LS(YJTU)9qv zv(HlUyB^{17&DIPswoZ^@45=K0kz!rMb?weZiu2EtW%RHZ>@vRe|136Tuy086UA@n^ zy@&pMie4e?GX94Zc_`p^aZ$3< za}j>!bMiGbKDxBl!8W#HILAxLiAWf9yPR?HUVUJCn?KQowxw*(#VgCDxy178>RxiI> zfeTyr-U-{g!h@z#Wno*G%$fOQDZSjZm#L${gxEyB<<9K$(NdL|3d3rhs_}R0&ONKz zaKAbA^FK@HPTLI`cl4u%Vs-h(DGgoy@<*wEZgR)Xq7pH)4Cg12yiqAqA3K z{H6uJN5__o_EI%u=1`nsR{fr|jO>ShisVz0)XjfjzL1+y_*1a! z1s}3!HAQCpDI{@4eFZ*Kmjr<409X&K_gAFX5T}qwpOaCtLe+RZCh&a?*gLbY-23jI z;#|8f@z>c?ij80n(t~g77=V}nBtq`(ACL9rP(YX5AoZv%8r7YP?LmO0V*G6DIT`ft z!^P8PttNE4bPCsp77IT?IE?~TWsxVVh$iP$D024E>#iZ|zJYrD4*CM9wO>>2YkOw` zIf@DPjgMhf8m)t(Q+oXJ>DKa*B2fN2zp@g|-L#4&R6k&guIWOrbq9BSS9TM#ko#G!w#y>PKLK~~02c5=H@NwAxU~2J z6j|h)AD8+~-_5qS8%e?&&X20L=T90vH(#ncpY?agc)Yk!CbWO$6btl?HVLt> zQGSUxhW^*UI6W?OW*`K4co>E7z@~D3Nb5!KrXf?6S=}{p5X=yWra%Av$kZAPV>rMo zqRK&rMlbRUC^-z_Q+bfTyiu>1%!fc;(O}MF>q-(Y%yog{e?8L^yJ!#hdLtBS=z(HW zrZ?9fYL1=pp+y_tA>_31GsVxAUU0e!e1M&NsMzFmsc>%C$SHAlYH)P>X{2V6I@j5m zzxN`tUHb~}BbBF;vj8NH;S`bEQi z`k_f~CNq`bd)2mIP6V+FdpB;|{PxwOx zAZD?x)U8j1Zr{-RYBzlh4}jAd^@l=GD>qFduF&7H5b1KI^+{1|Z<5imk5W(VZiki# zkA^}}{9!2cMr!bdo&~+%bxe4j^>E+&SP~3<-i!;iO)0e|S5nKe9cObUxAAK(ukdCy z-&Y%dZ{q+q==#@bazd4*A}@BFquTIkz*l#b`QWq6Gx2v97t8YoyYDJ*!s0t4Ni=cX z1bYw04IC8@r>vnjukX{Z@xdSK@3-6VJzB|Ym`dezr!E`hrz!8x6funP!J3*h-rw)G z;kwOxb?ka<)?~URUpsqoV6kSc$8DFf5*)GbsW^PAdT|WM zquD0&c7OA4Eq4o&e%x1_h_Ru^KGJW)y8p(5jUia_$>JdI_TMX}6_-f*(_}TBn=;H% zKUYP8rsdl*oPG-F4%JZ4NlahO`}bK+>}5`6Fv{u{_@+YRk!QSFO;%qOsKrA5+d+!) z@h^2mywj@}R#d<=NmB-6ot?`To%Agyy(YkyxWaJM;%XaEs+RnwyZ zLT-~EFTm`eGgJ`1s>|Cyg972tp|`ill?wo}8@iSrukx@YHxa%S_Qch#gCdRz5P4P} zh(j>Ay1fPd6scDK_K61cmx}GF)PG#Rc)D-(FvI=wU{ro5`^kB-df&22))?h+^>hx) z0>lSqD#N2sVbK>_$N_LT6<&SXgFSK>+Tbz01&MWHACcCAV?)*f38%=D)9BN;8nw${ z{^zR~A6C_x6(8Z?$HNPBWE+)-f&4>EP%F_$9v}2>xO>pOnf_Dxu6(O{6vlMctx%0; zuh0r7;HK%W4su_I-e3N<^)lo1J!Bt%V4&3^Y;5{(Q1<^pg;u3L>mpL_f^>Sc_P|zS z>KwjY$qX3WHqNd;x~$*v`pWf_`XWakQbEpX!^p>jEH?4z$K&P48M4O@&{=0hdx^n# zgASx^glb(VZRIK9J&CVn|C2=|*lG0CYqn`%x>)Pfs_xPDL8IJD_9?3qa#rgPsl^mPy07Cs31W5ECjO7ZrwY(3g;Q;dbx-fRrI&z;4k`~< z`>Cr!W#6KQe_r(Armg$!1okyu%9=9lsd4}{ebR!irM2#-ZOG8xn?1#%z-(w7wzIX8 z=mHo@MDzIL)*R~%G!yA@)pugRs-(u4FSD+TlEt zu8DcmCPkX)5}fm7snFV}m#|_yzQOT@kF>k^C$ta8SHnX7--sX&u`T|@zgiMlfb}x4 z0P>CeDkwCRidvGqPkv*chtiqi(;y8f0wTGBuye`6yde~3?&pA09&GkzwSH%cQizdP zpcmZl+2g-{@sax5DkqNDUleoc-Z;gNd8g;V)`&Uh0KkSK$o7J}hhZHfRBVav+SBaa z6BRK>86xLP^j8c|8vZquYER&#oq%{GSnD|lq))ke@%J&$})wW48Rk zp076ChERTwi9G59-b7oYjLNDrEY zUt3px$=~Jpw&Br364})iILxJPd;M7DPI;E}S_4_`ecA+o_H)1T?0IG^sx=!Gky}Q> zS$b~LQC(K~G_+py@Irr+HQ?mu+s+~~Jw0b*oC@ZH=ZvDNV)1RSh`_kFt!IzE%C5_c zb>LMFZu=0UTB|&JcP)O`0~ZZf=*en%G}A{K7P#r)7MtE53XHo0JIv~V8or9XWHZn$o$Wf%B%0E2F$%}dZyv7NCxc-yw$1{T~z-y`7Spy!SIbrlBr1+^{Q{1@x z&GXOS>p*OO7eEhg-@kI?6eBN*KmIpr;%}}GA?!X>YRW%^&Zl%G} z=d)h{Lka`c)2Gi;aRK@YJY?a!tEp9LTSLjumU z+XA4ph7g1wT|&f3^JLzqwden62_dgsQtplEv*Yq=cTad5f*9fRmXsU0`fHIBDMAHY z=SzQ_5rGMorh_Xiz@gOU>ps68N^k!cav}zUa7%=9__#~p_?21WWK>v=yIGd&_ZT8r zpYY!&_|VytVlSuigPgVlxmE%HWx)=?_(*NNo#lkm#EQ(|fA!wD$!WHl?h#FX@@pgo zm())R*?zgny>BQ^M|_b%7R2UXchxw*^Lf9?_4|zFTr-7X?CZ`ivIULlSpEI3d_968 z$LcX?ot5H74)wGOUVHAcpW?m7{}i`XhKjq18q7m7*4lSZ>D(WReh#T?HLCe ziL-#trJ(tU*_0kE-RC4DV39>Mj&h)deQvL-ZF#@7gmy%)O#+Vp4yr$z)xu({ro2V~ zIJe2{Ge(8<@jKVpd$v)rr$v)*f4pSt&;RQ=@{!puwh4soykBIYZ!QVOF-AH-Ct!7~ zu5pW#N72=$@VU+sdGX(7L*Ykk!YD?T<-t}c`HXe`?QXhi`U?3bk_ID&RR}YsMh|H2 z1=SI_n><8v*`qFFmR}d=Q>JMBOYn$Y4mTMdzmK3wO?$A6OGR0wC1M0wkHbS5bvXz( z3mbX}Ny;-W9*UI$=m}g|X1?GuZ!D#q!HyxmeAU2)qj*`S-k`pL8p%y02LkNBielwy zn^BMoJ~}(9EMbF!d{=_Evp+O_SBxg6Aalay)^HasmdO|_kH&VuFVSd%njJRTYEWuh z#*e{WC9YDxr(^dttYM2w4z&mtKF8Nlk}d`rM@>I8tv0o+&N+mR!U8MtpA0#9ww}#L zx!|e@F$htul1N2*Mdqz~I9gyt(j*;zHYs5wSR_`HOD&t#d;U5UC(AX;J1ivSmSEIl zcW50}uy}hgGP;TEr_GOmz9cQg9EDk_PK4uW!EEx1&cX<|UrEQC{vyDz zfYXV`v$p~Tuc1E!hF;1TaRUs5!5{5Kt_-BX$&bTHm7_1PFXT|$Ul*cL+w++eo2sJc zWu1;F)%ZY_PRogdchf}A?nwlb&pk%i)6Fm&v0GEro>_;>p{sf^#CMP$4lsSJ?W|U}RdhCdrdnsTGnrP%n5s4FUSk};L2GlAniH%77ZuHs zgT%_dRni=pn32u{PHcH9@Dof+?d&Ul7h?>6%A{S!kTOl=!ws{mkJ`JLz`S;y|N2Sy zkjq6QWw1?^8<^Lv2XLleUn}$!%J=26a4ps}c6N+Tw4s|_jEU)D)8FWgIn$yjQcH4` z3c4J03!8{knVFDg^*h(2~*IUa1E_ivxlXS6p3~$S|w6EU)h|6z)W(QiLUw<6-!fI8W7CA-U z-wNAJv;@Zmg^^L1G2|zYv7|JlJ8w7}6IA`!G5-)rNe`zMeu@1Z1PTGb^C##KNyxx`*A19*kFGhS z4{Q6;st2`n9a;SE)0FMc)251kio6i>r)Yk~(^yV?!R zp;iH~6EHsYJv7K0p{l}XJP(Hulu<&1^VlU$XAAQ3iv|~lO6OJ}s$IN-h!rW4u{wZ5 z7d~7D%Wj4?N9##pm&C9A&ySk9Dt+Zx{KEm5FnbZ*Nf;*J@>0t%UElBu^(^&nI4Ml+ zfIR&y_x`fE?h6Vn>92rfSX2>oV>vyUAs7j$4!2I?dfzu++2C|s*(yD044Q&rRLspy z%aAYGAGC9TawqA?Nj^KIK1d{M^8!Q5+gp%x zJ4gtzC0p2R0L!S)w?4z>3Wv&lO+1jH?epl*a@Ei4wBZ-vyNQ!p#U-tacSb-A_DpG} zUT$T|R4pOffFAf!K1%ahGf>)|tFx92$%i8tmBpmWw5D?@Txc9M*64|DIp{fZ54c$E zBRT_;<@=aIb$~Pk6hg@r_(zj^*cSF<+kQi~6tx0p!=fqv;(Oo3K*Xbxo0Wh$)nsq@ zOWg8oc_qY?!&n}&=l z20Fye?jXbQ^0iljGFQ{wOIvn5lv$4x zzn+3=I;#9(MhZSHSh&g>=Ef#$%-o5}4NxgX1MwKUG6UG4mf?bkwKdy}o2{{RQL1(j zp1msf3pE*;S$)P(+De}XdA00VYf1(m^N8(#FUZ%Pl*3^rY0_p3BNyR+d6ttP7R9dS zyrlxl8;E9vCW$~`n^YhR^SAqxBCeldNI=h){Cc$DKd+7!k zpI9Ri)5|}7{Q-B(CblqhILIa0)V7!~LX-?};<6%7Kn$+5XLA1S5vSVBFb}3o5nuTs zG0`nY+^X=SwN3FYzKuN~aJ|jV*_MC5NV47N(DSrxwMDH@wW7W+A?TTvh!$0cd6#x)7m5D;|H?Lw4hfWL3dYQP!PM zoT?6t8y}{dgSePl6g>|?9pkUs$w48GBG(1C`UO3Wv!PsuI(hCo^!y6>gxuR(!6W=+ zQbs=gMpb2h7S4$BqTCb)^C zSUB=N`|p1muQ2-nLcZvqFnTv1cpj{u<*F8CFqaa@CQr_iba_p(@WcZ#igTj(3D1eggEqL}}6$TtZ@wX#2`@L+7^vg@n{dCKH`sQomK7oEEg`9~^ z2<=1M%P_v$+Ly}szqjq=YM)<0K66YGX@4g@x^{DJ3mF$Uy^J-%IeM2P!(53n1puL^jv~lwnfVO zij%?izrGP#$`crE_f$_H?~Z=Q4^(wVbGKKGYEDF?o-FM0-c>*(<%OE6Ln1X0rFKHf zMX^Rivrg@3`yc}h*iy%K=f!fN+)esw8Q>Knk*%J-90}>7C2F>n*0wV)A7Uud?3%j6 zj98-d=K)Va6EG9g9}o^ zyVM*Y+ddCQJxd6qxZG}v$P45~KoT-S>J^+qJ^6+=ndYSbWwrO%2@Ro(mel#1heD3u zGde0D$s^BcyGL%2J_M1}-M|L7Owy)oxQV;2yl21Zvl!uiKA$7k7F6$TaJ0)xuUp!} z^bb4T_-t&1fFhRF9T_=Qzpq-_YQKYUtB|5vj2>l1zJgAB`(BKQYsG^}a889vNy$NN zWA7QQ3G#xzur~EIm&XK$1oC>bw%=xvnt^9RtTW!h1{%+i+g6%tXo#Wk7;K+nyx5JF zpinWqV_(cYOFUMqH({w4I2I_UDgSH*4?xvqJMVKTzEDm{G-(lkQ~;@Kra(JL0Lp3v z*vBLW5(vTtPl@8n7OwS(_7-oA?>H`zC6y*ec5goRA|Z<;U^TAv{xt*#K_~R48Nit&hHhz$dWK{y! z3KTG@G01txf9o1{1F@*x8DpC}X>Akwc4~O!!oql$@z#ExEVf6JTu@`ubDy`_R^#bd z&d@7p=EC{;qV=%;u8m-dBi(65h{##-)(dvN6MgcjqMf9Elw^1@6jpWSIWH+RzjUvE zrv|0y-KS%JEN0r}4w$W{YT-Cc2iv|ymIq?!3s(hPyZo521tkTiG%4L)p560NiW8@y zk$DGVan0{Ggy2(8U56{z^|XA+g?UxotfMbG7sC!mKx76g`eLbL55MFC+ZYx6F5Pc4 z=5D`aGY$!Ed6P>VvP&;5Y2`8#Ju!aS0LSU+Fs{-+rtkw`neihPK`%oae9K>rd^$KJ zf#t_Pf8~FNpSG~m2L3Hvy-m8X#C87JYC7cJ>~g?n+66(OS0+Z3242^6+mTb}V-J4A zkn1*1u3t!EHr9Hc+%3v4G@LBJs+l8P&t#Ec8HXXJOMsCUxC#ytHJ^Ap=Re%?*3+F~ zE(!@YuB9lQ)j~|v1C4XmQa#^?Eq*LY^+#0CI?uZ}23N$*7Q%V!W~g1=gotA-jvg!T zRVr1=QMYfTc*Qt^Uj&_x3I-OcvoD&dEZ;X)dr$UUJXfFJ&v!c^eGyBd;p$wABYKmD z1l(%WF}9{u)~dqUu})I}Y3lB4^sLm76(TzA*;w-;E7M}O~8jhvY;?`cPq_RxcKmXJa?kN2ko ze!A2@edc2+)*aS0wO6&%O*ug=NkJHa>4PP=q`8r9G*d+YG@hD(;`(BD3@nk*2 zL5??Y_R3?NbI7coKZ^o_LA3^xhNE-@uN%^a{M%;jkp&qiQQYGMJeQ}fTfhlQYZQMU z<;F06o(t=F z5dk01^%`R-EWC$lnE$pAYvBQ}I|S{Je;m4>IHCkv*sWx*!La0b{C(NnYc>34c?1fiDc)Q@Yp7|(B%btbPwVpKa{a;47kLHRwmXu(^ zLluEYYB+q~`rJO#s9_<>da4r^sG3=XFNmic1EjU$cBVgFYgRS-dNgI4(&K`HvT6Ed z2h+0_`mTdy7WrxG!X5QJ*FK__8IaiS_fQcLQOP~$CE{2IY~S=yhWQO7GF~+yR?8X0nYN9JQrF$u zUU>^zFn(JracqQ@+Px;9tG;!r$J5@?F&c})r>@-QMEa#z0sx2aQrw(Fq$#tYM2HF z!_z80EbdEE^ws$+9j2`3;K#_c`W~2_J_ZEmg%vkvA4;4*E4(Lb+j6A9{j{_+9%mf< zi0z)59!Z&DspOpp|;|Ay|IKi4Hi1peL_E&RY-YB#Bj~b51=W2VT>7zZkRNsxNd$>{;}{w|Dd<+O1HE^X=Sk>@rX~L9OCD2- z+f$?Bp3#FO(OqeOiuW75cfd|BHzLzCFDa&Ys7yT_Bsu~BB;?)b67R9#{u<6ek~ed< z0Pz}6*g6N^O0#JP#`!{w^qp-<7y$taBS}!Ctap^K6U>-5^BHcojmM9Q>2MyluvOJu zw&r2dMvN}~Mlc%vC9pH9t#WnJ4Me$w*qIvq1V<6Y@pxlO&LLXvrUf*>mwPgxyisT4 zwK5l*hhrxHCUxIrLz1k@QJz=nY6m@|;$Y&vK0lY^q~FIfFTAm%9sew>sEQS$Cl{sQ zwMO4cA69z7I6I(8Nk6Z}Cw^~ROlxc1)2}YJ^e?)bpT+1s-9F9wl7GX+0q)V^q}s`T z)gT9+i~Yeo)}_hKL<+E#BzZj0lLBbw|Fz&Ba6z}%P+OEaQve=&(sTLJp*B0+Fb(k% zA6_g*e^<_NzBHqnEFMSI8T)&4r`Q2MmnRe$O~BODmYn~Wwl{~)5Q!@~FqYFm@Ft#0 z$p%s(KJ)3X?R}$SghJpbO}_(xypSfXdY*_g?9N|38=?*`BXQG|&;|9TC+T%<0QiN3 zj_Gg12Dm^2N4VQRTG%)Zsj?;^;0GrA! zGRV$B$46`|mzKI4KS2aPwShg^X1VU5tD;#(B?iOCF99f0LXV7N*bOM+wJ#s~NpOa? z*!tbR6Yk-Fp_(Q>Lli6ae0Xbp&PiU95n_xzIwgG3VKD-P0P`xd@>ZJS;M6ynVIB5Q zuSdnX=aUdjC*`@0Y02;JgI^~9uM{GUhz6SA=FT(wD_A{_L9w;ndHS&wL^RGEdjUB6r-hF)mtQ7wS znTF$QE28>94wMV|HHat+w%K-(tr=p`lzDmy*|R;c|KV_WduO+`dI`}bWJCi65MR=CJgB>ADs_VaJ&;M zjyRh#(}pu;AJ&gFY6P^xEbHxN=03~%%_iI8)moP&`}L;&^(uP{*&NWNNdeto?`QfD zQG8@1HPKNAFyZzdWknKNIidw;?+JxW+F4<- zb154MCEaQbT+xMMw|n&9xGXI7QCJekM};@F%M{Fj@&jn;E_dvrVc3v=oM?G}cM^o} zF^$>8@1a92J{_IWpzId3<|;>jedt(0&=zY&PkeImarDM0u@7?4xgP0{tELdG%SgaiO4^}%T%KLB{&mjAQJ#0!x3BRAlcpy zSGn3+|9#6T!bj-VPlY0-pVHA7R>6Dv>W}}I0%tJIa_b2h`^UaaL*%x9?Z1$2zfpzI8;$qpN-cU1!vRHC|5Ik&}!VeeJmGmD;g!|Zh>aXnSMpxDn z@xsG=7N4Af8j)H{1Rs0Nq_iah*=^iBkz8QRQaISx%PwJ6f|?OijaJf(p#GLIC5DA% z3aX^lx9lgxvdcr`(^{%}#Z~8t`a3t=n!%Ex*p06-*aVx|#6_`&uVifS3|I036za6| zI`HHt8w;?JrgOduFHVBHqN39bt;0@1$2fA(@qJi>SJ2+izx<~H)GGd{uk;S!kh0Znp*SA#L8 z&?_R&+VHG%!hYk+Z;|kE#fMLt(&^UvV-eG%6PlP3o)yGja^Wt;;p1ibNQe*l&5ydd zNBdR0#?Ds94K|GB$V)J1)=W^m5f9{yn6fjXm&?HZHsru8J8{H2Y z$qPWMJi2`+7fOdhCbrL(CPq88ph}iOUep^~25A@n$&)N%Y)9npx#%2oAe zkDNrqS9KL?$3NL`SM$Qy!^|QJZEe3sJ*^`i@5qblEc)+$_DC?Eo-E%zK{A&r^2(me zuFQ2YWIJU{ZOSIIjQll=ZCyxm^4eurqQP3r)UV$oXdSR+a!fnFcsvbi%OdmsWmD#y zfnH=HJ7q^cc~duc+~iGl0}+$P3mZ^pl?T(6hq+W=s$IHgw`k?0F-@fB;t7NWA58h` z)bnFLuKoD%7z9rZRo6i>RXYvrW3ZZvp{LzOHn-kp`PZ3QLLBP z4ikShrb#g8zFgmh5Y&#bo&z*>3Rfb!M%65r|4_Bv>wkpKKlG}dQG65Jb^D8*HBwFP zPxmH7F;G}=`iNKU8Db2LPuCEBm_*p0?*rQ0o6Yatc8Wcub=7rXs58m23aEf*n|W~V zZ$r*qU|4%No@ZWH6lCDIj=r28LqG_jAajQ8`}`2q5U`l~-8kbVIP)A=AHuC{eqcX! zQ8TRWv4?3v_S3B#M`F--S`7{fJygfGa8otIfwE76-s9uvJhv!j0(v#=41%vL+Bs&M z?OWIFSG$x}RgJd_og|ZBKvqX&X`dt5`u_$t-=qm|Gb{D=pl~3PPvakb!@i98G@yv- zIM9dAjB(0EZfemO0J;Cclo05%Uy2TYGRHQsAP7d~^AUHZ^H|?^H96A6(j`v2CQN9k3?E=2sePwoo`su&Tj7wJCF3tA zeE~mWnz&P@ji2z4$p(@M^wH2F>A^`2HfAYRR(ONX$4#^A#_G0XZO3yHjr;{4-<;CE z$E>COx0lU=pSOex> zX~bOu_r%}-H6jmx<}Ql+g6HJ*xxo1z2alis{Lp zQl?uG+oT4K=lx_zXIC50r@dX+{cA`~>Le)E9tqx9>2=7m(W>1aG}G1=-z~H<*VIk&km9BaY)rzve{m&00qdQP}))`yy zpJUI`Z(GFN6D9n2I>HDYK4j~<3-@D4TU8s5WrAlgl%9-ygQQ03ot6#iJ;y8~-k;~; z^HMK_>)TQ^In~Nh+rpt{+!AX}sz$n+Q~99v<&ew^2?hwWSHu706t*=wjmMFCM*xpI`rVGUg=Npa$?qm_ylzkfl&Q)8 zt4^zUF>#O`*+Lv^N*x^FgpZ3-PLTOsbZ#VLs0TP~IT;>F3pAWV4BeHYvHwpusHoN!OllL;e(ciro1`ed1X$ava@7hr*Fjt2`wo5 zRjOf1vHzH4{m-y~&{l4@7S=tjl(hk|5|)i8Av(gZ2Kd`Q`{vrl()8i+Jqcy>k#N{#r5m? z6~+4{BEcYeVZ*=Uu=UBr>_5@p5R%*l)!+1SkKNCD0~6T&=1%jW2GPT109!8Y0rs9D z%Q28OZb^S;rWi`mcN^94unD++EcQGd%U0$uGol;v%Z4O4s$t0ec%T4MF5{oudOgZa zc2PNvtcKIkjBq&lK-2-nYA!+GIvOhe_eR{|q>@^1KSt=_O^iHdNn1O{A;PD)eaiRT z)H?>U)uVzI!N!>0X%c_#94s_6G|uy**y=)h{_#(M=b6+t(-^^`^kLB$xv2w@13^C7 zoXcQ_7Ll#Ljf;TQgt+?VdkN4=2EZ)3i5vnHHo6DA^_?K?l3{+u1Px1(K3l*(eSh7h z$UMl+bm&@M_d2O`XT1z|4#ywfZx>&JjuA%JNA2nbxJ>Z6PsF2Qy+FM3)dm;d5VZms z>q3hC?iV>SbFM)0ZpdV6hsK3Z^{JLnU>8fTriIka9mk4$lPlf3uS0-~YlqUjmXXdh z@f-4wpaZZ9b>` zQ@qoQ#5%^S^iBD_->hAwq;}4F-HZ;lSOvJ_AL?CY-v2UN*+>!}= zN+cmCa!b@j>y~?hRDIFBx-FlP61lGq$*#vla5kIz%-JtD_S( zMhl#1$nm8Qk;%=mEA{5SQJD&*mjO9#2mq@G(>VLk$YF4}U zwEKgiFZ)`r;qS@Sed0*x_mn;VPRN9+#NcJ3^P|TPiE2#$Kso;Yx zXK2)_?_aT-^PrJG21-tujnN`O`x_RCcI=Hy<@}LA#5pr?u!h0WP}^u`*%aAun?o?; zKRiy>ETv_P!}^-SSs5eJXj%+JYm=;r2x!%}W|nRtnlBWu z%Is~RN7v4Sr9Szv*NUhnKC7GDy~Jx$)xJ<6J_lrKPa*)#QZH@k6sIDq;NnZF+}~m@ zr)Mr?+4X@twEVs%^IG?64~P;DP@M7>WvZAsXQquPC0ez+A)bvG8H~gT{_=Pdt-Q~X z_Q}d-t_nyp1+gYj*o(1uhu`AUYS25LwVdq38T9IAtZ%WXQ7gz4xy~{w+w?6)y8wbQ zmonl~{rS$DCO!VxvCkod;mS)sXvlE;iB@74x@STdK#KUZ0}9Jh?M4vDaBP zp)1sOuB1oX;JEVg?9Y9LKcapkm}47MrQ9=8x6_(-Gd@j`770Y+*ZbI38*gx&x=VdF zo+jKr;RR}ZA1+wG4gfTpo>)XDO5WWhkdSR0myOO=Mk*2)tldUY^GkY`TUDf`#yVmb zMvR;FR)yZt+?wf+-2-%T0}Qz`iCW2}FAMO~(7yL^S_?6ZUOVMb)U-#SKXI9lhj!H! zlJAR*?8xorN}&o->eUF^Bb5&5_*uo_qU@hdmv&7f(Rc?(UPsbe7iGpImI-j_Z14dr zW_MCDWiQ1ErQ>Zf8|fOG&1_wm46!O6u|5f!!L0@htRPX9l^~jtSpCHEHlx(_rrG8I z%rl_y0X6XAJiZ{knSS{s1=m#fJ#}E^uAs|E`gd_PEKSChkz#t_;kFyH+?ocb7`2a1 zwno&bbxP@86Vq*fj?>XlQEu2U=0^-iCKf^>P$W^R}Pj%KgCoyYleAv$N~=ELr{)o!xO zVA8IOdaNbL2>UK$@2`yAVIcA6@o`A}JVxYtSmr5wxSjsOb4Yj%6>tgD5BL38BiGp{ zOcC+iDqF-@Tj-+E1q{Ybv$}8JC_0*gey1l1X{);N~7e^37tGK5kl3 z@)vfyRp~aC1;hohd474?LKI)B6GwbvF?qZ#7GKBTBq1h7fn+4aRjER-Oqw!tTnPC3 zw;4aAxZ*D)QXzL6-8Mcw$c`jEm8}(wW6N(%%8&Zb2~?>@>U#?@82#hRR;H?#|X6nxxW^bbLwmdrA#;9cGS$&x|e&9e=rmJC$I7{)7$Yyu_S< zi4u1wrlu;^Q2OoTZ4z*;2y(=hG_xpV`e8M%q8!sU)6lU{bLb0^N|P9O%gjJw*r7U> zCnP}CV~IG*L-DoAEgedNW&%!!Z&dzn`Nu<1IZ5!fUZrHNL#`SJ?p8i7n86M8(-Upq zvEiG~m(H6`*S3L5_wDpWYlnv&;L)fUGZG7c=Qoa?U0h+;TsRlR6tw}$cmU-ZA%e~W z^i2%Scs5q5)+7@5jIWlFYmK{2!Z3$(1!Wk@)=)2OouePokD3|~YF|g71Kc9U(h~lb z);b-wPFoLDU=*)@`Slovk#P@BK|!8B6Z`sYP*@gVdy1-6f-wV+%|r274QZE;H(Dwx z5*+b^Cj66v8Oh~6>hDNW3&xAUn#t>MSSm|$HU7HotQs!!VICBNx|h?6n)yDxsc;Ei z8aW~?E6M_PB#+pFU~A)F3=GA;raDM6GdL}=-}*WpP+l+=ut?cQ^Ia4cTWs^0vKcCU zhY?R=_;Y)EBdd1v42sXmld1fiHr(z~)<17@eOp+V?bhG$m6bjwT5KeBUj+Cil76vk z?6^AkKjMw^Pc4D~?1}&ilm*fC@f;ruFPCVI78xmJvzu$r5Gm}rrr_I9C4M38b^vrqd!FP}ut_r2r$A+K1WG1( z0{>npKb4|=QkfNyLZV)&5?fgV-kuEHKKX1$**BtW7(y-mFF9PJHl_p;zV;dOJkXr+ zpf4M+7>S9;(|*T8I!jsCR`_u&3g*{+bdY*Hp5K4^dFBH?R(4`q9k?k^YJREVy|<(e z^c@~RLhX>l6=0FjqTbrZ;F8VNg7Ked{#4aZIqpc4o}2Bi8E@}Ov=(S_1RqbJRjGFo z>PpjFuNq63wgzz#qjZ>y352>qs`f}jVY(ZXaZ#y{Q!w?JX}9~f7w=a8H?J%z(ng0j__Fp z0*l&%L7?cy89$cX@62t;ADhkd9O{w#f#Yhx?@LO3NwCh*nny47k)J7Y^bcEPknzrB z>t0n{El^}j!;RZ?)G6ME?C4EoCoqb_H0`~d!H{y9*~$9&u3@nk^u?4X|L-s(=$h6A z2=Vet8aB=QaO>ezY{{<0xrt=8crI`chT-ldqI7D4LC2Y})LVA%vnmS?mFr<1%t-t?Ke-4#AY6GpyZTLx^z(j}{BW=9-R`o2 zb?p3hha?Lep7S($gX+EO=-L2_95H-A5sD+ftw7ee=YR$26jjh6g1UaN$BR{s$YZp~ z!ads`@@@d!$XKN&F`sOF<7apc-Z*8B-IR7I6MPDfRt~>>z1rAM;kQ<_66a#6A5Azv z_z+dOJe(V^5~9K|A|?1KsB*^rW@NjWo&{m%$cE+6np(~z zTukaLb$R`I#}%ulNRLPM11jrKUQBJR^aRU{6wO=f^GcJw-dIr$3^w!UGy5$%0{`c& zX(NZdH$(Qn*%v-Top+TEyj-d)_{CYyk)6u7Q_x3A!uyXuxF@X+O+n`s7lae|i=#}o z+rMvjzAn0&(*tOmQAqgg9RIacmf~a4nDHHG4g|WL;35`^T+avyj60|LeqMx$ zfw3}#AjZ~+(jmPkHE&9OleT7uHTmd?1GC|DPf*G@_vGh0HT0p%lGz#0S{$MpU-25* zrcq@G_})8e>eFI_mj)|kbzuDw9QE>Fj6jg@Kp#N$cAvXdud-@Dfe%P9qpWI?mfq36 z8Tz^b-5{b8{SV#UD}yGQEK3N(od*7l{oWT4kaqU0u1Wde?MX*vSU^9~Vl!VCWj!{+ zlW@Cz84tHgvEk~j z-}`|d8Uysx(d*6BlvelQE5-XZ#ToWB4|2=;Rp|(%}$uh>Fcb(o@Gn1NKLLURmr)Vcnt3 z--}PCrm~DLH5tIs&2v~sSq$+=krX7u(t+#X(B^hIrS#$704(jp_rb$Tilm)HURt9X zQ2SXKdk4s@-?x5TMUZVGVuP`}@A2+l7@AIT^yl{3e-Z6f@S>LCmH# zKn!yuAe|QJ3VQ+gz}H^F=cyjU04}NFaPQkgl|ltB*7f7|Zo_K} z>Cwv?)(cv3pkOj7oZquOKwi4tTRLsqi{*pGS4?U0m3%&%+Kc>S7Q&x4gDOa1G0klE zUFQ%DwkRap^*?yZS_(s&*dAr|xL?C?LhnM9c?1M5Ql{JlzW~>`wgVAE$`8B(x=&IW z3dQ2fP^fV<_d}Xfht4m6glqaxi z?HD&GZRD@_n}j0`ySie)*6SwyPRW`ci;v_i5<2Tdflq8>)GBX+1UqbG1U3NrB`^sS zj(j#sfGkZ}Ny;wGm2$PXf-r7y)6ISOvO-^cb<_pX%R?8=p zMB!f}6dr*6X&GF?wx6tKr1T$$MSQ9EdOk~s=!~Q&Byr(EZ`kFVi8JR|P`7XH2jB z0i3z%|G7(GnhATCX5y=ZRUPL$>iqTc!7bWIGRo>vA;KzrDklxjT(zMFoDY=ll}c!J z#VtkEo5`_Oc{iGA2m206>@yj|5uQYi;(lciW<~Sf%j`Ypg5PohcC0NKWu-_XXgG~2 zUF@etU(-uDS&*7mC_;fs<@*j_md4KKiTQ=*eJMU+K5tJ@*NVyz2WoEZ744`rOj?Ih z)Rzv-89x*M%6~ZgbKG#1SIa(w-ZsWmm1iye(D&RynZlxmUmp_r;WoGg;x*<0de0G{ zQq!pn!_J|bFjb4)a_~2ptQbI;|8PeQtS@qlo)+WL=ohZACIeOaVqkh+z&`VA8)cc2 zuh?p~0Dmk%p`67aw3n^%{$y!~74zE^VtsZMtUGO-TrtXb3?m0n_$YG9VpX;p8mPaE zjbqN=$M5tZ0+6QcQuLed=;#KPnW)BnWB%iaRpl#Xb_NGZsveWy z`=SIiBMUJt|76mfvR*xkwRJA8WVP6rO|13 z&_badZ>rJ%GR`2{syTRI+yWXvUEikx*fJMm$9{MiiW4z-zoPg%eRa(f{7;03UNtTC z8c=rtzvuTlTkRigq4RPpb;2()-$hm?eOh{5B8K zEy1_?rlw|*LF_6*U+`akG{NtSsiwx4!9*>LKktw?Xdc4lM5xKuudXJuh1Ve(_Oi9t zDW84r^(eq?{#pYp9nPi5X3TZ?#|c+BiK*s5_U~6wDw0n}b^Z?*@?02g6@X5mO7$~= zc8UG>8pM0=t0+Ue!t@Mk6%0z7Qw$;o)_q7?hUasG`?$xB%amxd`^HEwI{%uH8O|UI zs;@ha5Y;Z6;8L*rJ}V{im8}P|pd=f>Sq#Er^1YFhUbD`>uh>>k%-{VBdCO&g(icLVkJ>dc z4`y?(@1vi^a0~z=zMv8z2tva~%8`1!Ktg3GLPII0-n-!^p@bGWMh>UDS6)g+@tO*d1jI@n;(!kS-*4|or?X>Ueq+?4W7)3Ej%x!3dhr{>F}H}mEWzh8Q6Ki;mXyt)tkg!EO(5-&G! z4kz~_@DHGNmx-3|+9ptTb8(JbIoh`32HU3%EM*d)j9hWWqnBtu*#~(bdS+!n5f?-= z@yth>RFtyWLq!_TQU$rt+*)1M8= z`dcEpXBNZzROKy+^Rj-juyZ6m@iNk`Mcs_xJudlxh?xTW_G=RBoK|89g5FAnk+E zv!Ck|8|QRwS&Q!$KCe{6o=_-|kL#e4W};8DDeye`(x0d`jz=T%zVOMua3^MdHS^t& z3)5`@xU10zW@gl_c-C-I715bt4|9$r4@|5FA_=?GG`q{oVgERU?Xr~jpL}`t@)1|Z zd3NeN3pL*j6G~8_Ydu;T=HW;yW$Fu3=pUhqfE$!}%Xio%-@ zw9QaND12p#3xV@fIx~n;pAtgWyvYh(RWKBFki6&ZoZhpXEDp*xS3))#GQ%)q?xyx( zmb)WUsrGhzjR3Ty&o;kczS#BJueMF>=hx}O0Q}Y|_MFe%MYXr?tQS-w;tISQNC@@! znKTOabup8nK5^x3Jw{iLw#$<13P zKd4>nUD3vv?sT%U{*H;b!7F2VzTUi*#eW;&dVGeI=AD^#X36^cDjr8ZgEO)|8>;iw z*S7^}m&ewcDC(?!jy7tfc(v4os>-4uCeoe1tEf7IQ%gbv$AZ_qEXGV*n z`3Yxs@)AytUE5SFOQB?fS8-X)xB}Z7!RQ&(-ySaN z%%*VP!ENMCE^X4Qv|BPLdq`tBjU-+2V%$;sby%Jpzn1AH1Rf*du-qUIt#z5<`d!%8*yHVoa+j$Mg%DVRh zU`7do*XHA2T&A+ydCfF6y+gl~=awWTHDJxZMp1xF7i`uP)M7PjTCHO~&Cx^@4XHrMx#cAP_CPVa=TsbE#W=h6z64srg|t4$3n z|1YiB-(soZv!~0At>dXo+2gmzb6MY3^%eyy$s}yj&Wrxc$?o#ZrT%pkN8;@+Aku5& z8MFR)U#Zyr^;pwFcBtbxM&3jc&7`;Jf|{nBuHP0nON7YxFdIAJO45_W`*4|Q+dlSZ zd%??)@^O&&zheNVXnT2_KsGu=s3a$hgsL9`tnkHkD|GdF;A%QNo~M zc^T~KW;}lfZlI{weqLaEIY@Y_w8ry?_N`E zE6&LbCi`7}Ks-CGA%#Z0{k*z^-o$QoVMjxuCdpphV;Hvm7J-DJ7T1^ig29UwPry=_ zv)JxRvUR2F%5;aP-n34Hh8b~3yxt_C5x(=$`&5KTN}O)(_8-9Pwr*Jh8$_Zb@tu)9 zGvTk&nj?~?D5AE&g(1>}tp1--S_kq`zkjH9m^V^LDRclc0WmKVVwWbcCV4NIbk@B!BS?`QZb--p4tB# zI+*%~8};UIE5TD657$4}s!7+*5bZ8BG6a#Sf!tk11}3|r(sDE3pPXd-H<*X$)ODdh zS?x&7)KG3`(A;yg-((3hKDQqbf*EGcpNZz`DFl(Gq)3K`B0Em9;Y_LB1cVY+txOp( zL*@`yT?H2**>@}$UG9O~0~5a>hk_i;>wHL$U^dhfIfyzp&^u0aHFIoxho$mRv^__;8b-GN=0ISV z7t~={1B>Iq*n1l}I)jQ64I)8!jGR=7|7?E?)wxENBl}Kry{jv36Lw0*HF20{B%wX? z5^O_D7+d8ToN`8l?Hr`#?Pjs`v*(P<+~VjvN3Cb}xi(-k@}}QOjOzjfk74uX!CEMm zs%T)bvbo$jfyMuy{{p7V=O(z#qi%w@ar9goB`|;;q|RRgkODzfPuUJ~x|By27sDyb zj;j&b7!gF}M?Bghpy-i%fdffsF>xarOG$eg4O%f~Dn#1{i6X)~2GUzwWMveb)t{G> zRFYX&1}O{CaBK--1UG=Yq6=@-)SJQ3-u(Akt`{Vz6dae4v*<4*yZnLlWe`+! z*yX-R#C%%|j;Tp)X1wap2rw6=Vg$*gpoO6q$9HMeZgS0*Ep^Z6%U%iANINhtG-8T` zE#(YnmSGg3357tfXwT{MT`9R&tg`4-Mmw5LVA=xl-25)9fT0nsHD{=oA|I|Qkt0bl zTNDE_$;+aMR&Q;KH%QS2o>?)Dk^V3=q#^mFLH$Jh85Gv4cm|&7pb$OCW)y7{mY!Z; zCk&9WJpT2$1g%mdJBfPO0p}9{F_!Xq5g)7q!y#V)1`^9jR783^U#1Gv*5J`9wXB{3 z3Tw?@lPc|NOU$q5N*w6Rpewz(n%q%oC1^~{Q@4^{$5nUM>Hm<^8?q@{zhB89ZGlZQ zN*Nzk3}L|S(8N0XwJvo*$1j;LSn!wDgnb@el{BHOCPg&TC`*u?+T!|BJ=Ito-tZe` zGeQ{~q=Xg9Z1$JYO88qyT3UsM zm?GrIwdEx5I#jvzgwt+e(m;7oS4F;s3rz7dRb%$4i38ost$(t74`$KalYF42mgATUQzMn?Eb|oxZi~X0?1Et!So*=SNZ5 z14&8C_vuy;aGmudBYS)`)=yK4tck(OPE#O3+aM-}ojhCIdoLhynbfgFili7wWkUHN zCRHR(mcB-bqN5_Zz&3ejFSJt19n{1R36$zy8`OZYX@)=K5KA_(xecL3%obh~l_x@h zpafIyAdV^+g$vmK5va(}=tb$Wv@SwFF`LIjhIch|-)EdTRW~ZRE@k_m%;w6lkKDFy ze=d5k^=Dgk@G!1?7126sc2-H!mv2ut&zLXwvhg9 zS>QsH8^nQYBrjv_ zH#PP=B7f`6Uv6)S=aVcmjVJIqY#cBQEkgf4IWeA>2l(+((q`;dHRx7-h6=!OIj zM^PO$E@_jEy_tr2V7)8z{q7U!XPPUcpMeGPiV)&O@I`X0TKNdBu*%!$_!z-F=MsGxPO#U<}389zqFI3fHyxE-V^R(8)&J2{IWM4M| zGh1g!6h#9>$Et@XF(br*tZy0(ND*g9?vqG5_iCX12*H#RsU88USHkZ7XgSD;SeNM& zJvSi?oN6CNR}&p4Og-Bt{Lf4qfQl_%F>>Um_%QEk#a7=75q$Q5-DhA>XyRf218CPu zdIwHPpEGhY*=_2*#+6X@t@{64l?fc&jc?-f7A@xxk9((1Z8*vaZ9HUN&U5-nuHP34 zb@IXcxl(7`u@BA06~uPezblcQmWf}>B~Z~)ZYGaC(N1wcJllx;McF=%}|Lxu4IM_co}++)) zpIb-$x{7FXILATKz}2z9*1m1)D`tz$2_osCGc2^83f}KJ_)^(nb{Q6zKUr_9(F$a* zKI1)7!D*)b$| z`ctXpC0C$?=i6P*x3spT!!uDSuo?Il5+%9Qb^&yeol3!3DJ1)}Xk6xPqdY;8G*J&h zx+Ax|WUr^(OxGG7Y92r@cnaeM z#io3IljfgAvM~vUjj3%XCp>0e-KNsi)~UpU{(DRbm(db)5Mt3+uLz^KF_0p#{EIj} zJ7>{X>BPzCEM-X)^qMJPy&a@NG2?&_N*i4zCnEDHC5>zeE)BcCi2U&an+JHw1w}=t z(?;NO!itvkB#D69&$-GmstIS?lc4K(zILRZ*U>p-BAFGQSMb4ChY* zBkGe17Fw<1Tn%JVT~qdC2p{$TA)`}V_y_z(o~17C3dK=`BGXue{kOeMw2IM6kz9O6 zVdaCUpM2Ic7>M8fxACZ5DT-V7a-`XUXH0HX)`BLJH{n!FGYvq5k zWQW7?mE_pAf6rW_jbJasR_L2}qzf!HBI7tZ)_Q$Pm?6>(pb(&lu?BQt?U1<{vpz}p zAlFZr96h3$WEkjATbvvBQcpT1M9c#B( zd{m-=IHw0Vot0FmRojnjURK*$n}oeTGSIuJ>wAQZj;Idyk1h z>vLeBO5C=;8Tmhvm58D)g63|Cu?X^EQo!D%AFD;#4<4 zgOKRluM4?>E<0J7=qQT(RYZlm4fBM@O@!?XtzzWxWtEXon5OHuip@B&8ih(cOamv+ z(*fT@l|rmj0}{?cj?qRYk~0_)kKgR+7!6#SdLd>Q1>ipyx}%6uRj ztXl?nr@u3*`>n4yq~5Vmy9Fe~$&tRh=8W{Oe{;>Jy1bO>&dp0;q6xv!#AL8Dt4L_~ z?9Tt*BjE!mHXQ7IL{{L2eHf_$*56mxf4{D+4ud)!JJAO>WY!Ph4ZML@jPELXquthl z4?(_*OWy@c4G$pCam=#}8M=8M`9Wv-&!_QcD7?|f$YYAp4auukx}Tb=v$Y-cChLEL zGgLpj`O^kYoSXS1AwjLyq+DujRq5_}bSKTmG71ryBFfCzWsh!U@}2@iTRmIhK+mEe zfzx)Mp{e>};$f>u7Qb`)p)Dt6U{LbXlQp@3ecV zkryzqWN~2gj|z=q@^fil$28%C;X;=AI=1^N7NYoMtUP|~$Lg*H*x1RZNo$C~*(p?k ziME>sXW99^Z!{Gk7qmhFb5ze(4j#}&NgQ~s%igpw0dXWApn;_KCWNq**}2Z6Io95^ zJ_mR^r+Qy^sU;1x++XAB-9|PV$?*{{Kv#{i6SWI3u-mOC8dxO9?|ct%DC_h#RS7To z@7fD(nC{CBIi}Y~aX`!FrX6(W##cwrJCAmJ`1AalKlC$g9$%(;*$n9IJze>l*Pg=8 z*H1jX&=)~(v|eym872aX9R!$6oO7ZlylQzO*=B^T$R zpL?U2-8_;j=}Q{~9x1@RTQv$oJ(6edn_CU(#*?a%{eR zNAYPlb5%L_O@%aFaC5cQp|B|da{dlXuT*0;S}@mC&ftKDb7zWJiWj(PM^`0TOz3_T zb@938?^}&+h~O9mj3$G7A6)R>xf{@C?bjiJxbwk%I|vz?aJ}OmCg}$)Cg06+gLi}72HF*RC@C*9+Z;loOpY=YESpVJ4w9G-Ek{48K&f%TmJ@edmXzbO~ z1c}x|R=DA0G16cpawc#>t96UFgoDjdKQ)WuxQleu1WAR~(DFaVtrNxO``Xhj?oeM< zG#yd|cYgu^pFQdRx7PMZdpo#(kr~)jT}=KCJSDj@@ghQxrMbY@1`PSue2P1~V;xUA zbXgipkaRI@e#3cL&EFWm1-7-1$3_I$>UFM^y1;E;>xGsAcp?KYUzc@zUxV>s0Wd;o9)kBebRyv_H$r$~w6KZIDRb z2bI=wA0$PYdf{CC7t(|_43F^PoWDbQ0X&ZnZB0N0*|OFBG&kmEqqP8?65`8H{hy14 z&1Hes$w#CywIHot{S_;<`-SK$j{6i#o5V7`IdU(V3GL~uYE_gt-ibp=b8b|}$_0F4 zf$aQdL}b&AG5}0`MvBI#o?)wCN8h zR8CXZ`d*WS^-;QAt|UY>_0@sz5UjA_*d9*f;Hx=Y$no`#>%_$c%JosmE7 zzl)&-%Gul~vDuVKfm8wk+O93~m70i#JV`Te_sOZzgUSBNG`H{UJXMXpb+~MX`Rx|G z%o2UP6Dor$SxbTxvzVPOtD=Qc4rL+QEZ>_k7t|ZAg&=iHSFgI(rI=-30L{yk6@k3@-6~&{H;H@tUU@+i_f&m1kwr+pHq9-Yk%8axa1%gkkn~xuqxNsX+ec8C-vzrowXHx zp%DfpAb(pm{Yf&Q&xMj+1kOQBstynhu(~=jP$8gP$>jXf9I21yA4W_Gvwp~#RjV(M zBKc*#SO0pDS2~UB@;k5PI`EAi;9gLdWPNrrsg5$uv`Rq!dM!AZ+MP>o`aBU$#LMfr|uF;d%? z=%gwSnAR8#Hh?^b;~xC+!90_pTg5+QdA;!GO@W?TFBAOSL9aU7%2ycEMdPn(5hWyr z3#1QSgX&O%Y8?IED9M6=Bu241=kfY^I|PZ$rDw@tUKk30snBima~CH$Z$!%<<+*$U z(W5C?0R1T3J8}O8W7cIKf7|q!s>FjGJ!Q0mU$#mIVtB=f*Fd^?DH&ZO*Xb2(Z5cOJ zpik?GAYsZ>f}PEQ*|FI2H+zrI;`0LMtE2Y&pRu8$Nt>w`8K+m@(>Kp=ECz_k9FgGGg6c$>Ff^#C~C4qi$_9E+cVZ zPnhC7CJVePbAl<+tV3iy&c>ztdAM~vj#7%%31^9r_}%+<-x}eN%hw@!ed$yUepBlS zUd{M(kn)S}eRZn316$zgq=&OeK{nJ;&lPHWu5FaQOBH%e7A~A>Q-P~NBdBj&WaY>= zIRny8YR}R&?ilj}gnTcY3G{f*M`EAA@qo?b?lwOjasG|cM?V~c^;<$1*4w02ewQZB zniD^+$r$Gu?3O?#hW^cxcHg>WEw$> z0S@IA|K8{R^@hGB!2=1YSri`4hUo6N_2pu?neJG6j_G7}Q_auL zj?UdhsyKf>fxG%1&$VF~L362Qyz)zECe}-A5|&09Q@q3cnKw(IPH0%V^KM2^=D4q$ z)X84j`6O=&f;Y{;1fpX-U`86wgZp+Aye`6fO^l*pC#&9te#ygguDwwPM)C|~4{D>h z=Q9ZrF^Ioap!2opaW9Q23k!@8vPM)>81ay|7Sa9ZH_&Ja_Su<%toolzI?XNBb8JrjD1h0l?-@c8WI)T}WaUqXGC(0BJ5Zp+jbi zjaz1j6&^t@;|aE@NBbG3oUe==w%K7sNsGK_DnD25thYEHD_o^vOKl77q-<10Kl;94 zpn1(e@C-p>YL>kZ#Sv8@$u;}#FaR{gD_BwGRhQJbd}gd7hVk|%cq~_~N}FBpV|b0f zTb3R{jYh|Im5x_wPiQ-P?@Sfl_n=h#a4s;WcF3j@lGldn3p2Q_erIWQ-II{O>J)b{ za_1$N??_e7G|L2k5I5}A6CAm{)RK*uE}-F9NerGuLf#uA3pS-+=ZwJ3^s=|XJydCe z!T|+{HiSm3#5UctdAbTn43;44AoIN~S(3i;KMeDzh&-Bb^00bqA+Rq;V#QWxMM0^d zcMgR@XmBG5c{m@9SjwLfeQcmDf&ZNLV_?X3v;l!(KEieD$j>y1?>&-`U zG#RzZ%noGI&MFrgkKX$BA~=J>QVC_#C?>+WNdBS^(k_CZHjdvDb7z7)gT4=JoAvj7 zV^4phkftVJEc-d|%cYmi741~>?Z%+l_7XRf6EMe!gV48_M5`8&n~|ZwFS||B0skN= zB#Wqwc2LdDa;X*xx>n(CstQR$7T(CxZdKw@-uJnje;(%;X17U2VVJt{d#s@dwnRGV z+e!lTS)fi~y6uhGBSUE6sV5^S#H*9E@~7l;UYkwDbNNG+_4G3YYOxG>CmQORABphsA#^tL)|# zXCJ``6!qd%m1dK#h2!D0SDb4Q?V5>5lHJcd>l2W-J1H}-p^Bp4^=}84I`c93Py!~Y zDM>;0M#*o^&+C;t0>a!kwDmsYEs28j%+(st!phkhUR3rgvm@vmLwD~z2_ove$;e)5 zi_Lg)$8`+Jz+%Kkt>TS9thPNj%vL_%1=@iyx}|lMOT|j%uagQw_3WJ4RfhJj9An63 zoohMHz5J_;oe!O8)2gSLM^cF$YcCn`C4!6q+#jwt?-z4Hf;eQ$ISL$oT07R6g;p+6IVaL?+-^xbu0K1A~Xye{8N~WdU zZTL#fuDZfwZ#m2B1o>)l^PJPkb+3ugB6x7!-t9HWLA1h-VVY#%=}oN66pz7H8q#p> zCeC@I+Yo-bs7ft-TKtH{;>soe%12Pb5qu5<@CKp$|?RtumP47k)ZS+n!fnV3w zqR{4k3I|z8)WzQl5K+P}SbIFaLHcC2g ztKZddOdI?mWrGFyN_}}C{TWg+@8x1fq`CDFj}jD!!vqOoLF3sNnifD@#&3m@3g8&h z?m7{7oBUJhLFz$;Ip9*HhJ?alO|sDBdFS+=Zj>H}(OU(y36U@~-TticcEU`P9_*e$ z*b8_zXrUFMhw}gnLuimo|3eQPqR!zw(o3X0;A!zukh)xSTM)*)2Z>c73~GCVL*2EG zOemls8=AWFk2MZl-TeHgOLFgn!ykl44?XZN(f=>IA8KVv7UC)qs z@#X#vrHp71y)QYll;)esfD?}J?AF$qCxW|sKvJsX6z@?jF5ok{jp|y2m05VVdug&m zYji+LkLkaZcc5Sz1dw2+z5(}17(`+0sruV-?8dkY!0}Tt+-$q}L3fta-d3l(HC}dm zY$n(kJCt|9(#niJH&muVn+P)-1oZMqw|>2yW0kdAE)`ObYqkb5n+1|k_gbO^-QK7c2KbEOuEbH82V(9sJcA1K)bUZXo z(i3a9K&^z@xcEAzU^%98$WIW=zk9R0??Vpsi{Re58=)7`1}FOqPzt=H_)eWgZ;+Va zjv49vN^Ti};Rf%YQV))*DXlcIxGI8I%l8RoNU=|pB`%K(%S2!Aa6r`{XG#oMqm6;q|Nav`UX z;Zj7ER0Mi`0dPAxJ)h#oS_n%pJ33uc1gUWJWW^4u;bn3xt{`w9uxl1YPcTvH^kf4e z*NLiCm7ydDvqOha|2GxA#X)e`5cWb20U5h^FYG_?_L(8p%?D|JA=_YRMw?dSJsLry z2g$zGnQ2wGo0*G|B$nVxuFeFd%dy?vd!BZ4rUSM)`zK&ikddTVf}1qD6io*c0Fu&wo(!qc=fP8 z>e|EBl=1|>QNtufc@1j{{4&6HOEN}Fq&&{I7UK5t$Af~PhM^7^B$;^CCwkzJ_x#@VZERDxi?5RKE$R#M(+8JpYyi8+ z>GbW4^N@1InO5QcEhd7q@GvQ%AxLDfZ{COX$pDe(% z`PK47-sXH!1H~*dGk%37JvnTz3u|}{w7nVT=n8}8(q)asM%YFo`Opsnf{;xdtsNqp z`NetWkCJhD@5scc>jwd4%AU}dGSJf>e~TaI_9UNlul7s zG=uTOe5uf%$QQoyx_j%(cdt2^>y^ivcp_~tyG*I;J&uymahe7yb91tn@q1F^y{z9|V|>*@4QR3VQL z5_@IDqs{Z*1R!Crk)2<07d4oZS8wUYoNqeKxUACPWi;_1qds9#L*pr75&!M%{U#CL zeC7Mxfwvd<8p2hc6yJg>->g#tETJ%}>g!)Dpim6`phvN?-G2vqLs?Qp`&n;9w)SC9 zkRHtPkGcj#4{+7LaHg!ZlyTUlv{%%0bEj&E`w7-OY`#RQcNU!K4Dj}G9*NoO?dlDB z&jXoGh2w_YPwOiU*fT?mIT?8wi&&vvQ(e}(uj0{rrUgY%yNe%ncDtSG*0p9& z+(`FX#ZaM7dGfFI@6;f4b$Zz4WV^>hj2bOSC=}%O>XG-R_FZ^d0!{nw&M4PMXc*Sz zR@TxDY|#IHnx{t1#BbvOsCl%L9EOd&MSzRr^w|3+^e`rkM+!uQYh!y4O&8}BMygGo z5+;Q5??g6w3XNZY4WK$5COH>ZN9fS4oqV5nn zl$1-&!tocmyi7@gI->iQNw=H1hb+s_oPs1nSd;}uhBsw{v8P@lwj6N5!^cM|)6CnS zR^C5^C0eS;f8(XPx6(&I8U?>Q^843bT$SNZXdrAyZ!m98Zl$H+b92bz=}SXXB|j(@ zR0EfcNU{B}*bV0xWfE{AA8pd^#hYs%&>!{J?`a!iJh8HTMSyE2Jwgd~qNr_}SR9i_H<^iMBy9>7o{v4q}*TO7xr#v9M!_1VCNg z$ZL6x5Qd5>^Wvz$+1*gZF;;Z{Qa$jX&Y&2*u7nc}g3skwAeMkTK`)@&#Kg!mneFH7 z!TKAgHZFi1Y#VeY)9_#>EcjEBZeGw96tYE#u&}`Dss03TxLM5MNhfhm%xFVSpk0$(UT_F#S20;|TnO=Jkm>P_Bh#$$y zriDJO=cQxeYp@d&Q|$0nssU8cpD^m(%WtT?x_^e3pM zEG_}02^t9P0;A=O@H{aMlUzraL82yBnWE#RQNK`TSz~ez(a$$c9H45keH8F@YyInn zP`&zl3kTv+45=_}#?&7AG##hfCne$gYa>pL!~2bCeZPs2BnCHR{KBe(8Lb!7_PoIv zxWRj9Zm4g>4$g9k@xbOAfx%(QYro3i7t}XE&4J=y&ss<{nRmiuf$zjqTM~Lo9in}q*-rNLFQZ7O zhssjs?`rCLJSX>^GZ=^72_CuK1?EF(8m4Vm7-JS$|+-KZ!XF>+UgLg z%4`US$U!l_2EX}4mes^(W36mm!nydCG+DEtxRvU>k>Fdoj_}u0<>=vANN_xPcY!mq zaXj@Xr#ar5qSHgJ^Q9Mza=4-e>G7|S&gu5=?+I}UHKje)3)RUU6NtYaFOheJNwK9z z9xgUVeRh6VZ1`~T96wBWzQ8bY@Xt@j#+ao{;()R?hX5CM>lTX zCZRm!AU|oE{cf7+VM`rldbd7#@vbAODX*w%_^c@~ddXLXlp1Fme%Ce^{{3BJIkRM) zE1Nb-PjRFR)zS6c!MX>dfHEc#WI?Zm=i2#OY~8jbw@1m#*3ReFe~OZdlL*%txa>b1 za@SDuK7W*3lCqV-CaQY0XV1kbg<}m~<#;}lA60aJ;h7VR#1cpczHJ1xzfJ9YOg#YW z;6r?p*w@Vvae1~a;YabZpM-9+XFqag(c-Fep3yFL#-!u#UPLkkrd_{1O>B8{qj+#1 z`B6Ds)h@?G8+Wyn+PO(qQ^wl8{<4$I{rj3bL-excR;{6-aZ0^zdsGopaTx#8`*HIm zDU62mD;7W;Nr@o@U!(hC ze*4w2cQ=;Vvxqu~0ooJA(YsHX{BYA{MR(&|&!^@3>B#8?=(c*Rk8q0pM~@xo5hoPG zAK7Xhxjdd~v=?sKlCi%xYR9uSr`q37aa@yYXO}DsRt0E*H$nYGSi~)5Q?SbW|Ge;C z5b$pi*qH22dqCmy?*u-zf{{B{I|ieQ%~6T#ecQ$*#Odarl7zMtB^=2=TeIHOQmlHW zeHdC-+{8~diZhFwyz;Kq!mfoLcNb`!z3hxU1WwS%4teMMC-lGWoDWA6Z0Z=)eL8_# zX~LiPIy~O$&^*m=4?2>tx=zLF(zV|^cwx~l^V{=HyfRk8kch6(34*g?VX**8fl?(1 zAN0b?SURRI3++G2k3!v-IA?}fUvjFHdp0*4Ggk_pJfF_nGu_e>G!0#EY{{CW3B zB%!VlVw;G|t;5ky@K;%F;LYNg4K#;Fs}A6W!?2}DfA|={DZwHli=II0#k+e^Q0U4u z>zOad%XYr6X9Q<8u|mjsp$kW0UjnyC9%Im*KNFt>ut51$>-d)9@=CbY$HQ`o7@UzK zR~0Yp4iWKsd?yfa`JSz%A%%yI-A^+GlFJm%SZI8(2XBO`G>v(72eX*J>dixDHiys~ zM$9yq?F;z4wBpOT@#kimJOh2GvBj}OXSR$C8?Zw zy2*qOuuYqJdn0jwSGIJh+nz-;)nnhI-G8V@IqQeSktU^OPBTIlSvL5r0yRsmYXMy| zMWM*5Y-}3{n}3-U#f8JgLGvv{v2FvUa0RJKKSzaa?mMna(*>cW7SaPnWiUmjjmQ4< z3^0wDAn7KoGxZZA!mJop1C1B3Ne;1tK^lrbittz+s}Nv#k?1 zn1yTcXrwLSd@}V%n}YEX{ES`5v-_#Cx%hH3YC%kSo8x!zqHJmgh!?RD21v59@rERt z3|y)WgO^)jSplCWg)Omt{E+cwb?w0&4Y!P*#*ChX`Igpjq2w`*dgzB9%#@;ysTjK#k)!~t&w2qU(RB zjp7eBirf?%sUlw?s|)vSKzyVkT~%$qgt6l6)UT7v&h)HtjDbq}CA6lYFIytVcC$O^ zsg-Ra%V4|`D{Rk$W@Te)$(2@9O(SXU!=I*tjzK~lV2lQkR@QNjNKP}#@FJv5ujYNB(yxT##+-f7y6T6<7f=`DDqD2+-Jbi z;VRWsb(|d0RDZg;3SKj3lVOZWG^JilX^!R4jW9(L(1qnKWt6Hno~HD$^!^>Go4?3- zAltmT@LQwJHfew0p;Y)`j`rd0e&zOk7wwfmb76O7kl(uC7|d}KLfkEM;Ikg?9rx9c zSV!9@?}=o1QzcVlHFr^~o8C7*2~Q8;9CoRxY>T%>0`&}&><3Kf4uZ;7RpqT`cj=eE z@^RJGvg)vE9MDG@HW1^+Hhm9dkz6hnPjuie?2tU);vr_KJMU6zqKQT}{Jftbe{l4V z*BOs+Cx(o_ktcUv+St)Bw8UMZ0&s@;4^Jj8i{Q8&pb;MzsbT)Cko!>bZLFjU3crol ze2mM9J+oc?n=`Xp3Np})ljZ$=+OU)VH=ySE^OE~@mfPPDX;OXy+zYuURPrXW{|ckA ztqj~D@p}9SJ*g*9>sG!%G(z-wD()t=j&dTW2|O=1NToCtl+sMvZTr}^V(|Aro}kyB zZh%6oF20}d>s!^nCvLvx@9RlhFf!dY<*1I64Cz%HQOW-ha@GkEM0sHNdtU$RNI%q^ zp$nu5nlC~Xmh$op>F8~N|8gNvMcI?_k4h>;@;}zAPEMuZ|v*W1rH1?i7(mFM=#PxFJf2cFKWO3mgSLc0R z(yNZ^?%3<;>4uEhHORuNCA=|S!L_d7&j+delR|N+mqq!{#fPq)_bwjxpbnkKz14TQ zW8nH}!x6W^OV8)7f?)g|@XtGjzmB^MmrnK@+UK0^BKezW2Zwt*AcD`nyl?--T=6Q^EcgTo5a|B{^Vj=RVi~JNR+j z+Z&K%1y*#g`}_+Lr?*+wKY~brGmXOD9XS@gx3GF|PYfE?Xo2IQ5$u;QxXu%l#<}dx z)&9^3D8ezZFjCS-K-%5wH+Sm&K}}#`_nd)ggj=fb+-dPlOV{xB}TaipY7oPs8U;vdE{< zdV(OtwvWHOu?q^=v=Op{oZzr#ksfovZ)grgfSIEiJMU7oNHmIZ&HT_|HGJjnqZRta zo4vuz3db@yIQ}PO36-Tp4I2x~f>1Y#AMw>GeC8jon)J*}S)lnwmK$tO<)bt0T4hxu)NIRy%I>K@k55;Wzbr=zAsw;tyQe zQ7-qp)nNAptqDB@62~wXZQLtp3q%em4U1(EK<2yl)pa2lB~UVbXb^Ygp!=E8c-#$*(?psSGNF%f&;{ zMN@q?M`dKacw{WoR@4E7KZZYg?_UNr)&oBa$FPZrhHS8+yC|Tbz+@_5+azvSet5fh zaJAvx1${6T^`#aO(>U3>(#tBe6cr5(4LKvb>D6PX0~jXvm!+>oC}Rb}9exTD_6d^S zU=M2}Kcj9t;Z{sYGEYy^n&1uh*BhfDk}S?N*IBhMHT(=K*0zrB~eeVaS~;l;Cd9r z+YTEo>2?Z_l2{kb_2e1ToOmdEuW&ZGG4tD@Jte66LNb8hFL zu<;9JZ9m$vRU+#F2R`oWIe!y27#@YYEo5Yo7u|l_6v7vq(s}i#GlzntPa2)^=KQIz z?BzUhbcj0WudCCw3APdn6pQcDKw8%S74v57J>E{G7R*aoI#ND9`-^VWtTHGb_deGD|AH@H;Mnp1whSf z;r;Ij{0LuVTcC&C>YPk=D%Ms!aVVL!YAKNuK)wVb>E@nbYGV8asZQFkHZaFwx zH^r#lN%K%wYgyC~j+L8oX9M%@e|tQm;)84MMzGzY-(G=*xZKba`83h*$Hay6 zkYIseX&n}cM%sZB@9C4|5(j6#e?Ah4tKKH<8!;it?YT@voblGX^+G2dR9y~cBQNh3 zHpOL+3I0B=LTr@hXrT8goHUWUe|ka$8SG>N*So(X1w-RtF5^qRNW5@r49B;tJ@ zz)nbV-?O^gj*puM&IlT%T$a<8@7$$N;k7w~*o}{UOP(w`FeoN;3)BvNJ@@n+yj`e` z_zwOBHbrDtetvz-{Oz>TYJu3%d?mDYb#2!EOI@a^Kr>z2tP7x_<^{hNww$ZnOMRurd%}1(ErM4AW{uwyr6vHM||cj#f@#q=2on zdmD}>Ky@s)+sYZv&)BoyH`3=H7Z^nt?92>vCD$(lj^7M{7D3s6g6Ys$3r4@it!>2L zmk}!*dUm3`KOa;Xbcw1>c_lkZS<7wjWdz6Ky7*qP>Ik`6z~X}}OOn8h^9)@EA#(%s zA`?MtTxjgDX&ntQEVo%7+@fYh!n%ZnvY)^u%tV5j)V(S z5O1&gDgdPzF6awBeyV|pG!y*47(1(&IHQGKL!mefh2rkC6qmu>wUibq?ogaT2X`Ob zy+EOb;>F$F-QAtR?H~T+Bq!%&C;OI*Nx1m3)_Uc6A1@;YF$TV12XbIhWadWD*Bx`8 zwJ}AmB00;(eSeD_%@FBypLf$`4ssB-VP^e>+>W*C-ur_7Dcojy{bEd%9hw}%2KW~4 z$1OTbnBc8x6u>-Z8-porkoC8Q*wWD+c4fcY0P}-9g@>_*1I<&Vty1Npli$;G?D!UR z`xF9}Sc57N#a^+4xi%6dPFW3 zk&~&Ue~4j6A&21oeS3q7{jcpw%#LjfIJXO@tKEZ|I}iqVgKFvUj_7HDXi7iu^WzBA zmfbA6ospv`f|N95qx!g935&z4QOFdgbb{C!NL@FKGRX9MB~GOxU*Lcpa!$3VxHF?J z+*=ga^m1e)o7f%vp(I9`zZG<+-xld-=9YQ){Dy}gNtY@ixlrKP~Jm^*P{mU8NPzY7V=r`0`VHYCyUQG0ab5aKSS>o8j%m!C$x z@0I2SY9;1>K-X8*vdyatz2^7YejKp#7Ey0wIOuo&dW#VmYx`nAM`J7)nhV=|q1a{- z3)dr|-P<2w6} z^Fn<>)RexM@6;{X0DE9A!qip`C*FDa@XL5%$dGR0h z+T~af2}){&XO=e4K|$qhuXC+|{J${UJO1uu#DFj6rmccWyVH*ByVhmYR{yLOTq6gR z8_pNKKA^eTq>~%3IGi*c0Z6Dj^#nE;ZfZ+toWv4_iFdV}h5yhr7um$)MSv5UOY#J7 zEEpebwUt$mivqPs!XD_IcWNA;nbsFY7_V`z5n`5#$$X9&#kMmq8c5Xm0Q?0Sx?ZmG z$%t!%Z(No5vMDw1f2G^wPF6HoxQLv|1IivW-)0Ln9}dc|{)E zFJOUUgfECHnvz#Gb~TO-wrD3J*b{pYW}f4-l> ztmGp~jc=O+msWS@M_)qzFwo8BWTkk+Rx;S1$*;F(Y;S55n5~xe{yQaEqXp?1HktI# zn1Sw{=Mya1R?~aI5#O4r|AQ6Hba6V5gybJWwNe?l)F=P?@51QClG2FYO~dT*nfiu+ zSnmNW0XKjBa9laG?RHcnmVYWh4jX;VPVSp_rQQ8zPr<1nwDM3o;ackL`Lgyft#`UX zj(UGamPvu??sMbnll;8F`n-{G!+Cu0_&fXlHwcBVblOFHMCfK|Qtv3^&~_#I`k-Pz zV_@Xc2wv2qu}S?rkU@~@X=wCOk#w;bx*QFzPZ0AcUlog#c2+)heLB8!rY1@&%oM$R ztAF-Z;Ha6z>&MMPz*aXbKlgiAl4SP7oVRmTx3c>|-FF0npME$@>e%5EytPO!oe6lMbWVkPNzeI|cX@;|Pt{ z=*zM+Hqdc~QpTRHL1|O$&UOssWZE$zI16xzI&HkLt(V61M|r(vm+5yxBW%Np^N-71>$ggJ8-{#dRuk3lpw;w~cn(DFr^@!LLy+ z0-KCnTcPXFt9W}(KiA9vgLQLrKt73G(>v?#_A~E1C2VbK3psgjZJ)G!twLb4;;ZkW`DXfP?Y!F(OVQ=6`pXqk?Ts^1R zc8q7@OBLC(hsaVlGwF!%28Ao#FKoP;tu;e>r)L6XMK8&rcbe926(v5UobDaHFwvM` z(G6OX1l%ZsJ<}dOTN4E;GRqgaw}fcRex`Xr?e?g~h)xgOw5jkapIG*AFBv+V6Df1A zoEIiEeO0CqdSDsV;Hbz#Zj^Tl<)_dY>OEmu^zUjjRM)fto*y*c_|Nw3A~*K@?6IfR z@X03UOwa}pyWvpAGMVTUHXnWY)W^7p)NX6=z8-%sfDiLj2piibNd;-COstx1@53fE zRZ7R)Fw|1p7`M%00kDC1Pn381SBxl?jb!%9&0m88g@>eW2<;aQElJp0|2K(?+GxYb zj9}+~u|0%|2H-2Aj%iCQpOyMH&-OT4+>^LwV?1Z<^+A)b`aD z8-0JUTdzIdmy}}Bx+9cJ2ST!_H(zGGbcQG{w3Oo_12gbJmP~|y;`f%_cX=fsKUWZt ze}(1I2ioiHUyM`}zF;map8Yz=uW@hIXB$TujuKq=KWqO7boIL!Al>X7W|*ONWQ=HU zIZVtyvXku5fPA>jjMA|2Ai*8vO{;mwU`lsTHr9*?_#1T0tMbROtM0w2Vi~MKK82A3_7p(jKOI9L+!7D{I*CuG`R!r7A*zvK_feeblZ%IEl^RGigo z|4sv%==rYblSVJlrl;{XrZB~3zBUd20 zOfk9h7nE5v%^C}v4GONO$(jBHA~M%|A=00jXZf;K(fJ5;BXiE9$s#fK-cCS&f!sH| zhgIKtKBz<4vaM%759r|3)!=5xBv}mFH8@{n^CjA(0nWgt7k=|GgOZjY86B3*4Exdx zs(JnzXA@;=S`&FJuI${Q&3cd~-{N3G&D4X>Jm6T*@`3-V{hs`{VOd~?t-!>Qd24ab zvGUakQaP{{RG7XSQ7OC#>zV3();rm+(;z$kT}iFRI_6mj)dQ*gv?Xd{Jv0K>j-C82 z5GoVMKE|h2Y2G9|G|n7Yvf_4klO7nhz*L)Q$|`bu*HoLl1`%%VD4>sVirY;c^)yov zhZr|$$HY`=&)Il4GR?jsS|HtvsC=t5QcD+w_FPaTy2D&5M7ACW5 z@*GcHzj3TUFdj(H_hI6;kkyoM)1mHZxF_A6oVZdUMeAboj?qRvs?q{QH*Gdq$cOfFAB!XF6*XO@GMPIJC#`+hd z*35;zJo6>GOEpk=j&W~Iq`^SK0bzQ$nEepRC=-(GO4KmkS>x*PC z0EBN1V)CxFkyhJvu>vz(JOfYT1%i}Q;#i+1SeMU7YBJZdq9!LyBBmFA0?!h`^q;$uWU`&qSu8LtvA05ybslQZ6u7)R~U?_m-R!pU=bC%aJhKof>l;LUbf_0@%j|0FnwF|7oU ztcjrUo=V2$){@>LuL3O=L4}c+iT;2W*Y02aP+SO3sxh7-cOOFuOH-f$oWWdFdAXOY ziz@2Dbj+TO$tPK)YKb)TFZ8SQ7^%)Es0!$H&6AWyDKqd`r5i*h0d9w9c|v1sQoG^2 zYS!Orh;*?vNhcmM6_OA`&pwGAAt8N@gCP2{If`wKyO|@9e{$XQYp^#~Jl*@j}a z|4b!!TWdf2L0$Jx-#Efg;{;wSku>>yt*XmB@_CP_8{C181}63YS41j-Z9{8Z1oD{i zjY+syE-0q`%AG{To~b;EY<3pM`5qYeu4(Ode$FDNIBcp*lX*Bhka8-Nhn|690!P}_ z!BBVrOJblMT-d+k$5q~4S1jqYhAGa`zwlAP&l}w&fww@oQX|z9fz56&DDU9CX0}pm z@;gI(@lxQ(5u?LSRZDYlpH{!VUb5=A9#@PNbirZB-xO6m|7ZWsFWc#ufM-*lA5;MT zn0ex0av|#qte(`WIQyplQV{M+zJbWBgu~?sP)qx>Oq>*AoeJ9t?j~-TTE$7klMr4^T7bLfvhP1&=j*#0m68Am^t*&zB^yHaC zLcFU4(}>7e@?F6BVFsUdRieA9`ZD?MRSiqRY9yrddYnCs5%;zzW<&eoz_h^5^l9E@ zx3a-B!Ot#jB_+i>!~EyBNQbXD)6&{W!>R>B_DdkJ`-Q`ViH8GE{rQ|s zapl3aLNkFEZg%x?;;a)=^Rw{`DoKR|+j}W{@P@UYpM7h!$z910u8o_voi;sN0yCBu z8ppVV{v6@c^45l2Q!Fe_UR8cZ3ZtMyX^FHFxh8&S#+F*SNU9Yy5r>HApsTOiEd8m3 zojEV|_y6=C{+%UlMh6J%e_fW>xYRoU>5e`ifPj@D7qTa}HFgg*0W823H{*%J2;)OS zADCdgi8ZRVP|+M$SQErI8n4&Yby;%aU)i|Qa>3Nf@w5(`Unt$a^8ZS=<_TM7@a}zF zxQ0KR4ry*GvtR{%D5HDhgm9z*ob{l+wgC!}3xT<0`7-;yh&)t@ zq{GIa3Xje(Dzv=-8fmBM3#fdrBNF7N+AQ0@i~$-ii;K;qSLZdg&CIV`g^TIbHG@a= z#{E|_%I!CA~pLb zT^2DF9s-)W_N*1ZrLnUwfwqAu*RGvLcuTaO0ZPr{g~Km@P8o~0Jq%g?xF24AN7&8t zi<|QA4l&r`SOF-KjBz^HJVvjvpGEZq$l-3%BUMr8m{GWWaj@Lce+#T`Xuz*i zs~9tK?sh5Vp-Nx#lfuwN$M};^dfrydoXO~`u*C_dCDZhSLi6ld)jm-aRBM#?)Dat) zB1{5NN&2+)bKToM7RSjVr|sxtp4-~9e+=i_FjE$?j7&dh6}btiZzn0|zB#6%Cq_=eV6LtetI|d+ zj&T%zBv&RLqT6k%awKxPN3OPt2QA(2!TAB3NdAbl?9fSU+tR{ESf~wshD=bPa^a+_ z%gwE?{ywcZAccl{tW&*zp;|9N2OaK1*8RG5o2%LO#*3XaHK#q${M_1y)>d|aN?9~fGSQik-HQ;ppDwSiEKV}VH3m;t z(t*?nUcPdFlZMG2Hz|Gl?X7$rsy~J^mT>}fg9C%lh|IpsBoqlAb~Q zt9i7};vEpbLiC;)-!wvsDHG)l`8y)(mI8KsN@WiggZT*JZhQ)%91Gs`x9e0GY1b3? zk7v`8NMRBK#Xw3_#K+#EvO;7?HVT=dO5@`P1Mzt*XEeQQP83awf7HNyf{hUPAN%h@ z^C>qqT@2btI>B`hXT70TIhyBF3|5$ja2l!qgE=0Xc{j!ci31>2to@86Bn z$ViyKS%c+3o`ZDHR#Tlxt!UzBGwco~?~ydkOS!*s_Yt!zw=M47@@{S@S;ti9N1nTe z;0URIh(8?SKMDn{UaXUKwn(uthm@QOYW&VxbB|3a8_~1JCwKX{KiyS1;|WcV98c!$ zx(`Jy372!BE%|6>LX|#C6)#?gh3-y@yqoSdvr`npKGWhOD!YR2zZL_^nn$XTALU(N zVFl3toei?C$JUMDdXC|ZO^sqB@c7#!kAT$AQQDi;w}Nwsp%>_ zU3hbkC%;SR{v^S_+RMvJp~KY(Ke1$XH^|=b;-v=v8 zWRBn3i1|GamKcP&r2C)IJ$>t*Vhk9>Td>AF&H1ynpuEL3|7Q7T+RXBIIX z1MP`CO^S3kJ+&bV$GqyC+*!#UQDR!pvEGjztdAX8ff*vtnM@gEYp|F=2$ zzoFh}NzA%--G|e4JFi3ScG16x$~g-RJ`&S3J>3|EZTHo!pbK4CF>b}xnE(`$LwOSg%@s%&QwHf(4-+4=FqZ=um``@gm5KD%W| zt0BUt?xPB=Hy*9Ye@FmH?p>I5TFE4VUL6dc;`a+>PYWFT?|hn;pbi^dVbE{-SKlhe z(@yzY9|v0nojtObkDE=emO-_yyf9gJaH1C$;9_{tM>>3HIelm$({ojPNh`Zc<5-ju za-mtNyITZhU1oq5W_aYVJug{E;Ih;VvRR-elOJSf77y=dtCG5kuh$kzT2!o5R!0wQ zPrnGP3oad%!7|hv!;@Lp)nwE)xSj(T%P3-|VAxf{K9@Kqh9*YoD7A>YRcLe%gGZQw zMV6(@gM6+ABNAh&>~n2fv7g<0m!ngw z3OSJxBVvO^-yL|zw**Jh=LUkc!4Ej^v!{?-TDWQP$?MyW5_#u7l{nt_&k05w>34@A zWJ{>n9tdkki8h2n zT?%)=@;;?8-tO5I)|z$9U$HTQjy$yWF|ZIu=jDI#>nPnEbRgv zJE1mC#i_sAhBiYO$Wk(ukRhb<@oQZSA4Ix!h~MTFx4fRRlzHD-Dcs59XqgEOLMWV- zesB>`{wu%Lwz7;uCLPIpJK-ubu1!Z$wTH%*1^r~GMm)xqSV81=u>r*=E{Y5b53z&J7;Gc{uT3E zR23BqzKWtA3CTnZJ8rnr>F9O=-TCa}Zuh9Cv~V8UZ~V{aHsv!rE+Mo*cunxCZ_&{y z`Md&Idqwcs&~-UttQJ_soc*H^pA-hhG?|K5z|w}7sHGv>*!k~WwUaS_hY%iXgCr)= z#)IrI6P#_~8fL%ChGHW&`!8wlJMGya&SX(~ZI7h{>6K6rr5!|97DM&f!x%kyI~ z-2X<8vT<;qO-!^A9#Wa(s_REopsN3D2(ISj1H1r zSy^2dn7b?sBD|fK2$?vKH=hW=4)t{Vaqu>{0XSxia1p(m3+gFeau!~NYwi!^+1GFi zhv4}soV?YV9baEM{TRb;3o$9{N$ega{|gM^Wjgq{xlu<``YI`k^(iGh-PGW96Y4J} zr|x@B8IKR$+Bcl^ecS&Cbu<9eE3Io;1c{hE1zh=FCh~1!Ucg}tI!rW$Wwsy2Y|f7A z5bhagan9ls=9yvt%FtgieBv!YEakL{sL5pd(oM|9-F)YkXUy{ppF>Xb5@{!z5fVk| zT1KZ)!kJYnqV)$NL5{mqu!VEM%Vn}zJSFkXYULU8u92|l7z1CGl`P`>pPv(zXy^if zfwaq8TnV~&hq3+z3{1TSjZYS1#Z53#jc=FONr#kTvl<}-=dmMQb*avVrmXjIZ_5~B zQ_qj71zfb*?gOUAG$Yx?D|6TW6E zhgxcd`Yp8%o2=pwSv&Yx;#_3JrVOK?N$X9^@OP7#PedlIq(oARpy&JEzr7r{W19$} zCgL^+lps})Jz`Wc4h?Qc(`D0o+g?W8Y8Q7gy6La9?xf+bPxu-EFdzw-*Pm zCwBEv_%dCHtnAELXJ7j$lUDi<3-+ch$&aSwLOGsGy^aaB| zi-4)+h56{)W^6<{ir=%Bm@1wdxQ+O+?{9tqn?L9g?lbSUI@-(p(GzRbTexNrTt_`e z(5U6ebSeEY`f!ol>M1Z#-!w}$?)m%i)vP^t-0}?dS&W)y`2Wt-|L}*p4lc^EmSx=L z(_BvzamZ#p*vAt)M1H|R)ori05^|}hYGRTd+_Jz7J zd0w&FuK!TK0hqu8cd&rfb3Q@g^_kKtRB1oG^)7w#6(P>UyBd1WA1jF{t^YBu4>lq- z#$u+kh`h?4cnSkviM(*~M1#Ct(2SH>q+>=_76F*$+|4MWZ&oW%MUd@Rje5J2k$9rM#>)4= z>%5so#fr)!{M9DzAH^dlXp3vTKzwVSO6j#mg*+E2!Zxxt!}Hq}Q}GH(vj)D8! ztq-scHG*qe#;#jU4NK)3WblhsIn=h?pE63L$WUQ=;#Hmd@fm+f$n6SVuoe*`yCFeU zCxfSZc;~?qguV2P?+yeyXtp<`rKMpsox=*E1;vzGT==_cxP|y$8}(;#ll~}q8bqq@ z*M9*e6@eMdZ3i2dzl9gx5gawRR(Y@ozzOB88l@~V>J1%<*^fqhy}8Lvx0T0rvpkew zsqpwI-Q5e=@GA_f!Z^R*h`p+zN78*1XqGeX%a8Y`T*z^Epx;PCzMGSg;}5|iQmT(WO(gbDE4Y~=V$M>LN#@r3#isX{_%=3T%wsI1&3Bt}#i;%xTeW#zta zjmbp3=>;VthsIcX#6U$<#J-<4{Izq1`?dO)518Xz`!N;*sPA>yu-L>I2^H2+_ zeHm6^Vk*pSHViq;pGU3RrcHYWl!!XXIj(Z}#FcEsREc_TxuEX+K;k_FT`Zd3jHj+! zH(V5iB9=Sz7ije+rdUa3Uat3Fi@-JMsrr1bM z*XdZeB6;HRC<2qVF+bD9e)cimQE^%=y>aHnAJ7|0jJ}GneJ*xBytcCFO5+E?z>=$J z(;lK|p-7KCL?s?d)Tz7YvV7a{v>4~o2-DT{i7voey1(AOG|7OHLL3^ccCHA)bRAacZ#-1VM_d0QX+!r z^rc7}Uk^@N6i5ktzX5LFx`ZFF&UD8=a#`&WyId?ij=lpu4k+8x!%ZDVokYvg6A%n$ zwCm{0)~Xoya?0~YvvK=^sC)OphY0aTd)PL2>cJ(el6U*l!L|!o7ItiJksAsXwcz5I z`g_x+d$&GzE50N#+shq!>?4s-p)e6zO#&ryO?6FVeEaKh_l0r_sZbudFzA;$j*83i z%CE7l8Is4{;ryWeCBP*w#Z*XOLp;M7Pmm{aD#Z!0J?!5Lfg;=M{_SOba8P$$oXDby z8U8E<9VT}_o^?5`8&S<-BT(eT&8By(TH56AV(poCvI)~U=U8#XVWgA4&!Oq`KqNz_ z1rUW*Ww>-&y*Oh?IrZffJ?CYJgR|s}?;0W(OG7LI00XK%56)B)2~~hBY=R3scMzsP zE6wT1o>v&3KyW>OSrr6NKFDN!;Fd60e1*3tn>z45+#$S(nt2OILR1a7i{8_5rLS>2 z5lqPMy?4dL_JmW%zm!EA$|q6#NjEW)|J*%{L}Nf zJ;eh*&22^3Z42&wo9$Li4qOMgi9B|SELEh!b{LNL1zI)*Y9?uMoN1(l_T^OMk8KYc z-+9$AZFN!XxuS0`%rQs%)Sbwj^@aV$XC@+rOSeu3hbtZ-A_(0TF*&ZV})-( zBDF#vRxV%B)n@l6r_U#3mdOf%r}jQj86PgM`D8CGnOIMiI_(&^++7b;Y7OzaCFprD zu*opwyI1SPF`0sgS(pQITj93=68Yzwm*-VA27z-JO1g2nglyF34A}>}9O~3t{RDZh z_Cc#4^UO>jE>XVYOPLGZh)(3#iS8fk&4||92!yYCdN=&{%HJF3A;WbEhsDh{rua-_ zAL{t@SwAT-q+94N+cSH#t2)IMK#IA?6cDtH^!ncy@z`4#0fhj9d?{7%Y!(Ql-L+{* zaTRUS{$WTY3@rSRsd%9-E`$eW9#6N>sGAU(b~-b`g1!cIPU98CC3!Fr2^=Q|xfkNn z=^nP`Xg$sT+0wTd6N|{v{t8^)KsUH ze!%<>OzKt9w7?~f0At_!`G9>kLOWDGbOx1zZ)ZmcYa9>l`(^&zNs9TCk!{{TgM`an zaLm%6x|%t2UpMigbuL8W}m63dz?w>I#74 zC`x6$p$D!xE_rvmmHtdyPz2}uG65dJ;2~UIj+Fe?HNAFSW^tCQ6>78ZW#O=T4wv9m zB*grbm)&BGWSbBQAAGVKpXuovfxNo9!6_+Xf9#iqO>u?QerHVtWOT@)@UW^484CbYM>Q}5 zH!mFh5biec3L}J{4{jABG0!{@6HBh7+7!zR1235xV zRG7GFWod*Nyh3=yRp&L#-ZYJ|>HbzahwFWFH*YGk;r_mRp;#t3I+k#)xLNyPrBe-GxW>AxqDBtjsh_6Ull31a!& zZC0JSXu9nvQ3G^|KHbO|Bvs6bs(J~x+6ag`D%+8Y6>u$&vO`Rs>4G(r2f_2?cPLkk+-1Pvg0BMrHs zKIerWGjlGNL4{>-jWljfl z|Low1^$wBj$tFo&{IDVTna8}J0Fv8&lAL8JucbJc&mUH@bo8O*Zvv72!ct|uATpWp z;pnlu6N^lG!gaea%PqY|63s>BitMGgh1~p!DguWbVKsT`?aHD}?V}{O##nNr?(thu z7C94Ey?56?iCy{9)`iOs4+{miKX_a?l@n+Tjub5WiXy*%Bgm&m&IPLv|$|A&DwJjy)<%D&Hh_|nW&r`wN_Tj znqyKH2AvvQSiE6l0v=#km1Ok;-&2>$qhw4S*gfMw^Y$J2hg8$DK+;pr=8o5-Gwd)o z5z4+x&91j{hG8y!$V@VnYa~zkMPM(@?4|kPHHiOzU&`^J!$irtS?+3Fxhf5rvJpxZ z)Dio9_wtzi!YQ=F9?d5c$dqfh>r~|E01GMQ!vetB@*+?Pk*{IHg{{|Ct@x)pBFB@$ zHZlv_IO_t2z@9~PqP+N_mj|DhQ>Ne;;};eJuh0(N6oe2U`dZE0HNyaaR4VXi6hiD28hdnHUf>p(vjm>|6uS zwvB|H;vHhH;4w0O3kbtwAdpOeKU=pA#j?#3G)iHZ&+(b4=`e)r!a-rhjpwxdVMf$M zugo>K*3t7Dh!LKi%>#RtLMCX z3Tl0yA`@L`+-s{CLba{9o-ft`aoaL+Ub z5>`8W*M1x2*N?~_8~aHtj$2ebKOh7$O#;L*+U~l$xiv%CCb&=tqmi;C?#~qS{6O$O zWCKG06>c+BG1ldT$jAmCD(yp(sU9hda}0%!q3w=Dflhg@IH`UtCPIiP;x2{<+>&ec z!Lm8eY!NQfG_m%7gW%tl3rgLghRWpC)e}>s1uDYFN+IN(Z&Q$=iB?oqw)&7Fe9Y0L z`2fc^SliX<9D_tzW{p!TwfyGO(;TEn-M5in3;w93fgR9}Yz$y)$OeCp!>H!in@{h; z29ukX+_M*fOB`gLkb=d%_AeA%bubU!e`@|-ErhhFvsmZ0^OZ0OwtvdL-!_HF^9#Q7 zorJI#BXfJgcWqel8k3FOeQ%W!5K&3fTwwayMIPBe*29}{lyy!Dg$jLtrBNhqhw6cg zQa6^+gn-MJrO!8(p!lyRj`16}vXdtCA9R>2TuN0XrWg)RLyRT4y9*?Gg!*w3bPyBi zX>H1vJaQ|0Z+FssFFV5YDRxFNbh7a;Zbs$8S2(vfbsnFQw=*P>sn$t@ox#vH>mTD~ z?u3PLZB0Z2j6z~myB#>>nvm58QGQS8j~)aSHLnDryxp!-Qd+Dv3} zO+_^tSiBcl@HluCn%&Wei12FqPAMjL% zeIk<9-Vh|JejH@7!zY+-*nNcqd`RQmIisV%X8$387YFJMo4s(Cw7sq z^B_mhE-t23a~EkAB8jnEboJIR(EqxCXeF3(R@EE6BUQ`EZFW>MbrBvQ@Uv80ziW}X z^*s&8xm4>wy@d$vY3fO**hy95cFqYBBcYXKCN`Pz27j$yFS{`I^i;&?o28@C48C}2 zdhtumv3c-6u6rI6yY=@0o2NY05I0=9T;xXj&<8)Wd8o^^-aNK47r3lEStkz`( zLk3gfzKcKF{Os`pADv{V!q#c z`Fg>Ljz?~r1#r+jJxI^E)Lzx(11%@F)AyeA)jGitixsAUnlXnGjnco=yg(kZ;a&H= zgn_UFg>hAvTmOOmtEM0Xxdeo z*beWh>{1Jdl6Q4f#ikMm|LsORa(zu?+EtY}7zw~knLIZeis>zqWqOdvFxsiBx<~GKzEjG`HqOS*U>6k>n5!!1)83@N4eq zfO*47-bcOOCFW(cVMoYRy_u#?9@eitU;+`IlOV|o0s!Uwpz2NOlIP{{GA^q_xQKYm z{d5`D&FJe^)Tre$#ZPF~8phqhewaK5oCth^+3aBy4~_1u;MWwHFf3^0!TL=% z);;TP$o%BD{z!9kOuHxinLj~Oj(O%Qx~s+M2!HAAnT+?A3_tyYqXIxvSYamjzjeD` zzHw99t`)F)S-LUJqw{KwGTkh@u3~+LA-h(+`oA&4J-Cm0=-r2x-G*}s2sGwB$vDCg z8^0t1pS%yXSJR$fAsI4%(pR2VVW+)7i@;LsoniRxt3VD7%f1ae7e4h|*$&lkhvrc{ zvB`Ozr!|v8sgSy0Jh@X(VdJ0bI?-|MS+`vbE??u)^PBgT?BsD=t`BT_G2drDEbSt- z{5CEi_;8^nyshRh2t|fH^o6wTCxORfuCUa>N#CKzGKp=Sq0D2DG|U-)R5&oPTJ{97 zo~|w|9!vMd=3o9KXl6WPKQ_I-Y`~>52dc;#X*C2b3nEU#()QnrH(8UAoG>Wq$9J*W zZ8rq}m36KehqQfGsBx&;Ys+%5UC2rQ(&!*C_74+NNpbMyBr|)X5vK9=pql(&L@t==470k?;w(O8F__m_ex!a2t%G z^UOiw!s_>1#0i=P)wCZ0`V1LQOif`pVj$OeW9#hfjWIHB#vnZYtsAFz^FIIiQI$XP z-pZE=AU<+S$WIDih?ayM7SfI~B--OXJg!2jT4?G-hx0a-+jx6(Kx_!-_Sfxmvf+=jKfMbx)$l0l1$$LevD4`NBmm z!*MnAi1MUiLWAR@yQO4#Q$wrBAuN=>N#2CVmC!U-?6|hj);d}RuFP|O#Caf_jTTcpggy-7)B0`0S=wOb>wxk(4cxO zO%j#wY}=YkpJdOMDo2oRt<5i4FaHk-r>8dB(&3o`x{fz~(1V`!hw-WL3E6 z$h)Qsl#cJZT3ARw5t03dCHCBK-$)?1?n}nE#5wcB7xUf#BYb*(Bn%HNd ziu^h%0pXd=;Ya}l#29*@;ehCdR#(8tTpuAKyXaX-0K2U{!crTpoXscT#G91}d`)u( z<&9FTiCJPv9#lqliYoadWyD^gXyN;urX$4@>7^JgpQRFes!mMwCyw@Gboua>-x7A) zkY!?!SY;A<3=(5+jySSdq?(VE#{gwNW#9W!+^eq#n%zn5yn|iixR;4x?ifat z)ZtFJG(r@eRcOv6NJh4EgF1d&=nub0n!J&|UJTQ_^xYY>rpOMxIN$qu2=+N9eK*A9 zGN{t?nam?Zm-W*rD_K7ezq163$Q*yuJJ|EnyxKIz#2JGCXa!>&zIg`;R_~(lRv1Nj zz(@pqgHakEXY#VTO2*xg0zUSajaLX>n7eRKOA2A*(n(18lPDHjZbKR;mv6|-$;u2i zr6-T5bO3rFulq5dXLEk<4PNK-&tjQ4)HGb>mpnvvn-aEA`hIDiipw_keh`uo zCWx}>gv}?RJEW{BD}{R~n^M1vI5%=X!FBlyt_}W5Pf=^ObIbaInG`RNS0^@yyC`Y- zYK;onHD5Je=V8;CJlW2K`S4 zedLqnYl3hjTGvBDPwuvLcp2A|RILKE0V7C)3$*89(65o-AQ2YZrt=;*t+i-xFvT6Ct?>=9C%i*$yRHxT z?Th9qo^9*XwVqaoz*p{gma**nsY3eZGbgkWtL!pYns-p@tv#{6I~O{{7xDwVYhw*z zIoOxa`>d(EP^MR@^Lu~cnDwEOb&+1v<*+czZo_WUmMGj!|JRkHfZYu1{ZH0|@A0gl zhFFJBTgujrfAdQ5W>Nn;`F@J{)qAgBXSQ=!aMQV~f(5$CnlEeJnzLcJu~C)Rl|*zz%D7yW&?XgZ|i?fGJb+Rk|ab?Zyw72fg zDQwM3|9%2`;@T>(?DO(uI>Rep>R8pP|8k`-!tiXQtF!090DN@BZPI_5)>nd!Mf+r* z)NMjasqclQaVB1?Xs2$o_ATJUg}%;=a{c>ql1!d|xK*{>WgGRy_>7;&F?E~2ERQd1h90U5g_wDMdtSt6>qt8by8N)K6?V~< z$=rBFoeA!n9=u*91g>8yqP?u|gJH!u=#jaIz>YCPq?CYOZoGBo!pWQ#H4I+*Qg1wA zYmxwY8!jvNCDVWNxaZIE+561<@!wf`4(1gi=AaYxT0$H-Pdksr#SwhQk!rxQ|0z4H zuXXG?pwT-`%&U*NCPT+&`%_S=>n&mw>;G`}RxxpKZ?re=PH~69o#HOV-3k=9Qi{8~ zyA_w>THI}LcXugngS(#TKlyIHV@FXPHrbRLr4D+bJ~b zy&O4jEb#cV!B&heK0;eh+YwEG$?^r2oIN-&HP2K3`%6^llWQHi;?i3@t**Gug^;&kWvqSd3s zWZ6yRj~Vr++8|a4NS&q^XbLl2_=OcV>fzzLqYX2weCAQ(9nkzW^(D}FX5qrdyAmLu zLv{#_9;w-FaL8O(RB24x%B;+INg&*WM^&@#c>6O~py4lDoNzWBVhbzKNWSOBC$Jx3 zZ&@QmlOKvJ3=joc-sTRGUv-JSQYZlfCxw2X>IZ>}?C65g!8Pr@SaK4ljF$E`0aJqf z22`}#dUU*u6-F&Rz14x8B0dMs-rhMm7V3WN*A+(H)Sn{mY_^V4i%%}uesw)qP^ix+MPhkDu|e~2I1ki4`%kbJ5p8~~Z7 zMgBC3)Vd(O*c@BA|u4H7dJ_`*eR~H+cZamD%vV4G*Bk?QSHH?ct-lVP>CQ=sz z6NZH75Lzsr4I=YJI!5ZdBNU#Y;2s>E{;qUwiVvi_(hOTU)GO>VG83*$mPiv~Devkc zPHO9Ml=+XQeLR<=iN0$w1~EUVvd}VlYd*>_K>|QE@+lG0jK)Um|c+RVkBco9f;dIGZoe7 z5*>r?u?10>g2#dg@os@mWQ&V^?#wsw(ON|w9lQ21+=0;rOQ;uL6-Ud*jz=7xe<7kn zktVR%q7WV{aHtvZE5+mQromkGQoThu4as$?E;=N!ZF7n{uy3lSRYP1lHJ}c;B(+ko zQ_8>|QQ6uuq&eHVd3eWb*0l0Kt|jWl%YNI;dYPqrOAe?0YpOa3K&|G$g-0iq;~{Bh zClPd}yWQ%pTq{#AX*K@6bHIxPnVU%xx%6F)pSU~n7;Cut1M!xhq>y6>0Cvb1= ze}@qaS7@5D*Ujr`-u1@1(kpl(T1|iN5X{#;xGY8YoGaeRmkx~m<0H&#FFda3{;RQO z(EEyp3LG1kR!Pr_ANni=dW;*3rzTURz>vO!>3Xzh=A$CTkEUrcm@ncZjwR}pmK@w2USuA6mcWBT{gy8s+{%zg zKmK+kMzP$V{f@5^PV9K~jyk7;yfV2C*_mOp?6kUqqS+aSN|kf&CHXNl(v=fQwmv3p z$Lw)^K}s~Rp(U(~vHi_;Xd`h}(Z)v*L<@TbCABWjb>|%gQ|XXOguB^@w&P^Z-~>yo zas90UF4og)px&}PB6e}BM%GXjnXDLCAn|?)Q96V6j7IlFCz9Nnw$77&v9#|k9r8{t z7?+e|m&PA2o$FxdE;MIOXFT1+51YVsw46+!?cmQ7m{W-0gr^gC*xR;G*{@@J8g=Aj zOmCqxi5g}JYdV=4(JaVAET+G)3LqzD)DPfvTl|!!rah?=Zp`B-wqHy zpl9AY;PXfAK#p&rLWWg*@?Vm9*=K-kgG`Rj@6VFDSTb+E+b=EPb+Ueiu*1%mr3Q|? zR9Z}ZLPM6G!%?1&zo^HW)t;K3HP&vG*I~mKPdOK|oq}&^zGus|&WG70&$q`_=3~Kc7a@26Bh4~UC}I9A+MzYZqzQc@Q!5Lq$a zHB>IqRsOe+e{?PlR)HM9%OJ8de8ZTI=aY(xREH|$Tiamb&%C7V9*MIR8@7Md+FiC3 zQ^GP1g!-PYfe)S4R+@*W#$}!PYj#~i21pGTUI0vG>o5v@YF>3IOKzcj2B z4b`jhfQD{rv4Mg|2d=GM~= z-)%TskX+N8*RWG_?0o+foP>KZr~}F8yiJD%zJg7HSFmHdFDuH=h02j}$t`(R7n^S~ z`Rp5RS-xliVmI0620?pe|M+27SJ`0hi%-c3zChf+sjk$I^)B0vY|5=lzV3>OTdXe4 zT|!n8=;ii#<){18n4v-Enftj^rY{S46MhW>J;$DkFIMum#yf&Q^7w*=v)dJhZzt}} zs|H#;YB^8B=exqThI=-4^}s5wX+>xWlaaR}ABFYY7Af{09!{1#9#i-ZBfJUUSthCf zrj<|&<8B*?@J_IY)9-HQzEDKAJhj2ZCKpLzI1fsf^q$7rj4MqRn=X;clR5PCp87@L)9Ug*yOUceGsu*}3?7-cEmDbRHfY^v?9HhN3~o z6X+8<4^PLz=KxW*&4c^nqoM|RAk+NVbNM+{q;=i#0=Z%7!-P?9B7BqZNI0}DkH<%x zPab_NEg`drGGCFgg$C9!u-gNvLa4c~MI25v_#Ui*-wD?p zNLa{F*+#XL@G%?E9Zbv|0TZHvKe}g$=8@6#QS1eyJdOjB${d`9nX6biRFw;_2Awm2 z-#PT8?o2T<-mEM=oR}4Re=Hk8qSTXTvh6o<*U^S+r!grZ@{N0;K$~F-2|EGQ~jO`lMS(I>P+OWHiHi< z7ChKdgup=5GkwG-K_VBPXhuP2XjBg;L&A_*NE3PJnC0&D4K~a5qw}GVUJ(A6+9LRQ zkaK!|PQ;5`=p^)XcE+kYwk(I7%PV`|Yrgn~x%|$37c# zkA$n9eL|A#KBG9(+o^F@xZ!U>K1U4NaWWKhm!Cq|t zLBVJu2bx25k_(#gYQrV8)De6qJV??dossw_g$A~^3IOLXdMZ&lI!l^5HCFyYm>MFGEX}}DTV)N1}EVmDz zhmxdt$1Dr%BQ^wmdG}JjX%cH&GCKO54&H$u6O} zhxr!3OP1e3O2#0=bRCz}U4<(Y2)OT8MB0$yyIwr_mQuzK#r`8Pb33EI(SrbJCH6Dw zX}lx)PE=P-F-v(7M=e)vZYPj0Ln39^qpXy|E*9y9T~z3xA+5idT;2nq6sLH#-J@+s zKDIdhJ!7DKI#0sMGJ&Y1u%Kw5DBf^(ng$)=y+>pqC?LnIfqnuQLw+E0&5i z(0R18J_54kK2~Yr)xY0@X}|4`07T zUOnWpDe#Q}-pa7{`XU8xE~s%Ao$2%U=I9zSB@g;>&zJ{}%fdQV%4b9wjRdG}O-BkLW9+HnvM28A&juCisLj4?PZQF72M%@`b2yA%w+e^~B@_V29kky?1 zC6fO{Rj^0wHnKVv=Y&Pc5*$A#zx*#tew?CfyTX;p?*+0lY_}rCeq(PJ5%{{Al> z*hw`>vIV@A@8UeT|L2{!knt=0;yq~LEv2lgFW`lGZoPcY{O8-EA|8Oo75Tz*slAO_ zvSX?pl!up4pJAvA@==(b-X;5Z{Hf++@P94U`2S5H(tqH*t0@tOrjl{1_JI2Iru+C$ zXjMyIEsRB7ozD)fM-tZ&{d6KP1c0&QtNy8dVi?DlvcA4*NQct6JybL@U(`h`JtWlN z)L%bj{tygvA`qEGzlA%Z4j~%AuQQu&_V*1G?~4s$QX!tFJ*;>RBk?lzy_u}m&Zt}G`|e%NINu&ESi&h(5Dh~Q2ctv3YdjK7wB&WP5N*{*_28(xe1CWT zW?%qC+bK>&WV9c=y{|Y&ZF;gYIQ9MWSnC2*J?f_NYe#0{8Xo&D>Se>5(dVJ=R3*i~ zBXCUDaLWgZGGYZLd+^=O61MEhBB#7rIR2++C4SC)kR0aN9}C?@RdZ7-L8ix-n3ttS z#RI^qoo-XoA()B=$uAjMCI#*G;kwx0^X%BVG+_P&V+67dB}Jdax<)lmd~UBa+;``Ut)p)myXnd z{Gwrc7zx|0kqe?8wT5roMeMc?nVLqXco~7JRCTYjwymYxYGj5akTjpuM{3t=-Cl2C4L}C#*Yg9X23|6U$ z>Quyaa~vZhtqvm>yrvvZK$na&yOJ`tu?pMH+b|Pm*d|=5AyXHGS&TA1M0Kt7sDdHLuGrgG@c2GBjl z7R#wa8*(>sWW@iKR6}>?=#0P<7U#2W+SiMO3#K4`JhULvH}eETY!tA{!c5}bl@C!3 zEw^wTXhmJ=nCdk__aoo!cqg3wW#)!raMin!mI~R0APBo64$*U27`M&{fPmDeicyFb zJM*VTygJ}LlU+*)sqK$(fO)H8Cv9Vx!=3>cgrJcC85Hw>b1nAK)cIftRXL~wpO$0X z!wDs)u#X|y6|=+)`^NVz?KsBaUE%{k;5Y#fyu~2-jWID)|K8)z)o+ObBZ5)}Unr*w z^5t(6-+Aw@W0o9nK7@NFY~W0$pfUCr(+j?%Uu&-q-@G~-WbEjXN*SJbg>!NB&NM0& z9K{7bjS<+|z9%%3Q}dFR{~C_(>);z&DHT7$7s&oeCk^qavqZ{MMm`wPAUO=+NO&WM zsk14Tm~%R&CwtkuEi4g?$lURMUgPORyt>Q@I0s9XXrwS-@!{8D^Oe^aga}q9DNl`$ z--{Yhbj*VrMM4bby@to1XJb)fMTzrT$){KB)?Bab+a~pX){vSo*Kd0J4~Kv_$*RWS z@ySeHO#xm@ghm?*>|vLl8p8hZT03c{b0P;r=~m~{RZD=w26U6pub6_!9uwgG=d@-H zy7~D55K8`Gvi(A_e!L*AE*!RFG|^Rwj{@L3kR@%qD=)6(-fkRY<`$ZWlWuGA3 z4?Tz3{}*#u%k%3f8UDg>VRVrjF({$G+dbE20^H>m;;y@sr{-1tR*B^Z_>dKj_K@?t z{`2^;;)PDPQdckNr4?3wezNW}w@ys+Gq6sD5>-qJ4iR!pyUChh*I#E4&Qz2e*GT?L zP>2nIwW$K`A9HMlZ@t{)R>$y|g#?y~G+~(nhv!K8Zz5A}ZO`|hwT;h&F@-ZfE^^de zPO^MlAMcyHI;(Gihs?rP#7dEAogQKL{pP?`dTz(>G05J7egmvymkBa^S7A@gX1f-T z1v)$BWB?ydAkWRvKnrP{^!c!O0*GTm0+Pu5lUwzBG}ov+i2I7fjQIDQO9#%r{#&Pm zMFFcW=_b>rmE-`3zsg(Sb9G_9H%RT*Zt5<^)LLxJ{Nz$qyHDqa->&%8pDBT9A9S6+o*`zQeyA;zTRqyX-lpXEIhL&t<9m3p z({Pr@XO5@nU$SjQHL)#w$*)^DvjJPBOFyt+-`b-)u#fsdii!@riXzHo?9H-Na=-EU(mSmC* z5c;`{JR4-1x!q-3`IY^!^yJ@JYg88Qs*;h?TKLXGnenBs)9j%6VX(QpO!&40j6z$p z8?cMWT-y?E;xf&=Y`y#T^13&Y1e&V=PW=|~Te#@-ZAk80mE-f;pLnQ){cp$M5qCL~ z2U3pkQAgAg77i7q^b29FWdJXB^`K#ZGWPEYRNpB03tUE`$04{hBN^gt3Y?!R$;HS_ z?W1hsK%bd5ZL0`gXrG{fl22O)^-V?fNsbUEUo$&yv*2VKFb&t?xpkS`M7E-$I`i%+ zQy2~YpoOaYXY~`YZ{|eNvd*~14Ga`0-Fs=)L5jR@_G4+Ld??Jo-I(LZSWg5xk%f#G^q z&3i#=a9{l+aQ|8SZ71Y%8Mz~L2@1PCAoFhjq5;5W+cfhYb(h<+jS`N^=|FGP#;|Qv z$;&T*Jc9_rV9gC9!eG5S)VbRGqzC9CNNRzw$d#W#9IO*tJHSjx%gB+Li_iUzX`rpA zAM1emyW{&BwT^Kqk`MB1;{Ghp7!dA3dp<=(L>{+0+mN>m9V?(ens6H==KrRyP=`Pq z|82BpMNZ+ok(ve;CU_K~>#2g3gB|ZlA0#_%uT~Z~j)U!vSQJj9kc_Lrae0S%rs2(g zf3rhk+L;E9$ynZy8>o)@`*0-!ksN3uq>YiJLc$JY{|NVVJ$U&?1^P(6W z4f-@|*tHl7%DnKvNQFkcUg&Er=ALZ@15GiQSvTz5ENz?knk2*RHb}8}KRRexl-lfh zLkf3i%s;R!)v`)E0`qKX>%vr@F$dwpvbn>-{wDWHp&W$`7-O;XuS{8dfkF>ulrjRS zG7=nUHU)c_sc=EkdAOp&YcdDl6fZfr3p;mru`!5nA)etYX|GGo$T9qIcA|F~a%Ju3 zT*6fQAnonCwI;sjh&l&!RKVmLAyTF;&S}Zv(L0sRh|?c_5_3d&F_ck;nAH!2VUwBW zszE~|uZJ74u>HvqBX(4VS-ONUs6t99>T0z0v#Znx#{&u1Jh|HyV(B0QS`e`07tBQs*U`~6P3;JBzgu0ohc!Whqj ztNrQ3iixA<3qb16P9`%hsTT&h$Mb;BcxsFiJI|x3SY76Gf}FtW5yUP<+3>YaTadrW zL($t&oYeOiNx7*Z&rv8o?V`< z-qg46Y&&!4`Vzk_OPVf@<_7$<&Kt?UtQInAA;qC+5_?bhven?qkiPeRaLa98XFc@t z@E|dickMJ^^@oxfmQ`%@TD*5Q8s;?nNv9iU_7Z}g*Qlk}xDQlbzP&uT5*XP1&fL1W zcWa+WS)(~OMBNUc5kaRzNWJrAz4TZ0g+_!>DMKSF=5=vMp|-c(Om?0V&z6dA z8fEVk0uFb;A5pkKSZE?ze6qgsweOJ#qB0VxFtR}wLmb0pg}>$;#lBcOyQ4lLHsXI7 z7J%W_p@7hI>^Eoi*SUuU?X*IZ(Q;$I=1M~hf$*2STi@pAoe_S9AHrf1uzEhgo@yfS z&q!Ul(DiC`qq#YS52bQa0f7=IHN6Piys$RU`5srt^4t9u#TK*6@6^w_VZ(u_HPYJ< zWs)4K*wpDQLmsTWTI_G!@>ojC$Y-Tb17r8Sv>1N4`N)E-q@Bv%tPFf1{AhPgFWS)= zeQKftm8thlY|hcxK6JnQPS{DUYQp92%hX?ZZKJtN)d1hVyrHO^?3ll08<|k=k26gc zIVGje^{+dB+YWiu*ECR3&TJ#dw7rRZIlOekGX*rYbTi@R%(4ji`MEOtF9Ge_F22=3S}6?6nTL~WNTQXb@Mrk1FB$h!PmaYq zvyC7jagmgTMTkF|h_iW79$n!CM?hTLSIq|c8>D+E24-Ssdf?0Q``1q+nyVaH2f5PM z3^+w$kd7*_tOQw|vTgFi_Tu#?qiNeH{kV}mOF*E|_EHSQi0+1ifk97?U@$^( z*pnD6L%}zoDPf+13u62=f?~I9y-N_34w(^HBbm23n@a*}YEBkFp`;0FJd*{vKwuR8 zWMV;qn+fq4OmQeF%~zb)39;sAhSwanf+{;QRtDdAD?>H&B zX`~^JqQWjk{TmYz^;W*SE74Y69Xei^sirZP;Of4|G}N7MBLW-|G`cDrVL9ItH=m+U0ldqYiYF7$gAHE48fl0hHat zVwa$XaKd!n^B6{90@}%M)2y#YLu_5tZKbY(kU?3~@mc*`T6Ud14oA5vL*Ef;1+=;eXQO443-%*mpn2@zEFE0@oQ)n7I?DLvJ67B4(cAhGtitLcLD^i zOXsrJ?*C9S;6f&zvkZ$DR2+m=ayQd?<=1{?>nW@*YS^-aD=Lv|DuKOC+k zj%?+Mfc3rk<92v6{{_}M>-vQ>^?~5s@%JU~ zcXYCpdhCc3@VpX>N-}k^#Kl} z+diLw+2tE`{VpSxi4F=jMU`MzIfd`V{Z#}Q7j-;VdDw&?n|gzoYPNo+&f+=>2+?iNG}CUQ%o>28at5!@vN;7q|nc>pw= z3PV*^m!li?C;QjV!L^ZgmC>vHvoJJLx#rHJf#ch*;r@Di*aO`NN~FJtRfke!@q%?5k_h zk>zW{<+6aBfL`1ADSTCe50(7Z{_>K-eqG(t+g8wp^}cXZ&F|ak5ZVHg`=(sHePEWE z2Soa*pe`%LFEK85Uv`LJsdG2IP^@&~O7Q+}lycyk-qi3z`-Fg4Mgn3}SO=lv1TdF$hZ$lF`G^%8CjBgdt4b7NoNA)xi+7TJaX+m7fs0E;QWFE#UYm93OlV|Bfur~QQAkoMOjnPW^72E0s|Rlm1rkOi=4Fnp1d;w z%ErLSy5&0E)m2mbW!H{!Fe4{CY*_V!N`@Ma`g~-X$ru|E1Bvw zs10sPMuB74@QX)3x%EdTn?~{1Mf?{c#8H<(7ZU2U1m}~zGG}z7Hk`m)XzYg~!v4&z z>(FWiL*K*fBScbkd;Ep z?s$;Kri|BzZeAj~f89yY-sYg6qcGBP$4hG!p54^s)x;Cw_lmLz{BwmRY5we9KedJ< z`I(9V`*67obBW7fDn-P*?7UjKEG&8TF>P$)XPVatc=^W+S42(R=b0Fv3=AD&WlgPT zopAt_%no6w&B=H1%%=&6L8u=qSUF652ZY@5(u_J{WM`CytjMkwNs_;~7gfC?U0c$7 zSiON!QZNv|^#dN<1y5?uFO`9J6h0y{ipo(h8`(v}NsYbBPV^pMth`V|BtPoB(d4v1YA+%=_9H|Rj)AF{RKa{C?K! zi(ty`zo-#9aEV6jX8(Q~ZHm~}9x=bPa~{e%#7f}zoCbZC)Nkd>9(s^U4GN8#pv){j zP{H;9uZO%&`w^+Us7wemrFVQoTmas`^4$U6vmAk&;lMJ_lVY4Be^c}&Ra zdJk{qNDN=Gt>CR`<)ixQws1H2S-Xw&gy-^NG?P5RLH%Sea2+f(Vsb(0V3Kb9ou#3xpug0L%1}^MP;?|_2)ZanQ8=QSdMDdtIEF(Yw7+=<0pg_yG@3~d@;q_CH z>6Zid&L`7@v}Qyh$u8?8&|ovgYRi?|+$PZC>AfkNW1VN^Ll3F3WY~&;^$b8DMfum@ zC;C62>D@oVLY4+Lh5&ic>(NBSKP0(;;{c~_W|n41`jd5mP0MZ zzK1i0AE$moq{(J8G@1H-Z+8wh&FDji0q~?U&FhZxW~%yUap1h5>ln~u<4I_EjGEYV z&UJv*u&PGOvC|t!?ej8W=X=BDv<+@^k{gO6`zXw;xK0>VS~H#g$KtuV0R9ykYe(hi zD9qfL^?O$SpnpsKxHdE)m8(fue{epYktT~_DyK_7yI6E@Um`SqFKM^S$@*{4`#M-* z9_HymoJfHi^MwRnyb3(BtSA_p59@&RPuR38k|?4be$aR?p=JB9r{LJaoDF_%V)x^ zzV7+6K(m`Gbh|ZOW%P!Ics4C!UUmEK91Tp%{Xok49JGYU{f#(9b_NN=7^@TQ3Oflg zib%Yj)gu!}y8c`0;Gtww9=c3$D~itFUGfZuLi)8DkdL-X``s_*IpY@|{4Vv^O^4y* zC({7DPZT8~1>E+Wv_|!0i|a;QicI5$n=5(o4(05}UTM5eGU|xJ7ZnErC&C}`kiFw28R#$uEJ67q8?p3+G9?7C&cV^N zJpNVenJ%OOeKQvieGXirD@bZ`hD51`_O^pENnIv?D*j@S9&HxuUtd>8I4&B&z>L6@ zsF5`eXM--b3MaS*$lVa7z@D+f%xJZv>NF(2FHI}N{IWBD2qRcAu3mbBe~IGFJl5Qq zn3uo7aFvVSYsLx~UA4jaqL|CIEY8Al^t^T=w7Pxix{YMd=Yi4ynN_R+`CdnzymOLp z1Z6er2>68GFqyAny8Yk{>5@#iUFH)Ohk03JXcbV`HhVlrJEyKJ98fOBoQ(J*l{HJb z>qfUL9qcFp@{$NRei7EfX!iU{!7StLZ$w_!11mN_`a5Yo7k)VUmdAmmd!2(zBR%0t zJE%j2!oNz4zZ;*fH5UR#)tHd43C?xB`2#|Zo^HL{xdVY>cQbAydo=p4vKg!#ONShG zzt`RZY`h}9#vZ@2BF}+oar`c4FpoECo=2N61k&M3v9x{_Dd?@{Asi>(75)-G&D`RN zNM9r%f`jlnE}(;Q>H7}yPe(lN2`N?5N#s7O1{Rs9$Ftyvk>eYmQp=DruM$Un_IE>M zbC;w`pQreZ;BGj02&Hzk-iZttSLh?E&c*xyP3kvwM0i60h~$_lHi<+$yEXx5<9Yd|1UgT|xuTp!6L0WHC1 zH>3g*XAV`AL4RKjv00*%UP}e+UQW~z0x;gx;q1t63h>C7m)op~wWCcp)tZd9Ej5b4 zUN7T^$wFC;bd4?@y)UwI$u!}gx%Mt@OSrh{Y#RdogMNDf2i@hmXAJm#`%%vRzPhYu zSY?;u6wM<;)S}O(1D8fxs+gEz5N!%SJ~<%3?-4BgjFyzl>PZ%#m{00-iHEua9<6UAH+f5_^>6c%?)!-W2lYCq&PnFFmv^?@ zreeIkO;}irrO*T~+0`MlNoEv`P3ATNH3!qSOPIQ6s2BWh)?#kL$K&5HQz4hB7WG6uigZ)fyNr7$tmT~8J!69hw*URyOTPs$JTw9( zwrA1I+sV6`)}}UdbojpG_sCY$Lpp|*D^-+@O@-5S*T=(0j)vk2DPz-tI{j$N)jtR> z0w)$gqkPsjR$f4M@zSq`okYNuX+9S~d!EuzYc6s-Es@u63Uupw*^tEoGmkYZ=1P=H zXvr7So3KzCV;GFQia^4(TANdQLN@ISDT{Aq<3s<5fL)>SH-kLDE6euVwxv#%x6$g? z(W)naE#Xv5AC?G-A)@FaZQ0L~y$&ZIOYE)pbMP>uWuBDQs8xsdA>C6#g$>e_0;V#@ z|EF{L+Tf4h%}uJPNA$5IA_CbIkiHH$vX@ox*Ornct=R6<>Zcltnxk0v*T-(o@0EwW zj%=AoHV;Pau8sh$iMWzy^ZA&z{e32yMc`d@bW;vczAgHj0s=FQtF`rODw1hf7wzP_ z12~~^<*h4N%YW}np6_%+6QOgfW<@?C8>X=qH#8v~U^y4O)lBrF*fjU!k4Tg31Y2Gp znGrSM%Z#gv52skfLaDxg(T z<;E9(W^R&DMMM-`UYc01+sdfDJg-P z(+yfK{2>JoD3(*^`t|dN_-z~w%)Jw;f+Mt^ABkRoDL{(HKrT+`?L06QBhCE}X^USA zYCvt+twf1>65f8b{{RlrI`m`{QgvP%n}6jo?SneH`!}|y1{iO)WtDeAlb-|f9KKe- ze!-e}$mr;U{kSP0tbs~!7S>q1E74he zLi{f=#fgMtrR9IRaX)>ED~N>TS!RQUh=V@R^a+T_#780~3Zht4=hr zdBLSEEhJE_atdNucDjCCoV};*2Q;KoXqHW(!;C#5ghMKKlPnUjXCoKDP8sOaAW|3c z9@|ZUSQ31R@>LCzj$s!HKU27~xQ)U>Uu3)7PBC3Z`W@gyL+ z*A$0Rj(;l_oRDjjsV5@{6Xcn;)yIR5Y>;Se^a6|UVB9XNouH0k6dER_Ch`Qp=R^h4 zl`zE{S~j);(!VqNY@>g$a@fGnP4H}lBTcH5HXsP5+8dQu=HiO4aN&mWje<^3hlmsT zkR)@k?kwxxOcU7`=V1DyG-VLx;)yco&gZY<=%Q**^U!_bC2_TDgzpo&%pi~CvE#i1 ziSGYD7Qp9n3=`qO&)L!YkcGpx{4N}*vxD>qpI#^~&xqFW05S51EEvPbj5fzoa+4uN zQuYQRY!p3xl7$FO+IkX1!36MdtQ}e=lJGuda;rxnva((Pc+`8b6LBb8S0oPXsK&xr z(t|KyO<)YeIC?0Nh<|^5(`bvv9Jq{8hV=$RaS&M?0@*ugKKeH%wI`=1Yk^7l7akYlY_%=a?kC$rC`(i3dN|*Yjtw-oFkXF^j{se_~qP z^!*j^s2g(2!PAA2Nw8AKjNd0DnNOFj z?M-r{`6}9rted_^w96W!Jh;C@vT{K&hJ~6waMkGJ+Vo{Dw~iw@%Kjk@$9L0M}D%@@M4mKyonjY9Oq4$tPN3 z>tU@hPCGJlAr1T0RktiM&dJX*$9Kl}uu_M*L8jYT{YOjco}@bW=$c^dbj+xCdFjIF ztGOeSkQ-9NZuU~=qFHRSwsdr-*mmJ0?v1$%fjOJW2-_E?5w}4kL~pA<>WLY*hRIF& zdcwr$rzn2=Ift9h(b4elSK0tONz+#j><>P?f^6q$j@O$mP+7L$=^L+IYU7O0*t%eT ze9hzi4mXEKYpHdG5BFy)`Ao}n)gKNej}u8vOIOn9j*985x@2#gZ8^tXi4Op0+@+{i zmM6G1RonSI0*_5se7rZ7$taG>m90s18(WW%wZ^rnN7Wn;1U+bqqfh$1)PSlrn-w2zVH9s0JDsSPopY57!bbTA{3zo z&nnNyq(@^fz|Yq`<@dc<{KJDP%Uit(7imcUPw0axvl!84U{Tk)1^5S z-*Nfx4UbAqqe-tfMEn8*B{kfDry!nt%HMK907xJ3N<;Ra;|*t^wBah*@F^KwP&((A z@y{<;Qd?X581|~JEQDj^Ytx8_*)Ki`1~mEJTljHrI1G_YwOHQYfd`YN!0B!L#-yLp z(s87Ueuo#Y+2Q){aa1DrrXsE}8L>C2juBqhU*!P1Tc;OgNH|3Cx}7ESJlKKDf1C~l5`&2m1#Z@p;^&YL%sg;jKg*nQoJhRfldO~PskHEF z0Q(IX)TSZgm{iN*D2C=?&(&wbO_;iG;l61Si{MLLHfEdG@P(6d9$oa#nqb)RcYl5G zCrgQ+Yv=8DH(jE6d#HSjMHQZdSt>0QgN8~PmPU&8g7m%CXU@bZM z5vHJ-UMM*Lh9w{p-#T1B-;)R3&ugO__l(Dm$Um*rTtgFpdJADtEk0kf4vT=8NQyEH z7a9M;(V|uypom!MOH(9jZQg_8nTHTaf+7!zPh&VPLF3U7VhEL-468mfh>Ig?zEA^0 zg4eUT-BVdAZ(jge@x{NU0S;5a{5K&Cl1@w=UNT-(cgNqa<-;;qwV)Z>s<{vdc%)6d zej1rYf9$61;w1q73VP3d9-A1lL`aY@oRj^o?gHi-C%bSCsn=O80=GoGpQj3*$78Po zzxSD08*0t@UkP}Lja{JEg)F+Tz27$)|0rLl|tyzV-fQ4?30uKy9I&nJPty4 zqQqIplN4ldtg-^;aO&Lf5x!EtIHyQ*D8$#rT4@nGZIOQ6v@xbEti(17&z4*|k%yy# zxS|`2DfYo>r5X!?Be~%+=tsN)w7g{9Xp*U0*uJp) z-QQO64sf%_NwgG{nzQr$W*IqIk!{bd!q9Y%Xy1>4J}-0K(?$?|-yb^>jWP)pp3a7T(7eO_R4RaIv0)j zPL0I=4{2`|R7cx|Z6X_YcXxMpcMA|8xCgi3wsCiNch}$&VB-$K-8Hz&@J`iK%^c46 zS0D93_hENEYu)#C*_Ohcwj+XDqiyL9uuxu>qaOG~OGVy1qX}z*aOjswdQ_iWQEm&9 zI=+)xk1nS)@0a#DrOq5s|B=A97sD=`d}@(olrNchVtf(nG{-_=70&tEP2}|UN#|!M zi>31McCZi$JJQA=#T6541Xm8?AElUThICg(ZwNj52*yB!o?H60dB#_~&QQb^vk%6j z)q30cm@8QQTLDHppk!HaKrAKW z^GQ~OLs=>2;e-pm*SkYknsPiY@x9TW?9Lk+BV+fvpR+2>LERUD`fK3NWBbdVd2!)r z<`E*B+nLu=1g)bajTsC=@3xq!>M7c0=^6cxHNWBMPOee2R*HsIE|Fw?Gq<*< z6Y|7Mp?Qm_0QO>;wFt{v7Cr5XlECZP8U!Ub&DPSUqS$aihqC=4_0gWT2yMf?*8fWM z#J_@GOPEKD!!6{B8CpnTu9u)@zrH(`u2xv+gju}10ZzJnl00^3Q72`7W_TYs04Y<8 zXti0DHTiMwOwHzgH!P>7HjJ9}pFf}Yprd+QcYMCa(;(xshkRN-#Ft+;ch@ov3`uDI!4^=T|{PJH~;#@v=H!=r|9nSL^hGq?>NklHZm2_^n6BnZSAQjeKO|hze5(XVjxW zJbCZ_mswU>l?r*B=$pacH_If-2A^SfADM59rZ$N{NeYGw(-?!`Gy)FOg zR^d^{O7o27fB%7b1&a!!T~{t@M+*lGQhWA38GMufCZ>;gJ9#+DqyhN}4g;RsQ?4GV?;)HPg8Q1oZ6a5||38 z^TJ5VuJB)(t{hQ%Y_P7r$?s&P*@B+r-ESo<3S}x^3?L5RkLfS7*G$1LRK{N1b!&eW z>nWwup_S2QL6}&4pDq?F92TYo8Oq}2yOWIPU*PMX8zj9nLRZ@oUG-aOneN3bA9Dip zX+U)dQGB~I2zNawErwPVOh;W0V>dTyR=ieMIP~bJ%w4I`VXIFwe(w)P-T~vdB+~YK$ex81^Nxj@+OG{2dH--~_nFV6ffKg-`b?5A}{BgAz8 z0^Nt&+fO5m2KRs}LlytK+&JO7x3}ANHg+}xRx2bL^=DJNlBq!*X`w9GuZUHL77JvaeB51R?`y4~I^ak}M5(1p}KJgvy-?_oETsT!#A? zW&@6{souCbt*9nE#5A>j5xV3^G0RVU`k7lLjD2IO)vipHWzEJYsxU^9B z-u_T?{e867gn$*SaG0oghwrH{$1uV8Q!=42*BG+m;{fSZ+6=3dBNP(;T>JJD5GRKx zpHj9zV~)TprbDT)iau@C9r|&DSdbS|dP_TAZPS$)@k!tyJ3l+9fh9)l%}FfYR@4U1 zZ1E>$94`bjZem%ytuA#NWLsK3dnDioisJBJS^%RheS!^QVpuQ+UTt^0AmV-^SL)SH zR2p;XA~msAiS=|0hKHRtxQUX>SINtBa%3$Df0x=WYJS&xZPNM zWavC4f)kN9KRBUG1WK%u?h6xU)^VOZ_f!j4vAs2;;)^zlHGSavhT1RVBiFZ5vAi>M z8B)9Q%jPNHqexRmo8OQ_sBn1TO<~$YbJ&%f=EHChDo8gnDLo1cbUO&$(L3n-+4y^S zQKZk2l8}sf&N(>LN7BG^D+f4|f6_=JF+jV_HbJzs2~S8!-VYF2o=p`QZ9mdD<~6bn!U#0M0Fb9 zYM$?8MnZUqMml|8hdYINl^i9G^3A(G*;>(;3>_U=6yXO)uk+Di3G=cDk>&^n`+Uj) zSyc z^!??RWS7c{N`MGQOy^N1mJU8lt0|#-vme2F2VE$0#J8?7&M{1ASafCj4rpW*NCGm5 z+nn4?AVco37fncA-avFUlWoeSgz3grIv=VZR(ZDG1tSzrQ@F+dB=x^bLBF1Y8p0!n zEE05+Pb@q2dZU&vbezJPc6%9o^94Lol^V7g2;{fFD{r6D`|$~z)DhgqYn-u(7E`&~;{PY&cR#P zYk*)A)r@tKvo*=!fnI(WI0zVj($HkR;~D*#7@HmBzTv8+VdvfY`{ZkIp!nbFCd1%1 zbLo7sYx+s((SBNUHENlX?CiJy>+kt5kvvK0mLL(E%%AWF_EyAO5!8!RN{mhCaVBqc z3yu7*4*q5f-)8LVe`AI+|A*<1mDpgsVcC)_NZPJUjZshTQDMQnx&LMy_UO(U^Di25 z#-LknvLmIh0t3forPCLnh{1X~;{rt?{2S3^+r0ADgWVRk>2<7om+7#p^q<({ z{M{z+XQ$5dx19fJXA#eI)ou*lU{^TK-QZ=S!6%yK)Y4ZB7n9^e#@!Ch&4;N?TKd#@ z3eTc}gRv0>6y*sLm9^ve3{1lTiOp^-?1aM$Fo8Y($P zh61A$%H8#d*cesvIp|>)M>zf5A`?+pk5F(jT@SDxHgJ5cRQ2ARmS9wb1f{S8g~3HF zxqYasmTV%eHqmJ(bvNQ~)Wz9Y$erkB{G;@l~>^#);f3*B_KdqbXOLL_7ia7 zM$wQz7ZpGaHsv=iyp31V3p9jb{o$iFg1VA0k!vtO+#+YlH^iJ!w$&tTV=ZDZTi2JnQPlyR+&sleEX)W} zz~WgInOx~^pc|`pN81W_maar@HMk9@*|w3}19D6$^QOJ<%u*JJlt$C&kg*ao&`XZ? z#wbWxJ3eWi163P)j#acv%dfv`zCQ?NZXNNIE4s;CSH>;`43W${14`*W18a2yLHAd{ zhr1Z3js>{3IU1vwa)C`ef_5eukn;)c;=mnBplA0%U~c@2Csxx~uE@@fo{UWfxSs*N z57a9qh%+o$@RKscl=?24d<_kX;)HTbb$;Shs0?L6mS+=+8Ow*{d5)oPS4ggb`8i(x z`HD3{jErmpkYS`;*~OO4iVMNaHw+9fi$;g8#wNNdfqc%dzq()uIgHNANlw#|?tNZaND$G{ADvU|)uV>&1DVyqP!kVMZxw zX4RWzM=b>GqGkcvk^^J&_!FpCI42~Q`Q6@r^25s6;S>10nYx$ZX#l+lNr>rBPzGV( z_>gqGi%k#(U9bo1r3r5Y6a5ZK1D%@nE0a&GUT`Jw*hC#}udGC3T0qsMx2Yc;e7co2 zCBw{xq5!&iCZ|JSNA`uStk8%~^IQ8=b1^Az+w@>;f3*vXKN@EJv8#y`w)k1Z zZ|hrcHFu4|zr-BLk+n$IfBmsNvv!r}sM;+X^x}3FtB+{B@-&GDu*30D;TqZ*6Av%O z*hSYR#oV-{v-KqPSfikP+E!+dcr`L7>%ezc9syAR1hnQ#Mm->JH z-xj&Xr(exVi2-4zrJrZ7t9vbVzII--Q3iJ>Y)GH`&UiEI(}6+U{6d z=KJ5n=8vz04KfW21lbC0`elh9m6x_?LJ zj1EeTv!ZYWw8(!)fc!Ot-^y25yOefEOVa z$Q}@~{R?0z-q7#L?gfC_z`^A^>wu7khas;~+g3QKhomA(B^m8bFFY##X$`j_cOywC zB~j{Wb2qE<*1wv+xx!*m0&p>bsE`Lyhb=Kr&<*iB96nK6Z@vHCJ=Q929xYcO^7w*R zEeneREyy}yWsw8nz*g~r+|ZfkGJPH!k|x^k@(>3 zgR>@$p%U#Elc($JmzHpbK2t_@@9)JJJgAWx~?WQMF;QtD0SMXmw611_9hxu$1=b(V9YNoW0C2BcT8wfklLd{^$pS1po_zDvw8%s;T2urV-C@6bLFqH2yCmxDz;f zEFfO0Ckt%BuFm%cFG7Ic9dI4A1wD`7ztG1c=uDgAd+PH8Sgy+Ng{z5X0Bn8fve+bBBqyE~Gx=QUHvx--jkEh4&JFYtAr->sD(gSWa z^_53{16j~N(E<*BR|;Z{n8vp6lhvK@4J<3Urkalkc<}6L#9iC2Se&YIS#~eNl1rxf z7OWGGm?jct)5NNPt=~JnGsq7?JSB?Ut1%~Fko4zH>B?dJWooYpM1r9!8Y0&+5yZJ* zd6b3@yQ*-;x9qRukTHAD1YB47X%>BHyc~eN^SuzX3e7(FdSLJkdK%l$T-G z#NP2|Jq!M*(Dcy5)g(C?1Zq}wjN>ZqN|cikbzjPQjYiokg{33-mfOmKPRs}Ppo=gd zrz9v7-<;2vjcxfS+m!puFCw5^;UK04?BIz7!yfk(GQ+^b2^hdpq_C{A& z$GmG4WnmW2G>MkzhyN3Y;JS>`d7Nh-E7%-kMg$l9B29>xEeXg}T0{8rEuK&u&l1rY zP54jfE(m8M^?SO+i-ZHo={MU6Tup9LR(HBaP^oNQT26IhViv7$uyG&DE{9K6H7#gH z_|nt9%jK3Fymp}-Bxp!2^4NWXE3SOAP~=-Ev~e!kJ7OcywG^-s{XBFFa;hoLIH91) zmD%<5m&$MoXlnbe$8t=q;C8WTeokdKGflu)0njC!UFNSF^# zBf6Wl9-~#ge~cD|A6oLJWOsuqn22ehmj(GSpmbU(AP-v$!73!jE6zJZ?s*@$=6Y7Sd)Gc?u(<}L}Oz7#;D2E<9d?Yb< zs3LT~;PO{9Lj40Jc$&N2pnPHPdX&;MHkc{ye_p0HLOnDB&Cr16P^~I6S>^4(T&yQ< zL*5!*Anq|guT$?38iERj3WL3>UhdMN_gqGj<=lz7WnX2sJWXsKAZ#tl2%J~- z^t9%#1UruLn%xnKL}M-^Cj)9vu>W&d7>do3jJ3I^>sO$JUdxk!;kJlCmgZyE0Df>yaskz;2aZwetYr8JmTt)^zmCvV zE)Fn(9aTU4n1OY@{-y}WgEWSIP!SHS_t^1fgh958FcxX=TMuaZT(_a>-z63VJlgva4 zZq6-AzTd`Fu8!pdgX;`YQ`s>9dp*Y)of760`_WyO2RC$%?hUR z3QdPmI2AaUEd7O%2+OEWTk_mM)-r{p-gC$JKqxnq@MXfg;r%V zTgseFmW+ZC-UV;m=izX5qnj9fiU(bT4|Eb!`7I{R>M=1TmM+Gx(2`829n1mH!-2{O zUhL^9{I_6p-uw?56gZ()K6!VSUoXKID05`&GBs_82wh@ExYl6pcZyQ)0xWJ(POz=| z8%PfkuU{`>|NcTz%Ar=r5jIUY}9?SiTgdx=F{Ug%da`w)i+MP@0li63}` zI!HK*Q1hKhzvGVbA_IZ-5r2;;QsSV8lxmbW*+VrDR}+GBOTz$CcO?@P+25OM!S_Y@ z=us_hf0j1ej*sxZxgMSeOw34Oa|>DIuV(dtr5@75i~GNM_vT4I5{X7YS?qyD(k-{g zdP#rwNK~+i3`6i|oj&Pc{5|CdBs>o-?h<;oYHH-dOCihh-sRNiwqXut1woeM?j$G( zZkeg2;4c2$#%XR3?1&WZARmnqOavdhlYq(ztR{ahVVP7^I$o$ip{8N*{b7_~ExT_- zJesI)d|hMoNbiA1*a^ zTElrKLLcm-nxZ&2uGcsHmu!&pIt&Yz%D3C}p4o##u-;0sp31pY>USGd4t$Pr zE0R;0x*o{yOu^aDEA5=+^vDj`X>CpNTV7$%5g3C2ANK&yeDYaGk>I}3TU%+`F2sPt z8CCwT4ZD@ItMJ7?A?2-lI%pkAgUMGym%f;23~7k0i=VFYe~*>Zj6lruBsDJ4!~A4V z$!Faac^?nE7*RNub0rlezmE4C?haXA$9~a_DWC{HiM}lBlbAztMZ~#_DhAhsmha0E zrE*>xi(!twu}#BkGKSKaBp0J{nQ0XEFXD=5e8tqtO_4(QlWyN9?#t%DPK7Y`Tq+0> z!?7{%tM5~4ScCb(4I>7QDL}cF$bC1 zp=Kr7Ln^foYCn#r>96%%+25Di_R)?YeedwBu$fk8A_`S_E_BV0C<<8KlD348 zLTm9n&-v_-5tiAXUTjC$3G~aI zl9w{D2^g#*mM1Ba&DW*J;-6;5c~5Q?qJ3qw7?PXE;*YRXnc|dOTw&3zsC=konWKvc zdZD?s;Hsy5?9h6#uPRc_NNkPuSel;CEhZfan{!Ob`5J?TqS4UT^lawn_dQUcR zYmruiQ;!8a;lI({hH;gUmWp;HQidy;=5LsJ;X?ilVFQEYV;>S5Zb|O-1b)KL<$CVn zF-z^Xp8Y7;1QF)jVdKF_#~^i=NPZLwU$9(H3S(7TCp#S!&~7=!mR>7y#}d&ZM>~9a? zNy}Fc>uTy#I4q+s6Q?vnCm%yB&b9&oFy*xY2!t%p&?LVhE*(>FjVOO-`u(|39=1vp8iJOhr8bqD%P+hrV*Oy?>?Vylc)VuhwEzRRbsp3nnE}? zV_3D)l^K?vrzJ<8Wrh{<-M0TK!1V{$!D~g|yi%P3+b=Jxfi=wzCI$WQAQ}%TkeH9P zjyd5~8`Xj>Ve;<5_O3i0MEyG#NT!n+cy9=X(-nSUyO-#8Fm$qELaD{<}7 zh@#s87HEU_waw|mk$#|_H%n2^a~9ZDv}T8bXFiS)YrI2NJCzinL=oMD6AO_LL}D6`U|<-D$Oho(noK*XITI~YYq^c8cW z!ZLD;Vps6Op|ZriRDnU^c$z))wQHsySFs127zWv}pLLwXIh!L$9>V$kcewo^so z4pvC^{VIzou-l9TlVyU~Txy@PL^VGJ1i?lp6EN+1W@NBqrKw)fVvuSgWl+=`bp7HJ zy53KU*J75buSS*hRtvx*u9X(8Mq41b6_KF-c*_VmG4TVMZ(&MXO|=*MI$FE>Ix!4Zjn zn}J!^bFDMpII!?K?U$*z6_m`FKS}w$l`ysa@5_TlB2UtNM)Ab9PsB|fn`GJmk{;o6 z$TniXHt%wJm~}qf8M_gmxbVZog+8hCqsTDHoD2j+QIt&=6O<3IiC2d!je!A5oKN#( zg-6`<<7KjSU6xI;EPf&Mp0I9WO4Lb&xtG^3QoAly9SrFu$+0#=} zbm-W%f%hv9Q73Oc>&;@_ybAVG*y$}n8yszOByLGt^tPzd=EQIO^T>7}DcJF|-M{TI z$27}E-nECJBrtVUW2UMQ9(bzZS-CUr`wka~anPZasDTc^F@cqs^xY>TTc|GFZJn@~ z)~2Cr1oTV&F|U##r{XRZ46}!_Xdd;z9TZ#Qfc=qT%>!@v-W-60KXC%>vaHl;GtKT| zg+$_f>juUr2PbC}?@oC=s4c5HQ1=JEv6BLX_1+@13Z%C4^Ctd#fCoqShV#I}NB|w} zh-#Mlhj#X`aBx@W7Q48c)@tuVbA`JO%T#s2|A4%APmSPENPe9+GQdc(zNH1rRDq;E znL#pe_OO3If^DYQU{45|ECJe3g zj{w9WRDP_{t4vf0r{`UVXY@|y3@axqtQ+*Um1io}yegx{p}C-h0~JQUEmD@bf7L+) zIk4o)Fub}>8BDgcOZoi>R|MOR2Qz#g8rkxAlDiK z12S-xz;@ALL&2UY5K}I@U-zuKKIIk!4;@!6PNjD8gEQr5o-1j`MnZKh(W_C=fvTr7 z*P7(VGNF~iD1>Pldy>bLU>acwUElPfOh8m%_wxz>!Vxg8^blqFQG^1sz&iK-Xw<>8 zf?ENrY|oY-Xl>bFdG%3`7A=n&(h1mPo<8Q^spO=07v>g z!~uPO^aB%UaG!x#sRre;|oi@A{+;btq>*KinzJB9rm zUY>kWB#pSXzmPnvvSM5i#EwM2H`Fe4O00k>?T&A1cvOneY|Iq_DH>h_OB3fv-j)>U6dREm`4mIgG z@^JyI_(61vvc>o)8Y*u1Go-ybGXkN+l~^?J@}a0~4sZVy`ezTqdBLo&Rr2J-6DFfE zHyuU2CBf4!J3$Jy-$wBI`~au`^5If_Z~kN#QU2SbNH#O`z-ISnKPNkXszJ1d!GSEF z(AD+pv4CAQo3u+3s!j)P9pA$5^euLv(n3{N&gnOL{2ZZIjgi?3XIFIRge~;HlwE)( z_nwT)_E%Fe=?-wJf;#Wprx76M1IP}&)3OMxG!5y@SH1b zR30s(oP{I$$mcf2b>y38)~?1oQhYqM>c52bN}Nzn?MBeL$?M>4 z6yB-!eMj1&nLzNhxm{xa@9*!SQ zDwmYUWSak?Y-JWZ1a)cDQl+`J!K!8~A2zK++_*^!oLa681!p{r1uD<qO?Xcuxmoe(d3TN`HK+%w0q}2g2n;no|Q%vX>A-n}P z-U%At73ec+CCx+BVCeE842;3mUXv79LR$bE&Gl;M1_b|`aa}6GI>j+PXX9^WxhEr@ z4OtFeKErl2Z1CQN#EPwd7lP#uza;>}5Ek9sG+;}Mw>_u1xZHVk9CkEnC9r`Sl|8Rv zk^P5Shq%mMf4mJdL>KiFt7r}B5LcG{@z@cu)O2)tRyaaaVY@o54=(Dn(QY@5VPQ@0 zAC%2Xaa>P1$-4daE1j$}%Ef&+PG^v=U7wxyVI4uVGgfu^AbDu^Dk0HVT#3g@9gI_? z+dfO-lkzK+L%zR#jiz_U3qHmGHvK5UU(U+Loaal<2J*7+q=AbEKU8l_pkM5-C(C zsU}RQ>IyJkl9g*_6{NY^BAKU8XdA~UM$>IgpXi{$sFR(CAVsL@sBr+xj^uk1-faf-2WE@uRst^C z+dTt4iP%Ak{pe5=b%A62TNryuV!P#gI7#K6i2B5^s-J=v!u~sYBcT-!#;j>o1!Gcj zhWRXkM@z8DO2DU$c*kY~qppUKcQ!<2mFeQ=3_Mtzrjw_JBCD;4y_4hFfv-X3hVSo< zf=TVXRt3~V$%U97@)#x|=dvlzh^1=0R2})~_dAUbK-@|*rH_pq#>0M znp)Gdhf>jPFW{P0oWYqfeNU7d2uhhq_sm7j1@WSj=H;4EGC$(_E0hqAU7z=U99T}8 zl!hO~xiCK)wUHG)D(-c>6S6RkODsusgbGNYkck6zB~O@%a3;7&Lx2VaO@S;1J)FdQ zRwQOq-^uu8za{7u>t#n3$t$C~c##ce3;QwVh)0x#vGr@q_K5w+KaYwNA|5R84MQ%b zmdxk75dhK0fK93lly5H_uN|}>Xb^4WO|5&`;0LIAF9|&s4^QbY)Stu{ex$H^yv_$b zZiUtTYP@_w^HGuCkj<^<~A`OG2152vE zMG>H_jO|5_`l77Ib(4s>mf#a)4=kHu=Q%5*pnNx})m#ycQBkUwqtobrS!qTsAx#xM zG!9ZLVQD}MpJL^GsxwTi zlOvyGWf35MogGjnFh5Yu5d4M->3g2;N*hAaD2w*W8`E9NRna+qKW^OVRH;05@|rY( zxFWdZDSzbo5rx@Fk%i^pP;$N{`Eh0hjoZYdo9_OfZm&$gOH9y}n(b;ys4mA7wRB|6TVxliI?#|odP&hk9(;?(c?Xp* zfcN-&Gc0e}JJX9@)tK>CEbRJ&=B^~kQ(@o^`P+?%Bo8#QUY z)q^0*LLkHMBFymvFSMxY&8^J_D4)>Ymb~^3VEtCAcvOsggFVhgt6H*n?$dCDTfN{5 zZq`PO*ML^FJjA#7_|-3gfo*`LJ$OV{Cl!^E$VxMw`)@&yc_p5P%ly%<*-=dbn0&L4wCr^m?B*-!1ru2S{cB64xudVItS&TW3%0&tWtdDvBPP@)lAZubQK$UN9jLL41_H?o+p3{q^q6|}NA&__faYh>f$r}#pf7V$lZkEU4XA=mZ~ z{sBWLm2rQM+l(?~M8G&VFM?)DLbU{$6p*unpY7ScMT6fl(H@olrxsXj`wwsp;qXcY zmi{Ph6=0GQty&LSM+9F(}PjO{Gxc|mzPT8 zB)>Of;^&s}@=e8=O9S8qTCO%~Dr~ST=%=3_)k`DdXyFtWZ{+r|agm7)4lEW%bD0_Q zD0-{Dn`zL{WZzm0%V0W(#fuIr2idQ3KbMCJnlC7}2fxeV7xD3pSIh$qT~fp@=oqRX z^a&oJk$_#6Z$vZ61z`tfy;w;K3~3S7Zkr3S9(u;maIS{_sqmB$+CuDs$zdDvEPJWJ z%C{i(@H=Q;YJ>+1>`4jJ3nDtUMhkWq6YivnCxz5E#0v?el_E)^t*s~B{}Tu`BGszs zYYW!KtWz^uc$|Jb!`<|go~Bso2I6s|CM!VGs5{v~Ia)~txwwv42vk(I^R5X;?cgg%4DsX8r01o*OS4!eaL zknp-(6vxJls$+}q%jdQIm7m#nl@01J}#(<_50ai4)%@z@br3ms>pT3uZP`|y9V!nN~W~f8;C$bkv-B=+#(=Z!;=#-={C zr69F&o@z6-7Hg^#q?Fpp;&CABS&>QehKpjyOVuw}<5)am~8QQ8Ir-o4RR|koZ03`ZtrLu3u=3cSB(+1s! zt_ZJVPt;77ReChIsa{&5gX);BUN4VMZO6%bs3RpHp$Mmn6s6Jk8Z4=ex^8N z3so~1>Rf7qZ2)zB2b^S@Jp87Q&HeAt8JGG*`gf`BA zPk4QG%5N-P)M^8jv{e1Aa-uyEn)U#XeYH;Vfw>PscRg!yf)~SuzkbAR5J@ktWx@e6 zumQFqwUc#_DDUn4a`xO-&udGInMc6R-`P`o=;58~eXRHPiT68v#QF{IjR0_7e1Ph# z@o|U`6g7Z)VD#IjGvt2J;}r}kxEyZlngpUxPb_5K0nDdspN7_yaW3*AfC)_DW7 zo>4jVOK=bs<>DxsXEIT!guXV zxT7^tmt^Vp_7ve!@iBxz$;9hP-#9Oc!mjoYtyhIY<~?XTZJeZ*2PUDW40@}@-rL#I zYQT@X;y1FETSkXcIGP;Wahz{rCyt=-X_{#r5f|*T#c0CO#dze#>vd+{cK0~N9WigJ zi;K$)Rl@Z75-Rt_A6;QYW&0{uS!b|8-W!D$sr8a~g&{;|vOR!`$B4|PZQKO!Ddc`= zWQO1p|Kqr2j>Zla^3S<0+#-4wmoS{T9Oq7nr$N#&C$5a4;AvPj6*Kf*^E0d@nVEXM zI9`mBnsBW`$;(iDpa5A~29n zt0+k0p2Dx_a!?%k6DJ@*ZYY9iUpJtNEvIa(H-mA(t#!Oe0R2+v}%qMXe4G9(d- zz#a%1Ad)vFmA3lW4%WMW|d8N_TN56HZgpaB3t=U6Ec7H1zGR;VN zqYRjycN?^HF$smy+OReuX@S-VAsQ2T{!g;lgsXoLMe(xh-C*;*35ayJF2EnX-CX+3Lfs23}X&!hUlhPqA%5apDDJl0WG1&U{th$ ziI9UP4>7SjQEb|5_8xkSnb6(?)qyFVFJ&?vSDfV%{R!O}JM^i25?K>KGMz%NI|Qsl zLiw4!;e_&lD!=VNg}eh$f3B0?dPDHta-nEJ!9Rx78zfQk1oOL64+2Izd5w4Kr~W62jYrB_I?#p0>zb!87Lfm%b^WGspc?8f=)?rEgJeCMVK=Vaa$S@o7LDc-cn zUZebq@=neqLZ}2ukB9AEes)gbNKt)ku5Z9!>sZz%#WER6RJ$h=Z+7P~7tHw{j+S|Z zZ}*$Tw$GoIPVGAXxMVDSui0o0E%cE5Uf|3AFB$?ZaZViXDJ}LXuY>R22rid=PM-YoS>^Sv@#A z5xg}=Ajt;qp$8V>3lnCP_02tR(NK&*7q;+hc~ERns0ZzK*{BHO-4m#b*NeA%61z>H zJF5ys!!R$-S!nV}QZ~1?hT?`P8k?~@8|Z{()W`O52=an7dd&br{WKtUA1Mbnd5%!T zF5%;JItY#)qN|zTO{UoFCS<;|dF605FeJp^GQ)9&iddwEF4xO7DuPj{o7yV#cvadP{;>Omi|0n%65~q<6~)^U+lHfGUz=4Uth0xWb?r%DhUCP7 zj(r%RL8fovi2P0l325)g0pv?BPrp&t;63glBzCK_9*)9KSq_zhB}s^%&CA*{Nw{O+ zR~|P6@~~#lFG(v4vQZ|K{*E$V511ZxQE&~GHA`gsE>F_C@A@xu0BndM^hGNEFVf!n zsm-wa*DdZ4+$Fd>!GlYS7h1Gc(SO>ig_x1ueDqQ#xyF2&v59Ri#8oH={Wob%KE zzJI_od1jKyy4Srv>$*4?Qu^q7yGIvGoqg+*H@hSb_m(u+&g-hD{N*Z#(10(tij!%i{VF{a7aILN)TfVZJ+|4{$TND|U3 zB5nVsJL95rzB!t=M9tJS3AhgMg0Is)n?3Zr?(pA1HXgYHlL*1T;r|gR`Tg-vj&aDn zAGTg``}6dFTuuHzmFU?FknqT&q}G-fnl5LYliR~{CRY+lRkM}GSMo~R+18btSNR}v z>N-tS(l1x$!-+@XSVK=4!F%osSDlOo(Jx|}Co7gKd?mYYgG&80blkQOwoUt_F|k?OA|&q$$uAXM1Gj%y8JsZ!3$xyd zdSB_rIb0e3h@*1iB@fLmlxm#9jCevWS#oowzxU?0h9%aFwrVlEA^!F1#dCKuk0Hrg z#-%blCBM0hzUnbq`6F?L>R}TA#S`Ow_b)Q%9w0tV=)r%`M$Np3@%)6N%r>(SUb`120Cq9UG(0(}4yzv_!~Y zolvT`PxGH$e3=s%Vc@Nux_Pj3?*uR@R$dedlTBoNUfi-x#Ph<^KqQFygZic71xmHH zy{!LN!4+VUZaGR-cHZZY)B^uv9D+5H4%HS8b$%w~5hv;KbJGqCM|sivA@rdlW2~tA zMv#`CFz!M+HY(1M!}M~lv=wLwM?ly%>TLnjF{soSCsrnrkxt`-!&^4mIp_;dQ zKMKX95W;tZ(BSN_=GXUJmE!L`NH!Pj`R3gZMg5uSfs>db2D(zD66~EPNxngXY@jSBP z-J4`t-?A5R-wukKERb@!skyvP@=*{%JG z1R(QnDujTXVX?a3bhfzoN=M$sRxqD z4KBs>3@W9tIs=r{Vuv5$8&)-((vkSW{|QfBsze3F6=mM)V$<2$`SE!8oZ-_%m|H2% zudb?ioi3^UMh_yvKQe0eC9aw|caJ_&r#x*58?!*pBcHkoh>(pUI$3Q`ov8!SE1o2f zmqeeh9|HK~jO0%r-|D*9 zkr2n|M)&$&6n9yC1;9?T;O1d`w(sL+F?mn5rodxK5<}mL4dVfZ;JHKJ%-`Q%rAI}q z%ZP>fFp@izf^N+~C+mxl1q4KA1uor0>6eI?_6%(CmMe^4St?;|gRE1Fw>3#R&# zw0QL8`FfL%!d{AM^OIRi-kwsjIp_lY08+Zo>l;~hs&ZkN4A>zyvd7zD7%4Gdl% z>UEeNb2!8FF%x;ZRZJ3F^W?tFzY}PYxFdTSSMV-u+oLg{GGy{z?_AAVFk9|4gDCw; zQ~vWKl*9xSv@<;KzCYRHeowG8U$Z;uVj?{zBz&4^vfI}t9k9(vrPNR%gfT)!;xO1( zgcR8M%!8_jWeOQhX%mmjBS{cgo-87x({|1(gdm z3r-kncBm#ajysBdn^O!vdDmyIVRO5_EL->Q3vF+~KYn2(M2JCplK1~&iW7{h@(jZ{ zCx)||tOovHrDe)&-!3T)U4&i6A~S}G`uzu?)c)kqp;519+r%=$OTd1!<)}W`g8;=; zctoaa)rrpCEY#~uVY=-4cwr7|ZlhHyqev{>K)3P^MN&vpUi#*osuc`jxJ9W`mJ}~{ z*Ep<1hOvKg&N?A!?vJ^HGw*Oxzwc7R`NUOToBvVaXzFFX5QAj`43}>?Z_!>fa=cWpBt}a?^~i7RFr>fRaoVy zfK$A?pl4#yE@z)ytsczKkj~cGR67*><=85h&-9DalT2Yf&ACgBe|E5?E{?=Ar~$<+ z*L8;D>xYMZNrELgdxU$V&xM#;j=+)m3mq+6MIr<9PJZaT*W&E6oISaQCor3#zYDGD z5|dg?<_d38oH$$3gB_V&d~tC}-U{9RecA@1=Kk#DK^R)?Dg96Q!WUZR{Ws@hX&@p_ zK_Z~0al6}yro;!dB(Z>>n@Uya^n!PDec%)t2_v;kJIY^SK_L9#d2%5^AdRI06; z%BO=}2$k20pdE^bDY~Ha3Gtr&uo#w8#ru&+qFlV|Nz{O~&)JnOSzT`LU|$HScVt+y z_=ByPb3*?PC_dcx>+(Pe{H=F**5GeQJ8hvMhn+1fzrL+GmjvH^*?Wh)dLbbqk|l!u z*G|*rvYx$D+v_hlFTA|Kxg0mcHpor#Q;R19*P0up9ki0SCPdFF)pzEkoGxx2{i$^E z^^bc4)AGyIIGft2Qa_K~32>@BR`*#N@BbVKUhJxWUkQ_3k z8%)hObBgu6=i>Go1ry=2w492u0IMER>Dr=>aZbtJZzTD@p`z^i&|7F|fukXo$$ALP z#S`52I37wptg@*bjYhjWbp*73KXN%=2M^EPDC*@M(h9g@$h|cTs?Wl+7UlR(p9Qju zl2!aSVk``rP79t$p-*I$ELSltZtqq+5g>WU6CtF07%xI*p(%|F7}Z4)0LD!`D?CEH z6(Lc$)<4uO9oFmfDIe|NrTxT;iX;LKj470E#Mf8phH~;*n_&{CM=Bo^rs{!u1XC0e zfCo(;GK-O9-Bi3Q8`i zu{RL@Q1RmX)b0JT)5rYI>E*_$L|bArx%_`}d-lJpkS5?RK1>?jF|-|R6LLIooq%EAc@piaVEgx%*=vrAIF^jlB*z+zWImCqhav_ zc!4TQxew#Hf=oA)s^Isp`YmYGTRoyWy`BERNm9|j#CLf}3rReNi5i1g4`G>P!Wd<@ zRuYozi}kc2c;D$tA_U%rS~baBu;>AJZ_q54P5*ofI$`)Fd$vdKX_FM0k7~Oj{E*oU zTYInT3Ml~nE_dI#(^o`2$CmjOfnL-LAy4g92b`Rbya*x6#@2VTpp*&M>SLdAqlG}S#vDZ5#(6|Oc}fovr}O7$yn zvzi=7)?2nWARy3lrN(aKS$0NU1~xyS!-hOgEt zw;R1Ds;06(t_uD*a3la(D;_FI`ilNLE|Jape(M~4^x-m6n`ILJvH(e$;Ayci#LiiQ zOq0g~Y`IP?YiD#M;2%ClZ&>9v)oCEK12rlk%Qa`J{-y`8M2e=U z%0tK@QS@!qP{1U%dz}BawISz&Zg#T80FZEXQ+@K31l_qjUI;jP=f8t3S+vy0ynrTt^rgT z9{YeYKS`QBqD0=&r(G_5aam-UPrc+Ww~g$`0aS)FX%zGRtQ8F~uKIF1KnTU<_}tW% z3{;8y!3Pk4u^x4NrzCo^pYNlMrM60B_*a53DYOTi z;2Q-|n&p!z1P5_!Xf^C2)z~Eqi}Xo+thMn`kQn9Y0SOX4=XqPJ7FYNZcd{dN6>o$j zF(_17-SW$0G^c+N{5oa!+jBmicQh#r>ZYagw6##*_F4Wipyst*nzYY&q7+^vwHq1m zsvKfz6kZhmO^2m&$+H-F9m|j1U5m>;Ks@5e_88hx9}`^l;+Fep)Ju4yFo}2y8hjtT}HR#u(g3i0n*&yz{VW}FTkCtL<*lZ{1DSy@W0-e>j z$uA>Ge|8TQi<%e*%F70S*+W~C8O#kY;imO^Q(w;xX<>fhzuf-YSx9jb0F-1@?}fIZ z`b@T&vY2P3Jl$gYhDNm*i>9Xk`6g*?|;!qoa{%o|Dm;ox<$q(*7^a+h=Z(sp&_6{PFCQ9%24^%3cXb-CG(1>W-?h7ECu z;%7GoA^fE`PHQ^5c}kv%lE{K+khwtl04TvQr#T5$54N8r@jlx8Don9kkM#lFn;H4& z`@h($X@Rk-VBmwymZ|Bf`6>InQfLkCjsppC-x2>lblL1abogFugyG=&xG({W@#)o&2TE;1_56`xw~FvrC{}zX|zSoOLe>0jqhJiMP?3rudHA6$O7fQ z99(=PRzv!TVRF-jhv*7KXz2qM!E~yfaiIm6ZhwBIp(6|+%qm(b{{X{{v>+SkHOD^- z%j2#q-Yx+BVq{r+-sy51(|4XRuhwQ?cCXTN zpDLzqrCtVVeRl&h=(5sJxeLuwCC%f)j%oBg`jx}z>jqEn6@`}`Cq=>v?lM z$(m6}maQEn5;I<@?hD&?`(w|`FPX;k0iyhUtj<%n3L}EyknZm3p65t7@MbGU+e&xx zW#mHe-I&CqYSa0a_WsOq^YGLsl9i8QUg!Q|mrFI!$r+J)YW+liGPfs+t11*4adg|1 zy+fho0S?RK#>msSj^eoXwDX;%Mz=dt;bXT^p9KUS+9;S?P&@V9%~@{1#=x80NL7R3 zp^x=)Ge3Hu9uJdmCKS;xpl@+{=h3jf|Lf(VEoHxp-=)fYUAe3+an?*64;HP^lMfP( z{+3hl?Oqa(KBitvKq9v7b7u@+FBDo55!BPELl;)i6Nc+GY)%FqH!EWq<$@>0-|px+ zjf|rD&!k*w|M44j#pHA4^vqxzhoS9|;%_9%#dZX-Qn=ycmG=cMS_r5&<|@IgNeXeQ1?Ht9(ja9R1$q`|0Tz;%|Bl|e(?@IU zhv7jj>}%9|oI(eF?HR6Z-)XKK`Y?GAiQ*y|nTWu-9JLH}5Ker81tYoQt&gZXoSG(z zQFjt!2^MybdrQ0y(=y1IE>giHSm_o=5SPjNjVFukK{J^(r?BAjlik3R-ARp?D~%E! z|8=Z=ljorza=#vtmo_#0(LSl?^DFIF*TsHc&{Ln>(*0?3i4o6#Ta%vgHJ^cU<)|g@ z1WzV`9Vj?~VpQFE$AhlPNPR4qjsmM(#&le0c+XbExJ%C8YW`7mWq!Bb8~Pi7P`?Dj zH&Xo)!mo_uoNl(*wH~%OFx0q>#V-A;v)Li$@E6Y5t87lsv5xCu!zF?<8Y_CAACc0; z{?u6gdZ*XQz)&d-Dc8TZMu1~90*iE#JY3XTJy)GYJ%>?WhVt)cX7E3zM;pmcC%^#*~5Tp-bfR$@BD# z)86FfGDqJk_&;}ZS%(@%5Nwq@=ZiXYdXb-u7oy>$9#*l03g&;aj5e?maY~B(QLL${ z_vb`7O5Vb{RuI!Ix#nkL5M{;#YFV7Ma`jyfR0&=fr&Mm@BV|5+`z=b{F6s0r**}ch z#tjnn%T|_AEzUYdGZ8uYt2lO_eOqG@8x!1R{JvSA6#K^~{w(=Hj)m{)l2#_$fnmXf zD}fn4`LZ1jXTQw6vY##Vk@4#X$od1f#*{#!y+kItre;_m-`{vtvVmKbp`j%$ z;J73Bz3MwmTI9~<=P8gL1b*cufwK_Bj2-2OB+rgoP7{iCm;-R`QF`z}IgjzI|J7|z zzF>+9p$JiOi6;A+@v10Jtb)1i@)#?M@X30legE2w?(raB7_}J&SCfBdh%UK<@5b88 zCl@aJUBFtSh(p6jh4j2gvRaB)_80E2>)sk#HI0jTJwvrjPIi;~3zK4=fb-SDe-JzX zD4{rJ+RlL}AA*L?)c=i8Cb>uX`X^YZPznu7IYT$W&Zz}0@YSYmc{CNu77O5pC%tUs z7QZ}R=CX{_--WFG(X)x!Gt05(OBw)UF@bwGEN0ReFfO5q=A6#>HTgQgY2nV&w>u=^ z-z-nb6FM!wpDXc3G;HL}BCXQs#R7h2#}e7OVJ7vr@yiPe%5EVn#YEX73s#wl&>eKwHc*UH^ z2+#KFcK3K>!w|4q``1g5c2sk#$mj+ql!%Y_7}(W0VhqtbzlVlTn2~JVo$(r`XylxXB&dTe7tTsO6Oh;LNo{`dEL4%ulz5a}%}&wCRi%ECM*00bZ3Z;9_ney2eZ`As8}2{P zs8jHzShbQL9hYdAj22)UbMxXJ);X-x}smiqI2! z@@3?T_f1#6##5KE)-voji|Z?mxqu z_wO|V=*!E>3;mp0)45k0Qg%i^sfwGHw4WTamvty~b~Zi&)+a}AKKgF{ot<U+o^gKY73OCF!5vbS3W@VO4aC;%}D>Z3DeFiA#FE zKbc0%FrHhZQ>e7V;;?CLp3iEfoM~mP?Ojrd*%x;{!My1J^F9Loj@uCIi8bGo zh(;OnytnKuFz;Ww0pe{bmm7M9mn}cCo-fNZ?D!JSx7Xqaor>2E zw{{qb|E%wnqR=^_BsH2|Qn2EQV;MH=>#o=n2a#J8m$aPKuUt@Up3UV`rbQa+oK&jg zUGyle`X(M;PFFT4VYkdG?I=-tDq4#q_Kk2%G@pG&gIxl9T`q<(4a;7$ZS6>iy>q#D zk-5*{`zR*VPif>!Zq61XKM zI&X2Gc($-bty}!$VC$G(+AB$g7DOGGc{@0k#4`t(;;>d$fA|qf1DW15e%``2 zQBtbQLSbU|(gYwQC4PBJz`Nc5dF9g%&XAl@unO00|B-N=ndfV^;gzjL{f%-73)d^G ziD>gxc@gAmYs=Qqbm6u=KA`Q+Q!-FU`krQ4Q4R%kMT||sCGwOtgxxx9oxI6fKc)7k zURskXkl7!s5hXLt<}#)BY}__`W0l)*^~!~C%wE|}&5|`hXOJIEEq|ncSPPw9x11Ui zqc0%I`cyNk%IwTP5@+!dQKU7oCAh60?{614YZ`-R>sH}pT*;@=j}R=9Wz8MkxzLN` zy^A;1`=D6cO^1T|Lp)EK`1uQZ#ai&7)Au29Q+ue%uL9WKv+1oe+qKWa(Dnvr@*yjtl{ej&PdYAaeLh{8TXA zw6_$6n)XQuXXrh;KhMRHq*Ww5$1wVr|w6VS#bH6QzL{o|#mTn>){D#fw+Y<=pk3z8F5H#X! zMwhZ>Uzdsgl?w9d%5Zr*VHGp*$Yk!VVncirrXA5XhSYMJD(+g|W4e%!w2bGVNSW zt|EqPCy8!fX$br5Fbx+BXB3YwZQSWY>w_~bB`z)isVZUK%TcB!dG}4vlw5C3Z2JRU zb$fHJV=Elwa9qgjnWYr785WYBLnI#wp)bslWm?dUJD1{` zdR|dn=r-vqFcvG`gPaRD4}^=2Aj7UYcH!Bypke1JIaQb46>9$lFtu$TS%Ubb+_1|&U#-{ck+PKM+w3&cD=JPJc6M^iLIDR4&4m|nQcTK zyPl#kv1TzNt0XcjsqXOnyGbrP8!T8BCNsiJPcvcP$4RSh`+vp-{LRS=2l zuQ*=MpRVq@W6MQRrR5JZ7-d~nJBTi}pB<9!B?h*hzq*8I^r%`{qAo7d-(&NrRTx97CFg_qcRSDgk7wV@j|>R*Od4`P*rs=Efte*JU|$vdr9ooB6vZ$q)La zuTIbZs@Ob-0HCCbDhgqGsE3>)?iU2xZwC{pJA0@)Mv{ZLbM@nL5fc-Qbnafy`9X|v3H+K{~cU7ZD1 zaly2^MBic2cfS}93UGoR`OSnyvt08J&*-;hd3d-=wk?Lv-+R@ZPOsrUU>N5Kk4rVS zyW+@^!JK?@9gIn6Bn&YvPn>sx2Kma~MCtn%uHWasdOw)zPtJAA84cbMJ}PvLyJ+ie|Phq+`P7ig#&Xeh01bR4m% z>xFf5Mx<@4Nfndz22vsyU2w?rb3_p8nAfJ;QW!M$ds|z9Dp53wu^1ta_i zD%xcq?oHn$OtFN1ci?9D!Ydc9pUhac+N7|97miH1=x2*DdEe#FvfNZ3Ds3i7U6OOC zJ66o~z=rWmD0P-weEJN#Eebksf2r8N%zcrX8XSbX%YQncLPHPW@1$X3->jZ9#17J9 zWY91S4b-LlvQAhk;dO&M^>XPK1W4BsTlP8nuvJNBp0T|A2;52JbZYlHF92I;BWVjf z%J1Ox4Y1m2T9?7pL)7G4D9F_IE}?r8X1GVUu3<(Tf}&>Bt9QP_$6=#CTba# z@13vO*_4w-_o&5g&c?(9-T;368>lrat>wGHWdws$Gfd>?8BDk)Ku@W4U)T$ zmKp=ntP#nELuw-;xjT}n!vcbS-XVq{-ln$}#;$euxDaEPN;pddz)?3V`~1@izoXsa zH!R_~#M-W+l35?^6(}3XJ0ri^eocb-0*t!OxlJ$toR^`&;-=637|2 z?0&q9hMZvQ+=pF!T2WUF528n0{)|mOeULh_MbT zNo=1`k>3wkO^9?G(~{N$)ZUNTPpQLo#j}MmD;0&1otA8C`Rica<@Jx&iw)HuoJIal zp=m1!;_Q@zP5psA1$bsu&5Ctp;Q=$~`7@`DvT7ixH+?Ro3};3-HX6wFF0qAXTiBa?-MqJ z68BK2W=^=IhvW&8*3g6>cmq#wCZB;_;YihA zkIv^$6HlVC39Xd)@#H(2#$o)UR2?w z3u0?gPP#`#rFF|l3m+;&R7r~21jfq}YV~xO?C4vKk~SI#QkCVZLdS} zO5o*)V9*!g@~ih^E*q9juG87*2II>qkm+ z4Zk>)*ec`I75PGtDyc?p+#xagl@dCYdoT&P#+TxfZW9ow4q%x!0pXM>1rPMP+WP?i zu{_>QylK~J5FE?m)$Y~G$UO}ISsIy_7f&7VAZ2R&IfD6XlP$x|ql=qCMybPX0yY!+ zj||I$^L1%_nSz@@?84wn@Q4c5F*y6y#KRIfps4^-sDC##LrpV_BtMxFw^ zA3YaJ{?wa1z6NT2xwwp4L!3SiGzfN_`mS?WZHm^lV5eBlc7dc8R^JeQ4doOQPnODq zQ&;K+_q;ue)uX?mqHNPKbaHeo_WR9YyK72olJ8_0{A*?b-y-I1FEdq`8_a1Z6@RG_ z5T-^=v^LbQ#Q6iEv?B<*D8YL_QFMiMIsi_Ab0CWv@oM0#a}JWBDXv3A1E=EwHO^Wn zjdhD({ou-vLJYnHx6Z>p!U0Msb@`%;*CAu}+F*NwR7A?5xgaZXiws)qo`Eu@Q8UUk zVM=my2|z)Pe+9g11xa502DF0>*ZCCG`2Vl~YU9LQR&qq@%NCF9@(EoM^~(N@u1oR* zVzmmd(@j3@#CFkf(XxNs%pf0`N!xvdu`y#>C?6q07_v@(THRD7-vEX_h&Y0@O8jy_ zc0&9*6S}ldf2HgmoT`UO4SK$G6G{9ul9PZPs=5PRrf@tdcr@v6Ul_Pu=y zn$w!&lt1SO@y_Q-sry!$K4)XqO`Bp*k*bKZ5BI3ImfM)4uvIiP#|XISq&y7 z$bqIhj(J_Ym-J)9;|nR5{s z&lNAZ-(P4-6!0w2zku$F1*r<&Wk1sxI3nhfto&3PAjjEktCHKkt;hLKeoZMPY_zuw zC-I#KRU$`n#E~3b2yaIu^*az^;;6WYteyZP)*FP1_UN;(_Dt}wz=LbNyVu}K04pYN zGamodp^KVE-B(6qMUbF!ETOOo2$BBgODeSX7AA6ODbI)g#Sq2yhH6(bP8FeW{X!85 zgBkyph-*vCil%c+#4I>!vmxw_oW5Uri!H)OvZG^N+ zOb<5-x~1Aa`4>9hvBZB$>j0Tsz(w7Zk8E8yC?O6Q?3EhFkhWLy_xL*?o$L%I0^NDN ztCNu)PnotiwV~V79Pth>S8|trAIQwQXd=^X+<_&7(T-DRHNz{?RB7YXnn8-eC%}~n z=TDnP5MO0UG`?thqc_v0I;m^?^sdQy|6M6?ufciWT+D9=d!A{SL;y%Rs9wvH-X5#j zg-NX1dbbe`jhmTTsmuU*KJ3%vXTCaGIM7vh2Ao})N0NZs8$Bu$w@EDO;pkn#tMnAc zK?n0!=|MO1we^3qjqmDTNv3%cD1=j;*RRc(UIWqFk#sd^45>%2qKkTL&mhV~%san? z^~E`xx*SY6)ta5hko(Siw9mf+O2YOf^c6hs(;}23eq&vOW#a?n3FLZ>Y2Tv27C&5qbpE8g!bXfn`wuYi!hja0)-DIKXzD$3qz&<);Ys zA$lL78Rus-eV#LIu?NYbS}Pb$M^S!a*|)2SPm6d&-2}t)Y5X}JqALsIPKT4ywNraGYdsH_NrcN!|5kNRMrk`4-m6h*UW=iZs7(CqdnUNXs( zp)2d@Wt*ryxL#}xxZ|#_7@25z4V=hZPjxqYO-AGCPCj4KYV4|Kt9Y&Yh&z-!6%M72 zx=~jdIt*ut$bHNe=e)q1%oeXd7p(zYPw74%@l0;7@FHuW-M!DPqkszI0%Goii`{U@ zH%s}jq!wZI#MQR(m&(K0L011R))}#c(r#nM#AIQQmgtKMD^W3O9{!VQZ>Fy>%=&6u zMC1czYWii2@|H5JrL`7VfMt_)k)s0@|e>V zFl8GhBHV2}{B_$Di@(-@+dw0#u7z?;vC9xmmH+XvV6VnZ6%FkWKZwscz_~^xXQel`_#*Ic^JLbjjoobLX*P{{5E^C-tFNf4QD-GQB-#;+Nrub;%pUP2}q_#Jl zQx=bx8FW1Fo(xYad7pN6d+42XZfbNK5ueKy}{hL7Az?kNamEH_FUEs5fXGIzwymsBV1&2r%pm zAMt1k7rh*dJsR4qq{R>kZ(Ws+Y3ot{JOo?dQ+;3`w-3tHp@+RE=>E)X(2F{F6Cy)b zV=KkG^R$dT(b+3v!}=`IYsPdW4%GQZozPeqzbDff8TD8BUy)qA>LN;2mc-fr;f2>eucmL8!*B!Iy} z_I!?`z=QNt^%wZqQ+%S@eh*K(H01+5+zOxk24f};;h-NgG>oLp;?1dmdKUVyg^PTD zrHXUKR4c`2oxqGwEIfs%3oZ*x4&-NwDbW!y+*I8KKt|BU&=hvI%8pZ5Z(`t8kE)QqLB}^8D_OHqj5Q zS|dq?1Kz|`rayu9-;{im_}T(dXixuR(vWhp+?@NdpIQ3@wmXz(Q};-%fTN=^&?+MWgOq_$0vpYT)0%5bCwR5snkjdmA*Wx1S{1w>n`htLSc~h z$Nc;OPJJa9qHAcOV>ajeyA9+gSUc87M-Hc!l(sYR_V1&^JjJK*Hd@md{1-a!45ci$ zi=}%(FMqbqlnx&O%`hu}xA3&?-X@@kQ<5Z3MdZ*z8KM|WsRg)xY^^LCsYsqV;cJIPG%CSs_p@r2m&jVzj9|W$yH`+9vIQie zS3xPnj#C0tz9(}q&8b%%dv*PFM-!x=Q08^21rq^+LOFU?L9 zYbfKN-_s!nqAkg%Ihp->7gnb%#XsxbD_)pTRO0`ns(wXf2x25D5IW z?sMAwje$f?2D>>iYD6)MWid4|W@olx$QY@FD^@K_5@Oxuf{ad?=8Oq*SjP1{D)D}M zc5>=$b7WEMDV#70ahP?ZPZ%!V=&=F{jbT>z6%@phVGi%J?4!~SR4~me z^LwFj82!XjY`H`i^gDcrU1sRY0qdeM35-Z}3zGidwf(pqlhjbEqvtZ4*}7JNT`kD;td=bxN5O5%;-d6k@+e2_!4gH zL%QlOczAx5syOn$NP7qFIREeayNw%9Y)x$2nV_*6+qUgYY#R;Q*tQxrnKZU-t9L)Y zweBbI{Xd6mo%6oV-utx`wO8Vm9-n`ExO|4*_!okSpQ7_W-_KArWcy@-9WIaZiHKF$ z9jd9a3oLIPUqzMt92Jegj1X3efT>=Ohk^S=D09`OSVp-PEgSDvTIo1q~o1^WdOt znBww7`LJH0N&|rXp9y-s*Av%R8?C7>?{+jkPZoFDP+`V@(X;&To^$}Oy`#f-O+#<0 z_1<^I6~CvTSi<+F850L;)K=hI#}|O1m^fO0+)gfkNVLR3pVq^BkUY71HCXi9_q~@h z%RlqvzDl9KQ$8iMHZf=H-R}mBcyL}EC{f-yc3k@Gw`XS;r6_018yj)LIXgAbaOKmv z^1y@jk38L^W=qinLJkjPbnHJWUU$}>MSRkv+G|6foG0eQS?ozK*a86rv>=JPc?a^o zFDeoNZNEwVpU@9E5CSjO0~1Lo2H3mv@N=)$lu=oT4dn^JrIa77Ip=MosSfrocXva! z1H4XE@{`X8A?1C))ZM-R61DF&GK=x=}C{2qLw(ZbfS)c$;b@`LoV( z@bGX$7HK`7N6eiFfGsODa`EC+qw9PDSkV^meb1GyPZ{BOoZ)B+M+Nzgz1YIfqRmmC zq%IG#4kVC7Dq%BDa22|(-ipgci-K_m<6uLuNsuZdYmWiAIw)unjp4e zHs%rn=ewX`WWSBb80U#6$QXlrg9$1!iDS>?jVwH{NQV|4l`k3`O*7uFiljd;3l~>U zRac|eS+|M{FwX{(<~=D8&2IZ~&(5shJp1Xzs4Fcm?h3k}+6wP!Cj~Z6y~gb}@)~*9 zDq)r3Z(?KDOO7zDn#WLE2jV19EGV8|`3%vZmE~kKAV>{WIgVI`Cq8_gO{^E66uQhVG>p`WXlYi$b_Yk=g$B%Lrf@v~UygF) zC&i-YuTWq!B;v~KNoC(%nQ7(M|3LKg6@~BfAffddi^y4)+gRx8Axq@Y+c%f-@|1k0w{YDhG$qzIok! ztATYzXD)fPm36{x=V+sNBHdK<;f@%p7Q>F&$yIqv!Z zgyD6H<;Y=0O2$L*D!d6Tp_yfCul+Wba}&Kkttj(pyNA!_J9F;7Pv~_?*LzBVx7XMN zWLxX<{2X>si@5?n!7r&p&n!@LL~Z@k$Ua*+>UE*^XpK}(PwYBwizi;~xQYM~#N0fie5 zc`(ah+$@go(CnraGu8f}H+KrgrAs(v5U|Lbl)1HG)yGZmrFd{UfLUlD_Vzch9L6B&u*QF&44{kv8K1&hX;676e!ws=R->{a;*%@^ITbwYD zIjXXIH^DDC-%b29a!xpN`+CiUaGbwoVBZ)Y8+T7a9_>xXL}sDVr%HbGhwNvkUNF5E z`p!2b_L|HuH3%$Z>I^?lW-mvYYV{Dv<3Bs2T@MJ;5Bok|N~7mVxKW^L*CmI#w|WXFh6atSSn*{fyS3$;x)et-JJL;F?05Jc2 zi+{+X&A&94tj~3= zf$Zg4JF%+XlhFUXx}Q2y7Jm6Ph87UTYR*As1T!>9YLX2cIACO;Uw-sHR5TN=YOhbGICHDT)9l0?Rqv`!W3P=RoW_IGxlO_#2!G0@d zCf4o%m|QK{a%MxBpJ*C$Fq>5^Io88=Tu-WLJw#+0v7Djv->)PK+#bOG#M^m4ba@V4 z1t-}a@8gQZr9rmBoM5rV(z0fOnVz15w%Wevf$zW^(^90Sb;x&l zTYjB6B)**eGr0vj=g75eGkKjaHYA~b8>GhN&XKZR>AN)72@UQf3l=7mWoXn%%VEBi zEEl`^;97`(3y=WCwe96X*yfSu(CTPbg4lie^KMdBg-iq&Qzh3*nm_#lRXwLGp=*gM z6{hMCi_g)>sS?!J;}Jb>}kop295Bv%B~aGhxPnZAQ7v^7#;Mj zx};l_r0Iyhz*Nv5P@)C0dJ{*H!)`DfOi1o-@6(j0FsVmJ*>QDh2`_@{RLFBl=`dRk zI^<0{#C0h;cagct;)`py`*PIxKT>CRB?K1I&!DX{I__&{NRQvx2Bu#-HD7w;`Sq*C z;Q*+Yv24mX=vToRn()M%D%O}<08U!F!Cayp>h!DL8r9-kB(mI;3B`(WUDt~piH1VxTFV}=rT4kon zLGc&#WM|>iu+V~~z6z=5tKrh1|7?(Z`@Zev#qBaH1;5z3F*NefS|whLcBo6`zPUyY zCuJjc?A~unw)k8{uLmc~SLl0$=%Ou*IWyvErtlJib};nQtcxo#;rVGcLZL^%{;Ng!id9!+GCjEw0)v)Zc`3%^MB0tnvj2wrfBvbKR!@^MS*QYY z9P|@{FyCP|`Y%+jgytb_6GI8eWW4pMSAxIDkvIg{D;K{ic!y@aj&e`%laF9doILV! zyAx^&79rMIwtNZ0sYc8~%tTP6$F`3FGd1Afd6nAMlj`wUcWsWr^K{LL+m@!k#r#CjnE{mkL*xbK}MleLqs4SPWy)pcenm^0Or4 zS;3-s6SQ}rSs&fV6y5ZDWgeoNS>}3C&xbooxZ%QnK)nRyFQ3(0pQ;! z!irLayxZIxj&Kmr@w%m`!yCYOArf$Hq9ZK%koz+O(!F|FYHAkC=lrPH;eD#HLN+mz z$jFKUKD3bFBif(jY=dtpE~CtRMEA<1o*EVl{ z=jBv7z!xp(6iHE0*Pgi^9v+bIyQ30!5C5u2%VRWW%1Q9; zJz9AH-|RuL4QM7mxAv^W*I!I0nI4N14~?FvOx=*>?69T{t>U&Je#akWJV7xc(gKZ!WW63AN}iE~Ok&W(FM7aXE` zViDdko@AGhAEHhI^5-cInI2{y`he-zIE^)C zU?xj?DtMTcdaZ!t*Vqx)*nhhNYgzD5?FW@o3l?@dOb^dGdD|r4{%r+kZVVdx1oxrH zE8&l+Yt-8>W;+|&X!@PZZ1UbdU= zUu5vv3o{2}!|To&_P(_bRwH*kdNvv!KFL1C8I9r>x7A7JV|<+A zoTUX>U#p_Qa^$E&2KD%)|8>U-yZQLSngCcMFuKUtrTLNE#H($FqcjG=fFOP4ey}vdU{ELTt za3j2ZT>cHX0+RMVBC@P}%$Ez_KUKQu{hNZoLe_umNxyTpt`1;DopjfdPQQFtm%ccc zApdh%PhGbve(B1m4}x4#Z!k4nV#)HJO-!ds8uR8V#PqS z{Q$Q85~?6?`{XQ~Ab*y-I`NxO!tKP&_OJ1x65*wbc`mAz_VUDBdA=)W9}fj7lF=-= z0`HK<*S!~5NQ!UChxDUW*`qmmB6I;?#w;?ULCYF;o9`L}N)pTS>B=NOBFH1>{3QHslqk?IP z8uGPFYqXaonTGHO9^&;0`EZ&4qhDlS@L{$}_g92{;YMZ)5hojF1vrsC3(!$T@=!k0 zTa0-McZeXI#vEEw?mXM3< zq_s+q=I`XkZlBTn+AoT~4i&WQnNB#hK3y|`;B#U{qg)0+w3jE z)M(;Uti!QPVRY0I{Qo}wHG1I*e4|MfbApnO&i(O?eO~zxy~_e|Ojzts6}|52YARP- z@;Q|AOc3mOP%J}CQ)5r_u+VPPl!%*nu1O!2Z&VN2gXu^Y6kWHpMaKEMJq$}X$RX?M zJ@~w(!}??B*p0a1X_!!{^pt_&_|KxDT&>^vDOl{G`0^gEn9@i&>A1LCx-5TN2>08W zvDmT4y*B#+S*pq;a71Vr3hcDPh=u5^=M~RH8WSsLfu`!`^mwt}*Ym3`T)AkOym3kp zZ3*5CoF&cb5_V*X#xA(?34Dd!aF@w9XeUIkKs;!G_8EaUkJp)zUD@uj6(VRei>hq{ z2acHRF&Qc1b6QOBeHAc6uPlpXcmzs}HIn)>3%%Z{Szo=-I>B{$CAN8-%lddd8mvh2 zLadwT1WgLR9Ph>ALxWUp1PCxe?%=esFQNIL|CZ(ZN_4u^8$e}pf9;#G=N&eB{}X?V&gz9+leRcElizbSMZ@=+kE%JgTb zx}Tag<(IF)N-CBD@6Uz-R4~NCg~~$jvFTyD6?2Xph6W`NEn*d~Yl}3FoRyyosdzalslOSUWHH zCnw-;aX&|M!y?v?u-~D(sKUOv@>CYgY!mY1<97eQI3iM-M%HKH|ROFkiNsBL^^wz%Oqq+(J7VA(5ff|jqPPO%G ztj00dWVm#Idc=avt3obvVSE7$e9wp~9_PtSX*l8o8{#6F(EGvBF@hdm3wiro6-1GR zp4=LMF)}x;(Pa0Wk#PLJ8)-=I8T#Gj~d!mhN_uGJ4>dfOBX zHj~D>^#9YH$d489w00<*(Q_5f(lyHaWhYQmES|;XV=kj7)!}+>ZMD^L^rIiz;Hsl5 zcRH6ZWjbGIV!}-6c5YMdIHll?QZMJh*N#@?UzAW0Cg8y`@WFrT@7v7ZH_tG#L(jlR zPwy|cE3Ypi0_3Dt`M9<$OiZx2$1nG%$Gj|7%&VKReYGDawLMC2PbnhLDUyk|JcAlF z0b}Ti<$jc(u`Y7oB-&SR!21Qy14l-~bO%9gCvx*tn_NpdQ&J=r#QDUO&4r{I+pBSv zwnGzdXlTA*KlTC$Zn+u-uSbtuC%tq6cL*#(Z{4^w#t*+v{8q*If;E}SsDAfS)b{P` zA6M4oo-XHmQ6(%<4JlsB-MNDB(JU7Q*UbBS?cd7%QSuFPvzt%8Dat>Cjmtf*>W7lx z)rm$oXe<+FRKTAYY0A|Z_p)4tdR%he#&zGCPy$p(OdN~}-Dg02tm60>BO|@Ea@|*- zfLW4x*GZjx_6!E}N`FUF;C3xV@%_sqU##GTJX8UtR5h4=b2)wii%DU-M>M)ED4Zp_pub}pCIbI+N! z5JoiRNxC;WfMi$S8x+{4g$E*@!=E$XT26;@CFBdWD&PSkCoLc z^Y~`Q<1J*}x*D^Sj1^uAH+~4Dw5Gil?{UIv1_Qm_D?Ah7r9L!t+;mvVdKAwBc5Hph z(lD-}9b&_-MpkuT?lVUFNp_sc6>y==ZsSydtI`GaCW#X>R(x>Lz4C@@YNLpT{U(<5 z-b)<;q2M&(y~2c4=LX@owwc|7%g_zpAsi<5P%WBPP^ScpS~PtF9!<)|Apn;XU_mRW z3`5Qh7|;q+CyXag)8yS)T}I8tBFW4$Bc7eS*%35Si>P9jL;qXgcT?&1F(4U++xja= zVukHQUDS9a6W!Se>=7BX*LP=bcJ+l_Q0g|pg@Z5-orQKmTVGdUwW(cP0KP&S_P4VQ zx;plZk(CPt&}8`GKjejyG*=jRYL4Gbt00zg`lrm~N5|!!7aLySOuS5h{+0#XK4@V=~Q`> z!+bF&=IStoTSfDo#UgDzice)ff z%~h&*>Yu9t$9eEsWB~Q_Tj_51kD9z%;V0THm8GHz>K#$HaNdCp=c;W1gF*R^iR(#t zT+&QN$Aa!$9*5$Bl`R^R}h<~UkJm6x!;;#fG0%i zY)g!_bvwJ?eL7r=cBdFkoexziknvIh%f->o87X$)%5TF}kp5NB{?}1~`N>kz%bJIU zFgCYxz(BAwAIV5{&}JGs<1vs=_|!6(FMtT`_^w`-QLPU1I*wZ$J(PXpT4w}z^vN!U zJI*$TkPtwK1%@JiFLQtnvWJwuYp8RecKM68LRVo16Phpm3>`E=%+=}-mHaOI-_pOo@6?1Ur-#mQM@*WKm>X+ky9?Zi;E({7lHmnCoPPW zPhS8=>Co}oCVgW9QuS05EgsgT%a%Sqn~#Dsnt#uakB^h276!ajxo#f=9oKbwe14vE zwpwmH1{fQDqp`GRSZwIW8fy_)oU|Y)$QCOdia-49_4&*XQw%Ms`{ArtQ2%k~6o|31 z^^jNjvz+JZW`p)&TEB;2|0Ek`=;c7;Z%Nzi1z(^qh3XdVBSbRIK%$vJE*4EV^etaM|t3^)gMx<|7mEIBUzCVr~(NL>S9U9c^K2htosC zHGT2?d$DP6bE~%85%~Ax?uTYKefRshqY}@$8$=EJ{YQ_+!=2{+zZw}9C>WjXxp9UW zy-t4K^eeONY;Nv>YP&E9I8K{&H|F>Dv1CN9hDe<#`5IkYQVgBp0`3IM?af8|AN;n` zp1vGhrP?MHMP}Xsl#~8BB!@K&d%E$YO`J6$KJeX<-0uEoxJQf-#=HKl^Ir_=PNo4) z?)wy0Op_#zyq84DpP$(rZbXR%hO!-5Z%m&N zkQr)Sc}9CyuMR>%UCN!nBrG`3h5`%BWxkL8}RS)(TCy*U~&twVy4)L@7*4KvN- z_tkCSSw7${sSZrCyt&50NQZT^q>)$%fA8nfJ>C)9O2*hj_zCjB zEwgEii0E3vA%`Zk2FhG)D{Jj-S1-vhs{b0O`(xU#5q7&2n;KU=5f!)=G%NjfMR_=? zgyW0e>5jY|M#+O21;yS$sLvMK>!vL?8;O?2uQ}21-Hxrsyjjm7Cpzgep{~TE3_2@( z%y9_gbT$2aReaC|=a1Hif&<|b+_!&DoiHGhHyiDObQlctmyRkZ&&cSBx#0H=bEqxi?mb(z33g94$Jf>WNw8dlYTmj%w?*GCLgSL9G%VvGl`47CHVCNZ;^(kTvcG!EBE$SR1{bgv()zm zTUx=;Vr>dkQ{ft%TqG*%j3A8JKOxQ^@a6>~uJ1<2R377&7i+VudBYxFmD5LIAiiZ( zF(?E7P)kTrT5Hp#Eu}TLuwWj-to7NiK8_$X%>P)->&+8>j!F>QIfM&x!7P<9D?S>` z$@R4~u}OZ8sF+qTO?u~Anhj4Zji+S*f6|EJ9BMo4-j+b#$gQ}cGfl1LxE!!;rpe@UJPI)K&Kc;rS$!nu6?&bi}ROaS?)l~zsp z(rfIW_ZIorvyd~_Of_!l$?%;x1g=rcQR@I>cVyENQ@zFB_CO5@tNLz7*83Ls@6wln zwC9_hA_|SDS#?d8Gc{Ur_FyP~W!qszO3unaC)<@~M=9CuRb*JL_HWT%vjRYDcJMW?sUs*!*Th|D7juEb#c#SO(cy;jia8)*3W?4-yPM&1pv6jg{T)Vsul zXcT18+%rIOv(tG}>WBM3Wa0a$5`q9uJ+}hA9K?cNSNI9{5~MH6H>N|mofjRa_=~-G z41QbCq%yrX481Pt*6;7{$Nxc?XT}+5GMJ$}H~l?*7CSfGr$6cM*4)ccwI9B(c^~E- zj}SV_U;1DALhM`DJt~nM?TO5lYQ=1a0*e7ZMplAVbcvjy7-;!4gTc$kYipZLXN6K_H^%-_HL2lYIuGOFk^ z@%uzh0`A!%vI65Vh3J3#MJCl9B02Oa{*VmZX+;%Xo8+V2FBNG8z7WK=$ zP`42JF-?dd)3QJ=ZceT2cB)OMcBD!k{O3IJG@~$7HKBW|kIw6=;$3bE#D1rNWtd7m zlXepT!e~*UgnCj5rd4CoHyoJwUS7Jm+V&hLo!pot`%|NzN9Zf)K|>j1d#MRFhqD^f zwFiBTP9bi4tuQWX7Yqr1{LVEHc3Tgr*W~WB`J`vQL5|G6~9dm$ZyTT6mIWX&2T4>3S_GX5U!69?s68V z5wCibno7r)ZN6?@mO&&WX46B`!zC$FStH1r)o@!$c%#inK9&Dkxs@ur8kG@z1799fTY1x3aPkYqx7j;E5Y;LN&vYKP6 z*yR1~@Inz-0)pEy9_1RJEc<3>H~M(zxEwWtAd6x+fQmLF#D z;(x@$dM!z+Z-(F^(b^LqDUE7{s)1Ir$Pr^RN7BuR74q;D3k2U(U;tCc^}+BE1_Vbz zA%V1ivcT@~({@RH1aiiTxGoy0pP<4t8_p0HVq}LvUZC9;_2$A#dIWk1zCt-{QVN6T zvNx(qvN-h_IlnTGcqOrbXK6L)3&GaXnC#0hX_A1jd$xo^L=_x=x)DI_6{J4R6dv*e zO-8$Isn95bJ$@Npn8(6MH2oIaxAUL^o9|1+gVu<*t>oS=|9ovkP~yWHgj~5vL1ca$ ztyGY9Ryr5rf%8DSRHU@PJss8c_DPa!WpYPx)L0;mw78wORguHBl=W+8Hm^tR!AHF_ zw&6%;n^6X9HhN_*2jPS0kkJE7n>R0>J&CoHs^`7t5E~sE@<|&1>@&B9&Gv z$g84}WE@T%52EhmEaIayoayRE@s>mL zZr298G?#}g+aD0v0ip@I-`ixYG48mhH01HNF|YBbBXd6v1zOz7HM>935yCqyFMH-^ zm#6$c70hr2Y<@nqa8zB|3`#KZSA)EofXsI6q1oUT%qP43UAi$8U9?pH7qgh&0K#OS z!gJ)`E7AZ-lid3{y=cmh`(1`n*kC#0VBd>&8vjSnK+l)_%jf*Np2uz$FNuto%!#M} zOvFeMWKhz|^SIHi&ExHjBrG_QuGD|^0!o@>5*FK{l3xlZm|RgTJg<=B{4fEA=&^Wh z;u~j-MBCTbY;7rdPCUL9GZSa_(hg)@cT)dYUY=>++e`rl|}{p&y`F}q;C#UvzW;Nhk< zP?eGRIso8XMD)QD!AIzuJ_JW|aI?v#=GJoxaln=n1#r2IZcPc0dW(U2vvzA~BkO-# z_^}$}DBj-PF@A=(g76JYCo_}4Fw=>}ulC0=YcFFPCJ-=1MyqP|+fd?jmGlI+zBO)z z-YK+GEw#9Y{Y~a%{u}^zNNLPZ(NtFmM1*0`b&epMoZ3T8qSdn(#_c+%L;Qi$E{-gT zh)73iq514U1}m2KN%HVGB1Xg3{uF(IWgH#o?77LY-R) zV>UBvoPO$l-;BUFk9MdQH1n%>`M>z3M!3)ZhQ%UOF+1EK8kBY9+N%#wkZr(XC_eK*KfcL z)6m!D2PQBkmdT_T*z;W`WRV1jI7QB#l$tl#|3{@JBWH=-b&25C%jZZP)XOG2@!!4q z4jmvy;{Vi-&e}wd$66dc%Nx?hgvW(xFGBPk=X#Nij~iDjHo;{>23Jc0V}rq2%1E3; zCBI>#a5ZWTvi2K!ndBNRNgl_!3kl4rHxW}oC!h-#brd>~tQaRlG22yC$&^RLpVxA^ zmQ^E$&zBS)6PAk|#y$a(6WAb~f}2eYgoYcXUL~A2~q25XiApz;|*_vD3DT;wZb?;-IA4 z_pmYZhT_^o;DJJ+rz@(rM`A}dq=e)S*MeH6*>kdRw@BKFWUT85qDWS*y)uS`5avURH23wD5Ur2~HCior0ou^1p9rLI=u^2wISBOy zqY_;x=3zb9S53|4Duc-;yd$UMtcX*LrwxD{$d6goJBE4_6Q<5kib>*K^`N;)i8)Gf z;9}5(?)BgvEg(38dTyGyQ=*ECi#_S$V{$z<=|~bhp*Z`u&&Y74-PW_?`5*^kxN#qK zw+~MuCip4hDaM1CD%WInabY z&K3Y0DttA>#jkR9=pGJ0xxbJg5!c?0UWsKc<88=qk9n62{6pgE7>@GdUgu!vtY4w* zh_WrSW}1mKv7g{^GKe*?r3+-F@V-Mz-j>6<4eOIhz`xD2N69gLxaadOW!wL@+8l7; z?Zu5{5)^q=T7-|RN053ucr}=yP9d`DqVQyNMEa_IZ!ikI%xJrY$S}zPtg}$$9tL~^ zdNZO%H+JB*(1SM4#}GyO5lYjZHdLWLNjr@H}vA6orH04vt>#RwmHeX}uz zV;a$evuwS~dH*|0Ctvr+l%djI&F3&);@B+zOQBEX##A?rRgNTAMc(;BwoB4#2(rXT z=k0LmKpn-N+9zb?|7};iAiV7ScLvKkQ%l?;geK<)lFj@a5`nCY6to6&r274d_( zkVRJ_KgBjX7is_gHcoK_FKgHU#?tntPc$CUxV4Y&Xr-9ErjKl!#$Dg8!Py~5ik&8F#1IOSt8>`g3Kh*9S{@szylOoZcRQnMwKxx^|= zxS#TMNDj37YL6f=nV@7=vwuj2hdo+r^9!d+fv^d4^Ash4+xE@RD)a`C@Hgey_tc*! zg3QbV3VR7G;u(c3o(qNWn7f$2$Vd^}QNn&>2+AHJ5jG{vE`28&8ulvc?Q;Iwq_-QX+x!tg`lSzLL>+aqw{6RkF5FBPcN6hW(ijuRcyhE{Qw`f-!G${a-9U> z0HZa-$}E6H3<@cCq9I;;-rG0_6Hy`$hma;Y$5($mM_B;9SF}#Eg8Xw}HP*R@yN4tv zVwzKW#+~h4zFxsxGvYVjfJmY1l7*uEZ==K1i{4&r((H90VwgL!)YGBk5-}+L(P+8Y zA#!g4@$B|%{1iAdYticWr|}4{;ROa4H(vTz_(|pWKgjW_I916K{XJwZke*_)sIBBV zR|AhdHn1bI7SI}0bLhD={JD`-OUk#2N}IptR8Q<+iDQDdfEDryMEnQ< z!z5U)^izQLq?Os43^slyg*e~-Hd-^cZTI-(g!;!C=oK6Z7ptB z{Fw=1G+o)?0h7t(wWYtwcd@1^4b1BgtsCVKYE{`Pa{qt=dWRda1z|@$iqp>;5c)e= z{Uhqb6dxaFxjl^;pYdYPhQ*Tzq>o6AK#rEYPDt=%1i%rHD51EsUT96jyp~=|+ZX+@ zf0yqI*LpNdbQuN3_;Q2d*LfZuGL0;0J&u%`j)#uB-z5oUDpv;P`mb3Q1}6Z0w8^w{;4do;2*`f&6`mpuCv_Bp;G)rI6UG0&o(JNxR&oUn z9{(<)=?{Y^2!o3*J?JiCu4ldiNYSg9nWQooq^^|%K1X#k9Bwurbuk}k;%uh6i1avzV513El)3ShNHYb=x34m z9|2yhzv{lUjP$4q7O@UgC^3P0y=UVmOo^bu*c#}Zc%a(gFPcHFH&3&7;l4_xMca@` zBnrxf24A(!=>7U$;2gjh{XWk*&OMzJIZoJ=6Q7hsZ}q}^m_Gi`yA5Zy`S_L50Ce~( z&=23;&nv3qp`QekWA%$O672owmR%p@B$V?N(Rhu}C8*PEElU%J{P&k2On?HdrAYmZ zjXymJxd4d+V~!*p=W&6KH`~t#R~e%&{G?og$J!90)w*#v!Tay5qjq6~q;V{E z_30X)V}xjv66rzrC?4O$o0K|tbi5x})6E7nf<0bQW@y%JlcP*O;(R7m=X|-3dguM& zqFn90VzL!;$EEaY97rM>5kbO4Doz4#H>Y@3bSx7Ge!zL68vIv}{14BUK_Lj^S*3ef zZ@=a_yf7ag*ml3LI!Em21vD9~u57kN8eo7)ZEA_lUcYe%4M!b*Vx8?BPGwJo1^Kws zuINXmJxy@uAxheNzlZ*YGfpy>rT<^Rk8((#4Gnw`^E~rCl^p|LS0VR{hNMK{DKtuD zK!AP|7&dZ+HT>jP#pHn_>s{h2Br%vguYDa%tJo2cQ`cab3LMyF;w>=t2?|bWC zZn`Cg%KsC1#;7t5X*b&d20AIZ(oZoib9-{k6kV)sAQ*M>88DsuO*pn$U!-nuF5Gu4 z9rk}#wk?ZDRyufvXixSHd8gzs;B0v*e3f4sUJPN*;M)b+66d;f4_e6J87`2sbSDP9bkF( z53o(JuI8IrT*k(I27Ip?)H;Rs8$rg^LNz}SxY4(rSTKogmMS6DxoR+H4_wVi1bQX^ zJw08eV+dp`zFR!utWmrtTC-22GR{X~w9|$ze zX1U~r2RI4Kc6gz;mBR2jRACEAeoUB{r6rpv4a050h+kqn#~?T?q1IP7J5oE1|bo=UW#4YW;(u1*aZjLR6+P$e7*^H+ngTMYb1xg;`Xr7cJb)bdDC=pb-a$5XVLwxuPK_`8TpD2 z9O$DQb;j%ty^#Y;9{|D_0XudM78EFV4swwNevB||C~ITzE$1?tXbwsl`p&Qc-dsZ0 zdnpJpQc*CRa_U(RoMZR;0xf0z)$af?Q1CR2cnUwoRTKGMmb74fbVX?lA^4Umenb98 z^X}V}acIjUI-tDd_J`a3H%-aC#Hgq*FrQ72?<$ix!$mE!X@#T1*5syZi`yLiR&@ch zRb>(&{OoKh9c*rjG*KrGiPH3TPGPpRhk2gwx(4pLFTW%I^2CIp2P`#%S%=$0s0%FG zzHpK09G{#j4N44(4HZZyHpmAs@Gft^y+O_DgQGcxaA)<>?})*l72|Ttrm#Xv%NEM! z#oRKEv-n8lb<_-%0ukEM(e?6(gaK%h3=?AlnY-7s+njzUpcC@(1dQ)_p$J;&Qs+y} zLPA&jECS1d^3A1m4nHE%h$&W-^liS)hrLHDQkWp$mLL@7U;nB1(8yBu6h9+h`1Bjd z$bO?{uy=48h~>`-{PFL0E5+K9*rM;Q-SJ`0q9lzr6H0~Z&+mfpf3h~Kc>Gj=_A!-@2Itm5o3zbF#Kf!J#ooP$ zyJkmkxsIE0=Eitk3n)6Vfme0AbUe1rtyD~(m&JLOo4f77wxcnv_rswWdJp=lO=XV-VwAz`+oYJ!seYqjy|*Z z|8Z2L5hf{)ZuhtQz4yWwU8MG9;WQOVtU@x7Sh&JC^9OHZ(B1^RU9QzsiHJI=+Y;R4 zSQqxp=*NoAf6dlEJz%f7aAH4<0Xf;@i*qerY{P!i0G0Cd-o{QaO^CcgPWk$7;6lr_ za)1*sbO}D0jp-q;+5$gMRtKMx&51^|<8o`SsGr+y18#WE%H{vm4xg{GUsqQXsxh&6 z#l(JnEfQZrsM}X^U|BuBj}shjQ-t&fmZI>LxK#M#zd#Y`dDpWdRa%l8ilSZOPKjd^ zOOx0TQxw)2DpmwtB^A(0bN7no<7}xA&`E!khh_tV`Zxs*Et2nnGf&7FF1xG~&qxV< zR8(WL+id~*1=P5%b`SIkNZVwTUv}$E!d(>Ru4u(S1Epka9u@v#*im)z&<_|F@wAGD zlvmA)Q2y(x-ysF^fCL_h=?XM+epetxV}=MSLZ2lp*(LkDQ`xvA%fRk^JxC+UDY*F#>5BU$Ua1gUTz`T>b&x?susF0ZafstBX>@&`1ZJxC z{n?rdrzRkGXa$zBBQIf@U=SbTL4}hDGx5$x?DK&LmImTfnrU0*WllCY0c6VD7%1V; zk3&*IwZt(&i&(2+-SNRaSi3TI3CeDJu-o}MbKBT^^K>J@S0a`}-!o&Vz`Jn>CM%G; zc`KirU((`k3o=-F_;&4Y!;9tXng+p3#==4`Po{w8@7TtY@Bo#Ei}gI6cI_E?g;Ks3 z8_A*XUd8q8Ld|48Dy(y1LQ=Y_jP=O)f!>u=4zzKCv=wXTN2f8~4?ZN>;#K?etB{n3 z%XT8MH5YzK%51uah}V*+_usL+!&acqhcm@m|M%0m!|YSYb|}bEyG-E>KOgTaQ~8P- zhe-tl^nA40A*6p@{By3`@CoWZN6poj=7F(n)|vulN~yGGqldH2mS-SKrKXjwtc)}G zYE0;-O;emucQ|_rf?qmbK}grqCW1_c5_teQ;z*yUh*`i3QJ%>zg-xd6*G`tzyb<&s zBB6jKI@zf$k*}R-e#dfxZB3=z!mFMavg_we*6Cvc(4p^@u*NaMr7g`XJ(&McuBzGMgdo`|$vZZ@f1{tkBI}P8`Sh@_b8rst)2Z@Gzp0g1*jpNB$Pyj- z!Ex_dgWK{qcvbi$5yh**=JBP-hv=gK4Do&4qPBU-{+(5v_mpW*LD~;WFp|r!r|jr^BnDK#lMjLp=wyH41{rf z!Bsu;?!lh5XS>0+KasmrNxPiop(UBk(EJ$bxy!3rMyIt&$>FH8yxhH90f&{cw01Mr zxEkDKGU_y^mDHO5&9=WO=U5)nnRwz|1DA@6cpt?sHutrwOj2-uM_WI*-fC(J<9hP9 zzeymWL!!TC=s*&=+fM!D`y?`>e+lDkqHRUvt|vX;(uGYSU)*9E_9zL&KDHz(@NUG&Ln09Zh; z&m3idOo2gbY+a&Qcu<-<#W*5(GUgS*esW8*Y1qAr1xbZwQOv@=dZdkZuT6eM^?x{0 zwPB$r@_Nk(J%Y?|OS*EmzUK!_1pa@Vz4cR@5B%-fLV*;D7I#8%cZUMOiWORld$HoK zf#MFu-L1I07xzLa?(QzZlFjEkv-`{4**kmxgd{W1llM8VbIwwyxBF79shm&uTc)--3*0DV~gRxoUXJc5V0Gi89dIU$QGv6 zGfNDFBgj$c#paEfLH^?ahcB1d<3WK!+&Jvz34$rGg7e{_9uhn zs_}T-4YOXW!=frqzB^fb-|}@ITO4XM?!W!M{p{@QV7td3`Ovl6TmRY6Q={o|u9(4- ztHz2)ZwK&l4xbov7bw(kcPq-UYqOF*OZ(ypn9R%ZKJOGT5cOGgoi9r1*r6M-mtgyq zki#rSwJm1ocl8B}Qk0lDZ2RSYohmb_Qn$I-cDV^9#$2Y?(C9bTO2T8 z_`u`Nb1T(kO8?iKiyma`H}t+^V$%XGd)2Lb=~`%btA=6UCC=<6mTd9KgIzOnNzY+q`CwEOz-atU&B@|E!$E%&LR?6rk7{x*YW zex&JOXhyVc;&njJK+MMhV;AgCoC)t4k+qfz0@6IlBvv|$ygWSL6{j8BIxM$s>^Amn z-ay_NR-%YIk?AeddvtWAf@7w7lDlSA$gcQPJk)$I7Ay;JB^KX=s)##vWRe;F*e9rF zYjM-N7V*eQoL6~~8+fYE9^q!$9O8tEj(AP;n<+O|3+~P6aQnSHECpkteJd5G1ie>_ zL!C=A_H`vS<8S!l8sgfzt+Vg>ykrwRuAB(b-p#O9bDAX8jC!y2%s(<>?|)9NX1n20 z#X8DGS22hbykRX&^ca%4b7Muu*;Scs&>Nb)p2v&{@4*hrKl*_ zhVsoGBcGh9F*%r)>Qg^zc-O_x=+r+k!*5p7H30~PT4$KDjWYY0G~Y6B zKW|Kyq`Fj8UEgnqGE!53^~hyd8Pm}Mf7%v)zekL-FMgPlhJxyc^-$XUYEb3dD<__>ev02fM=8g5#{K;m^C&~eBHjWs&Ea$3(_`*uFwU$3>P6cIajK((wW_BN& za>caXGUasPihX9A3x3~CTychi%yeO;AO?z0vrritVwmB~TSK@q-1Ou$NKx5mDnYm< zhnjiV0s@cUB;1;t!0E^ip&2M!xo;M%nzhCzr5%<=ov+?kf2 zGpN|nqT!=S3Tt;w%g37}N06+t)oUXi-0p@8Y-Ht%T^uflP87Z8-C+QMkO`=3n$gDr zbp<1)Dvn=AcS+sC&_3N%Ooawry=GUrB+_t=AtYpmAS~E?NN%Qo;WH_f5W!ZnP(RI( z3b`s6IS`kwBn@Wo`@nXnh%HL2W*im56#@Nj;=^nwT7Ru*b)Wr$OK0J8;PS&5E5j3D zCG&>ouSAc;-bwhdyy8ha)?5!l(Hwum+oq6+; z(b@fR>*c=auvH<5snW{Jjb7|+v3{2RMsn~geSI-)tv?|dv~971Zg_E}$hDDDzp0;{ zX(#j1_Q%QUx==1XYiu4Pz!`?HP#vy`gv4{gn5Qw_0aHUljeKgDs!-3-8ql>*OYuVTOF+d|B5-v zR6!yEs)}1|SHSCx^zbgc+cfN_SW~~6vV|#QbZe>iw?q*X1cUvgZ^y2@M$}4bP_CnL z`^SSY=lXOrNNg>Se<(MQ#CwE}-jK8^2K(?TkPyBmz;&)7Zc?w+&_A-Yjcw`ISC_{3gK->ZQIPua-y0OC%|-$N zC-T7`s6%s=>WQUUx@EzDuaOljL+4&;TPe{pG4}?(W^J3r8IWiWZ_|_|~^ZJMX<%T8|dDjJ-PM4cY{2n;qW{-pR&x26Er|5YL5A7>#*amiX z(o5y~W94Cq?@`H&oW$dFA*T#Y-@}Z^`orW+HSAw^!0}(tE?``>(Jlg@GgJ?9>?+Ka zRQpq}9HGRoNRVS(Z%uZMzYlHwb#oc(C(3k}782Ve&Qu4zmVjRm$0yveAXq&G|AB}2 zRNazKlUcSI`+TueDF(2sl#(3SVa{GrxAzqDm7L#=+@XNqwZPP*&o;#nz2jX*cFcYcQx%c{0 z;&Dq^${yF zJpbXSc>6rZE;@x4p&gZ5&~xPX91C|;u}3E+$p4RRm)O@yy40I!_8t1I|9Fb+2ko=+ z@Mt;OV(MOhIdcy+Tx8twuDZXGrCk|1dwnWqD4f$RWcUzoh|{8l3xEL!nTF$7&c@Dn z$yv4pX@|8H5K8VwKVP4ub?EvcGDEf3h!@&3BH(;=w()0jg1sjx3tPNOZ^TQ`QSsUt zAVM0zu=XJ~T9s3nAnfCF&>ZR%<|z3}*SO|x(2m&rwfxmR^o{$XsQA?pcM1oQ_LJ4( z(ufXtvb?wh6o)zDJ2|rQx%gZEs0LNzd3usXl7ykP^+OV_hHm4MzqA8Rue5jtxn$J5 zuVF4_c=ZpP82*~KcJ^JAD|3WL+&NuZerjiq4&~FBVfX6NMpj~ui6T}aO;*{iM!q3{ zv5#-BNXU*nHbt)+gIX+%|K+|dw{mk6S7ujwZ)1$bH79jpI)#*%`J4rGuzKqh&~wV~ ziu|pmO`)z&%Nf<6-o}P_EN=6x7xGa=*3#bywZt68y<;!{Pz3Ng3CW;?8h#B^{FEl;^58vPBNsHKZq57T9(~}Z~)pH zp5a)D?};Clr`COitmei>wTY{uv5(IDE!W2_F@C->QyCjj2JGEK36!c#n#o*o=8Uxp(;Aep*m}R`B{xsfsSU|+CGp&Fo;(4rb~Ws%B|?(qXeD7yKP%@Fb~^hx{;pJ;Oq$mg zRCXde7tg%A7LnXZ&Ca&-UCct<>N}eg407wW_WPg99wI;<(|IsbwQQEj78RlRdGZqJ zA`cumNhH(Jfa}GcPOjv#qQ|Mw;0&q?IuIXuVqB#tE-sH(SUg>4IV?M{&BiJ`LkL%& zQs@TM_SD5e{b!Nz$Gyy)hlTYQ0M;IK2ph}sU?J~c!*27=!?)r47_*p+J62#K-P|R& zb&u=Dguo!c)6eQ{MVhJRzjsJj3D){F$!0Q=8kS^RiF540$%YSfxn8;r!_E)B7)w!4=T*;jS(R;enz%<3%Wgjsv?K=#8-c z9l?SD`axUEp1US6m;Gb19n4>z=8LABW|{PJ!<)VQ)4pW2bdM`^HTjjDYg4rf-P(7K z6vXToKbuB9RIxE>$v03ZF+C$1-CP2OKZfOy;)b2JkZ)>Ou*CVOl=S+7G!ZtcAsAm* zcqX~Z_YYxJ@nP-Ty(~rrXpyh4ox# z{J^bTePIPwHBfaxytd9x0U3?H8OPt$AD*gTKvsp>jPPSKNbY$0uj0z>{o2zd#% z$Wq+AJ>|Sf{qeZ9P+6o|x$4)oi@r8=ds4D?VrN2glh2?(+O9ra{9Ieo>U#K|qwK;i#+uw!Ktn!hQNn7dv(l;4h z>`%}=71W=~L)Pt+s3yR4Hks-nj;b}ct^3})n+VsS>^G^Z#^I#MxsqHgr84}b8-9OH z*p4&ppOk~a6?2-Y`X--x@3z_xywq%;Gm!0i1uyhFOz~xUDS_YQWH+$|bF9Ctu2XFN zK7Uy|$DHhgXgHm%UBn{BT=-ds$SG9P0hn%yR|7sIwP~^qbNg*i8w93VumtF*(I!yTQT; z5A}nFj!Z#{i2kgLW?}AnNp7@$%#GMV8cS z>iDxHqdHaP>h|D62>P>uiW-|Z{@dO(!?ljR`Ww%DV{N1LVhAzA1aHrS_z>RJu9vk7 zUz1+vR+N{*$&Qlwn$b14B<5f8j}}<4veU>)Q6&i{jNQT~b(k46(;x+G`!}?$XXRmd z#kI9x9hBl3_lSgcJ>I;JLvuJ~gioi>3K#};evjXQH+BYZ0}Lvjeg;#Lt#>TRj%t#$ z1w+3_a0a*9r6ny;+u>!-0!>~ILkV3WvwYMG{-Wzhi%ngW{>bgJPNJIB4c8&QlXR!c zN%`38LDVDN1qEW0#~-BY!8)JCcqNg(oqQ1r;p8|n!{b4*a+}a;ACAKqj>PK7?0hd5 z-$-MG2KYA4bW)scm2}zSSsz9(mvzAg*9Z#Z!^Lo8k*~#O`nP%d<3*4@YXCim+W8tI zctU_A4nY8EeMWhu0X%#%LRi#PQ)PRJ=7HFL&d#L80IW@pU~H zW3#hL&dkxMsHzmo>}gy*0i8vZzJ_H5&FC4Fs=jw-B!B2G{br5la&z`W=eAQS2@utKSoW7J{;r zv?41ZYsVRnEMQZUMkbUNBXL#aa`cD*kXY_YR-f*Q>oS43U1|I)%vm`b;hTJ?$c|k7&4?~CyStcYZacm1r6-BTqK!4J+ zK^+b8ZJwM$DrCwVkbW(lutzSruLTc>o`WGCkq?<>*%n7FLh5$rR_vIxu*I(9qXvun zY?rMa$E9LJ)TVwPB|Mp7zL}mjDU*0N!=_kI;@t^W+ru3$0L&SZ_icbQ=wksWPZ9^R znj@Q9?u9=V;Se=mKkUQrUyxsfN)#q=)A1REg;II!jlwna6)-gjl?zJ{m1olVF_;Wd z6-}m;bf`(Plsau}{%y0mCif;kxdH4zEe5-wMFbR#`%ylkpx)kyi1Cd|>k2^rQ08@~ z=(%bexTpi%_)o*JdyjggRBCj*SXwOGsJ_*h^#dDl!dAUjxW zU&jr_Vej~o`O7Ow?fmiK)rw`wFNnQnY;$DSQcS)#ZeJ5SfSJO+4&J*phgjOLcXgKL zgni2j+g)n0XG+yh&5-;Z0I>T(ZagY#?L-gqqAe&f5!3jSu~b(CzUYIepM#|&mWEeY zEO|2X1^DOXjcohrPqB5cE4XbPSA{SPrB`L<0)e6$n`fZ}LHayAvZp#K-uIo1op*Qh za`=^$zD&5yC^Zf?EMf1-E(l~rbhTyr>9JH87F>Z1;^zeNS6y!BwZScjc5*!;91!_o|09;xJXKx20qhZ-B zN;Z$I-L zc3M@ORJxAayN*f1iyQV=&wbq=R}t@LmptqHR`T<1C=q-sfL1}nqw~a!Lxh1lJ|Ok{ zsq4HvLhtYWe`j*>TLV3>t^*Ky2|FmtSu(5hXK>WbRo41L*3@sgd4K536$jkuF}?aB z-Qw&0A|Zd5>eQ{zu|?O+fg$=bYz!d=9OgVH_|>iTM{YqM zZUl%1UPa=<4XOXm&7o^5`x^KvKqJ&tp%6xrxG8kt)t2iJKx`D-LY? zdrkQl555c0wu@L``O-$aJtZ$6Hy!KgI=wO*!FGHfnW|76dL_g1#&0$g<|lUxv91Bj z#Im694O1yctjUe5Pdpv6&|O?Kkcyxl_`-TqW`kzfpQ^J#=@qhLFbnJC9l7Y}MjQlt zT|3eA10AyQ0)yxTif6~w`fg4RSXG;+jr=)_+Cky1lMYUEs!46VsPp$X!$Yj*1*`{* zSA)PYT0)5@DgBQ@N8AEOL$G18LE(wYMX-$iC=?ZrBHxes%a#nsomKK8E3jr+vLO}= zXrL6Mib|r_orlxge5ZIMknTTg&DzHgxL+tYdVPxJiMWC2W|w9=g3+G2E-Bm`?nY*aguj%s18NLPDP@Ck?rICzhNBdz(I#l+PvPW}glNNixIy8lt-@ zwlQf$cqR{ZO}XsPI(yv z=z9hPT8EhcIC{R&46>@>7vq`|#~J@P1N1xO+gL{8y+88K+*f!M-OhzA`8ZJqe4x$M zO1$Dii(+0@5n-J<>0!dz&egL$!BS<0b7T1oV8^(l>JG}u(t;KVXKP;#=>+?z@TQsd z^Op0lSnUk=y4?KT2IVg%J>pvVoWWI!OT%ktLw=chp`*|TB*%p>@-}|XaXT$ljl9jW zD$S$KBF|E`Wvf^oM44@pg)4+jwDD$z3H<(1YoEq74)ikqFfQqQv`2(BAH>g65hrT@ zJz537qs+DQQUK4)JW0%K2ahVBsK;$N`^9RWUCWIB;6;}eXV#p(HIfC~+q{qFk+e;b;JD0rJY7E5tynkxWvJLW+3wgs+H`IW{6L=BL zfdG(hvpua2n#nIhpAUj!(1il4n~P{=Y(_9PU#ux3Yuq&32mMp zWRgC`Ifw$_PqZeS`(Mj{bzJ-^E=8xoN&ah3ffVN<_?IJS%2j-!e!Ll*?csGa;ScYb zP8;hlvr{lmmY*88ZTqbIu={1Ss3To9Ihzkx^%5gbOg`u&=*c$oC7HsM!af%l3Cq@D zq3K~#ptyzX7#hwAseF{Zd073gFzyCKWNEZ>@-K2hOSho!<6pnS_7j(++T8PSwDJY) zM@iwge$pc4Mz-FbR2E7gnv<{8-_Z(da^A*>plY*(?Ixn4?wzDO_v}g&sg)5|dyjpZ z)75v)7QC;XPqlv1bL+(!{mYqBwJ7RF)li$2?IV6H)zb(*HnW0fuO61Mu*ZgaqPROd zpS`BqNuI%n*+sl~UoA|#++5`Gj(Q2iXT~+**E9f^w2i7m*545AD_%xBSLE2gq6I&o z?}C3vwGKKxrJCtiQ>&Ce>vxq1vBNq0qWZi`O~~&%)$Gh$hH9i|-W{D+u>~IP&Ku?! zxE@y?_V}0oVK}t!r+s|=UhX)vWeE6~xNYG}vA*!v@p+8bRD@j3@kTiW#gIN=p7`Fa zV6TCeP%rPCKB(1Jzq1tW%itmpx~Jx4b;RcZDPtXl|Lwv0znrrhSz;n)S&l2!`_{!H`rio}m3>@E=y8Zk>^g@Q+vJIEldjj1;owt?t%FXM( zPeQ<`lKT5_hHSxV;-TM+vWIa>-P+vhQ~zntJ3iv`3e$ZEJ$DTXhwj&%VuKH)_X)P4 zPMd7HO@(q)U>69xzI!(!DqersXp!OBb;;cHch4f-;9*oVTf;1l2oJsx`?8?zd8}I1 z^?2lhu%wmeTc+LcYiw-3`1V6&P8~6`>|d(R;lZNGs#jF7K0jzg`|~{2U$L~-PD>1{3HJc4243H-@vm%rLIw;gzl8DUAk&1Mc0v7W1G06(E z-ZKc{yC4$dKy;E&vuLqXdS@rmvG>Vy&+FI5C%^O=3kEK{(=!1Jv=Cd9<;65#N|#KU z1vpFqC$rh@@d)du-?CDQeM~modKB$n7MAb8z)959p0E6k-R`+zv5!+3=ri1f0Z=oS z{>4MKA00;Fq8{ND@G}OGXE!>bMT=o7M=4{=>It%dSLoNNL>aICi{3ZD3miS=45Gfw z(2OhECIeog=f_f8p=}Dy17tpYcOC=nAdwZqm0l60{uFYhtvEP3(t5wCB@cW-H+~b9 zIx`dWy-+5!q9s?h>`wO2WoE>O9#<{Aw3MDnZlON`&UycYf(2cS0s*;ixmH(pJbs`SbZR1^5sz1ahi}6kC@|Tq-fm9uz5!FYA$ntz znlSH5z8Ez-&ri7o>?P)Ki69|3NCs7<<_>3)#Yj9n%$4DZs*-(>aL1|D7{gf+ID zaeS54;P%ONHpS1N%V%P%CUy-+qjPZ16n7y}4o1lp=~FeM3B0x!33(Ay#*c+`Y|2Q= z^T7HKSb1i%q<+^II{2%urjUlkKq$IrU7H$9AGtr)IlsCw14ht^W z46Gp-krK#8-A_Q7f2aVVqfxfZJ3cB>aUO|O#t2Rsmo%;Y#i^i;D90eGVxPvn7k>NJ zCN~Q$hDRL~vKYDU?evRfdEv8i9G9Bn&ML;>z?SS6V(iq0!!?%}+my(}F}H`084|L= zuOVd|RgoFf0V|4g^(vyz4qah2KoDV^s$U|;2gdhJi)d8GZ7~*rm*4TNDSqR16a(sy zJkq564seHY;T*btf82=>u7f%$A7Yk~=<~j0*c3KVtHpF`TblePQOn+TYKrv0B(YDb zZsff$R$jE%#*a5EY%t7t?f7D#Z}QXj&Khna(UI=bz5k#OB}I zm)V2$Kf61iYFhIl@T;^QOX>e3$JPAJS<7||&W_D`mssbit-a!Zq|bjK)zu2TPr~g) z>+y6Qc6wvoeP_M@?h8#Ud`kBv=S2vGe+0Tz{j%h8T-jV)c_I2Np*yn4ppq$AveSnx z;iHm`YlWX#7n8yYk*Z<*gUiUBfFk_S5Pp19<=)8xi(P|93IJpB3vU&$#;W0u)g@F2H&rj^ zC2?r}8mL4|e!A8vviBh1yDczdA@Q`ReEhCAZ?VZ%SC1!MfglNlJ2NPZE`ji3u`?kt zzzpUQN9ah-^T?6Q>2h25jbe8LeSe+dz{i}2af`W84+n(8%z(me;+=QMLQ#Dh`4sy+ z9Glr(eh!D7$I7ck6zdh-ulxBuBHEezT-L$&S?@=N4#d&z`00c75c8uwVz>W!!Wj|b zD;#7p4peaHP(gLHt(V;_d4WJ{jy{8IPF-{$8n)fH=YXpy6&FN~Ms_jQ_og7@5%sBN z>Q+?jfLHkM05ht>=0bGzF6nhRhc7~d-!n1 zMDW>Mrj@j0%BMB*l2uOEq9vy__oCXaHrP(+(P_6$r~?{X31X-bg#TANi1@)NZGR)MnT#FL{wpox4(*L6A4Ie zeWJ)Wsc1!bYb4Xd*Wv`wkN61d3-<|uK@A_9a&mO#opClwsL!i`ZCpD2D?l=Q|330U zy|+uw9md_!!%TMO6u&{v(x0tL?4Jc@UMCOScAQQvfG6W*GoGEIj@54?ZFWUF&Jf(2 zd6bH-3vhM{M#EhUuy1HXu6Cnijg*s5l9o>`_o0%5Ge7v%~5IvKVWBqOMv)aKohOPn!R6Z zqoH)QvI;P}heYA1sxOXD4f_W;%32%9|Bzf+gLNPp%{6~P^i!t}oMnVOs%{?=LG&Tb zy1>>G##n_v^~wB_>(}EiMwF%#t%Q*s)G?X@{8{&D zI+N0Lf7BdyRy<5o)3f)9S|C;djD+Bz()y_GHZqz4fC`3DrGCU4L~%gg4GKtTD2Du# z8~vVL8Em=fu6?V^kHQ@yrS`s&8I5TQJ16EhEn~RomMx0k+u7K$cLf>Jm1!d zTEC1iWGf|rq7GJPh`?^tGqr|PTl)(vn4q2o;bDpFk6r>Z!6tD80+>&`yg_j9^9LV< zrUf%Rbbg-sK3kMw==KG{K3V(+YI=BGZP45?#5vY{F;2y%)IX(I8NivZnOw<`74*l; z5ymBDtvydB)KRB3<=;{!L#jO$xd-i}etFL4iNZ9MW|-OKXk|YIPy4&DbSL_pRK=F8 zcVD|x-@3oIWrY9Pqa@(*6B75`@>p_yIJ?O&$10?i1~~OhGBRBnfh2eU4fMUXEI`vwgMZ}oe0K?~?l)9`=9e4WUdHPu3$4+{_1PC>n31=o1djediFwNkZ@((4>=3X zvzXpBR<=38UJIc*lsbSH;(Ve#0m_O6Me+V`ah`KWf356v50z4b^;@Y&|a*;H+~bg**+vTykc z!tBMtF`jxyb&9@;XVOUbMiXPDU`dN%8E55Wr7_Y^a5<@}V=IEUrIEu{@^d&^FT73y z7n9FYlwS$RN+wJ09%k5-TjB@YW&q~MLWa&Vgcw#7?wjs`(Zei$XC|f=rmeDnSAdOPyrF7Q))J`SAYw%PZ%ncrZNL%cGaZ?d%oaTtk4kXE(R zI|TCl-(3J_ZLY0MK)n^GF*b``PvGJzeES{_E^p9=8}M*X_`#;&LM?3By8Fc$cAvT* zGP=`Xuyy#;VJpsV$Dy)4x^W=VPYeZg=4bg-co#xNrtWm_%UWb*T7g0&ULelwB*EKa z=blqKT~e=PGAA$%S__9z1;n>ED)XSg7A&_ zBqw)M46~n8`#lP%hb-wbCM^ENB1#E%_H2|QBJ>zE)EkPR!w;@v6{->b?4V!QHbd4q zOWqe7y|=4Fwa!mufVBR+PiI6!7y9eB`ZQiz9G}#}Zg?cFc{HXQ?FR@Dz?ek0+gV2k z0-eG(7{Gq{i(R?voeQulAXdPIm>>RU`aN7S`*h> zI}`n0Ci#}TJ_@Y9&qIDbkTF?_vVI`p=bjP|#K_*@&3~W%kmB59=o*jWhpFN5)PVhV z`pqLF$5YkJHQ#!ZUmvDG(B~PVB|Cg!PkrMU>%X3l7VwjtG}mulNLAXwm(H~%Q$KuG zN1SWnb9|au7)V57NSEV(DjTz@(LT=wD7NSrUN-KI{ewF8+Lj9@T%c^e`*#1`GkDB_ zibbU;Rx*vjKAXI6*8{gh)LdjZa}1qyw4&&Cs8Q+s$yZ*(k5ZF-fM?y}s>4pF{abmC zb6-$>)w0*XYWb)h)IB;XRkx4^s|+R>^QD^WtUmw7!@r{iUm_q)XY4vv0&mhvahdgK zC>M=fM$GTKQb*04-fSuQY#SgUS8z_S;$lwPfi{#7tD-~o=~DHEKn_0!3pjN*{;zO6 zZzn3D>;*^rUyxRl=FC9gf59iKQyYx$<-yF0^F<^s=3p6*JSC*P{iOi@bpT;BfIVOV zvsDn|9rs~tL}utd^9UZXCpmt1*Q32OKS66c^z#jF_lH|SYr=476+uYOEnq`_g2P*2|WA4t-c zEDQ=dFithTd#VDD<8mC!zlv4WKcZLvX>WExBsj**4Dd(UR{zx?j~}h=;G(xR&#gN9 z9xylYt7th~&`8%fq2Jb*DP|aF!w5e_SRN7$;1KSWv%&v5el_-(kN)|Mn2!B$gY4H= zYz=g^OHH<_CEFY}n-!MJzZrS1Jqsf;Ny&OLKNzp*6)^WZo@UDCgS&=f;}-@cgZ;Iq z{oKN2VKTv;MM8gcUROT83*cS$vu(i&&UB_&hs!#O2jWgLB& z(>3sKF=u=k7&=2&)1ZCx6#k%{{#}{FTr%YXk&?CWa3KzWX|)A6v#o&F_j>>x+I^F8 zk6)K_(z8DWZnO-;>`ii}fL&H*(dX?xhQe;Y{D@7!(6N6wYVJVp$Yb2sk}THVsNSTw zYM_2*yJ3wTl9Zp;5dPyw_iF_+ z_ea2j|L5Iiyz49vl^m-b5w!Zaf0YZOWR!1575s}-V;$_|Ty_95( z7^>Z$3lHOc{1HQuB0dsIisJNm_1d>IsxEmxXIr-}_Ue=lWQ(*tYIom}_qtq6b4vKy z_+RMv-~esWVDLhxtpg6Ow)eB?Hsf^3^FquW%gpq?w`wg%f>fLANjTu+qtrmqHzWZEecnK*yBh({iWw+tHQS;b6*YCYGKn0d7W95!;FD zxd;aIYM}LSc3ev*Lj-p;x>&j*X^7IBHA~nNy&KW>!!N^f$Mtt!Q7Fi?;#x-HMDoe? zrM*g6+q;UW4cjj!NyVJ}c%7ic>pYcD2l2=8-t9`C$kzr-E$fehjP{vl!TVsXuS1x7 z(P1XPhKrjfv%?Z0tN$_#?jJ>FSnNC58sCqUQ??)BHoCgIp{Z1*)l3V$3D=UYG91*8 z1*o`u&CL;=rs&=oE zScO998&a2+0yackZ3X`egOn&pGgGKi?SYAq+&aX#)~rY;fN; zAKYVR+UGTryhSh1hV>r5J1`$DHpQEZnfI|DH%kD`kt1yy`q9W^M98 zh%#eh@k?dSEwFjw5lnMM4l&pAS#Aa|r+@z5Nr7&pmy_{!i_&u^&KZbXS^eZgZlAea zhV3b%;U&J;{$p9lXMn{(Ei3!}>2BG6{btGBBwrard~AH*1TLod{?lzh4@N|fobUM< zho#?C2hXh7#g+P~&v8i=wj{e&Od9gTjhU^xXG;ZSPF|_M{PB^V+P_R)-pJ4W>XR1S>`M7OE~nnW+($QjRQ}5`1s7F* zEt~G@Bbo`S*GA-y$jUG^zT9`}`Lgs=6)BA+FS!4~0sLy9Uzp-cEs z+Go2Uw4rVskaMlxR<9cHsbe|-Do9lcAZ^1H06}?Cls9Z|-qOl0bWLL?AJN2q5di8f zVC@{b$uBztoH;r6*lLDCtb(xW0iS?6xXzX^Jm99ST83Eqbs``(AEO}+E4^LO| zsQlC(Gp3%EgF-YE>}%Oy+e5J>+H*OF*;DHYh*s2Nb(a1oIUI^x;5RLq@BDnC+3DJfRTL#QsF$&7Rxvnk z56PO{+!QT)M=n#~`<(;&@f?!?f+cb?D(vYPq(F*g_hK&)cdYo0)(`K0<+#*0K>*WN zHhZjz>9ONwwO+W>?LkMw7?U!ZxRkntk}L4I#b3N(jPH0zELmz9f+&AmrVuq$wYLWNOWNv&g{f9{ULn^}DKFk9jr2a(wX|}5Ly^iD zz6+LSXCx@x=*gr^?~Rcj`1=#Zb*XYcN=L1f-$w9})-A}Ay)*m`m6n*3YA3aQf+5Eu zkp!DMht*UZQ_fS4nJ?q)JCNUJ{}@li=#6R8nv~d)@q8*lfiPcdZ9-OtUFW>@v##?v zxIU4IxRFQ_Zw(@QyBCsGwZ`8a^`*!rGSO+3V^{?=UJ#r7*_Okm?H9^csZY@}ROWR_ zi_0W++fv+vyz^eXylaiIzB>-ZPi1q^&sqB!>qHTrA?@0r=%2Sme+CXa)X^%B5G4SS z$k?Ht5L&t?Kb4(YFLML=f;k-}%&}utCJSMefer2HSbE+X2nxqrvF#}R7^tHn?My~1 z=@6P4`lHow4#WdyOpHD-nuUDR!4%Q+iy)K^3SJF)9qmoY&&)ro%IxKAqi9rmzT9SO z0U&JmUSjG_jiD4y4Z+!&+-Uyh!4Gi63dp&Da7iP^>~jDA_C`RDWP66O?$^9IIJCfm z`J%(G;}W*u4{nzMbB=;|8AWt3s=LKvG4DIQ&+lU;U{ImmD0ZjaB+cvuxR067ShJ5J z=!i37=mA(_GuP}vTDkLIz{YENdCl!xoOCEwmh0KbY4bWI2Z#7R5(#1hLjLLgTte=* zgSDnTw$>lELSYxBYUJGDWA=zQ-TAP^T@S zv1Wc<;js6^ptxN-Ue4sEEbyXquH^PKGi0nr+v~o49g}Kzt0-FhVJ9IYEvsu=q{|fI z!$WX}Fl%coGwiz_I&QOLF?bwq_!XUY%Nl&M%Q`GX)-^=_HTw_;M_~6-i8yY7!ZLTd zhfRO%2e%*7@@lv~`?5dZJ>GT2Z)2?b87eFnsr)}*aW?iF_BDp`YNG~h)F+xek@vwoam#jeuAv90`BnJ!+_=w8%oUk8QYKa z!&3kiopuo#dV!*(fh1mW;p}1}@U=u72~L*0L3XfZCT$lhinf6K!3`~wjeJ?`7#jKgqpHG z%Jl8!&+pbF$8$+qb|26Se#kdXiv7YSj9ITG(Kbm9L!Q{c$8}C63qP0qy1ywNq&|)k z(yu4PpuC}u&D5Rd3v>$Ve#3ddOd6&39$#E}Ldi%*U+2P@Oa5S?Pd+0pC5dh?t?AAD zr9!gi*B&Ofeb4)rPXupuE2NY@Z{n{LzG10xz*IPL$5Pf_F>MiedtYy5V#1xTnz=zF z5>YHOz`0Q~Dy)MU7ohx4xC)$;Hbq=4P1g#fo}KSxZxhA<`eRm|}>iiv$9n@Jwp>_oO9NSm2+xIDqKk2tP3E?Bx&G zsLtO?VSKg18^QpZnc#z_@QEZ`Q*F_x@|zX2VgitVv;%ct)xN zycw|Z%11$>0~m~iKnpy=PD1S0c#3tM6Us# z^ar+Jv9Z-KC{8Z1!tdG`Mwu{FdUJ*}BA`rdSK6Rf-x&{s_}z!0NmU8lsHUF@`DpX9 z9Jt}d(BP`@R21=jB3Fg!QeN|iIdfvj1aHs>x`4A_}B5Pk7!7z zD3$4no@E!&|6FXd7I;#=RQvR0T{kK6a;VsKKC<4-I_uY$x76cKFRl&ml?TMAPB+IE z3k)JV6}yPr-RVmftfymaHwTENX}bzqgN3-tFt4}71{|jye*B%ksQd-76u}(Nvpu3J z4p;ft?_-@OK2#bRW>itj9%QoSE;^NubN0HS^x}Iqn0sg?_##LcH!kelN5T|rq#BiT zwO2`W&TA|;i&6M{EZsdfM%Gx(UH3~xbXsj*gP`))-w&lVer9d~0EO+a1gs)cIqZ^$ z#lsc}KCV1n?{?f399In8=(9p_)BNhcI700&CZ%EoAuL9@fKr2LbR@-dZ*&^dm^quf zuD>7Ol!#MUKrv{CqK*1Ew{on4f)^|6A`e*47=+c9z9rU=x}WzLrJJm-Js!;$SMOp9 zin!?ynmva@bq8I`s?EUZgtcEBf9L18&9z={74{2AP=wwSIDJ7A|H74f?=?0gY~-tp z3uJE4&CQ|(w8oIr9N|Cp)CzV-obBP9v#Adf%zNIRtIKB?hHx!oAbcNR^VDUmvMy=wDMpU&DhE(WDfSxCVkg z0`lG<)A;|S>30dle7)TATL$Pbex<#B{n@>mhGIActEemL=SxA)`C2QsE^X*UE?6RL@VGytkmr)~#mTnw zZeIIrME~vDQ8k8lCJf0bx}fv27r^rcRl)yhCTpdd>CNI`4@~XbVt6^#{}|1CuA#C^ zv_{U2Zt#`CX04@O=N1=BeK~YmT-ReOq@eI7It93%l%a6Lk{yVp<2f9nBvGl%yzZDa zIx^vV?tK6D(7BN+YHrMxeCN(_PgloH0stT(!NZU1!jIDkkK@HXf@rD0n|q&_5pvOC z^G^>kF)Ljuugl=cNza`c-*6>Ya(6|B_oLrpOCM{#b0PMWWA*(+JW0LAB1LeP<&kWS z4K3VdgT>{fXnem4L$a+78AZ`1gc(X)m7%U>fjNy6>RrQ7nmkwK3^qERObhLSVf0i* zfFTrdv4lwW)nP>ZYj^Rrh1d&t2hF@u-4iUm((!*B>znY>7&g9EaA(gWaToy7#}S6VAUJVoFPyQy04u}xIe zztgr&jZQ$*u^23ZC&&nn@B9j{o>xa3bU!vWwpc~rNhxMAA+@L!5-a8F7WZu!A=DDH zpL?L%%*SXr%Y>53)V1Uq6De{?4qjLu?wlrEbXBR*Ifd|)xZ&dU&@Ll&T-(~WHcHaL zVS~}nkkR-2uED2InwR8CBB7TgcI{E|r#L$6C>rDslHvUYkAdKyZVVlg9v$H>CUSSY zZxU=UW)NM61Kh)tyXF~k(CGKOld{@cWqs7Av*+QBwY42jcI`D+=mzc&u--OP7}+dy zsgf@CVBjt2HFYYFI9NlCy?!nkzmL#z8T|yMziROBT@r4y!>C5XuVn_kDG=Z7p7R64 ziCRX->)eWOyP8yDZCUZyukQn2O1W976vcr9C{fHiksjY#C0!ow7k|-b%>6YxQCq>4 z*r!Y-4HPDyBQekPn_HWXuR`a3o0XjGiba>wQK5=MH%^*=G4)d`DA|3-LN2T&JuW8w zNltxk2wv$G&zebwgd=W6Es06uv@oi_MoVIJfnm#~^IY;bpQNQ6Xu5blhICcTQ0H99 z6^OlQG(A6Sr2CA%RMcN9=Ubjw1QUQ2V>zaM{{uC2kS-&6RYd@xnS=a7rkZ!sb(m9Og zmR8PV7t%V;*SZ&pb`%w@NuAkNn&O#X7lExu#*}F&QF2GK`YIoIInBE8$}iHiVA+O? z0X4wcnC-&;UQQE6-8M=S`HMo~!OU0OeyXndDik*OOB%)a$3Ycu3qgEUnYy!w{N5z> zJ}0_h!fC;>{{UO4=Y{a>Z=!BOKEMr#2izM7KoUlOw&(j&XD@$H@6=fwOQs-}G~Y&$ zK}(@zq(-v3>*`_B`{aU1u}_tY8!RX?ypR%8+@A%SD|2tdTp{t0Dy(t)eaE?&01XDN z(U_|(g5*moN~Z9py&+6+$k^3KNe=+9^&1grbrHKePH00iYu1|whs0|8HCo_OKwQ7O zT+Q7%mvA;I7Y)xFUMr3)^C^!9ORF}X{E2RxW;sqVL-ZeJ!NS4>d=nBP`5zGWzx&pl z4i@@8s5*d(P=0WWtnCZj$&^r`olD zoY)%#-~I3F!$4@Cy5#*{FHRr4Df%$CQ=-&;syO}L_6@W)2Pb9+Std*|x-e2gy7l9) z7;&V!M2B6Efo7G_nvdCMEdf_)1jB|f7svvKN-z~e$8)9F$T!f6jAoT&<_o;7#+U2D@sA5OzgJJ_XF*EgZLu<<JcT@0J#<3?Vr?CEjqh6{{PMv9{Me2at(=~WJQ1%T*8{76CO@8(Y69qT3PX&V~{LkJT0drg-6 zU8loG2r-BA#Cbi_s2CVq}gDAkh>(SsIJ2Xey#FA*K7%#@R9$%(GH!RGE0n08BL4h77#h?t)q0brV9 zc;F^|ArWn)RU$PBX`wZOqzaQZv>{76vw-D?53eTiHTzvLLoZCEM5I3(f*!@37X)71 z1y#hO|3<~)g`|&+@&{@#&Uq|Z?qf+39h&NM_v^Ed4;6WER}_LFEZCmuCo3~^CJ!NF zeat!&Dk{Yd$1$NRotEwWJuPznRWRiGlQd)n!I=aH zQ;!+=oTiCONb=(BEMd~D*NR+8*n$M^Bk$sxIb0r=)3;%*iOs6|FZ!ly{A=f@J=nv4 zpC8-joBi@$w*wGWCk%7`MiT0Os{vAw3@)|WclzFBY_Rze{8-y$r8mTL9_l17_Q&13 zdYciBQZ9I^Q#$9eUZ}WZdvzKuPDmJ?k6>d@X&859GHWENjxx-x(UvOvG14!Z(g z-MT}tS9TcMXIos>eGPIT_nUZOIO4mKtOZYIAs9{E9mj_)b6Guh%g5Hodron+X3g&T z;C$kQ8CBns{(ch>bedT>3!ZVwMJcdUFN|%MlvSXl)#+@5 z=EX>lb;4nJ$YMfLvMcz~Qr7#!IKc?-a(PGf)Vy0oRzg%e5i!nPH3(L0V^!Xi$UQnpbnL$`CW;u{S-M zz;QK-QZY5hDg!0Nr`rPkL`RJIHT)*2=ZI0E%zOL@%aQ2JF@%cr1L%oG7l^69sX8^9 zpgZA5#2o|Gtb#+=bnw z$%STqCD&I9r;zRKJTvdA@Rh(EP$1csFv)Bk&_3|Mdxj#FRXaeYk*U1mdMrXbpLZ~m ztsX@kS%>GHIoHOh=sc?rW@bIVXQlax3U%6CFrI?&l=~UTV0J3bFq+Ba(Xp}543QQl zW2-}}I2=nvGJDwJla{Xs;~qe!r9TUTqjD z)0F3qWXdI3x9^|J`G^%^s3HLN3(iErT(Y0_AM=IXmb?5ZlDSgjgobZ#GpTW$MW$|w zR*S~*vw>y6aiCkw(#zoM5XD#R+WF<#=zG(t80Eu#S?h-4g0Xx4wgH6aXBEHkU$bVe z%)$Q$nEgKh-a(D@o&Hvoz0Xd3PaJExvZ$!2X~r(Wj~aD(|6MU`T@$`HXl=@(z{?iK z%D>i@ny99Tj96oA3zi3>Bqw&iqDMSEJxSQG=oI=s-;c>O&aN{tPD$}~Gb0=7Hdh(-g&Vmv3w&lI z8W2A6NQm+^r4gQV{D>cq@c$l14w*=q%7Fv|iDU*25AS@LBZHBF!VvJuM+eL+&`CVP z0m0yz(K*jm>PH4r5JFGKU%DSsZ?HczU|&+5`7`_Jl`4y7NtNk7C{+^x90t3SNJ2;? zh>fVk*0X`0-dg#F)q(suoZ@|4+}d&h#Hfv&A9w;Eb%41XqcL>NKEoJU#O23FJifhI z!XMy|q=SK<6>rE z+6YM>j0m0Dz1tGFphO22P!skbx*sdP;s#@JW0pQk=xDI;MsS&jn{jv44GiEMV2yAm7Rk#{}8`%mAHPPwcu`@Xw@q)A30uM-}s#}UN&p8aT{ALd~e*$zh(y}dJ@ zl2Ta3+SmS^>OZjGPTrrnJz$*It*y8(j?OlX(QNGgfkzs2G#^Ai6*RD>0JIp4yq{m2 zGv4^j>}ON8K}%tWoBRi9`=xHU*ECNLHb)Kf5YhWiOn}wgvV5V%B}r9!Q<=(8I`4@u zQF%EInd&-*%CRq2vQNw(4;MKQK;?iP5~a<#l%%d>+33IHc5-oa#~q}srfi*1P%C9U zi`^q0W~u~KmfbSx$#f=Qn>cD6?vpZCu@f7aFPpsoYRU@4P%V<NzZ3Wss@mFrKn zzIg{xnECco+P20s-iHtiI|)cH#i+lj9{r~->IyR8M3K%$u!We^8Vbr}LDAbE*eFmt zCv7y}wbmis0!?F0zJ6bNTT5H8!}5VH$-ucdzn9>o_lLj&J_cGZ({a{p%`kLF1euf7 zgU)-OY0^nU#?0xw5@|bmATHX-&|qKqFcxo}!}*DX@xUJnR#mk=dmgKZ2x9hZFT}dw zd#iivdHxd?X6o+nV~I=Am(*ZZW#Hwbc0TkeTdFh0Ic9t>-Vg3}06u1f|s zbnmo4qijX<)mBlj!<7Of4SFtN@c!(yGBVgNb$W|44)W4Uq#L&CL!|NVrxclbA=H z7sba3ePE6&^Cyp$(GI#V*&9jLwtp}TbMm4utmmR#r~&-%Zo~iU)wyd4(zVcW&;ER* z;IGwi#Lmv{*8Lv)51KajK0;NK(`M0)#(TRm4F=ikhjZ31B=i5`%(gfCV+`Y(i+u3! zFKtWi9;`&T7h*y@qxUj1va*l1OnC6JqTiA~e37p9W!o-HYI(dF`rx>c;?%Q+P-^aE zFwTf7(`=CRi|!!27wxBlxd)VF*KKHVJ(=hJOWWZ=+y5MEXW%Q@9pJvdfs}Wm&gGAFV6snmw&jM$i zW)ux~?$O3PLf8%8O@1Kb-uf$_R90HgNI(?+LNI)Ol8yD*wYjx}HNLN4u>AFu- zRGbV87-I!AgMZU$N9mWRr>CuoeF_MDJUaI;%Ge>h`ZSkVKxfkux-vc3EFaYn_CdnJ z2`4;^FavTksSgR?ziZ)-MM=Zg>7NT?EY8a`EUT*Pn(Dt^`-|VGG_lxI2KS`~e}&{s z_t+_+3qlfb^n+DmpD?>N&ucqReyFOAl>aJTADDf>D@I?WbI>VH{08Vo-ENddMm|11 zwh^)u=GtR&7H6CAp3DBdjEIR;g+86`e=bd4rbRJYtgKZQ+kLU_eeSrBtx8zB3L4P0 zWn%=$ZyCT>)Z&F&ArtYir4TPxYrF33_pQ#f8Tc`4Y68M}orpKYWrpHCid zZ*J*Ldx%OA5xNX;fL@^pdbLc(_wG7^e%PuRr!Ty)uA!3A%B>VccO^Yk*7f6FeGZiG z&utMu5xoh%3v-BisF&7_0Yl9kyHDn%Gr=gDNuA9Dw7qEO5!>naM#Z?9|WJJn>~^}Yppgt7~QFvs)f#Tw@g z>*qP5bs6xc2?pk*!gQMkG{%q+vG*;`#y<8(a9C8Aju-JmJd~8CZCYPGwBD!qEvZ%N z9vBha)32kXZon_=Yp?8z{35%U>CrUe`_BBCiuv?YPte1Mh6d>z!O=19v71QKJ+GN+ zqvneoW8hWP;8Nr(5_UF1I|jww@>277U-CI>zH6^m#(dK_MSZAb+q?#2^;f&32!Ftz z;Qxm&{Xc@&adG(b_J{SFF~8RneS1dVBN=+SYza$`!=It2-|?ZP;XLI7V=YG(&EK^9 z((wGw7W~H6A37eE{&B|an1)1JtR?u;~0YdVsg#L*pt zdGuxPu$I~p@?ZED11Wfe(HvF~1?f$hAo75ux{@G7#uE7 z+aVno6gF&FZ>$ykg4~(V`N4IX>nud})Q;b(u_mmq{2B%Ao6za#IqX$N3iUX?&#D4u zz)MrDCqg=~UIwvFIV!{;#^9Y%J+Ja44ARpvw(wdoO!;nZX2L)oJaLmu{_O`xLR3(-x(AfA4~_<7L4cea9;#_>=PaitRE{PD$J1VC-yxCM z-&$Sm=0Zjwq}$s{mbADgQFzy=i0?!GOfWM06z{9-fTX(z6h2aP3Q_Q6&d%KUhbJ|~ zFbQ;{oNMocJo)+fc17^!Kj#M3WxDtfTJZr^ivEbS0)eLb@nkL%tt1zo?*Fz4HBlV8G?=5XgGtEogpqn!!Dt zL%Y+k7P^nFF8?VZ-A$T`uaqv=dEz=QLJSQLgCK>^(>i z9wI*#dC7gV9^Zrh+WMOYargWp+oEbjcR`cT)|Rsl?~7UkNelkKt`w}O91}$Yu78c1`~~Z?oGTIhFQEUhp72ZMf&4pT%xy>_>Ja`m%L@Z z)TFVv2-2Ccm4CV9-!UMTX_wqdUcKA^@FlXiBlO{H=4Cp4>Se-gPCbl-lB&NwnaKFQagk8}nQ!d)l=DOfn-4|j_M7eT?^ths z6LM-h8PNLTvJ@vL zO=(HTFMAAoo4@5!|JBS9%U~9gkC7n@CHDlnI_yMoCfm-qcid#vTxDftneHgK?dmzs zuHXLRq}MzZ5gu3ah4RDH$LktDmslb z64wt5GLK2?g6-Uod^@&608A~gA(TSaiR=|&lviHJnMN=%II$i`Z5boggk_kN)cEhcznPba_lM% zVkq@KvdKdv*s2Vsg#`o?*&2$(>i5H9ItHP>-nF5jR@tX?y82M9;nA6%U+L%T<_&_UPm zHm)ULR$I(|eI{4Ii(f40rlk;xhwTZGYbvigfB$Vy<-F->wZ=5hw!ZfMA~#Px>W5e}1WEpqPpdOt-yT_+|?Zg%|)65vdr;V!Wd zlDN%N@O7Qn($Y5ZUN%zKb1Z00F`!$^?{F(Sbl{z3Mn=9)hZ{}Usy37{+bhX;G;i}l zL@4{&A$*ik)@o0^e8r|-_dx}&{&J!)rt=AGx{13=-9JLp?_3V>8H;^XM3{#^8H}J# zgln)$7SzDr6Pc|cJFz#!lQV80W$(;)VQ9#B_^@TvpJlVHQsMlc==Rtr3f=%C2JG2G zUvx~|D8~cBa>IF}@^!d0&bEsxJIrGef`T)sPP!~dcC8rUF=0fX@T;Oj)0*~#w0XTl z06*amAX0Ou=_?E>gM;X@d4iXI#$4MTp6?dkMdhgLyyq<*_ddz;mEq0R^z+Z_Sx)wq z5N*Z=>+D;TwQAFXCk@Lxv?$=Ov8UxUl{JX1Ph^t4i^<}^`vRBS z4v{>h;`^K;0^eb_wDk6BzprM=G|dfXH)`4zB~T+>q2+2XkHv_T@n;sM*QGQU$v>Kt zpW`M`Gt+^L#MiQt0StNk=i#>4ma`)N zm5qi%zCD`4vLonX)L$EDTFe`@d)hhY8Crw5Y@Ky-CHZOH_hHQqn%hp2n_phmio7^I z{X#T=czXhkTz8&9n?B75T>IO3^o@i||71K*_}#OvG}x{L(n-iWN@!9KKK5XD7%+M- zjo6H(vr7Q8K@wcJNzU9Yd&%0TWA=VG%#BXP9ln=A#C46(ME!t{yk$>8W}d+F(!}z= zIy5|^C}rH?F_>dxInp*Q+A_WNmeT_Nr$T=%rPv$Bzt@bWH(x@mmwIDJ<1h1W=TPga*=p*F|biJQ#l;Tk;8c zD{V8_z92~Fi&s6?tN9*06F(K==eQ8i)$hc9tlt;Im94iEySrRJavgzbz;5oWGMd=< z!uIU#ES$CvbH6w)cU{HjlNPT40h8^o5MlWl#EWC=a`Y77|3RTrl@E! ze{k4`vigUPfY~N2Qoc=Pj!K?#XLW-s#-u6-K4q(E!pFs6B@?%}8eDH|3(tcOzF|E1 zYGMKRG)aFWv`UptT_V}ud=~fNs077@TteBRzxEGZt+!IU2Zs&QBwnO?ZS{(|4yf{8 z>6sQe`=Pz@(rlk3cKd{U8~2G46CHII&>&0QM#rPUJOQQ5%r_U~BIkqGQvjjUX7Amg z|mLh;)Zl_-T4ZU(XRW9cMy@ zi*+v$V}BUZOAYan%u#8H)ZuBfmEKrgHCi;}kQ!BC>>fS$eO`MttB2<};aSj(fah&> z=cBF>bRQeUo}Y@OP_ft7@4UOmC>m3BDz~h2LzYLN&~o%~^<`i@K#O9=Z0B!pP#65l z#>TFtEK^H3n-b4m4`&|PwvXaz_RFENqza zW9fKqt-E#ciuYT%VK`D9m13 z$z5-6BWov0M#fR%xA_NVtMgZbmb?hGzBldq?R=?yfVPg~UQ%UtX2!feiaweKosP>D z^b11ZyH9RZ)Yx$E)_Ry5p(}f}r0|;IFfpQ8sB5cdI--@Lsh}r9IXA*5#>B;{YZ?VS zB`=)es9?@c7%WlM?`ic$V7JfpjeG3<^Z3Fzs+mQAT!xtSC~AEAlgZpy(Rpm9mz7Jp z=8~J%)X-*2XRn3|0JQn|p@Y;#a%r<&^?zW}lMLw=vq{S#HEEGuR0qR@x$L80i)WODK+T^m8O6`A)bxb1(VqfwUzCu1Wx zm)teHksKTbBZ4`b+_p-R92}Kyv+={YG2h7zc~OpY53bWKH1N!(Br!_@1WkfEj58fK>vZB|1NsN1k_>%ByEd* z`555?oj$n1CuMYTU8*&oz}=b;JVZE%3E4uk_XzTZ_B?BWA)Pnlyk`f3e;<2x2Yla> zDt-EHUKadcQ?9JYDl^CZz_Q+WYPTF_>{I@`(-V!sGaq7Jvilk&<#Ph z7QtpT$wzGn)q?&_`odzUz%A%NsP||qmAOz}&BEH6PJ1?`fgXiS&(d6#Oha);MOh(v--JF zj_c>UMf}aX&*|G&>kKSK^fRQHtb#=;81uhHgXG!V)%+6Ia>$0_(TnLSsQoBHw!0k+ zf8gax(SqAIsNqS4G7)Q99T3 zrLAq~80XOU2#AW96(oh$DI`(Oac~S|5~OSNLYl+vzWvWGfc_H8(rrwX*&*CK;d5L$ z(lg@Ii=;z~>47%AXugvL*X8vy-q{UJ>}3^IiD*JNUw)_i!68%gUa6Ozgq``y`)$1- zQ6&8iR;j2MFdTzXyoIHW-6EmPaW(t=A6bxF>|v#_XR>=)%|8cT_ix>rH!16mm}ie# zH>YMP?)A~dV^z9xO(QaRi4=izrRS>$KZA#L=NQ}bRqCz4e#J9+OB;zji`=C=b`8we zqCC&vvEvrmb;HGlYB-G6_O;K%UGeGF``lipl;S5M2RHk)3!i@0Q1g!e7Kj7*Kss+W8s&7LFdtwE= zzliYr$m%ju<2~eUO>AQk8?pOSd<`5NG>m()>9A9q?N;i|EB6ETuaDX1XBk)l)lMBXn|vO2=(-Bzx>X1KPz^Mo=U@c@vQmu`oKPXg~779;5$bj}hNng#Jq|=nY1FALmtkF$g++`vzSWTCi){`u=BDU;nN| zJ?Yc#q~1L0IsGb|rwT#XzYQUc;ODlU=o^!{5>-=YrsPP_>r#zr#6!qcbcpC?VCy7` z-esWJqad_Zs|knFtv#1mCJeHEo!rPZV50~cz=c^~fF?*B_rv4;q5lTP)_eIr57vR< zkbmcRKcDGq*R$ce&pvC8rcz|>Y{#p`f=e?;NYj6uJ(<=>UEG4^BFf&i4-`&(X;DZ6 z2`xeGl06A6%5Qa$<{8rB18`eqYLa@uVAr8JZQp14aVVw(@;II@wt>Z{nS&^nxP2|H zD?;FT<{tb7udjK-Abll~c<2_auS0-NP7)4TW$+9s$%Jb7$1)RR(k{_V3HWzGo*YyI z=y5NlfQWqYJpuq`yDs^z*bWgOu4G6d@6iCfB33Fet=Bi@ClD)A#ekL{6NGheWDe@> zwbg51eeb#BvOd&=Gkn7V4tAXGP2u`++w_4dBdB;~Gxi#ZIfvCrEnY)T{73Lkl(lQy z$L27Ty-gArN$}@T6XJTpYfcibl5o*fVZ3FKW>mjku)XU0X!4|iPcEo3)(&`8abB%8`*6wzxKX92tTh^ASls4C5|UUVC4nKkeF z7%#od_VEM$!YUy#e$tM#v{5p0*oc#wx~B1`1Tqd*Zc4+j`FI3wRe*}{cZCttUlkSo z&=+{Qe6YJ7W6Pn)O0#pJX+3(0k~6T^q`ad+>I4oZiNKO}nu9~P_{yR#pt;WXVIA>o z-T%4n?$mpcL920I?@t;2X-&Cyx$hFKcDq@5qrI$&&-_;{QnJBEny{+={g$!=p>lfr zidtEbXucX0&1$E#j=^&i&WGjqm`LdL#}FCrSGl}kLnPfR!(H6tH*5LORV#oJn!IeYP_c+Fo@z%> zUZ^eXR?vNR6t-Qx9QLqqk#7N7w7>dI`!xCxg}II`n5#P_H#pPHik!!ysB$Vsiq2-m zbY<6WCXcwg!-5`-ex5v2`#9Z3O{C7-->-5%Xg_(M<;KFqXi%-5eQ|QI$Q9#WD=JuS z=-3Kd)mOnCEA6W{Eihfwit2`iu@OgqA-y7QkRrWu3e^mq&SJeJqVHQRy7TISz@v1< zC#+BC(hrql3lM5GVTz~9W=Vtc-KB5IAC?&_6^F zeA~s7d4Ovc*S*~l(br!|O=~|r3G93FJFCbd3*|?Ryw|05vT0Wix&CluiRi8P1@C&7 zLLs``L9&p%L|JP+hkE0Ib<7@Yw(gfCF+_8Q+ZHNs@#1bdwjCMb@g8RU%ZdIu6BpA~ z>Thq*AM!f$NU7P7uc5w3j(c_Fwh#xi+w4#-Ganz7$~bC>FDo4;ku^?$oU>@g1^XRv zN5^+f`RtlXpK41xE8;icg^+Ld%r#K7{Mg=lYQ5)a3WJCb0pZ!!#$Zx>)(pOJRivAAxzYK_7QQ=*c z+xwoRhW~gY96A#FXL13nYY$l-@beT zP;6NN5y5(noAz(ek86*FGfOJVr+z%xWB*)Y^J(JH1)d8VNzkE{2K&(Z3!A3LYwN~q z#XqHjPMnNI_>bcF+54*%k%3gB{vMdztdPJ=6o#fQ2i+&=Xk9f^v+-TDdz-Q1%TV~H zc=1RIV`ITR%rZVA*t)jW@?$@hkXA)`j13CUPy^+A*?4=wNxZf8U%QXee_tTT8c8Zw%+icaiR3+dY? zE|pDUylzV=lz})pyz7pG3(d5oNRNYyU=wg!ixrYI6^*9Xo>?Kg5yoC6gtVhtyTz@bF`H8oiQx2H~Fc1Ajuo~o8P^sc&lf(4y>_j9J>0G2$cNXAZS%pIKHjys?cC!BXW{@C7 z68;2ig|g$%;U1K8;{3E;W|4fieUK48ftlG{+#zk4YVkxm zmbe_(G~nsPoOXj(UXbq_;J+REd{d)v) z<5eq0ScG-(*_E`6jHD1Nf-adY7WQ0Hcw^bb?}^)c7gJSyRh8w4L)Odsk-a^o!V!@3A2jq~yQv%zU>HA~pyccz_Mf&z65oLcJkIpC70`@}+hdxfTbtx{XfeLKA}%yspFIt0ho zEr}Ava;o0y-mCSn+cHAw+~n5!y1o!L3;EUh}t{WsBN3BMtP!<;E}tSU-tev9&pt^OAN5BmJKT|QhH0FULFY%>Lq9;|=PM1h}XjAEw( zKSg5VaV5|)i9ff@6HtsG>-L20o4jA85`ZT1p5%UDCl75*K&hy|^MHN6^vi!0wS~H| zqW;h(T)*D}uSW{R?g^O2FVMo+Y~NinV(#-clRwufoi>Fsv7)|Bt0ZNfP`~8Z5i_EW z;pQji4o9KLVCyk5ZkoO$8GXz(RCM(4);SG4TPVd;`?`rJNKJQ`o^tsyv+eD!^5KbC zZiF z2U6=69ZwL$ePj9NU_4PqZ-#_PWWXQzA;;V_F4)ZUtz~?REp4K;EdHJx+NM0dnd2*V# zM^6**i$VlM!3PTJUwRM;pR=BzuDRIMcUNLyJ&w42a~lzK91C#f_i_}5<*x3{RB?D_ zi5D&wpV*om0A?c!xlQ{hnG<&IPTegUA`(3LdC!kG@k$M-qbp*Kz4RCWb3ibm?AZGp0FEToB@KOkM@B zQ3lcu5~ICswYARAHApaEd-L?0M!;8!Py|&y0>plPJGe@ChwU6h#xFd(k4S+8V>#rr zQV&wS5et%OZzS?APEi;;JzUcanKYEQ-()Yw!4Rgz>_>@)5}W??+dZ3z#2f9qf@(bx zXc=*sf(vIHW_fi*1p{~UV7Z9NgXx)VgWDMGN|jxftw!hi{E6$?vOLtE(7tLjzu0nz zziOGQa8j<_``k8f_;)f@PO48)Q`LAzD=+XGzo1;*UI+5su_JqSHf6g<$$fJ)=JRmqwB=eGvevx&);w1H<;%jsW5eo z0fU2c;&eexWCOKgUpXK#8amq2eb!3-+cUh7p1zg0i~IK=t${eMVyQd!6XCyU-Ugvx zf3=tE>TfbOv^*g&56Z&pg#M&_A}3Tk2XrUo?Pma8d;o>xTp2pIzp0i!L8h`Y9~%-+fy`|inMcz z=g^C2{#Si{`*I)+$!8Cb1BU0$*7JrE6D=d!sMdW>*kV)QlFE=2;;9B45?tT@Q2>ViY zarnr-4qM6@gW6@ROC)j#HT+dA@8rmM1;vcDrp=zJOJ ztP835By+d-Z-OjwW zz3w!j=};sJ!>Y@S+c&UwLG7h(Zw=Puik)x+PiS_PT#zmSZ ziu-6CFb}{*X2_dLZ)eF0tB}@k!#lZGDK3cxd}pC9MXca0*1l8X+_mE8?p{M45APR) zQADf&DqE?G=X=5i>s^a-R7gsyY*tJ72STfWw3fm_PC8-o&7Y^rQBv}d1VJ(ZEX2BB zbe!YD4(Nt7xu`%@KnrV?a=q6d`Iw6Fj}sK8qn%8DM^{wJ^bwyfw1_?_VD)`+59BbS zW4PS&|1Qo<>Ez%LN}5T~L}`jF`i_z<9&fS4rd)G}EGyUYLhMh7HI(hvL{cGL( z>$bvtY0OT-rah1P%V@Y4wDcQfJbVcpNt=YY<$Enf@O z^w%*v?ny=P5;jnMlU32o|wipA>+bmTHN3)L2yB@|m z2w#$-vhSk-$>n5Hr>PENf}Sxncdpgyd1+E|#IaXVZy%N+NYB4dnR`G#?=lm(3V-pC z#Rc}77_%;m)<~~xHmM-jmi02bz`7?G5(wfT?rAqV1_dkpo~H`f%tYWQe4^W%WzG{I zjqf(YZKPfmITXZz$Cv}cQPv|^?S8E@>T|OGcn`I0Hs);HVU@;H7b^y4FRRQSTc6nI zIRB6{t&`@PWuzil4FU>0rbalWDse{v@A6A)larWeXr_9u_s&WXnZus8n`#DAAHrw+ zu>UW{-a06*=->9lB?M`LySuwvaCeskcX!u7f;$9vcXxujySuy7*fhWU?!2luw`Qh_ zDvHym_@nFe?!CWjt4q5KYOk+PXfDo2ns`vZ}G0R)#NhXW*7y*|f=Jf-QkhV~^ zuX?FT>cuO>e3^_p>JFI*s5{Ik>&*^_^EkFVn=}Mb&NdomFDbsimE8samIY_V-H*73l zkm?wbE2-jtdvh)B(g_q>-v5sY9u2U?zyoSq$Xd<3z$pv^VAsYtYs;x%e$XhH#U8r?Wd6G;(pFC*HevIt+T@P2lyo-pZ+^7@&JT?KQ>jQyEVISU7eI$hOWc3xiIUA_C)$~`|& z$CcS9NA%S$vOgRF>4-9lZ&BAN(w2t4vnSA=2k3P_ud%w=_3q*}vd#Iv-sZ+=F6P`S z-yZylPzvT(L>-?mj(KbiSFj7Xm`&&Is6Ymszu2(CWZ$Cm+?%v1+Wm> za^Xy*%83trjsYdV{l(hR6_!uQC`AyuezCzWu;!aU2|F&Q#)lcp+l++Q>z^ZGHY{ky zD>I}65;Tqn2Pj0@@GyQGP?q+Nst2{}@f@NbLJM5Qbk?$1hUOv&tJ)Mq>uH5K<8WZ} zqou3<(4j@6TCvZF4(?&zzuKaf)dAs3Tj9C z1sq%t2t|YY>HSVs6>f-SwS%z8mFtsmZozKPl{7UVL+DnsUnt6h4&NnXKvif@42aEu zV3SFZcvfY6W_8rKd9c_}6o7VbX%$zAx1=P2htd~FP7Ho(?*shRY^5+mD-hQF&X?~z z5_W|`w1GS>RS{}VFDXgvhC`vP|I7+!8N9fsI#G*iZM{}IpZRRXx$<}3>g*QC;`fN$ zWu#UT+`uuX83aYx&=BbuHu6VEhZHx*mvh#XzEL*@NN@r{w9XDLu z@bS0QYM>`wEIl=;dhIdri&BHT%o^oCkl1|dWG`mKJgr0--KUFR^z2V8tg=(wjf?S` z%)kGNw1g3P+={@d#1Flf*mF_Y@XMGrlG};p?~3DF#cU>DGPsf?g zQ+|Pgs80aiogH>{D_gF9JSO}74E1ay&yHz}A3zqyhUij%%f2RCUpH=%9C7pe2yHwK z2rZWn%#0ZDGCG7=t#zn7*pH}~St>;LdsOf}xuvl~<&cYBC0}J|7_DlZc_>3nL`BcH ztVP8pKWhWlY_Vp&x&0m=2qr_Ko?erMSD;`&4da$cUPibV^faH`UfMNW51V09(h6lA z6V6CN*wdjQQrK4FC|)a&xu@W3$!77B^^9_kfO% z`hB4pjGnQH?g0f;3+PqDIf^7jwphUZ8fI(<1}^lzEr4t0d)i)3W~1}r&*CiUW-9P zcE7Waec$5Wv%!l_xZvq<&jA^No^1>EaJ@IyT&EzrkyW4@eGv9C$sjdoOhGrGR~pc>peUZKP@18VJU(zMHT9TDmJy z@Udim$#B~^_VcC{PY;1LTW$9u3wz#mcpcQcaQ2*)QeUh1`1{LkWqU3@|*(j*o|+pB=XYr=Pkagb)yv zf5137mfPH_Y6bu{SGXhBJjv?}3p6C88zGt7Ofx0qso!ArngEUV+H@0Zd{G!Ce zzP|u+(`B}eBRF5N9$**n20=3rran8$_%4TBE1)h;-Bj}b66U$O09-}3&r6G&l#bPX zUq~iyh)E6vPH&qKn4VZdrhXwu1DJIK5o5;ydtsD}B9&2Z1@?ONCb>j7ULG{xz(c-8 ziM@&`3PV5Dj-4yZfDdm6jatV}|5FyqpLsd!v&MOAvQFFU(o#po2 zad~FjF%LgWjuaC_yRFnz##~53VBSo<7Z-&fgh1V~6AS+`$TQ%R?12s}3cnH8qN4ti zPozcsTVi1Gi&T<#PRA`oQ3y?j)J1Y$Ba_vJ$e-hj;bFmR<91q2+0mp8(F$6OqQ>vsG350z>S z&9GguW2qgRDZYK4y1|z|lP($!BKTgEBhk~qXAF3k{GnSCso!l-s<-(o0;Edvc5cb% zQcWLpr+C?-E`E2eHBaTer7ztq7x*A z{3=w}>39fz_zp<0+@A?VF&DDsR2eZ?B%6-vBV$Fa8QY_%ASrMusXY*V+N`r`QlqLA zH(GK#@>ipzsNk75EL$wEMaLhtK70smkG_Kq=uQ!(M@Kc?Ckx!2kU=?@kQlVab3+IS zOM!>Q5hdb+k>Vg~3fG1=PSOFRhu;b2*VCh7v7K8rF|UtjJ?tC9&TVr3*nD|M z-g~bTCbvjuPexrywjW9zI<)@bK7=G~&qRN%5bo<-919625+J=zHA%sJCMv=|0MJ17 zHQ$2$i@hE46tD#XbFde+c$shduC`f4n*>WWve>9O5|_?5vz2x9qDn*#wU|c^-N?yB zF3hfeXMo3NS;%g6AjU=)|Lt5LCwUig1V5OL!yWY1;_RmKCQLMZn$FnA{oCvCV&Doc zv|bp6C9^Qw;Nc;)e!3emO8F!cWdMXL;<;64}D3~*3 z@^yx^A}p=GJS-KyE0(0jw8zpK`IcfKZW73tfY{(Gr5pvlJT@J4dHe~G<1}x>} zx9aw)uJxB88bzmz7=>FbQ5>!*vzp3kM#674WH2yM6*6iUwat2!r(BZ<29$iX7ca zc@6?adj7MF*~1WZuL~RfWb8@%2H$=-aM>1pH|V$#zx!zNFk?inj;DZ6Ig=doI7ifN zR`(Ru6D}6&q8&Fr_f_WVCl~zGyv__hJR~5p{0|gb$R!%>|?c3@)SC z+jIX7A0@pH@CbVf1pWOK8CD~Ry}MbMc5~Cc|7;vQXt{CK@l-p?;5DZw_Ecb3a4bq#U+zs&^pt)L|vidzNPOG)+<^QYw64%830e1is|01Db%$Kor&i}iWwmO^OADXpaAi;b16FFt4zA` z{sbz;G)fd35~@%M*`NaSwxWY5PPSFL7Y>cXkKE>F`Ab9R$mghTQW`+|odTtYs8G-7 zsFKH6gQRM{2Dv0WtjpT(Qo<`-$63{H~5}la)^^u^;JA8Sm$Z>U{zIhuN4<2p^wS|blTn@{ zvGV5My8XQ#l}q8g0CuN^#n&0 zgMY3&v}@WattPt>ON5=SelPMZGt6iDV}-(=nkWWhY!sD|0Rz8|`9_W+<_h*j@HNlI zUH+uWAk;#cyBfUibu3?Q+w~nS>v+u$0pl!kVd0Kd(W#%5d0kweJ+Blf$Gqz14&{$v z@Ax^30snx?fI4PcrWOjt(d*cblQ^W{#a+pF647L%erl`k)$h2@p5Mr0^`-~AU%Eg# zy^?QYRn3qr#Gqoc8-Ga2+_{#aT_Zbq!WDdr3~s&KbscGk#yg=mQ{8!h%wBGBk^4)H zSN*mCyywi|m<>JB?)3ZkX?e?}kVVmr8BnE&Ysx*@E1C_Q%*%PM8h~nJmdo_-OY3S0bEZG- zPQwylj~WlqJ@Xm{HlLHZ=$5#pPSGd{$VAln(z4RmG-zu(kan8u5#l0-vpNr_9K<3XL) z+B1aUE(wQX=%elvNqXd=j<4t9C_b|QJnNC=zvkE1LhE-jIQYj;^Af zQ0Yse5>YYcNAU>NPFcN!2oPb+K>y$;nXEPWhLI9mnfP&JG{ zstwL*fDko~DS`d3LUW+3%wB9<3NiFQoqStQy%p0a4K%5;#+zbTQ2mu&?6yBNcta1u=4AZRH?ZxTU0i)Y0WK zAV{5-c`$$It&U`BS5#FmF_y?wIttCl@+AU6g+^>mf{dM=nL0U%r|n@_A(qezA{xag{Bep~Rv-H|YI1b289x$r8Uwjn@iEdKDFn~Xen9Gec!;wHyrqhpY|?K4hNC^h(PA4H#~R>uN7x`6AU25>94{rDh4^5*%4^%0GUY%nWDy&f;BwgduDpr3u=+hH_iA# zg+X#1?DJAjWY-F(wXQ7z^;(g^;`20is^@sgVMPrM{mOp@JABp`1hd~H4bv`q*Bzna z;0(3*U+^j$|0b4M7o@|vUanN!7i7eG&bW8bo9 zcNLUrF}KQxRlX3%j;-vl3qG*vGNMglcp-wGHFkx8M#0v+{&s>a&mt;=t5mIXd*;{q9|~Y^LH)d}$Rf!Z=p5 zi@ATwD(vbhbv+XGs_zZY!(CAOOL!`9*J^)}5B=-^5{tzk7jt3p#RfOo3DJwrb-w(X z=Nx=3u~pp5s_Ef-x)Vyte0~G3MFuOOmDOpvM$-6F^b0;cd4zH0%s-q8LAyHOzYUk- zG98^z~FfaSHVM{{EV(%3p0{}Gp$g-JYV0vthuZ+cb{{0XehtyMO z)%-JhGvxCp6~YC0oAuG&abIEQB0QfPPP~&YzSX#DOZ$MFvkoGoHF&sQD|pVtpY=2P zIxx$5``1Z$b9(IvfDHXu7Ban&oEw^+p85n%lzEsPM`EZv3Z5S=GRmNBZ2`*D`sUlZ zSh9Qc>G^r0q*vDYT8q<0s}Z7z&~ByAr27CX#y%q8KT(M-YoRTzNl*1_A4d>djdE@e zRONo`C3nYqveIA`t*uV&0W5~c)aA?M!7xTFG6RF4Jn3IOH3Z|7l{Ion`UmMg6bhPj0PURG-;13)Gi?W zVS)(oXz4{`MC4JoKp_M|IxlJ;i-q&pkm`UCLnfQv!5}=A95w+JU5QH4hMqdk77u<7 z8*wSN`Dv)?IG+p>f?~w6B0hd_Us@Su_lk#fkwlaS9$vn*Rt?qASg$=m$WT7&OPH22 zYL#qwy}Ug$M)Sx|_#Ia=$*=>|=0S_0u5#PdK1}SYEUTCeGxA?yuwP*b4xo0Cn4?^G z$`hoeyoteK2A5m}E}thcwQQ3eLgxeifh&Ywk%;?jrPq)b(5yI} zPFxHEPs49koiae7sE@RlWGXuB$oD=md3l%6uS88AY56ReU}TeKhFTt{`IV`vxM%8=uzUefpyHmwKT&*_PFO}BWd7&&cP`F!Xt^@pgL2X|?!$&xo!SBs zQC0+?z!1lKJVl*IZLkv;*A_;$WFlB?W>GOCN9SS8veiyO@ChE$9JwGU7{?V9>@J<$ z6#eZ~Y10ZNk&MnvU(CY2ISga)eBt)^M|MU)LLaz_<8rZ`d9BjDi@1*wrKFU%8a>JF z)ccz{r5ix3g%?bd#Vk=zueXKFMy-dq=po_(NmJQqj%XUv2@W%6;DEx)prxl4=TN#PC$~ z->vTSxM2qXdUyrY@mUeiNIA5fhRM_s#sN$QulgC5jcJ+fp1>adMnzXCb)@i`5W2B6 z4`PA);QqPWID6&4jFzV9N+MYzX1i;;zaL8^s2cMF!b|Vi5k(~Iuj|b5ij5pV(6d%a z-f#~W*|eQTvGbX_9V{J!4byRzffnr-;!}iBya$p6ju*oH{RWUqp-QNhQRla>CmV!P zS=tH%oxhevQ30apejfjARvZI@>Djdr95Z8&OvO(ve(}eGj_SO>6=hFps3kHak9ZC% zwZ|U!Q6Fmx9m)gNst%sDv9PdW^1kKj!Vj$l*v=f-Cn|fuotcx8h^Mom02K}N_bW78 zR@5tw>)*E>#@)E3hOa4zg|$U&960IjV}0U%Qu)cM8u~l6O72B*HFfG55Y-pw=)h-- zA6%eZdgMsDsPDJE5e%MsF#qV8dP_s2!!c)8JyxSkFhUVM4Q{hnd5rTh%i|eb+;4{x zGKd?sbSg%uw7X{#Zs9y|`rUFKa(~Hr84T?H#Q1((e!O+%QS5ghNzkr25V&sz7;3MT zbUu&UX`7juF*D%(S5&zUIw1a8zymZ#&bYD7isF&?pcH}rU(1^P49aKPD%|9nR|aJd zZ5s|2JRm+w=n2nth8PhV=D*JL|05dc6Js$!`)N0qr%9v!O2B3$IXnH$csGnmRunBP zoB%+*9750J1@F0!5*w79V>C1@uee~P>Y0$>ollN7N`zEf8%{trM-;lV7UKVX=#>Nr z;$SVVL-WS`1t1G!RHDIqsP{dI)F^EuWcCAG16}aWp{_-GiI4{aoGEFAY6UE*TH2}T zRyCD+J*hlkKG01aeixC=}I9M%e&K^mH->~?p90*}5szAPIQ0g?YCIuu7suqY?0 zGFj=j1tJZ!U?jwQ7kM5+9D)V+VS2GW$FMbj!bDP3ZV}{2Y|;BKaxi`Dche^9rB$X` z7_*jY^yHss@iY)j2w1yJ=uhmX`T&HPtsLXeI(V zxL7P7-*>=y-H)o%$xY8B+%|0lyABB`r=q`p)eeW^bcsYLaVjO*udKg3n^CHP3l|_;ZUUVbf%XKBSB%7YP?8-wd-uey9XVy)|nOFq&6L?kOLDjLvT6P1=y$#l* z+wfEwLHisY%OA)lOi|VfnS3jPc^+D8GA<`hsb~&lgJU+i#ad~?$K(u?$oaqPB-;98 zZ=b0ZfY|36iAog`K#|3Uc|tcKv|b>;vY~1)rps7{vL($UXK6D$o3dB-1L4V#Iigwp z<<{T*OO=(ZS{^f-EmRH?SR5#KZ6*dLlMiR+$bn3a8z!Op@HhXC0O4*27)<&;u4Fxj zf`g0$dO9Z6R@ZTclzcj zwx4H?%SHJdYi8bi1k&PEFzyc>P-a)s;+<5LU(B^d2=%SVcVrLJ_K7%XmD2mTRs<)D zn1~;l((QNbZ$XLC49`g*NC>-7f|Cj&q7*-T1wqR`%r5!B$hb>y4RB4Jnmg#$r9eX( zY6S9NC>APgrhfwiSl_JajG2aid?mqp`i7YD6~^f600vgIT=no$7!e>i7>We0V3hl8 zBW1eXVoY`nmlpsWZ_l&h*+@%}=u`OV`x#3)@kAdT|N?-m}?{khuz4|A)prtQ{L9#-$ zTYdNICy%4t3rhhL4sia4C*-2QvE3*lCkZpSay>ZxBn6p+*)YDR(K zL&RkoRgR&^k2u?zgnJ2f zS@>_Am?75ksOXHgly}0>*}e&FlZv3Ec+lyE6@TZU$$Kn1@t?zm@~rxn3VAA+*L%n5 zqWN}GQdcheHLQ=hpdA+ahgs+gqF%;D!mPX#D3FG^Y&3L#SH>Xy)rxT*VzVj+8q2u) zd)o@+3L&QCCfx>H@y6`xX%ak9*YTa)#l^}{+k8x@^F@b9uawAylz!omMoU>v(9yz!EyG7Usq&- zRO}MbuA&`X|Bo728A3(92zxSue+gi~Z+W|wN-kuP;wyRG~}yyyvML`}_+UkHM!s00urpeC>A>=S;o$Q3_VuWCF(SuRyK$y%sV zBl~6gW_n_|4$#`pL1rskizkV|-(Wu})ix8IvUD-C<(VBqJfbT&fq{joxYVHDpow*A z<#wNAd+xqi;G{j?p2`C4!fR@P7IzT_-c57ZCUhspWkf+7nwD36kN< zsaMytrn^j~L;&xUxJ_Pe&Y{iTYdMi8h-GE;%_0439R6aSfLn8~sep zvj|VHL!e6mM(h9)qu9mb9C0GB=>xSENwT zu1H2oNs!M_^nhVU8eo@?>??KvpGJJ+%8?xqyG!j`k&_!3f&5KD%7W7Rv-ek|?fqYN z9H5G==t4bDQWe^?;#=yo&_^L#6!EvH$obZVMhsFW`9D~&*RUO7Yk%`8t)?Vq^px|J zv*J=mA{r|GYR6KWa36ley?}E4oP#72-?E-Wn{3xx@rV!2NK9>48|7*@ul%IwK8j99 zJjtDDHAZ@Le>2oq)_dNcpc)nY`&_}OLZOz3c6=_qvb;e4geo&kz~ny2#c<(BmQfh{ zUu)a{v0VK|#hQBAV)VTZ$7n4p8$j}9R3y&csvOeOo zKP7$cmO>K-ujY|PhsDeiOV*!(irwC|7 z*&lGb9Cj-JW;nrJd%Nh=em*e$V~Ad7-c*p{LAg^aN#}$F==wU%Pmjn?m z`&fA_(d^8@}e{cn60=+@_w;FGr;~Z zV1$s0ha-!1`KlGI)HzSG_oL$2ULiW5*zJsG-RA5>R92j+6j1yYHbkR2Vqs;+8jckY zv1vGLBJ$>&2v(0Bg01m9$!8R=<-!f>Fk3UKbg%c?>KwOS+*r3gyD(_=ja4axHYQvI zU|%eE&cEG6Wwp{0T-&?NKH71FbNJMH)_imeG+De!k#w__eT8^0vqp@Jgjif`!QKy; zr^XY-0()VPL%2ytW!jX)9?6qS@{cLfVo`33jErc$xCpXU$KV4ZyM}vD9hnYNKv*=i(0Y=7`( zo6CDEw7Mn`hh~uP1y0wTbi<8(G=1Q5lkX7{tCW0lwfdMPzwMG-vz0WDYB(3${eI1U zL2O;DF-;6sIfPMNa2PgpDWe01#e_hk0DGFl_*~de^}MXwB(ZHs3=!LA7b{)b9?l(H z#_w&HN6<+g!xHKY6LoTKY*uSVZzK-x=Iy<=G2Mp7fkZuH&`E^&(nvlzMAI#TzZq`d z3*PTSK+jro!d~)dZ_luVH8Z9Qs3(4`&a5#UxJ0*5Ai5Hd zQNs)la8OSwGQA^xp^4p66=8hs3l3nr0WhZuq>dLzE3N6p7m3vF? z2ZVZ|RJy1h4$F4K{vw}cmRaocnSR95)2XW%s#tcKvVoQ!qjUIhl_LjdXtJ@+00B}) z)FP=}6dBFZ=6f^SW(+p)|IF!2nGYr$B;=58VVU=1pDX@AH&`_bgrhLyRr0(^2 z(Lm@?3DB~yI52>dz4pyewPj2r^T=j=-j2JVEI54Yd7vt|oG~M^S@XK=Ao*S^VW&lK>!3oei%xFn$atd=2ul?;FW z!(5N0frL#*@!_t!*J3tFVDqbbd79#AclQ1(`a_X>y2xVv_pZ$E*n&gR4Wwx_Ouk2L z;SNW&FPB}L&Ipr7ptGEJ($>RVFqVhOC~6>~K!~hPvcHJxu~Z z+xU~g)(mzW!Ijf=rwL}6l%KCp+;6|$>+CiKtPlpAOKi>uSuF+zo%ym17k_GBw@fc` zQzPz#oL}^k4HqdA2KlvAr&`N1bw~I+LL}8vgAC8fquXL^#*R`5QILnK60ul%E z#?et?AEY0O51pHo_aP$BQ=3|T1bpsO*X8WxauUNz4kAu8CceD>Fo+fKsGT6&qaeNT$ckW-sN z;Pn7w31id|K8wkEhgVa@DmCqCu*lo^=$|{AZ#Y@8QO|eZsTQNX_efhJ6*g`&AJM!& zs+SH&vdzh}W**(&jlSN{)mhHdxQ$R3jakv3u14H5)rwYn3!2Y(^(&`eo(4xwjz2L| z-n2_}Q&k|OcCmQ46Twmi_w zc#t7f<4RW5*(sp&aa$49!ZfU8aK~^<;e_mjcuMR{cCK&U9=G9rdNx`;cgmDy_j*^xBCam-7veW&5=HO;NoQ0*+L!Lw~GoFiKfZn-0 z!~^JycH(rQ67ATbkd64(COR_a9W48d?xlgBG@nHneV;R#=4Lcjbvr#PVEfvfQggH# z$rgX-%2#!@GKu>#lRkyM&odT6G>%@bqX5dc6;}Vih|7qbm*3-V#@a1uA z1do-h zrUH++trpM+NigdfMbRZiqbH;If-Uoi!z}$d-`9~0C$#4g0>5tgN1V*hr4MH=w(LVJ zgB2T;L_3;gxD@PAhy}@pN2*mnv zG|S;~Hj_f=ylekhc~GNWN3TViEpALv6hI*)`bx}5hay}Xpc|*eZ~e8T6YMS4pkhF` zOknRP08Z=2KiHNz%W`3XVr8Cq(0{%+*Dd8I0@4`}_xu4uFW9amF{=0iuSiF^W6r8c z=BUD%*`?cre~ex9hOYhVh1D|(7y9VYj*g0MPKt7k?J-^ZC0Eq8*?Pka;dkaL_;IXP zDHoiqU9jwzznS5^!qX(|lCYHc5fdi7TdC*4*%aoSFEF=Ivvv*u9KToS=!U{EM?(C) zhi_i>Gwz1dZlHn1aH}pCO#{&#n`s)n%63!?CXTf#Y7=JH77i%L;+X+irt=47Xl}}l ztwf^6bI7p7>G$`evI-ri=9l)MPYKA^RM<*W8^>Bwzj7~}SIM!vFth{zEN7{xiCer* zl2O*F(LG&-ZMhtqe13RxD-F9Yf%7iG5=@!J9mO^l)YSs;xnrXeNr*_A3EOQ0VmT z&A}(katiBAu`?AoKt*`3v*OdzlkHb?6r#`Xeieg@g$gh4t3ooRUY48xJCXh-TM*O( zh~0p5dW7n1H@QvFwwTMjP~NI)@oF>-`vVaepWX%fTRjA;Z9XkK} zHQ`518_4NMhxeBBp0?-vew)?C+4VdQQyZ~qR`CbvDXr@{EpAYkFEZcCc>*K=Z|(!V zv3~KD(C%{l_U<3_=>EGg4f6~vMBa_we7kU42Qk?o{Ep3gmBF_~A%6I?GY`-ZEqNpT z7^5|KmY!vN?x712G$MBfO9Nx^2u05Tk%9c`W#CdGJ`AIL_g=_s#0Y6QD7`P7vYbFo ziMaF@V7?&q!)>~?`K*pz$NV}d%}k-wO(iw)C~*)V5}f==;?V;|){^=_()AI++mS>Y zsE9n7!}n$!`mTku<5;edLTZHfVvzNl&!x^LFp1ZGOX#%`u<}WsGkU%CNYH_KzDcbT z>{bH~NeBX``-;2nb-GL(Ayf3mz$bES{)4Gw#<=AMQtjS-irT|OI4irK@A7ylq5l@y zp!-wD<_rJhU6G)V{;ohK#%Yqh{P$2+19I*Kxuf%Z0TF(Ko4906{`eh==ft*6^8M|% z9Ve=6?E^0$WOhq4WcJ4=oX_b5(jUX)lOE1-<-{kip^@yh*tWrLMi3FY{nz#O^zY|0 zf8pl$=oTNCxHkyg0X@lC^k=M@*IyqWn!5NgFCSLz+{*vO;k_{r*F?Q0`#mRfH+|U$ z!0fG~v>x+rK1Ur3fbBfvopLTf4S6tEuH9<3XJr?Sb|k^x4YfwI+s?dp1LIxpMDS1L zC4Wg>KoUOr?^!wes>an#+Ob}Qf&W>Y9`MGq%!q1i|Sgytkf4+ zJ^>}BH}W%e35k#3IcGlFc*nC+lU{%b6t#o=KRY;KOonD<8?Y|0sQZzTa{9zA+2j&ZjYP&9of+ zwK{tRc`Iu8C6osIofs-u^p$&F|_@4yP{ZZ^$)?5#7d|DHa@OO51tC*cv&{_M;5(}C`5pwEF z&ABl;C-*sw2u5j-P!Z?(?4HE@=d)Xym1ZQ8dPAdapC40kr2EB?sP^y@tbg-Vyv(7NsM4H5K0H16M=QpNCoFT`Gg>-A zYD+OBFd=LB6FY%H3CS|ppDyx%Jog%`R($Z;x_7AZ>~QJ0@$Npyxi2uCG@!DiQi(YR zb(dSkCClH8UKgax1v6I;SJBYJ9>MR^Eo8#)PKwv9M#sm+rn!XULtpxqmdv3TGy;lD zz#)X5z5q~7&0a*CWA<^t+lH~0akfWMr&|QTo}wevO~Kn>VM8P4YEAEHVlArAP|kbc zG(EhHHIwWILcAxb2!}_2;rUd;U|))m!F8*?ZQ&Am*;M$SLsZ==q1=3hf-e_|q1+3> zhT{S@58H_lISx_5=xb<|u|llTe!#>soQUQJbQ==6|I9N}J9OwLM(#d{gbcDZwwDb~ z;JH04*sFqqGoQ6JOmG^UShtnlPCnhW?4Xk)f-fKWVFG!IWdyO+RNuI#pPyB8>aOxK_8J%ZD8eC8yErbRLO9n$otLC|+s$*7uw zRtq2%5!-P>Mk9=^9$B5H{C#0KhCG-{l3cA)7z)i;NsSyedXJkt)riD8ZX3Wy89MjSS{ag%&Gk)XcY%=zWX3bCqxtCMZ(Aqm0K3FJa{CtdJaiWmxoRaBsxbZLDg51m}+NZ3x zBI~mBZ5Lu2s^m09*|dJDPDtgXlJh`)gBcsWaRhaBJ(_pVQu(hK^rp9 zRA3FX>Q^|mobbwA=P7n2?TDUYur*Hptnfa35pjm(rpKWW+DCXFdK$Bo+T*M#qs+r2 zi83pI2c}HYQ3CWSN390wI`Oj11@?Ws=RJ6zzJj2V-?q`egaHmHMnqWB28Z!xqe`(t z@#0*C66aYQr%}74)7%)Ps}W`QAji2etr~5BXG$7o~^avAfGam=q7jFYr~uU&P;rG54<*GH;*!dy%o51f1)IOa z2ATsrAo`1(UZESG9_Q3?<~@neTt3EfIX z)e7ScA3haNJee&T17(R(MLXGc-m^d(RlF|mC_ZosMPJ}uNl_*bB^B?UzU#6H(iYpr zCo6F{7*Alx3wFp_z!(pRoBdlEuN77VZp&Fgl$u<>rMFKQaGhaV^LHOVUsjTM+xGE2 zQ&7YmTJsYB7?LQT|4WNvmq&F5G9m1M=SP0tWwd{+`QyaIME;LP+OjTTgCM$X_~;Em z-#vl-U_La|&YkUM7PfEF+wE5^4pkk1) zaZ$2vTDZE&4Y*#xe?V+N?S(UJd9=msVn2eSnHEviv5a(1u!6u-?*ZQw0w5FFuF%c% z)1V*$OpVjQeHVJmd{tHyJQ4BAcQ6p`*2x*58q1*C>n z>5v>iI#ocrJEY-^=Uv}*-gDMj@4xW;@_hE*_kCR;X+hkB37oQ>zI1=+L~Ge#u11TD zUqt^;D~HCQjp#S@Zs2}BE86($H21nK<)p8H#oqSLz@6(z_~#|J-QWN8C~=vN5*`}D z3-Gd8vgLjcpx5vY9n&eb0O%7rVrnt37<=cUgbPEsPfq(GJU3S6CeGeO`5zi34m}jARt4%d??7|6%P;e;>YA_!PxEM+t&mq*6PI#tcMG7n}ZEMYRGkEov_XKQ09C zK~_Ac)YO!y9>X6DRdstKt!=wDvd+^FXvSpE@&WVgZUjJw5}C&cSFz~Epi3L#hg9ml zQ`#ud0ZL48kU@M>OcME zuXxm@j#;jed;%uLoCv=cdbGZjTRojW$!;f#NF8q7owfg=b$vxR|0_y!{;9E);nZ8L z1}0m9gye>D83jc_LYbCUC{6tPjnqJt@4baPc$)zK09>$HQXq9e>AFmC^8Ux(Ft6aE z&myObOykBf+%Hj4rC0kO_VwL;Nf zTzzloo6rnWqu*1&cuJZhr$&E9hM4{4?NTpi(;XIr<;86UwDgG>z$-pVqdCKu$q%a` zAuXu`!wmkj9D&tvb{dBLH&Xh0`EEOfZe60+m+D3(m4to{KL8hii(w!i)~)3cx;x;n zh@Ayxg&G52^kDgPzts?|=PD2$Ar#?xtAr72D@XT)o)W-f&tjVNYp+O&C;dPdldXoK z8lL%McQpnsJI25-&=P*%zKq|wRDLXbJr?6TvyDC!WqPtKnZ{g1;{3rAQ3t|m{(SL5 zkTX@L^KLGZEbrvF{cz2B=PyldD{o2A?4iETmsYpX=YY28u{eTxWjcd7WoPSYisd`k zEYIa?vY!^A*L>S<@ksuxzGuKe@sbrU0s_84DDZb3G@wXNbSg=N(o z!q;(Glwkgq-f5G@pT-n+HY~4S4vuB(xK#+o z1fIQA3Gd%*+;df#F7<_8m=&)#)c<@14nvO28e-D^(U%piy`GraKf0RzVp5I0ZY*}z zd`mW{>3y)3;@&P>Fr3M7Set*52IeA9>R^+ha8y+6XzgI^5I1DyA9H=l=tf0C(d*`z35kf zb3>h^$Qh?Qp=)j|8YEo`8>GlkhFGQ&zN$i<*A8TnTF7_ zy!-A|!_mOMO@(86Bt>$V@UGP`oDVzl&u3(Go~@X|t#7=DFlrh-#Mr7}bx80=d$Wvs*hBb+tdOWY*{^(p0}6!B zYw@R8;YPS8rY6ARwK+mQRnQ`B;*H`+1AydrYQ$8$3G5I4XF{~gZI+XE{_Ps?3$>&rESqd~?K z=}V{?R%msIAh|UT#f+sHj<~&n#>qParPbniVm3_k7y`^&mRY@0`9iQ9JoE)_%u;*u zX)MSIsD#{kOw+T1c_$L0!iI3ElBTx7E;>)Kx_!lqxhyb0xC+OB>3m} z{4kNq2l||*A@LLTT6&$%R8oVG6aXaM1`Ka|K!baH-4uhMMu_11o4db7HSfwJh2YWz zksY!uKRDg;;Y|~WGRA|j+}pcXQcH8y2BI(sp#QuLS@ShOU|!(%-+8U8BlRI|TXT?b zg5pcg2~I!Sk37_Oc6m+cj9@nzQ)FM@E#Q+#0asTh)`HX*pN^WB9HghD`^lEs7>QXFoR)e%D69W!1{#v3Aj}gxB`d%O&0DVDO z+nl;@`U407)#|7k_3>SkdC;%fG~RL#D_i(9UN-^1|YNd z-13My`6En5*=2;1-M)|Tn^g+DN2&!NO!cvedP^!PbDB#6-^==umbJ}5COSa4aXbvR zyS4qODx4V*cq^7RubkxD&-jK5P~7*;>J5vNg*4TjaHxRh4S0w$`N~H^8)J)Y!K1xS z#}~KI>(pN2FCV1pEILE`GY_tp8l|IU_KlzLpR@W~I;KiZjYe7p z?k``z{$wHPxVNgsU#L2}vg?4FM4#AB(ufrn+f&#-wI;X{u=|o}en^XQPY^hVwrgg& zx$ruQtT+t~3wkZkyzMz|WM9Xd^mjp-5>N8S-eS5qa#Pt7ErT@&-c> zU)!{tPjr2z1NYBXj>(G=xJ9Dp zk}9JxBoge^Uc1)y;HlLj^g~XWgvlQ81oh#tu#n%S!puy*8Iy-iZBc9`&vD#1FGd`d z^cB2Er?K0;Eyd9pfMuU*=Z8=)U*ia>gr6qh0ovuqHT?~BD#2uc#oKb|z)?QBr zHNB7%m9nNY{XS>v=+OyNfKSKAP^)n|Ip6-e;+pxkbj4Bm<|@LmQilfZ0VFbg@>%Zg zoy&V~lshSH#shKII&=Hd;sn$D+WVpy1vP==*rd+s{JBbCYU))>&t(n_$|_fH^bKa3 z8HkQs3XCa`cyB#b${}6#;dP>?#-e;AFPY#5*Q5h#Ij{(c|uziayJB9A4V%`O|*18YI z+rReZ@Aw$P_Fq!WR^jbueP#cUVASrQZ=Ri(sh6^*Y_Lqq=I}-mu8YuGXqg+viM-2lfV&|TN#yGMxJ$Z;PYV=yW3r-?DmFrZxHw)UzVP0I7 zeS1n)E#DX@Q%GNG=KGe2ow1a9P~+<$EvcQDL*FmGJ-+cbkL>wIM!Z@U`FlkH=>Wm% zhBxF&j-Sob7fSEc@&|b>Kg;X(rUZQ}P468S_~5>mTcAxaqAD3TzA3#Ps*^NoYP7h@ zo?9P?DNCu?w;h(@D?_OCN5yJO>wT5)tEY3OPa;-dN8`Y)7FZZoc%`zQAor*bN|jK< zXed*mQ3^~!AzFSqyg;{%m+@14?;G~wmsrYwOXOJ6^YpS`-p7()1;+q_HCKj<@`54dpx{g+b3QExT8$DEty>xWqaV z@ldatGelC-pju!*Zh;H&zqe;Db05V{AM~qMg6M4vazJL^gUa8_Q}Z1N>^IL*-XC!? z;J&Pjr2yL{DD&u`f0FNjlc-uPDVnRY`TioTw!Y*9W81zWTZPfQuz7DXUsWn9zT4|u z&=Y*KND(xoja52! zTXaGLdV@4Lgv5W?8=Zmje3nh~Bz8MElt4_8Y(TAf+~C#Xed)Pz_Riz)<4QEJ@KT zd{@9@6@k#o5T`dPctX9^Em`6MS@d-i3R_~s?RQ|%Bp5luVKCN4aM@F5$}|h?m0Zx4n$ zw;WuVfg1UPEtKDYsg>ZvI3&d1O%W6+hkldw4bLkJhyx(XM-!rn=K9;Q$I|X6Xj~&t=y>Jde~O zAktGj3JmFds+J&leZyNF*^etw^14|=csY>_&nkMP)@5hvT<)XQ+L#V^-q zp2^_8uWyvlZN*rPrVZct<@|BUEW-k<5~QYjyM8W2Df-*Pw=LgObJk_9BAof2mSe~m zhi@krVLlh0vwHl#7)#7zl z&(zV0#PotD%~L^!rDqesh@oEA{;Ja3tkW%jXW%Gl!HfpLQFa%2&jT>I z(^HDEb&ex;KfOqNeYt6}{o#+s%4?ADtORF zX;8Wg>J($LG9^g&H_{>qjD1c`bz&`{{s0%n8yPZ|1cQp+6=3x?K;;u%$15Vt5Sb^= z9np``>!L^nl{bEhl9uWbu+T1?ds3>m5fh_7@DM=Xj#T`KUt%aS+H1Fkm!un+{xsi` z8>6ffZgyE$90zUTo$lQm#lQ>o@1lb=B9dMBeSG34Vn4y*WB%tUih&|e@Qd#UX4h@P z6C_LFUt}bn{F2ou4a>z5NBqB9JJh4X^V>|+?QBCI6T7HHz)F#AGk;_!WQ?sYz$ii{85C%lfS!`;Lm36em zxsO%AP$Tpu-KY(XOz^44zKR`*1WW+FZXcl>yn99izOI9Hm&tnejF8GnP?yBRB?BgU zZ=`MrN6Hyp32#1;!(-Ze@{nF$$dEIHZppYtZYh!%s%JFcXiMmE?B#qCtVT5ry1p57}yW?^sq)`U8i@%S8l{GwEErR;a1ugjUfcchZof z-t6_QWJ}a1BqUPQQ)&uvFZj0wz!GU_MlYv*A_2QjwMG#XN}_g^->3Bs*l4J|`mK=X z?S1L7*?QqZsc24nzeTY*WRTq}YuucEo%zk}>(!b@5KEvZ#P`pX+yq=7`9!z1J7qxt z;F@20L65@+a!ZvYt`HNcVx%ozHVRoUO>sG^(1@9(r6S-QgG9_tw4y@7TcjR;9qaIR6A%Q6A}OAUkENO;{MVUes%2+N%sY=5 zBEwuEha<{nnZ{oKeuNfgnmo&v_R+=^t&t#8pHdF{z4MFjCG7@VwQf6kUbUh}v+74; zi+fz1n|#d<8!XM*q{hi}rRPk3cPyJMQg3yThXVW2jp<<$Mi96(yC2y{ORuW6jGlVpv^;d;9f_r5x@0g0 z*0mA-X2;RLg`_EP0Avc7(nmh;qAR%nr>ZNHkiK01XztTf$A>u;qt^~@C5`ygt;M5Y zlB1u^3ka&u=yDB^;_@&}eg4>Z#QqKBlm4Suq7FK)&i$UkDR>TrQGwo z>I$b4-3Q+_r7i;R!}7DNls#rJj1EPjWqN{flzmz}6=dvTyh*&iuEaatp!l3hcC9A3 zrxc)r-~)`vJgn|q@eg6->wJGnb{=v_bQNIaLP#+%Dv|1U}*Ei*W86ChS4{#{@UGD*=P{(NZe9{#iD#2;sE)YsCclAi z!MX5EMlJf?e<*sU)RbjIlqp&i=e{Lg99a(ea7=N9V0L2$jc4mS_ev75N%{C+N{CvM zRxVwLBH9-~Ouz3tGz4++>bsvJlj-qMDmb%zNHGZjl8mgB32PbT=;Mf(yaR*vH-P7 zSy-{GMRw9eM`%|BV29>t;-k+?8mAY{ltj&ZtE0sGc}%?tz#)^^$f_0;ws851K(5)G zFXA4-OIrHyWJ3YfY14@4z*sW`i$b(VWPo~Yiu2MGEN~-GniTB}IHVQv-d1ymKGxS+ zI^fnT=0Rmmq`m^Q_Z-VwR7Q%@AJTe@?2+327}Ut4o|1wBn&2WUyyX!^-Y1Crn%QlN z*<#|8grX;NKXj5;l1bPT&CefWkyKkL584M&>i_X__sgxwAVjHAcBh0t?T+2U9n&Tn zigKI$_5JQ7YqEw6oh9{$<35ANKeu9WG>_CDQ9oMa;VCoVe^A_6@;|6KMx;Krd5`eE zW4i`pjwGD;n#10(_Cn@ACu7omjA+C>Kqn_TS5umgn~1f%k=e;87z&hpIb=*L(}ZEA z%{t!(?JM2kA0%{-V7s<(+sX@I?^H+}#dY+huROgws1t;cU?>nL2{2tazVx6u!g{wN zddavM(sCuSO*U`5))x7dE@Eu5*Z`^0pKN?$g*!;DFhG%NKpBpBQAl*(5T3L3bHi57%;Y9!HJapF^P_-R!*aM;+%GSE;#1Z*FETuhD=nu&k|cHaTJtm z^Cpgz_nP#>d&Z)O&m?|`GF>{hjE62_xH-OD(v~!s-jVSsdHuVnCbhr;fwWvUf7&u{ zbF6J;fm-d*hsHkjHTe-0<#`F}bN251Wy0|vvY`XcXF&rl13CgPh3DT`w!s85r%9-~ zGkg&{oFLX75BvkM`L12`JJp+q2>G(fDUJ1wjC&Xo9dF}Hz{DcV@xNXT*^TGwM4h7- z%m>bc3MS8)_cR(e)IhAvZ>q-8XMq!<1lvR-265Ika7sF++k0O_W^476{rz*Zc^|r` zepBW_W3eRn+C3Qt`iWZQwzP*S7bw*{=WT&`mOq3%OI7&FQ+SBMkz&4lMH+B;MsGhcsjV}SmtpNvBuhFNNi8GynCQvR z$VHG(_nwhuw>jHQbecbqM<%T&bJ?fF?-Q53$Pi#al_ualPZ;^mi`=Ma+q|Cwt+#l= z|AxD#^q}m$Tvz4ihdcRsGBG4p)j_S!qSZz5#5>DUhLa?#>Jh*Etlxo2>_Xh8-Gj>z8eF}xNJM7{mDo{4u#7wV4S4@Cz(p) z{@iz#x0FAw%`8zOtz$%^zi^S+8@bcAu7T-bx^l^=n?h>NhZpOVQIn(m!N)eJ=~*Gw z@>T>d%cMgPA<5aqpr34?w8Hmo#ML1-x)C26QY@R@{i3~jy5`NCWncVaO`VJgIS8>% zX5=fwkPYow@BacuNf`a5@Mlf-c=8Ftu=A!(!sso9E@WK%-lW;BZ?E>^3!d}Q{#WNf z#L3Ma-G-)oDBoxN_IOz1!4&e&h((4#KisB4VZgS7ny7*#6&Iwr8$E0xukhwlC#zKc zhe$N`J5Y6sxE#m6NOhOr3FNxHrqQhFq=&xQ@#Yk1PdIaTN@GlxMPo?&#KU>Eg7xu@AqQS>cJ8%DZqbQ;;ZzTn$ z|E5cwLL#hAjM)^ZeMop}WpOkfN0-Zie;j?&Gs!j79~y$=F{u+U;9|_t=$+*8C!a z@!!9K+NZ?hLtT2gvCk}SspdG@KaZ)hiD&#C^!&Dl*+=%x2N)1Y=Qmm5e&svDH6)F1F>(vjOI9{Am&lI= zj36tjjOIO~+_xo}P2D5WK{Dhse~`CtfDus3Z4@Q9OTP$RZqo$yes_FG;w#K(e0p#M zy(iM`w<LwUYF4_1##Anuj(Lapi3 zE1yytSspNmTTtoGmd7TJ(o#E<)SI5zGTO2jG+fDc^#!hLJs z+>JnrD5OYJnAH6Q5zD;H3j!I7E2~Vromry=m29kv%ohO4J5b(4kB{!qDf{*iL;M<; zxME0l9|IGGC7F;2xlprieCcnf_)IaEt}Gu2Wjt?E#8F?}@@$C>)>OY>e=B^!%n7Le zXK<$0W(W}p;Z)|D6$U(CWMr7uirf!Uck|!TM%#J zm4eU$>sJiYG?{qtA!))uyU^Nu-Yq&VQLgABS5JCTio(D~a5sw(JZepS8X>hFC6a%bA3a73)`uQ_+=NBH0k+Ti@b7E}mh=IAlvYLTd`8RrQy^-5{YnkT5~8Ob;ex zJlIgd-A_yjOmx9Y<8~!crMJC16TD2M7fVzp{D^)LXFn-{As#3eK+-ZuI7H&FWk)OqoJjG6IJ2;K50j2o8=u?$X6sx_My{!w^kG-P zep7(C=qv&gDdd;96b&6_Dd}`h<^V4Eh2byc$JC^ZDU?Ox#LVukDqI+Vx&(9`C`_Lr zw>79SSByWRfpJeymKqK3(HLkf?Aoagyu*@9*rJjeR_N6NaENYA6nHo}?7CcXtE8RN z2?i}qTsN)j5C{j;8ZT=$I7In9D*-WHQ-#TULZeWev^m4DnPNmz^x5)5yX4J~>c{Z4 z13QXM0iPD&>=>Ce_45eaRuFwQ>jFsE{-JeZJo3SpP$}S)o)9C)%Gg0Bnev6uWeBWT zs-J=aEt`o$kU-C1w~vPD$zAetn#_m4~#@6%<>;Ja-mC1)`mG z>0iDJ2elS12Sq!&ID6U0Bzv6i3pgLK6UNC+|Kn1?8Aq1}$V?CC>)xLHdi#4BK3M_V zc%wYtm`7jV?+t;+561FKZoc7;z0*e6VKtka6*kIMEDtNZ>F@xLhS%S<#|p&nmr&k* zYkP?o!YIq=JajBxYaWpizATQsIjWMnZY^A{awPWIo04#?to^$FfTWmN=dJz5kVxe; zZ5mp##MeT?mf1poxyGN}8tv;Y%g0?8%O~w!p^V2>j&)wS<6^3hO7riTE(lZbXcxaN zFEfTsNJH4@Br#D5+;{C|8SK13$8Psu`QHVbch6ZHpLtqscxd}2YCtRTGF*c#KTCqZjB1DDl-JxT^3G}iB=Sp;Zvw2II}-7I$!JU#i{0ONSf7_blE=h zIu7hLB63y6B3SuQkNrja2>&ILHYF-dX8bZA8Bx~Pmq|MFspW?hqo-qHec*b(P_m}f zcaX)FtfiWW4p(5p8#Iucoywk-1UHf+X?tPjgGy4=p-Mi&o$&?QMx7W%Zel4|cB-_pTo_ z(Hj++I3{R=-KUuOIAFdZjA-ky}CTxR>t*B==jj zzOmkelDQ-{$$0Ulmc(j8T)J$4rn)CHYK|o#O0OX# z+L|U_>W5LObhnhb2h-b`XOUqW1`gGTP@BF9JKFu177H;WR`X%Hq%o-kQGw>AOG0;( z75i9zn5j##$BSwrp7a$jFL%UHd!+%bI|Tvj((FNF9RcIQJDcaq$bXk0*UKJ&EjJ!b zE_YW%&!dCMXJ9;^AVY=>d48Bb7E|sf854;>0F{56Q7a-Oy|%XYQ)y|vNnSJ)insdU zz6LK@m>orlGGNupA^k$aTHpb2H)7B=J?K*`wwpvdD@`M#tyAn9d7LrbO_vr?o4(xA zcZwsdNERiU6ns@}&Y6u{M0Qf}_e=Th%o6Wm{AG?Ka<37WrfZmb&{Vux`bF$P!cqcX zLA`!3!oZiN%6qu8Ld;Wif^viOYIMgLUx^-oeQ_lBk^3p|al;}-;k0GPTI(^FA&DC$(c}*S8B7wSV}e_-tXc$awc4mRkb^WwHr3OZ48OhNVV# zXJ-0}t(+w`1ZSE5lRaSGKzPcF-sMI(I?f9lnHs9dn@3NpmBVI(SO#cp*q z$vB|VXt5;Pvz~KAwB##$?a^TQ1OGLSYS+cr>?yI%z9o?VbV6FT?fU9pATw!Oth=ec zs~;R)z-0@T*i+URAxXE7YsnZ`QpNdW5<^DIs(*GGz zHA%7La3dO-ydH>oUBARxt~$t4fzaOAPYwMHz(zTcvvjvakrN0i2w{BX=IMNWb)NdJ zclj6aJZ|z*VI(Cw#WuaRELI4Hn_?1kZ0b24uNfLtZqp#^5J6|t`*Zx>1|ddv3&wU& z?DbGz3X}wrvYK$2j+8l$sLb6O{Ze7}*))-?Zo==Vjy$!H4E^k}6OxVQT-(67gRIL@ z|7_G6<`}Sdz_FgximaLZVNh9dgwcL0PJQ%z;VmSlzanm5GE=)=30WG0Pu*H4K4@&c zdUmfX2;uF?B=$O zm$VIV?uDlCs)y9Bp)K7X(iHan1k_gtQBjJ^mPT1WIjUcY`W&a~WsMzocmGxM+31Fh zJN;}J?FeEO;qo)&4fMb}V`O?NgtZ^RByno>!u%!}80Kk`bC?$#r!3 z*AxrU9&jN7bvk!C5F=UTW3KLk2+~h`v<{y;yuTpt+>`F17`!Y~?^aRB3`?_$4dpLP zS262P!m4nGWC7@}Dhi*{=HE0+O*3k^z!r3)?=2^SKJB?S=l3h-&&E65Zj8v>8aPWU z$(0@gsXq%$+n2AqeVW>jSetW5vJ{LiL&2}<7;xt8tK_-X7`Z^upGX-`?-D|j!|}H& zDc`dU)2zqcRgUkqKLBP?HlvH`o$m1$BynFV+pvWa({Fr86Qe(n${xjB1ky|Eq8o7J z;Bx%Q5BO_nUX;Jje;MolbyOn7w{5xSG&xtZ?X_LxLA03sZL{<5HRtEOe1>ysH`e@) z6@igY<1MiFp7AzKrc6bTcbIJZp_srX#0o}7Dx_#)iWQ$)%mTH-I3rjkBJzEtqi*4s zwyI7xYXzn%g{wLCD_bf!ONJ3632wE?*uE+O+2E`XhL?D4P*P-pQ@c;=S|wKV-&q}# zTv(ovk={P-u7|z&p_tEFAGaH4V-X5PxyEMoSJoP@8mF4n1SN-QU?g?l3UzN*$;r%w z14qX!__JgS*;n(~k54Pq-5)4P`IJ~y_*E8?_y<3N%%N)3{YgspKW#4+w>G+14b-cb z>xuf3$aWqcS_Bvpt+bdiUpDFcnoc%f^7j_qdT`&^ZVYm#0Yh_xG}`Krx+mEshx(F~u)| zm})=5ll?w>B|gy=Runq4@Cd#$X&|NhFdOeB6l#hIZQD#$#ZHx`%Z}h;(u{b@kN`@~ z5BX#;pL7OXZ^!jSzXOYrc-R+0{^rpc^5f8eJ|V0{?q>AaqXAY|<0y+aF+OXNWaCJ% z9h8_zP=+iHp2V`1qE!5f_<_;Hc{y5A$U?^zEi&nEwKfYY+ZGB|4lzXamHQ)mX=k#o z7T2n7!&78pk-1-VWK?s<7N>VRTDT3;VKB7FIHLkH0Zi#JnC)?qjQMWF>qA{c_())~R{Igb$O74iO z*ut6GA3I<89VMtUfjF(2z=nHBAT9Tc=JbFN?|QRU8c4nXF(2oq4BrAH=oT&`?Qz}P z3RZt5QSiuR&_kp#IlQJm0sU#k)%Dw(`hz+6DK_xW1jjC8fgXF=eFrWiC?jtu&};y) z4gQ$e5RC>So+HT($n;O3W;Kq`7a*HKKl5iI988-AV(l#f7wRPfTO8zyzpknYE^n4B zdYCFbTndiV^g-HG{lKrgNR2ZIvd02V<8VS-f{3em%$N&)_g$)r+b`1^1K4e!*aePc z)-umq`2y{G5P!*?bl1lL5x(@dU2UlgO@)t#OGmDGTViCcM69nG%!2A$G*`9)5$oLm z)}HozZIh)`j>j#8O7n|-k@mU)1Js<1b4~GAskQI@*g4|PfMn(7a?NZ+T!pL ze%O;NE=yxt)~amymV8e3b|%G6NpoX)>}tUrQPdVRCo?yoneeHI95KTe?@Vrh2b3op z5_gTpWnCYbKl_izd)YsjuE@&Ix2lw~{y*@+|MO@3-!wuaCW4$dY^vJ8Fgesgo*ke` z^v=?z2-P?S@DbBJ9m*IY@EvcchJSs3DRt{zDN!vN=e7x`4KL*2VlpM*r>>`}h12LP zi1C2UE+=X?u7>m`Ph;cEHspPoO!bZuC@I^4WzWT-6UXyZ5ovF)eV;$@ zVy19OJR{=*^Gn{gA_%R4A=!^ixFK1EW!LbOyr-$ZF!x06UGU zg)v`$8!+2Z`fH6^!_p+(GzzI9o0uH75sd56sslPf9wGYMEGg>sA%N`Pm{iDh z1_sv3%>&J(@WDI^j+$Wd0%s# z3Pq+~Q6Xm9KNX&QjY~Yvw#Kc;x<;QX-59ZTbjn=W&F#Jo+oG!cavd}}ez@Rz;kV5c zI$*z)$@zQ9w7WyKUG8ri`_=MmLZR2*UU9fhGk7u7VP7#r&grh-M&;s`p4c$k8i*$A&RaR{zwZuFS!kvfwqHi+D6i%-JZ`v>|%r#<`-c<%eV~g~-HK%s_zfh4M z2_W~k{Bkz2Xs8{ZSwhKeZo3C99*z^m+(Y>%GUaoPn%@GBk%ntk9Pog6ZKNrd`*N^Q zHuf{H)_Dz!9?&{@o!*t?h1^RD|;e9lTe>ahLU7&bsdm^vT$ zfZ?dhIzC2lOL^{SeGqAG zP^Y*A5h+V3ekt>r4b7W#uc{|Z(lzG@_-6XbA6gN?-R6dFTKd$VUDWtPi?}fxr4{{r zvE`2D(S7dY*W);jI`?ufCr@!mr*kvxO@eZ0jhRR4TmIK;^M&qJTjEOHypW=^Dv8LB z{Qiiik`G@{KqGeYEBu|+msk@?-XYLF;Y~7_Td|8H2{4SN$RB*hQ(I1guZ`QSw4=Wx z5y7Jm#*4h*RO@7b5PYTI5mFMJ*N3Y;HzXpMLu6a>h_T>fp8cy8w=dmw224H|67 zmfPkY5d!zoIZk}vk!5(nmv@Oso@=4%|2$NC{}2UXQYXHYTP>d_Ubxe@GBK&YhzmEP zhc&Y!Ws_GE7XJeUo=E&{NXj7#xjOCRDQI4DSLG5CHB4pcLG~ucuoz8B8ldNi#Vr0x zC^c~5cDY8-L4{lvS0?+jV=IopPzP+rd>rj1Wk$Pc4(0|du6&fjTmh5TO+H#Z#<%=y zcAH`{Js^5|M>o6@1?TDI*%=JKy7P_^?f8)^=4mut@~{DjS#cSWgcK_w9r^uA2DTN@ zhXpMnnj{<{xGj7mpGaR6iVHXz!16wHej3&Ynm)IGK$gP_jae#!{qy#Maf4;(bjCes zS<_KCaYu!>4Jm9VNw~+`sfSDd6u$=o!h4a8v`z zF86#XO``q5O9?_R4+9_B4BlNupCQ(15cP>4_9SoO?5FFGgYsTLOLN!!8BO{KTwdOp zHk^;`JOv_k4Gb;^o(Hi-+e%oP6xlbBYdI|Yi0$zHs$4YYFqx4K;~<&5*E~cS7?i5e z$+SwKCSppqr&em!q=>$v!`s(J+#F-^|5}H6nLXU%YoE3Md307y^otRYqh1(nbT~G|qA5@f#L|dMsEZ_JKCCWF9OhBi?pn(ub6F@oy~#LVD&Tge502?6wyl-1 z9QAW~S-@d*aw|Y-3tXVNs8MZs+TY)27xpKA4OSh-VnW^QTnnGlJEs|oy;BddpZ}+h zz<1BTKf1S!SvS*UZ=5lf*SaT&x>Bt<&Hb=%$#O4Z;vc$BBe^%Xsb2rKB&Jc)?a;8f zAX(`o^H^(p|8hQhU?lD22@!Tj98XWG9`4!ZLv|56XX6#M2>r}d7^{S?O@1Ao_VfSq z+x@>sRtrlaq3@W&W|(2uVW(I4FZk3EksFWZPadF5j%8L@58Qhkw4sj)152W$r|G_? z(dKu=LcZE(DNbT>HY4245nc5k+k0nZ!`%|S1w0YtNEU7Ya4K^9p~leHGF$N2aRj3} zH_IJ3cfgjM#{r!Erc-Z*Uf$ADm(xOB;emA{D;9kH*8k-rjN3dyL{oMKoS|T_Q#z6zN_setJ(r zj1&lYXsWs26EFrtV{bu($>}IQ@O6M90n?F8(T$aY2elPJEi3%IE zuS`^kF(RwVy#AEHW*zW09{l#*j&q72x-E_EpA~V2^d)Xb%=}~OBSXl^ayL*?NS zxYgLJupo?$4l2e0+~nt*+I|1r3CS@!?Lj7#1H;aenTDX4vX9}6$CGQ}&If-@8_5~! zyD&w{^BT<}itXn7;9fApHFSSqdr(T$XGf|fc!YPUo*0a)hBP#C!y5s;BwAC7ZEG42 z$c_PC9mjxoFGr0vYJS;gj#L*A;3+Jg`F)sGi$V2Jl4R7C($(A+m=?!lIQ_D_QD?Py z{D)Xauhx1_WPwf+&Tq(x2&4DC*J}S2`V^-}cgOH(<@>H5ya!7riP>Vpt;xM&_vu-N17u_{g7J*oB1c;R!PYJG0N~57z_$zpu`gwkK!UO$o z_PDP3w@U%ieLZwoRJ$Uxwdm6Qj4wixU_@SNLV5#gcVNnOuNnk;LnUs_8nD(g3WL;h>8 z5A;+InY;o>Plv+>lfFf)4h}8deskz@FFv3{f~=x|>gfVC6N%j?`wDmzi&`Qn3cWGI z{4a9cQ&Ur6O-buC(?Z!DB&Hk7GG?q&il_-6 z^|#%7YAzocH)JgP0$v+L(~^iOX3adyJnDkmCuK0MB4A|5j8j)Dk#uOD`K+5#T)0@m zKMv@nacMqIOewhd_E8ZHtKF`HzXn&hP;3lN?J` z;}PKQ3{?M9=35KBJ{s7ao1{de3e4E=t>5LtblsZfF3Ys6?2U93JkJAK7B7l^B)-k> z`8OigD_j%R4V9e1h z?KfR)0D;HNnqkQ)?d?a$+6EWmZHoIQL<7w5uWdK1-w^i?$BYXi*P;HFJ1P?R$3yx< zFSh4W{=3G+1@2Du|FKJ-%B-1t_&9lq24kXjn#baWJ$u)Xg`ig@b}#@M6-`mfGlF06 ziA?eH{8=A3S6TkUE8g`0M}T>#Ty}0HZ98 z1qs%;(>MeI1PJaDT!I953Bg?&mj)Vl2^u89-QC>@?(Xi+c4lj9wq|#R2derNs`~!- z+;hIe1oR)kqHvGwsQrecI_o-(^@}&kJ;r{311{J6SR57@E1gDFLGT#SMNJH|lWsVg z_ia`_)wI&|=Ku~)m29Qw9l6`pOym9k`h}X*!+y4`o8OMj4@8 z8A)GAhyKzyBH~*kC=+~;OtOTMikE7{A78KT_=WDBZRXcq?bbFCY2%BMB)hg5ilb|xmJYljw7jjB2X)Yw(0szdnF!jZlV?|wJt_fVz_8&CY*`}`l2i$I3l3E76~?8!0XR*J0EVx{ZIQH4oMQ^{yH{ZBJ8VXUc58gm z!m`52sQtJPSoIXh@=8iY3d9QdF)S3s5k=_x2G@U$yc+^=T?+PMq~8_&G!_2fJK%r! z1L@9bj8_Ak!)Y71=+W$oA2j_J8o2RsJ}RBrVug_l^m5frx&ydpR)5xGE!-{-hti>{#n5$uGXYi3|+9Z7;(;5vO3KXK% zI?e8tZ`VN@`kpo{oYp*4kmCCHm9b=omc+~0kw=zk>FlH4*v$6?p{ZBXlt@FL&R*p+ zUi1B6;u)y-j@4zj@mGtocP@Wkn0q1hwz4!;tQpaaKTpz0iB^}zEQV!F!)J*ZI4W4i zc9a`3X=wG41$yzgdiXgzo$;y#30IRGi#HfzY;rnLcOp4u5gTO{o2kVlwvabO$FBm{ zcUpg$^E5!BC*zwJfqrRH!Hyr3MZaVCF#IH1kgB37(m73(^D8<3Oc=|MC-o^7}h5Z&8@L3ji?q9uTs<_6sG|lnxogwwM2rjZ7vNQS%Y6eii z{XAvK&kV*0{(Xm0We!gK-gH;8HN4T zG1k8`KbaVPnHl5MPv)lC3~PCf;pcH*nbJn!7U8V~w?)3U;UeJGb|hZKt~sJD(bjNv zk?+&yn{yOT+MM2gq<2=O14!Hirvn7wAm)@&yh!0hJ|PNOh$a}n7p1H`PI2 z_r0W(%+Tofo|DWcTPUC3pyA&K-g89m1%>;6q&}!3E9L0)okb-RC(~@7RkOcyrKr|O zdH{tP6x0#?bqTWpT0Mqxr zTlXz=j=HSBt7XfGz*B)p9AJ@s-6bT}5Ol5DhbDa48)T8xyrzYCkhMhz`^XC;Sx)aQ zN{H#Fn9OQm+Z1h1&xPyfPKy2B>s}=qGZ<7dT@`%P^`NcC$Qd0X+wc`X0YvFxCSdWFwQ%p&gxw>?Q|+-aZm(`)bT31ckhSgAIFoUvxBK>hzthV_v=BsgX78ZK z4g`f*X}_V7mXH5iSlwFx5r9TE&pp?kR(aK#Vnn6kK+p^Lmi|SU#=MiUuF!9N)*HT( zX-8%nT`%jTD>BTqJdrq$K8{SI+5MJp4hD*=au=Tc{Hq)K=K%!s%_)vTCVgwFe{Frz z)jUcb_>!ImJh8Z@HoW;rUV8c;x!W$#`=ia_AWtJ$4g_Vz4fQdc!(OvcjbIq0S6Df4 z^*IgKXoWaLzWYw&-Wz(j-!Y7G3)7ZE?Y?tZc zTaoI`ukDkANnVnN^__ON>>~gpd~Bvw6N3xq2yn;aoSHxMj3c|DDZ;Uf>mDMnUA`4` zQd$HU3{6cD!`^RdykzfMf+M~%9npVBfv2dW(qI~iP!#x)aa|Do2ces zNxHT=;u+d za6Bc-dzt}6xSGaZ#v_k#d8A607V$GlW#}Ydrm=W@oR`T2rkN=~tq{IZ#JIEgFIh6N zqDicFF6QY@naz)j#Vd#3hIQ@6MgL_6rIH*Gev}UuoDEn8LI~rj#o@k3G#6fo#>RN8 z_?66-XwGI<8?rH~NSk>i686`sLde4u4)a$MG6#Fq!=t~>tZI&A* zPnKH6yVBXGzPd#t)4&Od=^NkCNmFaW@KFsj0Z`fDZn?R?OTbugT`CLWo5HAk7^lOs z*?+p98DLb%(ocd1yd;*Kr@M@OIrW19->rIPbqxf>Ou;hPZ7JHkv%X^HOY?qceUkYz4q zEE3&k_5Pb~A*`3*qEK!a3@BUneSq%YhH1l-ts3rGDqN)^*4`O2tH!Cj1b4@c=N{*v&ty9s(5=B_G6SezI%3Iw-EJSJ+ zAE&>CujgD1Fs6K5`7uINh(#4~DW!5a#+5k{A0e|XWrIA-qZTl!^r|V8TBd^VPBcoj z2-Smks##N}3p@4H)Hjcf68kt0%b#jxTu_Ppb3n3V?(4qCHL3}rdDEI>>=&}gaF2sx zyFSvDA|MJInC^aqQ>KE!K#sf>$OyUiB|QWuL-oR1lYLu zFx**WGTx$FNxbLg3NVH%z7^epYRmWBaMIuxU`+RPy72^Li@m0TMxgLv*#e1 z#{AU4+>i_;nwJ_in{4tJK#ExVh!?gOVO)Bql%1sl{R` zCPLgdcO~l_OuxOG!i(kHxwzQeXa#e|-)>@VzDJ6U3r=JzZ<)egXmTlrH532@wq3m5 zwXY3nTCz}5hVXXABgJOZV@?@}F?|6rz$AEvTa7UL%sou-5%nkt6NKz+{5*uBmTmUU z41ohm56*Yc;wp?!k>u0`ngJ%vk0r`f$-IXoDyJe0Lw6m-=2oi{XFz6-f zX=h?X<{{5ViWX33&YQIqy?Z{vTfFT=dvrHZX=^zdEOg~^aiejsU!bYox|ql4e8C=c zM}D~Hpr>-`_L=^XANCMQW`o%d6dov#;y|e={rw83;|4&CZ~4Iqy45Bg&s|h%g}Mop zs9K&`~IoK0`%6wulO-@Ay~t#z**M~OtT^zUCWLuY=>P#L_^P&-1(j& zZ9s$pBMV(~T;vm!xb16$@6y%N<%0M6`l3PjXa3>BJtS4_k8ISJ)o&m%jI)yYkAv;> z8-mGeF~N>T-b{lT(p8E@28YT2V|4(HoS{W5{-7B{R=J-BFVcMyD%rc0TIzanb_@|_ zQhZ{V*rSMbv6Vy20!tM@6bTdeGJs`njM|EKQqZyT8bv{%>|^Y}9DOc{>u?l8eE21e zyD6EWhq|ASf9wvt&!X$z-n*p)kwF^0QlJc~dPY#24m*DL`QT8R?hBGqnb!jHV4@6d znlEm%fG_HwaOrE-EDndAMj{#RlHN%_Qk4+ZdBKg&^Fth^7+@@4H z+Ifg$4l%#`Dt}SLb^R*YmOx0f5Y1X8#3=P6`QY$XQxVjJsfL-EnK`L8YKRZu zH~aOqtcX^;2hhhqC77Fy{_fQC+Gu?Ib&i0=v}n3u9Iex49NDo+Eo-OV@8CcA^aYMM zE-0RoTfluj676<)^KXI`b_3~86}OH{97Z`wgc!y|A_~K_j++>hN5o)Vo0l4XnyDc@ zx0hv`#d)(?t2#SS$IYGVFkJM2X&5Sluh?vWr0I_N><3_CCxn6VgSux0vBXPI@?1jz z3@xBJsx}OhhkOBcy4+6J$~2!@r>^KYo(rF1)ieRcG3TIyOMD4_EPvr%G|cdMdUp0e z!-PMJ&9xBK29k(tI$Pj0EcM{xcGn=JmHjiJh2+TcOHb@?qS~FR+qd!6G(VZ7gq>Gq zIrUln8M&J_HHGn6LHIgG^MwzSci< zxzu!$lk>4r;wi3&t4{SXIvX~(>w}-%L|CnT+T}~%#5{ie<-qVUHXGt?rc;+9}TrcL!D|;=& z-?2JNy$fplan#GhsA|)-Sx~9+l_jXlVCnwF_^N?{;gjumY1eI&=Q1TFp!vmLqFR6A zEp6t=aZ@X_KyY$$i#67h(JGa6&luJYMUOa|`%A6o%56ro=@ONtEWrH)Pot4+Uc@bW zmI$SzW;ZtZVW6qEHazU&G}s<(oZW{kVUHm(oFUl7c1k*{hJ-DzhdEWsb%i=|SHOlF z(;=w#ucz+i%Wr`XjwRzGPH` zzx8XVsOVTV+}wToW#M$Owpf$ZwB(+7win0B zJ>=<2OYnIoKg!7))X1rMnKU%l{(5t2@OERss@c*O!-B*=>coO|>*+*1no z7>qD)0ukWnk$TYKs49xfnuZWKP%W0?v!1t&*}%)N|?c$T1>waNYHw5IZ* zq=#6)FcX(MyhGN-~Z9mAsMAK`%YYVejE)hj{2hKh*ql zbg(&``!|mbRD&PD(;Ka|iv}VDR9!iD(Y}B3@t38)y$zT;7M{_2yRt%CMknh#MCCp= z#iKf`<4JG3cCUZt1v9^GD2G&PMFBijwmeOr1HdyWR>PAajYI4F^sFlz-EK;m*ph7+y#+khw1M9yF8X6(H2cLCK>9ZG7^c=QBI{Z^g;a~2IN%@s2MuR_F z-x##$&%bW}Mg#L88&MQ4v_W@BXm4B{TaY)RnL62RvhXyA+pi`fw(DMhf&-0Am>Lrs z4gETQQu&v3aYFV&NyW(mzz^V#{YNS`8soa&BwXTcivyab7!l?fp_$=tb|sND)t4bx zi9$10)vxM5(BZ$92JKuV>Kwxs$IrueB9Pt>en8&f*!>9$R}!i%!B-yNPlP}KVUv{X z)3vi}A29F!&MGjn?N26rd>Ke+GKeYJf<>B*0$h#h?&h1q7?e{~%yaoTMv9%5nO9sT6tOVT=soi_aPJBCSUgLfTlgCGvLRujM(+4&$#r;q_%zOvEHxR z@NLT=vZ}cMrto7WH|`*=MCaK;N6PVXQq8sMRE;IhOg4{@F+xL$yZNPm^20VRpK_;@ zLwc=|!&a9nEbNF)FYN!6r`T)c6qv$sSg~_ z6k~u2&=2*8VdF~r!)G>UE$O{Z)q5A#Uw%axQ-7|z#=}B#fc%;dC{&U&ewR`2^*Zp1 z*c_dMUu$*5#hVjQs=lk5t(PrQ9PW-n8No zlhs=ElS+Yd&?B&_v)lKNa|TKBIhyF``F;b~FZVLw?`~O>Yt~YgcmA$h{89s`xcM;E z8#}}%!Ownrs#aE_&mjYW(H$ji`Z0*ih+micCpGWFUCeA%_ABgF3rAsN++Q!kxV;jg zmj*V*OBSx6kdNKUFCqir21J32>o4m_^s^J+N8d@rxD#xdWR`y(2YmF0nNtLFyT1-v z3DSIJF(&HKUhe`)aF@`QoQ)_%T?C8!+_u_FuX;}7@6wRB5t7VW?c$kL+)mI&*0E%Ug(f7693N}Z&QU=3byzNZpVvKKAFY8Ew%BVS?|%K$j-@aI zs1l189;ADlI@i*7$`l@J#=k7r=WP(>TAHwu$SFux#tyf0XNByj&aTTiSLr7z5DhSy zc$Kn(RBA?gZeMcJBLi7+-%>`TwNUX?F!mSVUof&;(gEXK__a_!qSm_q z?JQ><9)pu8Mm55_-=Wf)oLppR3^(17_4!wEpPF~ByjA%Y#`BSJv z+M^wPqwZpQgD=^%4xTD{>+C)pY&A9#kGs2b`3^JJ^9Y1HW<;K8xU(UzVJ1`e+@Y?l ztk8Zb>(gZ_v=72;!0c=Tp&+o{hl;y*szSmq^dq0Tzn(eTX?U<)rY$%@8%~U?FG}#l zo=ZOYWD<^roa_X+>?L4$=d;d)F zi-@F0oRSY8$>6|b%2&*&0(ygv*f3YzhjE1oFYMERXdo*ZVYT|YI&Hq86^aenT=I0= z`HEGj+9(PaM;F;HFf+h%zfI#uG>bV1u}7597WTX?X;F_LY;5_>do=4-*C5zj-&mTK zsL>T6lp%cH5olZB)}bK%@$&~NFU5lpkMXA0YWn4Ybt3LW5_~NmSvWLi_(St{umCl6 zH(iUxfNVq_j|6qhTICn&&a`=2rXHGI0I0RR++Y)$0IQCM_Cd9;o~*cKG#~8tH+avj z8D?@U&XsZp2#Li>ZcH}%1TIlxl5p$##y4LCr>#JXmyT~wTlL+Kv46J8>}=DX^X}fB z3Gb87zd`uDwj20e{%CB%fI<#5&zhRJiX*XM26O(c8SaMJl2Br+dM1E%i67Z&6hTNd)@iPjlHTgI<^&y9o z3nFaf(AFL-SkxWRxdo`p{@v|4F$wx+JikGN6b(%0?*7Z>kG{(P2QM0sFDW^o8Ck$A zAiYMR^NAnVM?I;IsF#}E5=PZ%f`#95I%R8SU`V4C5=5+%syDZ*U^`q_iXG26KOcpL z*{mGN=Ay#Ajcb+sXsYj}CJYx!wBV#Fo_k!N0r%Ts=G)m=hR~K`CeH!gmxN`8sa-_S zVQ2irOqG=c--z-N>D4z+b^ll7U0(5vnpxJV)Pydo(gfbC$M_(=0XZQv)T4rhvYZiA zK&Vy=UWNJ6qvT>+?dqdp$naag8-_%f+0#o`B^Mq3hY`+2av^u8u4dFP_qBj@nE2n}QO-$trM_e`w zbap%%(z^Ad5H9ZtEEyAggS#4^f6?zQF;^dgSvA`n=c1hyxjHX$a z`t^qVb0CnL0pT;Ug|*MnZTA<_rGEaIf?4%T>S?3V0S0ELu-c!O7mH>)Ma&6hISQW> zV%MW6KaJ}h(%ZaK!cluqFw{mW{tS=%^3*N-EPfZNmFkSu!!kxFW}TZ`X;YuRY+qm*K`znASoj zgi#5gh%!KZDnSAmZgzOAz6t(a@5*ai-vVLSL}J+Usq7_`$!l ziMlR<3;^fT(3-r#N5jZtXBU^m8XA0PE<^EX(uwrnGm0%OO7sN8#JZ__J$;q3I3 zg|2^T`Q>iSKtR8Y4C2e`F&Q4#dx5|5uL#Z6KtJN+QfT>LB|%G-DXNg}hh`mnc$F?H zxM5IfgrF>C4*GauSR(V)*l%aD+@necu;=kkikw_f0s*(~NX6paz_OK5JSEi6bEbu_ zVgnKux+zo&V%%L$GO*fv9P5(9YM`e~7XVGQG{}=Y(OFrA$&#r6(R+@* zcC4iqW>HC3O`kMSleau+GvA4K1RA*WszY@4x!T^uAimn;Fng%ey>hx@`v(Uo%>-u6 z#77=2NhLiTsZxJA{O6_jxydWKwZ|Lpf5SK|Hr{GH30arbeVl6ye~3WxeA^O!-HI!# z_+#*6-R*Y%NwMV>T&3Yr7UZGs>6t8m2JN-8V^P;(%s0#UKP&*2D#rHmCbg_==pd7b zAcGrM0QsY}4~LisrH5w)2GtmOHX4#W#@GG-wxa*NBz;7Kos?xQHI5054ILunlMEi}qpFVY{X zJ_n>5llQ<~sw=a`+4~D9D#YPQSiBES3}qh^R{r>LF*{=DEk`1J6@5lyIUrmX{JwpD zJcp#J1C5+jn^p~##+KM3har+bg}Q5!;U^?8#3p77OGaclcplw?l=A&*B*5cSa4j*% zapbj^0PHd<8^aO;6ep{dw-rLWI$bLY7xLkQr#4o?zSKG&7Mq2-Vy4vPWtWH?Ws(wP zTaZyyR^Nqd=qViJkuupv%2r~R4D(}{j((5j6sr~G+NZVld4M{)VbWieyU!a%Xqc1DWz1ii zF2PLhfM1;z01IFtArMT~q8!c*qUNFaWDZ-au9Jk^;%$1-LG4cDc7qkgJir+_O!y^~5wo%iEGl@htRwGxUqj`TACmm61Cm|Lpv%t3* zuq74!gY=O`9qNq)sZe1o>E#1!#k6qqzuzkvd3E7dhYh`H5|_$+!$@zuU~_rY z_O@I!=^{zwXYRzp2~#Nuu2Ih#m*_Lb+fHKz<9}OB-T(6LzEnjsNNq@}uh)Zoa~`u_ zt*HC!cWInQfP@6>-U3&g3D^DZ6VGdr^a8Ij-l)lw-;MR7A(DDMJN1Zh+mC&-_S(~6 z5<5pF_f4|h1Iwd2vZ}ihPXSlNo8?ONNBo{m)rzsqF=zh~L_EM1S4GlCKuL@(HE zSp1Tl^P>)Nyof#WMWjy)kJDoUNm7OiQKoZ+5dvRe;N>rB653B1KUwE_Gs^(%#=dmF zuw0$r$+sZWnb%pJ>^+vc3+?hMe$d*wcb}x4(?H-~7gKm89`Qg$th+rxut=?;6LU5x z3oJ-1zO>Q%y40vX|5(O+(xrp9Lp9w99W{a9m6W2l6zttuHAnXT^&FvmW}7VB?)k#w zXN`?B=<`(X>#3!K6>d&ZB0hn>A?33z)nz+~&mZvxcRPGANC`BgDm%rxyDkN-Bn%&< zr0ExC#8*l<=>fkyv=kBWlgu0+4gN8=6qEG@0>x>Mio0RDwNjJYY0Sfn6=tzM6R zv+8b+IIdL@@zIz9T?ahednKQyy84)-U+k z$P+r*g7uc5|HCszUj4Gb`nH==mbN;l_Q04%Z4p0wxFZg`)3%rj6<0S(8;{RBktkWi zJ9wzin@2;ICEgC+)9th6Chk_@m2dIF4>+lR`l9 z#CkZq+B2EXNm+cJcSfG&NFXb zwsO~XT@(iTC%&%w_(T$rC9*A~ScyCfT9xq)kM}x(op$s|hW&F-pK15n>RmN?*TNI<%W-v=NS z$HfPEm~7VEe7GJ1f{m?@hBwQ5V1|%4(w}{FtQ}-BzmS0y)fdN<0nB0)Ur*LZwT8c@ zGnxH%!V`HvIL#29Ooe8uG#fIlz#kgWVDlsk_kbh{zkQApiUU|e@JFY)Yif#UVf>sz zk9fZ8|BMm}bnoV}Yu_7fYw1kEG>r&E!W?=U#=>!QcCm@m2vxmxCA+*pk+79S_kZU? z2_tq7tF??EXnBMXKoROnCyBVcZxP>z31^3+}Y9$AIE>$A_V)rQJpo7i(nnH5vY zl}eNT3(^Ch28b0m%Y`Lz4?}>X71Hc)~{lL@d z!s^reP>x05SFgyHtC}>Cy~iWlxRgCa5aA&k)>uaeq=z^E=C-B!^iP_tqmsvF{B_`R z0SY>yN*{a)@^h_VU&@6V@BmX^g$LFZVoGr^7e?Bz)-65?L4bD;F=9EaS)wsgt_H*4 zXJc^OLf{7Yf6D^~2tARX=@4VQKiLw2N;mvJZF~1xhsOZUkxB!73FDWRA^^|nzxt8F`gWI>&^o)-$i;24cO>G{ zut`vpUlKvVU%DPqc`!Y&POl2}EOcbt@sVVfOhU=X8d6U9nI$PK)I3l_y4UBvqF5;8 zYuw0XAs8_D>rk8oIRevD^16cE%S+le6#qUyC1V6nhyozNTWyh8LBniA+l90==K#2< zsP(ov0lrkiiD8iV@UN@!`uD~W#2M$_XlEUo*+C@a)&5k;UKZLet}l%d@1JZO7MHus z>3U{>dMvCh*(k>``tpDrC2Q+ zKZFeBMqp>vc3B)g7ihWE)Ykum`J>>3oUM^Ro1i`uQW4Pz?+;6vV`Mrfug&B4 zgkgr5O&UP4iQI`Of6gf1vK|We>?I~4!>hVTeE80~Bl0EyWYr~SX5^#vgWN&kmlCcR zKf@AgXp-crx~LVGy+U{>HJgP6TjVaf!$ov9#EY=J7634~Kzst+SDu``o}P7Wq%Q@z z{|!Ys0=x#^A-`{{j-Vjbz{l|rhPIsG_QPH}-aC9!Y@hH3BRaf7sfTN6@#~0MLhj$P zqYNGr4GIrijk9euqnz6xi`%t71_NdOtrJTxa%@#Y7{-A!G|CjXqSv@@g!;cN>hyav z#fAjQ)P}hYp2^&nm1&CDv;H;W;t$q7&ySdwbv*oo=l9Z_dF}Cs-)csbRETF$e%Jr8 zzWTka!~0`S3D0vE>$8}bro-F6Vq~^g;M)a|%=8{$T&W0s(c{DI;fMYeU$>cXde<`9 z0>A%K(~4{~Du1x{GumKK=-!%a2#WZ&${P?&wUC_^!svlvY&6 znSf1Bj-DW!7T15Bz>{}jsvBy(%snWphh$<8FRBoO!V@cKJ$GD=mR;jn0X|RvT}fk? zcAwuF)3WL)UPI=)DvkqyuR}Rrh`Yjjs;+yl7R>L!`wk>oiQ>dv%$%&OmxV0m?_aiM z+ji>JwQ)M{BCIG3{}g%985x19FcP zb3%Cd!NI|Y@9UZ7LTsGlIX-)CKKUsj8M0S7G@{P-g?jxB$mG#wHN0p? z=k$I?e@xVb5JN1%if&BOWXBvt60@cJ$%rzTg^#V#;ZD6Z@u`ai^s|;iI)1BdV zlm5Fe#SXrj)+6kvC9}E_zEA5rf)^aE_q@inWqKHz8b>-|O87e=#qT&JC&Gm%f;^f7i~c$WVWdfYfpXh&u#Zk6L+ zMBTikpH>n;rbjpnp?SA^7=BI~lTY+^uA)yvWBYR;azV4M#`Ft~-B;f$TWo6f*uDe= zuGZ82N}SW{pH8RNcJ1DZOs5G#=1+(#2i4xE=WHn7)ufsQx+0V;x2v&B3iO96xGW23 ziDE;rW0(7BO9rDG7cD?_lOYX13)7Et`xJKaX=_CCl()F-7E8E=>zX<@M7ep`_xq;D z(t8-<4D|UDKiBkd{H02aE{G2FexaJ)lTSCwbHv&>n$CNkFR=PL zrjT)BE3Q*roTZ$Ka`v*>8G_lEYmT(MtEbUa+Fb5T&3LwY=DW6Xm0{PcA1b1~W3)*e z`&7Q_nY&a~tz*%o=Q$^-kz3U-k$xCov6TlVmr^9fW67Vn^#OGjxGmM&xM~=Hf|i_m zZR>sX(gtpG%arwve2#w#Z!CV99k&pg%9j__Y4V6 zccG$qh@2RFEhp2H&fL^Kms?%a$q~P9v54LD{AcOq7-ilQm!kGRt2dd6f}x+L=%alKc%E!3$r zjV{#>kne~}WO^fV3R$*<_F({pOvT8-id)#9%!m(Z@fW|Zx*(LI2zM;a0_mbZnWIm> zLB+3Gr3Xr7Qu-FdzA4MB(mUi_W~bEXmy3SO_oK=}uLGIip!BkdTfAuWPxV;8C!nTG zn@&%aO17{+r6n!a;lMEHS2%|$08gk#HUC)b<|l)SMX5mIs4ubP5>JIVQ_<3`!y(x4^MPVcU3ydh)w`~2eCY3q>D6rS zCiSzvOWzad-_Y6=1r?+*ozty}s07mBBfO6pJU7t} zppfL?N?hF@OM5YRy-W_tlO+DLW<`0t+Pc(wY{tsO6;#)D-^=y8zsIMiNYnA?ZAy_}5rcM= zZC+13^g@*q@|UG{-otSss|`CzIz#cShxgw>k!Y~7?{BpfgTFJ2TKn+?T{#qdr*}x* zSvJ@68z9C>sF)+1lf8*$y;aBiM02tQjbX}aeY9MS*k0wY)c`8 zWQfl01R?ME-=HbuXZjjD+G_d^|1F0>`Fd#vMvcZwU`zGL6W$)@mLpSla z(cCrJdA;S}8Ur$aLC;%UC8)u}fRlvL;3*shzp}fDuqWCyaQkNE%;&BJTay3_Y$U$3 zw|B*&qCfxJmCWSwsF=hl%p=#9W>8TzV_A0vF8wR@Qj7>w_Y z7;dPBDz*aR5$!q?c+!>2$<_F;Pwj8bPx-!&^g7Mwq)3&%lt$3amX`dv!Q5k}Sl=bH zBJ&6}r5{cg%1KVrBwdh71YgUY*ynVx5@bI8{h zizCA#ERvchF5aA(le&lF2*&(|qvnx)N%ubA4jRc09u)mvjM^zjZZ1P&{&;z^opui` zRbclIKSYF_sX_}gK_n?0{ljOSVnFEa7dU?-Kzfw{xLDQouZ`c+OcXd+c3bnVb3Iq- z0qm2oJ}_cJ_wk`4-9t83nT_T{=)LNP*puaWX6FMGEo422`i(JEQvK=GzVIcJY0Yx9 zcYcfOE~^vg^IAWCRj@9G<~S$Df$o2`#Qf)*WRKeZHNN2LuP!?qAS=?dq?BQJkv@RO zq#u9$foF5!YL8-Ddt%nTc2PTh$gf{P%U|vE3U4aeT1}lYCWu;kA}{|#-S~r;I99<3 z1NIPS-gOHCc03&}RrtV#tcC%TSSw`eRqrJ`_K*xu0yZ0~vxr)Y(tqPux5(QcGN+)+ zD-QLt@t!p?&OJP%n@75dl`F9y{UG|?@CtUO#DWNkWO%GZ4cg@2$R`&jMF~YnAdGEq z>ACn(zkQU2Rg4ybq~PF)maLlj=r)|oo{qpJ?NHUKNForpQ{78w=*#u`u*L=)3+n|c z6>ASyk>qH(3l8=asgOsPUj3c+U5EEwc!d!2W+U=G5eNkEZ;{+lP-pSsZvbK zAyZ*A<>_GeZp%Bf(RJOgclaT<+E68OH=9UdhMJb)VsDK|A7`)r^rj&9hbX3W@drs~ zJ!^JG|H$hamL&_)0sdgf!NDGO0!#45jPR$DtWfBy(kxS)$$-ihe9s|At4_a{W}Fh2 z<`*{T5XYN*Lao~FR?ZrdZWY}|UAP;Wo6GE%++4zY^y$-4SN$l4!movXUtY*&lOOfR z8sT_Ggl?~`&h9Q=`#EKRMW}Hs13w)%8b>cV&CHxOzuhoH-b(HazV z>X|TPz{%;HVKg(DHqIv9CR|B$x1WqqVc5nVSu3ONhPFm=I;U$M`^BhCMKwV)=GLP9 zkyL%`V=CVo|Hx;6cr6p$a&{lJZ_qo#oD?qcr=}(kg29}deh#%DS*!k<$HFLC25`gI zonm+wS%c!&nW2G03mmGC=QH?hLwTF@yh{2*F?tpQGju568sXo3^fabF67%EaO#+KG z9vWX;?BmE7S13^&UGJ`WR;PWX$(k-s15S1L`CNWsJxm_Cu6`kzwoynuNDGSyg0_*NSN1(sl7~?VNqO1MP z#>!q6bIcMVO|b3u(7`52EtEclV2rZtr$tZWi!*68LvRqQ@ZfwO3_+A&4#uVlq%n|a zloFXrlC9QLXNDoD_GtK0MuUN^7T21vq6GG4g-i z!y1c_^O9Ns1XUs1f!U8DX9{_hsg;R^^>?;!=;@6ptyCl}u&e`8@QT@wEO+n}E)0hj zzmT_BYm#)tb0)+mD|ZY}d*_skF zS9CjzV`)87Nm|$?ji|03Q=q_2+D9^KTH3cjRPg$rl)-=VePnWqH%Z0 zL5Bxeus(9)4)~t`tfgAuASap#6&Y=V**9jIl1?nH`DRupGW{9q!GCF~pA%y!yUxAM zA*qljy3c-tCLD4=)OpfAG`)&M9LTQj^L+N}eyv!XuMV&O@C2Svs%(vXX@NePmG*fZ zLL*5WHV_#p2H_zVAJY?1LbPY-nIN6IgT4Kge7jcGjyk#*H?J6_xkaZY z!>mwwbtOdTIy>%jjK@o>xXg79#=op%qI*&oJcjFCL%-lynUwqAh+d|hAfT{Mi-2Ws z^o8jyblT-(h^itZ6H=rY?sk8vzNFhepT-i0G#)U{@mIhy?VDwQ8Z3U6WcR4t$4XM z3U&?${51keKbh}F?A`It%CPc`>sZd9BRh}?1B8$cxj?hoo&S>+l@lpD_7>?U=5YfV zLs??5Aw+YNd$#KKa>Iup7WK}p#3V*ce0|lB1=dEI!0v$iWLJp(I?cteUUt2nr#9W9L001MbpkuHVr36bqzOU{nhwhwRifUta!oFhgjlhx8U9Pc*Crna=+) zCylAlA{jnIVM^vA85Y=hL?w##Q(#k~09Oi8Yl`=9&hZ84*(6A<2L;QWKnrU)BorXw zlp>@^z6d!`6B+UOsGU#sAt%+g&M{Ysf>D{1?`V@!tFF^MMrUdefkaz;8FY?&nx1kT zm{%x24sf^nwQu5;e`5965X$tFJ(^E}cb$@`A9_B?cA$b%o|ewpu`}uI&mvYT>bQ>{2)QCO zQlK5vrIt7>eRr~u8!uK!xfL?mgZ+5VO~{kxz_}5|WgJeXcaQ%QVb4ta1xdSd#O`X? zlSEtnRYt^3xlAz{y}dtq8*ze{cyUz+k@Ce^u%CAPQ!}i~YZ? zx&QeNLGhQugG)}NkWyM*r`P!;R(1=aB3z(LpT%c!PVX~k1|)xZ-bv5c14p^6qlUe* z1X&Klf3XUOv_9wSK1p#FAx(vZ8j5Ym0^M6b``0{YFi{{DObYi1?O1qo?~WO0-x^OP z?dlFo8F>jlzVif>Js031?*`X40fWggWpZ;($`p>B$?MpXknJggwnhVau0(RtBuiK$ zIJYcCFF1+idp`Z8`kAJI6p14dx|DT~K+ToK>#d?sDIuGToMYQkHlMku4JHMQ5ov*X zVheI)R;eheqUEIH;(yW5v)`-vEDPGdd0)m+SAu&!ST}Roe#(wzIA|lQ(RoRq4B=*v z$IS8A$eXd)o8cZf2VtF7TVe`_`J;0!uFjqwDrUuJ=FLXRq&Tau+K{WYa_iNP>s5M& zq!9rfk96vqGxhkt_yJv{l+qmy2o8STyuLh&nnn-&FVfyBD$cge*2Mxv2vQK-3MWW# zcL}b6;1Jy13xX3QcyM=jw}RlV0Sb2u?h00J?Ffp zbf*0%l-a&MnDa>mlY-3VJ1=nPVs_l~9ePYkSb;X?Y5I<8zJ}yq+9>$o0*7ykee#iGHZ-Vxl2V zD=COwRl)|ovH9lO2O+1>5Yw7kS~`X*SH*i;^q`MYVQztN)~CES`5%Me^LGa`f5kok zKboc2UG8u&P-sjDTGwDsiZD{Z!HWg|h|?cmz{G8|<}mQrnbkNhKU-kq$*Ub8Mj?x; z`7YJZBfsJAh^Y)RL@xS<#Q|KHEc4S2$9$N5ow?L$5DO$a4x6GjLPB6Yc%`-+B3NU_ z=5=$eaw(QHFTm{WG443ts94(*5#;?-)wySlvmf~m-I~c>MZeNs)a1)@4)+IrsokA9 zhb0b8!NoeJ$=Pp>nCjE__g1E1# z#^G%-(G_*Ea~k!MM1rxgTBh_nD0Iy}FFi8M!n4C@lt_vgixDb&9+JaIr%HMhSy@}B z+7yrd#EM^}C17@xVR6!EQ{-iAFriLvb+T011UpFW=SuB;3ykci?SmyD9Z7CMTy#`% z6j`k)R2BHbGOqc8p8R4c6`*+ztKVunvGagf<`GnU3QXfVk;i%w-S?X*7a#C<)V{S4KYH{1#XQ4TekkutG|eepS$8b47&>(pYdz&M z&35Uan%1+^L2YN`W;#*-;+~8UY9aG?x9@4nqH`t@&AX>{Zo#0!&8IMXT5n_$si)=Y zH!k$#(#E^-Y>9%LGWxz99QO5(d*fLz-cl8sVzb_)XG`^#fXDG}e5-+7CE#RFK>Hp8 ze`{~~@^jK9etoduH400(;CeP=#kF2~`RVs8iG}g!&rd5s-Z_7>JT8R_me9U@9C+Ro ze{7#}E$70&peFB>{@%pg=WQ(G%?EQ<{rulJtHxrwM%X9!s{O!f@9!5jL(!IhaOw&c zaTf+;pv$Is0z7GhfmQ;?N5SEa=C0A46uIzMM74>-mlFsTVOg1&@hOl1eTa!|7>}?MIQgdCu}8v