From e8cc6b719331fb1f8007268faf34c51678bec6f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Thu, 13 Jun 2024 12:00:57 +0800 Subject: [PATCH 01/37] feat: sync metagpt/utils/di_graph_repository.py feat: +graph db action --- metagpt/actions/graph_db_action.py | 43 ++++++++++++++++++++++++++++ metagpt/utils/di_graph_repository.py | 16 +++++++---- 2 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 metagpt/actions/graph_db_action.py diff --git a/metagpt/actions/graph_db_action.py b/metagpt/actions/graph_db_action.py new file mode 100644 index 000000000..d050760f6 --- /dev/null +++ b/metagpt/actions/graph_db_action.py @@ -0,0 +1,43 @@ +""" +graph_db_action.py + +This module defines the GraphDBAction class, which interacts with a graph database. + +Classes: + GraphDBAction: An action class that interacts with a graph database. + +Usage Example: + action = GraphDBAction() + await action.load_graph_db('path/to/graph_db') + + action = GraphDBAction(graph_db=external_graph_db) +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Optional + +from metagpt.actions import Action +from metagpt.utils.di_graph_repository import DiGraphRepository +from metagpt.utils.graph_repository import GraphRepository + + +class GraphDBAction(Action): + """ + An action class that interacts with a graph database. + + Attributes: + graph_db (Optional[GraphRepository]): The graph database instance. + """ + + graph_db: Optional[GraphRepository] = None + + async def load_graph_db(self, pathname: str | Path): + """ + Asynchronously loads the graph database from the specified path. + + Args: + pathname (str | Path): The path to the graph database file. + """ + self.graph_db = await DiGraphRepository.load_from(pathname) diff --git a/metagpt/utils/di_graph_repository.py b/metagpt/utils/di_graph_repository.py index fee706ece..f8fabfbdc 100644 --- a/metagpt/utils/di_graph_repository.py +++ b/metagpt/utils/di_graph_repository.py @@ -23,8 +23,8 @@ from metagpt.utils.graph_repository import SPO, GraphRepository class DiGraphRepository(GraphRepository): """Graph repository based on DiGraph.""" - def __init__(self, name: str, **kwargs): - super().__init__(name=name, **kwargs) + def __init__(self, name: str | Path, **kwargs): + super().__init__(name=str(name), **kwargs) self._repo = networkx.DiGraph() async def insert(self, subject: str, predicate: str, object_: str): @@ -112,8 +112,14 @@ class DiGraphRepository(GraphRepository): async def load(self, pathname: str | Path): """Load a directed graph repository from a JSON file.""" data = await aread(filename=pathname, encoding="utf-8") - m = json.loads(data) + self.load_json(data) + + def load_json(self, val: str): + if not val: + return self + m = json.loads(val) self._repo = networkx.node_link_graph(m) + return self @staticmethod async def load_from(pathname: str | Path) -> GraphRepository: @@ -126,9 +132,7 @@ class DiGraphRepository(GraphRepository): GraphRepository: A new instance of the graph repository loaded from the specified JSON file. """ pathname = Path(pathname) - name = pathname.with_suffix("").name - root = pathname.parent - graph = DiGraphRepository(name=name, root=root) + graph = DiGraphRepository(name=pathname.stem, root=pathname.parent) if pathname.exists(): await graph.load(pathname=pathname) return graph From 92dbf7607938cc771668d75ab2afdc628da0c2da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Thu, 13 Jun 2024 16:53:30 +0800 Subject: [PATCH 02/37] feat: +rfc243 --- examples/write_project_framework.py | 198 ++++++++++++++++++ metagpt/actions/graph_db_action.py | 43 ---- .../actions/requirement_analysis/__init__.py | 11 + .../requirement_analysis/evaluate_action.py | 74 +++++++ .../framework/__init__.py | 45 ++++ .../framework/evaluate_framework.py | 62 ++++++ .../framework/write_framework.py | 91 ++++++++ .../requirement_analysis/trd/__init__.py | 16 ++ .../trd/compress_external_interfaces.py | 35 ++++ .../trd/detect_interaction.py | 65 ++++++ .../requirement_analysis/trd/evaluate_trd.py | 68 ++++++ .../requirement_analysis/trd/write_trd.py | 195 +++++++++++++++++ tests/data/requirements/1.acknowledge.md | 173 +++++++++++++++ tests/data/requirements/1.actors.json | 5 + tests/data/requirements/1.constraint.md | 2 + tests/data/requirements/1.json | 5 + .../actions/requirement_analysis/__init__.py | 0 17 files changed, 1045 insertions(+), 43 deletions(-) create mode 100644 examples/write_project_framework.py delete mode 100644 metagpt/actions/graph_db_action.py create mode 100644 metagpt/actions/requirement_analysis/__init__.py create mode 100644 metagpt/actions/requirement_analysis/evaluate_action.py create mode 100644 metagpt/actions/requirement_analysis/framework/__init__.py create mode 100644 metagpt/actions/requirement_analysis/framework/evaluate_framework.py create mode 100644 metagpt/actions/requirement_analysis/framework/write_framework.py create mode 100644 metagpt/actions/requirement_analysis/trd/__init__.py create mode 100644 metagpt/actions/requirement_analysis/trd/compress_external_interfaces.py create mode 100644 metagpt/actions/requirement_analysis/trd/detect_interaction.py create mode 100644 metagpt/actions/requirement_analysis/trd/evaluate_trd.py create mode 100644 metagpt/actions/requirement_analysis/trd/write_trd.py create mode 100644 tests/data/requirements/1.acknowledge.md create mode 100644 tests/data/requirements/1.actors.json create mode 100644 tests/data/requirements/1.constraint.md create mode 100644 tests/data/requirements/1.json create mode 100644 tests/metagpt/actions/requirement_analysis/__init__.py diff --git a/examples/write_project_framework.py b/examples/write_project_framework.py new file mode 100644 index 000000000..fe015dbdd --- /dev/null +++ b/examples/write_project_framework.py @@ -0,0 +1,198 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : write_project_framework.py +@Desc : The implementation of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb + +Usage Example: + +""" +import asyncio +import json +import uuid +from pathlib import Path +from typing import Dict, List + +import typer + +from metagpt.actions.requirement_analysis.framework import ( + EvaluateFramework, + WriteFramework, + save_framework, +) +from metagpt.actions.requirement_analysis.trd import ( + CompressExternalInterfaces, + DetectInteraction, + EvaluateTRD, + WriteTRD, +) +from metagpt.config2 import Config +from metagpt.const import DEFAULT_WORKSPACE_ROOT +from metagpt.context import Context +from metagpt.logs import logger +from metagpt.utils.common import aread + +app = typer.Typer(add_completion=False) + + +async def _write_trd( + context: Context, actors: Dict[str, str], user_requirements: List[str], available_external_interfaces: str +) -> (str, str): + detect_interaction = DetectInteraction(context=context) + write_trd = WriteTRD(context=context) + evaluate_trd = EvaluateTRD(context=context) + use_case_actors = "".join([f"- {v}: {k}\n" for k, v in actors.items()]) + legacy_user_requirements = [] + legacy_user_requirements_interaction_events = [] + legacy_user_requirements_trd = "" + for ix, r in enumerate(user_requirements): + is_pass = False + evaluation_conclusion = "" + interaction_events = "" + trd = "" + while not is_pass: + interaction_events = await detect_interaction.run( + user_requirements=r, + use_case_actors=use_case_actors, + legacy_interaction_events=interaction_events, + evaluation_conclusion=evaluation_conclusion, + ) + if ix == 0: + trd = await write_trd.run( + user_requirements=r, + use_case_actors=use_case_actors, + available_external_interfaces=available_external_interfaces, + legacy_trd=trd, + evaluation_conclusion=evaluation_conclusion, + interaction_events=interaction_events, + ) + evaluation = await evaluate_trd.run( + user_requirements=r, use_case_actors=use_case_actors, trd=trd, interaction_events=interaction_events + ) + else: + trd = await write_trd.run( + legacy_user_requirements="\n".join(legacy_user_requirements), + use_case_actors=use_case_actors, + available_external_interfaces=available_external_interfaces, + legacy_user_requirements_trd=legacy_user_requirements_trd, + legacy_user_requirements_interaction_events="\n".join(legacy_user_requirements_interaction_events), + incremental_user_requirements=r, + previous_version_trd=trd, + evaluation_conclusion=evaluation_conclusion, + incremental_user_requirements_interaction_events=interaction_events, + ) + evaluation = await evaluate_trd.run( + user_requirements=r, + use_case_actors=use_case_actors, + trd=trd, + legacy_user_requirements_interaction_events="\n".join(legacy_user_requirements_interaction_events), + incremental_user_requirements_interaction_events=interaction_events, + ) + is_pass = evaluation.is_pass + evaluation_conclusion = evaluation.conclusion + legacy_user_requirements.append(r) + legacy_user_requirements_interaction_events.append(interaction_events) + legacy_user_requirements_trd = trd + + return use_case_actors, legacy_user_requirements_trd + + +async def _write_framework(context: Context, use_case_actors: str, trd: str, acknowledge: str, constraint: str) -> str: + write_framework = WriteFramework(context=context) + evaluate_framework = EvaluateFramework(context=context) + is_pass = False + framework = "" + evaluation_conclusion = "" + while not is_pass: + try: + framework = await write_framework.run( + use_case_actors=use_case_actors, + trd=trd, + acknowledge=acknowledge, + legacy_output=framework, + evaluation_conclusion=evaluation_conclusion, + additional_technical_requirements=constraint, + ) + except Exception as e: + logger.info(f"{e}") + break + evaluation = await evaluate_framework.run( + use_case_actors=use_case_actors, + trd=trd, + acknowledge=acknowledge, + legacy_output=framework, + additional_technical_requirements=constraint, + ) + is_pass = evaluation.is_pass + evaluation_conclusion = evaluation.conclusion + return framework + + +async def develop( + context: Context, + user_requirement_filename: str, + actors_filename: str, + acknowledge_filename: str, + constraint_filename: str, + output_dir: str, +): + output_dir = Path(output_dir) if output_dir else DEFAULT_WORKSPACE_ROOT / uuid.uuid4().hex + + v = await aread(filename=user_requirement_filename) + user_requirements = json.loads(v) + v = await aread(filename=actors_filename) + actors = json.loads(v) + acknowledge = await aread(filename=acknowledge_filename) + technical_constraint = await aread(filename=constraint_filename) + + # Compress acknowledge + compress_acknowledge = CompressExternalInterfaces(context=context) + available_external_interfaces = await compress_acknowledge.run(acknowledge=acknowledge) + + # Write TRD + use_case_actors, trd = await _write_trd( + context=context, + actors=actors, + user_requirements=user_requirements, + available_external_interfaces=available_external_interfaces, + ) + + # Write framework + framework = await _write_framework( + context=context, + use_case_actors=use_case_actors, + trd=trd, + acknowledge=acknowledge, + constraint=technical_constraint, + ) + + # Save + file_list = await save_framework(dir_data=framework, output_dir=output_dir) + logger.info(f"Output:\n{file_list}") + + +@app.command() +def startup( + user_requirement_filename: str = typer.Argument(..., help="The filename of the user requirements."), + actors_filename: str = typer.Argument(..., help="The filename of UML use case actors description."), + acknowledge_filename: str = typer.Argument(..., help="External interfaces declarations."), + llm_config: str = typer.Option(default="", help="Low-cost LLM config"), + constraint_filename: str = typer.Option(default="", help="What technical dependency constraints are."), + output_dir: str = typer.Option(default="", help="Output directory."), +): + if llm_config and Path(llm_config).exists(): + config = Config.from_yaml_file(Path(llm_config)) + else: + logger.info("GPT 4 turbo is recommended") + config = Config.default() + ctx = Context(config=config) + + asyncio.run( + develop(ctx, user_requirement_filename, actors_filename, acknowledge_filename, constraint_filename, output_dir) + ) + + +if __name__ == "__main__": + app() diff --git a/metagpt/actions/graph_db_action.py b/metagpt/actions/graph_db_action.py deleted file mode 100644 index d050760f6..000000000 --- a/metagpt/actions/graph_db_action.py +++ /dev/null @@ -1,43 +0,0 @@ -""" -graph_db_action.py - -This module defines the GraphDBAction class, which interacts with a graph database. - -Classes: - GraphDBAction: An action class that interacts with a graph database. - -Usage Example: - action = GraphDBAction() - await action.load_graph_db('path/to/graph_db') - - action = GraphDBAction(graph_db=external_graph_db) -""" - -from __future__ import annotations - -from pathlib import Path -from typing import Optional - -from metagpt.actions import Action -from metagpt.utils.di_graph_repository import DiGraphRepository -from metagpt.utils.graph_repository import GraphRepository - - -class GraphDBAction(Action): - """ - An action class that interacts with a graph database. - - Attributes: - graph_db (Optional[GraphRepository]): The graph database instance. - """ - - graph_db: Optional[GraphRepository] = None - - async def load_graph_db(self, pathname: str | Path): - """ - Asynchronously loads the graph database from the specified path. - - Args: - pathname (str | Path): The path to the graph database file. - """ - self.graph_db = await DiGraphRepository.load_from(pathname) diff --git a/metagpt/actions/requirement_analysis/__init__.py b/metagpt/actions/requirement_analysis/__init__.py new file mode 100644 index 000000000..d196bafee --- /dev/null +++ b/metagpt/actions/requirement_analysis/__init__.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : __init__.py +@Desc : The implementation of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" +from metagpt.actions.requirement_analysis.evaluate_action import EvaluationData, EvaluateAction + +__all__ = [EvaluationData, EvaluateAction] diff --git a/metagpt/actions/requirement_analysis/evaluate_action.py b/metagpt/actions/requirement_analysis/evaluate_action.py new file mode 100644 index 000000000..a94c9cffb --- /dev/null +++ b/metagpt/actions/requirement_analysis/evaluate_action.py @@ -0,0 +1,74 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : evaluate_action.py +@Desc : The implementation of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" +from typing import Optional + +from pydantic import BaseModel +from tenacity import retry, stop_after_attempt, wait_random_exponential + +from metagpt.actions import Action +from metagpt.logs import logger +from metagpt.utils.common import CodeParser, general_after_log, to_markdown_code_block + + +class EvaluationData(BaseModel): + """Model to represent evaluation data. + + Attributes: + is_pass (bool): Indicates if the evaluation passed or failed. + conclusion (Optional[str]): Conclusion or remarks about the evaluation. + """ + + is_pass: bool + conclusion: Optional[str] = None + + +class EvaluateAction(Action): + """The base class for an evaluation action. + + This class provides methods to evaluate prompts using a specified language model. + """ + + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def _evaluate(self, prompt: str) -> (bool, str): + """Evaluates a given prompt. + + Args: + prompt (str): The prompt to be evaluated. + + Returns: + tuple: A tuple containing: + - bool: Indicates if the evaluation passed. + - str: The JSON string containing the evaluation data. + """ + rsp = await self.llm.aask(prompt) + json_data = CodeParser.parse_code(text=rsp, lang="json") + data = EvaluationData.model_validate_json(json_data) + return data.is_pass, to_markdown_code_block(val=json_data, type_="json") + + async def _vote(self, prompt: str) -> EvaluationData: + """Evaluates a prompt multiple times and returns the consensus. + + Args: + prompt (str): The prompt to be evaluated. + + Returns: + EvaluationData: An object containing the evaluation result and a summary of evaluations. + """ + evaluations = {} + for i in range(3): + vote, evaluation = await self._evaluate(prompt) + val = evaluations.get(vote, []) + val.append(evaluation) + if len(val) > 1: + return EvaluationData(is_pass=vote, evaluations="\n".join(val)) + evaluations[vote] = val diff --git a/metagpt/actions/requirement_analysis/framework/__init__.py b/metagpt/actions/requirement_analysis/framework/__init__.py new file mode 100644 index 000000000..d863cf352 --- /dev/null +++ b/metagpt/actions/requirement_analysis/framework/__init__.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : __init__.py +@Desc : The implementation of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" +import json +import uuid +from pathlib import Path +from typing import Optional, Union, List + +from pydantic import BaseModel + +from metagpt.actions.requirement_analysis.framework.evaluate_framework import EvaluateFramework +from metagpt.actions.requirement_analysis.framework.write_framework import WriteFramework +from metagpt.const import DEFAULT_WORKSPACE_ROOT +from metagpt.utils.common import CodeParser, awrite + + +async def save_framework(dir_data: str, output_dir: Optional[Union[str, Path]] = None) -> List[str]: + output_dir = Path(output_dir) if output_dir else DEFAULT_WORKSPACE_ROOT / uuid.uuid4().hex + output_dir.mkdir(parents=True, exist_ok=True) + + json_data = CodeParser.parse_code(text=dir_data, lang="json") + items = json.loads(json_data) + + class Data(BaseModel): + path: str + filename: str + content: str + + files = [] + for i in items: + v = Data.model_validate(i) + pathname = output_dir / v.path + pathname.mkdir(parents=True, exist_ok=True) + pathname = pathname / v.filename + await awrite(filename=pathname, data=v.content) + files.append(str(pathname)) + return files + + +__all__ = [WriteFramework, EvaluateFramework] diff --git a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py new file mode 100644 index 000000000..10b2c65b9 --- /dev/null +++ b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : evaluate_framework.py +@Desc : The implementation of Chapter 2.1.8 of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" + +from metagpt.actions.requirement_analysis import EvaluateAction, EvaluationData +from metagpt.utils.common import to_markdown_code_block + + +class EvaluateFramework(EvaluateAction): + async def run( + self, + *, + use_case_actors: str, + trd: str, + acknowledge: str, + legacy_output: str, + additional_technical_requirements: str, + ) -> EvaluationData: + prompt = PROMPT.format( + use_case_actors=use_case_actors, + trd=to_markdown_code_block(val=trd), + acknowledge=to_markdown_code_block(val=acknowledge), + legacy_output=to_markdown_code_block(val=legacy_output), + additional_technical_requirements=to_markdown_code_block(val=additional_technical_requirements), + ) + return await self._vote(prompt) + + +PROMPT = """ +## Actor, System, External System +{use_case_actors} + +## Legacy TRD +{trd} + +## Acknowledge +{acknowledge} + +## Legacy Outputs +{legacy_output} + +## Additional Technical Requirements +{additional_technical_requirements} + +--- +You are a tool that evaluates the quality of framework code based on the TRD content; +You need to refer to the content of the "Legacy TRD" section to check for any errors or omissions in the framework code found in "Legacy Outputs"; +The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram; +Information missing from the "Legacy TRD" can be found in the "Acknowledge" section; +Parts not mentioned in the "Legacy TRD" will be handled by other TRDs, therefore, processes not present in the "Legacy TRD" are considered ready; +"Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet; +Return a markdown JSON object with: +- a "is_pass" key containing a true boolean value if there is not any issue in the "Legacy Outputs"; +- an "issues" key containing a string list of natural text about the issues found in the "Legacy Outputs" if any, each issue found must provide a detailed description and include reasons; +- a "conclusion" key containing the evaluation conclusion; +- a "misalignment" key containing the judgement detail of the natural text string list about the misalignment with "Legacy TRD"; +""" diff --git a/metagpt/actions/requirement_analysis/framework/write_framework.py b/metagpt/actions/requirement_analysis/framework/write_framework.py new file mode 100644 index 000000000..5101a4d5e --- /dev/null +++ b/metagpt/actions/requirement_analysis/framework/write_framework.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : write_framework.py +@Desc : The implementation of Chapter 2.1.8 of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" +import json + +from tenacity import retry, stop_after_attempt, wait_random_exponential + +from metagpt.actions import Action +from metagpt.logs import logger +from metagpt.utils.common import CodeParser, general_after_log, to_markdown_code_block + + +class WriteFramework(Action): + async def run( + self, + *, + use_case_actors: str, + trd: str, + acknowledge: str, + legacy_output: str, + evaluation_conclusion: str, + additional_technical_requirements: str, + ) -> str: + prompt = PROMPT.format( + use_case_actors=use_case_actors, + trd=to_markdown_code_block(val=trd), + acknowledge=to_markdown_code_block(val=acknowledge), + legacy_output=to_markdown_code_block(val=legacy_output), + evaluation_conclusion=evaluation_conclusion, + additional_technical_requirements=to_markdown_code_block(val=additional_technical_requirements), + ) + return await self._write(prompt) + + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def _write(self, prompt: str) -> str: + rsp = await self.llm.aask(prompt) + json_data = CodeParser.parse_code(text=rsp, lang="json") + json.loads(json_data) # validate + return json_data + + +PROMPT = """ +## Actor, System, External System +{use_case_actors} + +## TRD +{trd} + +## Acknowledge +{acknowledge} + +## Legacy Outputs +{legacy_output} + +## Evaluation Conclusion +{evaluation_conclusion} + +## Additional Technical Requirements +{additional_technical_requirements} + +--- +You are a tool that generates software framework code based on TRD. +The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram; +The descriptions of the interfaces used in the "TRD" can be found in the "Acknowledge" section; +"Legacy Outputs" contains the software framework code generated by you last time, which you can improve by addressing the issues raised in "Evaluation Conclusion"; +"Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet; +Develop source code based on the content of the "TRD"; +- The `README.md` file should include: + - The folder structure diagram of the entire project; + - Correspondence between classes, interfaces, and functions with the content in the "TRD" section; + - Prerequisites if necessary; + - Installation if necessary; + - Configuration if necessary; + - Usage if necessary; +- The `CLASS.md` file should include class diagram in PlantUML format; +- The `SEQUENCE.md` file should include sequence diagram in PlantUML format; + +Return a markdown JSON object list, each object containing: +- a "path" key with a value specifying its path; +- a "filename" key with a value specifying its file name; +- a "content" key with a value containing its file content; +""" diff --git a/metagpt/actions/requirement_analysis/trd/__init__.py b/metagpt/actions/requirement_analysis/trd/__init__.py new file mode 100644 index 000000000..4603532c4 --- /dev/null +++ b/metagpt/actions/requirement_analysis/trd/__init__.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : __init__.py +@Desc : The implementation of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" + + +from metagpt.actions.requirement_analysis.trd.detect_interaction import DetectInteraction +from metagpt.actions.requirement_analysis.trd.evaluate_trd import EvaluateTRD +from metagpt.actions.requirement_analysis.trd.write_trd import WriteTRD +from metagpt.actions.requirement_analysis.trd.compress_external_interfaces import CompressExternalInterfaces + +__all__ = [CompressExternalInterfaces, DetectInteraction, WriteTRD, EvaluateTRD] diff --git a/metagpt/actions/requirement_analysis/trd/compress_external_interfaces.py b/metagpt/actions/requirement_analysis/trd/compress_external_interfaces.py new file mode 100644 index 000000000..c625da727 --- /dev/null +++ b/metagpt/actions/requirement_analysis/trd/compress_external_interfaces.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : compress_external_interfaces.py +@Desc : The implementation of Chapter 2.1.5 of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" +from tenacity import retry, stop_after_attempt, wait_random_exponential + +from metagpt.actions import Action +from metagpt.logs import logger +from metagpt.utils.common import general_after_log + + +class CompressExternalInterfaces(Action): + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def run( + self, + *, + acknowledge: str, + ) -> str: + return await self.llm.aask( + msg=acknowledge, + system_msgs=[ + "Return a markdown JSON list of objects, each object containing:\n" + '- an "id" key containing the interface id;\n' + '- an "inputs" key containing a dict of input parameters that consist of name and description pairs;\n' + '- an "outputs" key containing a dict of returns that consist of name and description pairs;\n' + ], + ) diff --git a/metagpt/actions/requirement_analysis/trd/detect_interaction.py b/metagpt/actions/requirement_analysis/trd/detect_interaction.py new file mode 100644 index 000000000..a46d77ba3 --- /dev/null +++ b/metagpt/actions/requirement_analysis/trd/detect_interaction.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : detect_interaction.py +@Desc : The implementation of Chapter 2.1.6 of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" +from tenacity import retry, stop_after_attempt, wait_random_exponential + +from metagpt.actions import Action +from metagpt.logs import logger +from metagpt.utils.common import general_after_log, to_markdown_code_block + + +class DetectInteraction(Action): + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def run( + self, + *, + user_requirements: str, + use_case_actors: str, + legacy_interaction_events: str, + evaluation_conclusion: str, + ) -> str: + msg = PROMPT.format( + use_case_actors=use_case_actors, + original_user_requirements=to_markdown_code_block(val=user_requirements), + previous_version_of_interaction_events=legacy_interaction_events, + the_evaluation_conclusion_of_previous_version_of_trd=evaluation_conclusion, + ) + return await self.llm.aask(msg=msg) + + +PROMPT = """ +## Actor, System, External System +{use_case_actors} + +## User Requirements +{original_user_requirements} + +## Legacy Interaction Events +{previous_version_of_interaction_events} + +## Evaluation Conclusion +{the_evaluation_conclusion_of_previous_version_of_trd} + +--- +You are a tool for capturing interaction events. +"Actor, System, External System" provides the possible participants of the interaction event; +"Legacy Interaction Events" is the contents of the interaction events that you output earlier; +Some descriptions in the "Evaluation Conclusion" relate to the content of "User Requirements", and these descriptions in the "Evaluation Conclusion" address some issues regarding the content of "Legacy Interaction Events"; +You need to capture the interaction events occurring in the description within the content of "User Requirements", including: +1. Who is interacting with whom. An interaction event has a maximum of 2 participants. If there are multiple participants, it indicates that multiple events are combined into one event and should be further split.\; +2. When an interaction event occurs, who is the initiator? What data did the initiator enter? +Return a markdown JSON object list, each object of the list containing: +- a "name" key containing the name of the interaction event; +- a "participants" key containing a string list of the names of the two participants; +- a "initiator" key containing the name of the participant who initiate the interaction; +- a "input" key containing a natural text description about the input data; +""" diff --git a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py new file mode 100644 index 000000000..20c3086f6 --- /dev/null +++ b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : evaluate_trd.py +@Desc : The implementation of Chapter 2.1.6~2.1.7 of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" + +from metagpt.actions.requirement_analysis import EvaluateAction, EvaluationData +from metagpt.utils.common import to_markdown_code_block + + +class EvaluateTRD(EvaluateAction): + async def run( + self, + *, + user_requirements: str, + use_case_actors: str, + trd: str, + interaction_events: str = "", + legacy_user_requirements_interaction_events: str = "", + incremental_user_requirements_interaction_events: str = "", + ) -> EvaluationData: + prompt = PROMPT.format( + use_case_actors=use_case_actors, + user_requirements=to_markdown_code_block(val=user_requirements), + trd=to_markdown_code_block(val=trd), + legacy_user_requirements_interaction_events=legacy_user_requirements_interaction_events, + incremental_user_requirements_interaction_events=incremental_user_requirements_interaction_events, + interaction_events=interaction_events, + ) + return await self._vote(prompt) + + +PROMPT = """ +## Actor, System, External System +{use_case_actors} + +## User Requirements +{user_requirements} + +## TRD Design +{trd} + +## Interaction Events +{legacy_user_requirements_interaction_events} +{incremental_user_requirements_interaction_events} +{interaction_events} + +--- +You are a tool to evaluate the TRD design. +"Actor, System, External System" provides the possible participants in interaction events; +"User Requirements" provides the original requirements description, any parts not mentioned in this description will be handled by other modules, so do not fabricate requirements; +"Interaction Events" provides some identified interaction events and the interacting participants based on the content of the "User Requirements"; +"TRD Design" provides a comprehensive design of the implementation steps for the original requirements, incorporating the interaction events from "Interaction Events" and adding additional steps to connect the complete upstream and downstream data flows; +To integrate the complete upstream and downstream data flows, "TRD Design" allows for the inclusion of steps not present in the original requirements description, provided these steps do not contradict the content explicitly described in the "User Requirements"; +Which interactions from "Interaction Events" correspond to which steps in "TRD Design"? Please provide reasons. +Which aspects of "TRD Design" and "Interaction Events" do not align with the descriptions in "User Requirements"? Please provide detailed descriptions and reasons. +If the descriptions in "User Requirements" are divided into multiple steps in "TRD Design" and "Interaction Events," it can be considered compliant with the descriptions in "User Requirements" as long as it does not conflict with them; +There is a possibility of missing details in the descriptions of "User Requirements". Any additional steps in "TRD Design" and "Interaction Events" are considered compliant with "User Requirements" as long as they do not conflict with the descriptions provided in "User Requirements". +Return a markdown JSON object with: +- a "is_pass" key containing a true boolean value if there is not any issue in the "TRD Design"; +- an "issues" key containing a string list of natural text about the issues found in the "TRD Design" if any, each issue found must provide a detailed description and include reasons; +- a "conclusion" key containing the evaluation conclusion; +- a "correspondence_between" key containing the judgement detail of the natural text string list about the correspondence between "Interaction Events" and "TRD Design" steps; +- a "misalignment" key containing the judgement detail of the natural text string list about the misalignment with "User Requirements"; +""" diff --git a/metagpt/actions/requirement_analysis/trd/write_trd.py b/metagpt/actions/requirement_analysis/trd/write_trd.py new file mode 100644 index 000000000..98199393d --- /dev/null +++ b/metagpt/actions/requirement_analysis/trd/write_trd.py @@ -0,0 +1,195 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : write_trd.py +@Desc : The implementation of Chapter 2.1.6~2.1.7 of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" +from tenacity import retry, stop_after_attempt, wait_random_exponential + +from metagpt.actions import Action +from metagpt.logs import logger +from metagpt.utils.common import general_after_log, to_markdown_code_block + + +class WriteTRD(Action): + async def run( + self, + *, + user_requirements: str = "", + use_case_actors: str, + available_external_interfaces: str, + legacy_trd: str = "", + evaluation_conclusion: str = "", + interaction_events: str = "", + legacy_user_requirements: str = "", + legacy_user_requirements_trd: str = "", + legacy_user_requirements_interaction_events: str = "", + incremental_user_requirements: str = "", + previous_version_trd: str = "", + incremental_user_requirements_interaction_events: str = "", + ) -> str: + if incremental_user_requirements: + return await self._write_incremental_trd( + use_case_actors=use_case_actors, + legacy_user_requirements=legacy_user_requirements, + available_external_interfaces=available_external_interfaces, + legacy_user_requirements_trd=legacy_user_requirements_trd, + legacy_user_requirements_interaction_events=legacy_user_requirements_interaction_events, + incremental_user_requirements=incremental_user_requirements, + previous_version_trd=previous_version_trd, + evaluation_conclusion=evaluation_conclusion, + incremental_user_requirements_interaction_events=incremental_user_requirements_interaction_events, + ) + return await self._write_new_trd( + use_case_actors=use_case_actors, + original_user_requirement=user_requirements, + available_external_interfaces=available_external_interfaces, + legacy_trd=legacy_trd, + evaluation_conclusion=evaluation_conclusion, + interaction_events=interaction_events, + ) + + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def _write_new_trd( + self, + *, + use_case_actors: str, + original_user_requirement: str, + available_external_interfaces: str, + legacy_trd: str, + evaluation_conclusion: str, + interaction_events: str, + ) -> str: + prompt = NEW_PROMPT.format( + use_case_actors=use_case_actors, + original_user_requirement=to_markdown_code_block(val=original_user_requirement), + available_external_interfaces=available_external_interfaces, + legacy_trd=to_markdown_code_block(val=legacy_trd), + evaluation_conclusion=evaluation_conclusion, + interaction_events=interaction_events, + ) + return await self.llm.aask(prompt) + + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def _write_incremental_trd( + self, + *, + use_case_actors: str, + legacy_user_requirements: str, + available_external_interfaces: str, + legacy_user_requirements_trd: str, + legacy_user_requirements_interaction_events: str, + incremental_user_requirements: str, + previous_version_trd: str, + evaluation_conclusion: str, + incremental_user_requirements_interaction_events: str, + ): + prompt = INCREMENTAL_PROMPT.format( + use_case_actors=use_case_actors, + legacy_user_requirements=to_markdown_code_block(val=legacy_user_requirements), + available_external_interfaces=available_external_interfaces, + legacy_user_requirements_trd=to_markdown_code_block(val=legacy_user_requirements_trd), + legacy_user_requirements_interaction_events=legacy_user_requirements_interaction_events, + incremental_user_requirements=to_markdown_code_block(val=incremental_user_requirements), + previous_version_trd=to_markdown_code_block(val=previous_version_trd), + evaluation_conclusion=evaluation_conclusion, + incremental_user_requirements_interaction_events=incremental_user_requirements_interaction_events, + ) + return await self.llm.aask(prompt) + + +NEW_PROMPT = """ +## Actor, System, External System +{use_case_actors} + +## User Requirements +{original_user_requirement} + +## Available External Interfaces +{available_external_interfaces} + +## Legacy TRD +{legacy_trd} + +## Evaluation Conclusion +{evaluation_conclusion} + +## Interaction Events +{interaction_events} + +--- +You are a TRD generator. +The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram; +The content of "Available External Interfaces" provides the candidate steps, along with the inputs and outputs of each step; +"User Requirements" provides the original requirements description, any parts not mentioned in this description will be handled by other modules, so do not fabricate requirements; +"Legacy TRD" provides the old version of the TRD based on the "User Requirements" and can serve as a reference for the new TRD; +"Evaluation Conclusion" provides a summary of the evaluation of the old TRD in the "Legacy TRD" and can serve as a reference for the new TRD; +"Interaction Events" provides some identified interaction events and the interacting participants based on the content of the "User Requirements"; +1. What inputs and outputs are described in the "User Requirements"? +2. How many steps are needed to achieve the inputs and outputs described in the "User Requirements"? Which actors from the "Actor, System, External System" section are involved in each step? What are the inputs and outputs of each step? Where is this output used, for example, as input for which interface or where it is required in the requirements, etc.? +3. Output a complete Technical Requirements Document (TRD): + 3.1. In the description, use the actor and system names defined in the "Actor, System, External System" section to describe the interactors; + 3.2. The content should include the original text of the requirements from "User Requirements"; + 3.3. In the TRD, each step can involve a maximum of two participants. If there are more than two participants, the step needs to be further split; + 3.4. In the TRD, each step must include detailed descriptions, inputs, outputs, participants, initiator, and the rationale for the step's existence. The rationale should reference the original text to justify it, such as specifying which interface requires the output of this step as parameters or where in the requirements this step is mandated, etc. +""" + +INCREMENTAL_PROMPT = """ +## Actor, System, External System +{use_case_actors} + +## Legacy User Requirements +{legacy_user_requirements} + +## Available External Interfaces +{available_external_interfaces} + +## The TRD of Legacy User Requirements +{legacy_user_requirements_trd} + + +## The Interaction Events of Legacy User Requirements +{legacy_user_requirements_interaction_events} + +## Incremental Requirements +{incremental_user_requirements} + +## Legacy TRD +{previous_version_trd} + +## Evaluation Conclusion +{evaluation_conclusion} + +## Interaction Events +{incremental_user_requirements_interaction_events} + +--- +You are a TRD generator. +The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram; +The content of "Available External Interfaces" provides the candidate steps, along with the inputs and outputs of each step; +"Legacy User Requirements" provides the original requirements description handled by other modules for your use; +"The TRD of Legacy User Requirements" is the TRD generated by other modules based on the "Legacy User Requirements" for your use; +"The Interaction Events of Legacy User Requirements" is the interaction events list generated by other modules based on the "Legacy User Requirements" for your use; +"Incremental Requirements" provides the original requirements description that you need to address, any parts not mentioned in this description will be handled by other modules, so do not fabricate requirements; +The requirements in "Legacy User Requirements" combined with the "Incremental Requirements" form a complete set of requirements, therefore, you need to add the TRD portion of the "Incremental Requirements" to "The TRD of Legacy User Requirements", the added content must not conflict with the original content of "The TRD of Legacy User Requirements"; +"Legacy TRD" provides the old version of the TRD you previously wrote based on the "Incremental Requirements" and can serve as a reference for the new TRD; +"Evaluation Conclusion" provides a summary of the evaluation of the old TRD you generated in the "Legacy TRD", and the identified issues can serve as a reference for the new TRD you create; +"Interaction Events" provides some identified interaction events and the interacting participants based on the content of the "Incremental Requirements"; +1. What inputs and outputs are described in the "Incremental Requirements"? +2. How many steps are needed to achieve the inputs and outputs described in the "Incremental Requirements"? Which actors from the "Actor, System, External System" section are involved in each step? What are the inputs and outputs of each step? Where is this output used, for example, as input for which interface or where it is required in the requirements, etc.? +3. Output a complete Technical Requirements Document (TRD): + 3.1. In the description, use the actor and system names defined in the "Actor, System, External System" section to describe the interactors; + 3.2. The content should include the original text of the requirements from "User Requirements"; + 3.3. In the TRD, each step can involve a maximum of two participants. If there are more than two participants, the step needs to be further split; + 3.4. In the TRD, each step must include detailed descriptions, inputs, outputs, participants, initiator, and the rationale for the step's existence. The rationale should reference the original text to justify it, such as specifying which interface requires the output of this step as parameters or where in the requirements this step is mandated, etc. + """ diff --git a/tests/data/requirements/1.acknowledge.md b/tests/data/requirements/1.acknowledge.md new file mode 100644 index 000000000..a48b95347 --- /dev/null +++ b/tests/data/requirements/1.acknowledge.md @@ -0,0 +1,173 @@ +## Interfaces +- 用户登录 + - Description: 用户从小程序/微应用发起请求,需要验证用户的合法身份才能正常处理。 + - ID: 1 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |authCode|用户临时免登授权码|String(64)|√|| + |loginTypeEnum|登录类型|String(20)|√|| + |authCorpId|用户所在企业/组织id|String(64)||微应用免登时传递| + |app|应用标识|String(3)|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功与否,成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|用户的sessionId|string|√|| +- 根据sessionId查询用户详细信息 + - Description: 查询当前用户的详细信息,如 staffId,unionId,name,avatar等信息 + - ID: 2 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |NDA_SESSION|用户sessionId|String(64)|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功与否,成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|用户的详细信息|object|√|| + |-> corpId|当前用户企业 钉钉ID(小程序端会拿不到该信息)|string|√|| + |-> corpName|当前用户企业名称(小程序端会拿不到该信息)|string|√|| + |-> staffId|员工在当前企业内的唯一标识,也称staffId(小程序端会拿不到该信息)|string|√|| + |-> unionId|员工在当前开发者企业账号范围内的唯一标识,系统生成,固定值,不会改变。|string|√|| + |-> name|当前用户的名称(小程序端会拿不到该信息)|string|√|| + |-> avatar|头像图片URL|string|√|| +- 查询国家情况描述 + - Description: 根据国家code查询国家情况描述 + - ID: 3 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |countryCode|国家code|string|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|国家情况描述|object|√|| + |-> id|id|integer|√|| + |-> countryName|国家名称|string|√|| + |-> countryCode|国家code|string|√|| + |-> detail|产品法规分析|string|√|| +- 查询产品法规分析(法律意见详情) + - Description: 根据国家和业务线查询产品法规分析 + - ID: 4 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |countryCode|国家code|string|√|| + |businessCode|业务线code|string|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|法律意见详情|object|√|| + |-> id|id|integer|√|| + |-> countryName|国家名称|string|√|| + |-> countryCode|国家code|string|√|| + |-> businessLine|业务线|string|√|| + |-> businessCode|业务线code|string|√|| + |-> detail|产品法规分析|string|√|| + |-> signEntity|签约主体|string|√|| +- 查询法律意见总数 + - Description: 法律意见总数查询 + - ID: 5 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|总数|integer|√|| +- 查询所有国家和业务线信息列表 + - Description: 查询所有国家和业务线信息列表 + - ID: 6 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|所有数据列表|list of object|√|| + |-> country|国家code|string|√|| + |-> business|业务线code|string|√|| + |-> dataType|数据类型|string|√|| + |-> businessName|业务线名|string|√|| + |-> countryName|国家名|string|√|| + |-> businessNameEn|业务线名(英文)|string|√|| +- 调用法务中台antlaw接口 + - ID: 7 +- 国家/区域导游详情 & 法律意见详情 查询 + - Description:根据国家code查询国家/区域导游信息详情 + - ID: 8 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |countryCode|国家code|string|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|国家/区域导游详情|object|√|| + |-> country||||| + |-> -> id|id|integer|√|| + |-> -> country|国家code|string|√|| + |-> -> countryName|国家中文名称|string|√|| + |-> -> countryNameEn|国家英文名称|string|√|| + |-> -> content|国家导游中文详情json数组,具体格式见下示例|list of object|√|| + |-> -> -> title|标题|object|√|| + |-> -> -> -> title|中文标题|string||| + |-> -> -> -> titleEn|英文标题|string||| + |-> -> -> contentList|标题下面的文字描述列表|list of object|√|| + |-> -> -> -> detail|内容中文详情|string|√|| + |-> -> -> -> detailEn|内容英文详情|string|√|| + |-> -> -> -> url|超链接|string||| + |-> legal|法务信息|object||| + |-> -> country|国家code|string|√|| + |-> -> businessList|业务线列表|list of object||| + |-> -> -> id|id|integer||新增时不传,修改时传递| + |-> -> -> business|业务线code|string|√|| + |-> -> -> businessName|业务线中文名称|string|√|| + |-> -> -> businessNameEn|业务线英文名称|string|√|| + |-> -> -> content|业务线json,具体如下|object|√|| + |-> -> -> -> detailEn|具体的详情英文内容|string|√|| + |-> -> -> -> detail|具体的详情内容|string|√|| +- 国家/区域导游列表分页查询 + - Description: 分页查询国家/区域列表 + - ID: 9 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |pageSize|分页大小|integer|√|>=1| + |pageNum|分页大小|integer|√|>=1| + |country|国家code|string||| + |business|业务线code|string||| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|国家/区域导游详情|list of object|√|| + |-> id|id|integer|√|| + |-> country|国家code|string|√|| + |-> countryName|国家中文名称|string|√|| + |-> countryNameEn|国家英文名称|string|√|| + |-> gmtCreate|创建时间|string|√|| + |-> gmtModified|更新时间|string|√|| + |total|数据总量|integer|√|| diff --git a/tests/data/requirements/1.actors.json b/tests/data/requirements/1.actors.json new file mode 100644 index 000000000..aa7bf5012 --- /dev/null +++ b/tests/data/requirements/1.actors.json @@ -0,0 +1,5 @@ +{ + "法务查询者": "Actor", + "国际小超人钉钉小程序": "System", + "法务中台": "External System" +} \ No newline at end of file diff --git a/tests/data/requirements/1.constraint.md b/tests/data/requirements/1.constraint.md new file mode 100644 index 000000000..e09fef4b7 --- /dev/null +++ b/tests/data/requirements/1.constraint.md @@ -0,0 +1,2 @@ +- 基于dingtalk框架编码; +- 用java编程语言; \ No newline at end of file diff --git a/tests/data/requirements/1.json b/tests/data/requirements/1.json new file mode 100644 index 000000000..c995ea28f --- /dev/null +++ b/tests/data/requirements/1.json @@ -0,0 +1,5 @@ +[ + "【按国家名维度搜索】\n法务查询者在国际小超人钉钉小程序搜索框中进行检索时采用 typeahead,只能下拉选择数据库中有的国家名。", + "法务查询者从国际小超人钉钉小程序UI侧的国家名称列表中选中国家名,进入国家详情界面。\n法务查询者从国家详情中的业务线名列表中选出业务线名。", + "国际小超人钉钉小程序用国家代码和业务代码做参数,查询法律意见详情,然后将结果展示给法务查询者。" +] \ No newline at end of file diff --git a/tests/metagpt/actions/requirement_analysis/__init__.py b/tests/metagpt/actions/requirement_analysis/__init__.py new file mode 100644 index 000000000..e69de29bb From ff2c54777c15a3ebaf5fed9d0bc1fcf1a228f910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Fri, 14 Jun 2024 14:48:58 +0800 Subject: [PATCH 03/37] refactor WriteTRD.run --- examples/mgx_write_project_framework.py | 135 ++++++++++++++++++ examples/write_project_framework.py | 5 +- .../requirement_analysis/trd/write_trd.py | 68 ++++++++- 3 files changed, 202 insertions(+), 6 deletions(-) create mode 100644 examples/mgx_write_project_framework.py diff --git a/examples/mgx_write_project_framework.py b/examples/mgx_write_project_framework.py new file mode 100644 index 000000000..b5d982b72 --- /dev/null +++ b/examples/mgx_write_project_framework.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/13 +@Author : mashenquan +@File : write_project_framework.py +@Desc : The implementation of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb +""" +import asyncio +import json +import uuid +from pathlib import Path +from typing import Dict, List + +import typer +from pydantic import BaseModel + +from metagpt.config2 import Config +from metagpt.const import DEFAULT_WORKSPACE_ROOT +from metagpt.context import Context +from metagpt.environment import Environment +from metagpt.logs import logger +from metagpt.roles import Architect +from metagpt.roles.di.team_leader import TeamLeader +from metagpt.schema import AIMessage, UserMessage +from metagpt.utils.common import any_to_str, aread, to_markdown_code_block + +app = typer.Typer(add_completion=False) + + +class EnvBuilder(BaseModel): + context: Context + user_requirements: List[str] + actors: Dict[str, str] + acknowledge: str + technical_constraint: str + output_dir: Path + + def build(self) -> Environment: + env = Environment(context=self.context) + team_leader = TeamLeader() + architect = Architect() + + # Prepare context + use_case_actors = "".join([f"- {v}: {k}\n" for k, v in self.actors.items()]) + msg = """ +The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram. +## Actor, System, External System +{use_case_actors} + """ + architect.rc.memory.add(AIMessage(content=msg.format(use_case_actors=use_case_actors))) + + # Prepare acknowledge + msg = """ +The descriptions of the interfaces used in TRD can be found in the "Acknowledge" section. +## Acknowledge +{acknowledge} + """ + architect.rc.memory.add(AIMessage(content=msg.format(acknowledge=to_markdown_code_block(val=self.acknowledge)))) + + # Prepare technical requirements + msg = """ +"Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet. +## Additional Technical Requirements +{technical_requirements} +""" + architect.rc.memory.add(AIMessage(content=msg.format(technical_requirements=self.technical_constraint))) + + env.add_roles([team_leader, architect]) + return env + + +async def develop( + context: Context, + user_requirement_filename: str, + actors_filename: str, + acknowledge_filename: str, + constraint_filename: str, + output_dir: str, +): + output_dir = Path(output_dir) if output_dir else DEFAULT_WORKSPACE_ROOT / uuid.uuid4().hex + + v = await aread(filename=user_requirement_filename) + user_requirements = json.loads(v) + v = await aread(filename=actors_filename) + actors = json.loads(v) + acknowledge = await aread(filename=acknowledge_filename) + technical_constraint = await aread(filename=constraint_filename) + env_builder = EnvBuilder( + context=context, + user_requirements=user_requirements, + actors=actors, + acknowledge=acknowledge, + technical_constraint=technical_constraint, + output_dir=output_dir, + ) + env = env_builder.build() + msg = """ +根据"User Requirements"中的用户需求,写TRD +## User Requirements +```json +{user_requirements} +``` + """ + env.publish_message( + UserMessage(content=msg.format(user_requirements=f"{user_requirements}"), send_to=any_to_str(TeamLeader)) + ) + + while not env.is_idle: + await env.run() + + +@app.command() +def startup( + user_requirement_filename: str = typer.Argument(..., help="The filename of the user requirements."), + actors_filename: str = typer.Argument(..., help="The filename of UML use case actors description."), + acknowledge_filename: str = typer.Argument(..., help="External interfaces declarations."), + llm_config: str = typer.Option(default="", help="Low-cost LLM config"), + constraint_filename: str = typer.Option(default="", help="What technical dependency constraints are."), + output_dir: str = typer.Option(default="", help="Output directory."), +): + if llm_config and Path(llm_config).exists(): + config = Config.from_yaml_file(Path(llm_config)) + else: + logger.info("GPT 4 turbo is recommended") + config = Config.default() + ctx = Context(config=config) + + asyncio.run( + develop(ctx, user_requirement_filename, actors_filename, acknowledge_filename, constraint_filename, output_dir) + ) + + +if __name__ == "__main__": + app() diff --git a/examples/write_project_framework.py b/examples/write_project_framework.py index fe015dbdd..968576515 100644 --- a/examples/write_project_framework.py +++ b/examples/write_project_framework.py @@ -5,9 +5,6 @@ @Author : mashenquan @File : write_project_framework.py @Desc : The implementation of RFC243. https://deepwisdom.feishu.cn/wiki/QobGwPkImijoyukBUKHcrYetnBb - -Usage Example: - """ import asyncio import json @@ -64,7 +61,7 @@ async def _write_trd( user_requirements=r, use_case_actors=use_case_actors, available_external_interfaces=available_external_interfaces, - legacy_trd=trd, + previous_version_trd=trd, evaluation_conclusion=evaluation_conclusion, interaction_events=interaction_events, ) diff --git a/metagpt/actions/requirement_analysis/trd/write_trd.py b/metagpt/actions/requirement_analysis/trd/write_trd.py index 98199393d..071de92f0 100644 --- a/metagpt/actions/requirement_analysis/trd/write_trd.py +++ b/metagpt/actions/requirement_analysis/trd/write_trd.py @@ -10,17 +10,23 @@ from tenacity import retry, stop_after_attempt, wait_random_exponential from metagpt.actions import Action from metagpt.logs import logger +from metagpt.tools.tool_registry import register_tool from metagpt.utils.common import general_after_log, to_markdown_code_block +@register_tool(include_functions=["run"]) class WriteTRD(Action): + """WriteTRD deal with the following situations: + 1. Given some new user requirements, write out a new TRD(Technical Requirements Document). + 2. Given some incremental user requirements, update the legacy TRD. + """ + async def run( self, *, user_requirements: str = "", use_case_actors: str, available_external_interfaces: str, - legacy_trd: str = "", evaluation_conclusion: str = "", interaction_events: str = "", legacy_user_requirements: str = "", @@ -30,6 +36,64 @@ class WriteTRD(Action): previous_version_trd: str = "", incremental_user_requirements_interaction_events: str = "", ) -> str: + """ + Handles the writing or updating of a Technical Requirements Document (TRD) based on user requirements. + + Args: + user_requirements (str, optional): New user requirements for creating a new TRD. This value must be not empty if a new TRD is wanted. + use_case_actors (str): Description of the actors involved in the use case. + available_external_interfaces (str): List of available external interfaces. + evaluation_conclusion (str, optional): Conclusion of the evaluation of the requirements. Defaults to an empty string. + interaction_events (str, optional): Events related to user interactions. Defaults to an empty string. + legacy_user_requirements (str, optional): Existing user requirements if updating. Defaults to an empty string. + legacy_user_requirements_trd (str, optional): The TRD associated with the existing user requirements. Defaults to an empty string. + legacy_user_requirements_interaction_events (str, optional): Interaction events related to the existing user requirements. Defaults to an empty string. + incremental_user_requirements (str, optional): New incremental user requirements for updating the TRD. Defaults to an empty string. + previous_version_trd (str, optional): The previous version of the TRD if updating incrementally. Defaults to an empty string. + incremental_user_requirements_interaction_events (str, optional): Interaction events related to the incremental user requirements. Defaults to an empty string. + + Returns: + str: The newly created or updated TRD. + + Example: + >>> # Given a new user requirements, write out a new TRD. + >>> user_requirements = "Write a 'snake game' TRD." + >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" + >>> available_external_interfaces = "The available external interfaces returned by `CompressExternalInterfaces.run` are ..." + >>> previous_version_trd = "TRD ..." # The last version of the TRD written out if there is. + >>> evaluation_conclusion = "Conclusion ..." # The conclusion returned by `EvaluateTRD.run` if there is. + >>> interaction_events = "Interaction ..." # The interaction events returned by `DetectInteraction.run`. + >>> write_trd = WriteTRD(context=context) + >>> new_version_trd = await write_trd.run( + >>> user_requirements=user_requirements, + >>> use_case_actors=use_case_actors, + >>> available_external_interfaces=available_external_interfaces, + >>> previous_version_trd=previous_version_trd, + >>> evaluation_conclusion=evaluation_conclusion, + >>> interaction_events=interaction_events, + >>> ) + >>> print(new_version_trd) + ## Technical Requirements Document\n ... + + >>> # Given an incremental requirements, update the legacy TRD. + >>> legacy_user_requirements = ["User requirements 1. ...", "User requirements 2. ...", ...] + >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" + >>> available_external_interfaces = "The available external interfaces returned by `CompressExternalInterfaces.run` are ..." + >>> legacy_user_requirements_trd = "## Technical Requirements Document\\n ..." # The TRD before integrating more user requirements. + >>> legacy_user_requirements_interaction_events = ["The interaction events list of user requirements 1 ...", "The interaction events list of user requiremnts 2 ...", ...] + >>> incremental_user_requirements + >>> new_version_trd = await write_trd.run( + >>> legacy_user_requirements=str(legacy_user_requirements), + >>> use_case_actors=use_case_actors, + >>> available_external_interfaces=available_external_interfaces, + >>> legacy_user_requirements_trd=legacy_user_requirements_trd, + >>> legacy_user_requirements_interaction_events=str(legacy_user_requirements_interaction_events), + >>> incremental_user_requirements=r, + previous_version_trd=trd, + evaluation_conclusion=evaluation_conclusion, + incremental_user_requirements_interaction_events=interaction_events, + ) + """ if incremental_user_requirements: return await self._write_incremental_trd( use_case_actors=use_case_actors, @@ -46,7 +110,7 @@ class WriteTRD(Action): use_case_actors=use_case_actors, original_user_requirement=user_requirements, available_external_interfaces=available_external_interfaces, - legacy_trd=legacy_trd, + legacy_trd=previous_version_trd, evaluation_conclusion=evaluation_conclusion, interaction_events=interaction_events, ) From 1a1e98631d7611750753c569eb2e75b0c32b0666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Fri, 14 Jun 2024 15:28:10 +0800 Subject: [PATCH 04/37] feat: supplement prompt --- metagpt/actions/requirement_analysis/trd/evaluate_trd.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py index 20c3086f6..2027a3c01 100644 --- a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py +++ b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py @@ -43,6 +43,9 @@ PROMPT = """ ## TRD Design {trd} +## External Interaction Events +{legacy_user_requirements_interaction_events} + ## Interaction Events {legacy_user_requirements_interaction_events} {incremental_user_requirements_interaction_events} @@ -52,9 +55,11 @@ PROMPT = """ You are a tool to evaluate the TRD design. "Actor, System, External System" provides the possible participants in interaction events; "User Requirements" provides the original requirements description, any parts not mentioned in this description will be handled by other modules, so do not fabricate requirements; +"External Interaction Events" is provided by an external module for your use, its content is also referred to "Interaction Events" section; The content in "External Interaction Events" can be determined to be problem-free; +"External Interaction Events" provides some identified interaction events and the interacting participants based on the part of the content of the "User Requirements"; "Interaction Events" provides some identified interaction events and the interacting participants based on the content of the "User Requirements"; "TRD Design" provides a comprehensive design of the implementation steps for the original requirements, incorporating the interaction events from "Interaction Events" and adding additional steps to connect the complete upstream and downstream data flows; -To integrate the complete upstream and downstream data flows, "TRD Design" allows for the inclusion of steps not present in the original requirements description, provided these steps do not contradict the content explicitly described in the "User Requirements"; +In order to integrate the full upstream and downstream data flow, the "TRD Design" allows for the inclusion of steps that do not appear in the original requirements description, but do not conflict with those explicitly described in the "User Requirements"; Which interactions from "Interaction Events" correspond to which steps in "TRD Design"? Please provide reasons. Which aspects of "TRD Design" and "Interaction Events" do not align with the descriptions in "User Requirements"? Please provide detailed descriptions and reasons. If the descriptions in "User Requirements" are divided into multiple steps in "TRD Design" and "Interaction Events," it can be considered compliant with the descriptions in "User Requirements" as long as it does not conflict with them; From d8f1a37334d32b65205975057f5ac8144a85b9d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Fri, 14 Jun 2024 17:02:16 +0800 Subject: [PATCH 05/37] feat: + docstring --- examples/write_project_framework.py | 31 +++++----- .../trd/compress_external_interfaces.py | 25 +++++++- .../trd/detect_interaction.py | 33 +++++++++++ .../requirement_analysis/trd/evaluate_trd.py | 47 +++++++++++++-- .../requirement_analysis/trd/write_trd.py | 57 ++++++++++--------- 5 files changed, 143 insertions(+), 50 deletions(-) diff --git a/examples/write_project_framework.py b/examples/write_project_framework.py index 968576515..4e8a03789 100644 --- a/examples/write_project_framework.py +++ b/examples/write_project_framework.py @@ -61,32 +61,29 @@ async def _write_trd( user_requirements=r, use_case_actors=use_case_actors, available_external_interfaces=available_external_interfaces, - previous_version_trd=trd, evaluation_conclusion=evaluation_conclusion, interaction_events=interaction_events, - ) - evaluation = await evaluate_trd.run( - user_requirements=r, use_case_actors=use_case_actors, trd=trd, interaction_events=interaction_events + previous_version_trd=trd, ) else: trd = await write_trd.run( - legacy_user_requirements="\n".join(legacy_user_requirements), - use_case_actors=use_case_actors, - available_external_interfaces=available_external_interfaces, - legacy_user_requirements_trd=legacy_user_requirements_trd, - legacy_user_requirements_interaction_events="\n".join(legacy_user_requirements_interaction_events), - incremental_user_requirements=r, - previous_version_trd=trd, - evaluation_conclusion=evaluation_conclusion, - incremental_user_requirements_interaction_events=interaction_events, - ) - evaluation = await evaluate_trd.run( user_requirements=r, use_case_actors=use_case_actors, - trd=trd, + available_external_interfaces=available_external_interfaces, + evaluation_conclusion=evaluation_conclusion, + interaction_events=interaction_events, + previous_version_trd=trd, + legacy_user_requirements="\n".join(legacy_user_requirements), + legacy_user_requirements_trd=legacy_user_requirements_trd, legacy_user_requirements_interaction_events="\n".join(legacy_user_requirements_interaction_events), - incremental_user_requirements_interaction_events=interaction_events, ) + evaluation = await evaluate_trd.run( + user_requirements=r, + use_case_actors=use_case_actors, + trd=trd, + interaction_events=interaction_events, + legacy_user_requirements_interaction_events="\n".join(legacy_user_requirements_interaction_events), + ) is_pass = evaluation.is_pass evaluation_conclusion = evaluation.conclusion legacy_user_requirements.append(r) diff --git a/metagpt/actions/requirement_analysis/trd/compress_external_interfaces.py b/metagpt/actions/requirement_analysis/trd/compress_external_interfaces.py index c625da727..abaf6fc30 100644 --- a/metagpt/actions/requirement_analysis/trd/compress_external_interfaces.py +++ b/metagpt/actions/requirement_analysis/trd/compress_external_interfaces.py @@ -10,10 +10,16 @@ from tenacity import retry, stop_after_attempt, wait_random_exponential from metagpt.actions import Action from metagpt.logs import logger +from metagpt.tools.tool_registry import register_tool from metagpt.utils.common import general_after_log +@register_tool(include_functions=["run"]) class CompressExternalInterfaces(Action): + """CompressExternalInterfaces deal with the following situations: + 1. Given a natural text of acknowledgement, it extracts and compresses the information about external system interfaces. + """ + @retry( wait=wait_random_exponential(min=1, max=20), stop=stop_after_attempt(6), @@ -24,12 +30,29 @@ class CompressExternalInterfaces(Action): *, acknowledge: str, ) -> str: + """ + Extracts and compresses information about external system interfaces from a given acknowledgement text. + + Args: + acknowledge (str): A natural text of acknowledgement containing details about external system interfaces. + + Returns: + str: A compressed version of the information about external system interfaces. + + Example: + >>> compress_acknowledge = CompressExternalInterfaces() + >>> acknowledge = "## Interfaces\\n..." + >>> available_external_interfaces = await compress_acknowledge.run(acknowledge=acknowledge) + >>> print(available_external_interfaces) + ```json\n[\n{\n"id": 1,\n"inputs": {... + """ return await self.llm.aask( msg=acknowledge, system_msgs=[ + "Extracts and compresses the information about external system interfaces.", "Return a markdown JSON list of objects, each object containing:\n" '- an "id" key containing the interface id;\n' '- an "inputs" key containing a dict of input parameters that consist of name and description pairs;\n' - '- an "outputs" key containing a dict of returns that consist of name and description pairs;\n' + '- an "outputs" key containing a dict of returns that consist of name and description pairs;\n', ], ) diff --git a/metagpt/actions/requirement_analysis/trd/detect_interaction.py b/metagpt/actions/requirement_analysis/trd/detect_interaction.py index a46d77ba3..844266034 100644 --- a/metagpt/actions/requirement_analysis/trd/detect_interaction.py +++ b/metagpt/actions/requirement_analysis/trd/detect_interaction.py @@ -10,10 +10,16 @@ from tenacity import retry, stop_after_attempt, wait_random_exponential from metagpt.actions import Action from metagpt.logs import logger +from metagpt.tools.tool_registry import register_tool from metagpt.utils.common import general_after_log, to_markdown_code_block +@register_tool(include_functions=["run"]) class DetectInteraction(Action): + """DetectInteraction deal with the following situations: + 1. Given a natural text of user requirements, it identifies the interaction events and the participants of those interactions from the original text. + """ + @retry( wait=wait_random_exponential(min=1, max=20), stop=stop_after_attempt(6), @@ -27,6 +33,33 @@ class DetectInteraction(Action): legacy_interaction_events: str, evaluation_conclusion: str, ) -> str: + """ + Identifies interaction events and participants from the user requirements. + + Args: + user_requirements (str): A natural language text detailing the user's requirements. + use_case_actors (str): A description of the actors involved in the use case. + legacy_interaction_events (str): The previous version of the interaction events identified by you. + evaluation_conclusion (str): The external evaluation conclusions regarding the interactions events identified by you. + + Returns: + str: A string summarizing the identified interaction events and their participants. + + Example: + >>> detect_interaction = DetectInteraction() + >>> user_requirements = "User requirements 1. ..." + >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" + >>> previous_version_interaction_events = "['interaction ...', ...]" + >>> evaluation_conclusion = "Issues: ..." + >>> interaction_events = await detect_interaction.run( + >>> user_requirements=user_requirements, + >>> use_case_actors=use_case_actors, + >>> legacy_interaction_events=previous_version_interaction_events, + >>> evaluation_conclusion=evaluation_conclusion, + >>> ) + >>> print(interaction_events) + "['interaction ...', ...]" + """ msg = PROMPT.format( use_case_actors=use_case_actors, original_user_requirements=to_markdown_code_block(val=user_requirements), diff --git a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py index 2027a3c01..a46a38295 100644 --- a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py +++ b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py @@ -8,26 +8,66 @@ """ from metagpt.actions.requirement_analysis import EvaluateAction, EvaluationData +from metagpt.tools.tool_registry import register_tool from metagpt.utils.common import to_markdown_code_block +@register_tool(include_functions=["run"]) class EvaluateTRD(EvaluateAction): + """EvaluateTRD deal with the following situations: + 1. Given a TRD, evaluates the quality and returns a conclusion. + """ + async def run( self, *, user_requirements: str, use_case_actors: str, trd: str, - interaction_events: str = "", + interaction_events: str, legacy_user_requirements_interaction_events: str = "", - incremental_user_requirements_interaction_events: str = "", ) -> EvaluationData: + """ + Evaluates the given TRD based on user requirements, use case actors, interaction events, and optionally external legacy interaction events. + + Args: + user_requirements (str): The requirements provided by the user. + use_case_actors (str): The actors involved in the use case. + trd (str): The TRD (Technical Requirements Document) to be evaluated. + interaction_events (str): The interaction events related to the user requirements and the TRD. + legacy_user_requirements_interaction_events (str, optional): External legacy interaction events tied to the user requirements. Defaults to an empty string. + + Returns: + EvaluationData: The conclusion of the TRD evaluation. + + Example: + >>> evaluate_trd = EvaluateTRD() + >>> user_requirements = "User requirements 1. ..." + >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" + >>> trd = "## TRD\\n..." + >>> interaction_events = "['interaction ...', ...]" + >>> evaluation_conclusion = "Issues: ..." + >>> legacy_user_requirements_interaction_events = ["user requirements 1. ...", ...] + >>> evaluation = await evaluate_trd.run( + >>> user_requirements=user_requirements, + >>> use_case_actors=use_case_actors, + >>> trd=trd, + >>> interaction_events=interaction_events, + >>> legacy_user_requirements_interaction_events=str(legacy_user_requirements_interaction_events), + >>> ) + >>> is_pass = evaluation.is_pass + >>> print(is_pass) + True + >>> evaluation_conclusion = evaluation.conclusion + >>> print(evaluation_conclusion) + ## Conclustion\n balabalabala... + + """ prompt = PROMPT.format( use_case_actors=use_case_actors, user_requirements=to_markdown_code_block(val=user_requirements), trd=to_markdown_code_block(val=trd), legacy_user_requirements_interaction_events=legacy_user_requirements_interaction_events, - incremental_user_requirements_interaction_events=incremental_user_requirements_interaction_events, interaction_events=interaction_events, ) return await self._vote(prompt) @@ -48,7 +88,6 @@ PROMPT = """ ## Interaction Events {legacy_user_requirements_interaction_events} -{incremental_user_requirements_interaction_events} {interaction_events} --- diff --git a/metagpt/actions/requirement_analysis/trd/write_trd.py b/metagpt/actions/requirement_analysis/trd/write_trd.py index 071de92f0..94fedb3b2 100644 --- a/metagpt/actions/requirement_analysis/trd/write_trd.py +++ b/metagpt/actions/requirement_analysis/trd/write_trd.py @@ -28,32 +28,28 @@ class WriteTRD(Action): use_case_actors: str, available_external_interfaces: str, evaluation_conclusion: str = "", - interaction_events: str = "", + interaction_events: str, + previous_version_trd: str = "", legacy_user_requirements: str = "", legacy_user_requirements_trd: str = "", legacy_user_requirements_interaction_events: str = "", - incremental_user_requirements: str = "", - previous_version_trd: str = "", - incremental_user_requirements_interaction_events: str = "", ) -> str: """ Handles the writing or updating of a Technical Requirements Document (TRD) based on user requirements. Args: - user_requirements (str, optional): New user requirements for creating a new TRD. This value must be not empty if a new TRD is wanted. + user_requirements (str): The new/incremental user requirements. use_case_actors (str): Description of the actors involved in the use case. available_external_interfaces (str): List of available external interfaces. - evaluation_conclusion (str, optional): Conclusion of the evaluation of the requirements. Defaults to an empty string. - interaction_events (str, optional): Events related to user interactions. Defaults to an empty string. - legacy_user_requirements (str, optional): Existing user requirements if updating. Defaults to an empty string. - legacy_user_requirements_trd (str, optional): The TRD associated with the existing user requirements. Defaults to an empty string. - legacy_user_requirements_interaction_events (str, optional): Interaction events related to the existing user requirements. Defaults to an empty string. - incremental_user_requirements (str, optional): New incremental user requirements for updating the TRD. Defaults to an empty string. - previous_version_trd (str, optional): The previous version of the TRD if updating incrementally. Defaults to an empty string. - incremental_user_requirements_interaction_events (str, optional): Interaction events related to the incremental user requirements. Defaults to an empty string. + evaluation_conclusion (str, optional): The conclusion of the evaluation of the TRD written by you. Defaults to an empty string. + interaction_events (str): The interaction events related to the user requirements that you are handling. + previous_version_trd (str, optional): The previous version of the TRD written by you, for updating. + legacy_user_requirements (str, optional): Existing user requirements handled by an external object for your use. Defaults to an empty string. + legacy_user_requirements_trd (str, optional): The TRD associated with the existing user requirements handled by an external object for your use. Defaults to an empty string. + legacy_user_requirements_interaction_events (str, optional): Interaction events related to the existing user requirements handled by an external object for your use. Defaults to an empty string. Returns: - str: The newly created or updated TRD. + str: The newly created or updated TRD written by you. Example: >>> # Given a new user requirements, write out a new TRD. @@ -63,48 +59,53 @@ class WriteTRD(Action): >>> previous_version_trd = "TRD ..." # The last version of the TRD written out if there is. >>> evaluation_conclusion = "Conclusion ..." # The conclusion returned by `EvaluateTRD.run` if there is. >>> interaction_events = "Interaction ..." # The interaction events returned by `DetectInteraction.run`. - >>> write_trd = WriteTRD(context=context) + >>> write_trd = WriteTRD() >>> new_version_trd = await write_trd.run( >>> user_requirements=user_requirements, >>> use_case_actors=use_case_actors, >>> available_external_interfaces=available_external_interfaces, - >>> previous_version_trd=previous_version_trd, >>> evaluation_conclusion=evaluation_conclusion, >>> interaction_events=interaction_events, + >>> previous_version_trd=previous_version_trd, >>> ) >>> print(new_version_trd) ## Technical Requirements Document\n ... >>> # Given an incremental requirements, update the legacy TRD. >>> legacy_user_requirements = ["User requirements 1. ...", "User requirements 2. ...", ...] - >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" - >>> available_external_interfaces = "The available external interfaces returned by `CompressExternalInterfaces.run` are ..." >>> legacy_user_requirements_trd = "## Technical Requirements Document\\n ..." # The TRD before integrating more user requirements. >>> legacy_user_requirements_interaction_events = ["The interaction events list of user requirements 1 ...", "The interaction events list of user requiremnts 2 ...", ...] - >>> incremental_user_requirements + >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" + >>> available_external_interfaces = "The available external interfaces returned by `CompressExternalInterfaces.run` are ..." + >>> increment_requirements = "The incremental user requirements are ..." + >>> evaluation_conclusion = "Conclusion ..." # The conclusion returned by `EvaluateTRD.run` if there is. + >>> previous_version_trd = "TRD ..." # The last version of the TRD written out if there is. + >>> write_trd = WriteTRD() >>> new_version_trd = await write_trd.run( - >>> legacy_user_requirements=str(legacy_user_requirements), + >>> user_requirements=increment_requirements, >>> use_case_actors=use_case_actors, >>> available_external_interfaces=available_external_interfaces, + >>> evaluation_conclusion=evaluation_conclusion, + >>> interaction_events=interaction_events, + >>> previous_version_trd=previous_version_trd, + >>> legacy_user_requirements=str(legacy_user_requirements), >>> legacy_user_requirements_trd=legacy_user_requirements_trd, >>> legacy_user_requirements_interaction_events=str(legacy_user_requirements_interaction_events), - >>> incremental_user_requirements=r, - previous_version_trd=trd, - evaluation_conclusion=evaluation_conclusion, - incremental_user_requirements_interaction_events=interaction_events, - ) + >>> ) + >>> print(new_version_trd) + ## Technical Requirements Document\n ... """ - if incremental_user_requirements: + if legacy_user_requirements: return await self._write_incremental_trd( use_case_actors=use_case_actors, legacy_user_requirements=legacy_user_requirements, available_external_interfaces=available_external_interfaces, legacy_user_requirements_trd=legacy_user_requirements_trd, legacy_user_requirements_interaction_events=legacy_user_requirements_interaction_events, - incremental_user_requirements=incremental_user_requirements, + incremental_user_requirements=user_requirements, previous_version_trd=previous_version_trd, evaluation_conclusion=evaluation_conclusion, - incremental_user_requirements_interaction_events=incremental_user_requirements_interaction_events, + incremental_user_requirements_interaction_events=interaction_events, ) return await self._write_new_trd( use_case_actors=use_case_actors, From c619b29d12cdb57ad17becf594a9d2388352c398 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Fri, 14 Jun 2024 18:08:04 +0800 Subject: [PATCH 06/37] feat: +mgx --- examples/mgx_write_project_framework.py | 14 +++++++++++--- .../requirement_analysis/framework/__init__.py | 2 ++ metagpt/prompts/di/team_leader.py | 3 ++- metagpt/strategy/experience_retriever.py | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/examples/mgx_write_project_framework.py b/examples/mgx_write_project_framework.py index b5d982b72..dca684478 100644 --- a/examples/mgx_write_project_framework.py +++ b/examples/mgx_write_project_framework.py @@ -40,6 +40,16 @@ class EnvBuilder(BaseModel): env = Environment(context=self.context) team_leader = TeamLeader() architect = Architect() + architect.tools.extend( + [ + "CompressExternalInterfaces", + "DetectInteraction", + "EvaluateTRD", + "WriteTRD", + "WriteFramework", + "EvaluateFramework", + ] + ) # Prepare context use_case_actors = "".join([f"- {v}: {k}\n" for k, v in self.actors.items()]) @@ -98,12 +108,10 @@ async def develop( msg = """ 根据"User Requirements"中的用户需求,写TRD ## User Requirements -```json {user_requirements} -``` """ env.publish_message( - UserMessage(content=msg.format(user_requirements=f"{user_requirements}"), send_to=any_to_str(TeamLeader)) + UserMessage(content=msg.format(user_requirements="\n".join(user_requirements)), send_to=any_to_str(TeamLeader)) ) while not env.is_idle: diff --git a/metagpt/actions/requirement_analysis/framework/__init__.py b/metagpt/actions/requirement_analysis/framework/__init__.py index d863cf352..0f6022444 100644 --- a/metagpt/actions/requirement_analysis/framework/__init__.py +++ b/metagpt/actions/requirement_analysis/framework/__init__.py @@ -16,9 +16,11 @@ from pydantic import BaseModel from metagpt.actions.requirement_analysis.framework.evaluate_framework import EvaluateFramework from metagpt.actions.requirement_analysis.framework.write_framework import WriteFramework from metagpt.const import DEFAULT_WORKSPACE_ROOT +from metagpt.tools.tool_registry import register_tool from metagpt.utils.common import CodeParser, awrite +@register_tool(tags=["software framework"]) async def save_framework(dir_data: str, output_dir: Optional[Union[str, Path]] = None) -> List[str]: output_dir = Path(output_dir) if output_dir else DEFAULT_WORKSPACE_ROOT / uuid.uuid4().hex output_dir.mkdir(parents=True, exist_ok=True) diff --git a/metagpt/prompts/di/team_leader.py b/metagpt/prompts/di/team_leader.py index 2e4a17932..5f2f6b27d 100644 --- a/metagpt/prompts/di/team_leader.py +++ b/metagpt/prompts/di/team_leader.py @@ -18,7 +18,8 @@ Note: 1. If the requirement is a pure DATA-RELATED requirement, such as bug fixes, issue reporting, environment setup, terminal operations, pip install, web browsing, web scraping, web searching, web imitation, data science, data analysis, machine learning, deep learning, text-to-image etc. DON'T decompose it, assign a single task with the original user requirement as instruction directly to Data Analyst. 2. If the requirement is developing a software, game, app, or website, excluding the above data-related tasks, you should decompose the requirement into multiple tasks and assign them to different team members based on their expertise, usually the sequence of Product Manager -> Architect -> Project Manager -> Engineer -> (optional: QaEngine if present) -> (optional: DataAnalyst if user requests deployment), each assigned ONE task. When publishing message to Product Manager, you should directly copy the full original user requirement. 3. If the requirement contains both DATA-RELATED part mentioned in 1 and software development part mentioned in 2, you should decompose the software development part and assign them to different team members based on their expertise, and assign the DATA-RELATED part to Data Analyst David directly. -4. It it helpful for Engineer to have both the system design and the project schedule for writing the code, so include paths of both files (if available) when publishing message to Engineer. +4. It is helpful for Engineer to have both the system design and the project schedule for writing the code, so include paths of both files (if available) when publishing message to Engineer. +5. If the requirement is writing a TRD, you should assign it to Architect. When publishing message to Architect, you should directly copy the full original user requirement. """ FINISH_CURRENT_TASK_CMD = """ diff --git a/metagpt/strategy/experience_retriever.py b/metagpt/strategy/experience_retriever.py index c122affb5..97fb9a9b0 100644 --- a/metagpt/strategy/experience_retriever.py +++ b/metagpt/strategy/experience_retriever.py @@ -162,7 +162,7 @@ class SimpleExpRetriever(ExpRetriever): """ def retrieve(self, context: str = "") -> str: - return self.EXAMPLE + return "" # byRFC243 self.EXAMPLE class KeywordExpRetriever(ExpRetriever): From 7d92e3eb12191355511f31acc9e65bfad98aef6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Sat, 15 Jun 2024 22:33:11 +0800 Subject: [PATCH 07/37] feat: +software tools --- examples/mgx_write_project_framework.py | 3 +- metagpt/roles/architect.py | 25 ++- metagpt/strategy/experience_retriever.py | 58 +++++++ metagpt/tools/libs/software_development.py | 183 ++++++++++++++++++++- 4 files changed, 261 insertions(+), 8 deletions(-) diff --git a/examples/mgx_write_project_framework.py b/examples/mgx_write_project_framework.py index 359b90080..2537e9b00 100644 --- a/examples/mgx_write_project_framework.py +++ b/examples/mgx_write_project_framework.py @@ -24,6 +24,7 @@ from metagpt.logs import logger from metagpt.roles import Architect from metagpt.roles.di.team_leader import TeamLeader from metagpt.schema import AIMessage, UserMessage +from metagpt.strategy.experience_retriever import TRDToolExpRetriever from metagpt.utils.common import aread, to_markdown_code_block app = typer.Typer(add_completion=False) @@ -40,7 +41,7 @@ class EnvBuilder(BaseModel): def build(self) -> Environment: env = MGXEnv(context=self.context) team_leader = TeamLeader() - architect = Architect() + architect = Architect(experience_retriever=TRDToolExpRetriever()) # Prepare context use_case_actors = "".join([f"- {v}: {k}\n" for k, v in self.actors.items()]) diff --git a/metagpt/roles/architect.py b/metagpt/roles/architect.py index 90781abef..786368d8a 100644 --- a/metagpt/roles/architect.py +++ b/metagpt/roles/architect.py @@ -18,6 +18,11 @@ from metagpt.actions.requirement_analysis.trd import ( WriteTRD, ) from metagpt.roles.di.role_zero import RoleZero +from metagpt.tools.libs.software_development import ( + extract_external_interfaces, + write_framework, + write_trd, +) from metagpt.utils.common import tool2name @@ -42,16 +47,24 @@ class Architect(RoleZero): instruction: str = """Use WriteDesign tool to write a system design document if a system design is required; Use WriteTRD tool to write a TRD if a TRD is required;""" max_react_loop: int = 1 # FIXME: Read and edit files requires more steps, consider later + # tools: list[str] = [ + # "Editor:write,read,write_content", + # "RoleZero", + # "WriteDesign", + # "CompressExternalInterfaces", + # "DetectInteraction", + # "EvaluateTRD", + # "WriteTRD", + # "WriteFramework", + # "EvaluateFramework", + # ] tools: list[str] = [ "Editor:write,read,write_content", "RoleZero", "WriteDesign", - "CompressExternalInterfaces", - "DetectInteraction", - "EvaluateTRD", - "WriteTRD", - "WriteFramework", - "EvaluateFramework", + extract_external_interfaces.__name__, + write_trd.__name__, + write_framework.__name__, ] def __init__(self, **kwargs) -> None: diff --git a/metagpt/strategy/experience_retriever.py b/metagpt/strategy/experience_retriever.py index d04f0b5a1..956525cf9 100644 --- a/metagpt/strategy/experience_retriever.py +++ b/metagpt/strategy/experience_retriever.py @@ -13,6 +13,64 @@ class ExpRetriever(BaseModel): class DummyExpRetriever(ExpRetriever): """A dummy experience retriever that returns empty string.""" + def retrieve(self, context: str = "") -> str: + return self.EXAMPLE + + EXAMPLE: str = "" + + +class TRDToolExpRetriever(ExpRetriever): + """A TRD-related experience retriever that returns empty string.""" + + def retrieve(self, context: str = "") -> str: + return self.EXAMPLE + + EXAMPLE: str = """ + ## example 1 + User Requirement: Given some user requirements, write a TRD, and implement the TRD within a software framework. + Explanation: Given a complete user requirement, to write the TRD (Technical Requirements Document), follow these steps: 1. Call `extract_external_interfaces` to extract information about external interfaces from the acknowledgment; 2. Call `write_trd` to generate the TRD; 3. Call `write_framework` to generate the software framework code. + ```json + [ + { + "command_name": "extract_external_interfaces", + "args": { + "task_id": "1", + "dependent_task_ids": [], + "instruction": "Execute `extract_external_interfaces` to extract external interfaces information from acknowledgement.", + "acknowledge": "## Interfaces\n balabala..." + } + }, + { + "command_name": "write_trd", + "args": { + "task_id": "2", + "dependent_task_ids": ["1"], + "instruction": "Execute `write_trd` to write the TRD based on user requirements", + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + "external_interfaces": " returned by `extract_external_interfaces`", + } + }, + { + "command_name": "write_framework", + "args": { + "task_id": "3", + "dependent_task_ids": ["2"], + "instruction": "Execute `write_framework` to write the framework based on the TRD", + "use_case_actors": "These are actors involved in the use case, balabala...", + "trd": " returned by `write_trd`", + "acknowledge": "## Interfaces\n balabala...", + "additional_technical_requirements": "These are additional technical requirements, balabala..." + } + } + ] + ``` + """ + + +class TRDExpRetriever(ExpRetriever): + """A TRD-related experience retriever that returns empty string.""" + def retrieve(self, context: str = "") -> str: return self.EXAMPLE diff --git a/metagpt/tools/libs/software_development.py b/metagpt/tools/libs/software_development.py index a48e4a191..331e7cf12 100644 --- a/metagpt/tools/libs/software_development.py +++ b/metagpt/tools/libs/software_development.py @@ -3,9 +3,24 @@ from __future__ import annotations from pathlib import Path +from typing import Optional +from metagpt.actions.requirement_analysis.framework import ( + EvaluateFramework, + WriteFramework, + save_framework, +) +from metagpt.actions.requirement_analysis.trd import ( + CompressExternalInterfaces, + DetectInteraction, + EvaluateTRD, + WriteTRD, +) from metagpt.const import ASSISTANT_ALIAS -from metagpt.logs import ToolLogItem, log_tool_output +from metagpt.context import Context +from metagpt.logs import ToolLogItem, log_tool_output, logger +from metagpt.tools.tool_registry import register_tool +from metagpt.utils.cost_manager import CostManager async def import_git_repo(url: str) -> Path: @@ -42,3 +57,169 @@ async def import_git_repo(url: str) -> Path: log_tool_output(output=outputs, tool_name=import_git_repo.__name__) return ctx.repo.workdir + + +@register_tool(tags=["system design", "Extracts and compresses the information about external system interfaces"]) +async def extract_external_interfaces(acknowledge: str) -> str: + """ + Extracts and compresses information about external system interfaces from a given acknowledgement text. + + Args: + acknowledge (str): A natural text of acknowledgement containing details about external system interfaces. + + Returns: + str: A compressed version of the information about external system interfaces. + + Example: + >>> acknowledge = "## Interfaces\\n..." + >>> external_interfaces = await extract_external_interfaces(acknowledge=acknowledge) + >>> print(external_interfaces) + ```json\n[\n{\n"id": 1,\n"inputs": {... + """ + compress_acknowledge = CompressExternalInterfaces() + return await compress_acknowledge.run(acknowledge=acknowledge) + + +@register_tool(tags=["system design", "write trd", "Write a TRD"]) +async def write_trd( + use_case_actors: str, + user_requirements: str, + external_interfaces: str, + investment: float = 10, + context: Optional[Context] = None, +) -> (str, str): + """ + Handles the writing of a Technical Requirements Document (TRD) based on user requirements. + + Args: + user_requirements (str): The new/incremental user requirements. + use_case_actors (str): Description of the actors involved in the use case. + external_interfaces (str): List of available external interfaces. + investment (float): Budget. Automatically stops optimizing TRD when the budget is overdrawn. + context (Context, optional): The context configuration. Default is None. + Returns: + str: The newly created TRD. + + Example: + >>> # Given a new user requirements, write out a new TRD. + >>> user_requirements = "Write a 'snake game' TRD." + >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" + >>> external_interfaces = "The available external interfaces returned by `CompressExternalInterfaces.run` are ..." + >>> investment = 10.0 + >>> trd = await write_trd( + >>> user_requirements=user_requirements, + >>> use_case_actors=use_case_actors, + >>> external_interfaces=external_interfaces, + >>> investment=investment, + >>> ) + >>> print(trd) + ## Technical Requirements Document\n ... + """ + context = context or Context(cost_manager=CostManager(max_budget=investment)) + detect_interaction = DetectInteraction(context=context) + w_trd = WriteTRD(context=context) + evaluate_trd = EvaluateTRD(context=context) + is_pass = False + evaluation_conclusion = "" + interaction_events = "" + trd = "" + while not is_pass and (context.cost_manager.total_cost < context.cost_manager.max_budget): + interaction_events = await detect_interaction.run( + user_requirements=user_requirements, + use_case_actors=use_case_actors, + legacy_interaction_events=interaction_events, + evaluation_conclusion=evaluation_conclusion, + ) + trd = await w_trd.run( + user_requirements=user_requirements, + use_case_actors=use_case_actors, + available_external_interfaces=external_interfaces, + evaluation_conclusion=evaluation_conclusion, + interaction_events=interaction_events, + previous_version_trd=trd, + ) + evaluation = await evaluate_trd.run( + user_requirements=user_requirements, + use_case_actors=use_case_actors, + trd=trd, + interaction_events=interaction_events, + ) + is_pass = evaluation.is_pass + evaluation_conclusion = evaluation.conclusion + + return trd + + +@register_tool(tags=["system design", "write software framework", "Write a software framework based on a TRD"]) +async def write_framework( + use_case_actors: str, + trd: str, + acknowledge: str, + additional_technical_requirements: str, + output_dir: Optional[str] = "", + investment: float = 10, + context: Optional[Context] = None, +) -> str: + """ + Run the action to generate a software framework based on the provided TRD and related information. + + Args: + use_case_actors (str): Description of the use case actors involved. + trd (str): Technical Requirements Document detailing the requirements. + acknowledge (str): External acknowledgements or acknowledgements required. + additional_technical_requirements (str): Any additional technical requirements. + output_dir (str, optional): Path to save the software framework files. Default is en empty string. + investment (float): Budget. Automatically stops optimizing TRD when the budget is overdrawn. + context (Context, optional): The context configuration. Default is None. + + Returns: + str: The generated software framework as a string of pathnames. + + Example: + >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" + >>> trd = "## TRD\\n..." + >>> acknowledge = "## Interfaces\\n..." + >>> additional_technical_requirements = "Using Java language, ..." + >>> investment = 10.0 + >>> framework = await write_framework( + >>> use_case_actors=use_case_actors, + >>> trd=trd, + >>> acknowledge=acknowledge, + >>> additional_technical_requirements=constraint, + >>> investment=investment, + >>> ) + >>> print(framework) + [{"path":"balabala", "filename":"...", ... + """ + context = context or Context(cost_manager=CostManager(max_budget=investment)) + write_framework = WriteFramework(context=context) + evaluate_framework = EvaluateFramework(context=context) + is_pass = False + framework = "" + evaluation_conclusion = "" + while not is_pass and (context.cost_manager.total_cost < context.cost_manager.max_budget): + try: + framework = await write_framework.run( + use_case_actors=use_case_actors, + trd=trd, + acknowledge=acknowledge, + legacy_output=framework, + evaluation_conclusion=evaluation_conclusion, + additional_technical_requirements=additional_technical_requirements, + ) + except Exception as e: + logger.info(f"{e}") + break + evaluation = await evaluate_framework.run( + use_case_actors=use_case_actors, + trd=trd, + acknowledge=acknowledge, + legacy_output=framework, + additional_technical_requirements=additional_technical_requirements, + ) + is_pass = evaluation.is_pass + evaluation_conclusion = evaluation.conclusion + + file_list = await save_framework(dir_data=framework, output_dir=output_dir) + logger.info(f"Output:\n{file_list}") + return "\n".join(file_list) From 5911d3ce70a61a173a88d95b9bd3d303b5206095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Sun, 16 Jun 2024 14:32:16 +0800 Subject: [PATCH 08/37] feat: +software tools --- metagpt/roles/architect.py | 7 +------ metagpt/strategy/experience_retriever.py | 19 +++++-------------- metagpt/tools/libs/software_development.py | 9 +++++---- 3 files changed, 11 insertions(+), 24 deletions(-) diff --git a/metagpt/roles/architect.py b/metagpt/roles/architect.py index 786368d8a..cdedb8f73 100644 --- a/metagpt/roles/architect.py +++ b/metagpt/roles/architect.py @@ -18,11 +18,7 @@ from metagpt.actions.requirement_analysis.trd import ( WriteTRD, ) from metagpt.roles.di.role_zero import RoleZero -from metagpt.tools.libs.software_development import ( - extract_external_interfaces, - write_framework, - write_trd, -) +from metagpt.tools.libs.software_development import write_framework, write_trd from metagpt.utils.common import tool2name @@ -62,7 +58,6 @@ class Architect(RoleZero): "Editor:write,read,write_content", "RoleZero", "WriteDesign", - extract_external_interfaces.__name__, write_trd.__name__, write_framework.__name__, ] diff --git a/metagpt/strategy/experience_retriever.py b/metagpt/strategy/experience_retriever.py index 956525cf9..32fde7be6 100644 --- a/metagpt/strategy/experience_retriever.py +++ b/metagpt/strategy/experience_retriever.py @@ -28,34 +28,25 @@ class TRDToolExpRetriever(ExpRetriever): EXAMPLE: str = """ ## example 1 User Requirement: Given some user requirements, write a TRD, and implement the TRD within a software framework. - Explanation: Given a complete user requirement, to write the TRD (Technical Requirements Document), follow these steps: 1. Call `extract_external_interfaces` to extract information about external interfaces from the acknowledgment; 2. Call `write_trd` to generate the TRD; 3. Call `write_framework` to generate the software framework code. + Explanation: Given a complete user requirement, to write the TRD (Technical Requirements Document), follow these steps: 1. Call `write_trd` to generate the TRD; 2. Call `write_framework` to generate the software framework code based on the TRD. ```json [ { - "command_name": "extract_external_interfaces", + "command_name": "write_trd", "args": { "task_id": "1", "dependent_task_ids": [], - "instruction": "Execute `extract_external_interfaces` to extract external interfaces information from acknowledgement.", - "acknowledge": "## Interfaces\n balabala..." - } - }, - { - "command_name": "write_trd", - "args": { - "task_id": "2", - "dependent_task_ids": ["1"], "instruction": "Execute `write_trd` to write the TRD based on user requirements", "user_requirements": "This is user requirement balabala...", "use_case_actors": "These are actors involved in the use case, balabala...", - "external_interfaces": " returned by `extract_external_interfaces`", + "acknowledge": "## Interfaces\n balabala...", } }, { "command_name": "write_framework", "args": { - "task_id": "3", - "dependent_task_ids": ["2"], + "task_id": "2", + "dependent_task_ids": ["1"], "instruction": "Execute `write_framework` to write the framework based on the TRD", "use_case_actors": "These are actors involved in the use case, balabala...", "trd": " returned by `write_trd`", diff --git a/metagpt/tools/libs/software_development.py b/metagpt/tools/libs/software_development.py index 331e7cf12..109400dcb 100644 --- a/metagpt/tools/libs/software_development.py +++ b/metagpt/tools/libs/software_development.py @@ -59,7 +59,6 @@ async def import_git_repo(url: str) -> Path: return ctx.repo.workdir -@register_tool(tags=["system design", "Extracts and compresses the information about external system interfaces"]) async def extract_external_interfaces(acknowledge: str) -> str: """ Extracts and compresses information about external system interfaces from a given acknowledgement text. @@ -84,7 +83,7 @@ async def extract_external_interfaces(acknowledge: str) -> str: async def write_trd( use_case_actors: str, user_requirements: str, - external_interfaces: str, + acknowledge: str, investment: float = 10, context: Optional[Context] = None, ) -> (str, str): @@ -94,7 +93,7 @@ async def write_trd( Args: user_requirements (str): The new/incremental user requirements. use_case_actors (str): Description of the actors involved in the use case. - external_interfaces (str): List of available external interfaces. + acknowledge (str): A natural text of acknowledgement containing details about external system interfaces. investment (float): Budget. Automatically stops optimizing TRD when the budget is overdrawn. context (Context, optional): The context configuration. Default is None. Returns: @@ -104,7 +103,7 @@ async def write_trd( >>> # Given a new user requirements, write out a new TRD. >>> user_requirements = "Write a 'snake game' TRD." >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" - >>> external_interfaces = "The available external interfaces returned by `CompressExternalInterfaces.run` are ..." + >>> acknowledge = "## Interfaces\\n..." >>> investment = 10.0 >>> trd = await write_trd( >>> user_requirements=user_requirements, @@ -116,6 +115,8 @@ async def write_trd( ## Technical Requirements Document\n ... """ context = context or Context(cost_manager=CostManager(max_budget=investment)) + compress_acknowledge = CompressExternalInterfaces() + external_interfaces = await compress_acknowledge.run(acknowledge=acknowledge) detect_interaction = DetectInteraction(context=context) w_trd = WriteTRD(context=context) evaluate_trd = EvaluateTRD(context=context) From cf8efc9f67940e44e6248bed398cb696c9de36d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Mon, 17 Jun 2024 15:25:40 +0800 Subject: [PATCH 09/37] fixbug: write software framework, rfc243 --- examples/mgx_write_project_framework.py | 21 +- .../requirement_analysis/evaluate_action.py | 2 +- .../framework/__init__.py | 7 +- .../framework/evaluate_framework.py | 3 +- .../framework/write_framework.py | 6 +- metagpt/roles/architect.py | 39 +--- metagpt/strategy/experience_retriever.py | 6 +- metagpt/tools/libs/software_development.py | 201 ++++++++++++++++-- 8 files changed, 211 insertions(+), 74 deletions(-) diff --git a/examples/mgx_write_project_framework.py b/examples/mgx_write_project_framework.py index 2537e9b00..f82666e04 100644 --- a/examples/mgx_write_project_framework.py +++ b/examples/mgx_write_project_framework.py @@ -25,7 +25,7 @@ from metagpt.roles import Architect from metagpt.roles.di.team_leader import TeamLeader from metagpt.schema import AIMessage, UserMessage from metagpt.strategy.experience_retriever import TRDToolExpRetriever -from metagpt.utils.common import aread, to_markdown_code_block +from metagpt.utils.common import aread app = typer.Typer(add_completion=False) @@ -34,7 +34,6 @@ class EnvBuilder(BaseModel): context: Context user_requirements: List[str] actors: Dict[str, str] - acknowledge: str technical_constraint: str output_dir: Path @@ -52,14 +51,6 @@ The content of "Actor, System, External System" provides an explanation of actor """ architect.rc.memory.add(AIMessage(content=msg.format(use_case_actors=use_case_actors))) - # Prepare acknowledge - msg = """ -The descriptions of the interfaces used in TRD can be found in the "Acknowledge" section. -## Acknowledge -{acknowledge} - """ - architect.rc.memory.add(AIMessage(content=msg.format(acknowledge=to_markdown_code_block(val=self.acknowledge)))) - # Prepare technical requirements msg = """ "Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet. @@ -76,7 +67,6 @@ async def develop( context: Context, user_requirement_filename: str, actors_filename: str, - acknowledge_filename: str, constraint_filename: str, output_dir: str, ): @@ -86,19 +76,17 @@ async def develop( user_requirements = json.loads(v) v = await aread(filename=actors_filename) actors = json.loads(v) - acknowledge = await aread(filename=acknowledge_filename) technical_constraint = await aread(filename=constraint_filename) env_builder = EnvBuilder( context=context, user_requirements=user_requirements, actors=actors, - acknowledge=acknowledge, technical_constraint=technical_constraint, output_dir=output_dir, ) env = env_builder.build() msg = """ -根据"User Requirements"中的用户需求,写TRD +Given the user requirement of "User Requirements", write out the software framework. ## User Requirements {user_requirements} """ @@ -115,7 +103,6 @@ async def develop( def startup( user_requirement_filename: str = typer.Argument(..., help="The filename of the user requirements."), actors_filename: str = typer.Argument(..., help="The filename of UML use case actors description."), - acknowledge_filename: str = typer.Argument(..., help="External interfaces declarations."), llm_config: str = typer.Option(default="", help="Low-cost LLM config"), constraint_filename: str = typer.Option(default="", help="What technical dependency constraints are."), output_dir: str = typer.Option(default="", help="Output directory."), @@ -127,9 +114,7 @@ def startup( config = Config.default() ctx = Context(config=config) - asyncio.run( - develop(ctx, user_requirement_filename, actors_filename, acknowledge_filename, constraint_filename, output_dir) - ) + asyncio.run(develop(ctx, user_requirement_filename, actors_filename, constraint_filename, output_dir)) if __name__ == "__main__": diff --git a/metagpt/actions/requirement_analysis/evaluate_action.py b/metagpt/actions/requirement_analysis/evaluate_action.py index a94c9cffb..376c73f2c 100644 --- a/metagpt/actions/requirement_analysis/evaluate_action.py +++ b/metagpt/actions/requirement_analysis/evaluate_action.py @@ -70,5 +70,5 @@ class EvaluateAction(Action): val = evaluations.get(vote, []) val.append(evaluation) if len(val) > 1: - return EvaluationData(is_pass=vote, evaluations="\n".join(val)) + return EvaluationData(is_pass=vote, conclusion="\n".join(val)) evaluations[vote] = val diff --git a/metagpt/actions/requirement_analysis/framework/__init__.py b/metagpt/actions/requirement_analysis/framework/__init__.py index c59884746..96cf5f987 100644 --- a/metagpt/actions/requirement_analysis/framework/__init__.py +++ b/metagpt/actions/requirement_analysis/framework/__init__.py @@ -8,6 +8,7 @@ """ import json import uuid +from datetime import datetime from pathlib import Path from typing import Optional, Union, List @@ -22,7 +23,11 @@ from metagpt.utils.common import awrite @register_tool(tags=["software framework"]) async def save_framework(dir_data: str, output_dir: Optional[Union[str, Path]] = None) -> List[str]: - output_dir = Path(output_dir) if output_dir else DEFAULT_WORKSPACE_ROOT / uuid.uuid4().hex + output_dir = ( + Path(output_dir) + if output_dir + else DEFAULT_WORKSPACE_ROOT / (datetime.now().strftime("%Y%m%d%H%M%S") + uuid.uuid4().hex[0:8]) + ) output_dir.mkdir(parents=True, exist_ok=True) json_data = dir_data.removeprefix("```json").removesuffix("```") diff --git a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py index 851b3af9f..8aa120712 100644 --- a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py +++ b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py @@ -91,7 +91,8 @@ PROMPT = """ You are a tool that evaluates the quality of framework code based on the TRD content; You need to refer to the content of the "Legacy TRD" section to check for any errors or omissions in the framework code found in "Legacy Outputs"; The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram; -Information missing from the "Legacy TRD" can be found in the "Acknowledge" section; +Information about the external system missing from the "Legacy TRD" can be found in the "Acknowledge" section; +Which interfaces defined in "Acknowledge" are used in the "Legacy TRD"? Do not implement the interface in "Acknowledge" section until it is used in "Legacy TRD"; Parts not mentioned in the "Legacy TRD" will be handled by other TRDs, therefore, processes not present in the "Legacy TRD" are considered ready; "Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet; Return a markdown JSON object with: diff --git a/metagpt/actions/requirement_analysis/framework/write_framework.py b/metagpt/actions/requirement_analysis/framework/write_framework.py index b2e3f2d67..c13fcdcaa 100644 --- a/metagpt/actions/requirement_analysis/framework/write_framework.py +++ b/metagpt/actions/requirement_analysis/framework/write_framework.py @@ -116,18 +116,20 @@ PROMPT = """ --- You are a tool that generates software framework code based on TRD. The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram; -The descriptions of the interfaces used in the "TRD" can be found in the "Acknowledge" section; +The descriptions of the interfaces of the external system used in the "TRD" can be found in the "Acknowledge" section; Do not implement the interface of the external system in "Acknowledge" section until it is used in "TRD"; "Legacy Outputs" contains the software framework code generated by you last time, which you can improve by addressing the issues raised in "Evaluation Conclusion"; "Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet; Develop source code based on the content of the "TRD"; - The `README.md` file should include: - The folder structure diagram of the entire project; - - Class diagram and sequence diagram in PlantUML format; - Correspondence between classes, interfaces, and functions with the content in the "TRD" section; - Prerequisites if necessary; - Installation if necessary; - Configuration if necessary; - Usage if necessary; +- The `CLASS.md` file should include the class diagram in PlantUML format; +- The `SEQUENCE.md` file should include the sequence diagram in PlantUML format; +- Code comments using Google style; Return a markdown JSON object list, each object containing: - a "path" key with a value specifying its path; diff --git a/metagpt/roles/architect.py b/metagpt/roles/architect.py index cdedb8f73..404291e1e 100644 --- a/metagpt/roles/architect.py +++ b/metagpt/roles/architect.py @@ -7,16 +7,6 @@ """ from metagpt.actions import WritePRD from metagpt.actions.design_api import WriteDesign -from metagpt.actions.requirement_analysis.framework import ( - EvaluateFramework, - WriteFramework, -) -from metagpt.actions.requirement_analysis.trd import ( - CompressExternalInterfaces, - DetectInteraction, - EvaluateTRD, - WriteTRD, -) from metagpt.roles.di.role_zero import RoleZero from metagpt.tools.libs.software_development import write_framework, write_trd from metagpt.utils.common import tool2name @@ -43,17 +33,6 @@ class Architect(RoleZero): instruction: str = """Use WriteDesign tool to write a system design document if a system design is required; Use WriteTRD tool to write a TRD if a TRD is required;""" max_react_loop: int = 1 # FIXME: Read and edit files requires more steps, consider later - # tools: list[str] = [ - # "Editor:write,read,write_content", - # "RoleZero", - # "WriteDesign", - # "CompressExternalInterfaces", - # "DetectInteraction", - # "EvaluateTRD", - # "WriteTRD", - # "WriteFramework", - # "EvaluateFramework", - # ] tools: list[str] = [ "Editor:write,read,write_content", "RoleZero", @@ -76,15 +55,9 @@ class Architect(RoleZero): def _update_tool_execution(self): write_design = WriteDesign() self.tool_execution_map.update(tool2name(WriteDesign, ["run"], write_design.run)) - compress_external_interfaces = CompressExternalInterfaces() - self.tool_execution_map.update(tool2name(CompressExternalInterfaces, ["run"], compress_external_interfaces.run)) - detect_interaction = DetectInteraction() - self.tool_execution_map.update(tool2name(DetectInteraction, ["run"], detect_interaction.run)) - evaluate_trd = EvaluateTRD() - self.tool_execution_map.update(tool2name(EvaluateTRD, ["run"], evaluate_trd.run)) - write_trd = WriteTRD() - self.tool_execution_map.update(tool2name(WriteTRD, ["run"], write_trd.run)) - write_framework = WriteFramework() - self.tool_execution_map.update(tool2name(WriteFramework, ["run"], write_framework.run)) - evaluate_framework = EvaluateFramework() - self.tool_execution_map.update(tool2name(EvaluateFramework, ["run"], evaluate_framework.run)) + self.tool_execution_map.update( + { + write_trd.__name__: write_trd, + write_framework.__name__: write_framework, + } + ) diff --git a/metagpt/strategy/experience_retriever.py b/metagpt/strategy/experience_retriever.py index 32fde7be6..75139fdc7 100644 --- a/metagpt/strategy/experience_retriever.py +++ b/metagpt/strategy/experience_retriever.py @@ -27,8 +27,8 @@ class TRDToolExpRetriever(ExpRetriever): EXAMPLE: str = """ ## example 1 - User Requirement: Given some user requirements, write a TRD, and implement the TRD within a software framework. - Explanation: Given a complete user requirement, to write the TRD (Technical Requirements Document), follow these steps: 1. Call `write_trd` to generate the TRD; 2. Call `write_framework` to generate the software framework code based on the TRD. + User Requirement: Given some user requirements, write a software framework. + Explanation: Given a complete user requirement, to write a software framework, you must follow all of the following steps to complete the TRD output required by the user: 1. Call 'write_trd' to generate TRD; 2. Call 'write_framework' to implement TRD into the software framework. ```json [ { @@ -39,7 +39,6 @@ class TRDToolExpRetriever(ExpRetriever): "instruction": "Execute `write_trd` to write the TRD based on user requirements", "user_requirements": "This is user requirement balabala...", "use_case_actors": "These are actors involved in the use case, balabala...", - "acknowledge": "## Interfaces\n balabala...", } }, { @@ -50,7 +49,6 @@ class TRDToolExpRetriever(ExpRetriever): "instruction": "Execute `write_framework` to write the framework based on the TRD", "use_case_actors": "These are actors involved in the use case, balabala...", "trd": " returned by `write_trd`", - "acknowledge": "## Interfaces\n balabala...", "additional_technical_requirements": "These are additional technical requirements, balabala..." } } diff --git a/metagpt/tools/libs/software_development.py b/metagpt/tools/libs/software_development.py index 109400dcb..16ab74621 100644 --- a/metagpt/tools/libs/software_development.py +++ b/metagpt/tools/libs/software_development.py @@ -79,11 +79,189 @@ async def extract_external_interfaces(acknowledge: str) -> str: return await compress_acknowledge.run(acknowledge=acknowledge) +async def mock_asearch_acknowledgement(use_case_actors: str): + return """ +## Interfaces +- 用户登录 + - Description: 用户从小程序/微应用发起请求,需要验证用户的合法身份才能正常处理。 + - ID: 1 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |authCode|用户临时免登授权码|String(64)|√|| + |loginTypeEnum|登录类型|String(20)|√|| + |authCorpId|用户所在企业/组织id|String(64)||微应用免登时传递| + |app|应用标识|String(3)|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功与否,成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|用户的sessionId|string|√|| +- 根据sessionId查询用户详细信息 + - Description: 查询当前用户的详细信息,如 staffId,unionId,name,avatar等信息 + - ID: 2 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |NDA_SESSION|用户sessionId|String(64)|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功与否,成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|用户的详细信息|object|√|| + |-> corpId|当前用户企业 钉钉ID(小程序端会拿不到该信息)|string|√|| + |-> corpName|当前用户企业名称(小程序端会拿不到该信息)|string|√|| + |-> staffId|员工在当前企业内的唯一标识,也称staffId(小程序端会拿不到该信息)|string|√|| + |-> unionId|员工在当前开发者企业账号范围内的唯一标识,系统生成,固定值,不会改变。|string|√|| + |-> name|当前用户的名称(小程序端会拿不到该信息)|string|√|| + |-> avatar|头像图片URL|string|√|| +- 查询国家情况描述 + - Description: 根据国家code查询国家情况描述 + - ID: 3 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |countryCode|国家code|string|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|国家情况描述|object|√|| + |-> id|id|integer|√|| + |-> countryName|国家名称|string|√|| + |-> countryCode|国家code|string|√|| + |-> detail|产品法规分析|string|√|| +- 查询产品法规分析(法律意见详情) + - Description: 根据国家和业务线查询产品法规分析 + - ID: 4 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |countryCode|国家code|string|√|| + |businessCode|业务线code|string|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|法律意见详情|object|√|| + |-> id|id|integer|√|| + |-> countryName|国家名称|string|√|| + |-> countryCode|国家code|string|√|| + |-> businessLine|业务线|string|√|| + |-> businessCode|业务线code|string|√|| + |-> detail|产品法规分析|string|√|| + |-> signEntity|签约主体|string|√|| +- 查询法律意见总数 + - Description: 法律意见总数查询 + - ID: 5 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|总数|integer|√|| +- 查询所有国家和业务线信息列表 + - Description: 查询所有国家和业务线信息列表 + - ID: 6 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|所有数据列表|list of object|√|| + |-> country|国家code|string|√|| + |-> business|业务线code|string|√|| + |-> dataType|数据类型|string|√|| + |-> businessName|业务线名|string|√|| + |-> countryName|国家名|string|√|| + |-> businessNameEn|业务线名(英文)|string|√|| +- 调用法务中台antlaw接口 + - ID: 7 +- 国家/区域导游详情 & 法律意见详情 查询 + - Description:根据国家code查询国家/区域导游信息详情 + - ID: 8 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |countryCode|国家code|string|√|| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|国家/区域导游详情|object|√|| + |-> country||||| + |-> -> id|id|integer|√|| + |-> -> country|国家code|string|√|| + |-> -> countryName|国家中文名称|string|√|| + |-> -> countryNameEn|国家英文名称|string|√|| + |-> -> content|国家导游中文详情json数组,具体格式见下示例|list of object|√|| + |-> -> -> title|标题|object|√|| + |-> -> -> -> title|中文标题|string||| + |-> -> -> -> titleEn|英文标题|string||| + |-> -> -> contentList|标题下面的文字描述列表|list of object|√|| + |-> -> -> -> detail|内容中文详情|string|√|| + |-> -> -> -> detailEn|内容英文详情|string|√|| + |-> -> -> -> url|超链接|string||| + |-> legal|法务信息|object||| + |-> -> country|国家code|string|√|| + |-> -> businessList|业务线列表|list of object||| + |-> -> -> id|id|integer||新增时不传,修改时传递| + |-> -> -> business|业务线code|string|√|| + |-> -> -> businessName|业务线中文名称|string|√|| + |-> -> -> businessNameEn|业务线英文名称|string|√|| + |-> -> -> content|业务线json,具体如下|object|√|| + |-> -> -> -> detailEn|具体的详情英文内容|string|√|| + |-> -> -> -> detail|具体的详情内容|string|√|| +- 国家/区域导游列表分页查询 + - Description: 分页查询国家/区域列表 + - ID: 9 + - Input Parameters: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |pageSize|分页大小|integer|√|>=1| + |pageNum|分页大小|integer|√|>=1| + |country|国家code|string||| + |business|业务线code|string||| + - Returns: + |名称|描述|类型(长度)|必选|备注| + | :- | :- | :-: | :- | :- | + |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| + |message|错误信息,可以用来提示|string|√|| + |code|返回状态码|string|√|| + |data|国家/区域导游详情|list of object|√|| + |-> id|id|integer|√|| + |-> country|国家code|string|√|| + |-> countryName|国家中文名称|string|√|| + |-> countryNameEn|国家英文名称|string|√|| + |-> gmtCreate|创建时间|string|√|| + |-> gmtModified|更新时间|string|√|| + |total|数据总量|integer|√|| + + """ + + @register_tool(tags=["system design", "write trd", "Write a TRD"]) async def write_trd( use_case_actors: str, user_requirements: str, - acknowledge: str, investment: float = 10, context: Optional[Context] = None, ) -> (str, str): @@ -93,7 +271,6 @@ async def write_trd( Args: user_requirements (str): The new/incremental user requirements. use_case_actors (str): Description of the actors involved in the use case. - acknowledge (str): A natural text of acknowledgement containing details about external system interfaces. investment (float): Budget. Automatically stops optimizing TRD when the budget is overdrawn. context (Context, optional): The context configuration. Default is None. Returns: @@ -103,12 +280,10 @@ async def write_trd( >>> # Given a new user requirements, write out a new TRD. >>> user_requirements = "Write a 'snake game' TRD." >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" - >>> acknowledge = "## Interfaces\\n..." >>> investment = 10.0 >>> trd = await write_trd( >>> user_requirements=user_requirements, >>> use_case_actors=use_case_actors, - >>> external_interfaces=external_interfaces, >>> investment=investment, >>> ) >>> print(trd) @@ -116,7 +291,8 @@ async def write_trd( """ context = context or Context(cost_manager=CostManager(max_budget=investment)) compress_acknowledge = CompressExternalInterfaces() - external_interfaces = await compress_acknowledge.run(acknowledge=acknowledge) + acknowledgement = await mock_asearch_acknowledgement(use_case_actors) # Replaced by acknowledgement_repo later. + external_interfaces = await compress_acknowledge.run(acknowledge=acknowledgement) detect_interaction = DetectInteraction(context=context) w_trd = WriteTRD(context=context) evaluate_trd = EvaluateTRD(context=context) @@ -155,10 +331,9 @@ async def write_trd( async def write_framework( use_case_actors: str, trd: str, - acknowledge: str, additional_technical_requirements: str, output_dir: Optional[str] = "", - investment: float = 10, + investment: float = 15.0, context: Optional[Context] = None, ) -> str: """ @@ -167,7 +342,6 @@ async def write_framework( Args: use_case_actors (str): Description of the use case actors involved. trd (str): Technical Requirements Document detailing the requirements. - acknowledge (str): External acknowledgements or acknowledgements required. additional_technical_requirements (str): Any additional technical requirements. output_dir (str, optional): Path to save the software framework files. Default is en empty string. investment (float): Budget. Automatically stops optimizing TRD when the budget is overdrawn. @@ -179,13 +353,11 @@ async def write_framework( Example: >>> use_case_actors = "- Actor: game player;\\n- System: snake game; \\n- External System: game center;" >>> trd = "## TRD\\n..." - >>> acknowledge = "## Interfaces\\n..." >>> additional_technical_requirements = "Using Java language, ..." - >>> investment = 10.0 + >>> investment = 15.0 >>> framework = await write_framework( >>> use_case_actors=use_case_actors, >>> trd=trd, - >>> acknowledge=acknowledge, >>> additional_technical_requirements=constraint, >>> investment=investment, >>> ) @@ -198,12 +370,13 @@ async def write_framework( is_pass = False framework = "" evaluation_conclusion = "" + acknowledgement = await mock_asearch_acknowledgement(use_case_actors) # Replaced by acknowledgement_repo later. while not is_pass and (context.cost_manager.total_cost < context.cost_manager.max_budget): try: framework = await write_framework.run( use_case_actors=use_case_actors, trd=trd, - acknowledge=acknowledge, + acknowledge=acknowledgement, legacy_output=framework, evaluation_conclusion=evaluation_conclusion, additional_technical_requirements=additional_technical_requirements, @@ -214,7 +387,7 @@ async def write_framework( evaluation = await evaluate_framework.run( use_case_actors=use_case_actors, trd=trd, - acknowledge=acknowledge, + acknowledge=acknowledgement, legacy_output=framework, additional_technical_requirements=additional_technical_requirements, ) @@ -223,4 +396,4 @@ async def write_framework( file_list = await save_framework(dir_data=framework, output_dir=output_dir) logger.info(f"Output:\n{file_list}") - return "\n".join(file_list) + return "## Software Framework" + "".join([f"\n- {i}" for i in file_list]) From b71af7b46a479fff8fc4ed5f9a68490915ea045c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Mon, 17 Jun 2024 16:04:43 +0800 Subject: [PATCH 10/37] fixbug: no comments --- .../actions/requirement_analysis/framework/write_framework.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metagpt/actions/requirement_analysis/framework/write_framework.py b/metagpt/actions/requirement_analysis/framework/write_framework.py index c13fcdcaa..ec9ac9b62 100644 --- a/metagpt/actions/requirement_analysis/framework/write_framework.py +++ b/metagpt/actions/requirement_analysis/framework/write_framework.py @@ -129,7 +129,7 @@ Develop source code based on the content of the "TRD"; - Usage if necessary; - The `CLASS.md` file should include the class diagram in PlantUML format; - The `SEQUENCE.md` file should include the sequence diagram in PlantUML format; -- Code comments using Google style; +- Do not add comments to source code; Return a markdown JSON object list, each object containing: - a "path" key with a value specifying its path; From 4dfe6ef26f8c0ae642542b85bc18af65e8211ab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 18 Jun 2024 10:33:15 +0800 Subject: [PATCH 11/37] feat: rfc243 --- examples/mgx_write_project_framework.py | 5 +- .../framework/write_framework.py | 9 ++- metagpt/roles/architect.py | 10 +-- metagpt/strategy/experience_retriever.py | 73 ++++++++++++------- metagpt/tools/libs/software_development.py | 22 +++++- 5 files changed, 77 insertions(+), 42 deletions(-) diff --git a/examples/mgx_write_project_framework.py b/examples/mgx_write_project_framework.py index f82666e04..109ce877d 100644 --- a/examples/mgx_write_project_framework.py +++ b/examples/mgx_write_project_framework.py @@ -90,10 +90,7 @@ Given the user requirement of "User Requirements", write out the software framew ## User Requirements {user_requirements} """ - env.publish_message( - UserMessage(content=msg.format(user_requirements="\n".join(user_requirements)), send_to="Bob"), - user_defined_recipient="Bob", - ) + env.publish_message(UserMessage(content=msg.format(user_requirements="\n".join(user_requirements)))) while not env.is_idle: await env.run() diff --git a/metagpt/actions/requirement_analysis/framework/write_framework.py b/metagpt/actions/requirement_analysis/framework/write_framework.py index ec9ac9b62..8bb66e948 100644 --- a/metagpt/actions/requirement_analysis/framework/write_framework.py +++ b/metagpt/actions/requirement_analysis/framework/write_framework.py @@ -119,7 +119,7 @@ The content of "Actor, System, External System" provides an explanation of actor The descriptions of the interfaces of the external system used in the "TRD" can be found in the "Acknowledge" section; Do not implement the interface of the external system in "Acknowledge" section until it is used in "TRD"; "Legacy Outputs" contains the software framework code generated by you last time, which you can improve by addressing the issues raised in "Evaluation Conclusion"; "Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet; -Develop source code based on the content of the "TRD"; +Develop the software framework based on the "TRD", the output files should include: - The `README.md` file should include: - The folder structure diagram of the entire project; - Correspondence between classes, interfaces, and functions with the content in the "TRD" section; @@ -127,9 +127,10 @@ Develop source code based on the content of the "TRD"; - Installation if necessary; - Configuration if necessary; - Usage if necessary; -- The `CLASS.md` file should include the class diagram in PlantUML format; -- The `SEQUENCE.md` file should include the sequence diagram in PlantUML format; -- Do not add comments to source code; +- The `CLASS.md` file should include the class diagram in PlantUML format based on the "TRD"; +- The `SEQUENCE.md` file should include the sequence diagram in PlantUML format based on the "TRD"; +- The source code files that implement the "TRD" and "Additional Technical Requirements"; do not add comments to source code files; +- The configuration files that required by the source code files, "TRD" and "Additional Technical Requirements"; Return a markdown JSON object list, each object containing: - a "path" key with a value specifying its path; diff --git a/metagpt/roles/architect.py b/metagpt/roles/architect.py index 404291e1e..553a4ed7a 100644 --- a/metagpt/roles/architect.py +++ b/metagpt/roles/architect.py @@ -8,7 +8,7 @@ from metagpt.actions import WritePRD from metagpt.actions.design_api import WriteDesign from metagpt.roles.di.role_zero import RoleZero -from metagpt.tools.libs.software_development import write_framework, write_trd +from metagpt.tools.libs.software_development import write_trd_and_framework from metagpt.utils.common import tool2name @@ -31,14 +31,13 @@ class Architect(RoleZero): "libraries. Use same language as user requirement" ) - instruction: str = """Use WriteDesign tool to write a system design document if a system design is required; Use WriteTRD tool to write a TRD if a TRD is required;""" + instruction: str = """Use WriteDesign tool to write a system design document if a system design is required; Use `write_trd_and_framework` tool to write a software framework if a software framework is required;""" max_react_loop: int = 1 # FIXME: Read and edit files requires more steps, consider later tools: list[str] = [ "Editor:write,read,write_content", "RoleZero", "WriteDesign", - write_trd.__name__, - write_framework.__name__, + write_trd_and_framework.__name__, ] def __init__(self, **kwargs) -> None: @@ -57,7 +56,6 @@ class Architect(RoleZero): self.tool_execution_map.update(tool2name(WriteDesign, ["run"], write_design.run)) self.tool_execution_map.update( { - write_trd.__name__: write_trd, - write_framework.__name__: write_framework, + write_trd_and_framework.__name__: write_trd_and_framework, } ) diff --git a/metagpt/strategy/experience_retriever.py b/metagpt/strategy/experience_retriever.py index 75139fdc7..6caf83810 100644 --- a/metagpt/strategy/experience_retriever.py +++ b/metagpt/strategy/experience_retriever.py @@ -26,35 +26,54 @@ class TRDToolExpRetriever(ExpRetriever): return self.EXAMPLE EXAMPLE: str = """ - ## example 1 - User Requirement: Given some user requirements, write a software framework. - Explanation: Given a complete user requirement, to write a software framework, you must follow all of the following steps to complete the TRD output required by the user: 1. Call 'write_trd' to generate TRD; 2. Call 'write_framework' to implement TRD into the software framework. - ```json - [ - { - "command_name": "write_trd", - "args": { - "task_id": "1", - "dependent_task_ids": [], - "instruction": "Execute `write_trd` to write the TRD based on user requirements", - "user_requirements": "This is user requirement balabala...", - "use_case_actors": "These are actors involved in the use case, balabala...", - } - }, - { - "command_name": "write_framework", - "args": { - "task_id": "2", - "dependent_task_ids": ["1"], - "instruction": "Execute `write_framework` to write the framework based on the TRD", - "use_case_actors": "These are actors involved in the use case, balabala...", - "trd": " returned by `write_trd`", - "additional_technical_requirements": "These are additional technical requirements, balabala..." - } +## example 1 +User Requirement: Given some user requirements, write a software framework. +Explanation: Given a complete user requirement, to write a software framework, you must follow all of the following steps to complete the TRD output required by the user: 1. Call 'write_trd' to generate TRD; 2. Call 'write_framework' to implement TRD into the software framework. +```json +[ + { + "command_name": "write_trd_and_framework", + "task_id": "1", + "dependent_task_ids": [], + "instruction": "Execute `write_trd` to write the TRD based on user requirements", + "args": { + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + "additional_technical_requirements": "These are additional technical requirements, balabala..." } - ] - ``` + } +] """ + # EXAMPLE: str = """ + # ## example 1 + # User Requirement: Given some user requirements, write a software framework. + # Explanation: Given a complete user requirement, to write a software framework, you must follow all of the following steps to complete the TRD output required by the user: 1. Call 'write_trd' to generate TRD; 2. Call 'write_framework' to implement TRD into the software framework. + # ```json + # [ + # { + # "command_name": "write_trd", + # "task_id": "1", + # "dependent_task_ids": [], + # "instruction": "Execute `write_trd` to write the TRD based on user requirements", + # "args": { + # "user_requirements": "This is user requirement balabala...", + # "use_case_actors": "These are actors involved in the use case, balabala...", + # } + # }, + # { + # "command_name": "write_framework", + # "task_id": "2", + # "dependent_task_ids": ["1"], + # "instruction": "Execute `write_framework` to write the framework based on the TRD", + # "args": { + # "use_case_actors": "These are actors involved in the use case, balabala...", + # "trd": " returned by `write_trd`", + # "additional_technical_requirements": "These are additional technical requirements, balabala..." + # } + # } + # ] + # ``` + # """ class TRDExpRetriever(ExpRetriever): diff --git a/metagpt/tools/libs/software_development.py b/metagpt/tools/libs/software_development.py index 16ab74621..e10ddab4a 100644 --- a/metagpt/tools/libs/software_development.py +++ b/metagpt/tools/libs/software_development.py @@ -264,7 +264,7 @@ async def write_trd( user_requirements: str, investment: float = 10, context: Optional[Context] = None, -) -> (str, str): +) -> str: """ Handles the writing of a Technical Requirements Document (TRD) based on user requirements. @@ -397,3 +397,23 @@ async def write_framework( file_list = await save_framework(dir_data=framework, output_dir=output_dir) logger.info(f"Output:\n{file_list}") return "## Software Framework" + "".join([f"\n- {i}" for i in file_list]) + + +@register_tool(tags=["system design", "write trd and framework", "Write a TRD and the framework"]) +async def write_trd_and_framework( + use_case_actors: str, + user_requirements: str, + additional_technical_requirements: str, + investment: float = 15.0, + output_dir: Optional[str] = "", + context: Optional[Context] = None, +) -> str: + context = context or Context(cost_manager=CostManager(max_budget=investment)) + trd = await write_trd(use_case_actors=use_case_actors, user_requirements=user_requirements, context=context) + return await write_framework( + use_case_actors=use_case_actors, + trd=trd, + additional_technical_requirements=additional_technical_requirements, + output_dir=output_dir, + context=context, + ) From 99b753a64438c1037872c55d8b9d046d0c6fa140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 18 Jun 2024 10:36:55 +0800 Subject: [PATCH 12/37] feat: rfc243 --- metagpt/strategy/experience_retriever.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metagpt/strategy/experience_retriever.py b/metagpt/strategy/experience_retriever.py index 6caf83810..217a533d5 100644 --- a/metagpt/strategy/experience_retriever.py +++ b/metagpt/strategy/experience_retriever.py @@ -28,14 +28,14 @@ class TRDToolExpRetriever(ExpRetriever): EXAMPLE: str = """ ## example 1 User Requirement: Given some user requirements, write a software framework. -Explanation: Given a complete user requirement, to write a software framework, you must follow all of the following steps to complete the TRD output required by the user: 1. Call 'write_trd' to generate TRD; 2. Call 'write_framework' to implement TRD into the software framework. +Explanation: Given a complete user requirement, to write a TRD and software framework, you must follow all of the following steps to complete the TRD output required by the user: 1. Call 'write_trd' to generate TRD; 2. Call 'write_framework' to implement TRD into the software framework. ```json [ { "command_name": "write_trd_and_framework", "task_id": "1", "dependent_task_ids": [], - "instruction": "Execute `write_trd` to write the TRD based on user requirements", + "instruction": "Execute `write_trd_and_framework` to write a TRD and software framework based on user requirements", "args": { "user_requirements": "This is user requirement balabala...", "use_case_actors": "These are actors involved in the use case, balabala...", From 173dd8a813149b17e0e3035e00dcbb1ed436bdbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 18 Jun 2024 10:40:11 +0800 Subject: [PATCH 13/37] feat: rfc243 --- metagpt/prompts/di/team_leader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metagpt/prompts/di/team_leader.py b/metagpt/prompts/di/team_leader.py index 8abd13165..e5ab03ac1 100644 --- a/metagpt/prompts/di/team_leader.py +++ b/metagpt/prompts/di/team_leader.py @@ -21,7 +21,7 @@ Note: 4. If the requirement is a common-sense, logical, or math problem, you should respond directly without assigning any task to team members. 5. If you think the requirement is not clear or ambiguous, you should ask the user for clarification immediately. Assign tasks only after all info is clear. 6. It is helpful for Engineer to have both the system design and the project schedule for writing the code, so include paths of both files (if available) when publishing message to Engineer. -7. If the requirement is writing a TRD, you should assign it to Architect. When publishing message to Architect, you should directly copy the full original user requirement. +7. If the requirement is writing a TRD and software framework, you should assign it to Architect. When publishing message to Architect, you should directly copy the full original user requirement. """ FINISH_CURRENT_TASK_CMD = """ From 1a9c88c8aa29e27a237ba7a34252b0f8b430a4e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Wed, 19 Jun 2024 12:02:29 +0800 Subject: [PATCH 14/37] fixbug: detect interactions --- examples/mgx_write_project_framework.py | 5 ++++- .../requirement_analysis/framework/evaluate_framework.py | 3 ++- .../actions/requirement_analysis/trd/detect_interaction.py | 7 +++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/examples/mgx_write_project_framework.py b/examples/mgx_write_project_framework.py index 109ce877d..f82666e04 100644 --- a/examples/mgx_write_project_framework.py +++ b/examples/mgx_write_project_framework.py @@ -90,7 +90,10 @@ Given the user requirement of "User Requirements", write out the software framew ## User Requirements {user_requirements} """ - env.publish_message(UserMessage(content=msg.format(user_requirements="\n".join(user_requirements)))) + env.publish_message( + UserMessage(content=msg.format(user_requirements="\n".join(user_requirements)), send_to="Bob"), + user_defined_recipient="Bob", + ) while not env.is_idle: await env.run() diff --git a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py index 8aa120712..f81da6f5b 100644 --- a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py +++ b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py @@ -92,7 +92,8 @@ You are a tool that evaluates the quality of framework code based on the TRD con You need to refer to the content of the "Legacy TRD" section to check for any errors or omissions in the framework code found in "Legacy Outputs"; The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram; Information about the external system missing from the "Legacy TRD" can be found in the "Acknowledge" section; -Which interfaces defined in "Acknowledge" are used in the "Legacy TRD"? Do not implement the interface in "Acknowledge" section until it is used in "Legacy TRD"; +Which interfaces defined in "Acknowledge" are used in the "Legacy TRD"? +Do not implement the interface in "Acknowledge" section until it is used in "Legacy TRD"; Parts not mentioned in the "Legacy TRD" will be handled by other TRDs, therefore, processes not present in the "Legacy TRD" are considered ready; "Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet; Return a markdown JSON object with: diff --git a/metagpt/actions/requirement_analysis/trd/detect_interaction.py b/metagpt/actions/requirement_analysis/trd/detect_interaction.py index 844266034..b77193194 100644 --- a/metagpt/actions/requirement_analysis/trd/detect_interaction.py +++ b/metagpt/actions/requirement_analysis/trd/detect_interaction.py @@ -87,9 +87,12 @@ You are a tool for capturing interaction events. "Actor, System, External System" provides the possible participants of the interaction event; "Legacy Interaction Events" is the contents of the interaction events that you output earlier; Some descriptions in the "Evaluation Conclusion" relate to the content of "User Requirements", and these descriptions in the "Evaluation Conclusion" address some issues regarding the content of "Legacy Interaction Events"; -You need to capture the interaction events occurring in the description within the content of "User Requirements", including: -1. Who is interacting with whom. An interaction event has a maximum of 2 participants. If there are multiple participants, it indicates that multiple events are combined into one event and should be further split.\; +You need to capture the interaction events occurring in the description within the content of "User Requirements" word-for-word, including: +1. Who is interacting with whom. An interaction event has a maximum of 2 participants. If there are multiple participants, it indicates that multiple events are combined into one event and should be further split; 2. When an interaction event occurs, who is the initiator? What data did the initiator enter? +3. What data does the interaction event ultimately return according to the "User Requirements"? + +You can check the data flow described in the "User Requirements" to see if there are any missing interaction events; Return a markdown JSON object list, each object of the list containing: - a "name" key containing the name of the interaction event; - a "participants" key containing a string list of the names of the two participants; From f870cbb45b2fe83a793f8f25bfc60301621052c4 Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Mon, 24 Jun 2024 21:53:18 +0800 Subject: [PATCH 15/37] add a11y tree browser tool --- metagpt/roles/di/role_zero.py | 22 +- metagpt/tools/libs/browser.py | 393 ++++++++++++++-------------------- metagpt/utils/a11y_tree.py | 306 ++++++++++++++++++++++++++ 3 files changed, 490 insertions(+), 231 deletions(-) create mode 100644 metagpt/utils/a11y_tree.py diff --git a/metagpt/roles/di/role_zero.py b/metagpt/roles/di/role_zero.py index b5342409f..d60ebb91f 100644 --- a/metagpt/roles/di/role_zero.py +++ b/metagpt/roles/di/role_zero.py @@ -87,6 +87,23 @@ class RoleZero(Role): "RoleZero.ask_human": self.ask_human, "RoleZero.reply_to_human": self.reply_to_human, } + self.tool_execution_map.update( + { + f"Browser.{i}": getattr(self.browser, i) + for i in [ + "click", + "close_tab", + "go_back", + "go_forward", + "goto", + "hover", + "press", + "scroll", + "tab_focus", + "type", + ] + } + ) # can be updated by subclass self._update_tool_execution() return self @@ -125,7 +142,10 @@ class RoleZero(Role): available_commands=tool_info, instruction=self.instruction.strip(), ) - context = self.llm.format_msg(self.rc.memory.get(self.memory_k) + [UserMessage(content=prompt)]) + memory = self.rc.memory.get(self.memory_k) + if not self.browser.is_empty_page: + memory.append(UserMessage(cause_by="browser", content=await self.browser.view())) + context = self.llm.format_msg(memory + [UserMessage(content=prompt)]) # print(*context, sep="\n" + "*" * 5 + "\n") async with ThoughtReporter(enable_llm_stream=True): self.command_rsp = await self.llm.aask(context, system_msgs=self.system_msg) diff --git a/metagpt/tools/libs/browser.py b/metagpt/tools/libs/browser.py index 1b1b3d82d..aa80abb4d 100644 --- a/metagpt/tools/libs/browser.py +++ b/metagpt/tools/libs/browser.py @@ -1,261 +1,194 @@ from __future__ import annotations -import contextlib -from uuid import uuid4 +import time +from typing import Literal, Optional -from playwright.async_api import async_playwright +from playwright.async_api import Browser as _Browser +from playwright.async_api import ( + BrowserContext, + Frame, + Page, + Playwright, + Request, + async_playwright, +) -from metagpt.const import DEFAULT_WORKSPACE_ROOT from metagpt.tools.tool_registry import register_tool -from metagpt.utils.file import MemoryFileSystem -from metagpt.utils.parse_html import simplify_html -from metagpt.utils.report import BrowserReporter +from metagpt.utils.a11y_tree import ( + click_element, + get_accessibility_tree, + get_backend_node_id, + hover_element, + key_press, + parse_accessibility_tree, + scroll_page, + type_text, +) -@register_tool(tags=["web", "browse", "scrape"]) +@register_tool( + tags=["web", "browse", "scrape"], + include_functions=[ + "click", + "close_tab", + "go_back", + "go_forward", + "goto", + "hover", + "press", + "scroll", + "tab_focus", + "type", + ], +) class Browser: - """ - A tool for browsing the web and scraping. Don't initialize a new instance of this class if one already exists. - Note: Combine searching and scrolling together to achieve most effective browsing. DON'T stick to one method. + """A tool for browsing the web. Don't initialize a new instance of this class if one already exists. + + Note: If you plan to use the browser to assist you in completing tasks, then using the browser should be a standalone + task, executing actions each time based on the content seen on the webpage before proceeding to the next step. + + ## Example + Issue: The details of the latest issue in the geekan/MetaGPT repository. + Plan: Use a browser to view the details of the latest issue in the geekan/MetaGPT repository. + Solution: + Let's first open the issue page of the MetaGPT repository with the `Browser.goto` command + + >>> await browser.goto("https://github.com/geekan/MetaGPT/issues") + + From the output webpage, we've identified that the latest issue can be accessed by clicking on the element with ID "1141". + + >>> await browser.click(1141) + + Finally, we have found the webpage for the latest issue, we can close the tab and finish current task. + + >>> await browser.close_tab() """ def __init__(self): - """initiate the browser, create pages placeholder later to be managed as {page_url: page object}""" - self.browser = None + self.playwright: Optional[Playwright] = None + self.browser: Optional[_Browser] = None + self.browser_ctx: Optional[BrowserContext] = None + self.page: Optional[Page] = None + self.accessibility_tree: list = [] + self.headless: bool = True + self.proxy = None + self.is_empty_page = True - # browser status management - self.pages = {} - self.current_page_url = None - self.current_page = None - self.reporter = BrowserReporter() - - async def start(self): + async def start(self) -> None: """Starts Playwright and launches a browser""" - self.playwright = await async_playwright().start() - self.browser = await self.playwright.chromium.launch() + if self.playwright is None: + self.playwright = playwright = await async_playwright().start() + browser = self.browser = await playwright.chromium.launch(headless=self.headless, proxy=self.proxy) + browser_ctx = self.browser_ctx = await browser.new_context() + self.page = await browser_ctx.new_page() - async def _set_current_page(self, page, url): - self.current_page = page - self.current_page_url = url - print("Now on page ", url) - await self._view() + async def stop(self): + if self.playwright: + playwright = self.playwright + self.playwright = None + self.browser = None + self.browser_ctx = None + await playwright.stop() - async def open_new_page(self, url: str, timeout: float = 30000): - """open a new page in the browser and view the page""" - async with self.reporter as reporter: - page = await self.browser.new_page() - await reporter.async_report(url, "url") - await page.goto(url, timeout=timeout) - self.pages[url] = page - await self._set_current_page(page, url) - await reporter.async_report(page, "page") + async def click(self, element_id: int): + """clicks on an element with a specific id on the webpage.""" + await click_element(self.page, get_backend_node_id(element_id, self.accessibility_tree)) + return await self._wait_page() - async def view_page_element_to_scrape(self, requirement: str, keep_links: bool = False) -> None: - """view the HTML content of current page to understand the structure. When executed, the content will be printed out + async def type(self, element_id: int, content: str, press_enter_after: bool = False): + """Use this to type the content into the field with id.""" + if press_enter_after: + content += "\n" + await click_element(self.page, get_backend_node_id(element_id, self.accessibility_tree)) + await type_text(self.page, content) + return await self._wait_page() - Args: - requirement (str): Providing a clear and detailed requirement helps in focusing the inspection on the desired elements. - keep_links (bool): Whether to keep the hyperlinks in the HTML content. Set to True if links are required - """ - html = await self.current_page.content() - html = simplify_html(html, url=self.current_page.url, keep_links=keep_links) - mem_fs = MemoryFileSystem() - filename = f"{uuid4().hex}.html" - with mem_fs.open(filename, "w") as f: - f.write(html) + async def hover(self, element_id: int): + """Hover over an element with id.""" + await hover_element(self.page, get_backend_node_id(element_id, self.accessibility_tree)) + return await self._wait_page() - # Since RAG is an optional optimization, if it fails, the simplified HTML can be used as a fallback. - with contextlib.suppress(Exception): - from metagpt.rag.engines import SimpleEngine # avoid circular import + async def press(self, key_comb: str): + """Simulates the pressing of a key combination on the keyboard (e.g., Ctrl+v).""" + await key_press(self.page, key_comb) + return await self._wait_page() - # TODO make `from_docs` asynchronous - engine = SimpleEngine.from_docs(input_files=[filename], fs=mem_fs) - nodes = await engine.aretrieve(requirement) - html = "\n".join(i.text for i in nodes) + async def scroll(self, direction: Literal["down", "up"]): + """Scroll the page up or down.""" + await scroll_page(self.page, direction) + return await self._wait_page() - mem_fs.rm_file(filename) - print(html) + async def goto(self, url: str, timeout: float = 30000): + """Navigate to a specific URL.""" + await self.page.goto(url, timeout=timeout) + self.is_empty_page = False + return await self._wait_page() - async def get_page_content(self) -> str: - """Get the HTML content of current page.""" - html = await self.current_page.content() - html_content = html.strip() - return html_content + async def go_back(self): + """Navigate to the previously viewed page.""" + await self.page.go_back() + return await self._wait_page() - async def switch_page(self, url: str): - """switch to an opened page in the browser and view the page""" - if url in self.pages: - await self._set_current_page(self.pages[url], url) - await self.reporter.async_report(self.current_page, "page") + async def go_forward(self): + """Navigate to the next page (if a previous 'go_back' action was performed).""" + await self.page.go_forward() + return await self._wait_page() + + async def tab_focus(self, page_number: int): + """Open a new, empty browser tab.""" + page = self.browser_ctx.pages[page_number] + await page.bring_to_front() + return await self._wait_page() + + async def close_tab(self): + """Close the currently active tab.""" + await self.page.close() + if len(self.browser_ctx.pages) > 0: + self.page = self.browser_ctx.pages[-1] else: - print(f"Page not found: {url}") + self.page = await self.browser_ctx.new_page() + self.is_empty_page = True + return await self._wait_page() - async def _view_page_html(self, keep_len: int = 5000) -> str: - """view the HTML content of current page, return the HTML content as a string. When executed, the content will be printed out""" - html = await self.current_page.content() - html_content = html.strip()[:keep_len] - return html_content + async def _wait_page(self): + page = self.page + await self._wait_until_page_idle(page) + self.accessibility_tree = await get_accessibility_tree(page) + return f"SUCCESS, URL: {page.url}" - async def search_content_all(self, search_term: str) -> list[dict]: - """search all occurences of search term in the current page and return the search results with their position. - Useful if you have a keyword or sentence in mind and want to quickly narrow down the content relevant to it. + def _register_page_event(self, page: Page): + page.last_busy_time = time.time() + page.requests = set() + page.on("domcontentloaded", self._update_page_last_busy_time) + page.on("load", self._update_page_last_busy_time) + page.on("request", self._on_page_request) + page.on("requestfailed", self._on_page_requestfinished) + page.on("requestfinished", self._on_page_requestfinished) + page.on("frameattached", self._on_frame_change) + page.on("framenavigated", self._on_frame_change) - Args: - search_term (str): the search term + async def _wait_until_page_idle(self, page) -> None: + if not hasattr(page, "last_busy_time"): + self._register_page_event(page) + else: + page.last_busy_time = time.time() + while time.time() - page.last_busy_time < 0.5: + await page.wait_for_timeout(100) - Returns: - list[dict]: a list of dictionaries containing the elements and their positions, e.g. - [ - { - "index": ..., - "content": { - "text_block": ..., - "links": [ - {"text": ..., "href": ...}, - ... - ] - }, - "position": {from_top: ..., from_left: ...}, - }, - ... - ] - """ - locator = self.current_page.locator(f"text={search_term}") - count = await locator.count() - search_results = [] - for i in range(count): - element = locator.nth(i) - if await element.is_visible(): - position = await element.evaluate("e => ({ from_top: e.offsetTop, from_left: e.offsetLeft })") + async def _update_page_last_busy_time(self, page: Page): + page.last_busy_time = time.time() - # Retrieve the surrounding block of text and links with their text - content = await element.evaluate(SEARCH_CONTENT_JS) + async def _on_page_request(self, request: Request): + page = request.frame.page + page.requests.add(request) + await self._update_page_last_busy_time(page) - search_results.append( - {"index": len(search_results), "content": content, "position": position, "element_obj": element} - ) + async def _on_page_requestfinished(self, request: Request): + request.frame.page.requests.discard(request) - print(f"Found {len(search_results)} instances of the term '{search_term}':\n\n{search_results}") + async def _on_frame_change(self, frame: Frame): + await self._update_page_last_busy_time(frame.page) - return search_results - - async def scroll_to_search_result(self, search_results: list[dict], index: int = 0): - """Scroll to the index-th search result, potentially for subsequent perception. - Useful if you have located a search result, the search result does not fulfill your requirement, and you need more information around that search result. Can only be used after search_all_content. - - Args: - search_results (list[dict]): search_results from search_content_all - index (int, optional): the index of the search result to scroll to. Index starts from 0. Defaults to 0. - """ - if not search_results: - return {} - if index >= len(search_results): - print(f"Index {index} is out of range. Scrolling to the last instance.") - index = len(search_results) - 1 - element = search_results[index]["element_obj"] - await element.scroll_into_view_if_needed() - await self.reporter.async_report(self.current_page, "page") - - print(f"Successfully scrolled to the {index}-th search result") - print(await self._view()) - - # async def find_links(self) -> list: - # """Finds all links in the current page and returns a list of dictionaries with link text and the URL. - # Useful for navigating to more pages and exploring more resources. - - # Returns: - # list: A list of dictionaries, each containing 'text' and 'href' keys. - # """ - # # Use a CSS selector to find all elements in the page. - # links = await self.current_page.query_selector_all("a") - - # # Prepare an empty list to hold link information. - # link_info = [] - - # # Iterate over each link element to extract its text and href attributes. - # for link in links: - # text = await link.text_content() - # href = await link.get_attribute("href") - # link_info.append({"text": text, "href": href}) - - # print(f"Found {len(link_info)} links:\n\n{link_info}") - - # return link_info - - async def screenshot(self, path: str = DEFAULT_WORKSPACE_ROOT / "screenshot_temp.png"): - """Take a screenshot of the current page and save it to the specified path.""" - await self.current_page.screenshot(path=path) - print(f"Screenshot saved to: {path}") - - async def _view(self, keep_len: int = 5000) -> str: - """simulate human viewing the current page, return the visible text with links""" - visible_text_with_links = await self.current_page.evaluate(VIEW_CONTENT_JS) - print("The visible text and their links (if any): ", visible_text_with_links[:keep_len]) - # html_content = await self._view_page_html(keep_len=keep_len) - # print("The html content: ", html_content) - - async def scroll_current_page(self, offset: int = 500): - """scroll the current page by offset pixels, negative value means scrolling up, will print out observed content after scrolling""" - await self.current_page.evaluate(f"window.scrollBy(0, {offset})") - await self.reporter.async_report(self.current_page, "page") - - print(f"Scrolled current page by {offset} pixels.") - print(await self._view()) - - def check_all_pages(self) -> dict: - """return all pages opened in the browser, a dictionary with {page_url: page_title}, useful for understanding the current browser state""" - pages_info = {url: page.title() for url, page in self.pages.items()} - return pages_info - - async def close(self): - """close the browser and all pages""" - await self.browser.close() - await self.playwright.stop() - - -async def get_scroll_position(page): - return await page.evaluate("() => ({ x: window.scrollX, y: window.scrollY })") - - -SEARCH_CONTENT_JS = """ -(element) => { - // const block = element.closest('p, div, section, article'); - const block = element.parentElement; - return { - text_block: block.innerText, - // Create an array of objects, each containing the text and href of a link - links: Array.from(block.querySelectorAll('a')).map(a => ({ - text: a.innerText, - href: a.href - })) - }; -} -""" - - -VIEW_CONTENT_JS = """ -() => { - return Array.from(document.querySelectorAll('body *')).filter(el => { - if (!(el.offsetWidth || el.offsetHeight || el.getClientRects().length)) return false; - const style = window.getComputedStyle(el); - if (style.display === 'none' || style.visibility !== 'visible' || style.opacity === '0') return false; - const rect = el.getBoundingClientRect(); - const elemCenter = { - x: rect.left + rect.width / 2, - y: rect.top + rect.height / 2 - }; - if (elemCenter.x < 0 || elemCenter.y < 0 || elemCenter.x > window.innerWidth || elemCenter.y > window.innerHeight) return false; - if (document.elementFromPoint(elemCenter.x, elemCenter.y) !== el) return false; - return true; - }).map(el => { - let text = el.innerText || ''; - text = text.trim(); - if (!text.length) return ''; - const parentAnchor = el.closest('a'); - if (parentAnchor && parentAnchor.href) { - return `${text} (${parentAnchor.href})`; - } - return text; - }).filter(text => text.length > 0).join("\\n"); -} -""" + async def view(self): + observation = parse_accessibility_tree(self.accessibility_tree) + return f"Current _Browser Viewer\n URL: {self.page.url}\nOBSERVATION:\n{observation[0]}\n" diff --git a/metagpt/utils/a11y_tree.py b/metagpt/utils/a11y_tree.py new file mode 100644 index 000000000..59acbc6dc --- /dev/null +++ b/metagpt/utils/a11y_tree.py @@ -0,0 +1,306 @@ +"""See https://github.com/web-arena-x/webarena +""" +from __future__ import annotations + +import re + +from playwright.async_api import BrowserContext, Page + + +async def get_accessibility_tree(page: Page): + cdp_session = await get_page_cdp_session(page) + resp = await cdp_session.send("Accessibility.getFullAXTree") + + seen_ids = set() + accessibility_tree = [] + for node in resp["nodes"]: + if node["nodeId"] not in seen_ids: + accessibility_tree.append(node) + seen_ids.add(node["nodeId"]) + return accessibility_tree + + +async def execute_step(step: str, page: Page, browser_ctx: BrowserContext, accessibility_tree: list): + step = step.strip() + func = step.split("[")[0].strip() if "[" in step else step.split()[0].strip() + if func == "None": + return "" + elif func == "click": + match = re.search(r"click ?\[(\d+)\]", step) + if not match: + raise ValueError(f"Invalid click action {step}") + element_id = match.group(1) + await click_element(page, get_backend_node_id(element_id, accessibility_tree)) + elif func == "hover": + match = re.search(r"hover ?\[(\d+)\]", step) + if not match: + raise ValueError(f"Invalid hover action {step}") + element_id = match.group(1) + await hover_element(page, get_backend_node_id(element_id, accessibility_tree)) + elif func == "type": + # add default enter flag + if not (step.endswith("[0]") or step.endswith("[1]")): + step += " [1]" + + match = re.search(r"type ?\[(\d+)\] ?\[(.+)\] ?\[(\d+)\]", step) + if not match: + raise ValueError(f"Invalid type action {step}") + element_id, text, enter_flag = ( + match.group(1), + match.group(2), + match.group(3), + ) + if enter_flag == "1": + text += "\n" + await click_element(page, get_backend_node_id(element_id, accessibility_tree)) + await type_text(page, text) + elif func == "press": + match = re.search(r"press ?\[(.+)\]", step) + if not match: + raise ValueError(f"Invalid press action {step}") + key = match.group(1) + await key_press(page, key) + elif func == "scroll": + # up or down + match = re.search(r"scroll ?\[?(up|down)\]?", step) + if not match: + raise ValueError(f"Invalid scroll action {step}") + direction = match.group(1) + await scroll_page(page, direction) + elif func == "goto": + match = re.search(r"goto ?\[(.+)\]", step) + if not match: + raise ValueError(f"Invalid goto action {step}") + url = match.group(1) + await page.goto(url) + elif func == "new_tab": + page = await browser_ctx.new_page() + elif func == "go_back": + await page.go_back() + elif func == "go_forward": + await page.go_forward() + elif func == "tab_focus": + match = re.search(r"tab_focus ?\[(\d+)\]", step) + if not match: + raise ValueError(f"Invalid tab_focus action {step}") + page_number = int(match.group(1)) + page = browser_ctx.pages[page_number] + await page.bring_to_front() + elif func == "close_tab": + await page.close() + if len(browser_ctx.pages) > 0: + page = browser_ctx.pages[-1] + else: + page = await browser_ctx.new_page() + elif func == "stop": + match = re.search(r'stop\(?"(.+)?"\)', step) + answer = match.group(1) if match else "" + return answer + else: + raise ValueError + await page.wait_for_load_state("domcontentloaded") + return page + + +async def type_text(page: Page, text: str): + await page.keyboard.type(text) + + +async def click_element(page: Page, backend_node_id: int): + cdp_session = await get_page_cdp_session(page) + resp = await get_bounding_rect(cdp_session, backend_node_id) + node_info = resp["result"]["value"] + x, y = await get_element_center(node_info) + await page.mouse.click(x, y) + + +async def hover_element(page: Page, backend_node_id: int) -> None: + cdp_session = await get_page_cdp_session(page) + resp = await get_bounding_rect(cdp_session, backend_node_id) + node_info = resp["result"]["value"] + x, y = await get_element_center(node_info) + await page.mouse.move(x, y) + + +async def scroll_page(page: Page, direction: str) -> None: + # perform the action + # code from natbot + if direction == "up": + await page.evaluate( + "(document.scrollingElement || document.body).scrollTop = (document.scrollingElement || document.body).scrollTop - window.innerHeight;" + ) + elif direction == "down": + await page.evaluate( + "(document.scrollingElement || document.body).scrollTop = (document.scrollingElement || document.body).scrollTop + window.innerHeight;" + ) + + +async def key_press(page: Page, key: str) -> None: + """Press a key.""" + if "Meta" in key and "Mac" not in await page.evaluate("navigator.platform"): + key = key.replace("Meta", "Control") + await page.keyboard.press(key) + + +async def get_element_outer_html(page: Page, backend_node_id: int): + cdp_session = await get_page_cdp_session(page) + try: + outer_html = await cdp_session.send("DOM.getOuterHTML", {"backendNodeId": int(backend_node_id)}) + return outer_html["outerHTML"] + except Exception as e: + raise ValueError("Element not found") from e + + +async def get_element_center(node_info): + x, y, width, height = node_info["x"], node_info["y"], node_info["width"], node_info["height"] + center_x = x + width / 2 + center_y = y + height / 2 + return center_x, center_y + + +def extract_step(response: str, action_splitter: str = "```") -> str: + # find the first occurence of action + pattern = rf"{action_splitter}((.|\n)*?){action_splitter}" + match = re.search(pattern, response) + if match: + return match.group(1).strip() + else: + raise ValueError(f'Cannot find the answer phrase "{response}"') + + +async def get_bounding_rect(cdp_session, backend_node_id: str): + try: + remote_object = await cdp_session.send("DOM.resolveNode", {"backendNodeId": int(backend_node_id)}) + remote_object_id = remote_object["object"]["objectId"] + response = await cdp_session.send( + "Runtime.callFunctionOn", + { + "objectId": remote_object_id, + "functionDeclaration": """ + function() { + if (this.nodeType == 3) { + var range = document.createRange(); + range.selectNode(this); + var rect = range.getBoundingClientRect().toJSON(); + range.detach(); + return rect; + } else { + return this.getBoundingClientRect().toJSON(); + } + } + """, + "returnByValue": True, + }, + ) + return response + except Exception as e: + raise ValueError("Element not found") from e + + +IGNORED_ACTREE_PROPERTIES = ( + "focusable", + "editable", + "readonly", + "level", + "settable", + "multiline", + "invalid", +) + + +def parse_accessibility_tree(accessibility_tree): + """Parse the accessibility tree into a string text""" + node_id_to_idx = {} + for idx, node in enumerate(accessibility_tree): + node_id_to_idx[node["nodeId"]] = idx + + obs_nodes_info = {} + + def dfs(idx: int, obs_node_id: str, depth: int) -> str: + tree_str = "" + node = accessibility_tree[idx] + indent = "\t" * depth + valid_node = True + try: + role = node["role"]["value"] + name = node["name"]["value"] + node_str = f"[{obs_node_id}] {role} {repr(name)}" + properties = [] + for property in node.get("properties", []): + try: + if property["name"] in IGNORED_ACTREE_PROPERTIES: + continue + properties.append(f'{property["name"]}: {property["value"]["value"]}') + except KeyError: + pass + + if properties: + node_str += " " + " ".join(properties) + + # check valid + if not node_str.strip(): + valid_node = False + + # empty generic node + if not name.strip(): + if not properties: + if role in [ + "generic", + "img", + "list", + "strong", + "paragraph", + "banner", + "navigation", + "Section", + "LabelText", + "Legend", + "listitem", + ]: + valid_node = False + elif role in ["listitem"]: + valid_node = False + + if valid_node: + tree_str += f"{indent}{node_str}" + obs_nodes_info[obs_node_id] = { + "backend_id": node["backendDOMNodeId"], + "union_bound": node["union_bound"], + "text": node_str, + } + + except Exception: + valid_node = False + + for _, child_node_id in enumerate(node["childIds"]): + if child_node_id not in node_id_to_idx: + continue + # mark this to save some tokens + child_depth = depth + 1 if valid_node else depth + child_str = dfs(node_id_to_idx[child_node_id], child_node_id, child_depth) + if child_str.strip(): + if tree_str.strip(): + tree_str += "\n" + tree_str += child_str + + return tree_str + + tree_str = dfs(0, accessibility_tree[0]["nodeId"], 0) + return tree_str, obs_nodes_info + + +async def get_page_cdp_session(page): + if hasattr(page, "cdp_session"): + return page.cdp_session + + cdp_session = await page.context.new_cdp_session(page) + page.cdp_session = cdp_session + return cdp_session + + +def get_backend_node_id(element_id, accessibility_tree): + element_id = str(element_id) + for i in accessibility_tree: + if i["nodeId"] == element_id: + return i.get("backendDOMNodeId") + raise ValueError(f"Element {element_id} not found") From 877b06bfdc01512fe221f50cc30c19c6cec777af Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Tue, 25 Jun 2024 10:26:39 +0800 Subject: [PATCH 16/37] browser report --- metagpt/tools/libs/browser.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/metagpt/tools/libs/browser.py b/metagpt/tools/libs/browser.py index aa80abb4d..df9d43135 100644 --- a/metagpt/tools/libs/browser.py +++ b/metagpt/tools/libs/browser.py @@ -24,6 +24,7 @@ from metagpt.utils.a11y_tree import ( scroll_page, type_text, ) +from metagpt.utils.report import BrowserReporter @register_tool( @@ -73,6 +74,7 @@ class Browser: self.headless: bool = True self.proxy = None self.is_empty_page = True + self.reporter = BrowserReporter() async def start(self) -> None: """Starts Playwright and launches a browser""" @@ -120,9 +122,11 @@ class Browser: async def goto(self, url: str, timeout: float = 30000): """Navigate to a specific URL.""" - await self.page.goto(url, timeout=timeout) - self.is_empty_page = False - return await self._wait_page() + async with self.reporter as reporter: + await reporter.async_report(url, "url") + await self.page.goto(url, timeout=timeout) + self.is_empty_page = False + return await self._wait_page() async def go_back(self): """Navigate to the previously viewed page.""" @@ -154,6 +158,7 @@ class Browser: page = self.page await self._wait_until_page_idle(page) self.accessibility_tree = await get_accessibility_tree(page) + await self.reporter.async_report(page, "page") return f"SUCCESS, URL: {page.url}" def _register_page_event(self, page: Page): From bd675d5178f86a39a2c4ed17122c97e0b351d30d Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Tue, 25 Jun 2024 11:04:43 +0800 Subject: [PATCH 17/37] add view_page_element_to_scrape tool --- examples/di/crawl_webpage.py | 6 ++-- metagpt/rag/engines/simple.py | 5 ++- metagpt/tools/libs/browser.py | 9 ++++- metagpt/tools/libs/web_scraping.py | 56 +++++++++++++++++++++++------- 4 files changed, 57 insertions(+), 19 deletions(-) diff --git a/examples/di/crawl_webpage.py b/examples/di/crawl_webpage.py index 92e3c32b0..c4e1b6599 100644 --- a/examples/di/crawl_webpage.py +++ b/examples/di/crawl_webpage.py @@ -6,9 +6,7 @@ """ from metagpt.roles.di.data_interpreter import DataInterpreter - -__import__("metagpt.tools.libs.browser", fromlist=["Browser"]) # To skip pre-commit check - +from metagpt.tools.libs.web_scraping import view_page_element_to_scrape PAPER_LIST_REQ = """" Get data from `paperlist` table in https://papercopilot.com/statistics/iclr-statistics/iclr-2024-statistics/, @@ -34,7 +32,7 @@ NEWS_36KR_REQ = """从36kr创投平台https://pitchhub.36kr.com/financing-flash async def main(): - di = DataInterpreter(tools=["Browser"]) + di = DataInterpreter(tools=[view_page_element_to_scrape.__name__]) await di.run(ECOMMERCE_REQ) diff --git a/metagpt/rag/engines/simple.py b/metagpt/rag/engines/simple.py index c237dcf69..8a9ccaffd 100644 --- a/metagpt/rag/engines/simple.py +++ b/metagpt/rag/engines/simple.py @@ -4,6 +4,7 @@ import json import os from typing import Any, Optional, Union +import fsspec from llama_index.core import SimpleDirectoryReader from llama_index.core.callbacks.base import CallbackManager from llama_index.core.embeddings import BaseEmbedding @@ -83,6 +84,7 @@ class SimpleEngine(RetrieverQueryEngine): llm: LLM = None, retriever_configs: list[BaseRetrieverConfig] = None, ranker_configs: list[BaseRankerConfig] = None, + fs: Optional[fsspec.AbstractFileSystem] = None, ) -> "SimpleEngine": """From docs. @@ -96,11 +98,12 @@ class SimpleEngine(RetrieverQueryEngine): llm: Must supported by llama index. Default OpenAI. retriever_configs: Configuration for retrievers. If more than one config, will use SimpleHybridRetriever. ranker_configs: Configuration for rankers. + fs: File system to use. """ if not input_dir and not input_files: raise ValueError("Must provide either `input_dir` or `input_files`.") - documents = SimpleDirectoryReader(input_dir=input_dir, input_files=input_files).load_data() + documents = SimpleDirectoryReader(input_dir=input_dir, input_files=input_files, fs=fs).load_data() cls._fix_document_metadata(documents) transformations = transformations or cls._default_transformations() diff --git a/metagpt/tools/libs/browser.py b/metagpt/tools/libs/browser.py index df9d43135..9d24d4baf 100644 --- a/metagpt/tools/libs/browser.py +++ b/metagpt/tools/libs/browser.py @@ -28,7 +28,7 @@ from metagpt.utils.report import BrowserReporter @register_tool( - tags=["web", "browse", "scrape"], + tags=["web", "browse"], include_functions=[ "click", "close_tab", @@ -197,3 +197,10 @@ class Browser: async def view(self): observation = parse_accessibility_tree(self.accessibility_tree) return f"Current _Browser Viewer\n URL: {self.page.url}\nOBSERVATION:\n{observation[0]}\n" + + async def __aenter__(self): + await self.start() + return self + + async def __aexit__(self, *args, **kwargs): + await self.stop() diff --git a/metagpt/tools/libs/web_scraping.py b/metagpt/tools/libs/web_scraping.py index bc34b1306..489c3a472 100644 --- a/metagpt/tools/libs/web_scraping.py +++ b/metagpt/tools/libs/web_scraping.py @@ -1,20 +1,50 @@ +import contextlib +from uuid import uuid4 + +from metagpt.tools.libs.browser import Browser from metagpt.tools.tool_registry import register_tool -from metagpt.tools.web_browser_engine_playwright import PlaywrightWrapper +from metagpt.utils.file import MemoryFileSystem +from metagpt.utils.parse_html import simplify_html -@register_tool(tags=["web scraping", "web"]) -async def scrape_web_playwright(url): - """ - Asynchronously Scrape and save the HTML structure and inner text content of a web page using Playwright. +@register_tool(tags=["web scraping"]) +async def view_page_element_to_scrape(url: str, requirement: str, keep_links: bool = False) -> None: + """view the HTML content of current page to understand the structure. When executed, the content will be printed out Args: - url (str): The main URL to fetch inner text from. - - Returns: - dict: The inner text content and html structure of the web page, keys are 'inner_text', 'html'. + url (str): The URL of the web page to scrape. + requirement (str): Providing a clear and detailed requirement helps in focusing the inspection on the desired elements. + keep_links (bool): Whether to keep the hyperlinks in the HTML content. Set to True if links are required """ - # Create a PlaywrightWrapper instance for the Chromium browser - web = await PlaywrightWrapper().run(url) + async with Browser() as browser: + await browser.goto(url) + page = browser.page + html = await page.content() + html = simplify_html(html, url=page.url, keep_links=keep_links) + mem_fs = MemoryFileSystem() + filename = f"{uuid4().hex}.html" + with mem_fs.open(filename, "w") as f: + f.write(html) - # Return the inner text content of the web page - return {"inner_text": web.inner_text.strip(), "html": web.html.strip()} + # Since RAG is an optional optimization, if it fails, the simplified HTML can be used as a fallback. + with contextlib.suppress(Exception): + from metagpt.rag.engines import SimpleEngine # avoid circular import + + # TODO make `from_docs` asynchronous + engine = SimpleEngine.from_docs(input_files=[filename], fs=mem_fs) + nodes = await engine.aretrieve(requirement) + html = "\n".join(i.text for i in nodes) + + mem_fs.rm_file(filename) + print(html) + + +# async def get_elements_outerhtml(self, element_ids: list[int]): +# """Inspect the outer HTML of the elements in Current Browser Viewer. +# """ +# page = self.page +# data = [] +# for element_id in element_ids: +# html = await get_element_outer_html(page, get_backend_node_id(element_id, self.accessibility_tree)) +# data.append(html) +# return "\n".join(f"[{element_id}]. {html}" for element_id, html in zip(element_ids, data)) From dc3193751d41f3153a666c47e02f59b7f69e410c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 25 Jun 2024 14:17:47 +0800 Subject: [PATCH 18/37] feat: +uri --- tests/data/requirements/1.acknowledge.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/data/requirements/1.acknowledge.md b/tests/data/requirements/1.acknowledge.md index a48b95347..22643f8e5 100644 --- a/tests/data/requirements/1.acknowledge.md +++ b/tests/data/requirements/1.acknowledge.md @@ -2,6 +2,8 @@ ## Interfaces - 用户登录 - Description: 用户从小程序/微应用发起请求,需要验证用户的合法身份才能正常处理。 - ID: 1 + - METHOD: GET + - URI: `/sup/login.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -19,6 +21,8 @@ ## Interfaces - 根据sessionId查询用户详细信息 - Description: 查询当前用户的详细信息,如 staffId,unionId,name,avatar等信息 - ID: 2 + - METHOD: GET + - URI: `/sup/user.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -39,6 +43,8 @@ ## Interfaces - 查询国家情况描述 - Description: 根据国家code查询国家情况描述 - ID: 3 + - METHOD: GET + - URI: `/sup/country/detail.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -57,6 +63,8 @@ ## Interfaces - 查询产品法规分析(法律意见详情) - Description: 根据国家和业务线查询产品法规分析 - ID: 4 + - METHOD: GET + - URI: `/sup/legal/detail.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -79,6 +87,8 @@ ## Interfaces - 查询法律意见总数 - Description: 法律意见总数查询 - ID: 5 + - METHOD: GET + - URI: `/sup/legal/count.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -92,6 +102,8 @@ ## Interfaces - 查询所有国家和业务线信息列表 - Description: 查询所有国家和业务线信息列表 - ID: 6 + - METHOD: GET + - URI: `/sup/legal/country/list.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -113,6 +125,8 @@ ## Interfaces - 国家/区域导游详情 & 法律意见详情 查询 - Description:根据国家code查询国家/区域导游信息详情 - ID: 8 + - METHOD: GET + - URI: `/contract/country/navigate.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -150,6 +164,8 @@ ## Interfaces - 国家/区域导游列表分页查询 - Description: 分页查询国家/区域列表 - ID: 9 + - METHOD: GET + - URI: `/contract/country/list.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | From 8ed7b651bc8b8155e27f6bb7a219e7a0057ba112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 25 Jun 2024 15:47:19 +0800 Subject: [PATCH 19/37] feat: rename uri --- tests/data/requirements/1.acknowledge.md | 32 ++++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tests/data/requirements/1.acknowledge.md b/tests/data/requirements/1.acknowledge.md index 22643f8e5..61de5f4b8 100644 --- a/tests/data/requirements/1.acknowledge.md +++ b/tests/data/requirements/1.acknowledge.md @@ -2,8 +2,8 @@ ## Interfaces - 用户登录 - Description: 用户从小程序/微应用发起请求,需要验证用户的合法身份才能正常处理。 - ID: 1 - - METHOD: GET - - URI: `/sup/login.json` + - HTTP METHOD: GET + - Endpoint: `/sup/login.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -21,8 +21,8 @@ ## Interfaces - 根据sessionId查询用户详细信息 - Description: 查询当前用户的详细信息,如 staffId,unionId,name,avatar等信息 - ID: 2 - - METHOD: GET - - URI: `/sup/user.json` + - HTTP METHOD: GET + - Endpoint: `/sup/user.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -43,8 +43,8 @@ ## Interfaces - 查询国家情况描述 - Description: 根据国家code查询国家情况描述 - ID: 3 - - METHOD: GET - - URI: `/sup/country/detail.json` + - HTTP METHOD: GET + - Endpoint: `/sup/country/detail.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -63,8 +63,8 @@ ## Interfaces - 查询产品法规分析(法律意见详情) - Description: 根据国家和业务线查询产品法规分析 - ID: 4 - - METHOD: GET - - URI: `/sup/legal/detail.json` + - HTTP METHOD: GET + - Endpoint: `/sup/legal/detail.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -87,8 +87,8 @@ ## Interfaces - 查询法律意见总数 - Description: 法律意见总数查询 - ID: 5 - - METHOD: GET - - URI: `/sup/legal/count.json` + - HTTP METHOD: GET + - Endpoint: `/sup/legal/count.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -102,8 +102,8 @@ ## Interfaces - 查询所有国家和业务线信息列表 - Description: 查询所有国家和业务线信息列表 - ID: 6 - - METHOD: GET - - URI: `/sup/legal/country/list.json` + - HTTP METHOD: GET + - Endpoint: `/sup/legal/country/list.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -125,8 +125,8 @@ ## Interfaces - 国家/区域导游详情 & 法律意见详情 查询 - Description:根据国家code查询国家/区域导游信息详情 - ID: 8 - - METHOD: GET - - URI: `/contract/country/navigate.json` + - HTTP METHOD: GET + - Endpoint: `/contract/country/navigate.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | @@ -164,8 +164,8 @@ ## Interfaces - 国家/区域导游列表分页查询 - Description: 分页查询国家/区域列表 - ID: 9 - - METHOD: GET - - URI: `/contract/country/list.json` + - HTTP METHOD: GET + - Endpoint: `/contract/country/list.json` - Input Parameters: |名称|描述|类型(长度)|必选|备注| | :- | :- | :-: | :- | :- | From d391042d6ee98da5ecec736379de6c84a495e0ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 25 Jun 2024 16:19:28 +0800 Subject: [PATCH 20/37] feat: update mock_asearch_acknowledgement --- metagpt/tools/libs/software_development.py | 180 +-------------------- 1 file changed, 3 insertions(+), 177 deletions(-) diff --git a/metagpt/tools/libs/software_development.py b/metagpt/tools/libs/software_development.py index e10ddab4a..a527c5806 100644 --- a/metagpt/tools/libs/software_development.py +++ b/metagpt/tools/libs/software_development.py @@ -16,10 +16,11 @@ from metagpt.actions.requirement_analysis.trd import ( EvaluateTRD, WriteTRD, ) -from metagpt.const import ASSISTANT_ALIAS +from metagpt.const import ASSISTANT_ALIAS, TEST_DATA_PATH from metagpt.context import Context from metagpt.logs import ToolLogItem, log_tool_output, logger from metagpt.tools.tool_registry import register_tool +from metagpt.utils.common import aread from metagpt.utils.cost_manager import CostManager @@ -80,182 +81,7 @@ async def extract_external_interfaces(acknowledge: str) -> str: async def mock_asearch_acknowledgement(use_case_actors: str): - return """ -## Interfaces -- 用户登录 - - Description: 用户从小程序/微应用发起请求,需要验证用户的合法身份才能正常处理。 - - ID: 1 - - Input Parameters: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |authCode|用户临时免登授权码|String(64)|√|| - |loginTypeEnum|登录类型|String(20)|√|| - |authCorpId|用户所在企业/组织id|String(64)||微应用免登时传递| - |app|应用标识|String(3)|√|| - - Returns: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |success|业务处理成功与否,成功true,否则false|boolean|√|只判断这个属性即可| - |message|错误信息,可以用来提示|string|√|| - |code|返回状态码|string|√|| - |data|用户的sessionId|string|√|| -- 根据sessionId查询用户详细信息 - - Description: 查询当前用户的详细信息,如 staffId,unionId,name,avatar等信息 - - ID: 2 - - Input Parameters: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |NDA_SESSION|用户sessionId|String(64)|√|| - - Returns: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |success|业务处理成功与否,成功true,否则false|boolean|√|只判断这个属性即可| - |message|错误信息,可以用来提示|string|√|| - |code|返回状态码|string|√|| - |data|用户的详细信息|object|√|| - |-> corpId|当前用户企业 钉钉ID(小程序端会拿不到该信息)|string|√|| - |-> corpName|当前用户企业名称(小程序端会拿不到该信息)|string|√|| - |-> staffId|员工在当前企业内的唯一标识,也称staffId(小程序端会拿不到该信息)|string|√|| - |-> unionId|员工在当前开发者企业账号范围内的唯一标识,系统生成,固定值,不会改变。|string|√|| - |-> name|当前用户的名称(小程序端会拿不到该信息)|string|√|| - |-> avatar|头像图片URL|string|√|| -- 查询国家情况描述 - - Description: 根据国家code查询国家情况描述 - - ID: 3 - - Input Parameters: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |countryCode|国家code|string|√|| - - Returns: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| - |message|错误信息,可以用来提示|string|√|| - |code|返回状态码|string|√|| - |data|国家情况描述|object|√|| - |-> id|id|integer|√|| - |-> countryName|国家名称|string|√|| - |-> countryCode|国家code|string|√|| - |-> detail|产品法规分析|string|√|| -- 查询产品法规分析(法律意见详情) - - Description: 根据国家和业务线查询产品法规分析 - - ID: 4 - - Input Parameters: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |countryCode|国家code|string|√|| - |businessCode|业务线code|string|√|| - - Returns: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| - |message|错误信息,可以用来提示|string|√|| - |code|返回状态码|string|√|| - |data|法律意见详情|object|√|| - |-> id|id|integer|√|| - |-> countryName|国家名称|string|√|| - |-> countryCode|国家code|string|√|| - |-> businessLine|业务线|string|√|| - |-> businessCode|业务线code|string|√|| - |-> detail|产品法规分析|string|√|| - |-> signEntity|签约主体|string|√|| -- 查询法律意见总数 - - Description: 法律意见总数查询 - - ID: 5 - - Input Parameters: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - - Returns: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| - |message|错误信息,可以用来提示|string|√|| - |code|返回状态码|string|√|| - |data|总数|integer|√|| -- 查询所有国家和业务线信息列表 - - Description: 查询所有国家和业务线信息列表 - - ID: 6 - - Input Parameters: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - - Returns: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| - |message|错误信息,可以用来提示|string|√|| - |code|返回状态码|string|√|| - |data|所有数据列表|list of object|√|| - |-> country|国家code|string|√|| - |-> business|业务线code|string|√|| - |-> dataType|数据类型|string|√|| - |-> businessName|业务线名|string|√|| - |-> countryName|国家名|string|√|| - |-> businessNameEn|业务线名(英文)|string|√|| -- 调用法务中台antlaw接口 - - ID: 7 -- 国家/区域导游详情 & 法律意见详情 查询 - - Description:根据国家code查询国家/区域导游信息详情 - - ID: 8 - - Input Parameters: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |countryCode|国家code|string|√|| - - Returns: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| - |message|错误信息,可以用来提示|string|√|| - |code|返回状态码|string|√|| - |data|国家/区域导游详情|object|√|| - |-> country||||| - |-> -> id|id|integer|√|| - |-> -> country|国家code|string|√|| - |-> -> countryName|国家中文名称|string|√|| - |-> -> countryNameEn|国家英文名称|string|√|| - |-> -> content|国家导游中文详情json数组,具体格式见下示例|list of object|√|| - |-> -> -> title|标题|object|√|| - |-> -> -> -> title|中文标题|string||| - |-> -> -> -> titleEn|英文标题|string||| - |-> -> -> contentList|标题下面的文字描述列表|list of object|√|| - |-> -> -> -> detail|内容中文详情|string|√|| - |-> -> -> -> detailEn|内容英文详情|string|√|| - |-> -> -> -> url|超链接|string||| - |-> legal|法务信息|object||| - |-> -> country|国家code|string|√|| - |-> -> businessList|业务线列表|list of object||| - |-> -> -> id|id|integer||新增时不传,修改时传递| - |-> -> -> business|业务线code|string|√|| - |-> -> -> businessName|业务线中文名称|string|√|| - |-> -> -> businessNameEn|业务线英文名称|string|√|| - |-> -> -> content|业务线json,具体如下|object|√|| - |-> -> -> -> detailEn|具体的详情英文内容|string|√|| - |-> -> -> -> detail|具体的详情内容|string|√|| -- 国家/区域导游列表分页查询 - - Description: 分页查询国家/区域列表 - - ID: 9 - - Input Parameters: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |pageSize|分页大小|integer|√|>=1| - |pageNum|分页大小|integer|√|>=1| - |country|国家code|string||| - |business|业务线code|string||| - - Returns: - |名称|描述|类型(长度)|必选|备注| - | :- | :- | :-: | :- | :- | - |success|业务处理成功true,否则false|boolean|√|只判断这个属性即可| - |message|错误信息,可以用来提示|string|√|| - |code|返回状态码|string|√|| - |data|国家/区域导游详情|list of object|√|| - |-> id|id|integer|√|| - |-> country|国家code|string|√|| - |-> countryName|国家中文名称|string|√|| - |-> countryNameEn|国家英文名称|string|√|| - |-> gmtCreate|创建时间|string|√|| - |-> gmtModified|更新时间|string|√|| - |total|数据总量|integer|√|| - - """ + return await aread(filename=TEST_DATA_PATH / "requirements/1.acknowledge.md") @register_tool(tags=["system design", "write trd", "Write a TRD"]) From 04b30386a4ead44b55a02d9069dfbffd5afcbe3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Tue, 25 Jun 2024 18:39:07 +0800 Subject: [PATCH 21/37] feat: +tr --- tests/data/requirements/1.constraint.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/data/requirements/1.constraint.md b/tests/data/requirements/1.constraint.md index af7be1c84..02aa1ffb3 100644 --- a/tests/data/requirements/1.constraint.md +++ b/tests/data/requirements/1.constraint.md @@ -1,3 +1,4 @@ - 基于dingtalk框架编码; - 用java编程语言; -- 接口类的功能要放到implement子类中实现; \ No newline at end of file +- 接口类的功能要放到implement子类中实现; +- 法务中台网址:`https://mock.apipark.cn/m1/4717294-4369585-default` \ No newline at end of file From 1dbe88b96d71b6ed93195b464a95a65ad89179ce Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Tue, 25 Jun 2024 21:34:49 +0800 Subject: [PATCH 22/37] add browser view to memory after executing browser tool --- metagpt/roles/di/role_zero.py | 7 ++++++- metagpt/tools/libs/browser.py | 10 +++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/metagpt/roles/di/role_zero.py b/metagpt/roles/di/role_zero.py index d60ebb91f..39338471a 100644 --- a/metagpt/roles/di/role_zero.py +++ b/metagpt/roles/di/role_zero.py @@ -2,6 +2,7 @@ from __future__ import annotations import inspect import json +import re import traceback from typing import Callable, Literal, Tuple @@ -144,7 +145,11 @@ class RoleZero(Role): ) memory = self.rc.memory.get(self.memory_k) if not self.browser.is_empty_page: - memory.append(UserMessage(cause_by="browser", content=await self.browser.view())) + pattern = re.compile(r"Command Browser\.(\w+) executed") + for index, msg in zip(range(len(memory), 0, -1), memory[::-1]): + if pattern.match(msg.content): + memory.insert(index, UserMessage(cause_by="browser", content=await self.browser.view())) + break context = self.llm.format_msg(memory + [UserMessage(content=prompt)]) # print(*context, sep="\n" + "*" * 5 + "\n") async with ThoughtReporter(enable_llm_stream=True): diff --git a/metagpt/tools/libs/browser.py b/metagpt/tools/libs/browser.py index 9d24d4baf..c6ea71bd5 100644 --- a/metagpt/tools/libs/browser.py +++ b/metagpt/tools/libs/browser.py @@ -3,7 +3,7 @@ from __future__ import annotations import time from typing import Literal, Optional -from playwright.async_api import Browser as _Browser +from playwright.async_api import Browser as Browser_ from playwright.async_api import ( BrowserContext, Frame, @@ -67,7 +67,7 @@ class Browser: def __init__(self): self.playwright: Optional[Playwright] = None - self.browser: Optional[_Browser] = None + self.browser_instance: Optional[Browser_] = None self.browser_ctx: Optional[BrowserContext] = None self.page: Optional[Page] = None self.accessibility_tree: list = [] @@ -80,7 +80,7 @@ class Browser: """Starts Playwright and launches a browser""" if self.playwright is None: self.playwright = playwright = await async_playwright().start() - browser = self.browser = await playwright.chromium.launch(headless=self.headless, proxy=self.proxy) + browser = self.browser_instance = await playwright.chromium.launch(headless=self.headless, proxy=self.proxy) browser_ctx = self.browser_ctx = await browser.new_context() self.page = await browser_ctx.new_page() @@ -88,7 +88,7 @@ class Browser: if self.playwright: playwright = self.playwright self.playwright = None - self.browser = None + self.browser_instance = None self.browser_ctx = None await playwright.stop() @@ -196,7 +196,7 @@ class Browser: async def view(self): observation = parse_accessibility_tree(self.accessibility_tree) - return f"Current _Browser Viewer\n URL: {self.page.url}\nOBSERVATION:\n{observation[0]}\n" + return f"Current Browser Viewer\n URL: {self.page.url}\nOBSERVATION:\n{observation[0]}\n" async def __aenter__(self): await self.start() From 50e92521c27672d690e9298fcab5ae2970a918a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Wed, 26 Jun 2024 14:33:36 +0800 Subject: [PATCH 23/37] =?UTF-8?q?fixbug:=20trd=E4=BC=A0=E5=8F=82=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/write_project_framework.py | 2 +- .../framework/__init__.py | 38 ++- .../framework/evaluate_framework.py | 3 +- .../framework/write_framework.py | 17 ++ .../requirement_analysis/trd/evaluate_trd.py | 4 +- .../requirement_analysis/trd/write_trd.py | 3 +- metagpt/strategy/experience_retriever.py | 218 ++++++++++++++++++ metagpt/tools/libs/software_development.py | 6 +- tests/data/requirements/1.constraint.md | 7 +- 9 files changed, 284 insertions(+), 14 deletions(-) diff --git a/examples/write_project_framework.py b/examples/write_project_framework.py index bf713bbce..8d23695a7 100644 --- a/examples/write_project_framework.py +++ b/examples/write_project_framework.py @@ -163,7 +163,7 @@ async def develop( ) # Save - file_list = await save_framework(dir_data=framework, output_dir=output_dir) + file_list = await save_framework(dir_data=framework, trd=trd, output_dir=output_dir) logger.info(f"Output:\n{file_list}") diff --git a/metagpt/actions/requirement_analysis/framework/__init__.py b/metagpt/actions/requirement_analysis/framework/__init__.py index 96cf5f987..86f6a28e9 100644 --- a/metagpt/actions/requirement_analysis/framework/__init__.py +++ b/metagpt/actions/requirement_analysis/framework/__init__.py @@ -17,12 +17,40 @@ from pydantic import BaseModel from metagpt.actions.requirement_analysis.framework.evaluate_framework import EvaluateFramework from metagpt.actions.requirement_analysis.framework.write_framework import WriteFramework from metagpt.const import DEFAULT_WORKSPACE_ROOT -from metagpt.tools.tool_registry import register_tool from metagpt.utils.common import awrite -@register_tool(tags=["software framework"]) -async def save_framework(dir_data: str, output_dir: Optional[Union[str, Path]] = None) -> List[str]: +async def save_framework( + dir_data: str, trd: Optional[str] = None, output_dir: Optional[Union[str, Path]] = None +) -> List[str]: + """ + Saves framework data to files based on input JSON data and optionally saves a TRD (technical requirements document). + + Args: + dir_data (str): JSON data in string format enclosed in triple backticks ("```json" "...data..." "```"). + trd (str, optional): Technical requirements document content to be saved. Defaults to None. + output_dir (Union[str, Path], optional): Output directory path where files will be saved. If not provided, + a default directory is created based on the current timestamp and a random UUID suffix. + + Returns: + List[str]: List of file paths where data was saved. + + Raises: + Any exceptions raised during file writing operations. + + Notes: + - JSON data should be provided in the format "```json ...data... ```". + - The function ensures that paths and filenames are correctly formatted and creates necessary directories. + + Example: + ```python + dir_data = "```json\n[{\"path\": \"/folder\", \"filename\": \"file1.txt\", \"content\": \"Some content\"}]\n```" + trd = "Technical requirements document content." + output_dir = '/path/to/output/dir' + saved_files = await save_framework(dir_data, trd, output_dir) + print(saved_files) + ``` + """ output_dir = ( Path(output_dir) if output_dir @@ -38,6 +66,10 @@ async def save_framework(dir_data: str, output_dir: Optional[Union[str, Path]] = filename: str content: str + if trd: + pathname = output_dir / "TRD.md" + await awrite(filename=pathname, data=trd) + files = [] for i in items: v = Data.model_validate(i) diff --git a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py index f81da6f5b..74f8a024a 100644 --- a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py +++ b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py @@ -93,9 +93,10 @@ You need to refer to the content of the "Legacy TRD" section to check for any er The content of "Actor, System, External System" provides an explanation of actors and systems that appear in UML Use Case diagram; Information about the external system missing from the "Legacy TRD" can be found in the "Acknowledge" section; Which interfaces defined in "Acknowledge" are used in the "Legacy TRD"? -Do not implement the interface in "Acknowledge" section until it is used in "Legacy TRD"; +Do not implement the interface in "Acknowledge" section until it is used in "Legacy TRD", you can check whether they are the same interface by looking at its ID or url; Parts not mentioned in the "Legacy TRD" will be handled by other TRDs, therefore, processes not present in the "Legacy TRD" are considered ready; "Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet; +Do the parameters of the interface of the external system used in the code comply with it's specifications in 'Acknowledge'? Return a markdown JSON object with: - a "is_pass" key containing a true boolean value if there is not any issue in the "Legacy Outputs"; - an "issues" key containing a string list of natural text about the issues found in the "Legacy Outputs" if any, each issue found must provide a detailed description and include reasons; diff --git a/metagpt/actions/requirement_analysis/framework/write_framework.py b/metagpt/actions/requirement_analysis/framework/write_framework.py index 8bb66e948..2aa03f447 100644 --- a/metagpt/actions/requirement_analysis/framework/write_framework.py +++ b/metagpt/actions/requirement_analysis/framework/write_framework.py @@ -66,6 +66,7 @@ class WriteFramework(Action): {"path":"balabala", "filename":"...", ... """ + acknowledge = await self._extract_external_interfaces(trd=trd, knowledge=acknowledge) prompt = PROMPT.format( use_case_actors=use_case_actors, trd=to_markdown_code_block(val=trd), @@ -93,6 +94,22 @@ class WriteFramework(Action): json.loads(json_data) # validate return json_data + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def _extract_external_interfaces(self, trd: str, knowledge: str) -> str: + prompt = f"## TRD\n{to_markdown_code_block(val=trd)}\n\n## Knowledge\n{to_markdown_code_block(val=knowledge)}\n" + rsp = await self.llm.aask( + prompt, + system_msgs=[ + "You are a tool that removes impurities from articles; you can remove irrelevant content from articles.", + 'Identify which interfaces are used in "TRD"? Remove the relevant content of the interfaces NOT used in "TRD" from "Knowledge" and return the simplified content of "Knowledge".', + ], + ) + return rsp + PROMPT = """ ## Actor, System, External System diff --git a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py index a46a38295..7feb32112 100644 --- a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py +++ b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py @@ -102,7 +102,9 @@ In order to integrate the full upstream and downstream data flow, the "TRD Desig Which interactions from "Interaction Events" correspond to which steps in "TRD Design"? Please provide reasons. Which aspects of "TRD Design" and "Interaction Events" do not align with the descriptions in "User Requirements"? Please provide detailed descriptions and reasons. If the descriptions in "User Requirements" are divided into multiple steps in "TRD Design" and "Interaction Events," it can be considered compliant with the descriptions in "User Requirements" as long as it does not conflict with them; -There is a possibility of missing details in the descriptions of "User Requirements". Any additional steps in "TRD Design" and "Interaction Events" are considered compliant with "User Requirements" as long as they do not conflict with the descriptions provided in "User Requirements". +There is a possibility of missing details in the descriptions of "User Requirements". Any additional steps in "TRD Design" and "Interaction Events" are considered compliant with "User Requirements" as long as they do not conflict with the descriptions provided in "User Requirements"; +If there are interaction events with external systems in "TRD Design", you must explicitly specify the ID of the external interface to use for the interaction events; +Does the sequence of steps in "Interaction Events" cause performance or cost issues? Please provide detailed descriptions and reasons; Return a markdown JSON object with: - a "is_pass" key containing a true boolean value if there is not any issue in the "TRD Design"; - an "issues" key containing a string list of natural text about the issues found in the "TRD Design" if any, each issue found must provide a detailed description and include reasons; diff --git a/metagpt/actions/requirement_analysis/trd/write_trd.py b/metagpt/actions/requirement_analysis/trd/write_trd.py index 94fedb3b2..bad93ea76 100644 --- a/metagpt/actions/requirement_analysis/trd/write_trd.py +++ b/metagpt/actions/requirement_analysis/trd/write_trd.py @@ -206,7 +206,8 @@ The content of "Available External Interfaces" provides the candidate steps, alo 3.1. In the description, use the actor and system names defined in the "Actor, System, External System" section to describe the interactors; 3.2. The content should include the original text of the requirements from "User Requirements"; 3.3. In the TRD, each step can involve a maximum of two participants. If there are more than two participants, the step needs to be further split; - 3.4. In the TRD, each step must include detailed descriptions, inputs, outputs, participants, initiator, and the rationale for the step's existence. The rationale should reference the original text to justify it, such as specifying which interface requires the output of this step as parameters or where in the requirements this step is mandated, etc. + 3.4. In the TRD, each step must include detailed descriptions, inputs, outputs, participants, initiator, and the rationale for the step's existence. The rationale should reference the original text to justify it, such as specifying which interface requires the output of this step as parameters or where in the requirements this step is mandated, etc.; + 3.5. In the TRD, if you need to call interfaces of external systems, you must explicitly specify the interface IDs of the external systems you want to call; """ INCREMENTAL_PROMPT = """ diff --git a/metagpt/strategy/experience_retriever.py b/metagpt/strategy/experience_retriever.py index a43b94ce0..4ba4652fd 100644 --- a/metagpt/strategy/experience_retriever.py +++ b/metagpt/strategy/experience_retriever.py @@ -19,6 +19,224 @@ class DummyExpRetriever(ExpRetriever): EXAMPLE: str = "" +class TRDAllExpRetriever(ExpRetriever): + def retrieve(self, context: str = "") -> str: + return self.EXAMPLE + + EXAMPLE: str = """ +## example 1 +User Requirement: Given some user requirements, write a software framework. +Explanation: Given a complete user requirement, to write a TRD and software framework, you must follow all of the following steps to complete the TRD output required by the user: 1. Call 'write_trd' to generate TRD; 2. Call 'write_framework' to implement TRD into the software framework. +```json +[ + { + "command_name": "write_trd_and_framework", + "task_id": "1", + "dependent_task_ids": [], + "instruction": "Execute `write_trd_and_framework` to write a TRD and software framework based on user requirements", + "args": { + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + "additional_technical_requirements": "These are additional technical requirements, balabala..." + } + } +] +``` +## example 2 +User Requirement: Given some user requirements, write a software framework. +Explanation: Given a complete user requirement, to write a software framework, you must follow all of the following steps to complete the TRD output required by the user: 1. Call 'write_trd' to generate TRD; 2. Call 'write_framework' to implement TRD into the software framework. +```json +[ + { + "command_name": "write_trd", + "task_id": "1", + "dependent_task_ids": [], + "instruction": "Execute `write_trd` to write the TRD based on user requirements", + "args": { + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + } + }, + { + "command_name": "write_framework", + "task_id": "2", + "dependent_task_ids": ["1"], + "instruction": "Execute `write_framework` to write the framework based on the TRD", + "args": { + "use_case_actors": "These are actors involved in the use case, balabala...", + "trd": " returned by `write_trd`", + "additional_technical_requirements": "These are additional technical requirements, balabala..." + } + } +] +``` +## example 3 +User Requirement: Given some user requirements, write a TRD, and implement the TRD within a software framework. +Explanation: + Given a complete requirement, 要写TRD需要follow如下步骤: + 1. 调用`CompressExternalInterfaces.run`,从acknowledgement中抽取external interfaces的信息; + 2. 按顺序执行如下步骤: + 2.1. 执行`DetectInteraction.run`; + 2.2. 执行`WriteTRD.run`; + 2.3. 执行`EvaluateTRD.run`; + 2.4. 检查`EvaluateTRD.run`的结果: + 2.4.1. 如果`EvaluateTRD.run`的结果被判定为pass,则执行步骤3; + 2.4.2. 如果`EvaluateTRD.run`的结果被判定为deny,则继续执行步骤2; + 3. 按顺序执行如下步骤: + 3.1. 执行`WriteFramework.run`; + 3.2. 执行`EvaluateFramework.run`; + 3.3. 检查`EvaluateFramework.run`的结果: + 3.3.1. 如果`EvaluateFramework.run`的结果被判定为pass,则执行步骤4; + 3.3.2. 如果`EvaluateFramework.run`的结果被判定为deny,则继续执行步骤3; + 3.3.3. 如果已经重复执行步骤3超过9次,则执行步骤4; + 4. 执行`save_framework`,将`WriteFramework.run`的结果保存下来; +```json +[ + { + "command_name": "CompressExternalInterfaces.run", + "args": { + "task_id": "1", + "dependent_task_ids": [], + "instruction": "Execute `DetectInteraction.run` to extract external interfaces information from acknowledgement.", + "acknowledge": "## Interfaces\n balabala..." + } + }, + { + "command_name": "DetectInteraction.run", + "args": { + "task_id": "2", + "dependent_task_ids": ["1"], + "instruction": "Execute `DetectInteraction.run` to extract external interfaces information from acknowledgement.", + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + } + }, + { + "command_name": "WriteTRD.run", + "args": { + "task_id": "3", + "dependent_task_ids": ["2"], + "instruction": "Execute `WriteTRD.run` to write TRD", + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + "available_external_interfaces": " returned by `CompressExternalInterfaces.run`", + "interaction_events": " returned by `DetectInteraction.run`" + } + }, + { + "command_name": "EvaluateTRD.run", + "args": { + "task_id": "4", + "dependent_task_ids": ["3"], + "instruction": "Execute `EvaluateTRD.run` to evaluate the TRD", + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + "available_external_interfaces": " returned by `CompressExternalInterfaces.run`", + "interaction_events": "", + "trd": " returned by `EvaluateTRD.run`" + } + }, + { + "command_name": "DetectInteraction.run", + "args": { + "task_id": "5", + "dependent_task_ids": ["4"], + "instruction": "Execute `DetectInteraction.run` to extract external interfaces information from acknowledgement.", + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + "evaluation_conclusion": " returned by `EvaluateTRD.run`" + } + }, + { + "command_name": "WriteTRD.run", + "args": { + "task_id": "6", + "dependent_task_ids": ["5"], + "instruction": "Execute `WriteTRD.run` to write TRD", + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + "available_external_interfaces": " returned by `CompressExternalInterfaces.run`", + "interaction_events": " returned by `DetectInteraction.run`", + "previous_version_trd": " returned by `WriteTRD.run`" + } + }, + { + "command_name": "EvaluateTRD.run", + "args": { + "task_id": "7", + "dependent_task_ids": ["6"], + "instruction": "Execute `EvaluateTRD.run` to evaluate the TRD", + "user_requirements": "This is user requirement balabala...", + "use_case_actors": "These are actors involved in the use case, balabala...", + "available_external_interfaces": " returned by `CompressExternalInterfaces.run`", + "interaction_events": " returned by `DetectInteraction.run`", + "trd": " returned by `WriteTRD.run`", + } + }, + { + "command_name": "WriteFramework.run", + "args": { + "task_id": "8", + "dependent_task_ids": ["7"], + "instruction": "Execute `WriteFramework.run` to write a software framework according to the TRD", + "use_case_actors": "These are actors involved in the use case, balabala...", + "trd": " returned by `WriteTRD.run`", + "acknowledge": "## Interfaces\n balabala...", + "additional_technical_requirements": "These are additional technical requirements, balabala...", + } + }, + { + "command_name": "EvaluateFramework.run", + "args": { + "task_id": "9", + "dependent_task_ids": ["8"], + "instruction": "Execute `EvaluateFramework.run` to evaluate the software framework returned by `WriteFramework.run`", + "use_case_actors": "These are actors involved in the use case, balabala...", + "trd": " returned by `WriteTRD.run`", + "acknowledge": "## Interfaces\n balabala...", + "legacy_output": " returned by `WriteFramework.run`", + "additional_technical_requirements": "These are additional technical requirements, balabala...", + } + }, + { + "command_name": "WriteFramework.run", + "args": { + "task_id": "10", + "dependent_task_ids": ["9"], + "instruction": "Execute `WriteFramework.run` to write a software framework according to the TRD", + "use_case_actors": "These are actors involved in the use case, balabala...", + "trd": " returned by `WriteTRD.run`", + "acknowledge": "## Interfaces\n balabala...", + "additional_technical_requirements": "These are additional technical requirements, balabala...", + } + }, + { + "command_name": "EvaluateFramework.run", + "args": { + "task_id": "11", + "dependent_task_ids": ["10"], + "instruction": "Execute `EvaluateFramework.run` to evaluate the software framework returned by `WriteFramework.run`", + "use_case_actors": "These are actors involved in the use case, balabala...", + "trd": " returned by `WriteTRD.run`", + "acknowledge": "## Interfaces\n balabala...", + "legacy_output": " returned by `WriteFramework.run`", + "additional_technical_requirements": "These are additional technical requirements, balabala...", + } + }, + { + "command_name": "save_framework", + "args": { + "task_id": "12", + "dependent_task_ids": ["11"], + "instruction": "Execute `save_framework` to save the software framework returned by `WriteFramework.run`", + "dir_data": " returned by `WriteFramework.run`", + } + } +] +``` + """ + + class TRDToolExpRetriever(ExpRetriever): """A TRD-related experience retriever that returns empty string.""" diff --git a/metagpt/tools/libs/software_development.py b/metagpt/tools/libs/software_development.py index a527c5806..431766343 100644 --- a/metagpt/tools/libs/software_development.py +++ b/metagpt/tools/libs/software_development.py @@ -159,7 +159,7 @@ async def write_framework( trd: str, additional_technical_requirements: str, output_dir: Optional[str] = "", - investment: float = 15.0, + investment: float = 20.0, context: Optional[Context] = None, ) -> str: """ @@ -220,7 +220,7 @@ async def write_framework( is_pass = evaluation.is_pass evaluation_conclusion = evaluation.conclusion - file_list = await save_framework(dir_data=framework, output_dir=output_dir) + file_list = await save_framework(dir_data=framework, trd=trd, output_dir=output_dir) logger.info(f"Output:\n{file_list}") return "## Software Framework" + "".join([f"\n- {i}" for i in file_list]) @@ -230,7 +230,7 @@ async def write_trd_and_framework( use_case_actors: str, user_requirements: str, additional_technical_requirements: str, - investment: float = 15.0, + investment: float = 17.0, output_dir: Optional[str] = "", context: Optional[Context] = None, ) -> str: diff --git a/tests/data/requirements/1.constraint.md b/tests/data/requirements/1.constraint.md index 02aa1ffb3..b8c42be63 100644 --- a/tests/data/requirements/1.constraint.md +++ b/tests/data/requirements/1.constraint.md @@ -1,4 +1,3 @@ -- 基于dingtalk框架编码; -- 用java编程语言; -- 接口类的功能要放到implement子类中实现; -- 法务中台网址:`https://mock.apipark.cn/m1/4717294-4369585-default` \ No newline at end of file +- 用javascript语言, 法务查询者与国际小超人钉钉小程序之间UI用web; +- 法务中台网址:`https://mock.apipark.cn/m1/4717294-4369585-default`; +- 写代码时,不要单元测试代码; \ No newline at end of file From bf6254735aa3dd81c8a6d8578eee64a0eb8d2802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Wed, 26 Jun 2024 16:28:40 +0800 Subject: [PATCH 24/37] feat: +java constraint --- tests/data/requirements/1.constraint.java.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 tests/data/requirements/1.constraint.java.md diff --git a/tests/data/requirements/1.constraint.java.md b/tests/data/requirements/1.constraint.java.md new file mode 100644 index 000000000..1c7b0f902 --- /dev/null +++ b/tests/data/requirements/1.constraint.java.md @@ -0,0 +1,5 @@ +- 基于dingtalk框架开发,用java语言; +- 人机交互发生在法务查询者和国际小超人钉钉小程序之间; +- 接口类的功能要放到implement子类中实现; +- 法务中台网址:`https://mock.apipark.cn/m1/4717294-4369585-default` +- 写代码时,不要单元测试代码; \ No newline at end of file From d1834260e08c0dde4d82fa21a9d8be21c5a4746b Mon Sep 17 00:00:00 2001 From: zhanglei Date: Wed, 26 Jun 2024 17:38:44 +0800 Subject: [PATCH 25/37] =?UTF-8?q?update:=20LLMType=E5=A2=9E=E5=8A=A0openro?= =?UTF-8?q?uter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- metagpt/configs/llm_config.py | 1 + metagpt/provider/openai_api.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/metagpt/configs/llm_config.py b/metagpt/configs/llm_config.py index af8f56372..39f6e61f1 100644 --- a/metagpt/configs/llm_config.py +++ b/metagpt/configs/llm_config.py @@ -31,6 +31,7 @@ class LLMType(Enum): MOONSHOT = "moonshot" MISTRAL = "mistral" YI = "yi" # lingyiwanwu + OPEN_ROUTER = "open_router" def __missing__(self, key): return self.OPENAI diff --git a/metagpt/provider/openai_api.py b/metagpt/provider/openai_api.py index 120c1d3cb..0263da989 100644 --- a/metagpt/provider/openai_api.py +++ b/metagpt/provider/openai_api.py @@ -40,7 +40,8 @@ from metagpt.utils.token_counter import ( ) -@register_provider([LLMType.OPENAI, LLMType.FIREWORKS, LLMType.OPEN_LLM, LLMType.MOONSHOT, LLMType.MISTRAL, LLMType.YI]) +@register_provider([LLMType.OPENAI, LLMType.FIREWORKS, LLMType.OPEN_LLM, LLMType.MOONSHOT, LLMType.MISTRAL, LLMType.YI, + LLMType.OPEN_ROUTER]) class OpenAILLM(BaseLLM): """Check https://platform.openai.com/examples for examples""" From 67b1eaec8698ecbb1c0cb526d8eaf32a58ecb921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Wed, 26 Jun 2024 22:14:57 +0800 Subject: [PATCH 26/37] feat: +max_loop --- metagpt/tools/libs/software_development.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/metagpt/tools/libs/software_development.py b/metagpt/tools/libs/software_development.py index 431766343..37b166495 100644 --- a/metagpt/tools/libs/software_development.py +++ b/metagpt/tools/libs/software_development.py @@ -161,6 +161,7 @@ async def write_framework( output_dir: Optional[str] = "", investment: float = 20.0, context: Optional[Context] = None, + max_loop: int = 20, ) -> str: """ Run the action to generate a software framework based on the provided TRD and related information. @@ -172,6 +173,7 @@ async def write_framework( output_dir (str, optional): Path to save the software framework files. Default is en empty string. investment (float): Budget. Automatically stops optimizing TRD when the budget is overdrawn. context (Context, optional): The context configuration. Default is None. + max_loop(int, optional): Acts as a safety exit valve when cost statistics fail. Default is 20. Returns: str: The generated software framework as a string of pathnames. @@ -197,6 +199,7 @@ async def write_framework( framework = "" evaluation_conclusion = "" acknowledgement = await mock_asearch_acknowledgement(use_case_actors) # Replaced by acknowledgement_repo later. + loop_count = 0 while not is_pass and (context.cost_manager.total_cost < context.cost_manager.max_budget): try: framework = await write_framework.run( @@ -219,6 +222,10 @@ async def write_framework( ) is_pass = evaluation.is_pass evaluation_conclusion = evaluation.conclusion + loop_count += 1 + logger.info(f"Loop {loop_count}") + if context.cost_manager.total_cost < 1 and loop_count > max_loop: + break file_list = await save_framework(dir_data=framework, trd=trd, output_dir=output_dir) logger.info(f"Output:\n{file_list}") @@ -236,6 +243,7 @@ async def write_trd_and_framework( ) -> str: context = context or Context(cost_manager=CostManager(max_budget=investment)) trd = await write_trd(use_case_actors=use_case_actors, user_requirements=user_requirements, context=context) + return await write_framework( use_case_actors=use_case_actors, trd=trd, From 9dc8d7307bb2a66a24a766ecbdcb7ce165d5f5b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Thu, 27 Jun 2024 12:52:01 +0800 Subject: [PATCH 27/37] feat: +prompt --- .../requirement_analysis/framework/evaluate_framework.py | 3 ++- metagpt/actions/requirement_analysis/trd/evaluate_trd.py | 3 ++- tests/data/requirements/1.constraint.md | 5 +++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py index 74f8a024a..d0aaf012c 100644 --- a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py +++ b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py @@ -97,9 +97,10 @@ Do not implement the interface in "Acknowledge" section until it is used in "Leg Parts not mentioned in the "Legacy TRD" will be handled by other TRDs, therefore, processes not present in the "Legacy TRD" are considered ready; "Additional Technical Requirements" specifies the additional technical requirements that the generated software framework code must meet; Do the parameters of the interface of the external system used in the code comply with it's specifications in 'Acknowledge'? +Is there a lack of necessary configuration files? Return a markdown JSON object with: - a "is_pass" key containing a true boolean value if there is not any issue in the "Legacy Outputs"; -- an "issues" key containing a string list of natural text about the issues found in the "Legacy Outputs" if any, each issue found must provide a detailed description and include reasons; +- an "issues" key containing a string list of natural text about the issues that need to addressed, found in the "Legacy Outputs" if any exits, each issue found must provide a detailed description and include reasons; - a "conclusion" key containing the evaluation conclusion; - a "misalignment" key containing the judgement detail of the natural text string list about the misalignment with "Legacy TRD"; """ diff --git a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py index 7feb32112..5fc1ca06c 100644 --- a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py +++ b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py @@ -105,9 +105,10 @@ If the descriptions in "User Requirements" are divided into multiple steps in "T There is a possibility of missing details in the descriptions of "User Requirements". Any additional steps in "TRD Design" and "Interaction Events" are considered compliant with "User Requirements" as long as they do not conflict with the descriptions provided in "User Requirements"; If there are interaction events with external systems in "TRD Design", you must explicitly specify the ID of the external interface to use for the interaction events; Does the sequence of steps in "Interaction Events" cause performance or cost issues? Please provide detailed descriptions and reasons; +It is problematic if the data stream composed of input/output contains passive or irrelevant data; Return a markdown JSON object with: - a "is_pass" key containing a true boolean value if there is not any issue in the "TRD Design"; -- an "issues" key containing a string list of natural text about the issues found in the "TRD Design" if any, each issue found must provide a detailed description and include reasons; +- an "issues" key containing a string list of natural text about the issues that need to be addressed, found in the "TRD Design" if any exist, each issue found must provide a detailed description and include reasons; - a "conclusion" key containing the evaluation conclusion; - a "correspondence_between" key containing the judgement detail of the natural text string list about the correspondence between "Interaction Events" and "TRD Design" steps; - a "misalignment" key containing the judgement detail of the natural text string list about the misalignment with "User Requirements"; diff --git a/tests/data/requirements/1.constraint.md b/tests/data/requirements/1.constraint.md index b8c42be63..576df59bf 100644 --- a/tests/data/requirements/1.constraint.md +++ b/tests/data/requirements/1.constraint.md @@ -1,3 +1,4 @@ -- 用javascript语言, 法务查询者与国际小超人钉钉小程序之间UI用web; +- Using pure javascript without any third-party package, 法务查询者与国际小超人钉钉小程序之间UI用web; - 法务中台网址:`https://mock.apipark.cn/m1/4717294-4369585-default`; -- 写代码时,不要单元测试代码; \ No newline at end of file +- 写代码时,不要单元测试代码; +- 如果使用了接口 ID 6, 它的返回结果要去重复项; \ No newline at end of file From 742ff0e80a95a3cea87b8e8e442a68aa060d9ca9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Thu, 27 Jun 2024 14:35:05 +0800 Subject: [PATCH 28/37] feat: +pic2txt --- .../requirement/__init__.py | 0 .../requirement/pic2txt.py | 78 ++++++++++++++++++ metagpt/provider/base_llm.py | 2 +- .../requirements/1.original_requirement.txt | 30 +++++++ tests/data/requirements/pic/1.png | Bin 0 -> 385665 bytes tests/data/requirements/pic/2.png | Bin 0 -> 210463 bytes tests/data/requirements/pic/3.png | Bin 0 -> 359948 bytes tests/data/requirements/pic/4.png | Bin 0 -> 86204 bytes tests/data/requirements/pic/5.png | Bin 0 -> 95678 bytes .../requirement/__init__.py | 0 .../requirement/test_pic2txt.py | 28 +++++++ 11 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 metagpt/actions/requirement_analysis/requirement/__init__.py create mode 100644 metagpt/actions/requirement_analysis/requirement/pic2txt.py create mode 100644 tests/data/requirements/1.original_requirement.txt create mode 100644 tests/data/requirements/pic/1.png create mode 100644 tests/data/requirements/pic/2.png create mode 100644 tests/data/requirements/pic/3.png create mode 100644 tests/data/requirements/pic/4.png create mode 100644 tests/data/requirements/pic/5.png create mode 100644 tests/metagpt/actions/requirement_analysis/requirement/__init__.py create mode 100644 tests/metagpt/actions/requirement_analysis/requirement/test_pic2txt.py diff --git a/metagpt/actions/requirement_analysis/requirement/__init__.py b/metagpt/actions/requirement_analysis/requirement/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/metagpt/actions/requirement_analysis/requirement/pic2txt.py b/metagpt/actions/requirement_analysis/requirement/pic2txt.py new file mode 100644 index 000000000..20ed1028a --- /dev/null +++ b/metagpt/actions/requirement_analysis/requirement/pic2txt.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +@Time : 2024/6/27 +@Author : mashenquan +@File : pic2txt.py +""" +from typing import List + +from tenacity import retry, stop_after_attempt, wait_random_exponential + +from metagpt.actions import Action +from metagpt.logs import logger +from metagpt.tools.tool_registry import register_tool +from metagpt.utils.common import encode_image, general_after_log, to_markdown_code_block + + +@register_tool(include_functions=["run"]) +class Pic2Txt(Action): + """Pic2Txt deal with the following situations: + 1. Given a picture about the user requirements, write out the textual user requirements. + """ + + async def run( + self, + *, + image_paths: List[str], + textual_user_requirement: str = "", + acknowledge: str = "", + legacy_output: str = "", + evaluation_conclusion: str = "", + additional_technical_requirements: str = "", + ) -> str: + base64_images = [encode_image(i) for i in image_paths] + prompt = PROMPT.format( + textual_user_requirement=textual_user_requirement, + acknowledge=to_markdown_code_block(val=acknowledge), + legacy_output=to_markdown_code_block(val=legacy_output), + evaluation_conclusion=evaluation_conclusion, + additional_technical_requirements=to_markdown_code_block(val=additional_technical_requirements), + ) + return await self._write(prompt, base64_images=base64_images) + + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def _write(self, prompt: str, base64_images: List[str]) -> str: + rsp = await self.llm.aask(prompt, images=base64_images) + return rsp + + +PROMPT = """ +## Textual User Requirements +{textual_user_requirement} + +## Acknowledge +{acknowledge} + +## Legacy Outputs +{legacy_output} + +## Evaluation Conclusion +{evaluation_conclusion} + +## Additional Technical Requirements +{additional_technical_requirements} + +--- +You are a tool that generates an intact textual user requirements given a few of textual fragments of user requirements and some fragments of UI pictures. +The content of "Textual User Requirements" provides a few of textual fragments of user requirements; +The content of "Acknowledge" provides additional information related to the user requirements; +"Legacy Outputs" contains the intact textual user requirements generated by you last time, which you can improve by addressing the issues raised in "Evaluation Conclusion"; +"Additional Technical Requirements" specifies the additional technical requirements that the generated textual user requirements must meet; +你需要将图片中的内容转换成文字描述,合并到"Textual User Requirements",以生成完整的用户需求; +Return the intact textual user requirements according to the given fragments of the user requirement of "Textual User Requirements" and the UI pictures; +""" diff --git a/metagpt/provider/base_llm.py b/metagpt/provider/base_llm.py index db2757ec3..4489c56c5 100644 --- a/metagpt/provider/base_llm.py +++ b/metagpt/provider/base_llm.py @@ -65,7 +65,7 @@ class BaseLLM(ABC): # image url or image base64 url = image if image.startswith("http") else f"data:image/jpeg;base64,{image}" # it can with multiple-image inputs - content.append({"type": "image_url", "image_url": url}) + content.append({"type": "image_url", "image_url": {"url": url}}) return {"role": "user", "content": content} def _assistant_msg(self, msg: str) -> dict[str, str]: diff --git a/tests/data/requirements/1.original_requirement.txt b/tests/data/requirements/1.original_requirement.txt new file mode 100644 index 000000000..7f6b89a1a --- /dev/null +++ b/tests/data/requirements/1.original_requirement.txt @@ -0,0 +1,30 @@ +3.1.功能总述 + +国际小超人钉钉小程序一期支持法务文档一键查看、各国法律意见检索、申请合同模板三个功能。 + +1、法务文档提供入口,用户点击后一键进入语雀查看,后续法务在语雀中进行维护。——pc和手机 + +2、各国法律意见在钉钉端可进行多维度检索和查看。——pc和手机【待定】 + +3、bd可以在钉钉端申请合同模板,提交申请后即可以下载模板。——可以pc和手机申请,但是下载只能通过pc + +小程度底部有3个tab,首页、模板、我的 + +3.2.首页 + +首页有两个分区,上面部分是法律意见检索栏。 + +用户第一次进入小程序展示引导页,以后进入不再展示,点击「我知道了」引导页消失。 + +【首页】 +![](1.png) +【按国家名维度搜索】 + +用户在搜索框中进行检索时采用typeahead,只能下拉选择数据库中有的国家名称。 +![](2.png) +【检索结果】 + +可根据滚筒切换业务线 +![](3.png) +![](4.png) +![](5.png) \ No newline at end of file diff --git a/tests/data/requirements/pic/1.png b/tests/data/requirements/pic/1.png new file mode 100644 index 0000000000000000000000000000000000000000..58fca1e943421208171e316e69de72398d2b8265 GIT binary patch literal 385665 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

@?OE2f%x+7d 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ü{Vwj7cVs;I`eO`i5Ij8p& zatUI2V5JB(aB3Lufp{&_cyWdr)~Vf#615V$2|Xg#0f-tKIT8e)h@w}C<=Xa6ggv|` zL{QG}4PH70#*yjNCWWx-seZu&e4U>f+a=lkM^9K2R&JG3)U+$JvG@X4J*09cu96(@ zY1iVtyA|McWufEGW5(7Kj=VRwfZJMwX%hIN<#CU&xbHz63Jfy2o&j90^2uKw&!yCO zI^Vs45p8Ikmi=YpDYq`T4ha$UO=_>+T6~bw2+qECEjsCv_;^&Lw|TGIh);S|u=SYC zp@JGyJsZ+{yQQcSfMx3~)}E!ak&v$aH%}i=${bn_YtiHlwt9Bw)hOjyMqZ_Aov1JE z$WyvJ<`WZGiQjTCn9rP~*D@`0w1Xw2b|+xlDhRbKUjog&gE9*Tc`_>HG9Et*+eh3b z(gAg%slVKIfO=uOO4qK*aoK888m+(W`Gw|`d#qgxTYN$R&De3(-~4>UBcxBrv$ez0 z7FhF9O19aRJY>3M+42QJxJyRm{1Q#e?)M?=$l>&o<4yr@tt+(w6RzLsVXv^XLn-zJ zhV@mZCyUolN2Biqw?aCw`ChYvoon8FI_aZr`fH0B&#v zAJxpM56#>)$Of#m0^$Zj@xHsWaLfr0Z9*t*g2$&aU1K9-5Q~H#Dl zQDRq0^W58>xF~Z*pmKkWhcR$+%qySKlKa)w8)Qw5YqS{uE7cd8W4Ats`VNk>GMsuQ z2THuZ*fsm!GRXdtJ}d~J-qznj)F1Ixnl%8Ap0Q?(1%n$ze?@|bZq5vGlB8j5&v&Cd zp0oLLQG2!pqPN!BpU+VpX_%ZO+81DWvs=fW$+?B+=ET+RiGt%i3_pZwfdR{a&%25v2*9q=Kx~pxsXX^wlvSF@Dj$@l@ zx>vnko{vywK6`D+v3YY#CMcW#+SI%lRM%}ZJD%WhYA)W;x!1UnH+dw!Y;1iVqLngzA?V+QNAi07hI44ow0q8p{ z2v1}OoS)GRXgnO*pAy3^9p@@{m5J=6@e(MqCFYNE? zDiGTeg8+lc;*lZeG$A|XS)WK0g;mB!z2~kF34=>ZjX24pa!YK`Q2|VplcqVGMjl=) zn^6=5Vz595I#K0K*37Qf{l=0#gbJd#&q9j`~VtI#ee$Tv$EWT^UW{9p2_gs;FU~aDef?t0UDQhVZ0E7s%|3Fe2e|;V)(IjJ&TvKuAm@`=1_OGZT#qm_!X$ zT6gz2;3nQmf0Lto@7(hkxGrA>$~W$%XJtuakn|Y$-Pu%y z71?M>7bAFB@p8qUy!wquxVCoi&WPuHX3}nbHDS1wed*n2pM`>3crT)E{p?qO^0^o? zNm!$jWt*O!xw5c3pH1B(VCKQ=&QU)&C^?j~@_Omrd;N0H$7Jv{cqq@4wEMyPTEaJ? z1)oaw2SV^Gjxr_QvodgS)upUfNswP>%apbX_C;|h)RY`Ku9U<8q~g7{Oz|4eB-3w$f7Duy6#V4o}v zyOeAtxa&XnJPMy^im6*n$)gi3>fpVw&32j^*VA0TD}5<3QJdA8A&ETzCRw0f`Dn6H z-9ipZpU<7GSd8zHpR^XFr;)bn54%~=mZn(x_AQe>@NTWTl3-^+9NVpC?9kZLh5~NU z@Z&pGIub3O)JUgi(pB=4&TM_^2Zwj!927!#RZJ|To?gDK7!Ths<~9jXOl#{?7Lc|( zYdn{8{<+ouIx32Y?3UE@bccvlr`h%CKFiAb^t=10uI_GDGIsNmd?4;B_=e}cRl5e9 z8^nGb`alN21LOTMhFak@b+QRCw2Zuq_p*MFl|aAwhmuQ@YmL0wL5+-P>m(YK-m3;x zGwzv02xBP&`h4;tNNB-;tdaT{0YfGpGppu}&AC3SGu<_u*?P}rn9*sgdm~4~AZ3eH zo*xq5aNfC-5v0##_#Dg|Q+G*|A5H92v`r!9XrW1axR8%)$$)M z^}A%$K+*R#w6y5aO3iOYY^p?<1x!})jUIw-2Qy*X5Z0fQ6Q9UK<3#Ns(cD_I<6x2x z`QmN*QhaWcPN(G0m``P8lElKSATs3`FWJ?7qw7+O|6T%HqKd) z(jn!w{zGgLWQ&mdpJ5R^eP%YDRR>P-V|wIpaYX+0BpCE-P3B~k(Qtbtk3)!wNb2zV z^41m<489D80l`A}Oczi;h@=fdPB8PVnZSdi(?9?P}4B2ww;pe6k zk4IL!*^!7h`TAvRU#Tp)_+;uYCbH}|+34>sUT~oO)UBS{ytbv;8Z|Bo#2>y2>@69Zzt zWRz%h*wGIaAKbiUxlE{xdu^Z7Ue#x(IBhzwdihbSAxeH4Yg5(m9Xyso#%JLCLj(uH zQ`}n5#NBfYk&m;`^ysM-kb8AGNLXu@)4B703XFGPU?B6;rwdv}y%cz^Opt&Rn=~0lWV;kT0JFP=3(?Dbc)$cTY@t5mtQ9KDULUHPhaP z$e)AUO5;S;&}gRKrJ{IqSwnC-2yo>r1VrozuTv!T+*ruHBdpSsv@lU3m5 z>k$beWik{TudL)YfX`AGE?6NRbmiyp4XC_}!((K=3E2lS@!xv^poNrdY|=lMf4?Zb zNiK3|#hbf38NxtUy?f+hl5=Uq$dwEhBe!mzS%;lp^Qbo2P5i zrN)17te5zoW8S@JSgU>l2Jy7Aj@vrF$c7x4_b+|rGl{m9aJJucR1A^#(rksP&Tb+U$`I|loAx>7sl0Qo?gfbYqXplX4Nd5f=}qv8dYzQi(2Ut8+l^>4X0KU2I@zN-OHgX}wpH2H`X$%s=lbn$o~i z)U9sxd|FrZr{TA@j?&hrk7--qZ8}W5tO$q0U&rzwfVFTwh+At%ep=_bJe##(GBryo zj=(R3 z8XyH(TSQ;@)rH6HE*dY*7wAq7vreqJAUM~hkUA=jzBrd`sg?U3)~Ob{s&D$j=QXt_ zhN7jNOlt(hFWI9?4t*z2cRBs=T|DweMlM?2My(D@)z{J<-q_^{@fFdyxrl&6&+NYG zJAIttCp&tB{OOLL;zrNUIHs34!J|%_IHr5Job@r+uH3Kwiq+%g6`6|iK53=?@-&be zz}~4Liy_MmnWwXvh*k8$yAwVnt6R&3E=V_{{5b zTur{stT7qcpuNYVPHX3dTOjYrzRh7BnLK*K*SA7vv|+uG-Z1Gp$`~`W2$!7j!e{EV zg)TLnpq8X*`Q+FLGKJ2>N&A!@V5yO0gtYKhbto;oZhN<<(!MkTpMsMVtukeh?6Cs% zH{+)v;nPx8s&rP)TU@v8IKk_=m;}8wzi_Ls%ZOy=Hg&q{>hn6IY`TqgORvRQk?(Et zwFU2RasgM;;C}0!GY5FZNw{X^^ua zs*4JTBR*2NDOdQ{HtE_sVGH#-qbeK}L@?#`frgypbVt=T9itdw_~w_FI3#i$`M9iS zAzbJDg3t03eS67rM;L!Ti`wqSeM25%&isZH$FKN&FbsD#N{l}Mtyi-&^rg0@0?nFM z9!x~2(M3jbVIv902|;i(Cp{r&Qcj}c-%r06pr>WU$G^gxk(ASQdmQ*;s@prj!Y%>` z);2a$2I@30na$UtBz*KV?jY5{?t$tvC=ALXY?5RWB2AA`F9=b9V}7Lv z@K}3;M5FwzJ#VPF`g3_xT9#Cr@ATOkAoGE%2tSGl`<5QFz2sJT zmPf|`4B)Fi1PT6>Tbfft*Wue^bW%C&Z!4|)AX2?81+V%8NC{b zIHdI^j>B#LbC2)j;s-swA5*Q3xq=mfrqhCJj-e@OK3B4i5)M=AjYi()3bH9y1wdf6 z2UOj_UJK_@u8S zyx-N*G3clB|GLe@j@*ew=77F^(m}irnqSl6Bz|5b;WYm! z44n~oADk&}_CsZ<$i?6>bPk$ig7667;%(i_G?_TUr`8uf`0qR`Q^IcsJ5ftMF8iXpgkwjk3az{uE> zO=2*mk)CO{Wb*)*ZB%ZRRdl2t{=9E;)=$yBV@tziLQHTI?*|OfQ=_zAnfEbe-xW^h zY?6L_tEMGQrBx=riPY9gweRS_F4Ar!E;rjK+HRWi%6YmUZ~PR`SL+neHY_QEXbGkTsIUSf&a?(Fw> z7M{M`{mHs1+klk(Ilb&ZJ35qnMtEed@_=pi=Fp>wc&|lDW2#m^* zMktdqlyk$`#>R&1-pqb~{%ERDU;rgBGE5h^F^NxT&_5GzQ$x&W6c+C!t1GIgs37>X zOcbJpl2xYx+PyBX{;^@;iB(o^ged=O`=QdVKp1}t&uMgGl4DrEU-PO^0PFJHTrNJa z!cms^JZvhtk!3d&cJYI{@{~8cS{_SRpmA;Tm1eT$l9apOn z_Tp`&6QI!Q)Yd8(`omwkG?iHm#*xyt?_s_## zB#w9|oBukyXCaD5hH^5aQQ*e1sVBc>S$ysIULF z*Dzc`A{$(x?fwj?sj$O)s#bPM>~+l4Ojg21SR(#@Ua}QntMy9baw2stEGGR%h~TyA zRtkIECQiTx4e|?+hd`uf1XG}cZ6(mM?Pg19vt^KCNcuF%M{83KOO`2LSWxg*o(=7p zq#j7bG*IL~J^fzV$J44dY5g-%y&{7lJ&*0o_06R54Pf90{_N^Pt=}*Wo%#4S7S}Zn zi2_NAHEcb`NS`!-#dmV;fw;^b4W>=Fy?3pRD{#Z0vvoEnO)(Vh5sy6F5p`QKkn(O= z1PQPhP%`zyzGMfs*Pu*oSS`P$7_FF9GWAw{Q2}6;g3G1z0-DjZB!cD}phTq)gjCFy zJzBlwXXMS0VA>uTznY72vX>{Oj^kp(X|kv4vK-vy+1v(6&+Aru>2nz$OpS(icFg;x zLHVw}US5_)h#uN`~4X%U-%Z%yp zXFc=+sO_Tu$gVaSzxO1sF*yeTfAQynAb`@47R;&3a*Bxw^3^;{+Mq_dHy^Ic9G&Bf zLE8oEdEBr#DnMlWp(1ohNS;Y};cWN1vVEaMv;c9G22iRu37b~AJO|+qmDX8i2yfb4 zAdl{Oy1wCx@kw>4LS*_-NWWoP%~z1*X#$|Imr^?uFF}c15o#RTTMQ<))WmCH<(;i; zZ7F-4@Sekpf0psIrvxI(6$wn#1!b9C4KiJTqZGJ;(eObDJsG;EiD1@6v@Gd4NW8tF z9u&X`xqQR!cD~wA&WY7}wxY7KvK0gIZJLDS$~7I{mw-{G82gk$@Sq%riH4z}-H#tX za9M8Uyo@6tu!_B&su~A_l8 zu|TDMn_rI4GAkyeC|R<-8_Waa75%g@wLb1TG)vCAb{pzBYf-U(**FYq*e^4?s5j!a z^=Totb*nEjVWy~a`V^(LIjh*KJ$FtbK?N`={6Arizj+f+v#N?I5urE2AMhVCG^%+# z+-8&Mvy|9MS*ZCW{AF^`HqIDIL1AsWy2!Yvh<$>?x$c2mYxN5c!pQTVpK5+%hWFN@ zd4E1p;6TMWRP;Rw53e1ET(YV@d?q$bhNXl@sY_76E7a?V?exT-5y5^rp<-!^!2x7w zy(EGVoW^TeLShs>4-b#Le#DGB|KVrV`g&>CJe?24Ld1f;xV(fuP$a`z0}$LKYpAut z+Tm8EjFx4aFuHpMl(M2szKzv|FCOkKiy5YVs{~<<+G}_KYXHnnavk+H?Kr&E#r58E z?z7|5EHyik!+w3cR~}#J3c5mxV3$|ZDZ`V|j!Dx$=Wg(e;VZ#TEXrTa%F(#%4M~fZpSqu)b*0n+tlO2RXz)=uzg|8!F}KT6erTq%Vz;$w@=Cn| zwUl|$u&0exY%GIXKSzibo$GfU*ua&iNeT$KsJM;Yu>#-LW$`r|) zR+kShNG{lM4u+c=UnM=B%)P}_h?(Jss~I08ELt6Air73F?jJCjN84oAM zw{7cv)p0ld{^9}-q>X&n4~tLYg`{?mThk^tQduh|;TWw+Iwmj77QoU-d{C$8OVu0X z!6aY+!bfzaax(*L@p`46tyP)bKq1Qcl2(#QXuwGbbs7%}eQlvP=UnrxYQksPF=rr` z(sEH~!?eq&8Va;k5}Fz!Yh}c%ok7My{!TesL<_25HrKDkF$RzxJ*%Rm_4huwKGQpf zfqJjfE{EJ+O!oFnN*0-} z+B6vpLIgtA3CRRXE|CQ^8Pq8F_3PIcfW>=@OgC+;9$&q5QvZj8xO3+rxVJZCE93Nf zb;6&IcX64YUzZ#dJ_oEPS>!?CvP$1UHm*qu8*7&lFxa`@HV3sC8p@ zD}-y~Q+qm#)B^U&5iaJQln;!@qzvg%lQOY9a>?iGbD4Rj4e8Y9P3~D-mnSG5C?Bt< zPY{h?H%UrwtJ$d-epOz2;h~H#y47glb-w1@ecY`hifK(tuZ9|iv3!hghA4m5B}8H! z4nIkm{?X!!A&=9HwxbutlZE2 zRqsG{E3E?sn}=7AfohWA&jBbNi8RH!YC8dX*=-OLo^IosU^~RJ$%~s}Y<{|9@JhuYw}jV82lLQ`TWgLIGK-d-DpWG$=8xOnEpL@E1+c0U(-SE;j7=;m2Dk z-h82*<)g#pHv1b~Ao7$4c=M{3dz*;$sz&4pNQr&86 z6bu5C6b*0rlfk<%Ple)tpQ! zf@%f9_Yh;TtvG#^FMVs*bX}{*iun^*@*aNDjfuNi$?8?ca??kpQG2_RA~JifC|2yF zt#wpiNK3@P-f%P~mlK%~ev)-cr@Scb(eouatqYc~6)+P2IaCD1c9l4kaSJF18>|NM zO_`@<<-ta)53U*gkw5Kwu3(wqz};+3m1kyNZX2-^ygFHwgn=c_)4?SB9Ub>HNrJ%a z@P?%}NX=?&V-lLZ3!Ia%#CY9aK-c_febCx;=@Yp4q`H`C3}?Hvk1a%r0BIO?K_ZcuL^O z&onb>=!{$n!O}JW7H43%OP%ZQs+eB{kz8y5-eK2jZ@d2ir%@1ET3YJ(LnDsrhcY1w zFS|KDCe?Luze@Ds;pJ7>qXKYP+0|~4>0*{$j?)vj%wIO?d7M`7@^mRGOQ%bQo;&QD zhDG@1d{0P@<&U>eqI0a(~w{BOblBTN1$(U{Y z)1IJ)slSF2>r>@-McfuE0d33h*zlMtL@G_>9L@FQA8eS#k_z%&(-!v~X z&1)J$3d3ix;a%?}I|YS~C6AQW!lhe%{L>c~%22B(7`*r@+c}d0C`w97P7skml(}yt zl8B>dHbnAvZ%ieZ^~2Lp!Ts)5tJ3{y947#F5*O9q->)9Vu`X_?Y^j`@sb49erTtn4 zdFby74K(}!6A?-I)>e~JF(>>39?j#zuK~&|jP|(clSf0dH1zY;t}?&_)k!FS=y!3_ z(}aDC{MN3+e;dsc(vs?@kpGYw-l9&X7#`j4ata>a#yQn)%cQ*C5ucp%Vf8AT-P?Jr z=$p?ZPnPmTJ<^E60?xLVUmskR45_jr3xYt(jpP8r1y^sIzn9Hh?i;bOD-mz#mfeS& z`dD7UKg$vRF|#i^KjqXFOLG0f%6ygb`*i^ibzRXR3&SG34@5M}YZP$}ygF7(?RzhV zH6tDzhI|oye|%m9;}@dSTqYd%jgN9aB5fUR>#0~aS~uR;))udkfwR^~bq46ui#7}z zMk?!1t$X%fAt4oAWOx=;lHjUNBiH(nV{LSLqwIY+?hN10M4#YXMQ27^<9BWtXUnBH z`r@Llo6E6T#8Erm8|5umwnevvLxzzn8mBgAqNb2(rcogds^sc zbarTH2)mh$I*if^U|hV$YQH~I;Bz(m$4b_CLTR~_)=QmqtBr1sOv71Mjq7gjNiRKF zZ{~TDS5rv{(f)dQ*o#`MQb8)!5znq4c9OEf>S_ODMhO0m;EO^@M6mWxHvGmEj(TcM zlvi)GM#g6Ag-UjCPN?I~2=+8d(#o1x5$VlD%EL5ll9E`it>T^xFK>!Wl<(7h5JC+f zeOQj1YP85~JgZSWc5}H&*;yb$@jqpu{8|kD$S<1+yOz8;1LT*ZE%DDeuKcZ4t!j5$ zhDWyaCnJ(g-W7h}(~e^ODr0$4mrRG*1bg;4jb_pTp~1Y)FM3a*OyIvNkVxPs4}<8Z z!Jo?$So3~$-5^3EIP~G^4J|FFDzvi1J$00hJ(O>G1cc$M-dnGMc)jCEh~lHi%q%X7 z6j0tiPsc$c+jif)k_n>Sa4#$Or!pUmt!FVsiK|-Ux7+%k%qvm~8jLt1C;^be--&Cq z1VT-`5t4|ifk8;QO_I>C-L@?)W5)dyCBo>L^b!j`={Eb7a~|}^26jwx$-%a5-QwpJ z3H-@<6Cp4NF!9`dqyq^ZN~6P{9(B)8{#e4uj@l6t!5s8g zSO8swIEb~{du$68*m**n%@^r_S67; zykSwC?pQAUeJNaF;8xvw^r7U=aV+!ur)d~L1``?L{L5SO%W4t(JlB5v6MqiK*Ky(S zy88-)aYO$FoD8peO^w*t+|)HTuKaZG^Y=$;#dq<4?SGoA84)dt!=*Kk= zYQm1^n{P2yuTLR1wzl*g91=bUkevPPeCk!$VUhZGU9X!vm9>2LIDS3f3h}?eZP4D+ zGY?9DMLF|+DW=y5BD6u&%a?Xe)OwiXEdh3Re_>Y43>B2G82%620CeEu%gxK`v`XO1Kw8pp5Oy)v+w?YNbS(R z;ep8BaLGY5Z$#bUs#V@7u3%+;5$Y@L{cTvW>8rqOOU(Sj{BoW-@-neG{bAd| z?92=%Ai%q+sY#;7z?})ugt63bIFJlMITS8++}{1avkTdufT2wiZEGSPxENn=?y)-%==CcMg#>Igue`kl2f*~^;#*SP@)C-SGDBSN7-2;^(#m((UFs| zN=nj(>mMu)6*c{_;|q8#@ar2E%$PquI4yLI5V~N zNB!WSchtKd6~Dy9#5l$WoW1g(dBst7$v=m>UuwMG1(DR$+V}J4LeEdBAhXM-wj3VY z8@hcqE&{;Rdz!A5>15TtOC|u)p2D>5@2n@MUamkt36dO^78w7&6927TdcbXA1EZAJ zwOtTX(pmMRp6n>quCw*i{{DgKDXDU)?(s`ZB!<9~P-wFV9*GI<>y1x!ERhjb_@T>}Ux7_>AJLpMl+fC5T)Bi#*>?;g%`&ig#y-{YM3_YWWO9`4z( z_KIs=YwgnVKqE^*<9EMI=2CYE_p?(s8*PYe`!;L}wu4`0Z+VL{tosBKU#46Qa>$gR z53g~HJE@M77=1hTi8=Zm*s~FJIKIJzS)J)7FN^#=^3nk(z|?CD(<0eWNtNYoc~)Gg|%XF@Db};I+`bu(I>GDAu0?RNwzcC-I-jTFQ3G#y$7)NzwJ+7 zL9IWWy2?qzFHrWr?W;5i@@|)<28jIk?eqDcSv$*6q&Ue_N~F7klj|NyzJB*m#T^x@ zcOI?{_of?yJ<4pxkL*N3@Io3N_Q<4*WZ(E+f^1WWxV7`5RtCs*0Lm3(mRm)?$Q(Ye zAq5ZE%o86B`VkK-H6Y5mqyfdw>6pRGO-2S+Ig`P+R!v_-l)0Z{}%rF3O45z ze3)dNE`P>Il+{=Xi~nU6CW#%zaKi%FJ^f@m8OObnE~o?sA%gOLLfK;Weprjr-W#A< z^A8K|s?=ugfZ*YcSsvBtU7hj~D`s30>g!i}wYhsC(+#^1_t(c)te?8m^dcn|Z}B_# zu<70}F9{%S7q(qdTyJ<6yp2bz1%d5{E$BhY%ns}jNG-C%F$+smq6$x)Cmmttwi^X| z!mUL;S-ibXH^0<=#8D%g7@E$Nd3hqtT1{fj|1|lH3xkdQ^0Iiibi{r4fo=|WR0R2! zIqBdAtNP7%uc^_wRz8oIP(du;C+q$1JBF&um9G;LY6~*+tA=}eNLgvV3JP}5g`9!p z1EG%}%V*_lSfuG>QR+TwRSNxA5iDeFW@c6d)7~>Fja?~*iRIXU3E*btoLqnyF=f7= zq!7T1O}1Nsc@z6LcJh~|Wbx~o>uM&ipTzNM{hAO`UBL)p&9AV_r1SoHomJh1ClEGT zHsWAws-&c3Smo5OWonv%1FdEaP#aY+V^j(K*1jj}6G(C*0&i6aGW-zu@V)N$)SpcR zOJ%pI%UWA|4}_~btAqseEfw>`>2ZI^B)=~BZG^;15tV#fu3~Ph9Q1ie?(t(kBR8!o z99pL@&X#6%+$M65C{n*Q-TX|$|9yLFHv6}E!WSoaW;Bm|dZ3bAV`a}Bx#3z5q3LRi zg(Bj+=y*+s-D1$GMeHB7nOkOSZ?em@Tk-ZIz;BMQtENnGCISeoC|`U7WD7}^io zpm^HM?nz1hzL&4+ZK@@uG+idLz(|pUR?&fvR6|aAxL}^g< z39*VSj-1j&KF+%#7ZVriI8UN$WO@wbW2=;zSJ7Jgtx|pKUZcAAB~lc#=|if-^uzT zsbh;-wfbBlh~qQ5v(0x8g}1|dV@p>~gy-XszKaxfzt6<5@yFQ!-IpR3IO)j`3(-6F zF<7@n>l+32-xVzg>A#rv6>`!TcZ!>VurFII_;-DMsyDT@1Wn^$IrfY>$@=k0Vpucf>rC-_Ms!z-b*XOzk(OXP{b!g10zK?4-V{B_*?f8H)wL zygaW526)-FiG78yjHVR$k64+la)}T@`}#UIBN>%>Rt3ryqowm7kYKZ?KiMHh=mjFx zz8Y;QJp7f*V_8!qRhUH>)QF92Nk&2}-fTP7r|@d4eOdOaS|#GyeMM|CS-Y;_lVb2J z)$#ZMiM(6m`lVAQIXq_y`ijNw{WY$%jO6{JEzR_b_dCp>s0`u;0*achmDnnqA$ zm3bP7Nsec09Kd$}{W?ONVtia^U}V7JjobdA=VzLiF{Jakt)*G4GG*nain3DcK-n~^ zkCq*8c&i;`W@h5rUlZ85it_vdz=9j-7qX#^q#j}2R;izfy?3;_{ZODrM7H=xX3Sj3 zYO{fl9*VL+J0!?VTz2{>Am$nKt}A zZUZq9kAs85k?_*5-60hs9uzAH3qmGnZfSe4&r;z@F!i@58$mcBSPyN&y^NS(X3QG1T} zHTQOJ*wQLOS@~AS;ItzulK8*7Vf~nzZ4y_8had8KxRyq^G~)>kOs#>Qi9yicRc?JL z4AUVeCiEv=6YJKpf^BNo&1&IAaO|EBvVPgU6&QEYr7H|C*au0YLD=ArJ5!Jh8!^;|j9WT}9k z8IerAHH3jknVUBYx^{l(>KL~Ej2~E|$48L%ok_r%`u2^B%O5FX2ZL+}3l^)UmX<^W z0fM1V_j7g1SkukQ8@H|SRG77rEBsmA9kOBr19?>n#Rs$NB@j4Fef(1WoW6A%ImanR z{f106zdJpzmD&#%yil%axoKOfw6rGb0K@itQbl#6afdtapgypX4$#nLt8he>XlfNG zq^IBeQ6D6FbE5n~0}%J$j0{8@#`!#A;o8E4+6(D-|8@d&d&&XpA^k`Bu1S$3cr1rV zH(ZRxV^zHqHT;kmnwMQWBPqexknfYQkA)`MP_;n}X~o5C?CaS_zL;0>1XT_jy`I@V z!@UYJ5r7b=PC!#2d!CTREun0$oT;AtD=tpUs(1c}XTp1~sEz?D{uycvd|Q(g;y|Rm zS*<3)>NeNc$XqR<5=DxZ?lB(S`(b-4eEwV#Dh=Y@SKv`*mK(Uayky#4uQW9^t4UiX zx>%)tW$!(T#GxT8i{}3P^*QtG)bxA(nA%SY^l7Mwv1{)6gmg2TrJ1m6&LEp*rd$xK ze&0>u7N5TXS?to*RJ#=s ze05@csv*oNPFan7-K4nFYri9g{u^+#&k1MnF>whVgP^{kVhGsHKYJ_DWSG|<=-*|; z!Y30}uQN!+A#tr<_APJQETc)F$Bly?jgE{6>32b)v+xMRbLAybKcwOzW*t&Pe#e3Y z?^32vOJwe-_@XErrV^9fav4VgUp*~bt;B^X=*`4HN=4?-^B*}^BcSh3S@Hu4dHktV zK$mI;?(zmqXzxM!ZAA+DbqL*vP+!6GHGZ}&V#!i9I|WNZY@R+R$qFQT@5Aqhm$wV)ca|7{ChLkW8i33kd2T^zlCw zi9C(ZRmy_JJt%#zX`c&K*tUY0LA;uc!lk6l3T7;l6mJBQb#W_UorZ|I<5~o>!%ArZ z)EcRfjO|{Usjxy&I%Bp|My^@U$^5N6SF1b_N-uLwJuDd>mO+`kKLk2AjIAdQDoy z&HJtj6W!sI+FD_i)UJnf1?^x2^XYh$qwcj9D~i7& z?vM(%GSemfX59oOo^SU~#Gb|$I_L7suvx8w~B?5-mfg|56}vCn)Nz+2;*QgkZ~#2i$~m@ zE%#{sITgQQK!`2T7b_X@pu~EpqWd!acx92C$hz^Lq!+yI`gG^F+E&` z)!|;U7PuBEf{aY}8-cpYvur$TL6D*sk0Yd}vUs#g#APDqOq+@YFBzSAAIYJSP=a<1;mw)S>$sn-$tbq1vqWyXL&GBDh49#@SSn5WZl6`O%O zpI$q#Q!E{M^ZlAnctNDy`zw|q)Dovk{`53<8krI08>D&7F^W_FRf z6F5d%hgJZyU2+>WQa>3`7|4~Y+hl(w2#*V5CjbSV!Y9o}8`0HJ!7BnD$yu4(kwRLy)6plM*W1HIAQ+)RHd{MX#dIVuy{k|$B&yF zv$(&8aMl?*(xfZ&zljbMx>oY!`}b=$U(OsLA-m0sfMZMV{Nvu}!4sUjDU|6U8oLK~ zgbIp;O13kzl|zV#3<0rcl5sqH|LsqOLh**zG50L1N2Dz?xw!ka0y9lQT2!V|nntsk zHx*|hILOL|KxCacrU-{q`tsINp>il(#sKD*NH;{wSJLmn4L$a5o)=;{E)VR`-SuvE zG-X;V8p(|u88lXIXR{6nyj}uG3=?cDvqS89NuB$|{?NJ7&3uGATtFd?08|)Z$p&8P zIncvDajOvu(0rLGB#o=yxA7E*+1(18wePKX$T^5NFNsg%mG(tHOuen*ZFaCsuH{i! zSDFh`$y0!Y3feZksCa_!7Ej}@u$h!q+3ZKJEKwoW&v1Y8iEg1-#NF+eL?S=y?bC98 zEGY4R?wfb1B6{{a8niN9n22egb-Kle`Y0=nG|{eXi~1v7B{A^f!(F#Kors=VZ9?hs zJo;SfB^b?g`2*Jt^1U*xUu(YU*z%Tsp{VFmJ1W8bLd5hfjzCYT*nNhJg}#qkXnR9W zG`@+bKKE4=0?Y7xV9dm6N*!n#}dC zX$bUwo;cQxXE1g=d_19!H zFdH}Jo0b`Y`A(sdZnx31-ifZ;OeHg$;eoz*$de>XI6l#vtN~iUrJb(U(K&9cWD}HB zT$=O&Yu~$r)GzdGYT1O-hx%_sQR;S|Y0&3P=PHAk7xowwr8NnG zO4D+&WP%^hAgpADK$k=AI~b!pS0LQ)2;e<56T!X(nCuZuWbO(DqV$++%Co=HPXw)XucqX8Hc{8=iHX(X z+&7$Fs67*Y{PlX14V(lULgwG~o9wWw65cN+=3DLOOW0jabcTHKK0)2=V4q2&FlQ>M zkehGqgAMQdYfhO+sh-Yk(I8E4v-4fyrPPx0GKZT?ryldBh?{*glC8|Rr1%R0F1AFT zF45vJxsvZ&Q?Ih*q~ZegL9)g#OPq4VK@U!CoH!{nUM?;YD9F7);WT?4b-pn%YNFC4 zOfOHe$#9Vc{)fxS%If}s2E4Mt<~6U%v{rNXe2R|Q7>77}899rm=Z(n=)e$B3Ne9bipD zGV{?A)W0^5*A5P-s1R%u!ZJsdC5rqmTl@CzD6cY9TXe$%i(PuX_1#4r`iCF&l4Q|b z7$IUGAQBZunxAMNZB8pl(5`G<5$KfdO#W3uIOm$GFGc1lOZ#wNIIPcbRp;tG@k>61 zw}5qFA19pmMQ2_@34LB)FQA}G=)gqDl0GJiqi~7u-Qz!s73#s;LV#Bo5wzJ|4EdKH zkjBHhKy3_k@P%CtDj>8}Y`I84QyidDpQo@{%s&e-@H&hD7C00AftwEX=6V+tX<=f6 zZU+T~|MBnM)}RJw+ZOcK;81jd2X#L3XtSOa*g#XIdbfrD^*36m3DtUa(4hGmVhX~G z#CS1qdmn#RN`0{w`WIqZp9H3M#bjFSKZf`$;PuvsQJ{W&= zIOftaH!^MFK{S_8LiMA=p z#h}2CdP!0s6z|q=52BUxe@=ZWDu1G)PKlo6^tXK7eh*~nwF6%z^ndKw-;e)uIVm70 zF=}i}`g?TfjvgJ?I~3a}t?GN}KchqUclDVlFbkr3<$~u%VTqZg!Ya?g#%7uGlU($dmb zd%+(~Oii^M9ZUQB`!y653j^6(mRDoYV$k08>Zsk1T)$#3hI;FR+n5%YdnPAMEeG>T zflsb3Cgu|n6{W@S4p%HBAm9qff)+A8j`VL0`~HX$3!MOq>Wc$jM|4+tR0!(O-Ol&+ zg=DMcmm!g?aRSbH5I{eVq^qf^N%w9>!n3WG`?Bbb6}7bmUnN((L@O#j^dN6RL3&-_ zf^iah$LHtIr*6{-a&~CQFzBS3TTBa%%B)A9+g5J{{74j;oc|HWHx-=XfvOe&cR%1y$Ra6+W!>g|Iji+oTBx?lL{9gnj#4~OAy~cmni%lZ ze*9q4zbhL2FE8Z=2Eo{3Q|MyA70{r@>mXlS0*Z3|?GWNnqyl zo;5Jt>Y?T3WkGF{oiOLsmdof)Ab1rPI148X7pG1B0R}v42uN=YxDiHGQISN`TarG+ znA;q*u2}%g@Fsf%0-=&0ZC8h_O^ll3pOk@}70NPdJ(K>+GG4}9#_Z|swFbo?B|wJ# zDWAk}GnHVV_#$OxWnDMY%E|`F@|c;KHy4Vs^zU9-r&j)t&HA6ewjhBHD|9uDzBo$t ziuexB&RRxBsr`e4feJvS&(6V!SiC{wpsvciksIk5Ul%aqo#OTi^qV@)85%h)Xxs2V-++wD4`Z`8frw~ zKcNp5HCU$0! zt?tiH&WNkN=vhq1_tbMG21QH^r%x(B;jo3gmuG@;a&oGaeRGMmMQ6x>cEQEG&Y_=N zC;j$JPD9VAFnVo#)c8PTGwH`C4WosG9h&y<-zn{mA)!HyB-Yl}s(N*R|6o;J=3w*= zql)NIOzN(~TR^?Z&SWO~ynwS>PjoR^BVD>9XU3y){f=kRSJ6XeH=TX1(iU_X#$aAA z_dIvfDltpear@C985JjRiQirf)QjpB9j|-QeGKi~J5@QIQHXnsqL^t}#>IOK#O$B3 z<>S)huO&X5Pky`b;^OFclT)w@-W@VZ6}kTNkMex+fGYv}wo1LYLC{mqor%%Wm4jPs zDn+t@%B=sQRY#=o_s;wX&V(0YZhn>~^JQ{eR8%6lIJt(#UAMz-nKe+mT&n!^RTS*u zt3n(m!?Sm_&6?ru1Wy+ifU|Wx?pIe{l%>4Z#5Zon!*j3kXUy^Eu=#taBL=u~4-RXN zB|CiV(JxJ?7YbGhIwO6xF;U|*c`m4Lo2N@X;&ffmzU~ee>hgMEOW_`MvTHu1i zN>7N*-KyCX{ME681S13jdw)uTXf!d=b0Aw$+eS)Cs?1_fYoNE+=(USr$@${5+qrf5 zldi|E)-9n+PHk0@Bl#PrxsJ{ULvQ%BP48V*4?S1IRs+j)U0QTw2UVbGP=P9cF=0S# z-k_p_iHJ<5%g2!V+WXJk?tm?bqdOozir1qRFhbTwo&8nmUQ3q6J1uV$=LNMI4UF|z zcpd(_t}2w<_EYfmzA_vimhR}}IQ;9G;L)iV*$Xl@G0)+F31 zbZ)2~+FMJ-XN`B<5iLA^RIS-E_R!I3qH?2ja>BW8ZDqogPsfWI!Y;k07U2U_o2L0|;H8jk37COr-a288QiYO8|-O##qAD*Ccab-56 zHszCBj9TtJ3{`Dx3dU|-;%h=qfF?zIvMEz$*Wg|S3RJ}fh)aphtu0GwCtgM2aHbDC z4tjQ_AL;Rl93IQ8c7l2wwYqaT(Cfp8XU&>hFQpjho?+Yb1y2FS(=+~ z9qdx8PHjvB1TDP{y0h@3ILpMuXkRm$0-d4<;z=HDhY>4E-H#@c2BLNeB3h-{ySxKkEWoDLF;+_%x>?~(*6BwlYAziT}g43 z*YC-)+1X~NB_{G$?cx6A#4H5X6185(@mTCnPd2#kp^U&4+)V3_zGSGf!iXS{Vx$J$ z#)Q5F5K@V|g{!mA!xFw&gWlum3;z}uJos4u6<^&&D%fO0(}H#rkIVuBu)n=3=h58q zSM`S7;#KRh*)Tpn>H;%M+wxJ*O$jzmwu7nWejHYH!M)vH-G&)t7v^k3AkF>&U0iOv zmcP|d!CikYz}9hd4E5J>-$DSfHA%LRcIJbyU)y`!^6Rg|ym+Ac6nI%>FX!YeZEVU= zm0|#MRL{{YZ39MIoY?k5xtG#$_{fOni2tV`s^*92G_ubN1{7syw0r{>!XhUZyf$u{ zV6dew$R5d4e&5X`IIzY;=1si)eiiK9S_A%hesOj$X!=J~=CbwZm`z>&ks9dw8AIIl zV3<~~^ay6l)bpHh;`waYvy<=Svlc=@cbQc3DmHz0a`MVJu-IJzE9FfIF6EuNeR;r| zzwPIJ(LRDrr9h!x944OrG~R-ckZ@pl*xdBf3u%4zDyLl7CY}tQ_P^1w?U;S8LJEfF zF+w)nH$<$D-^TM6KbOW;G;S`+anmce9;+S>#>2Nh+FgR~v=$W=}eDZ*U-{4Z$CX|B-?ja=?wW^IXoK?_& zvIw!WFuKE8Z3b#HOGB!IoAWnnI$e*CRzXJ`(DI2F`@vt`MxK5Wm5~Wt+d25%pRE>{ zkEfER#Nr03@0&U;$l;or7Hbn6a#|W18kvU4`PG4m6~`?xXhp4%m5Uw|N|Fcd>ARiQ z#RmTv6?KfMaTMcvzA`sj>lJvuw~bk~??+ouT|HLdGB7zwyWjc!dm$3pwn_ezNO(6$ z=-^~$LT=Uy&|4?8{By2_S+2GSx#iH+b@lnC)zrW~Eg;!A$|3o=1a}w!$al3CW$*6j zCS_;0^S+8m0ga1#Q6=lxAt;Z?4x#DGESY?8PEC`fjBAu0xCu&}*EhD9P`YBx=*op- z@rNJv(I^9hzjXV<_X4hT#J$tcMP)jBd;5Cj6E-1GSiwsEY0})nLSXA2%g7y9I_d(K z29By-!|Xg{(R?JdJ-E4g27y%i%074gTWtE~U9akq_O|o++T+}+j8>b9bwIU~48KUY zJ}vOpUivd4<)mu&`S>Zfzs|$rsRo3NEGhb)>Dw%m zAXZg*;H0aRDZqhSyQ)xQ7#lb@|1+LSoV?nL_S~(R60NXo(Q&b0LP79TWa|Zv^wy(0 z!+|zmCbo&L7q~3GJ1ox-chJZ1akGp9%B}d+z9| z{|Kctkby2vEHyKtl;;-dX8H5c;*4%x&)+6&92{k+z*m(XY4PIyxmJNiKa#iv)dmaK zpro`E7=d=HqqFd_t=KyY7m@V;3?crT141E!`GHRVoyn6YPxkBmh=x02c$|JdG}U^0 z-n`v_5#)d!!tT~YKCYVQK8~zbahH;Mg{yG0dc%8kCB(%xSHtr2XXVw7d(X<1&fCqH zxK-AC2~lAhX+mcE8nXOw)OAar9bc=#Vza z#nj8kzwTZCi5|`3n!p0@Gprsbn-4+z#eX~LMkt=h&==Z{D`-)V3up%XXh{Mw<6Rf! zXi~KP%->%f3Ik!W(TXP*+JecyUrtQnhXQ}6o*2koOg!~YxZG!U0A%ext^f81E%aaC zbX^Hd!@oLLo9zE-TsI$sakVOaD7@IqmXdl9mgd&hP5?Xg9H30lu-4XH_n4b#-&H?^ zLK2+TvF}|R3<@b9P#@y9)l6;;y1{}rQi8x6i;4L75p*Ob`$37SAk8&dC_?mS$l$LKD;jK4gNh3Q>O1wt zuYyXkQB(_M7!0PWtZWp=XN!WXw7xiG&CSn0&9s~|{PWOIW0sZyi@R9C&5Bx&dJ0lA z3yUIf1ML7vlv{7jG?y7Rsnsb)bM~(Wy-A zlzloBipFC(F!cRSqLux^&r)EYhQU=iCcu^y{oYw{t7n*}mGR)e^2b%Yco1EWTFT8I zb3I^AKHoXQMrWmB3X6$eLeC# zw7Gx>Ibd0vwl{BGEQ1Rq2&snZ`=#r?CDs1(Cs!R3w0&wrmJ7!NWsQY#&*zdom)qn=HK%4P`O)|$-Vs=UPM$n+#4vBVR zp{NfZ>`(4|Lu)#~NqqxG`@%jun)zb5cGzF4s!(y)bis$G{NGXCZVoJPdL|}pKyQLr zAO|C$kD%FgZf)&-v`LiPG2pe2oSG`NQL@E-H4|GFG%s%cwMCrNHE5>n7y=?aWzdnZ zv9U}1mh0Pm^v4$WCZIaZ=#zL#qjW&D0w$h9v`Gwku1hO4q3ELs-?tANLvjCx1EK1p zzq=n)I-xmX|5s=zP{=*~-NFkv6z#sC&XW9dpeR24UbkQSmx=tfvs|~p$0ZC6@BHgf zrp}9LPyGJd_bLC&KQWBl8iiMMjz2lqoOfv~RGV&mZ@8E6 zg2L2@VCc5d%WzR|EQZH)S51<0>_x)HLc{Os6Vvfb#+o}iJN7HX6D`_A`uY!0GAGyp z4g<}6ac3dg*!u6O)msAyx&n3^dQq1h-GM0~At5qyT2R1MiSuvERn7=D(&?l6g&6^f zD*_^-N&Rz~Mu;)Hjc5})+V$|E1>bu}a`oPY8WMk$l#w9=lILGs_mI93?2S!LK#Qh* z{75DxEgjG^{gVCf@&50-cOVONi;%C0I_f)paM-4hsufVWC=Q*T20xts@$uZDA$5`b zy1L0g*!Ip2Tty|VqM`z)s@RGeor)IKZ$#n#n;AjW7bTh%*M0QsX8>S1QfwO5)6+AH z3CVM9o|;MmiF;r{K4arUnFR!npYk^FqaQBOJ0OpNi^leu;B)m&x48KA3vDNbfxD4e zQqqUR{;6rYDbR6y_7QCXGdsI`wAlky^ouD#461K&%yKRq1+Fb@X&iP?F_ZoEtE65Q z12Jx9dAV9%k(9f8bz588$Jki@EutVH^wr)jsKg}=vk29NW~flZZ18Sw4k0hK9OT$L zH~_HuBLf2iVg2b5zX~LDZf;K4{YC!1-wSlEEe4jjgtxbp*(aH|f901$>leM76NKD8 zMnD9&~Sr<|Oeii(OuuH(081DAhsYP>-r_(ftJZUdF)!K-4cYhXuR z7O{K>wFdEw&(BVUweJE@%~C8lG7`ErR4B2uv=qx{n_y^Y=`M@?p;#w{WyCTnKK zP_Mzz&Q8I!GXV~gSkEIOktr$S??^~Qjy9Ud*Dx&6pH2VwqO#cRV?RptgQivQERDQ` z*4l01lQ&XOf5r7&pRXJQhqUY?zV_kgQ_IoV#JR{9ObdQ1RdaqTqrRRmH*l;&>xtU0 zEQEPFt>Cm$2qg|)h@*&JJ?dJv(%M?xD(4N=XV1b&Nl8xxou6!MY#dli0MWQ_(xxIZ z2{rw<9t{DQ^w0vk)(1+CDXFOvpkSj&kNuh2t5-3NuuIeF6BEML6GiZ>tSnVh&$lTI zjHf611r0citLbAA1FCBxcCs4xxOuYEzG9LwI*$Veb*aa~LEHDAJ)eSK(&pG*#u_~E z8%`|5z~}SooH+er#&-n$nV9kE)9O^pU_$HL7i*VwFEsC1VLgb?`^UysFGFpJojshA zD`czA?l3X2+`YS{IT|i7fy;&-`1P+A{RZ-6SFV(}b?Q=Q38&MuolXF4fn=09&HsRp zw=IJSjeNIQ?A@H)1b32viAhP_%T19Keet5u)uH(%1Ol}%8-gQodk3j_&062;xNad9 zR5UeHe%-O?>z+tvgTY3M9OGWvzjPO6WDpbwmkB6>!q4}sx8vh}CJ1F*#vuZWG(1DY z*w3zA|10{9qMEaG@pFilDC6kltbKCu=BBq{iqU;%8-$!`1T#PXNLbTF|4W}Layy^k zZX&*vs{OZ~W2dSV7-;nvT_3jiZT)GvnvFxxC|0)YRq5Ei?%`xV93nPrxmda2kdyom zP3-dBmP|7T>!bNt`05{jB&;> zZ&kuQ!sVi=mcn0m-0e~e=sE+Lm6YD^%~NIP!@mqwo5Tqp8|Es#|KNUTSdU4Y#}nj6 zvq-BTZxw2|MnZ#IKET*imLJdWc~U|2s`_aA@qWniyQC`+nD}WTZ7W);^?zAj4J_2O zJmXhKoJ+JUi3dAUvwjB;GrL~H-mbmZDa`0SPX7t^ug8D4L;eG^i244Oq{A&^Y`qp zky5v?rwPd3mHgVA-vdWY*et^5+icb)qAkUpf}f@E$q(xTf9&^jH|F%qI;)kh=@tKs z7sx+6bTKiO@5L#5q6YaDRpxUA(VpjmiD0tbsZqM_ z6RZliR*>+V2UZZ+&rc6mpvp2b8OU71?;lx|-Cce)HoNNBROf(N%$n_L zs?$|>=6@=xnMNVQsLR{Pb!tha_4E?81+LfStJZ)r9hJxAoISOtI3LX-*i;3JI&g%f z_rFtL{Wq`SFViS!<`aHZy`sKR3SU6GgqMb+p144cqz3x@uo3x)Y<6K~jc>BRPBQT9 zFv>ZnMh1zv0XFbdtzpmqSULH1h;+4Y!}5THk}Htz|k|ejq}Ix1DI)6`|OjE zw>Ws8cB}F*GBAjDD=K>GrK|4|47z@`zQ=O6TSR1$^U5e%ANgXhP|k-JzQ25ZBQ{g* zXvr{*R{yDlx`CaU!kuRWOEDR0%Oakq__PIw`I9HQzU*U#S8w;=voe1hoNIqmyDV9Q{XqD5<}n2FWB1qkM2%YO+r+MH z&brLckD+Y*{H~INtcKdP4jOf*r-@{gkgU1KQOqO0H%X>3^k9s{xQBB<(ZMQ6l0U6l zWe2~T7ono`u0!vq{MS=1MbtSnh`|L};_T@jCPGa!`VLn03a6Wip8JUH?d{!=@`22n znsK#)XkM63J3GNNt2BW|+}oic3R*kar%$&ROhDnlQM_qaU}1m!}5 zZ@;dESQ?Sil4q!Boi{J2nXi9(=ozzeWt#9J?5Vg~VIkA-T_+^w?@jrGa;(s~kipAN zFj0$V2}+M2XJe|eG-9(4cmccuJ}$fvg8A3WK5AF8OGryHgAc6T+ILfVfE*VH^aWYh!=eS++m zZhzHcd$$xE7Iv`i=jV4ej1W58%&22+nCC18$5shJ)o!7_SoK3|7L%eqN+bo-^4ZLO z1H8a40#>oK@cR%ID~86^FX|(x`gBZXilB_iE18p+6eDEH{3YLy zpIV<^gA|!pQwO-j;jp*!W88;(pd&V@tLeSRT>=;@+4>|l5T<~LcL{l+q2|Ks-F8bw zwCkrtXLH#~)dmpu8#g$XrjnbM*Vgvd#I=VErJtui*LqA$9%L860)=TOrNkg^6zty$ zWMgw&KY3MJ>S(sIPu*6))dKt&FUC&7bze~TzoA%MO0HqH@}%6Fh=AZwm41i4Z+ahb zLDtnj!HSKGgW0KN-^Q=4OhUL-cuT#;p5k6}T^D~P|1U>#O#Z?yJRhdaz7Os^nPO9` z2qyOMV1%$}e}3H!69*~e65}lfF9~ZqGxfr|cUjpx)HE%S`NG}9!&&D?KQ=t-XG+!d z29gl8+H=9o$DenG?HBeYaA=VojgU^k8YPlxMr#p6tI&_Lw?_BFYjx`s1FzAlCc+!- zlEW%09!v^hpy+ofpT@ zMmZ@r_sQ|WM){^r)k}7}DB#dtwm1FxX-g~wKs}Z%p_D2`6;GZ)(efH;R4<~Ve0`T)`4 zV^mx=0)PHDD}~MIdcb&&hN{JcFO`k_L4~?rzV)c{@>D}ptcFS^c`iSKYG=8hCazAR zYJatmQz;s%6&H@OML&FLY>w9({86#G-2rAEybnOF9wwU1A3+}Ee?@%bzCCG3{hYmw*2=fBTCMn@;%;j$+ z)IzQufdbkB?}tAZ=dHDu#{WWTF7NtIQoD1Q-Jt#8w)tq8wXoE=k z-|RQ9d$?t%?7C32Q74U@PdJ`>sF0tKP|XogUAfpYp{l~aD*$h*)aLXG8;OW=JFQ0g zH~j}Qfe=5w*)RFJ{icatStWfcLi;%4|vpFW1Pj)+FPGe2j;+k5c4jpoRiAaH8Y=$3ya4_kUe4R%Xl2%Cg zOzl-?XFmqec43lE3b->9IJJkCa9>}bXp8*W*NNl$(HUBwKuNl^%TSK`uA!kcQ5R9* z0INPU{HFFc=uHUxrBY96oRv{$sa9TP<*-@?%2}Wfo+7N6n9$`JHeFZiYKUYo8r)b~ zQq*#*vK4x7X0mYE$L`#6sjwZ}cD<5xKM(du-YSQ5b)NRZ@vJ|@t>C50lLDc}D8pAB zH*hJ#X{qqwh;Z`=Pc+&R3E;aWlHx9TBLvLIL+z9|qrNk4$h0*b6M4>b4(&;EIu&>N zwvYehZZH`y)|!aOasIsWmxIwFQ?H|yot=G}T2P<>u86CJe~8;?gn;Y6SUEWMcXS@# zxs6V`0Sf9VM>l&JD&jcRap7aSJiyY9BPLI)u$%U^C7EF*t_0qawYA(cRE%Azl*^>T z6?9;iY4;Jmi4ai(pjaow=z<&xT9i!TQ93#~Edmy4?db>0Ju(`aypodpps=6iyQXyI z!M__E@VXxkhZh+Jx?5P<-wgGW^n`?jmH~X=6C52)QCUXkBT9Gc?K{8!08#$q*NSq0 zEv@Hrre2^R@^n51Q6+~4DNM2ozNTnb%4Za$UtS2vv0tF(f7|>&t^!dh3T8Xnwcq^X zNB;W*I{`2(8=2Q8=%o1{S8^&DN~gc2kmz|0ZDGJaQ@24SRMwaa(e|ADXG(&7DEMu; zx3dAYMnr-2o12@2MEBX*R|9rp&^AK>I!GM=(neA)sNx_x;v!5A(`jyqQKH1Y_rrg& zFfXoy?3T?(f(y;fMS>k08|$#YssW@%v%pZ@M-%`bFF>TF;_CW^fsygfj7{;g|Gt3# zjQ$@N?YcaeG?oDU>a`2y2+k%K!V*JCSvj?>O|H46g%#k4z!Mg>>Ykj;2L|#e@Hq6} z4rv?;u#UNwc;WTRYoZ|8p+cjVVJRsLAf<8SEd_wBrwM{t^YhPt#0#i_hS5%+3~D{T zr3vXf-TY_!{>eZ7vq2yyl>nN!R%BEYT;y*zldu4c`t;L-WI*!*(Cp#(i$oq^cfnPo zvAou?L>gbeemx8(C$jJw=0MHve@CXlgZi&PQtlRZ61iPq8g_x0sh6R^_=CpSgQT|} zOu`Gn_ydXHfIlq?DA=Bl^KxP(Ea6bd^aWj7R2CP@k1S8<8@RE+!^2~w(munM zlH2Rd{d0Qy(XZS3B%~RM=ucz|svBU%-<36z#1zy851vEV=hZ{PK~l#Of+Fm?V}}3` zz0zAsT-i9jqBDajAq(kJ>*d}f7jPS3q&r~=NAJ2x)s6ZZ*RW@3pz5?Jd!x(R5=gD@W- z3`Ylt%)&xNfVcI3dT8(NMy%;4xT{Bb3Ejc=i9>BZ3lZ%FWGJtSk}CkU@H?$W9~~W$ zQBuwk-QngIH#awL`~F=KFvdWR;?9ae(ImR9zl3>!s?PK9eSYuaV?@%ZJV$(d{L2Wo zu~}BQq_i}!5lO6MVhX_t5Ise@;g|$WCtZ{I{d=za5vq|IdaVq=BHK?&z;*`DbXv1ych5{DNM7 z#>Bzm!MqPC{u$Wc-}%4pB%OYP^Th|~X0ZbT1LtV?VuAS1()|CmY|=##5$Xcm*M75f z|Lgbsvo7mdz`(e*wNL%Extd9Jb$Wmcv%I?6*VWZkI{pFzGc+>du^zd9?*2Dw{pT6m zp$c>OL=B)9x^kA>4g+uSC=~$gZU^go^dTT)Ww|DL1qUYrq)Ud2P1$&O_C`*=d(GZN zTWaTBUxP{xajH;W^y{7S!NulF|78lK!?%X+Ez^QFo z{i6t8JgE0aX|&{LL;`@D*$F%hOn@()P89;7J9l*g;o-#&T#!z>J81zWKS<&zClC7T{HUo;dX(Q z0X8Pd*}Nv*X79?)yquo0HGvYVB~qAX#Z+16+tE9Gr5dk~o(Ug|n`dRYE`M(YsYi!V zqXN2%edr{opem?%ITu{F4`gcevzPk%(JCf+o^?>R1&K6eNMcyW4Rk7?Ug8#jB=DV6 zJDz|LwRAde1IUJc@@p=yoz=iFPY1d2HzlHUNevAcKXRi}GgO6>cXzYC^z@{p&p!vu zy2@3=lctw^zn&&O%m!`3kPZXvFugLBX%a@h#jywL?>>Ia+|5$XXA|16nZUN)%$+=Z zBYfgly$LK{r z@&*%ES66^5Jp&MHf{M2Gr$nKm$p$8uix}&$64U51G)q;?Y<;XU_|2Od8|J+7!55q8 zxldDfu*6yQ3tzSKg0gP%W#`k&H5nfBJc)+Ile| zRUO<-CXmQnw|r62h?4)mvMIY z<1BX@?K_WNd0slZP$gp#sKg^Gz!nAWe4knYu5P}MdCp%dTQ+WG)F*g766v~`#&EcxR1 z%T!+5@$`5BXBGx-@q4g}yS6`XT5>9-`1>DP(!crgrPuYK<{;wzr^8O*Jc2z?bUrF^ zS{q5t77}_n9sD?obEO)aMO)O!RXTvka(92vVq)x}CYM*j%-U_8moJOzG@R#GDRYb4 zAbFb2@0&x|XS+YcpcS$O*0tN)A+?Z4bMF|B4nK6VmyqPD>AiYXoYO2TDT##<66c}y z8x>zwT=oHdTPrQyoShHC2Al@Rvs8b4!{&@eZ;ps7Vnn}PVW-h5Y-Cj^Jh|G243D83#1?8OdDV6=vY#H%`iMb)Z3puUdt+NWtEdSXanc6u&~%W z%^P1Xte3XZ&f)k}m$}q?Z+8r7>TXG@M%}a)Hp=^7!8u-q1*D;j&PZl{L_pR5FRtSs zwI?4bE?^xl<0s)kEF_BzoX1^;t&er|$05)|}vGN*!}^Md_CNUPkLDmH4%%-;BaI)H2|ohrFhe z%7%G+(&f9^IBSwlsm| zG&R*;f8}D)8YGlA63vB~OkOagj}fw>nM>V90)6*wuI=uUW?39b9eX-c4|PFD;!-&0%|%g<8N<94_+~l%(?OVK*TJ#wfbG z70*JZJcZ(c7XeyM*X3T_S<{#K7s2|=vB(u1a~Si59>cV! zHC^Q6BJ(^{OBwFoRjd)JiM5G<>3Xd}DhC+y@DTWNzyMet|BNsDDaNB!54-}M9|I}3 zfRVzacp)b*t0HdbtLJ29r+{I}*<%co>q$>rin6WCDjNRmS=F#ien#l^|1_y7A3UG| z4VzkQVftG+kuV*@HQ_7lhs1dSkE8bDCQlXTOg?Lt*!k3++I$Gko%wn_OvnNzK0yU3 zU{(PvIM%S6iYEOe@giP|7;KLeHTm0-DjmH*>v=SXm^>zDv zS&tSf1EjoP%Tm>HD+S@n4tiOqouI$sx$@%)Mt+l-UwCDkvhf3Me!xC_w?qpeT|NMG!?0XlOD5O3qQqD57LkP*FgT zoO6&USrm|*bCR5M`s&4*x#yf2nD73$Yu))VtCw`Y?+&$VS3UJqRgOH>bar-TR;cBnX`-b<>pQH}H?n9W(un30 z0Wo}*mL%om0=t#5W(74`4Nj76Ov>+s#yxex?>~5v97%L8N29Rz*@{w%?`Y`gM3an`H10l}h)uloTY;xeK=k!os{oeE3U2Jvygn)p;5?uUpSZR%^ zn`bh1ifPU!3P#;RDV0@LDjN8=$6aKWwYCo2p6kKaH!(>UuF#kK{w~U-usZ@w#*Rx5 zpKN8my&`bF)TFMrD%}I^4wAm&ls`K9w*6XbcVGGk2evA+zCIe%efGC(v>B@iU;wO#NTdx6cBwGl=ooC4WvU6|t2ggrva+m=R!5XGvBCooGglHn z56NvxZky6yODZ;MX0|^;l^Mj={P{~=x^n_d+h#@OSF1VLt>m3GC;j>oysSdzXCz0T zt!8iTvb1whI0}z}0=M#Ihb^c0L*C)M!24{I75_4|;+jJukW7<6*w1v`ux&N?(&fu< zUcXL!V9;om{>|-_N+u!s8(ZM}ya~8cicc35^npyr#hp=4&%?)OnT-CbN&ATMOYNF> zVbP&aWJE8c61&BViF!L)MwC4xlwi24wnFSVQVei$Hh)RJQrhwXBcmC*m3On?yHZXd z9jNTM)L6y%kjE0~cXZk>wG=rbHGL0uf>L$$o9Jc*kCmemy`^*-@r+4Y3>6mVjFTpF^J zBbl#D=XTfC%hwr&Rmm~E4vfd@s;XHsmaZxQZwkreQidB>4ZZL0f8~hW2ma&55RA{R zSKPJf?$ou}V5>EpYs%RLd4z7Pah)yX)zi{k+2L&ekY z_qs_zTL(XsLe96$!)CrIDJd`0;wSO?w9D#z3m*&u(& zNd};BnwgtoH>7M!j5}HzENf?%2Z@kxUcH*9wstYvpC5SF9LDf^^HAExt|re$Lvess z;QIpjO?K{_;{+LY|0O-(!U-d&aGpgYRw6YQf=Y=h`~Bq4rX<^M{Y-@bf9oQ8n6jD-5OkPC3I+Z7k9&XWB7#}1+<0&FfAL+o(jpM7CsvAzZ#SOsua92=j&J#v z^dpMB2k;;7<%k6!`|fySW$kYkZPIR_gZvl@mDg|oX#d@z=0N7HdrWQjr_Umai_*zT z&zw2)3Wa&*hBt|I-z&3dW zfO1n?TMW>%K`TiCBY7|f^L&5O?GaIUXqc@$&#qQ*F~9{ko!5Rf<If-1jgZ4gMnPd`boMt@cF(a=bI8LQVo7>_uc23Qaj|pZ&bD1#YxeFP6>p(x! z=vQ*Jw6Tg$ET~aPHT|AbO=et(QsUU3%0xXY3+KsE;`!R{%D$GTK9%xoa&i&JGa}-G z`d3^GZO^c}=PhLxTV4G*vRiE3*PEium{ zH2lAC^1pv_xev>6>%r`9Pc=}C;6DJN)T*Co1qIboQ&R;ENrJ>`@9!@b zUT*=0pL?ZExhri1?0v3iEe3^}f5o1akqa+?ICNL`_gw^7R0uS|bsM%rc;LTJ`(D4x zhERmxyK^ zp8s5#A3SWr)dzgq(6dJl8831!?C#ODi*uf1o_n6PZ-Hap#Ju-N@6&D#@%?x5HXE@y zFhRUCLM_xPdQ?z{X0cgD}Oyv79! z?h`4e_~bckIjsd}_P6_pPcaj_0*d~^M(wMnAu+A3R#I61tJ;rz(Or{tum zmr7}~swfb*#+3?Gf7dZ+e?QbWQfrr*E$$l0R2Re zC|lbcX03h+h1CyMob{Y=ODudpTtsGEbgQ}!e{pLiZ?T=+Ak%hE1o5I#N;lV+wuoIg z%5RD>U%K>)!u~q{@4210X8FqxYQ|vh-w*ThIw};0DpUPpc^jYToZP*8K9EzBl;`N% z7PhGI8Pi^z3duf49|4V=i z*E~pz)`vTps_Gg?SUVTHM_AEmzp`dU-{D;f z(VYj}-~NLS(aw@TxHn4(?OFFx*!Ft1O{Pt+qd=NrtQ(j4t=iN?gZOoQQnu41rZZdo zDD}353KQk9C#P;mLDC)I6D90JCeq&#!m7P@AU2 zWTxgy{8IHD_Ejb{8{WY4-vOB%I~?*9(`F{%Uip)#;&~pXN~y{eRs&j4^4+1N?tewV z#i@sI(MaY7JAZaHJ{f|>L(MtV%|lI{od(VHxE>x}GCRUW=4t6m0N*ZlN7d*X>NhAG z^vpt!E{DxnHr2ueu|T%D;Q>`Tluc>PR$6=JtSOE+1l>(|u3d|P*p)oqUqM?j zs614UhtfZpIx~Vs?OCd4&z=oZ#Kw?)r%Ihek@i=l#GPV`sc&jZu-REFq?&k(p1qhc z+*Kf8Jlp*%zM3D@PG9Yz<(b~(FJE{Oni3sdxq2l`8q!UX>j$V-P+9G~hM7)&!oG#Q z__=Ut$WyRIa}))$n@nUQqw&*=r*nyK0``E(!X}@7|6Xak>QZmdd0?Y}xv*Y^OXlre z^JJo?8U5^{bU}bW)i0`_W0!R@j4D^4(u|CX;YUpFuZ$B5Z&|2G!hm!~mGx_E3{Yr` zD^5N9<&~9s5=udkTV)wHoguikXn`_6s+)@``IU~QO=7wg7!alYkmjgD4bTfL)@KK$ znp%2{1DMsC@_8&sA2zcdQQ+s=S-vI>(k+FHf1FYp638+&JY+2`7c-sR@}6gRUTMQ* zAvtgN4u9CUJ_CK~Za5&*gXG}Br-CUzwaJ(q7xIL3TM|wbELYz_`@Bf=bBmWC2@~2{ zI*Y>Q5TfH9P`>^arvW@pT9rUc*3`uD$|Tk(XDKatiVN&?rOQW#S5+Ka6&)PV4EXqQ zsFaM8Gu6>9N&k7gE(yg+Ei$$S2Qtqa0Ri&Onngq!cW>Xx{NPZ@B26+JuPcYuTSxK% zHo=>CxpO6T0-y{UJcwKAgk_}%@mNGb6`b*d=xL>iq=ibKv$AGpoU9`BL+`bs|M9r~ zahP3R(!ssp>D@v*#1qfLDP@yi!?d{9yLXX|uNE>ufSZb{76C!bRS>?)8&Edt^PJD&R4l>LO!#R$IS zl?-?R7uG8LvAmJ)bIge|?@KJlWS#=>{}~bY+cj&;pnW07LNO)SDL?g68 zYGyJ|OT#=KdLg(ri6ZN~1gvIWr@8QCdrqryQr67k@_ZgLP|s<8W#XSo9F(8f*;#!J zj2E;P2?!9ITzhB2n%3k>W?{Ia!bhUqh0ok&kS(A<@^lx&017+On(ZJO(&}>{C(tF! z)7rrr$J5?`5o6q+H#=+UYCKq3E5674kTA5fa23JtxB@x_8wtwg{%1^h4&(s`B_7?} znA!PWT}-~lgg$oc?c%Byv%U0yl+#vcCYt6l3YCyp$Cuv z=nAfwkQjl-4MH}Gy62gh?glytlqV0x>*zFhFlelPfnXN&MehmxDn|N!pksqfqXA@fp3`ii4KdI}Z zVQ+1z8`JjkiW3rpL^p|NkDrQ8Jo}A_!XiniH;GPMLE&v7b|W(`VZco}xmW2Wu*BPKe!Qi0Q) zHPrPrsw}ror86qxf`Us`GpXkOE~{`~1%jTnX|rB0?9OP%XIS4@x5|h9;&~57TuI!I zWAv-va6vxd_+;)vp+F@?yn3cQwV1t?2Y0WnYLck9YPX)l@~{$0m20htBe}v0d9F+1Q(sLwX z4^Y?JRIjSnXpXMrHFY$^U4i4mDuNW6xk6x5s7m2GSSh7Dv;7n@`Ud0ge9Rh0-?08X z4Oxjx-;ppiVq9R-Y+Kx~y7s>Q`jtjKc;FKrAMh@;1PbPF3v74+{BFBGAD^6Qx1t86 zBv4A40c>4d>-2rTts1-Z%iY7a-~YO#5EIC-{flbSR%M({NJ|OcLQ`j}&Js<+P~J|_ zR;pfv{j08kmK3YllF1(Us-r?24J zU4?{*&7kIFW`}W7hwWj7jmkpjn5{smmE5{;vF9} zU%n+tB7eU$ljZh3iH4o^&>cORqfiIh*7jdmySp0$E$WZFbQVovDo+xyTXMs^LGtNx zdD^uAO4mdxHyBAw_o^XGm*My>MfvEzjVdK%4ZI& zVd~<-^Y8Ze_dEXl?(IFE(LxJA6F32j3$7cM8DEqjCpI@N{ZWje^_UeO=ZTUdzkc?Y zBGw+H6h`on4LhDzdZr>){(n`)=UmKgSiuzn=K6-lGBP6JCr%7JO*dKZYHOMl3Ju|u zM11)-BuB+^{GQt79B_+QGE~{`*+=|U*xk-4ed`EY-DN~!7YCzq4A@#b_*S$e_w#%E9*`kHuhJ(c zb`yQ}bQS;l!{12nK=6RrB_lYh{{H?ab?e&5_Iuv}mzPK@%Hc!~)CvxZ^wbg@U z%YF6*lusg1=re&Ule_OJwgq(P6#MOpeNF6hYJj^D&E$?&A?SkpEdV5A5))xP0|14^ zsHklIq!hy6cXmjI6d;2=ek8kgE`5$Lhlbfe837=J`jDy(4Egtcb~V%cBVc!t8Z;-z z3{%*57jH%GQ*7*QC@C2v=L*g!<-a+q|GTz-p;uvmDA8urGKl?#`A)ikN0%#h z^X4e0K$>XG&hQ-B9Y`k$0P%70 z@m6psAR_p*;?kZ%y!!`0Qt{Mx^9f!2$W6a`^pT>`^Z)=JLqM{9YzJdxQ>P?ScPqdF z{Qt?dJVMBga$j{gixB1cIi6hIjb%dE4x;f;kR$>89*BlB($bbFq{PI=hKW{fUBfXv zxX;^(kB}geip(G!BDq9+SS#SBDo4F#1?dzT0$NfBU>Rcc+J;(&lg({{BG8iC@LuCoc+Jd6@Sg;HTQ7Ba6!BO4)ANoI; zA}0|v)rU$bDJqKonDTgu8#B~IeiIy=2n}stWF{^MVqWVn)!j5U7$x+~vaXwzn9*ONxqT~GWj&GVNE`Cqx| z@&SSGyr1^4OOj{BlzV7;G3w(+bH)c;7iXuD{fGXiRNOs|n9PT65DUF^G}P5xWdGFy3-;xgH!Bzi{1Sa*_q`V0@v%t1VKAPTj8g`(9gr zZnDb;8NE;_KJ4cbAMWrRt1k!tdx%uc}q%hnV5oN!J>cj@uT+j z7dQ}T{POCA<9%-Ho3=SVXNAJp3pXWD=F4Na}QpIeGQ|kNYN+V&WyiG zVmw;QaKZj(3G0k2Y0-9bXOMtFpwrYn<52HBtx-0Ft==!+OcfQ-_=PHzl_l1)M0moQcI>64#-+)pT~%k^em>|9ybME+X-s zW4-qAqY47?fL0rI7Ro|s^!ya}D_sg=^NYA&YRS3=AHPL{Yki_X} zV*^I>t`U>wSg>}7N034)OhQ7f$urEx*k|G21MOy>5`kmZfAHM!!*nOhgFpXp6kYO8 zz}0b!Xka8)&+?b%;%NT9S=W%RpCMcY+H4!+c+wYSKFWkh#c=!`Y$l;X^T0s)6RKK3+GIW?Y>5|TZepQM($#yZ zkXOWVlm_s5#>*C800<|2pmi7*$EkEW1MiB8MhTt(FE5`1cCfF%G|L+osnRpk`Bg+Ax}lZl%Y?y z_BeNaqPHjWz;jGW%5Jp>?h|)W;X1B zK|TYbOS+g#A&=J?g+eyYdGf5ywHI~4`CS-t_13Ed zO9wf*p+l=mDJak`#Y5yr)I5F9@;x#Nx)%e+C8*Q5w28T2rf%`NW&dK}7bhMPVb@4C zyP%Q!Bkl$lmr7do$>1;Mk)i--#3oB~LbhFIR@PWOnQx4x{5LCB5nwwwqJ*28LgtMG zA!{JvOnJ(2jJ%?Fc#A?>j^!FG%B!aK`e9{<{M8aBAs^<;GjW(jMGF7RI(4yG%Mk*h z&3dQ@AA#VVXk>JTk}^YDGzc!9wPl*pt69vd_0Z|#t1o5lGMzD1*Ufl8We2M@B+WP{ z7xHqDY8_0NjP}en)p*q_sFmJ>@36t_a|?kB019TTn<$8CsUN%SFen5LkXmA zY36K=azcm2xo9S~pjd`b+q+1TQ7gnVOm8IPU8q&hiGj=-y#lu@N=nL04XC>BnTK<` z+9GyVoOZGUh0^4pCW--qcuu$LK>nL%5v$GXr1(7LnS!0LI3LQ)wL7FI&we)IvtAvB zirppILnNWwDJ9TEkAt(~c$HjlZ|HQF_cVwyut-mdrHts)t{s(IFH2ZH0# z5M6}Yy$#R>YAZ8vVk&qoZ8w|ok30Nt7t3r40g|xyo1RWDVBGHkhwff*oGi9jgeX`Q z0Snc6O7NKPH8(SUi<3@pTzUvu9>pT0Mo$*JTOFAFcn$F8$41r1KV}~I_Pyr5qGIg) z!n|cm+{CN&y^>wx|pUq>7f6+6GJjTPq0mt~;=fV_W9 zg?chMo64_vr5tbQXhLp&cwf6qM5%8F|G-ws z{Y%yrx8nwCZ7=C%cTdTCk}`UD21bd$q$PMoO>lzm#W3wCPjRF$VOL7eu*DblnR3O@ z(FIDCf@|uVAti=cHv`xsWf%$FL^fyH9Z7{&(}jGUCPs@+$~MZ*rH48MCQEfPFfe>> zllF?Lh7sSQ`t;oCmz`Hr0ObLml`+)1iH;8TBdAQ zq8SD&yeZ5Ue^Hoyo_WN@eWl!Fvu38ej?DorwA!y;#=g_QUdF!JJafy!!osoOrjoHN z@6OJ4<&Mtgfci%K+?}0e_A-&_MV`zJsqIi9@7K{izB5}L$rap1bN2+#fV3aL!95hn zCcW*mwb&>%IOr?n1Fa~|L)bXfDKr$KF<|`-l)XIJZsSnbz&-#~w~r803p*pf`kxOj zUq~)$6MfRB*O(i1nj2i*ah%mr^y?=d#G;>{qM-UfRV9Lsslr7mO5J%JLzBo>R#98K z`q^pDsSG#>115F&EcEpB;WHyO*POOBRW^SO=7hSjThDZzHYr+qv}`)PwCad{o?~M| z?YO}0DDdPWiM99@~wnY%K^3-ud$U>Hn<3f3C{7*rzDKowvW+ z3_5M;?C>io1!;}ep7q6eVhzPT-89dIx9yA*$%Df`)Rto zP^AqP!HWVn-OIXeca2IC>-j81-dqDoJMP?ZmY|a4W7(K@GR7js$BW3>h(f(9yS~(Q^)&f7;Y^chgg*yAew^noN z|D5H2FM#kAs!6<=eM^_ zwhC;mdYR1@S`u^Chck7*MQyabPn2?Mwin!B9+f*g2n7?N4U%9`^=Gigg_bfWTD5dd zFGAi(06twqb-v84Wyk4~@>QLkPO6He1j33`Zl9rvg{Nsw^MvRcNeK4gn~hEvtmZjw za35l+zScuPOr0WvTdG)Wq^*77s&UsU_JyXsJ%6&so5JsT=^i(s+B>tQXf(|~%J=T9 zV?(J})B@MjzXp~VQq)L9Y-e-g8 zTp3gf*0PX)?g$MVd@~u(eu!er4aQX1&T4QFSuQSG3Z<7{Jpt#i_&Y(w%&7Sl&v_fm zwWE5x(HRj-QpU_PgTeoBLjT-1;S(_sC3$?Y@oCy3llFCYQa@Y&$W7C!RMVTw9Bcx* z%s0;m+dQ@A3GXv_{n*K9=)rE-jAxJWW6O&)Vd#$GJojHbH_}EV0k| zy|?AhXYfk`u}|+(%fCGoo<4$ih^340UuSW^W%LMORQOeo5QP_W%%#1({URx0X8q}c zKVSL}`Veb@gX4LH!RGqkwB%p&`s2f=jzfo7;*82NfP{&ANKHvYQ01$C^FYW#EQrAjOE<5yZGJXMa!jI7fQypX@*=bdl~F$1Lb2zw4!Dq! zV*{Ma7Z(>jxSI%&={pz8-~m;B05DI^%a>m(#EYl9{s?^ZIX99HNGBBC-Q9NtmMnY? z3=Qq41+D+KWB<=0$Jo1IpwXU>H^#9pb62RwZ)wn@wj)i;CnrnT>P8-TR#Ze?yh=)L zjIFPu=;%~fw7+-jFH!m1hZI5F_!BA8Uo{;LH)3`-iV;`wn}^5~fm9wmwnqz1St1V^w<&88EOLvd*Q4z(LY!+e6X zsKd)&&{bxyWdt!f#1hCfdJXwTjIGN=YjPzdR%n43uf>Oj^`~B4Sy`!sTH&9wv$?Hj zdd>oI-PdSkpJ5zuNrMGcEa5|5+Vrs)05qf+P^!&LkL_r%O?Y~`MWL_TyO5CTY}I^Q z&f`>qlqN-6*3dmE*80AMjmz=9*IoV=1g0KR2JhOfOn0dziRPihWd#(!n(r&iF4~&n z*S#OYb^()YJ5#U{o}A3yW4}-XIFxNhb~Xwt*LF?+_?|2ANd|N=)58lHPmxnDuhRFF zNbm&!$K{X@mcQI#0A_gouV24j$i$Myekl)NR?q}9;`llKckV23UO~79KKDJ_Yn2bU zbPyA##CV%Ep^$aP-t602>GhS14F}VP2otee$zM}LgF4v|%8?QSlAj9QTx=&2v*l8- zWj~qr+`R)XJUGDY#@$`&1YtsKSAiWj5k@7?nic6Q44e2pUMV6}{qbilj}}fL8uiq*RB(~tDLTxQVVX* zmfCj^<9HIDy;(#1zlZ5BJtFr4gu?CUvq#9k6j!4@@;LAscNYdLM1v&w_zJFHEUH3Q z8d?CS8g*vvZeV(PBPk7Y-Hg}X0}VO>%NpC?bb5DLFPhE|eao?$kk4PJdrNd614s_P zkQidK2;-r=yuC$(&O{_8vI6is0F5j-1qII~CMGJr3%?=}`To?|v)*8p*@tSTV!syD zbL}G+OQggpSSg2Ade{+{D`fA2gKLs?&iGwJm#)6@Oc+(c-cSPi9P<&-S9N*wHwMcQl1exMe*@R4as zH{vR0(JGJNqNS`eDD!R23qp5q+C6^C&j>XRBVO!&=Tp?7>Fzx8^XJdkcXm<$m)mz8 zd}~CKprY_;2mq+Z8_(&A?Q3pm!-^XpL^dWy&jlg@Wnxqgq)-#s7jfBvMwZ4QdQ)9p z9l$n0UAB&$;7 zC~z-S@GQ`&tDcgVYu+dGB&51iv$sK>5DjMAlkvQ($dV>}DF*dC0L8Nr&H3S~5ik_( zFGH&)G?-bQ8DJ>+Q1YArSrQ~=+j|#c^ueT#J16MPfQa)bLH^G629!Od%CnxTj>a1s zAFsZFUYY5wV^#)pUFxUxJ~O^Rt6dluFS46f|2k+ge|0D{?Ag z6k#&$;(EDYPu4I*eI1siXUKQZB;sVu=))}FUkp?SFoS=*t4>UuHafu$ z%~9O7L;rcQvpKM#gXbI(?e22sumPjM1BzBXPdwZXAVT~}DrN}Yl zyuwMaaB)r+!S%etJ@q=!?SX6gaykUO_YwwJ7IJcMCCr%Zz%SRR!Be{+ojT%eetqvB z;NV(aq}I6a{xs=3_%@-%;MU*0cW)#aqGRGhZzUq_Jv^H}Xr{g^0!Q$C0hBslP=KOf zS^+GFuEv>6Wv{T#G&HHFE8RFMHNz>YL%(Twsh~s#XX4no` zqNJvvzT!U%-mXGG!F13XtKzW8ODDu>Jb>|MJKJ}CJ0$Ah?J$o3tjv+mlv&~!R=_I5 z^YZwJR3bi!3a}1WQ+*r!CM_Yr^9z#U_j-KscQADF^WUF`Q=Afx8>?AfTr8}XNh^tx zNs>qnCx0)b$ZHdHD5ArE{LZt|OG&C8kjXutZrqDO9_A}4X zeDZ{sDAmi?cT^T?^T;$bF{1Z;1*|mF7Uwe^-%{&<1~Q z9ELfhc~LHxR+6Hjv-3j{7#9YYw9NosT5Yd$L_-x>9x+1I2-9!S@e5$e;QF?uBL`46714jp7dZq3&O*1wwKt@)va)2C zS*y~&v^6!oQAh=IxaI~yT}Sqb>>4~4!uK0f*B;MnPj(dW`2hOflnS)-WH~l7YF+t{FUyd5>MM10bZCN!hi#`aTL*rI-Kg*AICJ^(Wk~f7xMnl05>ZWtIAX0j^`89p_rGm5T;224 zpyEitZl|(QpcDRd{E&>>GsHfTeHu~MEPt8?sV&|h$+HcOjjz3>?&pLbcVxGMmU(-;GDQyLDYBXe+1xr3Xi4E! zSXd~IVTrT4P2fT zH}ZHKJC=GrUNiOK_rSPBP51V$Xfpf^NRySZ~DM~I;tA(riTPG zAlTUJE{KI^Hdx^ymn{CkSu=IDt0j_JjPND`($5TkDz_lAuRT8Yv00@&{7o9;7)E?2 zlqgO+bRl#kon4Vl6wmXf=01S|+c+>CWc3U|V-z>uQjTmdH%c*IoXpemZk&d{D>~NWR#3P$#6^g7 zSfV+{@?(!dJ=qta$%a4bOZwCVePAD(st{(ZRbee>aEQ#g{1K0ZeiRq|;VS7sbB&v= zjyk7Wr@U87R4(;hGrh;}u8h6){O6(Viey44EZll~-X$E|D@>-)aq!o~gtB$Yg9pXo zDmuEU0P#Lr3@X2pp7>x_3;-~d#D zkA*-SWCG@ovuHO)w|^OKwlg%&C9}U7m``j!b-Iqp{)cwDn|7y6XhQ;XBCA_lA>%-& zyT@F?ptoXQ_&bGE>2KlT?%2V-Z@vk*X;axI*(98W6A2?UZUmjX;C4oa>}BNhGq372 zaXd-i<-m>NIL&ZOwivpYvdqTSGNqt%cI#_|Xp`uIR^Yv>UmJbOXU#<*WEkk(@m}oqkehX|?Bu z&W`Bpaj3zZb^sODw6Z!O06Lq+kLhm2*mWp*73eThj*ABMja>cjK7QO(!qU1i$XI`3 zjps^*guMKQn@VqSPfPKQJUsKhBi&(Rxh=~`87}jJA7KV*COj%;cDh#`ci5u`HgqI7 z-(XV3>GhNeWm!~Y@H`hKCekNwqs3pYRv478t~jM~_H;D*DWqX@iuQw7mLPa=zjrWs z1zg3HVkqr}U{~O`7NVVP+wTZ4gG^G^#ofApTm<^Ij2PVx^M(6X=iEa6a^!Nv_$kJG zP_|zZECgnh?zD%vo@i8*9w3ssSH3e(e%Wm0tKl1zk@n^2n-(|Fnc{k$hVQ>Ef3Uqq zA=_v{<4KxPbpzeLu~OJhT(r<#(boNX%a3)zeJFHm*AM&W`%t@tqHh-zpP-EtmLbLcx9pOWM&-1}H^mnK& zt*t9S4i*^2Lo#=iOz!l1WT@nDp4_P^`shQH95E(6B65;dG1Xgr>(&kXQ7Dg>#zdy~ z#jh!}f9?g91Mf+pt#(5%ADzLs!;Dcnv{{BsWlpQD6oU#qhF&8ThLwh+8AZDQ=|2nc zr$PXH$L%(kLLh2z;vzl^B9c%zWDeX)I``Anl1lfAkxtr=i^F-CyE*vzKjO385)*sd z6-CM+{?%J9R}%ul_07!~<42M8q*|R7BAZ{Oq6Wpt?>xqM^1tzSW7)3Y_MDs9%8bhQ5FNKuGTBGV z#+blewSLa2fI(Qp4G$_3zs6??;dZO^R9V&o_I|dpDDRHu9mYGPT-uGUlRcTt$(r|n zj1=YoZCeea1x-u8;dojmHieM3f#1)C5sze9C}$q{+Ge=6(thyd}Ze@7vq+g+h~77TiQN%OwrBro7eJEf!k`g zx{-%TVNhZf8pl)Ow9(X_w&RiiRCyOo!Tb`(c>$jN!JFv z{&}>i(v;K`6?u>3Rg!;g^E)?gB#HwKMD#GCEW?aKf)niJPTNjWXmFcliaVi<8lV!8T8QGfvHaxyWqrmY`(Sr4I`iHBzBAJ6MgX@>s20 zBSl+#9u2eUj=P)Wy`dhyh3~u*Ce~hMWrFRvv)X!Q@aMAT=Ip@Tu5&@&StBBpPLZeF ztw{%o()2`SnmymVyp3UR_-Ul;xmuuZ;-N0YNuI)Sqe{eVAAoKN;JN#ugGsHRcwQCj z+j_4v7Y5Hbq?a+2SIA^^MCaol6kzTbr=J z@$?LJ6400qo*)wwXyu0WMTvmR z=LGHFDI_758z@FH0)+^JsD)@oaX={pE{lr49~v)^+0ASskdHDZZ5Gr}S>BV!21Q}V;r#3sGB4k7uTiX60*k3up`a6d}gaAs_iG`T<`XnrOHfbr@XN#kL#<4%=5Xz4Y}LX zHfIKG3Oh-a`4%$4gk?cY*nd_iF1(0CJovTM3PM)*kU@WXU~79VNxdjUsy?;L`3CRk zYaGvjkFG-xpM+{2zO2aeA}J{;KfL1kF$%SjSxhgt8*PKR(I?U!jC}b3yHL;v`U{CB z`d+JUTIIUNEM>leY~@e=6I?}G!pu`Nr>m-%p545fd8e$$$ZgfVsNqzvK-VencHU;@ zY7vBAvxmd{pLe{UFpmZVHA3)NAl+x7xZM1n`fYFzeVanyKg9SI#8jCdyzo6$ak7mx z>Rqilnb4{(@Ah0#h!49-v~zV=2&<&U^_T97&H!f254|cOYfoUVe}&0iotn8?X5tXf z_~fcKqgU>ZP;TBnr~lBnG|267eATz$!wa~)pJd$fp5PvsF39tZ8pn<|GqGy;$6*aS z3k49U+S^-E@dcrZOqHgt=GEku13ctnX{GLI^97_S z#3}g)8VR_qX4>ppx2e(Dy83=R=$*Y$jUy}&qQpA)p9f!2UIb#R=3q(#y(}K+LUBXV z)wpPgTcjGaBIN;82%<0oVuXrb+5s$%*72l5+m`hA)Y!_G@<=`prgOfQBzeW80Dj(w zJi@t_9ufPMrRUe?ByKEPlZL-D`p&GJppOdvxTjMp{2#m+7Y}kURJ{e<1E6oJqtdZMK*M3SVT>m%LCI1O-I<-%w&={Y=Dk3#%(GacQl6%6Ok zP|!ZPN~&pxPHAgbeUV6ks&9A`e!&8dZJua*ADe?ZMHoWPIM03I2x19bNN+)bLv?>W zkp?+Rpin$sda?KzF1vI5wtkY2ISUfTPq8=F=?9(DPIY`(O2TN!8SKVNA6*ouQ4ht# zn>Z9wY0pOMmuo(0*;}C=c?0%Y^@&}&8ZIuQm!B&!I1rD?JV{?*r)5~s3l>oeQ44hu zX-5rmA`FZ>G8nC=yG}z>5(C@efIK-u?9lhmL>5AXm>+qzd&g*qZIi(BvUoX(+~#k| zF9t~L0(hAxn(1Y#!tx_Nl`FB1eSv7{?uJ98lXN*{&+`py6C(z;*%L}D2YO)*$wSo` zq+(jDA+K-1bXy71fNcsR;C+j*ARFIti##m5QGu%W0T?{>8a5N=7Ku2OirydS7E4xmz; zaTV9Q11|a}Y*%L=Ko7`r5UlffY;m!gA|6zRJ!y2vkq0=uxojJ&+&IY;*>JZj&xV~S z4}oL9`Zpy5%BCaxiRf79UP=$q*|S$*Rg(R&Kss>=I4K@*5*(X(sNHZWLJ1cg z+l_!H03{)0!RCyOZ~ov3#KwL@0#Pct=5#Y+5QmHCyA#KhX3|@D4cLDf*(StkwkPWL z^QU~l;peaDN7$?h`Ncne+&y~qXc^RvoX6h?IF|=@)RUi5K7QzOjG^hX;`RyK?TYFxd!mJ4Eq(OHa1!x(w-??AC z$mxXbswN0HgS>ELWTdUo!49}d+KoC~@(E*}T!sMV^f;_^BPSc8W|e`4)vsTOoI7>; z+&Q1n?ZpBXVVM^|MjP5nY%+W7U)Zq^6-~nmj*EP2Ydc&&v*OeOLsB%JfGo*tSA|n1 zwSBQNP@4*ijUBt+89#Mn{0`xr3ls2yX#e%a7G)FBI5o~}QrfA7ulPFiOlU^?RGqpI z{fVgMeUxMZ5+ypLnMVpj`l=WtXK;OK!at6g)U(`5j8U8Q9b*7A+7LjPGI~mW`sxrD z1Vrtc!@4Dcdjkr4=GZa4FRz;hs}7>|#{KGqcKC_Zf$GbyK0~$V8iS_vL;|%@nr9K^ zd|$&{p9$RgfqPd~t6-O?1ZLIC?+7k5MXs5O#?7bbHAcmZRFe(+1VZx`P4PI5RG{W*s<5lkXf@PZo$%bqp{yfFlrZgX6xCt!_JJa9omAjtFP z58qbyqJliO{JS8p)fag}`G}R;+S<0Xhj+GnAcmkDskSd{X?fG0H@SV2=%?56QbR^idMWTN!x$Jo@NXLWkoynWFE(+m76oT9lZOC5n zf!S%oL4rSIdmr|%fP_XZd*KS+d7 z@hB0ISe&uH>+xX)LV|=cnd9;iOk|AOey(J2Yd%i-)Z$8pDrn$h33b|jye-iJF$(_@ z)^9vUc3VrWgWlXdRX6BSz6h2J0F8& zk1Mepz0S{SdA}z*zko7Md_vakIcdzV@$o053E~f)KEcZP(dI@SxMO|~X<&umKl$dB zE(h`FV@0YRmo&nW3vMq}#t!K1oVnUE#3hR32qHwtA{$hGf>lhLtPhCcm_=Nc^l?f4 zL>xxS6w^@i7+T4l)CZ-{HzD~w&>b~ShrOT0q<~@!ka%y#NR)WtDflV*L89%E`9%=M z+54?h5IEy!96&&>gmhuTgFk8m=ka&o3RvSp$Ku|AsM$D5Pc_aqmE*2|kP2LkW9;C< z0YJF+hMZBwUoaX#Xs-i$&2X#U%=HKctTnjmb)Cx%))_D*yv-X<2%R`tu%gLYpdw%239|PwewD0z*37S9uWlsr8xeN01 z5SMq??qX8c=x<^iZV3{JWa;0BF5V{!7pB_HZ-U53q%9z<9(yO9M)$tOjrbdT4$cLG z1To0u8R!t}LV^Tgcp*`;nc>K=Fd6^@!lA-Oak$sOelLCxhrMnnbvJYor`iW7mD$`t zIpXJnK;MBY6k@W+DX$TOvafxLZtjtqLbxG&tO8aQ=H9$yWsR&kmcfNIT)fchE7)-0(JE7lJ=%M}$Bv~Fx_PFqX5CML;!A-ZSwSWD0n!gN3slPkISn~j=~ zQ(WR){_QoxXDmxaAgeMU0MHH(VIn50_(vTX`}GSuH^H}$fC?KSCPa(v_%Y;_KTrU` zArZHgUMC^MwoNWrRuUAg0)~VN@I}GaCWZ!}zK}Kdp0+G_AFOs35qO>XHee3m;5IX* zKy4Txz2qyE`=1vJ2SFr~MW}<0c^pjAeO7$S*OzB}AWl?`an+!L$?H(hLwySsa97 zIg0(rYsIAIu+)6*$)fJL6mjp|<>Ab04kMP7z>Ms%9rVsmD-Yssz}wq5J`{Hgw2uCB zi5tjwG#HUG4)v|Ay|3K=B6u9qzx#<_wMw)5 zNlRAwa`rxam`{QT#%$5G6tt&I{&`ky31E}n7N_k)()i;U(xC|S&NKbw{}A_-M)DIl^)X+^q3KvEi!5Q#;)q`OmcQPQO#C4wLz-Q8W%-5o03{oc!c&Uv2m{I|Nl zz5e*HSWfOa=N%)iag8x#e|gORt-z{%fRQEx8;|5)iQ z$e6tR&hzWp1tC5_nO<3WfDk4b9Pm5Y{txu#1O3l+(bSd3aZOl$`KK@~FfSufvn@Z@ zni*L!i5i75Ej?Wq5OP3`_+3?As{)9*6*gkvf4|Fre}I2O06v>LgRc?SIE4yhsDf(6 zZG;5|yN)#eans=5;ES(zz<5Wz3@?2D zWqClr4kBz#o{M0(9v&Wos_LB{Gc_)bWPA=xfMsKnyY*P?*K3ep2-b=5`??w8B^0QT z=!Kx|D<~BR{s%ZL2wF0bi~+zaKv@5P$EX*@EU~yzHXEq)wNd2P!wS!-AvD53K?q_| zGgT1M7BF0@&o--0iYYB?PYlc^OA)kLV975oE+SyK>P+!r2c@Rp9KI32CM-1F{UB-(5_N zLR^!N1qZhI3IXHhY#jwa27~q!y$BHtK=6q5s7@e|rK11G$761$cgi zHYC6mW#{0y4dgXo$3cK^0V2oMpTy$?X=OH`W&!_ zcXrw+5H{e#T!Xh-_$R9Gy=JKgzy%5cK1JJ4AxV`}_TT&OzqdA26HK2qp($d9lR8lh z3=IJ*u^HIc3!u>rJ3l`e;AaK`z)|XjpX|w(!e1$dF^EX zQvh}%jR#YWM_#?qj*_R^UAy^P3NODX$WSBZdGs6f=ik!}z<=MfU+j$kEgZJVfB;*) zHva6-*Zwz=GXAb}0eUAj${7Y^)BQoO*4+}ujlx>=5n1h$Am8VR_B&L98O(f@PR|9V3x9(X~5S9Z653MeHw2pYA3Fav@h z7uce6$q@B4LVJA`qzs4y?(JoT;#rc`-;VRw%Y0`AhWVv#5(?rP;L8GgF9d;r0QLCn z*|TQQr5o@F5S}A>CMXE6fIwY=U{)z0ko%3+QP==SYgo{0LLM=Jy?2O6?*>KmN5p(x zL9cMXcuigkSil|##+guVQ4uGwe;bvkdi9Eb&B{?Y0t4E6U|s_c4J>>Ri&7Un`%zTx zw4;NdC~LcHl(>F?iTBL?1~T~X)J1proqVY$p!+6^00xwd-zoo;FYPC({TJuO6p`Cz zFvRjx&VRoLe$n2|mHFi!%eV^`X@Xcr00E`K(}DHDkJ4)L8#P7<)R@yN20jGRB3yz2 zEWVF!hiafZ6cqv@NkjWG(m!PJ%fGKbMHpgXRav*M_ApQXT?+sVRZoH#>OG5AAgF2I z24D{a9m{kK>HV)0Q*bjJz_XiBJo)KAz*m0`!1^*&Uhsq#VGV;E@Os;@qJNz5R9z2@ zUj!NeXlQ0*`N=D1S>C_dkcxli=BW-IU#MABZ z-f4TK272YEb3-6D|zd51*+U3>3 zz%J}E8vmJYoB5PdIUU3|g7#+sUk|ueVG}PIqR7onEiJdkuz++9F2Ln~yf@T-3b8|55enh9D?_(nGf5W`ZfFQ&KG5yBRg}H~G zYAj-4C}R!E(YwZl3%DF2lJ*e<@tN1(bBxT*u?M}G0!E(vY6`ExD-mmxH9w*Trf}$^ za7AFt!S~Tc5ZXf6B>=hFS&6r7&C08d19bt%vo1CFe?$47LnNbU_jJu5Zl~}W2_GNd z8f3yD@`-f-;d$q)r8{SyPV#H-p0aih)p}{^!+!CSo9<H{z0Yy@YlI#*g9a?fV-hnhupq($XuxucgDfGE&p zgvdiAZ$>f5CGg-OlC|z*s%m~clzkGcw6V}ZFaE9J8N%`U)v_i6J95XB#szVOFabI+ zIzSS|&fAaYv>>UJ#+M#}QhjvYH3k8=)f#DKCg77NZgFyP5o}fO$&r_XGxDinMCq63 z2-q>ez@aLYL3j%F6X+n=(F_2#J(xHKbRXnn0}pCXp#?}B;Oqk8TL{4NSaDRU4@NWq z9Wv9aWdb{b@z+j9=2PHVX8OtKB3=+6yns|+{1c!AP#BNvu@wNahUpP$d7vR2NU1~c z6%9YSK@d0`q8vdWkjx1)KM~oA9AYz@t!NG_!6BH;+ zK+RHbyidCcxRTIX=872V)RC=Q7r$O!CQ#u+$JiqDXCfK{ZcI#!Kj`w-5>i`h1inQ? z5^LSg5ZP@A&lb=Ve!7RC>vn61S{Q~J0QVoK1^h-(n6iK)y0XOb(-|?nr@-*F6_hMo z1dZPixx~jkjb|>1~9}jt@O{-QSX)3|2Z;aqE4yLq{nFT+W#*H`ETWCz77xwj1uc&zkHT|zcFB01F`+B{Tt!G zzd^{U|DOg`2tWitluv}7Ke$8AwPXC9Vq@-i<}w@wDGM}aIi53VIB@-|&WS0*cC|u_ z=A{mcX8{SehSS9`Po3@W;>{uTnV_s@+DYzT#uJ1v=IdK`-*OKRN{gv-JOBq3fan0o zwrs!kK+NN6qulLG#caBg*~L6Wr=a{eAp3WkDI7ifX+20Y?}%yF22tI0;^?2a$2ToX zM%;o(E^3T*A(q~=Eg4W)RWCVUK6xHwZ1tw(^Emh|{ls4Am@(RO2uaEzF|G!8F;ktqtY(1ssef`SnO z*EEisGu2~@;}MG;eJ|YiZsJ{0r;4Jw?qX8gD*|<^3;sJ1D1wUDXtW-kZ4G@|)#zJE zzsa=H!{?aTa%Q#EciF-X{k6MFsi2G~LgEze%SeuOtL3;^>~Q-j5Q&>;Az-@d8PN39 ze514!ALyVPb}!=Yna8@wTtPmSOA)cnYFiw?$UQRpm~JL7>w3|bC1dnO^lx|LU!svg z7DjLbVoSgTxyYJ(`l65gr&**7S7O!?f6t_~^9e7gEid8XVV%w<^F{mz_I840pIP4it#ZQ_I@|2u%@)w)DcHJDoJzxv^qfJKDr){GMgg zD9&s3`cG36#R4eowWZx3x4ujk-3ZNq?QlI}{Pm*`BhphtQqsPH70Zx7*uG?3=D)Fz zV}Rdc#fZ>{^%Ds1JftY=*Xk238&vaY$;^KYdYvMpxgrWTnbNBK=6au0Z=;qotLj3Zu}{_$`DeY{R&&dwY#~32pe_S=lDBFq z+uJcKH&t5_YB-ze-VDJJcXERWY@) z-<`*E#kQl*BE+ZB*>sE5w)=Mc=~})`{QGYSBng{gC3bQly^|k^dwGRA{rSI*4hp6& z4%8I5oA*ozdRX%3gve`bT{^{ekB+8W%k|if4BLBD|8SH%aV&r5=8?U>_3Bhh`pRP@ z(qgr6ujr^taydXtd&!Y~W3Tzuc$n=4%aOZ<%goG)7U5*#qo^Z#$l#Hrb^j(hw43Jj zua&t{MSUD9)9%gZ)x-S2d4Y#8pRr)iJzY6(q~u3vYs9a&lVk;noW&HOrE zBBK^xbST(8p~djEc3a@X&4j{Iy2a@1Y131em}v@-JaW|5bwO_6XzyUAdn)j3_U_5W zj?U5W?$+Dg3-(y&y5p^RRWJjWmqzM?XDRPC!%kdImp8+hVxlfq9<3fp+CF@k=JNV; z_Q$*VQo8((9;sXF1Lp!Y$7q7&OmTdcmG1|S>~v2Pwa@ciH#BQ?HfQr3x764@jS8z55Uef0+N0M)T)qCO_(ckYB zUc%>5e-V2>O1n@g>{QPwE zoR~1*RL^a_YCGS0MXu+pLh;e<;)T3hey%r#g+hT>wjP6st2YSZK6;|kAGIO~K491ro;;Gef^hS=$`I6(Y!cCaaB z(U}5r*1`a||Bl+Chc#2NZnO6KvxD?Rin(HYiiFy&J?nMM^h6v97moKXj_&!MKpN4Z zOgBc8|5l3u(T6~6pl?0JPm(<>d(+MvEJR=9eh?^$KhvGxC$eIWR+{M5%)C3?$sFb&^7DTB zO!C*$0S$iz=V~ zTbjK~Z?;oxIdvyjia_?YOJz!tZj)w7h#l$I>9KVs(|p&1iwGplqfLQ!BxagDs)ROH zA;NqqQHAc>6mEkfNkey!ywQt@n1NyjdRWBfcP0A=SC$eZX4iw-+Ir-FJ>ez<&}mQc zLj_g=etDeg%A&g6t@Rlm)yj+Sz3!t^mXBSW9O*oqxD$k!dPz>8qytTBAcaZh@LCPm z8RPzLQ+1nzdK1M!Q`Jz~9V}^_Eyc6Fn*m`HY^vrozIQ5%gryjw>P9@AFEi*d1-p4? zdnqE*4n3wT-tk#(ZiMcSUVh(5h)cZmx_q+Y%F1gv_#xHBXQok;FIUIFZyCU&~4zTL*bnvG^htS=qGNCOA=#2xbtfXrcS( zr=;;kNg{El$+ssyh(K-}t-9kF?ymdQRtl}`qNyn)f4*00wi%mcR@ka+IbbAIk$Ogh zQoK1;b@k3u1)|p>A`)K&3JerwOL9f$mGEk?$NF}hZei&~>9?+Ih2h9`{UnAl%HnJFjM}w>p}Z^k5TTF8sLyl z7S*k3Z{36~H$27ZmMnZzd2*vIo9to{r~gIAiQkXw#*UZUECNp1@0MR3s_tDlZZ6}H zb-nW46`daWk-Ry=9BT`~a^`0#6wHxtH74%pT$!!l3l|vs&`A;gel-2fC3dViI7Z}= zDwTVhmW3Wg=^4}GFT2v~_ANWpXfod26X_asP7%_s-1TJVlS?UhP?}jFAXU6BTDN$lBv$?j>%9omdc)P)@iEQnZmHeN^i1v=0s1v1 z-lMi>4j!qqO-iql-_5Po-RqpCAXQ9aI@5YKOGB_H@S$Yy$)g(S%pML^JnHox*6}wh z*$WbL<55QoYS(-h13Ko&UnRsRj-c6>F?w{@+eGc)AlM$LOS9u+0r^ml` z_jGSgjgK!mzcSpMdcC=o=(5+gH)Sj3iTu}3D>uBHh-p`uU((lWzqr^3Z_{d=@>o^L zmyNOh&ZkC;&^VFX#z~b(%|BSNWtJB@x)*f(UHjiq0bLM+uj zxvGo~9a(SQn#)G2#OTBCdag{x{aj>&8~X4QwvRGqe<|{=J34<5@co(#i48A zQYoTeDKk*vW7ERwG(wa~DW|fZif>x)G$_GMsJQG8v`PJIO>jp9B|`M@9||cbQ}v@F zdk|T{UX#3|ATf%Ko9k<(f6mYm6Ctu_GWv+BYY5h#Z7y=kc0|ggaFV9Pi0!;0z+Z!} zOX=7^Jj}hl)v3)3D6!g(j zf=U%X*UCc0ByfB~!nA$p96-W!dl}oVjhVw+yfProB3|q`_e%~p-d)QS4ILu|+>yZ{ z7<+Q{(1Z%DNP>Su&BkmhwcR~+{EP~3y|XPjWW^`|{@{WcNybrL3{d?MLPv0`Ry z2;M7_;inIw!5A-xNC#nfT!k6jR%y7!HlG@(ONO(^*L-;o^|1oFh!=ShCDzysZdl=X97J!XlfnL z+rii8Nu6$gewO+%{C_=5IBHOXzm~5TNNLc_t=@g=3=$4<9yeT`ZLtD!NU6;bQf2f5 z;bHHz708$D?1<9CTlfhzr$m)9_ON%+cb-~5Pfksx#kpk!GO-;TI(9ovjLl5e!;n{z zA|A7HOQP&k192e#;QF+@w{Mn-;`8TJqc1&b&d+AAqH7K(WI_c`jba}fN3sV#7P4a; zk}@_ji|qWSzHYQdmOxRNt;tJBup(n)qqFoTtFk}0fF&=xaH{leTZNGqIGRS=@qb=u zDN1eRR^J9B%hjX9!)F>CkcHfR*~^3#H|v~_Z7S{iaL`EYSiOF*^%y?gpgXH5+k zkD!zz^-k8${P!%#7jW9{Ok&;TDmhTpPpG=VbM!QB_k)5q!-+GmD0jdbAiR{dfaDd5 zc4ET>D$qNk@F@x?f@*n>n|m}`{B0Z0gI%mIxTfB|xAx$G6Qcn5MS(p>Uot)}*iAASwH&H2V>ve&9BqKS)(YoM=> z67;cCgreDYw{MCYs%!&s*nZcQjcn9tk9e{&M%O$aEqHLbIR55}1#Dbuq4jVKCz#3J zKID;r+eOKg#fj{nL<5i=Y@z71)eVgSNr}+!0Wsv3^7T!2sUn+w-|t|0xAeKSE|yWC z2K6OSsd(F4)1J;;%EBdL`qXQzNiBp0>E9+ie^RLo{#9#kPtBnn84L8#UJ;Ck~$Suh)+xbNTo z@$l9k(}wqHvbI7_w_+ZAr6om6U*;h znEE;SgYYpXhdPj1r{A*jkUyVK7XXOl$C%ua4UPEhk`Z-96_rx2_Ty>C z*$z-@F=gR(=(G4ovROn+*rXoW*pN_8e=3NTHjsNQ6=0+;6%F%ypdH7BwIofX&PR7* zCbGrPGVd{Lt_@R+XxhrUbWsdbU4l~<$Ez1_UK(LPqLwb?-h8LSzoenDCCK$jt=FFY zs1}`N%|UdD#~7&OORJ^v>fQVI8st@)fwU@RTTtbEtFx@^>|!#>;ShzBpyO~+5O*&X z(!9B3t*w2T@B9PQLqo+R zc*x8CK>GqNsRLdGcFPv!*ul=O9nfE?C_K&!lxKul+ z!vkla3#U2YJR>)^^vtYeSfwb%9We3_yM-?)XNWlspy#0Oo`ZWtYsiOw7@idsuk@ey zDkC1;hYQNnPqE?y3TY{myX`-Rk6|Vg>hHc%Iv&n*zXzD9c~cIP=DSCAS6a7tmvDIx z$8_}@ebDjHb!fPt$Qbqr2{z?^woy17tFw^8$JL}dv!yL6FG)|)(*by$#4V>h>&0a`F-Iho^>wZT&0Ly6{fKTgKx z8QA=^HweCl3cNuu%{W==$-H;~3sfJ}>?%DznzEIrr>8FnZ(K%Jv0-n^^zvN{G@M2u z)T9g(x-3rsn`O7?=g$@5BT!pxPPQaHzL`r&d;c3a{C%0s_3hj7v*!|& z?-oLqq{P}INSMNr5@Q$*ew6PI$Q+no@K^jO?CPeSN7l?fdLwlHB)4LPg!2uV^HPLO zE3qN;-n9gpp2bPax{^nDxM{uod(U|1eefFt!wWc|JUvctufApFMxz|D;QCjxIX(L* zINi;(ReP2jD@qwmU78a5xYI{6K_gWsWfm1v310p!Gb{TOdL|vELB4N4>aZM4ecZfk zx;qBnxSOXAO3FmGMVIK*xVvJ@h0}nnkn(ABLjBbZ0<~~e{{v7m^bxy&Vh_uzj(+~O zj;vxs#nT?XE&f=cE4gvqFoESM+ukT_?kQZ=*Qi_Zt_+X|hQ;OAC6}(X0!hninp=?uTEA(C`*(I? z)ZoZ;Q+lmRrlRtIZ3Rl<6d5*xM`VyBcYdcV-Y9@B+5$K}hJJKP^-uK4l(=~p{AqrS zbDK{T`;QO8UVW*@`LmY+T}Pu$Xh0HSmoPOA3UB}=d{d$l-?aO32YhfwvLs2dxz0c^ zx8WSa?0!@=8%s(21&tSoelfY~agPx-Lv)|zu7ezBw8bxAg1ffU9zMg*fO;108l4q{7lY84lD9 z<&{v#X^h%`bFwh>LcV0ry8~$_<*8T_>@I&NyuzK736~F9dkL8#p3JWAiNh^io97#; z85vS7mt-~fZ?KDV5CFNrXYk_1+qtcjFu_Q`w}2w@lJI+9A$!ta|HOjD2P0bt3InOl zR|*U7?yxe?KrRYr?v=ct#0b0KFjnc`UU7p)C!a%go1-LLMdZT3aXxjCQ zqZ{Yf*Km7Wo?jZ09(x(nYTn3;07tqLVOzfqgnm!swOxT8+*HaGUXDa$_eQt1-z^pt zu_umMf;lu+I@Kl>ikI73vA0!vp#f zKY{h)EX7nj(Y#K212x+j&p)tP7;)e}oX~Rag{!@fS7W3*4|s8GQG6tnRKTk*K*ZS4 z^l>x#$&tMdfXPq9?Tr!|cHQ=k;iu!O1e;DK{7p()YKep!GskW5YY$?>9B^@MUNw4d zhuLpderI`tf`yju6m;1pG^4nR!#dZ}2%G0gDHhT}UY)%>EW00mi}}qJsGmt{SiKy= zKvrbfTY5;~PvJ4|2M(-i1JWpx@*`Mr120eO`~qgl6stGNm~Qc zw!`-Mjq=f|Bei|8yBln2o?}C1_E@E5Ey`j~Pi&nHx+*7e+Jk-Wh&HcQS-dKx~;+a z){E5z0vbM^$T$B4SX@KT)Aii}~9y!4bEm z2+8i^YxvjHpCqNa^D{sxQR$ksfYuv9)q8W-fer7L{t6ZOr{b&6@3j~}vCb+zefIYdV$#`5Q`KM2#3AKj~DH#Mk za+&4(?%yO3Q`ivcZQP}sa_)n%$AnjL;}65|h$tr7k|O(h-48i=U#4@9+r8-0BARD| zJ@l-=8m8=HK#x-EE4>FLc-L@e|0I*sim`c0LPaX!&&u9JV@FR9!@Lf6mtlnREI65w`HC0Le@8{GFaFKB_3GAUg1Za)AP zL%dXo3f0adsIZtQ7O>beTKuDLu|4Zfs7MJIz@>Pe4EC==GLi`S%nuL>a@%s*1$jd1 zT>hY5L0rXrMoK6LjReoD*Ttwo$qBEv$MoLH{>ZV25vBA;#qb9rWWpk zx}03;yY~q6BkRws7VnDHDb02KLhqzSogpq zK{`|W=)yt{Q6iSGyN1BjMcR&E+* z&kpL8%bL=78NFS>vjS-SUuUDq#BS8;3v0*p9dw8T4ss_-5!M5S}H3tCAcV`GhT zDEtg~d?fw-aED*%J;_4T#H5qDr6sh@jSYc6rv^7yivvz~BA!iESEx^y! zO$)q9;i@3VzatipNXV6)v(-_{zJ`+Lpj1*3CU^^+b}da8++q}X2U;2? zuvgD@_4CU?FOd!MX_z) z|G-7YhWl_pJu~qMKOC!RYv;E5GA4rW*t81++gawK85L5Y|YPRT{c z7K9dqIhQD|j^FU_b#oe2j)AkFG$e<21aXYR$VZrNN#9!E$_pBQFOMe8fZ_F&v#ERg zE@C|gePi<8X605sy)U0=)<~C$4?`wl;xDjHQWq~jHoJM9;vp2dzE7HN<`xkXBsO_1 zMmIDdyBO%xk5l7@n(ep%76N~x>za@WAEnl8GN)uw#pS+ zY8JcP1nh_h)@Yfoqdzm+-=XX0=UcB=21bDd}Z^t38+CZ)pvWp!}tFJ`eEnzQar%j{7B)v zgopn@=<-+>-}3qL^@SY#BTAcBT14!Zpm264=>6E%44Yq2t97kVPWCK!nSvP;}%1@Vu(G~F$RYy1a8FC4J@+$jN88Pgb!{}sTA zaGvm0|1*&HQ2LDkaE0G}aF~#`sM>f0uo-r|({!N=~hqO3%PRvj5{4h)eUkF`_Vr%C%2HOKn1z1qETW=?%KdIk5TN>*l(!$HJ3DMDr|F zKRCwq-)jYP9?#+QhJyCkF1Kc^+wQg=H)665Jr#lpobS<)qXtR8y&qffgRt({H+Bw} zv$d}r$Qj$Nh@8?1hEHS-HH{b$zetLIpq~}-el9^dET&##4cOOt*+o5%@B1y7FD8)X z{Sa&xPzoqt2xNSw(6Uuvgtt(5z3olCe>6Hk6Eojmd6{>-_#;U2S@{t4m?S+SI+ss`IvYdVTC=#X!idVp)?TlIzp24V!=RL1YCL`J<| zOk(rQdY0%grl4R1 z(-Jkcge*UVdLsQ3H^CL*CR}gEP2Ya=4Z~@YI0`@QSu8a`@Jga=+9q3^WG+6x*XC%z zq$X!zLSRVueOijd{Ru7eFf6EX1op!NDy}ZJJU*9~kEQh|UW;O)ycBsSDih8-p)wCN z6B|t{m>9zxg5BL+rm9ACM<_k;xPRPapYJVEb6#Fn)%!;BLLYb=`K9Q%q_2?bot0Ho zIsxR%><}YjCC9)y;jH_z3A+v(f@`^R{{jd#OJ(`eF&#|ZyXal>3m~rgKJ(jSxO3}= z2Tq{@w_wu-%^1gz8$UoUM)u<_V6`)Vn2U<^^;OSfs?$&3kR)hV;aaE0 z`Bv=QTwLlU*h(}YN2w%`l#Q*P^0utpSipfB@TcL^RC4@$3Tlg>JpaQREkNU&@$X>4 zt!}-z_Kc`pGGdku^Xmt`(Q$o`czFSKm%cJzz8E2%l`-pRN0KZdJ}tn4g^!);mh$P z*XfASihM!8Qsz>Z{v@5yhZaGy0R6XdY#=el7bRA zvM({s_mDnZ?y+pOB; z@J8u|_}kMad{Co`M#Ypty$}}1Rl@h`M_=K1-_}mZpWZ;q90Bw6u0R^4isZLuFUum< zbJmYiHneVQKCBU_Q4IgcsDGLuCnJMhB|l|Jlo5)Yi^FeKr?SX9{EP~8A(~yPIhrXN z%O_8C_NN$D>l;C@z%!oWK`qq}!VRDMCzf}Ra3cwmC$R`2a%EoKwg8*uMS$7;NqU8}H8W4CH20 zuc!6t#NjmP#+~|@5r{7>=;CsaaSBXR&{8EQs=J_#-1I7!QhvsH^=_6CT!qqz)qCuf ziL`ug{uv|EP$>pBBqDO*^`BKGTP+%GaRbr=Dm{^GukB!=YWOCDn(&V|^w*SWZa2W- zP&`nqDIGn)A18|5@0S0!W7}2umXQPi40#^uv{C3t8hg0v3ge2mU^ElSMqy8uZ#A(3 zXcD!XYEDow(LzYH4uq2CoLK52aCmUeC1!vThy3+JGJEB0WvnHT)1bFZ)3X+27iFMOKiptYZnnmS>j?S@#O14?@p<}vHoz*0fi== zf)k#H$G3Z(+JkoZ+0-F?_UDOhUbjK!e|~Yj0*MC2$xvVafRvG%OLffs;KuqLQ*RXY z*zPzk8CZUO-Q5g>=ZcCt)->+tF5c(DQ~n;by#ip%pz!_!Q*W6jd>a*$@(7u~_ZqGf zI^b^%!wS09Eol838iSODn4kFvG$4yR3PS0J9>Z68?Ir*NB6NPC(Q(d-9hL8W{eg(= znR&jI_2Mzhh(duFrw}=abm9{UrCHy?wND`~*JI;;XiN~**-2t-x|M&i|592jxj0oJ zFbHE<3U|6zEBH7!BO^Sh1OH~+_1CW zHJiX4R)@gDe1n80j{Op^?_M(``;GyDw^GadtT+)db#`_J+ryM- zLP*b&8mPl*)207IWBH#CI4Cb#{#^^;zr*>kWhyonEJ%aZ(Y~-hM6J|J%>yL}i1}B~ zG<=YQ2E&}eBAxpaob6A-=2fQvD$z{s4no8hA2W;)4MscPzjUWZ1d^5Wg%55LG2aqA zhGpemI}udBKK%hed7jQ-kw)GZ|1U=l_K`@W%<=W%{soX~v@VNj0tLp?9R}uo)kR53~mHh3G zMOlyVx*$}E0rb+DSy_5B)y{|(K~m1n6=ro8hlSG)lO4?g_y-|ZcQ~QJD_8)8#I9*C z{oK%KTIS_JxNX^LnpboGrQ1Q&g$o?Q9UB{q!Es(k9MNwO6fVVUE%4{ZC9*_r&1qPEd?mNVOB-|NzNb`iXG~Kd?t~ZGxAq>O z5%p|rA0ygQj4e6yM;j0T%Syw`Ki@9D5En|11)-@S0$jIuns$>Q41PB+B6}mfL5Frn ztOy$$(%(liUJ3p;cv7nDQ-em-{R~XiP41&9(e1x@Z4`swXi@cjD0=P; z{A3D6rmaL@3M79M%Tr-tXzz{UaFa{_EIvb$=|Lwb2k1jInwxR|EpYxvDE-g(t>OP7 zin%|89*07)A0^&Irnb}94=FBj#DetM`wm2k(5v9fJ$+hubzR&VStZ{eX#`Ex-T*;K zLu2dw3TR@tiB#$S%yYFCp$tV0LdwYwk5hnx#%9HZUMl%$>T1b(Ug9c9D*1ift68S| zUr#nc#c=^eO(=}|^mu-XkykBNQClUOfQcjLwG{O|DSO-=D~=?Qb{~!$Sj0zwpCvSW z`XbIS^l*s08QN)SU1tiM19C5VG_?hdUSN>FWr1PkjZ22TS6bV&mxh&qSF3xkKnrS)*_9hA?Emax#1J5uPE0U#F=l=)G2foN^yd}$ir>F? zI|Caz_t7%~{|arH3%=)smDK9^OG|oc73WM`jI@nwt5YK@))wY3lQWT?o;ATD!W=Nr zQ^QFN3GBa@xCJl%VBaV)z%^=7)O^QdfYLT$YN}|up_?5d@^Zf&r#Sn;;3Hf%FpL#@ zS@E1;_CO}7x46gD8{+jZ1_m8pzsmW9pXqw?VzP5T%%s;-n4uPmd}o_{2eL$$5c|0@ zt+Y3Rt53V##ocM+(Nmeg;%SMAxfkDrz8}lYozlDkS?^zA@Jyx->5d75j6Cu;ERvY% zHs)=SDLH<(jqNgxjmB-vO+QtHxQ@YUj05hF>r(x3j{u%46@nW6+U2!gNr1j$DglHt zCgi}XQA=DuN@-nVO#xqEz9$F^&%vQo#@IUIT~t(tRNUhguN3?g(qU+Uotm$mgS||k z3UY%h7TQ{kz;xkhvkm>gBisPCMjMsQyLaa_lkNu%_+(fO^j3V4j%LaU&&?%YP8jGV zKA9Zvry5ruN9O$y6(z7zF`vsNcC}Tjk!g8a=3LQVcCCzTCSx>yT8Cxmj1AAPD@?zO z@!7uoQ@Q>#wvHv+=GEypcNMkOnLeMsM~mXtbRQb!ZdWAetEy7%4!iX=jGv27cIdpl zo9L{QiN!!E=h&e`(fD}^e&!Uc)>@^H?at@5Ba_qf_TFBZq}Adzw{lGr6H;0=#=QFM zIbx=83TYC@_sBYRvJkO?vFI|woiA?KlumLAX>Iu^kdU}Bl9Ag zJz3e1(?i$NXNlF7wbnnBRf!l=P{g!?ALV3jx2Vo$M10bie4%#`R0)kvNT4+*sd^02 z`}S_Q1${u5u*g|h33nqZul7=+tA|_K&xVZ6cYop`&!X%V{bI1KrDd5-q8=*QHic;q z8x7H_pMj|sNBwx!E!<%ZjX3>-;ZFSpADbXYCfyOS5+azA=gEEL$$LrqB4IE3A_h$~ zK{L6bOpJ=co{2%!fbTH!t@+I+;BV{KK!@6N416xXA(P;4HmT%XOFAun)_;~yDKy(i zCNsj8RUf>)tol+$_eGWfAFljI)hBu08T9EgA6aua^ao4~$VB>diHo|z?wRBYXN45+ zV@b=%lD?zxCp~%oNm=c_=~RXeyNb1o@pn9PBcpeDwI?cjT+$z%i4U=g>-TBIv3b9~ zrZ6xnNv3~GC#|i$8PgJcqbi~G;A){O?`yl4her6FLA8d)Tx_BLD+K;uK>@4A-=2m= zq*Bv&ejXhe${^BWFn#ucVSW91S@yo0)$-LJ~H`h&?T(SUj#x`N8%k&{q|-3bb1amt8_daD!~ zaTbXRqZ{z3veRm_)8MiSReukJ$WdHvy)YggVMjSl z@Jnt~&Rct_DkC;`@?0r~&Qw;TDKY2<=sa=m$@{&iw=TRh)1+fCK~7%2>^!D+M!hxm zA3&(WNQ?2FTd0^uPPo-^@o};bm`Au%sZt5=ENR#WIW2sD&Yr7+vH~C#&B+JFQqt(^ z{7J7-e9EsE;ISLG8(@7I%De_D>oaW14Jz*I>khPjs`xBkt7L7rUbuXJ;)&TqJZoJ3 zUOjl=HQdx7j6MCki<)c_3E$uC8Fp4E^S<|6)l5z(QMxX+zq@PW)+A`(H{P-+S+vsp z{^g-H%Y(u|^e4Qgxs-;P%3|iG=FwkX&}BUk5N|mQcJkp}BQiSMo{qdnax|)5K`k0s zqAZeGTCDb5-7g_AbyQTN+w~|%`K_AiMBKzJ>RB7(J~_9`>v%wEO9-C)u+7=;OGfok z?C4V=Y1kCy^fMxj4P5RjX#`E;AtM}3Na~u+E)Ul^u@-pMF$o|LQod%kn3A>%$*ftW zFJG?b_>E}lW~%r?wR+hvPeAmHYS#VigR)*np9zL|%Y;cwFox*5b8i@`xtpS@s&4ON z097?N2;la@F{q-Hl@Ajn7-{*121>q3Bvl~oQ0Atl>SaL`zx0M_ns<4v+M)M6pA2ZW zt#9`-A#D$fi+fDZK;Q3VbEcctK%J=S-A4UqEp&y}+yaAdQ*D-JJWu*mDDt>iK+?e> z4Lx+{_71BIoX9S4(b|~5U(uJWC;<6JeQ!#KEyzA}l>m+5zx*#cFNV5Aat zHRNHJ$b;BdCwP*&QmTgUOZ$u>EV!Zx2;WORf8LLwEQ0#LIbnzNh%%94I_{;DTndJ0 z^=?X4y2fN4SqrBSEWghWyD)-YAE8kxH+;5(Sm6sg6EE8wwb*z zWZ)|N?Km-qFysc#yt;uveKg<_r*~BR*=1n6L~Cwl&*3tY-Vv3wdSC*3c7&>tc8*!cxn2|u5W6qVR2B)t#^Jg5Z}_kBPK;2Ahfoo*6v85^7_T)o9?$*w z;QM|YSCx;6TU|rBdxU#)k&AM|&}8||RJCT-wRxruB)Ye7=K4V5Iy1G4|GB zQMc{8uXMwJf}{*BFd&F@N=tWxLw5^;NOzZ{bVwseBO(pbEsZoNErNuw?(yCG*zd9S zZ!LWO@Oac2{N{aMah{(m!F=VGpMn+uc7H7MD26 z!JNu*f#RF^|JuSpmFXQ26sPC>$lb2nNfnsdJ|y+s zDwJvc=mB-c;w)}g)a#hH@lphi=jE&WeSBWpR(9YSy-t0~`P#=L>J#^;pNdzP92}w- zI1^|>r}pnmMjPIK``}8b*N{Ucm@fUwsaIMJe?c*j zVA}+6iY z7mYM<0Z!N7wyVA4R%?o=(^=~jh9Qjo-lS{?{ya=R27eAOqj-!qWjx+3k^iyy_z*%s z3R_Uk`-pSVARdnUXL&yRt>ABpkph*?h-+>(_t%Y=WxnA+I@K1S{tu6S7FO3Rd_^T% z0n=4Kc3%)1&2iM9^e2?k*f;78m%ETwIhpIs0C^2@pMb@~(8V#nmGXwywLPW8cqDf? z11x2htB1r0u~X*voCfT54~fAQ;d#~+_y47e|EIvF2hX4Lu}&0)2=1G|A8vbzyy+6w zZ$`KP=L`@VLzm*MIi;7-^J@I08ysznd(WzH)m{$RKYIS9;6#Qs3a@@_q?vUWk=94? zB3rz0Dx~eeP!5#xkTwXs{pe(&^{606WmDdd{`+CLBx+un$ODh&AC7Iet^!Mw2H>kAlP2yG1ah}>H z7Q}hHd(X?Z{+RvtJ_1OMM8SEGihhlVNBE!G`jw#_EF|IPRixJ+z!M@w&CYP^&gOq4 z4vcw6E`_8_h@&aT20u}UxbpEx{O#AVhXK?~dN#~WM-fkA)d!-maz)ue!0rDe^E@=R z0AerlYU*T#4SNyYtg);eo1}AWcMb}qh^w4EJJChB$;=% zruVBoE`wT8V`p*R$JSs7iV&V1p;=<)x~Juf9P4!LZG_x)%#ZbgnP~O&Su1NkK>AS~ zKKs}d^?b~inl^haZK7|v)e=KTCYz%9Q;+R@H`l&jsx$UjukdRh$rmEtU&(r7J**bK zxL1c(p?@?!l?jyU3TmSLdz=2Rewp$~R4v*-G}Mnq#3Km|+}u)XY6+JG#y9V&yV@%E z9d^Ed=dst~7NR;OJpBfS?lfB@6j%+GFf)6vKA#zq{)B9@zrRzR>hSj{cD0A-a z{!6yu!|6ExIGtAqzloya#3cuR%$YInG0F)3mDH>H{0%A(>eKJuGZ=z-i|O0%ZQnI* z8Mge)uhGw@=_4p49;-nqno6Pm?oze&BJAq$@v>I0bi2%(EgYlF^pVAjjCw-S8uprr zL-sc8-iczjrM{W~pwJWRC;NwGh#jk(9_Yxf`o9b(1Y8+>8SINQYk4Q+A`EMeED1f> z-;bZJ=P7ZtdQ)G2+REG9i8jhgwzEU-nze3bS*lCJP{}DFd9b}bn)((P2sK|_;N8hp zqLz-LkLH#??hWHIv9q^N6xdiO%@AJX651M!dJ)Ml$U4A>VN;en%)|JTn-{tZ>^FK2 zPo%oY=1+>9vJlR+gtu=^C!Q^popEBZ?kYXmSK{duDvjhJSIo^4yrtz$eVi+{R~pL(YAAW+8NMk7_*U%vfFC){l_s$^CVi zS9Zas!Mdqxkcfxu~VoU3E+)ihJGE>8G;ll1K%zERg?}v z*KA(YQHH};uW^cWYCf7jNgocBA_?5>s7N~HB8yz@wB|FIie4oX;3=eV;3S^1b4%GDVdwHTt z$Uakz4P&n*l34rYBH2XYR;0Gm9JzH#i(dL7%X5CKojG&?_o_$1mf#flpqZz$Mv{dDALT2Vl zncD?&;fnADau{?p*F-X;b?3R3o{6|MEh({66U{;%s&`T=P4wf7Ks1^6M3N=g+fp_< zvRX*q<)KV`5%oOQi5r^S(*dS&Rd3re##m4t^Fmi~^O2)y!rNvIEitc&+xgBm@K@Q` zv^rHTW+;da2CXVobahQDc#&Dfzlj79LRq=g`v)S1MjuaaQrzd-m(Vcx=PZzq#^IpD z#kJSYW%KOk79GuFBFv&vY6~?kR{M!k5rWwg;A3X1pXYzF7eMBoX@;Wg$@3Unq*%}81)dNk~;pXc_$S?#LRQw@$iBhy- z*Z%&UYvb$b8yL<*QJM`4`T0&ND`B+%g}~j!!fup z_d7#+-aWNITbE%`ps_Lg@|A}o{0((qFnPrwawqcfyzo!h{U@TM|K#vM6k3 zETyGWgX6hVCRSCl1-6|!|MQ~r--RqFAyyP<5rdMPcOu2!QzFI2PKw0=%^7i&(~pyWTUele&!q#* zRBuT$<1(h;VVX}o#DB&f(5r@on0wBR&e$aphty*sIfiX@&pklZq#?3~ zPMZ^JPD}SJ+OdlsySVO(C@3qxj3lCcvHmo869box1H0*RR6&BA^_Y&ASCGa;3c@a` zQisu#+dgGB`hflmACp{nR$Hnn1Be;M$E5?MI?V2&++L>k?_%KC$0K222)3zuD9dNu zP$MtDslBbgt@n62S`293#YZ@dd8;W&tZdcP%N%nF9_tkQRYnW>to_G83Ohi#%Xs}?uP}R{SsX$h>nQ|l=fcyVe{euoD6VIJJqf@!+7!tIT z7~*kBjC>|}pQIsK#8Pw5cS^R=mn!E~xk4s684vwR-)q>m_qk`fr8VPl8J<~ z*<;PNDr|_q(bgP2GQx&Shdz|^B_8E$rsw)HV0;Wm*xr6y#b^PPp`)lw0vrxJbeG2m zJrapdOj|o89px1R1H;tPFg1~yB(U;?VNMilM*ySyQyy+^T_w<$e`aIzy?E`k6VCZP zM|>BWg&ql^kraN59$6gkjB$i_ZsAljItF140|h()2{@g>K^<`cm=)X! z99qveT@KqZVz-w%`5V1I1V~k}_Wy$!M+`X^@zzERKHLI5`3E_7eNx!;8G$n|8Q2rV zEQSO$l>~O^fjM3Ci1*8N$b8}r2rgZ^ffWBy(`LHu;Jwk=S>{EX#@~h5EeLIMIZ&Sw zc9VNND60p46|IEzaHa<-z^0+X!pgdFJn)FuRgwOyP@HL_wJ09R{tSn<0Wd$PRljbc z^qf>p9+-HiSmUaoq{Z|FQyPXx0zkvb*BAS?g}5!D3liVpk#MZj zKLZefZf`*D7*G=2Gdo*4*_q%jC@5zA0?uhy&gH>Byar-?fOiu__oM?za)U7LTUGJx z)lRH0c^weH9!ckBr2$WUD-a6vZ)Lcy14Cgl9?y(ej2fZ$gd%SeqP`yJ^8sv8p`x=i zwxe*GW8l5$NBFP@rcw_P4rie8{+x<=?OzOJqK#KNjZV3PP4Jl4=Tj*zr?Zv=2#dLY zI1*iYDWkvhrEygwu;*=j7+|l#CgG?Z%;4u@Y+19eYCHt`@OKoBZwy~9PVGM%0U>LZ zEPmI0_jL5gs<1}ne>qJEIL(Lm!t5_fmY1@A-ZLMb-?FlAJoH6~EKr0aNN{yGmk?b~f=5{Wf64Uajk? zjTc;$7GW>Z(19`&VlM9gRu(!60#J2Jw7_64_Qo~zo(J~h=in`m z=906tKQR;iJ+oJjH;2|@p0P4Gj#qOFpnfMt9mXoR3<=3qV@ z`4g=nb_Og*CO9Mwwiq00sz9P9Rpr4s63MNL<~{~=47dc>cks(J58XEAd+TH{@jK>qi`hh_TH0U z@6evN{X=OSw5uZ8SZu5OdUmk_X#t~I4K&o`>k`CeygnkZ3I)#+Yv1^^8Yw6nxNkoUTe*WG4NI`N$b|h}F ze2@_9yASC5zltj}=^1vvzf@sYagwsQZ_{34MFP&g_DrNqhKp zY|QxF|0mYjuIu^JK&kBk#Xu=59s}{)v!b=|HWuruLj~+lr_=nUcL5qe_!xjB(o~Tg z2PDF>01jmrC{A74kTCklZOaL@%qU-t{o&9N>+32mElu#fTBAN5l^{slUaoux2^*7= zlKKF^_ya)5$G!|6`aPkJ@O+6iAmZ)l#zE=pBoKvxNt2&ngViIzqa9(wO95_wEuLAk zyJe7gOk$Yd3>WiB|MQzyH4DyLnaJ(bA!uE~#vQ0!p>2&$+qt3rjy^vrxbM7~=NYSt z0aTQY6R^uM0rzN%5I|R`85-JKM7FdD%>w&HMcuQM9`D~kYVN-s#Wft4#x=%hVnu>` zy@&b&JhB|>2ChTgAAtLU<>%*qaN3reG>1WimPMKF33RbSYCp{btE%y14D^3leT)DB zd9x_@0BXiVy&w11H*9PZX}Qu+VdTw`ai24pSAYi~0gMmP1N#_-ElmwzPVMCOC`UqG zX6Frk$-cR=9LQv=pAkpwM(0astwmdpUk5Z^foRLD6!=?nXPvNaUj(C=kjpaKJFvDN z?)U=d)Z3h}X#xo0z`y_lE9*el3k}`A;o*84GzdBG3>@WSjK>J>TlGZBno92ilVhVt%A@D(i2FL!6`%#R zw%+L>>kT+UuBHY!0_6A$U?grhg__RNc7=Cy%w6p$`z9a=A;(C>*eWG=rW6mgM3)Xj zn^qAvO9e3Qq3EtwSbfrk2qGXTH!l6lwJ5|Yb!>A|H!!ek@?Yjy{&vs;fE3K?Md{3N zP)x$2XfRz(Y0s;yRKgcJ6gvlm6jmS&AMfY%{BuU*LV30V_BVS?C7vY@Q#w*>rAxrw z;&cZjtd@+IOP&E+m{GJ=G=aZqqd7SqExc%9(P^~BaYf5w<#1TheF=aLY1Iq~Hk1y) zq}Ev0unK&dtdCdzp%+9Ni>k#Rh!*6EnGMMYf^rkjjii(fV3bPxMDuw}nqqc-7jk{@ z@j#>u)vpxIb#pMDE{3lo$jD$_HfRFq$S<(9x1FUNns*rQiaS3*NJ6gw79u4e0J%)# z5X4gHX$VgX1ar$W%k$m0j66awQ=oi2Iz4&u)_()Mk##&!gv!@>0oZrg7{i(o*880A z$U!Fp8$REyi@q=yWtiC0(1w33E7NDary-wTFF(d=dIl9y&4n^C>G#V=GSJa=&dhc^ z6oKRWJ8uASD{)3ApyIFYB zm?BFGwx-32PHzB*qoiV|`-d)o1U!jLM+`RzaxG-2=m zBQfd?4y>-QW5wlytY`ojs_f?1&6NA7_aFC8!&mCi{f|&qw=(DIk&!RJ3^{O_b0Al$ zn#L;~!P5e$Q#hkqNPE0atsIt;k4=oL?ub(U{CwlRtmg}5tkr+o0xBFHZDLYk1fo|e z>@A1lo?zvK`D8rLBZam6gm|t5-(NSVP&rJ)9s@41Ld^x)XU{mD1&EO5l-&Dd%0Z}> zJvNM5-3~zx3ALtxkcvT=hEW(J5&HO2triekVF8CfjTHbxaY~Hh&mTb3bkllBG%ez& zi}C#_JG>+MVODG?`|(w=+Gvrkbu4|o)V@NMEIMtHNUk`?=zAgXo&e^7G*((~2hdqr z-^4!#L_4SoU*tb@Nof2v0q>!bP>)e8D&$Ud!xoreaEYov5_QM<3~Rzh zjZcC9%tVu)C^w)R7*HJ9nExVQn7h`@-DFYER)FE!fpaYb-gABw>ua|~g5^aHYq`WN zhYxme;f)A#WPk54JZR4fy&6zKjWtG@#tM{OrN!Wx*73Jz?pLz1awl20cGU&B}vV78C zlk;1y7m36^f<9K&$j(=3mRa%OO*KT=z5&0fZt)fWO8D*!lHP}_(}vHAn1S7Qm4%E$ zV!I>nza1r5lLOw#Or}+If+(OuAB$q+2+pY(sh@Wcd>Ct22mz~axm6W#X2&D;f1_7B z41gQqRo;(xYzgK@Pp31C_Y>pu1A?05HjsFW*Q^lTo)42MqiQ`13@(~K)r*V(ez7(^ zu^eI~7Nndxae&M5*0$;nOHU_9V3ZUvmw=spZ?5NK02==Hu1%1IYHto_vLg6X1%-vP z6gObh4FZugI_GHDw2}M)Ff4R7u)`*m;IU7bWgM%v>r4Y^=J>@%mw^_(T(b|PZWvf= z`x(hFU0M)8q$Bd$X=$_Ra$Pk&>_D;KzX3PWTvw{@$@e2DuIaZLF!yqKawPe9d{u;` z{$VMBB^(o28j|h5wVSGfP|1=_p|%5E&o@ULNv{*PLfp^o>E@Wsjr~_TLKYq1AwAw0 z7!pJ3gzU5RPHkW)C>1+>K*W^{_sC&#^xCe1<15GOU{~LM|4`k?h`sUPuqCi*_4itA zgXJ^&vxU($u%^E0i}-9^r4x^}^)F8>eN{ghEW--tCu)#>*aetuSvO4%p*7Y6dZ7=G zFRbd20=p|e?z7y_@NKob_;WDN{QxHr4L@o|)p!jcq~3tafI|1NjG~5P@%xk~_Ra~J znf3tYEO-Dz?1O3S89G$fE$OqNx3mD?gHGYHC_kHG(W+ z50po?S#%IZ4g}NcX<0ODWuv&yud?T8wJk@LEtXXfu1!S9ily0(d`7DWj2wh8(d&z^ zpXWTs;A3=YWIJj`JiuYMFGcDE=odI#RJnSXdf2(bn0oJbYbTVZFBs=6(eX%DvMWJO zZP~?rd+7`=1kowPCGn=hD4#-~!~Yu;fntn5jd6;hJLecb6H{*#wpF|H09!*}i|5Z4 z5*iMjC}T7n`ny32m>a(xtgSikc7i8{iQ4-lzHU~mFc_%oCMDIvri!sSy)Qyo^lbN# zUrTbBm{!RqY;H1^=^ZtE{-fw~{WDuXGFpWg=7f*f!xwyS{!FieCjK@qVt!OQnGS$6 zXo8e9rp~u-V4$XKukvG=iPL-X2>fX+%5V*UHH{>89PBS8FDbE)dr;A}%2JcVGGK*E zQW=1Ts~1Y?5_YvMBTAH-Zsfb?HtU&^IaE+{zWJ7*|1B|{zB4`|av~D|Xxv=M-~Z6C z>S6NN?1!&NZUQvLVEH<=iAX(zhpJ@J3Nip_m zYd9JmM~3zU#GwD40~7!%>J`{6}4PE0Ftx zu7tq>gn^-MJKhi$}_er~;OjRVD=D3-pze!o4U( z7s7%8KlQ>RpE`qP+Y#7)AHUpRXk{TmQEj<89^knFd)mY_o8dHV5PD=E9!c@NfFBow zTqCK~n*dmq0^UqLCC86@^%j%?y{mw~S0jgp*nuV|Cr9C+54?euMaGfX{>JsI;mc<} zKCK&Lz#?YV1A`HqMFCULH%}6q2=qu5GrsJ9h~V!3efh9%o{cXo(BC)m$kkNp`|>3o z*nsr`DU*PU6{cUW@BnZtKw6_+{tG<{8^L`Ej{%^KaKl9pP&qP2N`k6nnt%vRO-+p! zgioJ$TQBz?1DqVNWhH7q_tf0a@GZ*O=mF7}$q$g|ykm?Dx%ZkikuT;im6CvX|z#s6yLRRPoe(1m*s zL1fAyLc%4cetqb_zPX7#Cz|sC6IV*-C3tk_t)!@^dDPg+!VE0wJ;G-TbR1e@uY)-6&=GMyN(TFlLKiMzwX;HbBrt=+!d-5x z$wiZSd3ohcP4mgbRrpN+*r`65as^dwcR5;z47P9$7)=PHp$ou#rF}uB71etSeFx_A z>VnO_TnY#1tuA^1rw-5}5R@83Wpe|()$y!1hZy|p-vZgR^H#olG#&u%r3QO)NXV=6 zEzuihKnSU+L)ifd0$)5YWC-EhOg$TTe*GAfy^HMvF0s*ZNVVal9iKKDX^S|a#ir-L z);I*c(|LE=`3L{I_EumTw3>CDw{Q511`Q4l{=+67$9wUjx}{Ax?1w+g!(yKR>r`Ei z5Yy-%K^wq7d)OjIoPo$YEUMasvF;K|(~p?xS0A916oMhFgqXqq)M+%vDtAH0f%rqi z-0xZ4AjO~U6lEs^W@}F=kzG|gI)Yd}JHN;`*Y?09!>s2LgGK1j_=9*0Mf-8(NQn2dj@HM^{3!iD4OS1U(*? z)Y5lq&1XSv6rBtyB=XVZ2T;gx!tKJQLzCPF(n--EAW*SEX46G{?B$ShhEe6~{FoP3Q-)=G@CiAw0V9d0<#p zA;cJ214lAB=zu}#B;YZ;7Za%nEf@!;YfTCG#c54+S=5% z$bMqT4uHBS`VIE=akLX^(x}iNC*41!+CelsSKUn>23d#Y@e#DNN2iV*qY~31vm!~7 zb4^DgN}Z98hiLMLA=|Me6k)`~d>qlP{`_}-eyFLT^PvMwb+pwUvE5?afbRqxK2RAj z_5s1w#yG#jN$%T6yv{~S#{}2lI~kQ2dh%jQQ(Jd{#7;0nY!CHBrw-G(y1t=-LVK6m z6B1GOQN|hHvtLv={c=<$5bcNiozN>;F zZT&u-BrKttSM*$ThW!I_^t?=hlkaG@)^z=aq#yXbeD&%g$8FIS?TmRC?~G<&#);Yi zP$bI&f(3bE0%s0GEvd4;6bn2_$o)9}qZ6Bi&bZh9AEIMTMnt~rG)6PS?>riwD!>cR zYQRrsUcquP&F8+acb>Pg=9LiBHW zq9<2n2J@*vm69))w8CN31Px5CXgF^t@PQAuQwb#|Bxt5OBp@1gm0*0TEt2z?)O}rU zd`HjiM3*yJ04|7kar+S*$u+}$^ic}aWfg2YweAvDp(ugfBA2^d+hjzrN~fOy2FVu_ z#y|Pf4o-E@8ntfJ#iKI<`ZcL|UH302JF0)32L8-%rzO%d2)%vZm4$;5hxWjn47p?m z9i{46cX%u?z@x`N=1ah%YeG@o&;S<541Z*M2Sf&H_0hi`pDDvB;0iS0G&-e{wU)LM zKt??Pnr94vkP`~Kwx}Ky@vhJCSPcjCaSJ3orUF4EVSpGBZNy(JLNKj7#JVF8oMQ{S zr^Gn5eE!xOfN473b-9v?AMLvB2m(}zSi-Vpc2U4*3^N=AKI;gEGl|<<1!Y7)EBm^6 z4p?eY-TNH0-2%~^#J)*;LB{y-{$CbA5@5UOxG-e{|&PmDDv9tBGTg2*kADS z-y4s7nE~3O%AIf}>W-3FQ9E+Eu<-*ndlfv?cS!&amB#0smjSrvh~!WA63=izfka}Q zdo>$$m|L-|~xgLMd z0qg*G0!WAftT}1{6gQ8@DYCpAHVaCv=3u2w0(53M7gtvXHa20}yFhh; z5=9jWVBd(61!@v2qhdNe*hDhz0CZDLMFsvY$)8P{M=G$puTiQQ$k6`{$03I74|L0z z1%#c}KnjBCnrb)(UupM;m;WLzsHjl<{^Li5UiSy{0mS%;=zG>$W5}8$pj?|@S@lf; ztsKr77X}YtA^C>a3SdO1RF&j?Z4W}SL73hy#h z7QhudWdKe$EaFUAAq*F<_S-o+?@=G_V&KG#J%{rbU9{r z7KOKdmv|(5nQC80>Ak&;5*yl8f-paqeo*KiI1zc#G|uRNI==O*f4U-id~9}Vgls;Z zy0BY{9FX?bzln5BpIAX|jH|31tP}lutPdo*GKxl`(!a|wk1r^tSp3YdtLW_7`*neS zEb*vkqd&ps6TyI7wu)OlOP=R4~~h)kz&#muyR>F!;P?l9lzG+jX!phDp;;w zx}D*MMUz8KhDV0DX|0WoeFTCQs8PCnx^QzRBerJ3QwQWCqDeEse_AFlUMj~^gLLCc}9 z=t|=U&0U%`4tihMaOghaZjj5rmhd^-s`bJ7?pi1p?L>U>Xc1SB%4RUYy13yhCth^V zi&2B9Y3CqsSBoJ^V^-ey|EuW#KeazIa{nl99a2KWV8I4KdB!O%`Df16Q_AWB7^n98 zU>Xr1pOCcp?)SU=!YK@!KR6>ZZupQV#J04pWj|TNd2Vz`&R#$2kS^w$=-jH}JwX--^z&P*EB7tGRYQ!%O7lFjzPHsOWQ#m_}4wQ2n>D z?$;^aR5=>RRr}W-ylsEK=h;+AdTE716)w#c6^7ADc&oqALN-Fb&KD(#NBlZhWth!6 z;S}`bcI5TdV#+iW?m->To=8XGh+5w;e|z=t;X{S8tC`RH zlOqs3?Ktz0O;3tZhIKLMZAct--#L8L(WEBpeFwpCyLgM!?AAX&h$(u**%DMj!T=tX?n79uyVYp2ZY4vn)>wC~k(_P+;fIab8t?U5#Q z2+Ir*tt^7G_8t5iKd!}0m>n0)y;%*h!sK)wO0Uy%Z`F;cEk#dOaFUemJS4(@RZ|5%&sitTO_-uae8AQCLTo;l;C*!{S>H~ zlr~lktEpyza&SN1_APEf8rHPIMcP_;^36b7+mcU0h`N6k`(}u3=pAj>Fqft5v;LHT zzH!fkH%Vn$Wk+;YE^~(m**>;f+X+iq>}mX_&4go_83zY%)*lToyx03Az4ci$LQXCu z>^f$w`+X9xo?d#bo@|{$c75Pdna!x2YE4MsP`1xI^bBQ&N1w%RO04@xiFb!K*WG|V z<7jR73Q9ZPFt1hD*0@G;)P3(Ua52{hLYF5*7G)H8j7{4XpR4V zC8mkD{v_F$nVsF4^p)9}u2ZxM(w682dI1{02J?l@XII4h8_ zTr0oj;WiHm&dM^<{bUiHPW-*Fw!A~52=g@ZnuiU#zq)tMZf#Spee_w}eb$qSST0kJ zq+a`j$j~^!ThXb;uO&^i&-;g5uuwFKGx#WI#Zee;vtN$aSkyxdO3Ex>6wHL<+?*2eK9tge$P7M?UM8Bi`dIVi3$&vaRYfK9 z4Pv!BoufIagh{T{dB{qx>iG(4iQQl*%4Dk&L!?4{?mYvOy-H3v zbS7W!OTg$*@|B+YR1VI$rCiG~eTgAs48I6LABxq~tEL@TFOgAX>A5>j9o0kG{D`9V z{m6XT$ValC0&^DpUuW`5DKRlhy45a8>9%tP1_u?dz4vFYFnt4Xqpc1Na2EwH4uJG` zIMnO*5C*D_Y1Z1_(ZWXchQzSrj`*t>_D`y+MvM>7V~;PsSQWn+&2>EIEkQzBHF0yR zX#HYn7Sz3xmr;Y}Sf2m*PS6Rwt*9sD@lT%S-aRGhzD>O2tgHvt4yvwlFJs?mYsh)( zdTuN3=hE=eGE2&)!f-8#NAN6(3ljTvQ{1dNWrQ+?BE>EoepiG1`sHS0)lP95Y}5Bpvr}A2w)BC3=+Vt5WvQ$B zdM#^vdtk{4PM?^vF&H=JIr-c!O|rEBc}LU8TcV2;5-enxfMP)fiw`VhOBlOC`m7~4 zdNpeKG+9frSlXxf9NnJp`>1!Zq^eurx1RJf(ENXGrzK~C1X9%=;$Wcol_{61cek&eV=2Jagu58dhQ@^60yXxs`q4n{TM%U`U?IN+ji_Mo*8?uWI9 zXQN}fLU<$HN+O87e+n_(7x(Z;yUOJZ>Jq}E6gMx!PTJG6ST18YK?!_*^WYVH!AIt` z1Gnq9Js-?wj)I&IJytG-o&3caUTPh)g`8gE8S=(_D(%a|fBN9)l|8n&DE9qLhG}Pv z@inB?tvL|JaHQd|m(b?+v9&UeXe z)J5q-6(1AP>)x`nuhoMh4UrTgvD_-%^DVP{b3K&&sX}*@mFa`+&@y>VpKs?Yk^$MK&h8g8MjULUuE9Qx zWq|!la5mNEIxT&VAA15t^od3)t6DsDUt+w;1J;Z1(ZY6G7bPcx+ht~EME>?b>JbM2 zZO!m&T_My}nsq*!VQMxtBOe_X8!TTYjT7jtvoo~b0?5tLLTc|N?Wl7E_1xm(hwbva zne;yJuVtWY^*D~zBQf(Oank9%Wj2-CH%pKZnltSo=W71LBbpaG74!Du>JIZ;8lF-s z5w1s~9D>6N47~a6Uy15Ht+y6w>>H$49b#i@eQWo?0w*1M`44-)E2f{+2Wb@Jyj;g ztDLM#b!}UR0u*V8Onq-pm1UKY=Rr~^{FIC3?}z+wTH2j2x||Kw{RlB0Q zBLn|%wxkGwKMKtKKPNlGgYeDU53|1ihbqA8GjO&ZTfsOMp_!Xz$D)rUi+SH!X?br29vH*9sDJjYPWK#?Z^@rc< z*C?$j$=h-<4`&@HB&xnH%I*1VY=E1=;E*EU#;A+8)lK%@W|;#DUhn|U>5`p7=qilj8&#tf1TP=&6*0k_p>iPcTswo5csv0 zRIjjoZ)u?{DSfDp#Pj^u-1hQ%>^*1{@&n>^&1!9FM1H{0=USB3s4yG?11Xx08#rym57|-o)r~O}zgsg3K?Dn%oQeEk$c6 z)?$dDca(_v=@du7O_G&JN=j03UxxiYRi^;jIg;va0JtMum)#6q* zYNBmMp8el3Jwm8cW@F=X4ycOR+GP<@_u?WlJOnAE(W?CJniV*#MS{72l%KdCW?pQ* zmXN67+>KgS02bQzn$i#AXd}p`cVz7cFSJ@mSn;BV#^1d|li_DPdUyn$UqFNLkUR)U!*^=T6bNF4mmO+Ab{Gd6fKjE7yC%FivXT6(A~DZbUQqpH+Pp*TcG!TdDg3yS`JM({>DXuDl@K9v*kcDqGLG9rkSJLw z2yNd~oY~A?H(xNyXguJII$6RTA~rG6wT{=&PJYY4Sl&n~zdp=|#5`HZ!l7hjv=pZ2 z1~cs`dsKRNlJ`5MwOep*2Yc6dN<(p^JY#3)T*ACHx25o?z((lBn&QjPj=zaWI5581 zyJ%pOc?|f{T4u~t(+KMc)FsGgV)uO#_U;_ShWr5oeSCm!;GLq+$&L$NV<^>%F9$|f zlsTbIDGf_mJcA~Ca=S5EqEw*PptX$y*FY_92v&Zg{1C5s&vp>QgYjINB2_S59VeA7 zL~F3!hm=)C6+`}40hSGS^+_5)w3)QvjmW?#G>g6hb<+xIToq?v`p>9dO5(R(d`!Kj z*Y2b6_@{||D!1>k@O#KuygH39o`vub<3{H!eC1W(pk%18okKIeOM6@ZDzxJbixoN# zY~vu`4wHSQn$$C)(`$EUsWq_=dp;}UaYDXazUQRB&@O35#vPZMM8kohA+3DY7qy4S z^py-eBpv&#hKGX|-bM0rrWo1(GPkZmA{NcOj8<^KPD4BCtvQd=L4iD%1&QHOfoh8R z5kZLwkOcbWWMs0_yydHcseS^+6BAqN=iyKI@Nvjx+!M|^QIJ^Fu`B2u(9#T zs}#t8>mz`DLGHYpj8|Q58a|@+enxNEsx$_dJEiNf7RzOTR1AAOSBc(@R`CjEG++% zU(})`KWYC!tTRrZNzUSES7JNKU?so}>n(=kk)YWG z`IBZUC5giXVg929XK2aVRn8KrL#I|g#o-tO_671a=lQv zeWsq{d+qvZUaKicMLEO;efH|1cwyX=CwOScPdl5M>V`^IA^o5e>eTl7@F!jKHiz&K8%<(J`ccOgYct_^(f!KL=t)*`@(P87qDyakr%qbzPI=Ge{ zY`2FORcweh*qm+wLOE*X$`AqQ%92RT_=eyBQMx!o08xq$3T*9MDCXaH>rKMXx`MWHeHfA8}B|Fg_`G-NWzDvnhnE5?)H-$5;C zjv+;eljmDHny&%+VwfJ7c>(jZ3okcp&>~^eqelo(*4Nj+3sZ`Yf=e80UJyUN1oxL? zzQ|@yBif;rp0C6rvvnf|jYE`v@7phVTodZ!d3bJmTJPG}2AW2^CLs)h88))z8dU31 zTATWu903nl^KKQUfH`H0`&}a}ni!(L{aX$@a9n_R1lW!ZXn`v)#HBpIy`Ur)=oZp` z+baXeMT^kI77Y`V%!0#6Bm3OJS@_o<-14)Mf{4dG!9?`-8`uX!CIhz1;*`Wpx-#we zafPuW^i))PE`wXjZ$6zaY5%H)5qBc@ydZ4Y$w6GRMh3(%N8P`Wf5ez-UpZlk=X2wFAda=ZT^Wk{2O(t)u*!=S0Zkr*oy=XKD$h#5OG zJuyMYl=Q&0*36&KpWd$2K144!PdP{IQek)6# zQS@T0E)bW5=YX+aK$jS{nn@l0SV!_MQx=BR*oTIZ*y(zF1VzELGn?97MCMX*EO#^6 zy~NRuSc#OW1Xw6$qK`|7#5@_=cq$iqE*`**AHpIYN%aF#&4~^#d!HQ8oTm4?Fh61?Oz~N^pB_BSJ&GMg`JA3D3Y)o>E_yZ{LJ4{1mlOnTs*#FH=!Je^cXB( zk`&fqDlJ6UZFVU+CpyRQ`?b$(-n+Qd82r6WgGWBA_BZ0*1D~bwIQvo_s^SW2Lho!2 zCy?msvU9~m-_Pv5%M~LZ)Q;?&8{IXtJ4(H6Qu;CIB6|Aex6~Z6nos%i-@j87z8|sm zX+Rd3(b7yVNj0!xL7!Qp^`2u8FK;)Q{b260R~OTsm(x}<_|2v17iE|mbjy$>xp$7p zxT=a%*IlAXaN-+Bjkig(R~|YJ1fRYrE<;?BFpPKTU01sk z%6*CQ)JZ_TofvqZ(jp7Zy)`fGZo@pAW9xNk%Xv?kOSzV;z~MIu+=1#CGy=ev%j^2{ z53jl>>f>HGlCjPW4zKpT`zd|QmKk(_Dew}tb(+NU@cN_qMuhTu!Njl{r=1AC3o0jZ z3*#hot~wyNq>YeGhSf~mPO?Va?)Om)1eb7TRzNNL@LJ+C6Oi0@ZRlV^J}WO5AMEbl z``r4;NJnSp(PSRANyAsZC#|xdnL6NvI|lLfG6Qp`@^9K#o3^SX`v?@#B3D;U5}BxM zQjvZ-O*h8q@PiK;dj>>Gn{9q>XwXh!{?3u-qpBJY5CXBO2d6XD|BJY{jH)vH)_$dt zkdhEkN)cg^(k-o&^r9CnEucuJbax7p(k!~WOIk`n8kCS`k>_6j{hl$-c=y;_znw1* z2jb%4iTjyz-q-cJM4wv0v1yhwx%v(cg*INNmb_Dy@Ua$;cFC2Ll4cx6B5p^8COY-m&Wn0^-wp|7 zYxM7}t)dMe0BCLCY3BXl2GFq0a96(oI#`$Q4t)bas>no2N}4avjcN(Jr?bfm)sMxD zy@2`86hxfHgQ!kfXCNuMak06Yy#+3g5y$~j;f%~aR_{Je{{6_!Q_@=*7=4YJoOgA! zD@{Wh0wbvSD933O&VcVrU^_R?6oiY!CMC^yD@v}09lJN3u-Pj|ZIksc0{_KUKlR)$Le`m1m0qn)e@TctyJH zFcp1$R;2MG-Rokz61e)T(iyZ~00yW5Chib{z*_*Tz&%_6Dk&aLx(_t&JDlLr3R@O5 z8@#XG>{5ZGfFSkYBu=^K^tLqR9i6~P*GKc8h_revq*>wFWFG5Y>!lrvwG9h9ds2Wb zdwkVbQF-&>WFzRRX!HK!B?zWk`aODtbYKJ16(mK#$vpS5hWo}# z?Za8g%B35uft6KdF49O?X!~<&ZwRVRg87@S1H006)K&DGd>&lfg zqE2SxD`Wi=N{!eW`+)8vqyv@YY_uDsf*Pk~{rZt?}>9z`FgaAE-&Fm3TY_tX>{zfbsJ`QC81evz-oAVF{7wQI8s5w zNQ6C2ctzuNZp0wxz3;vh2Q=Bwt>{F+CDiKz1{Ah7@KI~PKfG0LV6+-oh-!}c7D->p ztE?mrl48y88-f{OybrztPJ&N>2|N(xePzNB>MqPt$d8DuA4dj1BF?;TKOnQ;u8zNm zB>?sH+_3-LgJrD99)9p@f*7{ywH|%iPj*5Q0xIo(2)Vs1?-0!NV~4q3u#% z;8#J80tSk^K9R)U61A9rK$QYsIE|M6`vjzY^)R8_L;72}q5bd+R#w*h#=B5op&}?P zd+TXU`2g^8*{p={n!kJ0)`8mV3(>w=acq#;XGwkr(~-E>#WXcJS?Yi}oSq|yJxo&1 zt|GmLG?-T!vUs)_n25u7j2>Tnt7|pelkes|7PRrooq+jLD6Hdn=0nt+dRFP2FqpOC z;}cUYh%)#J7JY>}Q?t{XB>1+-_3X8@f;fM#uWzI%CtvW|>H(1ho_|j(H{1#zO(f_X@p=iYbh+KU_ePpBvC6rNitLyMt>{v+w?Cm ztynQp8(3-gC*aioV}3YhvQv@cCD9I6md@UfdC&f6UI>zA9*8tAr&c`f06C%S00)ue zL7H2BJsyQliqn42?>C{sau5|ARkkH~?)mLyWt%vkT`d!MbJ&mE0>>vUh+J%a4K|yG9f)7s@^KMtCnOF{U^^H`+;*jv_t6M{lh1VvuV z19*j!Zm*Yac^Z88!4C^E644pv$2tY?o&zA~rXoR2EEivoK>DtbPr3qYGFGze>xV0# zSS5ptZhiL8{u%`wCcxG&(uF|!($$OFJwE{R4K}k#yE;l&4^k@5Ueu8Vhs%{UY*04* z^urxieVY7boZqC)mgG4!cwhlZGw7ZDXhmAzCVGolHCt@H9ww&c;LiGmxgvWH37h~v z<)(h%zQ`Z_W?A|Ex2D?5HDGBS2h~`a<{r8JyBKX=bk0D-pphtb;EM3FE^|5E?pq(o zi?Uh|^c z8AJxDBS1K-5xTRwWt9;E!5@Pe^pT=*Ek3V=zYz7D7=BEnNSn4|GzqHzztIS8Z7^%APCwq`8=(g)! zd$XgB5kH)#1?@z(J<(DRAaHep#FiI}#)w$e(pcE$GKj9{MO4|$Rq2SVc*Kd-Gro0h z$adcYS@0-m_zL0x6%w_Kc|?q-^%Ex%X&BDWT|CuG)!-K9y+eC>%jdVg&In4R-B zLc<~|(9gQYe!~$7#Qp&W@|uZ5!fBbFzZ_hR2N)`sP_RM@^;A~W%Q((*PW?NKkMbiN zGbvAi{d0ZTi7i^YYBP8tXW{*W=%&4TX*ai~^{MAy6XvQu%;1nkHbjv^6s(T0{@&C^ z`w+|N`eR55S!hQSfU3nVZiT*755-CP;~;65If-9tDg>_A?|-3rI7ph=|ME-5Gpt9s zjJUQGh6xQuLDJu0=z>X8ni_K2mYk0*6PAo^1OsJzn&*GLBCQQG7M=~6>wYLmOwTm9 zXg>?@2+nhHdXzv0|Bi~TAKx4$vr`938GJHq63)*1e(SunTiG~R!?-SLH%V<*d7PZ$ zp99~Dx}VxOiHvvKEcbx8EU3dCh?4$>J%m)DNBBhM(RN~Z{^{fq0Xf8upbDZGr_2^( zW|3N0v4mqsQIS51CJ?)v8@))nTXBTjg;Bq4lqALL+eCD!8=af00}nZTmYuR zu{GAid4Y0J^4F#!0C1}9O-(R^;>}Lol9zc|?_dJB8KOs#{x(kK&xevO)ErGd?92fG z&@;2vQrbwgXkV=tlGL$Mqh%OpZ*ZW9=;dprsdNR!%+U5 zd+7EQPLX0aE>)f-vm|D4Wa{_f6?8$jhXb0FUZ_(x+qxlG$f|n6eNm6B83NTy)tb zZO~=W;^yNSL>M+o-4i(O_cFnt_(@#?GkPAI`S*Ta9F;a26!p`LM#fv)+llUb%^FJz z28_=?%u6#Wr_77#YE1J~-ufPy9j-lNU>`?u3TVx01|@{+WoEfNP^CT-`1#Et?Znnh zy=T^J=0`R66}j23>TN&An`J-a+mJvnl?qlcl+dK@Atohsohj3|PQ-XnuF`?C1y1Xo zCy7(y-=jn?3a&upd?J7a$s@TP3?-|jF6xl>HmL3u9+?tplmX9vd$JD>dV%1bWtxK* zuJ0SBe2Km!VgozbIq)d+4T1i#BHKHK5PQ52xb>WPfW3b|io9g(^|Qy|unUwN zz6xv}Q>j8G-vDQHw0{vlvQ2FuZx>E)0uLJq(NlC0&tze5JNAQk?ikHkEM2dCj8mF< z@-{RAg$!Su=E~qsawdA_%58{-M^_|=^Y#)*>@+|h*c4f%=xY# zcp8={P+*nqy2pl>^E0L(oScI(Am(F_(F{p#2Y3X5wJo)(3h+q+`&8+4Yi(kHN&G*Q zO^bAgz?3TJYVVWo1sF;fJ{~P}aP71IJ+AQ0ku(eR^{fM5s+%mMrLk*s*^e}!#^-l1 zeF?e)qE7pUb+R~eC}S=hK4#;;wQ`0t>)0& zk8Y%`^Zd>swK=)Esd!H!Xx-S0o|x5s@W&`h@R@M|?8>U28H!r|0U-a=OyZH@Vek&$ zzPP|m?xX}`7~O_Ii-yw?tPBdMY+hBA2)8vn9*z4&bgQjR`yiH1sbeW|>}inzeM>(RsUf?mt?yS2SygPf7@uZ`%j^Sm$bWuS zr1x{h+k*oxi?bGu;F-z;LHOX$m2ticm38|3{MGzMzW^RBWDBvu>ecM)1-#s;X1u_e z%kHG8nH;%3U*eO&rTlwpZQ&edjK>X;Z5ZrqhK$Mu1E?EKB;fq1dEz`DcGtvg2?&KMQ8ZI6p8#=#EfC$Xy)6Z zorW{fud1{ZLrjiFSW=ffJ(##GH>;)A>OSHD0RSeU(t3NnpOy!K<4M)eQnRT>y$_+F zx+VeR-27+&QJ7Vyg@V}`(S+Dp!{|V{*9l9r?ZP^wGN0>NdX zWv8(H%p?G-$3&F9af|*L6BEa>PuzNdwHqLYL{u!-uSUkrRawZARBp#%`v;5=sk5FV zhYesfczBQFi5{R2BH6de0<#u0q(H)Y>V~XI8s8NnnYX=os5$swgVv3ATw{))I9Nlq z?Q$P+7{H9JU}F$AIV6_^E)cIBygk>twOugi^6UwZ_UG6h;6_YZRhD@YMy#J9r${#6 zl{X!hC~{QqaX232c&>tLc53JT^G%!u$9LNaGs&BqezeNf@K0;OIgv5K*J)_aAK{Z> zl6e1JlXd4VlW#R26qZO^EwSTvLSqFV8@w;eCaj51hTF>l6=t+=Jq@M)u=1?3&w$P! z}6sq zZiX@J1epOXCkFp#TTl+DW4MC0QN3TR8)8xk>!542fc5I?=qT)XBZdr3!MwA#p2Pdb zuRzK>oq-4wH#{uRObI4;e!cI_{w33^u{B|djiVOU5DjoddP%*{-V4egCO2g1@yU96 zdJcE(y%!)Psu~(ROjxk?c2zDUKF0$vg?O&Bc~+6aM+!)EU;T#@#68KGFm_>vC^24- z2Et@#I39Ke9|j^Ie?_@%neCnR2j|+fT~}AchTZ7MIx(G!DC6vZ<@5Z1Df9pB@3pw7 z4?xc=4d7;AvJfeJ0ZsYvvqOf7$||LOf}U{uKiwu8CP>jv6gf*}F{qO2A6w)cu82%y z2FuQkAt;i)vJhZun0+b2*fzd; zg?L^BG^wuwL1gdW1JKhhK@7<-_=ce%^9C@b+ElN*v0|3zMNs^CSj+1Tyf9jS!RRN=Dpu0|7AhM-=HvQkK|U(?W)_R1FAB% zlZcUv=6kHWoXxsxtk;aVrKSgdY6Heg*Y~1V-#0{eX46-#sVB-S`*}&G{vf^~NA(8D z^Wqp`LUs)*r}Gwu+V6JmMsjwgTldo%wXIxOGY{o8mq_Vdc-Cn@?>aqX`G?7Xcs_AI zA?OmqE@TeU%G;QuL=O1`tj3K6cK+mOFdYj?V|1!>ZW(}Q`Kr!+{Zrjie4LVin)&FQ zWV1mz(RHtgir`yjJhJ*n)fpLfCS~HJ*y@i#NJwtB5f~JC$;?jqxBdxWPqw{{uqh1z8(MB&A`NKxZc+lmgG%ZMHiuqW6ZwC)dP^0q5?_}19I+T)Y;+fx7@h*Sv}Q&2iD zb&UC$nZwu`0fr6f7=QS!Z$owvpUfu|%Y2K{P(7}PBuWJ0wE2+sX@*B2XAVLV^ZwCO zhMoPulqfp3u+N%Z{TjSf-^$~3?XFr1KUTk~poHkzZ6bJ%&*3jIEGQwJK7anE0KUnQQrJcCn-5I%fYb3*ebrJ_YABz>@qXcXKe%!#!Q4SS+TfVi&T)WbBj&vVD0Xg> z*Kmd1nk=g!Kmdf{k@Z_bLj27yQw(JgoJ9T@UwuPqpk7!4mo59ADpQTv@cZ3cF{|{}H9Pq=z%=KLSlf6c77dV%Fm(Tm zY$OGp3(PuenVron1AItnyqUabn8~cQ%BLb2!c1R~esf;%R8|A(W+kCM3v=4q27Ogs z4LY;D9=DBI`Jbzl!jI~vtU_*MW3!W2{DS8uCXA)LFEKCPpyhTE(}}VkEsc%AfMI$x z2_QGsLZoW?Uf^rsq^6}|T(dAUE7SzPNveFX9~Cn5gn-E zF?{FUj`+)+tq(1#M?o#UBM?on%qeReio?`TzQ*Z@p+RqKxyl2bb!xBw$iFM10S&g| zb1px6pcrmzYs(na{zxDmY=O8CUXN_Z&Qm}Lvo?fpM1N`{Cc=hHw{r+yT8DiNqGU|> z+~Sr|gPrT5IxQ{BvfWR^ zs7ZF8#OrEoA5{9YN8+DrM!bTuI(hX*$E+(aWiAy0JB)oq;@^KE9(=R0^bI=K1Z){QP12z6 zQRh5PjU;c>t(L|EHCwpP*n?7Wim)wvjEQcr5t=L;_SB^v%1z67t9J!{s@e>AYH|xZV%k728sy``HGibOB^mT+Y*f2ofBo zjgG;@&3PY@AE(V~Q!QHYH7e8w>^yfBz!JFwxN<0DS2BNR!Ym+}Fxj6J|D!|W z)ym!id4u<(SH?gv0lzr42{upzq5%jAKZ)Hx&_HZ`k>azjpeP5r!Za3@W1#24k#pFR z@Rz2hjpRfJ5dsGwx0LI?V&btIO5g2a7dE6mev+Uk9l}ia18iRNml$&mQ zU(b-^$!TkcsB6T_JJ&w-CF&M^XK$DZP#3Rcwdx-2JSO+T zr)4^cP@I^U$anB_+{z!@x2xMo?$y)ry9)j!OCR;d(l#lu*ZknZ!~c+>poC>;D7P|O zT{z=-FbX)r=X92s^z}tT1%$=?RH4!3B`lBG`JR^UNw+PrzjvdlW#0eXfQxn5wdx>m ztC$dfpPbRLsE^0FYUBA~*XGe#RiqiMg0hoS+7usM-<2iL(+WMTixq_Bjb=P)n#GM> zm3glq`eocdpf7UikoFDA)YK`{aYnDU&;hzq4t(wK2eI-d<%R100jc>_0u3*ov@Xf#>p zQ;)lmv`ZR@TM2v^0nqtBGtU8g8e>0%MV)fc7b4 zMHOs<24DV|Ni(bDS3#d`k!(&&FK#*e@()n2^AiLLgS^I*Lk7=bh$znwTCsVd#`|VF zqcWy=8##B)n|o27XSDFCW~x+3`%o8`LE=IyRi6g|`D$-e%ilG|wEA}+e~0-N5h#v~ zY(&^(hNk;V{dt$i^_VT#jIy!5igs4WuVk=B(kM=qgNb1;|kRn3srK4spDTA z&`4CjO1lX3PO_OjFD&GWE$t<+xNPS+dG}#E?I_`*d>%WnFk+6#-m&rVXH`Eyyj2EJaj_L zfbYfPL-|I~^IObG@+in2;g5RO>~2n^;5n1HvmG7-wSj2K^7DDK5c z+W9;hwX#C*Bv5F!``F&vI<2=wW5C?f%QT3&ioZJNa(notymgo+wIy*mr$R>oQKLXM z)ni*Xvw&fJv%EaU2b*v|>G@&&e@Sc$A(RX4$kq+83l7w85q0>ji%9wQM+Ok$WO0t1 z!a3>L#l%d-;eKB4v`pQKedgyUN`^?*2EreHNed+$fB31uK>NbE%}}${z@&)eJ{c)K z@wI~{_AMaY5dU!p8*!EwrylDZXfoN^Vccaz*?itsQu@QPN_KX$>HO0;9tN3UG?*%o zCTLd435Z4P&lVC)bghd^45|$LQq=+i8i)OV^=V4f&P`<_RI)Xc%oQ@t6Zu}gvLRBA z&65{(F2OMoS~cx#)Zbs-a9q}E#&%Zsok(fj>i`@n_~5*K&$0BZI$_Mi9A$2Pa#_7eMAIvXPI`D5SXSaZdIOd54 zq;IHx{eJ%}m}|~#^OLGo=k|E$T^7wU)#Wzr!9nI~;^2)SI@>B#9^7`(0s(#Yxjo28 zls@+q`V`OG2PXBd}By_s4Y%GV~@>3=DF9G;YAkkANr`SO7W_nqysdlce$Zk+> zSY&OLTQH{W2!j{=)`N6QwvDoLXuoqVO4c!8Rh`x`UL|<}so5!Hp1eV6~iyi9aRjp_!v?DQ7jzGSZYg`GuR?6i3!(d9nR#e+ggp zXLaB|bTT*`qRH1z&DiqHa1_?c46+PH2s{?Zokq_E5s=@F!5etUk5=pu7e~VPUKHvx zpY)>gViL$xHEr!Igi78_S`s%yBn@JGoKBbfi;!SrymnsvFJk3rdW26;EvFe;*y`B6JO>a} zk((r{NcY*TV7oQ*8_fdF!BWhemo;(6AT-78BI(02F&%@`s^&i!6u41eazOFqR9}#O zov+Cj2XI;<>}#*KS616|ggjC%kkvaT0St}zJaasRD}?CjBX`t}FbA(q=CI4XlzDN3 z6Q5i-d%L;@R89G$6!{`3-QLfl9aL$sNL0U(_J8E5D^x(r8vE`3>qHiLoOc63IHaSv zVK|cZ!Lp(4M)>1(#Z~gDsXY6F?+QtHY97~_rSM%E#WJxz<4IsiKZ@!WjHhWVF0WHI zvExFZ9HF9bBcYLj=&^9t-pajCe7)!T7#zUBL$&pgP!@VYJ zX_>+)XtoJ;>XYN_OGKfd`#egTY(`mgNQ9>^%JbpL#i7EQ$w!(2W8dbkB^=?TVd`J| z%LfxMBHep%zP~rVxhzQUafvfV%p!Ql-@y!fj0+!ELjTAOS^lX>M6{yaoMwh{KqEs^ zPA(j4q4~B@r6b2a&>geofn83hM~xCeg!bmx7x_;VaSE{;gc`(uH2GI#wmqxg5Ft$Ar~^j>Np!2H z(p`2>a_P^~XLBNEWI~lKB72=o&zV*cqA|&8U9*RkT2#0-Q)|^E4lZ83#8po3n4t^x z4tsyLSP|zQ_rlYQti#s@)88C8ol}Dgi2L$in%`q2^Z-MuV3|wZ&6iSKU1vGKjDe6)V_q3Qt`0-_N=adMyg-v**yCw#$$s z6ROY2mPwzDA?R}ps5n zxHJ?(C;c+WLA}TZi7Kqx>COP5Q;>n75%8UqfuC(^{DvqCWhboK8 z{A>%XE8iB%3m2a3dTLMnp0uzwUzM{w9v2=+|FZOxl1vkmziW4(SNT{iIFy6-2MO*Qes`5g}lN%jSKbHrt%^v>Xl3yRZ?cI zg=?l3QDq}V4cVV*4VhU6b7{p!lewWS^e0aJ*j$-+6v$9CR)vI`aw{5up!M=NTZR`Y zmVEL;lhOZ-Ee-;Tppbl_C3p8ivztMs1HmkBfzof$JD$EJ1&N7Ey@hczr)o zK`QmwwtxSQD?N#rSe*N`^LrK1OM6F!55!Ga6|>|Oz+v5sgaj-sucm`lm^qB#0Mq$6 z&`J!PviwLHL~$eW$;zhlm_MV|7!RJXO> zJ7`CJLyaW7f3FHqLZTiR-~am=<>34eEMN*YK0p5K{fVMZOSZDLmZ=J1`fPg7^_xC% z74sr!{f{yu4M^p*x{9vavmWUH2QfY@@Y_=;d@gKIq)bcg*;LCjU>W}0VY575UfRNj znEc&yxG|5auPOC`ze$niMot7p0c#_#evF-*dW z6}=dIuO^?yy>&=yK#Er-;b$c5w@Gn8=fg}!n)gIiLz{7KF2e{D1U^z1mKMeP`8A)X zN9TZxE%kWp+hXC+vqHMk(FJ?CE|Jun9uwZ`#`UQ3g#M>#CkD9<^z>cvd$0Yaot4I!`W>EmuKEV03+8uVMd!aJcxUi6! zW*ioinZ&{~O{yBL>@VG%>_kl*EcF@bR(zilZJ@6+pm|k+8CJt;1$U{D()0v5?T@{l zEtOf ze-S{LURP8J4aUTc>Yr!)0@8iRIEt4kYPlJ}STj`-yXzm8=W}E_xEJKP^J4(=aQ;Pc z&MO68bhf5kmhf2_#@M76e;*ciffq7o`hasCm=5pS4Z3z%%7KsIPLDtM2t+V01qc7Y zTj|FJ??uyY?kBu*fO|ERloKb;jWm1*s$w34(JmTe2;D!Bu+EW0Dp9+IDHZUNRht|L z8+eWU*sX4Sd~mu!o{`Ys?@^oQ;OEYo=R01JOZfMk&mG7S2a|(o_=+@F573Ontla&% z{SQ@&1Nam<>V@zJDF9EE!i?DnC<&nUNCD96+L(|vvwtW#-hyMtv#9)Go7G|5l;&vg zmXa7;tDCskJV`%mRX{X**)tONcMz~R7q~t|+4yn3KMge#ZwR#Q-ge!?WqC>p5(Hne&mT>G*3jVEE4-|laL*IzMzg;? z!k?=)@?YCnAGB-Qf9Ag1QVzVq*u!M`h478j`n;A>4N;eUeZ+YVL2hxeeo>K?>3+kJ z>88GUh-?I9m%@XWnWr63b32SV2ySFh3u*75-N9kamBa}9EINUMQ)&A37?L71@`MzF zp7jU4y)9mU&~N{V=?Du8rl0EVlE zarodL?r<~oT0?*7emq~|t6PsF4cFr=EYsao4X)eh(E+5e5a^&Ii6j&$*x9_55^t{Q zEDIKjHbRBBCtuz7%2YlT`bjH*sID^obx+93u&vM$C9Zb~I2{(<&sa^q|0!6`2C|{U zqeG-aD?TSu+eYC5O0%l%{lWMV&)X17_?B$UF*~%ged_hy6i?X3U3=%YA9midG)=6{ zZP$-%#g6-~bgNXVO;+m1FO0=>ZO|t=z!kr%b70gP4?#?1JxURqEbN@z#C>H@8<#eu zb-A8M?pbLWCL_$Rk9BRODun7s7ldETW^}f|8F&+Ew9D%rdehq2wNIMT79`ImCaC+! zt?wy8+X^`=y(zQ(Pt)3R5#F*)L4Fo!cLEdEKfnU3>END}5cNAlj%Jp5A-uqO@Z|8S zN;y;+p9Jt0kP`Cs^rP0t(>ygg#*0t(+b(OrJ8hQcXJg}QclTZ`5VtH-HrXVM69KQp(+|gUX^Svhw|F2$d5{wNL>Sf z)3qJCo){}Z(CNOIORjPV9;zd{28;f5v$yW?P8(mU*>q%i%aB}Cp5JS_3+7z zq4VhD58c)mb4LM6FnlsY!z~KPqmLcgquXI9vY{ir{L9J_VVGfe)zo=v$1&d`Y~~x3YRVFt_PB?vbt9)Va_l5yUoSz9lAPv}ZcV0)^n`pPRyTj#M}zmi6vxHvn@v&7UQ$I`}SPCqjj2m;a2 zST2Ecs9|IlhKmy1`Gzo5NKi1hrA7a+TJV*FLq+`$rRh6snBigu)DZ@1w zFz9ol%uze`zQdGh1DQ)sk*fNqjC_1`ZLctR1vl_E4Yq#mOqe}OKU&}%$65`H3W4q< z2Rm&g^9R~qp>sI>!OFD?AzY&mzk6ifv_=&seE2or=leyoVXDqU5)3>d=>YA+b!odf z_agb5%V(L*HC!;qS&E16+RAEkUBfqv<)YXa{H_KZC+761y!s9wrhbi0DnIc*PH$;> zVdB;P;cf~Stnux(Lok-fW={Fu@87to6%`-vVooKb9~<;fxIboUu|nnC2pMxIfB~qK zzdd5jH|aH}T;I5v@`Z`y*%;#3`YP1`@H`H>24eoV=Iy_lZrV@SHXyX{Gf|$qo7);d zXl#F|qjsDn0-jI{$6`vx*9|Mw6c9#5O<(vzG9%EWnR@Hr%XL1yPkM>k%P~GN@!0#O zZRuqT8`WV?SR2HBuO{lj>f}gTZe@{<)pP-h?|iux{qTLHapAk`rK01{7r1NjlcO@?m*EP_;pDwJA%hDtS24W6?NH)aL<`A$$G9nY!IMrcG zAV>WJGA}Prk)`ar$I(b7-~yPG@oyxXtYwF>#R7j;=`E^`j?NlLhl_67Z(RtF^7zDQ z5~%009AF-f!*e}b3+&oJC3`dB?M1=(_C}tqp*x+1@g8?FPa>N>bKQ5xFb|-6?B%Wo zhW}J2VC$~{nH0ts+Brdp05N06&yCHTbh+~|hx0`?L@HZp#W7mjcSN(YTlJy8Tla;o zwq;`c{ZQ`e;CIfL5h&TOBXDK+)?-P|9EVJQ>}#lXi}9haEzWpWI>()Mj9;LwQh&yb zoIGau;uxBhA3Wkar)JReT-bmKFPe$F77~Ap~hi~Dl2`*W1BjU`X{t?%|GKJ z8o39!^*h(pAEL=8-(N3!mZ!DWKtNkc|<0d0loc~8BlZ}axsv8L+r;aEXnU|S>w~`hpOGMV$yJu ze;fD9iU*p0E6t;$z%`8~QT~Uj3VoQ6pN)@Q>syHoM%YrZYqogn+vT3huIlairSd@h z<`WujMm+2(0FwbaskPIz+sFGYmx<}cLs8To{hJfaq@WC3d^bBt^#1+(!??_=ZVGZT z2o#2gpT=t&`!vHv!ph3(KWHCn=UJmekbkCq1K>GwS(J{^%0j!I(!9jwh9i5f;T)o8C8HJeF|{ITE;# zpa>)$Kp2=~9YMNg|Mvzbj7`H#S2<}@}Qh2lFg>@L8rD!|$RLsQ|n+J=ro(=rYM3-tY?>+Y^B0jgED$@Df z*p0|^8oFy$cJ5*=zBo@2{fbAAy0J<(wbAde$-?vSpwVX|qTk`NXFVhz&dZI3&KT|q!2b#l`3movbbWatAcarE0fjwDXSGGqp1B_{!}E4W?8g%)tBR`- z2cI@hxF&l1gF4ut>uCY+icU=h9 z?^C!Eucm}F8>Qm9@7BzOr=aGC?SpXa-du<4lQz}W-u;N>m6b4dGWFVa2l+$@r+KI( zfrxrp{R$2e0n%=R!Z40Z&km>NfO=dV^c^Bo*OOV1ZhfbR^=yEFlPM2`RLT83*!S54 z)@kd~Z*O;hxTeQXf7(AVwEgi;lCP!8zS6(I2bY%aawj< z3)YNr1H+F$a5W4(=4*;GjUCu1!)9U(4K4^CY-JGoAe3LU^5hZX zd#RV!$%>FQH?>3M%e~gGPYGD3%wBP;A7qjxkIitm<;zEJ5kDF7sC*l$>{U?SR&c$A zBgoq4vE&L@4wOxg=xt5R!8(RINz&P za=zo@z8hKcP^E(&F^Zx~?{fzgoA!VBqYxtAE+I)$%k8fLKiAInlkW2gi1=K4G#j2R znqhbyE_~B(zgEez0Ydm%3}3w(I!?P;UKfRwz=k4)FOOF%4-5O&cIIALj=g#i$EY0B zwAY}#q2C~0$rElwvfE;iy7*9k<(3dG_Z>3FN{@nDtZvj10OY>)gT%nA@2LN6YHF(z zm%N%;JW^L@!$Ry*839%r3+)QyfMRt{t0|@ryU_k+ux`Y(A=282bjw!d4KHGgZH$J3 zq1a69?4#GU?Og|}ed|@3*Cn%+{I#R8vBVYd-tEaR>-#r*``;^RYn>Lp)-HitPdB4G za+|#EJm5bbHf4_$lEW+l&;9_Rl2Oc0(>K81y_`soC~mu8K^jQDACSP`;=R0%BSyg$ zaukWClN9E%h?PwoJsp?^C4aqUVZmhc+{@BaxU<&lj794B&`Ib0`-nBiw&6$X3HBlj zwEH^*TK@0_Bc-x_!^Q0+2WbPu*))FT{+l@TY9?v9%W>UoDD}vrRC}l0d@It>+p3}$ z&eS%s?&OvjxcDwt?>uvai-)|DBUmpT2B1+M%inycr$foarUog#6dijNlk)613)&RO zGKT-@*Dj58Q1GX%y+2^V4KtDtx^mQiZNWKd0@|{(+E}U-Q25 zBKvBu@|2lmwXfn=OG7fvKQ7IJDxR7}|Jg%f~nh(d^mRw$1x}jL%;Bx8KAP}EwBXJ7~hxzJ$GXef?Hkgr7K<3rj)5HDS zoBhL|{se;nQQ<)T7TeI|k%03~GOiMomO)i|#dt(|?&_QQ9NfsCTJT*z1|vkS0(ehS zgg%s6ljC8ogPNwY*wm;a{AC=Yz@4U6);q?_A#$%*Xl@T^^fki4?K0FI;#S(UO5jcA zyfaJZe!Al@lrnpO|A4Fegk-MvR{gn&@<`nSfe)=R%u1hP1QqGtC=!yhahyT$pHlO$ z#?dqH&M^Vj_ONT|Q`EwTdm9kW< zxS0;x_WukuJBZFXax*1R+QAR%D9H`3MGWgI`n0ro`}051;U5HtKRfDQCu!zt?Pox^ z4XjxvcO{E)Nr7u_-EM3to-vju{>YO@Z@Y7`ilg@$x5m5F`QVe-$IA~`+e-5y zzvsl<@X#S{GX3BF$CU&8gLn}RAsikeU&=IY)=n=x&E$3c>%_XeENSWXqAj;RSADPL z_L^%uc0e$5hO1_?^~8Rf1)@$=rvCH&{^hmkT#HlC)ygtW{+Q4il!VT1#7u z3_zj>A6Nhg=VvU>rc^JzhC-^{*VasbyGzHWkz|P5pD}trhQJn2O%k3UgDfko$Uy1i zNcyD2vB!Ps(!g~qD@gA>Zt)`{dEZ$s`r7!QCHqy9jBe5Qzv4ZB{~+=3(6NH{qekWV z-iJ08q<=?0ErvlB*%&Qs06S4M@bER^kevuR*lRpxYdKcc8ZiD2HcbWJk*vkR_e+FlF+q9N1uAT(55B1y6Y^-%r)Sj`9G2IaWkC4lUFb)w zP;VmfJ1FRc|I;5UWVEoXDj$6eh>hReBW+)Z>rq6+p%A_n-eey6p6e1Cm+P-%GSkca zTF=d-zt^2IFVj7ab7&HlZcghC zPs+W4w`25HPxPcvd0;F{G7XK)V6M$O^J?AjCJ$EiG(JTS3Cz!ym*9&n>>%kRMy>`mV4TB0_aByAvrIkWJ3n z!;BYo&Sc&2bvX#dgmaTGk>Y-fj07qg865r^TnL$X7t;c^1&5vZerbG#diVJ238T7o z5ly}AI4ttZ^)>_Rc%J=_Ym-A)T(#{COYUVVr__^HB%-zjyC=8AR&R(|{-~8_1#Xjw zu>E{-N+8qoHxl0}nCB2^` zzIEcY{bHh;+BKbb~aA2uOppl5gO?x4ysM?=H{1&p%w8wa%HDJ+o)meD>aoK0e}V z2w@d5W0?t$L7Q3Qt>@Og)?UZhI4hxov%%@S_1B@=EMl>*Pi_0*Y$W4{*Ulb3AzM+VqEYt z?(-V|9w<6F^`qJIT#Fn91?9l^zK4*G>ng#YB=0|jx4!e!j6dP=2?^Cz3&0$B9t6rf zy`Ym%UDsL5SV1`&vr!N9#e~6NOP*8bE4%#{2N|UtJ+oY*EEM_^(4vX}orVKJ$oUEq z2BN_Pt*Rw@U&f{#@u^l;zw5dkvH2o;ZS9s8#%a%rEg4blYD`m*h+S?VwS{XG{Wr7t zMN{r<;qyugv1As(199!wIWF%coAqV=KhI^o6}N9~KhZU_R5L{hw}|q1HMh&3oq?jw z+sUZYK1ims7yn@3Ra9?3>t)-q?Qqlmo?lBScwdP`5g|Jz-Qm~NpB=&_y+C=d z#$3UVaw$I(uj?F!NO-bj13k7h7h}80z2|{}*&``HbyI*&OC@x3)9lu_5G6m0o{l9W z=CX3Iv`min{vG6PGeHX+ipAck=96cHv%lL3n<>Wg6q1THYeSiz9spOe7o_vi-;^z5 zRnxK!mEN*fGQy_n&7g@>mWeCFu3& zkmuME_hDilyA56R2k zb&yRif}iP^o8i~!YRY_Re{fPZ5};D%0!lG0R9l|2GBZ2+VrUwCIkArNyL-Q{pA~$l~CMUt*&reT|QXg9$?k>xtPaesf|}>aj`JqQ&2~1}e() zCG%UWtcc>f?^mvfJ?w70xo&b|qXo!< zFtVh#`A4}#v&YNASjsP|ypEoMq7Sbq|3s=zz*?ATs-HE8^^jn}OgqEn5ioXky^0%b zuM@ofM4nua&7HmFr=lmiV*2B~z{c6Tpr+ifJ(Me_~nv(rZpE8IoCUgZ#@VMxel8lG!WKLAR?evu|H&dkgXWfe3=6||#pB18G(s-&v) zi2&_FVr(}iF0OcwK-y|38YJ9F9w5H9(hsnltLc5d_nA6RA!D+Du44g@qS9n|^1HmR zJk2?1M}1XZsJy=)<*jv7dD3;OxOTpRWYP)LHD$N|`J%VK-yY%a);Obv#kbEhDkWtt zYo^ASTf>Q0rlzL13H&lLGV>3ozG_7`xt}%&M3FwH6Ai+)obd*xo_z3Dc%6X7Mr<6t zLW7s{-nX5zo1W5z{`&nXpfESh{kBAA#FO$$_a2|S(4&VQZWOuVWXZ+-RxcQi`(A2W z{!CR(pVlOc-3dD8Ei@Z*H#kJ#s%2&Q)l*eYM#Mi)jrCrg8#YRF9{KDIK|CGdz{qP2 zW+|f|k4s;Wui6r@Vw~Q&6KJz52abhDpK>Ye;lE{+n2HuzFW9V%|yXo z^Wrqm6Kkr!R0fHlF*0CfnnAllItinEMADaRcqN96=i^+)*UR-{9?YVJh%rmatv{sP zL`~O`=d$b8JBxetdNI*N5%6p~Uk+Rfz0ud1^IX3i?TUImwRtZBn_kDI4|H+zpdI8pOy!t<)qDUMNVZ&|inEZ1K7T%07eSQ2shfmKWg zV=wozW%Mkx%Jf{PTj0lz;Fy|7i=zoL6c6tM8$7uX%?T96*y~ScyF!)+sXpS1f4au) z?VE*>u$Ly6TKy!`-K`?{{;b4R7<8hm*I1}GZbBB0=gM1lXJ_5_Yocnki!S%QOb{>- zrhnzhv}PaT9>{2c5q}tDtJQ0T=}h>m;Tm1xbrF2Y}ki-@=sOWc)maG%YK zx`PmQL{w-M74IWn%lA11ZXl!*eA$7lNr%@75z>S#&2{fc2$<3Le<{6rg$T*#ctnB$ zkG7FQK$}~_Q~u}FdNJwCU5X}&U_4AB1w;rDdvq!)+~2B$iA>^zPtg&=gt=ByZP08&^Zs)`I{H{<3>=D69=k4RJdWoR&m2TRs)e{2Yj%4pyvoi`OSG`7}I7THY} zkYX*3Z6k;bMRmC|&HpcS53w1D-MPb!C@m(e{NE@VaR!S%8{)KdqtlDw6z%kVU3R;F zTK_-$Co|yF8EwJ9#2h=HO6fNgh%b@Zf-;m=8guZqXk!P!j34(%}YHxmDC7uOl$PnRy z6q~P2tHHbYgaFUKV2thyw=2)KjT#PU*Ig*i`NO~%mhZJE(i7(LCZvVBExW2@-SX`lgyDI7 zI1iH3kQX3?{jh0m_hfB$%zWD>!N9~4 zZ*aN)$Dtb_FbA9qJ9o%eN6YziBg{W+8?De95c1Z9RD&d zvC8!F-AV8M$QuJhP7=BI)C2uItmK~$ilC`E&!qTtuwXA_il{ZH|7E}a`;E)V5z4p= z{md&3Q&C}{XB-M9DEqZ(^a?*<=haVxGTM70ZKw<^14(1Cc>8avLn8^Gn_EYk(_W?F zq)%lI4g%{9PdU6R1&rnWk%TECP>MtX_!+Bbher+Rk0mxH%3dXEKFV3GI(oW>HrfAF zb8B^fC)ch-K!JX*LpHdoYN^);T?`TOv_G;hXl<(ZO9ctq2EP*>LKp%mp;P34U+h2H z;V4n41sQ6#WwyFLx@?zKBY$xPb>1db%~~%$%*sGU-cFf_h&cW+&d|#CL89;1Qpbl# zxi~M{#)^aR_y+_%{`;qCaS^IYR&vQze75!fPQS89i_#zUS z#z)=aI>(wKADIyN(#nV+#>#zd@Cs*ST`x`&y;7l%|7qW9;D#%^Q4bDbY%)(8t;m@n z@-#TYe-`?me~nBbdXklu;hm_`wiUog_?@&KIV49HQF1bvuI{;FrV7PzOioFcWyyom z4M!&afx5hErDe;9o3$&fn=5-8uLzWsVHB_Ow5U1)1DMn?=l3g3kl7`_Z_iX#*iVsN zrcOvJ+J+dZABSSg9#79`bcS{Xy3M$+=M;U5qqWXReoVM|`1CH7+^|@Xcvz%=4#)XB zD3QBzNk)39iZ8lF>rwdos<$WzVH~6y*u-!`Q#hvdBi0BQOup7CIFT9Ll!UC4p;K#w zQBx)x7-W~wkq2h6FAe>EdyrwN#>;@z7R|_3I>Zn6rQ$GpzXHP$!~!oRoTNg-&=>3| zy+|dy$};XoFBk{g+ptPKn&98wWy!my^I92%ly(p!wX)+eRM=ywCR;bHKspC z_j?nU&eR8{jD;_}u%H{%>}-2irl$(ONihgHP>ENy9II1#9W~63b<8Gw8)nM1Sub$K zGYjW*Q$CKqhpEJDLt8M1i3?7@iV(%dEf-u>k%B;gC5~$-T$0L#T2P?v5=$X&g|BhZ z188y*a9oaRedGr>p;>Az+Lri!CoMJjz6+!gDOy$D4oF;Hyn##Bv(B{ydz3yxYKSL9 zRm0gR%o>8SqaXL@PV_RSrHGr7Py@a@o|Gc)h={J1V(146qW6VbD{&k zH*}u_9{)(``ud{5I243uRs^E12u;&^sy*qSqC(=OoiuAHuR)l*QfR8*_ls!G_@5=B zs~mye{cT@PeP7eI5LIHXd&S;PF2KS-y5|k|q3sRh$S^`!u#!;$V{-4M6#0d`PG;T} z|AN3DY7<#xcG=9ljNEjq4E6W?JSnj2XQ5J(i$P6uj`xwF*@gRz@a}Q66(Z7uGAS;) zNWvR3DdJEXA|?HY8_s>iPuY>74W~=ma8(zy<>tfWJH9 z1Kg#Zy#nTpw^=3Y?b6~O0MjV8qg|L1o`z$f1taGM`uW{z?1%TjtVmfy0&uO^BRnv& z&T{AIEj>rRfF1#%Tv>QKP0?{Spri{M@hyV=_j zX+Ru3p3dK11O98Mbqa8V|Bvl41pqaE)&o3-aF?bCz7-NWN_NYr%Qx$skG2!JUFTo^ z6DkGkUw2gE6}#aSDK0R;2B!fDE4&*qa(!bmE~fI|Zd%SeuxSs7aj@^gV*)8*Ffs%8 zV-mbumc9mt_PVb1NgzC4%lQCCb|85cNpv%ErWy)xOBm_X;4%Tx4SP`sCB%u`(jx|T zno6Te9NslR%>&c4@$9BPyImSFSg7R_7r3I90!IZ5tPIh)-L;1=z72di|Ii2QJ?jgRRZk9sX@-0<{1&nP-PzIix+=*OowN+TyHM|E~Be?QIgaQ%Awdhpu8 ztR3TawaGx#Q9bR7sf2r-&Xn|UP@(Nv=uzF&0vW@XF30ujQ5edmv+W{;l;>!HG!HR1 z4`13(Q%ye5(#0n5ys@SI)H6LPhOFkC7I%y9XcaZOSCQy^{=jBGo8yu)h7E7kLZHJj zsv>x^@o8Q-g|60m`*Ee z$Kj#z_B%Fq%QKE-PRD`=5Qu4G^!Y}ywVX-2czpWWNaxrSU<;E}qty`|z{Xcz<|YaK zPTxK} ?Vl~3bkUK>iYr>vK{Gc?q_+t1%b-`!vb_-iVmhJCmOk3h;8G*d*MKBhCibva>~qctjtYy!>b5( zq~Gf$^`jM0S`Pj37_QV$M>le5&6f7iP-@Q3)|xC`q_DQ~>Q^av2kIYc@wz95lMBip z90r+}iS!S-f9B=Ndu5@~nJw)N^|2K$)FyfErB$;x&G6iL*I_X;oz1Xe-lc3;FsZs6bjU(urEC478u1kS*NSuL8tG~TsIp3kqZ+G zL!uIv>Q^(p-QOYjR{42_C8?}o)}Mu$FbPf`8wmrG1T{7iuBHsf?fLE#5WwVdu-h19 zR4hNV^Q}@1U`Uv!SYQ;OJ6b}PsJ-LC&~p0&#W13EiD?O znP7JH28WP=cLED2PodFE?LN#T}4%n}7a-?$id#emLaGEJ>*eH-J5`qu`0DgKO zyox<#(q0V(#XtMr7M70niHft_sWllUbKTE%1a)F*`>pE5K?zD3!bJPidu_9;&M znx3jqqjKA2bM_ZWX!VYN*g-2S32vh$rAKH-#HR?DlYvWmDEgsoyjS^l-z*Uccb5lE zKI=+Ih??tUOf8u2kO^3A!|HcxG>un+ajjfG_V8b*G?5FQUT7pg(SJK{dv2+up;REt zyKx{FGQXUn@OZLk)*C(6vrJ5?!p88Eaz z;$aXOePQ7`1M&VB8vSuB61kW0@8zl|-@G|fDM?bcwlOL1#>2%xmxnXH3%T|6SLTq(;0GUV zb~upqTFk4j38#wVu!waMZoqFcklb8aJan^jnr5D~0z%0avLyL;cm?Zfwoa2szPr1` z{OgHwa+&pR;&O5knq)@ZL)sMn~P`T#w4TbF+WM&wEah zHdu^@|2&sEa(8oXEw3>puiYxi8`{GyTeoOuf~Sv#c+rhiTSe#>JOna6UxMyi1C@nF zE?&*^B?NR`QRIZ!D(m-VoJWe=1BUnF^bB7oRal=I{u@)I}^~e7tis^>RwVS z2v#aN?at;>)~vF7U(F}3zSC+I*&9?zP&w!^jOqnV1nj2LoY!OJp2i745h2p!<&^ML z{u5JV_Q!g-*aFHb=?Qsi0@UZHF zPqVRv>$72#jUsCx5uC7Og_=ryPV_>wY=^}7IoICVMZ%5r_o_vM@#P|fX)ho{8K3Fx ze?o=!DX8{nYqS~s#4OZ{nWvsKrJXA!#Ug;l664q08iRkc50vC6>=7Zn3?>tF-`vhg z)$0$`iFnL%it2V$u@vJQa-Un+4SW-{`R-GsbC^oP=kgLrJ?j4Iql=Z^r1i$7jc1yW zFSBXfULvZ3r>S1ew zajEqOKhsV!OA-+ziHgL{3iYyiO^C$Oibuu&@U0OdWc5*589D?6x9<#t(AB@$h5zxf z9GM-2pjY1BKR!OLkm<1T4D1cgPI?7$ItZj+d?8rn^?>_xD|oO1ObhbqYD+a zA?thteF8>{{HS8^Nci;8R{;2&+Cj7;iWbKxP1-K9sKpHC90&OV#$nZ(42BX>i3ANK z(zc2*$bQ0u<~U`h-uoMmA3nN|j2hshT5WT4GHCam-y(!bl6k&hWCRiP?E%#PSm}R! zM8hx=Yo*e1q@u`kh~0^iBu_dd9O`%9Z2+keMoKQd*eM%drJrY@Qbm&RFq(7tmzxih zC3Dzj&leCt!R1-hQqQVS8>Y{b&lscVIy@M9u9;g@rEJyYm<&+(a$8!{?9^u?SI{y= z+s*jIPg9=hf~?Mqu6bJQ^{yF%1Z;R@G2yd9x$mD6D3|nn@?AChfk$D4OZci=0#f$N z?dJJjBk7(x9jLW!FU;GR1cUYOw$zA89r=jU4CJ03agNVtVpHaZQ$sB%c}dc!@W zH%!rN0HMoUZhmUzdJ&SBQ&lBqHD!iJOH13pCzbPF%*Abh?kD50vdqLxWo$+UtGIZ8 zRejWCZ{?(kii*jzDq9(V-z@M<(K^;VRa zTlACh+Os-b`=oV`0!V+D%QGRfEBHiHmxjG%2CG(qqglfB0Vv_Q5Xtib2uH&RrRWd#(@$#0vlezp=!-#RP z+JdVr#+fRY$U@{-XVN6V!IUNee3&Xk$2$!f(f1dPZok)@W6YBGr)ZLaQz=FLEKStDc1M6o2V7cq3QF{Sbv4(`3VaW#H8xc=!XWVvg;pd*TwVQ znm(6Fjd#m6L{!j=fk#i*RG9xjM^ru^f>{!KWJ$=?V^vQki6 zOlNY#fBxB&7BdE+4y(Glddb^>Df2~&)4Da5J0pB?Kl?_V)r_;X1H$O0f+Wu?g8Ff% zbM#vG=uoECxr$lS_%*F`?BZ6i2X|ibQ16t4(O|!`5yvyNV1JBqPu<~>Q&W-#Z0C4t zG1}yr9$Ne8*^^(H1i+ zU-S&s?q6;la}$%34UZmr?R3{1o?jdk6zY|$GQqSy5 zS9&V66bC~mmD^S+G%U2*;llLBWqR=7K?8-D5d8+!0XP4J{stO`HtgPq@^ZzSR~4Y7 zG~PCgM3V3`(nn^*fBvj*x8OL{$DQ`2lJOyHv1XniYk&0=OSHHK4>eBDm_QZO(|Ll; zjn|H$vdMSmdX7$6>F0M4UQmJo5!3&j<1XE|>7$QD9w+L_yvCu0s76cGQ;RO58LTlV z7$u25-`2ESsUDP&Ib8fkb5%xy5VB}RpYOS6D63`I6M$sD)W@}@b#mzF7(k+;B-8(g zzW9%i`~*FK3lak#0mMpfoVh}8Fs^aMj~Y$wXoJNoq=S`L3XRs>_sIq36QWBC3#V2^ z5!oHqU-k|TCQyo2RO5*YeHMtqP~+f4)oy(M{t=h0ny&6%Gqa^-VPWCI7&WJ>iR|02 zTpT@&%x_v8=Q!2f4hPx2ziAaaEs@gLBBgD94N)Wm;IE=Plo)Z9LK+k}HmAS3s}aQ& z6|?3Y*U~D0o1%U=f5>il=AfQ+Ixm9tg5xV!-L{6RYRzZRTH)a9_%NvTnm=!Ux=`V~ z=%wEDI%1&d2YM4ZYm9zJpv=n-yM6zK_iB-wb`V0>`o6FvcB$jgaV9UCgxlq1y1Q2~3E%G$sJ30)z_`uajR#viSKD8a zE9;p5iRl?Pp-vw|`Z*hr(4|^6e-m4`_Xjmas0$fd1d3&PrtuX{(9~GWY|8Y_A!{aj zF`ca*Zy7HG52Gso)k2OY=&G0a{#4qJ1z{|c;4xGS7xPUk@XF_CQc$4KGX2%{9nA^V z*sG#Iwr`_ex(juRuZQ2$hC#Gh|G2tZ=_+h;eUgkI*^n7aGJV)Vcg>L>(>8UZra-96 zQV1EG~z?4k%P8G7oYD{W0p`aLpUn!IN& zZ0;ve=RJPUv#LV9_>`380^M+OE*26e``RDVr^_(rPkL+=rX)Q?kL7@5Dw##!xH zB;$baSP(X8VxEOMJ=P28c!B7RM&1U&g~^tSP!b+Du}#MioXWm_V!EWk%GEEji>1%-(g<7^`tdONFcEvTPSsA*_0(krA!6JGt6bdIWR?F5aAbL#3~ z@2jX3fBy*H6A7MR?6S<6D-8Nypl~9Dej-EPGcm%X+8Jf0l_)#KJ3)(3CZmCOqi0xa znHCE*a+4*OeyQB9?Ex$nBFskmzD`d~P9zV-^1NhcuT1)bS2pY@!Uz{B4%dbphnWfs zR@95*^;frw-8vnoX1P9A;-7Un%xcjx-+fQF6za76rekg?An|ZX`ZdOMUhUwA1#(Lr zh5Wq1)ASR`bS25@+PnBVj5)$gN}rD>=MI7do7Wl9LVQLj6c8c@~iesMfIi%B7_-zokoRg&hh(VqQf4S z1kytF^b_dQ-LG6{j()yY6Y<&@l+DR36Y|50sPMk_Qm@@Lo@umh31oQ$T)0NdS^1Ls zfq*N+J6n!vk4Wt-eSHn_UqV&U*sdk8*UF zu(2jWMeA9fIPcE$s9E+DsA%zcr)$}E5-7cVqE(7TtkplQ`_-7s|lEkO;C>fi`&8O3Z% zvp1gM)$9tRf!w(GNvu`NU=97Na8H|NOYESR;^eR3!nFWw({BlD zQ_Y$BVMta=yA9@qJs|&1JKt4vjQSzE%;Sf4aSp0kZGDIC9H~o(pyE!#lkHlSV(v`+ z2sI9^a>H)<%NmDrsJdNTp_P7Hn9Z?2Y~22hEx(vxk20E?!@H#%Gx4LP9}`B%?WY*E z#-SeZ>WpHAxNknS?{>&#(Gfb#-FSUJdh=FerSVrIpQ}oNx)+V!b4{%a-R>`q=_kva z>n>>=VgP#vhjsmjLHBPTh5FEqOk3MOQ;+MDF|e{atI&V*Iw!3i=!|EGTOE@%X~a83 z(a54=!Wq#Es5OqZs2F0@N`3CFa}z6=tFd-&3k619GKiZ)HC&p2{*5- z%<++cVg%U>jgwilEgQT~>(AtPH&ruvEZDx2oAYBkV6nXBn8|%0=*}p#e!D#7tDvWvDh_c>7yP1JiP+@OXo!R+HEQ%@7Zl&dM$cgz5 z+W(9p+ys@HTieSPiar<0*p}C*o@{@kwzinfnSf%;0B9H}Uw-@M@gV8H-aNcc&jK)> z*_{m#)jCLtcQSYuE7BiH^k2Bz8=n-Z#|rWZD$$6Z;+ku)9Ha7QQOg8u5+pw;S?`5f ziXd_ML_A%g#x0>>^NDQOYJ+uV=QGgMD3609H=fvhR^s-O+ms6E*2j*H#|_XpHSikc z$ndzdP#_+}*-{{^iG?NaOHXZ!8COK~L$rg-HBMJP$hI2j2}*90!jr7)%)XfSVGm!O zzbUt08|rV|Ba78;bnaj32+FOfPy%gb97Trco~CGS*{6K(Cr_t0l#Gf2odNqmkJB#& z+Afa0(USs(a=pisPq6d^k%-Dn$r`*$wMMUEH&iaX1e0|5&s?6HSI$d(PWdudqAO^J zq}yxo1QojddV73R2ttwiE#jg_xNfV^L8*;K0Nc^fB^idQK)} z)fx+bJ{w#Im92c|km~q?u~jkxaT}7E zcg8P2o}$DcN-oN|d>9spjmhOj{c$uG$al7leD}wfh8dH%Z`%C3hq`KN^jODOq=^h> zhf6AWjm(-99lPU@aEuo7Yr3BVg^nprPWIcQi&T2J3ju0y-*g=CAJQO%^^}RxEwsNf zw%QzfJ#jSri)ra}PQJ=9-NO3ZDrXV%k{@S+sU2yFPR+e&c3!Q@i#N)=O7(N14&tD` zf8^Z-Ci0mY;h@Op>*p++BDRF_6StRv{F zH1TrDhswD`a0f+Y>axkZn2Mc7H3=TOu@=QV)HQ1H`;#934whYP*xPkhD(-wvtv8y6 z4bW3?UTHR{pY$L>HlDt`^vb!^ZpzMELVrte=@pW*hV4#mii`IAsI>Kak-?}p@Kw%+ z-}A#C41jc~v?WVQqZ$Q~AWb+WnFivzx;V*`-U@z@OY#a3J*b_cKnQC-&UJ?S;*Wm= z4rzaUa>jGCd_cjErgr2w5&HAWJuL|vA3ylnVH(VuRO6J!baat2tmo?NL5|<>_dib) z%@nNeLUGw$N~nh(z_}yrngAa0I?CG4Bnf+h$qjE{{nJ?Iz#BqV=lS<7=fau&y?ZQ+ zQb(CoO95YMFw_#HEK<^|K8A`b95pO*PUe1%J4ZkW+ud=!MO^(2yCFpg@BUqvtLUZ&xm>P|FwL$84>!9E zfH{`UIE8yZj&J}-gKYV0i)3;iLRh*#(|Z#scXq|u7NoXscmy_aE9I~I8h1GMTgALp z%fZ&~d_P_vgeA!->=J{pJqL#c+*in)aDY3BCkj>OiKcrq<|CdV=s?(z_uCo&O-3tS z%+P{Y>@-USf6KVCkjcO^mYCmdk~LxO<6lIHLdca}FaUVGuk#zrq|NCH1khC@2p@su za6=0Ahp!pk@60Bc98{m?bgzugD3o@mM2j`vkyLmsi9gE}@k%1|rs!R?_@NVo!wfy3 zl;0V_$=={nrSq+iIG5i@M=gNh;6x9?-8EqVTr$AHv=hmjCP%=)dR~Pg=-}uxJG6BS zFxt^)fv5m48P?c0MDLYh;$we6ZM99Faq?H%e%?9%&y?AP|tX0WOIeQwmKY!P_p z`GO~NbqN!liVKH;*Bo-fnp@D#-#mY%8*mk4gajjrEXZYnYAqegczQN{{=7@;YBl%> zC~92i)^^1cBMAoNJmkAzuyB)^A%#`Sc6ySou-i zxUXYF};YoQtzZ0V}5o!SYyi+D-- zeVo>8+ph6wjOU>9`cjSkx}cC|n!AhuTI3CGtP7~5^R^d>W$5)N+q}I8c(yU6@FI#5-{jQh~03tvBsB;_v!rJ zEWqs!PoA~{acV%~85&9~ zELEo~&-MjeNUOZ)h^vn3M=~K>KJ&Q~ za_$(v>&UsPt)_JO7C86#OKSFyrt0OohlST5pJT&?iYPG_tz$RT{e8sktSmq>$KSaz z=RIHqW#SlLzI0_wm>6I7fR#i$UJTv-h5YLjm$O{C(0ec(`WR8$h{l_ z)_qh*w#u_gz=e4gMN5ln(!w>UGT0uaBa9`QL|Q!%U0A(mhZ-^&|tE=pRR$_5i8>wv}ia zWU8TJGv@ij+yA2qFpv(a+}5rVrQRsX+u-`6AkAHB9m{rteHmk=Mt@OA`Ri$MLcEX} zP(21E?5Hu;0LxP0KwY^^s%6WU8ZI0-8_1d9kL)mA*%%-30h@pb1yJnBS;x=u<=s73 zdXlmy1rIB?_fhG8SSAgu1K;vuAr$1a4ylmL>WearI|hP)&$-A2vYp2A!4KV~0A0bs39(9gmD%m?qUDzH_i)!&K!cXa+6 zlJ{>$#Xn2e07%&?jbCsb#D7K!zA@JsF<5Vb(*Lr#e^KGZ;J#}xyTAoS|1*jh*hJif l077`W;-BO2RrS5T@4~(=kMg`J=nnWNEiNxsBBJ;9{{TYX^l$(G literal 0 HcmV?d00001 diff --git a/tests/data/requirements/pic/3.png b/tests/data/requirements/pic/3.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c3bf472a02979fe96feef9669e32b04dd91e20 GIT binary patch literal 359948 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 Y}B`>!LUpwRR2CP@)^3a7;}TKND==fiNiTupYlg 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�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%0Ar5^s@pQvX~?7_PA+q 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 literal 0 HcmV?d00001 diff --git a/tests/data/requirements/pic/4.png b/tests/data/requirements/pic/4.png new file mode 100644 index 0000000000000000000000000000000000000000..86a6bf2179de6e347f1dc0ee9e0bec8896195ae2 GIT binary patch literal 86204 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 anB&_LXB~Ua1Gh}4eH0eC@tgIr$Nm8*6^knX literal 0 HcmV?d00001 diff --git a/tests/data/requirements/pic/5.png b/tests/data/requirements/pic/5.png new file mode 100644 index 0000000000000000000000000000000000000000..d594baee54e759853acf038b261513941aceb4d3 GIT binary patch literal 95678 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 z

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%0DC|1ycUnRan#m$^+fQ?C>r}7-6Rbv@JYhzHlLR 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 NYD!v)h`ZL0{s+}#&!PYT literal 0 HcmV?d00001 diff --git a/tests/metagpt/actions/requirement_analysis/requirement/__init__.py b/tests/metagpt/actions/requirement_analysis/requirement/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/metagpt/actions/requirement_analysis/requirement/test_pic2txt.py b/tests/metagpt/actions/requirement_analysis/requirement/test_pic2txt.py new file mode 100644 index 000000000..75ab8960b --- /dev/null +++ b/tests/metagpt/actions/requirement_analysis/requirement/test_pic2txt.py @@ -0,0 +1,28 @@ +import pytest + +from metagpt.actions.requirement_analysis.requirement.pic2txt import Pic2Txt +from metagpt.const import TEST_DATA_PATH +from metagpt.utils.common import aread + + +@pytest.mark.asyncio +async def test_pic2txt(context): + images = [ + TEST_DATA_PATH / "requirements/pic/1.png", + TEST_DATA_PATH / "requirements/pic/2.png", + TEST_DATA_PATH / "requirements/pic/3.png", + TEST_DATA_PATH / "requirements/pic/4.png", + TEST_DATA_PATH / "requirements/pic/5.png", + ] + textual_user_requirements = await aread(filename=TEST_DATA_PATH / "requirements/1.original_requirement.txt") + acknowledge = await aread(filename=TEST_DATA_PATH / "requirements/1.acknowledge.md") + + action = Pic2Txt(context=context) + rsp = await action.run( + image_paths=images, textual_user_requirement=textual_user_requirements, acknowledge=acknowledge + ) + assert rsp + + +if __name__ == "__main__": + pytest.main([__file__, "-s"]) From 4cb0696df0ada910d90139cbbdc1525cba882d4d Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Thu, 27 Jun 2024 16:01:16 +0800 Subject: [PATCH 29/37] add cr tool --- examples/cr.py | 15 ++ metagpt/ext/cr/__init__.py | 3 + metagpt/ext/cr/actions/code_review.py | 196 ++++++++++++++++++ metagpt/ext/cr/actions/modify_code.py | 114 +++++++++++ metagpt/ext/cr/points.json | 275 ++++++++++++++++++++++++++ metagpt/ext/cr/utils/__init__.py | 0 metagpt/ext/cr/utils/cleaner.py | 68 +++++++ metagpt/ext/cr/utils/schema.py | 20 ++ metagpt/tools/libs/cr.py | 90 +++++++++ 9 files changed, 781 insertions(+) create mode 100644 examples/cr.py create mode 100644 metagpt/ext/cr/__init__.py create mode 100644 metagpt/ext/cr/actions/code_review.py create mode 100644 metagpt/ext/cr/actions/modify_code.py create mode 100644 metagpt/ext/cr/points.json create mode 100644 metagpt/ext/cr/utils/__init__.py create mode 100644 metagpt/ext/cr/utils/cleaner.py create mode 100644 metagpt/ext/cr/utils/schema.py create mode 100644 metagpt/tools/libs/cr.py diff --git a/examples/cr.py b/examples/cr.py new file mode 100644 index 000000000..7171fc383 --- /dev/null +++ b/examples/cr.py @@ -0,0 +1,15 @@ +import fire + +from metagpt.roles.di.engineer2 import Engineer2 +from metagpt.tools.libs.cr import CodeReview + + +async def main(msg): + role = Engineer2(tools=["Plan", "Editor:write,read", "RoleZero", "ReviewAndRewriteCode", "CodeReview"]) + cr = CodeReview() + role.tool_execution_map.update({"CodeReview.review": cr.review, "CodeReview.fix": cr.fix}) + await role.run(msg) + + +if __name__ == "__main__": + fire.Fire(main) diff --git a/metagpt/ext/cr/__init__.py b/metagpt/ext/cr/__init__.py new file mode 100644 index 000000000..2bcf8efd0 --- /dev/null +++ b/metagpt/ext/cr/__init__.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# @Desc : diff --git a/metagpt/ext/cr/actions/code_review.py b/metagpt/ext/cr/actions/code_review.py new file mode 100644 index 000000000..70b85ff06 --- /dev/null +++ b/metagpt/ext/cr/actions/code_review.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# @Desc : + +import json +import re + +from unidiff import PatchedFile, PatchSet + +from metagpt.actions.action import Action +from metagpt.ext.cr.utils.cleaner import ( + add_line_num_on_patch, + get_code_block_from_patch, + rm_patch_useless_part, +) +from metagpt.ext.cr.utils.schema import Point +from metagpt.logs import logger +from metagpt.utils.common import parse_json_code_block + +CODE_REVIEW_PROMPT_TEMPLATE = """ +NOTICE +With the given pull-request(PR) Patch, and referenced Points(Code Standards), you should compare each point with the code one-by-one. + +The Patch code has added line number at the first character each line for reading, but the review should focus on new added code inside the `Patch` (lines starting with line number and '+'). +Each point is start with a line number and follows with the point description. + +## Patch +``` +{patch} +``` + +## Points +{points} + +## Output Format +```json +[ + {{ + "commented_file": "The file path which you give a comment from the patch", + "comment": "The chinese comment of code which do not meet point description and give modify suggestions", + "code_start_line": "the code start line number like `10` in the Patch of current comment,", + "code_end_line": "the code end line number like `15` in the Patch of current comment", + "point_id": "The point id which the `comment` references to" + }} +] +``` + +CodeReview guidelines: +- Generate code `comment` that do not meet the point description. +- Each `comment` should be restricted inside the `commented_file` +- Try to provide diverse and insightful comments across different `commented_file`. +- Don't suggest to add docstring unless it's necessary indeed. +- If the same code error occurs multiple times, it cannot be omitted, and all places need to be identified.But Don't duplicate at the same place with the same comment! +- Every line of code in the patch needs to be carefully checked, and laziness cannot be omitted. It is necessary to find out all the places. + +Just print the PR Patch comments in json format like **Output Format**. +""" + +CODE_REVIEW_COMFIRM_SYSTEM_PROMPT = """ +You are a professional engineer with Java stack, and good at code review comment result judgement. +""" + +CODE_REVIEW_COMFIRM_TEMPLATE = """ +## Code +``` +{code} +``` +## Code Review Comments +{comment} + +## Description of Defects +{desc} + +## Reference Example for Judgment +{example} + +## Your Task: +1. First, check if the code meets the requirements and does not violate any defects. If it meets the requirements and does not violate any defects, print `False` and do not proceed with further judgment. +2. If the check in step 1 does not print `False`, proceed to further judgment. Based on the "Reference Example for Judgment" provided, determine if the "Code" and "Code Review Comments" match. If they match, print `True`; otherwise, print `False`. + +Note: Your output should only be `True` or `False` without any explanations. +""" + + +class CodeReview(Action): + name: str = "CodeReview" + + def format_comments(self, comments: list[dict], points: list[Point], patch: PatchSet): + new_comments = [] + logger.debug(f"original comments: {comments}") + for cmt in comments: + for p in points: + if int(cmt.get("point_id", -1)) == p.id: + code_start_line = cmt.get("code_start_line") + code_end_line = cmt.get("code_end_line") + code = get_code_block_from_patch(patch, code_start_line, code_end_line) + + new_comments.append( + { + "commented_file": cmt.get("commented_file"), + "code": code, + "code_start_line": code_start_line, + "code_end_line": code_end_line, + "comment": cmt.get("comment"), + "point_id": p.id, + "point": p.text, + "point_detail": p.detail, + } + ) + break + + logger.debug(f"new_comments: {new_comments}") + return new_comments + + async def confirm_comments(self, patch: PatchSet, comments: list[dict], points: list[Point]) -> list[dict]: + points_dict = {point.id: point for point in points} + new_comments = [] + for cmt in comments: + point = points_dict[cmt.get("point_id")] + + code_start_line = cmt.get("code_start_line") + code_end_line = cmt.get("code_end_line") + # 如果代码位置为空的话,那么就将这条记录丢弃掉 + if not code_start_line or not code_end_line: + logger.info("False") + continue + + # 代码增加上下文,提升confirm的准确率 + code = get_code_block_from_patch(patch, str(max(1, int(code_start_line) - 3)), str(int(code_end_line) + 3)) + pattern = r"^[ \t\n\r(){}[\];,]*$" + if re.match(pattern, code): + code = get_code_block_from_patch( + patch, str(max(1, int(code_start_line) - 5)), str(int(code_end_line) + 5) + ) + prompt = CODE_REVIEW_COMFIRM_TEMPLATE.format( + code=code, + comment=cmt.get("comment"), + desc=point.text, + example=point.yes_example + "\n" + point.no_example, + ) + resp = await self.llm.aask(prompt, system_msgs=[CODE_REVIEW_COMFIRM_SYSTEM_PROMPT]) + if "True" in resp or "true" in resp: + new_comments.append(cmt) + logger.info(f"original comments num: {len(comments)}, confirmed comments num: {len(new_comments)}") + return new_comments + + async def cr_by_full_points(self, patch: PatchSet, points: list[Point]): + comments = [] + points_str = "\n".join([f"{p.id} {p.text}" for p in points]) + for patched_file in patch: + if patched_file.path.endswith(".py"): + points_str = "\n".join([f"{p.id} {p.text}" for p in points if p.language == "python"]) + elif patched_file.path.endswith(".java"): + points_str = "\n".join([f"{p.id} {p.text}" for p in points if p.language == "java"]) + else: + continue + if len(str(patched_file).splitlines()) >= 50: + cr_by_segment_points_comments = await self.cr_by_segment_points( + patched_file=patched_file, points=points + ) + comments += cr_by_segment_points_comments + continue + prompt = CODE_REVIEW_PROMPT_TEMPLATE.format(patch=str(patched_file), points=points_str) + resp = await self.llm.aask(prompt) + json_str = parse_json_code_block(resp)[0] + comments += json.loads(json_str) + + return comments + + async def cr_by_segment_points(self, patched_file: PatchedFile, points: list[Point]): + comments = [] + group_points = [points[i : i + 3] for i in range(0, len(points), 3)] + for group_point in group_points: + points_str = "\n".join([f"{p.id} {p.text}" for p in group_point]) + prompt = CODE_REVIEW_PROMPT_TEMPLATE.format(patch=str(patched_file), points=points_str) + resp = await self.llm.aask(prompt) + json_str = parse_json_code_block(resp)[0] + comments_batch = json.loads(json_str) + comments += comments_batch + + return comments + + async def run(self, patch: PatchSet, points: list[Point]): + patch: PatchSet = rm_patch_useless_part(patch) + patch: PatchSet = add_line_num_on_patch(patch) + + result = [] + comments = await self.cr_by_full_points(patch=patch, points=points) + if len(comments) != 0: + comments = self.format_comments(comments, points, patch) + comments = await self.confirm_comments(patch=patch, comments=comments, points=points) + for comment in comments: + if comment["code"]: + if not (comment["code"].startswith("-") or comment["code"].isspace()): + result.append(comment) + return result diff --git a/metagpt/ext/cr/actions/modify_code.py b/metagpt/ext/cr/actions/modify_code.py new file mode 100644 index 000000000..ad68710a7 --- /dev/null +++ b/metagpt/ext/cr/actions/modify_code.py @@ -0,0 +1,114 @@ +import datetime +import itertools +import re +from pathlib import Path +from typing import Optional + +from unidiff import PatchSet + +from metagpt.actions.action import Action +from metagpt.const import DEFAULT_WORKSPACE_ROOT +from metagpt.ext.cr.utils.cleaner import ( + add_line_num_on_patch, + get_code_block_from_patch, + rm_patch_useless_part, +) +from metagpt.utils.common import CodeParser +from metagpt.utils.report import EditorReporter + +SYSTEM_MSGS_PROMPT = """ +You're an adaptive software developer who excels at refining code based on user inputs. You're proficient in creating Git patches to represent code modifications. +""" + +MODIFY_CODE_PROMPT = """ +NOTICE +With the given pull-request(PR) Patch, and referenced Comments(Code Standards), you should modify the code according the Comments. + +The Patch code has added line no at the first character each line for reading, but the modification should focus on new added code inside the `Patch` (lines starting with line no and '+'). + +## Patch +``` +{patch} +``` + +## Comments +{comments} + +## Output Format + + + +Code Modification guidelines: +- Look at `point_detail`, modify the code by `point_detail`, use `code_start_line` and `code_end_line` to locate the problematic code, fix the problematic code by `point_detail` in Comments.Strictly,must handle the fix plan given by `point_detail` in every comment. +- Create a patch that satifies the git patch standard and your fixes need to be marked with '+' and '-',but notice:don't change the hunk header! +- Do not print line no in the new patch code. + +Just print the Patch in the format like **Output Format**. +""" + + +class ModifyCode(Action): + name: str = "Modify Code" + pr: str + + async def run(self, patch: PatchSet, comments: list[dict], output_dir: Optional[str] = None) -> str: + patch: PatchSet = rm_patch_useless_part(patch) + patch: PatchSet = add_line_num_on_patch(patch) + + # + for comment in comments: + code_start_line = comment.get("code_start_line") + code_end_line = comment.get("code_end_line") + # 如果代码位置为空的话,那么就将这条记录丢弃掉 + if code_start_line and code_end_line: + code = get_code_block_from_patch( + patch, str(max(1, int(code_start_line) - 3)), str(int(code_end_line) + 3) + ) + pattern = r"^[ \t\n\r(){}[\];,]*$" + if re.match(pattern, code): + code = get_code_block_from_patch( + patch, str(max(1, int(code_start_line) - 5)), str(int(code_end_line) + 5) + ) + # 代码增加上下文,提升代码修复的准确率 + comment["code"] = code + if comment["point_id"] in [24, 25, 26]: + comment["point_detail"] = comment["point_detail"] + "\n" + comment["comment"] + # 去掉CR时LLM给的comment的影响,应该使用既定的修复方案 + comment.pop("comment") + + # 按照 commented_file 字段进行分组 + comments.sort(key=lambda x: x["commented_file"]) + grouped_comments = { + key: list(group) for key, group in itertools.groupby(comments, key=lambda x: x["commented_file"]) + } + resp = None + for patched_file in patch: + patch_target_file_name = str(patched_file.target_file).split("/", maxsplit=1)[-1] + if patch_target_file_name not in grouped_comments: + continue + comments_prompt = "" + index = 1 + for grouped_comment in grouped_comments[patch_target_file_name]: + comments_prompt += f""" + + {grouped_comment} + \n + """ + prompt = MODIFY_CODE_PROMPT.format(patch=patched_file, comments=comments_prompt) + output_dir = ( + Path(output_dir) + if output_dir + else DEFAULT_WORKSPACE_ROOT / "modify_code" / str(datetime.date.today()) / self.pr + ) + patch_file = output_dir / f"{patch_target_file_name}.patch" + patch_file.parent.mkdir(exist_ok=True, parents=True) + async with EditorReporter(enable_llm_stream=True) as reporter: + await reporter.async_report( + {"type": "Patch", "src_path": str(patch_file), "filename": patch_file.name}, "meta" + ) + resp = await self.llm.aask(msg=prompt, system_msgs=[SYSTEM_MSGS_PROMPT]) + resp = CodeParser.parse_code(resp, "diff") + with open(patch_file, "w", encoding="utf-8") as file: + file.writelines(resp) + await reporter.async_report(patch_file) + return resp diff --git a/metagpt/ext/cr/points.json b/metagpt/ext/cr/points.json new file mode 100644 index 000000000..49b90e268 --- /dev/null +++ b/metagpt/ext/cr/points.json @@ -0,0 +1,275 @@ +[ + { + "id": 2, + "text": "避免未使用的临时变量", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:避免未使用的临时变量;对应Fixer:UnusedLocalVariableFixer;修复方案:删除未使用的临时变量", + "yes_example": "### 被判定为\"避免未使用的临时变量\"的例子\n<例子1>\npublic String initCreationForm(Map model) {\n\t\tOwner owner = new Owner();\n\t\tmodel.put(\"owner\", owner);\n\t\tint unusedVar = 10;\n\t\treturn VIEWS_OWNER_CREATE_OR_UPDATE_FORM;\n\t}\n上述代码中unusedVar变量未被使用,所以这个被判定为\"避免未使用的临时变量\"\n\n<例子2>\nint unusedVariable = 10;\nSystem.out.println(\"Hello, World!\");\n这段代码的变量\"unusedVariable\"未被使用或者引用,所以这个不能判定为\"避免未使用的临时变量\"\n", + "no_example": "### 不能被判定为\"避免未使用的临时变量\"的例子\n<例子1>\npublic void setTransientVariablesLocal(Map transientVariables) {\nthrow new UnsupportedOperationException(\"No execution active, no variables can be set\");\n}\n这段代码的\"transientVariables\"是函数参数而不是临时变量,虽然transientVariables没有被使用或者引用,但是这个也不能判定为\"避免未使用的临时变量\"\n\n\n<例子2>\npublic class TriggerCmd extends NeedsActiveExecutionCmd {\n protected Map transientVariables;\n public TriggerCmd(Map transientVariables) {\n this.transientVariables = transientVariables;\n }\n}\n上述代码中transientVariables不属于临时变量,它是类属性,且它在构造函数中被使用,所以这个不能被判定为\"避免未使用的临时变量\"\n" + }, + { + "id": 3, + "text": "不要使用 System.out.println 去打印", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:不要使用 System.out.println 去打印;对应Fixer:SystemPrintlnFixer;修复方案:注释System.out.println代码", + "yes_example": "### 被判定为\"不要使用 System.out.println 去打印\"的例子\n<例子1>\nSystem.out.println(\"Initializing new owner form.\");\n上述代码使用了\"System.out.println\"进行打印,所以这个被判定为\"不要使用 System.out.println 去打印\"\n", + "no_example": "### 不能被判定为\"不要使用 System.out.println 去打印\"的例子\n<例子1>\nthrow new IllegalStateException(\"There is no authenticated user, we need a user authenticated to find tasks\");\n上述代码是抛出异常的代码,没有使用\"System.out.print\",所以这个不能被判定为\"不要使用 System.out.println 去打印\"\n" + }, + { + "id": 4, + "text": "避免函数中未使用的形参", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:避免函数中未使用的形参;修复方案:忽略", + "yes_example": "### 被判定为\"避免函数中未使用的形参\"的例子\n<例子1>\npublic void setTransientVariablesLocal(Map transientVariables) {\n throw new UnsupportedOperationException(\"No execution active, no variables can be set\");\n}这段代码中的形参\"transientVariables\"未在函数体内出现,所以这个被判定为\"避免函数中未使用的形参\"\n\n\n<例子2>\nprotected void modifyFetchPersistencePackageRequest(PersistencePackageRequest ppr, Map pathVars) {}\n这段代码中的形参\"ppr\"和\"pathVars\"未在函数体内出现,所以这个被判定为\"避免函数中未使用的形参\"\n", + "no_example": "### 不能被判定为\"避免函数中未使用的形参\"的例子\n<例子1>\npublic String processFindForm(@RequestParam(value = \"pageNo\", defaultValue = \"1\") int pageNo) {\n\tlastName = owner.getLastName();\n\treturn addPaginationModel(pageNo, paginationModel, lastName, ownersResults);\n}上述代码中的形参\"pageNo\"在当前函数'processFindForm'内被'return addPaginationModel(pageNo, paginationModel, lastName, ownersResults);'这一句被使用,虽然pageNo没有被用于逻辑计算,但作为了函数调用其他函数的参数使用了,所以这个不能被判定为\"避免函数中未使用的形参\"\n" + }, + { + "id": 5, + "text": "if语句块不能为空", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:if 语句块不能为空;对应Fixer:EmptyIfStmtFixer;修复方案:删除if语句块 或 适当的逻辑处理 或 注释说明为何为空", + "yes_example": "### 被判定为\"if语句块不能为空\"的例子\n<例子1>\npublic void emptyIfStatement() {\n\tif (getSpecialties().isEmpty()) {\n\t}\n}这段代码中的if语句块内容是空的,所以这个被判定为\"if语句块不能为空\"\n\n\n<例子2>\npublic void judgePersion() {\n\tif (persion != null) {\n\t\t// judge persion if not null\n\t}\n}\n这段代码中的if语句块虽然有内容,但是\"// judge persion if not null\"只是代码注释,if语句块内并没有实际的逻辑代码,所以这个被判定为\"if语句块不能为空\"\n", + "no_example": "### 不能被判定为\"if语句块不能为空\"的例子\n<例子1>\npublic void judgePersion() {\n\tif (persion != null) {\n\t\treturn 0;\n\t}\n}这段代码中的if语句块里有内容,且里面有非注释代码的逻辑代码\"return 0;\",所以这个不能被判定为\"if语句块不能为空\"\n" + }, + { + "id": 6, + "text": "循环体不能为空", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:循环体不能为空;对应Fixer:EmptyStatementNotInLoopFixer;修复方案:删除对应while、for、foreach 循环体 或 添加适当的逻辑处理或者注释说明为何为空", + "yes_example": "### 被判定为\"循环体不能为空\"的例子\n<例子1>\npublic void emptyLoopBody() {\n\tfor (Specialty specialty : getSpecialties()) {\n\t}\n}这段代码中的for循环体的内容是空的,所以这个被判定为\"循环体不能为空\"\n\n\n<例子2>\npublic void emptyLoopBody() {\n\twhile (True) {\n\t\t// this is a code example\n\t}\n}这段代码中的while循环体的内容虽然不是空的,但内容只是代码注释,无逻辑内容,所以这个被判定为\"循环体不能为空\"\n\n\n<例子3>\npublic void emptyLoopBody() {\n\twhile (True) {\n\t\t\n\t}\n}这段代码中的while循环体内容是空的,所以这个被判定为\"循环体不能为空\"\n", + "no_example": "### 不能被判定为\"循环体不能为空\"的例子\n<例子1>\npublic void emptyLoopBody() {\n\tfor (Specialty specialty : getSpecialties()) {\n\t\ta = 1;\n\t\tif (a == 1) {\n\t\t\tretrun a;\n\t\t}\n\t}\n}上述代码的for循环体的内容不为空,且内容不全是代码注释,所以这个不能被判定为\"循环体不能为空\"\n" + }, + { + "id": 7, + "text": "避免使用 printStackTrace(),应该使用日志的方式去记录", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:避免使用 printStackTrace(),应该使 用日志的方式去记录;修复方案:用日志的方式去记录", + "yes_example": "### 被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"的例子\n<例子1>\npublic void usePrintStackTrace() {\n\ttry {\n\t\tthrow new Exception(\"Fake exception\");\n\t} catch (Exception e) {\n\t\te.printStackTrace();\n\t}\n}这段代码中的catch语句中使用了printStackTrace(),所以这个被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"\n", + "no_example": "### 不能被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"的例子\n<例子1>\npublic void usePrintStackTrace() {\n\ttry {\n\t\tthrow new Exception(\"Fake exception\");\n\t} catch (Exception e) {\n\t\tlogging.info(\"info\");\n\t}\n}这段代码的catch语句中使用的是日志记录的方式,所以这个不能被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"\n" + }, + { + "id": 8, + "text": "catch 语句块不能为空", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:catch 语句块不能为空;对应Fixer:EmptyCatchBlockFixer;修复方案:在catch里面添加注释", + "yes_example": "### 被判定为\"catch语句块不能为空\"的例子\n<例子1>\ntry {\n int[] array = new int[5];\n int number = array[10];\n} catch (ArrayIndexOutOfBoundsException e) {\n \n}\n这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n\n<例子2>\ntry {\n String str = null;\n str.length();\n} catch (NullPointerException e) {\n \n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n\n<例子3>\npublic class EmptyCatchExample {\n public static void main(String[] args) {\n try {\n // 尝试除以零引发异常\n int result = 10 / 0;\n } catch (ArithmeticException e) {\n \n }\n }\n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n<例子4>\ntry {\n FileReader file = new FileReader(\"nonexistentfile.txt\");\n} catch (FileNotFoundException e) {\n \n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n<例子5>\ntry {\n Object obj = \"string\";\n Integer num = (Integer) obj;\n} catch (ClassCastException e) {\n\t\n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n", + "no_example": "### 不能被判定为\"catch语句块不能为空\"的例子\n<例子1>\npersionNum = 1\ntry {\n\treturn True;\n} catch (Exception e) {\n\t// 如果人数为1则返回false\n\tif (persionNum == 1){\n\t\treturn False;\n\t}\n}这段代码的catch语句中不为空,所以不能把这个被判定为\"catch语句块不能为空\"\n\n\n<例子2>\ntry {\n\tthrow new Exception(\"Fake exception\");\n} catch (Exception e) {\n\te.printStackTrace();\n}这段代码的catch语句中虽然只有\"e.printStackTrace();\"但确实不为空,所以不能把这个被判定为\"catch语句块不能为空\"\n" + }, + { + "id": 9, + "text": "避免不必要的永真/永假判断", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:避免不必要的永真/永假判断;对应Fixer:UnconditionalIfStatement Fixer;修复方案:删除永真/永假判断逻辑", + "yes_example": "### 被判定为\"避免不必要的永真/永假判断\"的例子\n<例子1>\npublic void someMethod() {\n\twhile (true) {\n\t}\n}这段代码中的\"while (true)\"是一个使用true做判断条件,但是没有循环结束标记,所以这个被判定为\"避免不必要的永真/永假判断\"\n\n\n<例子2>\nif (true) {\n\tSystem.out.println(\"This is always true\");\n}这段代码中的\"if (true)\"是一个使用true条件做条件,但是没有循环结束标记,所以这个被判定为\"避免不必要的永真/永假判断\"\n\n\n<例子3>\na = 1;\nwhile(a > 0){\n\ta = a + 1\n}这段代码初始化a=1,是大于0的,while循环体的逻辑是每次加1,那么判断条件a > 0会永远是真的,不会退出循环,所以这个被判定为\"避免不必要的永真/永假判断\"\n<例子3>", + "no_example": "### 不能被判定为\"避免不必要的永真/永假判断\"的例子\n<例子1>\na = 0;\nwhile (a < 5) {\n\ta = a + 1;\n}这段代码中的a<5是一个判断,当执行了5次while语句中的逻辑a=a+1之后,a会满足a < 5,就会退出循环,所以这个能被判定为\"避免不必要的永真/永假判断\"\n" + }, + { + "id": 10, + "text": "switch 中 default 必须放在最后", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:switch 中 default 必须放在最后;对应Fixer:DefaultLabelNotLastInSwitchStmtFixer;修复方案:switch 中 default 放在最后", + "yes_example": "### 被判定为\"switch 中 default 必须放在最后\"的例子\n<例子1>\nswitch (number) {\n\tdefault:\n\t\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\t\tbreak;\n\tcase 1:\n\t\tSystem.out.println(\"Number one\");\n\t\tbreak;\n\tcase 2:\n\t\tSystem.out.println(\"Number two\");\n\t\tbreak;\n}这段代码是一个switch语句,但是里面的default没有放在最后,所以这个被判定为\"switch 中 default 必须放在最后\"\n", + "no_example": "### 不能被判定为\"switch 中 default 必须放在最后\"的例子\n<例子1>\nswitch (number) {\ncase 3:\n\tSystem.out.println(\"Number one\");\n\tbreak;\ncase 4:\n\tSystem.out.println(\"Number two\");\n\tbreak;\ndefault:\n\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\tbreak;\n}这段代码是一个switch语句且里面的default放在了最后,所以这个不能被判定为\"switch 中 default 必须放在最后\"\n" + }, + { + "id": 11, + "text": "未使用equals()函数对 String 作比较", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:未使用equals()函数对 String 作比较;对应Fixer:UnSynStaticDateFormatter Fixer;修复方案:使用equals()函数对 String 作比较", + "yes_example": "### 被判定为\"未使用equals()函数对 String 作比较\"的例子\n<例子1>\nif (existingPet != null && existingPet.getName() == petName) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中所涉及的existingPet.getName()和petName均是字符串,但是在if语句里做比较的时候使用了==而没有使用equals()对string做比较,所以这个被判定为\"未使用equals()函数对 String 作比较\"\n\n\n<例子2>\nString isOk = \"ok\";\nif (\"ok\" == isOk) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中的isOk是个字符串,但在if判断中与\"ok\"比较的时候使用的是==,未使用equals()对string做比较,所以这个被判定为\"未使用equals()函数对 String 作比较\"\n", + "no_example": "### 不能被判定为\"未使用equals()函数对 String 作比较\"的例子\n<例子1>\nif (PROPERTY_VALUE_YES.equalsIgnoreCase(readWriteReqNode))\n formProperty.setRequired(true);\n这段代码中的PROPERTY_VALUE_YES和readWriteReqNode均是字符串,在if语句里比较PROPERTY_VALUE_YES和readWriteReqNode的使用的是equalsIgnoreCase(字符串比较忽略大小写),所以equalsIgnoreCase也是符合使用equals()函数对 String 作比较的,所以这个不能被判定为\"未使用equals()函数对 String 作比较\"\n\n\n<例子2>\nString isOk = \"ok\";\nif (\"ok\".equals(isOk)) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中的isOk是个字符串,在if判断中与\"ok\"比较的时候使用的是equals()对string做比较,所以这个不能被判定为\"未使用equals()函数对 String 作比较\"\n" + }, + { + "id": 12, + "text": "禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象 输出异常;对应Fixer:ConcatExceptionFixer;修复方案:使用占位符传递异常对象", + "yes_example": "### 被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"的例子\n<例子1>\ntry {\n listenersNode = objectMapper.readTree(listenersNode.asText());\n} catch (Exception e) {\n LOGGER.info(\"Listeners node can not be read\", e);\n}这段代码中日志输出内容内容是直接使用字符串\"Listeners node can not be read\"拼接,日志输出异常时,应使用占位符输出异常信息,而不是直接使用字符串拼接,所以这个被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n", + "no_example": "### 不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"的例子\n<例子1>\nPersion persion = persionService.getPersion(1);\nif (persion == null){\n\tLOGGER.error(PERSION_NOT_EXIT);\n}这段代码中的PERSION_NOT_EXIT是一个用户自定义的异常常量,代表persion不存在,没有直接使用字符串\"persion not exit\"拼接,所以这个不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n<例子1>\n\n<例子2>\ntry {\n a = a + 1;\n} catch (Exception e) {\n Persion persion = persionService.getPersion(1);\n LOGGER.info(persion);\n}这段代码中输出日志没有直接使用字符串拼接,而是使用的Persion对象输出,所以这个不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n" + }, + { + "id": 13, + "text": "finally 语句块不能为空", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:finally 语句块不能为空;对应Fixer:EmptyFinallyBlockFixer;修复方案:删除空 finally 语句块", + "yes_example": "### 被判定为\"finally 语句块不能为空\"的例子\n<例子1>\ntry {\n\tPersion persion = persionService.getPersion(1);\n\treturn persion;\n} finally {\n\t\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子2>\ntry {\n\tSystem.out.println(\"Inside try block\");\n} finally {\n\t// 空的finally块,没有任何语句,这是一个缺陷\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子3>\ntry {\n int result = 10 / 0;\n} catch (ArithmeticException e) {\n e.printStackTrace();\n} finally {\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子4>\ntry {\n String str = null;\n System.out.println(str.length());\n} catch (NullPointerException e) {\n e.printStackTrace();\n} finally {\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子5>\ntry {\n int[] array = new int[5];\n int number = array[10];\n} catch (ArrayIndexOutOfBoundsException e) {\n e.printStackTrace();\n} finally {\n // 只有注释的 finally 语句块\n // 这是一个空的 finally 块\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子6>\ntry {\n FileReader file = new FileReader(\"nonexistentfile.txt\");\n} catch (FileNotFoundException e) {\n e.printStackTrace();\n} finally {\n // 只有空行的 finally 语句块\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n", + "no_example": "### 不能被判定为\"finally 语句块不能为空\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的finally语句块中有非注释意外的内容\"return null;\",所以这个不能被判定为\"finally 语句块不能为空\"\n" + }, + { + "id": 14, + "text": "try 语句块不能为空", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:try 语句块不能为空;对应Fixer:EmptyTryBlockFixer;修复方案:删除整个 try 语句", + "yes_example": "### 被判定为\"try 语句块不能为空\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\n\t}\n\treturn null;\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子2>\npublic void demoFinallyBlock() {\n\ttry {\n\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子3>\ntry {\n \n} catch (Exception e) {\n e.printStackTrace();\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子4>\ntry {\n // 只有注释的 try 语句块\n\t\n} catch (Exception e) {\n e.printStackTrace();\n}这段代码中的try语句块内只有注释和空行,也可以认定为这种情况是try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n", + "no_example": "### 不能被判定为\"try 语句块不能为空\"的例子\n<例子1>\ntry {\n\ta = a + 1;\n} catch (Exception e) {\n\te.printStackTrace();\n}\n这段代码中的try语句块中有非注释意外的内容\"return null;\",所以这个不能被判定为\"try 语句块不能为空\"\n" + }, + { + "id": 15, + "text": "避免对象进行不必要的 NULL或者null 检查", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:避免对象进行不必要的 NULL或者null 检查;对应Fixer:LogicalOpNpeFixer;修复方案:删除对对象不必要的 NULL 检查的逻辑", + "yes_example": "### 被判定为\"避免对象进行不必要的 NULL或者null 检查\"的例子\n<例子1>\na = \"dog\";\nif (a != null){\n\treturn a;\n}这段代码中的对象a已经是确定的值\"dog\",所以if条件句的判断\"a != null\"是不必要的,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子2>\nif (authenticatedUserId != null && !authenticatedUserId.isEmpty() && userGroupManager!=null){\n\treturn authenticatedUserId;\n}这段代码中的\"authenticatedUserId != null\"和\"!authenticatedUserId.isEmpty()\"都是对\"authenticatedUserId\"的空判断,重复了,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子3>\nList list = new ArrayList<>();\nif (list != null) {\n list.add(1);\n}这段代码中的list已经被初始化,不需要进行 null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子4>\nif (this.type != null && this.type.getName() != null) {\n\tSystem.out.println(\"Type name is not null\");\n}这段代码中的对象type已经检查过非null,再次检查getName()是否为null是不必要的,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n\n<例子5>\nif (\"dog\".equals(null)){\n\treturn a;\n}这段代码中的\"dog\"是个确定的字符串,不需要进行null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子6>\nInteger num = 10;\nif (num != null) {\n System.out.println(num);\n}这段代码中的num 已经被初始化,不需要进行 null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n", + "no_example": "### 不能被判定为\"避免对象进行不必要的 NULL或者null 检查\"的例子\n<例子1>\nCat cat = catService.get(1);\nif (cat != null){\n\tretrun cat;\n}这段代码中的对象\"cat\"是通过service获取到的,不确定是否为空,所以if条件句的判断的\"cat != null\"是必要的,所以这个不能被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n" + }, + { + "id": 17, + "text": "避免 finally 块中出现 return", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:避免 finally 块中出现 return;修复方案:无需修复", + "yes_example": "### 被判定为\"避免 finally 块中出现 return\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的finally语句块内容包含\"return\",所以这个被判定为\"避免 finally 块中出现 return\"\n", + "no_example": "### 不能被判定为\"避免 finally 块中出现 return\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\tLOGGER.info(PERSION_NOT_EXIT);\n\t}\n}这段代码中的finally语句块中内容不包含\"return\",所以这个不能被判定为\"避免 finally 块中出现 return\"\n" + }, + { + "id": 18, + "text": "避免空的 static 初始化", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:避免空的 static 初始化;对应Fixer:EmptyInitializerFixer;修复方案:删除整个空初始化块", + "yes_example": "### 被判定为\"避免空的 static 初始化\"的例子\n<例子1>\npublic class PetValidator implements Validator {\n\tstatic {\n\n\t}\n}这段代码中的static语句块没有内容,是空的,所以这个被判定为\"避免空的 static 初始化\"\n\n\n<例子2>\npublic class Persion {\n\tstatic {\n\t\t// 初始化的静态块\n\t}\n}这段代码中的static语句块是有内容的,不是空的,但是static初始化语句块中只有注释代码,没有实际的逻辑,所以这个被判定为\"避免空的 static 初始化\"\n", + "no_example": "### 不能被判定为\"避免空的 static 初始化\"的例子\n<例子1>\npublic class Cat {\n\tstatic {\n\t\t// 初始化的静态块\n\t\tcat = null;\n\t}\n}这段代码中的static语句块是有内容的,不是空的,且static初始化语句块中有非注释代码,有实际的逻辑,所以这个不能被判定为\"避免空的 static 初始化\"\n" + }, + { + "id": 19, + "text": "避免日历类用法不当风险", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:避免日历类用法不当风险;修复方案:使用Java 8 及以上版本中的 java.time 包的LocalDate", + "yes_example": "### 被判定为\"避免日历类用法不当风险\"的例子\n<例子1>\nprivate static final Calendar calendar = new GregorianCalendar(2020, Calendar.JANUARY, 1);\n这段代码中的Calendar和GregorianCalendar是线程不安全的,所以这个被判定为\"避免日历类用法不当风险\"\n", + "no_example": "### 不能被判定为\"避免日历类用法不当风险\"的例子\n<例子1>\nprivate static final LocalDate calendar = LocalDate.of(2020, 1, 1);\n这段代码中的LocalDate使用的是Java 8 及以上版本中的 java.time 包,LocalDate 是不可变的并且是线程安全的,不会有线程安全和性能方面的问题,所以这个不能被判定为\"避免日历类用法不当风险\"\n" + }, + { + "id": 21, + "text": "使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size();对应Fixer:ClassCastExpWithToArrayF ixer;修复方案:使用集合的toArray(T[]array),且传入的是类型完全一样的数组", + "yes_example": "### 被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"的例子\n<例子1>\nList stringList = new ArrayList<>();\nstringList.add(\"Apple\");\nstringList.add(\"Banana\");\nObject[] objectArray = stringList.toArray(new Object[5]);\n这段代码使用集合转数组的方法的时候使用了toArray(new Object[5]),但是传入的数组类型不一致,所以这个被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"\n", + "no_example": "### 不能被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"的例子\n<例子1>\nList stringList = new ArrayList<>();\nstringList.add(\"Apple\");\nstringList.add(\"Banana\");\nString[] stringArray = stringList.toArray(new String[stringList.size()]);\n这段代码使用集合转数组的方法的时候使用了toArray(new String[stringList.size()]),传入的是类型完全一样的数组,所以这个不能被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"\n" + }, + { + "id": 22, + "text": "禁止在 equals()中使用 NULL或者null 做比较", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:禁止在 equals()中使用 NULL或者null 做比较;对应Fixer:EqualsNullFixer;修复方案:使用Object的判空函数 做比较", + "yes_example": "### 被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"的例子\n<例子1>\nif (\"test\".equals(null)) {\n\tSystem.out.println(\"test\");\n}这段代码中if条件中的代码\"test\".equals(null)使用equals()函数与null进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子2>\nif (!rangeValues[1].equals(\"null\")) {\n\tmaxValue = new BigDecimal(rangeValues[1]);\n}这段代码中if条件中的代码!rangeValues[1].equals(\"null\")使用equals()函数与Nnull进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子3>\nString str1 = \"example\";\nif (str1.equals(\"null\")) {\n System.out.println(\"str1 is null\");\n}这段代码中if条件中的代码str1.equals(null)使用equals()函数与null进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子4>\nString str3 = \"example\";\nif (str3 != null && str3.equals(\"null\")) {\n System.out.println(\"str3 is null\");\n}这段代码中if条件中的代码str3.equals(\"null\")使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子5>\nInteger num1 = 10;\nif (num1.equals(null)) {\n System.out.println(\"num1 is null\");\n}这段代码中if条件中的代码num1.equals(null)使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子6>\nObject obj = new Object();\nif (obj.equals(null)) {\n System.out.println(\"obj is null\");\n}这段代码中if条件中的代码obj.equals(null)使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n", + "no_example": "### 不能被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"的例子\n<例子1>\na = \"test\";\nif (a.equals(\"test\")) {\n\tSystem.out.println(\"test\");\n}这段代码中if条件中的代码a.equals(\"test\")使用equals()函数与\"test\"进行了比较,所以这个不能被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n" + }, + { + "id": 23, + "text": "switch 语句块不能为空", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:switch 语句块不能为空;对应Fixer:EmptySwitchStatementsFix;修复方案:删除整个空 switch 语句块", + "yes_example": "### 被判定为\"switch 语句块不能为空\"的例子\n<例子1>\nswitch (number) {\n\t\n}这段代码是一个switch语句块,但是里面没有内容,所以这个被判定为\"switch 语句块不能为空\"\n\n\n<例子2>\nswitch (number) {\n\t// 这是一个switch语句块\n}这段代码是一个switch语句块,里面虽然有内容,但是内容仅仅是注释内容,没有实际的逻辑,所以这个被判定为\"switch 语句块不能为空\"\n", + "no_example": "### 不能被判定为\"switch 语句块不能为空\"的例子\n<例子1>\nswitch (number) {\n\tcase 1:\n\t\tSystem.out.println(\"Number one\");\n\t\tbreak;\n\tdefault:\n\t\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\t\tbreak;\n}这段代码是一个switch语句块,里面有内容,而且内容里有非注释的代码,有实际的逻辑,所以这个不能被判定为\"switch 语句块不能为空\"\n" + }, + { + "id": 24, + "text": "变量/方法/类 命名,要有效清晰表示对应的实际含义", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:变量/方法/类 命名,要有效清晰表示对应的实际含义;修复方案:修改成合适的变量/方法/类名,有效表示对应的实体含义", + "yes_example": "### 被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"的例子\n<例子1>\nint a = 1;\nif (a == 1) {\n\treturn a;\n}这段代码中的变量a的命名无法从命名中理解a代表什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n\n\n<例子2>\nStringBuilder sb = new StringBuilder();\nsb.append(\"{!\").append(tag).append(\"=\").append(tagField);\n这段代码中的变量sb的命名无法从命名中理解a代表什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n\n\n<例子3>\nPage findAll(Pageable pageable);\n这段代码findAll是一个interface声明,接口名findAll无法清晰的理解这个接口要做什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n", + "no_example": "### 不能被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"的例子\n<例子1>\nint persionNum = 5;\nif (persionNum > 3) {\n\treturn True;\n}这段代码中的变量persionNum的命名可以比较清楚知道persionNum代表人员的数量,所以这个不能被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n" + }, + { + "id": 25, + "text": "判断逻辑应简洁,不能有重复或者无意义的判断", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:判断逻辑应简洁,不能有重复或者无意义的判断;修复方案:简化或删除一些重复的,无意义的判断逻辑", + "yes_example": "### 被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n<例子1>\nif (task == null) {\n\ttask = 1\n\tif (task != null) {\n\t\tInteger ok = 0;\n\t\tif (task == 1) {\n\t\t\tok=1;\n\t\t}\n\t\tif (ok == 0) {\n\t\t\ttask = null;\n\t\t}\n\t}\n}这段代码中的关于变量ok的判断逻辑不够简洁,变量ok其实可以被去掉进行逻辑简化,可以被简化为\nif (task == null) {\n\ttask = 1\n\tif (task != null) {\n\t\tif (task == 1) {\n\t\t task = null;\n\t\t}\n\t}\n},所以这个被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n\n\n<例子2>\nif (!(a == 0) && a == 1 || a == 2){\n\treturn True;\n}这段代码的if判断逻辑过于复杂,可简化为if (0\n\n<例子3>\na = 1;\nif (a > 1){\n\treturn True;\n}这段代码的变量a是确定的值1,这样就不会出现a > 1,所以if的判断无意义,所以这个被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n", + "no_example": "### 不能被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n<例子1>\na = 1;\nb = 2;\nif (0 < a ≤ 2){\n\treturn a + b;\n}这段代码的判断条件比较简洁明了,无重复的判断,所以这个不能被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n" + }, + { + "id": 26, + "text": "代码结构冗余,避免重复代码", + "language": "java", + "file_path": "", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:代码结构冗余,避免重复代码;修复方案:忽略", + "yes_example": "### 被判定为\"代码结构冗余,避免重复代码\"的例子\n<例子1>\npublic void trigger(String executionId, Map processVariables) {\n commandExecutor.execute(new TriggerCmd(executionId, processVariables));\n}\npublic void trigger(String executionId, Map processVariables, Map transientVariables) {\n\tcommandExecutor.execute(new TriggerCmd(executionId, processVariables, transientVariables)); \n}这段代码中的2个trigger存在代码都是触发器的逻辑,存在重复,可以合并成1个函数,所以这个被判定为\"代码结构冗余,避免重复代码\"\n\n\n<例子2>\npublic int sum(int a, int b){\n\treturn a + b;\n}\npublic int merge(int a, int b){\n\treturn a + b;\n}这段代码中的2个函数sum和merge的逻辑是一样的,可以合并成1个函数,所以这个被判定为\"代码结构冗余,避免重复代码\"\n", + "no_example": "### 不能被判定为\"代码结构冗余,避免重复代码\"的例子\n<例子1>\npublic int append(int a, int b){\n\treturn a + b;\n}\npublic int add(int a, int b){\n\treturn (a + b) - b;\n}这段代码中的2个函数sum和add的代码结构看上去差不多,但是具体的处理逻辑是不一样的,所以这个不能被判定为\"代码结构冗余,避免重复代码\"\n" + }, + { + "id": 27, + "text": "不能有多余的分号", + "file_path": "\"\"", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:多余的分号;修复方案:删除多余的分号", + "yes_example": "### 被判定为\"不能有多余的分号\"的例子\n<例子1>\npublic void trigger(String executionId, Map processVariables) {\n commandExecutor.execute(new TriggerCmd(executionId, processVariables));\n}\n;\na = 1;\nb = 2;\nsum = a + b;\n这段代码中包含一个多余的分号\";\",所以这个被判定为\"不能有多余的分号\"\n", + "no_example": "### 不能被判定为\"不能有多余的分号\"的例子\n<例子1>\nwhile (True) {\n\ta = a + 1;\n\tbreak;\n}这段代码每个分号都是必须要的,所以这个能被判定为\"不能有多余的分号\"\n" + }, + { + "id": 28, + "text": "非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized", + "file_path": "\"\"", + "start_line": 0, + "end_line": 0, + "detail": "缺陷类型:非线程安全的 SimpleDateFormat 使用;修复方案:在函数或代码块级别加上synchronized修饰 或 使用其他线程安全的方式", + "yes_example": "### 被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"的例子\n<例子1>\npublic void formatDate(Date date) {\n\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");\n\tSystem.out.println(\"Formatted date: \" + sdf.format(date));\n}这段代码中的函数formatDate在未使用synchronized同步修饰的情况下使用了SimpleDateFormat,这是线程不安全的,所以这个被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"\n", + "no_example": "### 不能被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"的例子\n<例子1>\npublic synchronized void formatDate(Date date) {\n\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");\n\tSystem.out.println(\"Formatted date: \" + sdf.format(date));\n}这段代码是在synchronized同步块对函数'formatDate'进行保护,保证了线程安全,所以这个不能被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"\n" + } +] \ No newline at end of file diff --git a/metagpt/ext/cr/utils/__init__.py b/metagpt/ext/cr/utils/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/metagpt/ext/cr/utils/cleaner.py b/metagpt/ext/cr/utils/cleaner.py new file mode 100644 index 000000000..b16ac8119 --- /dev/null +++ b/metagpt/ext/cr/utils/cleaner.py @@ -0,0 +1,68 @@ +"""Cleaner.""" + +from unidiff import Hunk, PatchedFile, PatchSet + +from metagpt.logs import logger + + +def rm_patch_useless_part(patch: PatchSet, used_suffix: list[str] = ["java"]) -> PatchSet: + new_patch = PatchSet("") + useless_files = [] + for pfile in patch: + suffix = str(pfile.target_file).split(".")[-1] + if suffix not in used_suffix or pfile.is_removed_file or "test" in pfile.target_file.casefold(): + useless_files.append(pfile.path) + continue + new_patch.append(pfile) + logger.info(f"total file num: {len(patch)}, used file num: {len(new_patch)}, useless_files: {useless_files}") + return new_patch + + +def add_line_num_on_patch(patch: PatchSet, start_line_num: int = 1) -> PatchSet: + new_patch = PatchSet("") + lineno = start_line_num + for pfile in patch: + new_pfile = PatchedFile( + source=pfile.source_file, + target=pfile.target_file, + source_timestamp=pfile.source_timestamp, + target_timestamp=pfile.target_timestamp, + ) + for hunk in pfile: + arr = [str(line) for line in hunk] + new_hunk = Hunk( + src_start=hunk.source_start, + src_len=hunk.source_length, + tgt_start=hunk.target_start, + tgt_len=hunk.target_length, + section_header=hunk.section_header, + ) + + for line in arr: + # if len(line) > 0 and line[0] in ["+", "-"]: + # line = f"{lineno} {line}" + # lineno += 1 + line = f"{lineno} {line}" + lineno += 1 + new_hunk.append(line) + new_pfile.append(new_hunk) + new_patch.append(new_pfile) + return new_patch + + +def get_code_block_from_patch(patch: PatchSet, code_start_line: str, code_end_line: str) -> str: + line_arr = str(patch).split("\n") + code_arr = [] + add_line_tag = False + for line in line_arr: + if line.startswith(f"{code_start_line} "): + add_line_tag = True + + if add_line_tag: + new_line = " ".join(line.split(" ")[1:]) # rm line-no tag + code_arr.append(new_line) + + if line.startswith(f"{code_end_line} "): + add_line_tag = False + + return "\n".join(code_arr) diff --git a/metagpt/ext/cr/utils/schema.py b/metagpt/ext/cr/utils/schema.py new file mode 100644 index 000000000..e7b08792f --- /dev/null +++ b/metagpt/ext/cr/utils/schema.py @@ -0,0 +1,20 @@ +from typing import Literal + +from pydantic import BaseModel, Field + + +class Point(BaseModel): + id: int = Field(default=0, description="ID of the point.") + text: str = Field(default="", description="Content of the point.") + language: Literal["python", "java"] = Field( + default="python", description="The programming language that the point corresponds to." + ) + file_path: str = Field(default="", description="The file that the points come from.") + start_line: int = Field(default=0, description="The starting line number that the point refers to.") + end_line: int = Field(default=0, description="The ending line number that the point refers to.") + detail: str = Field(default="", description="File content from start_line to end_line.") + yes_example: str = Field(default="", description="yes of point examples") + no_example: str = Field(default="", description="no of point examples") + + def rag_key(self) -> str: + return self.text diff --git a/metagpt/tools/libs/cr.py b/metagpt/tools/libs/cr.py new file mode 100644 index 000000000..7f9a4716c --- /dev/null +++ b/metagpt/tools/libs/cr.py @@ -0,0 +1,90 @@ +import json +from pathlib import Path +from typing import Optional + +import aiofiles +from unidiff import PatchSet + +import metagpt.ext.cr +from metagpt.ext.cr.actions.code_review import CodeReview as CodeReview_ +from metagpt.ext.cr.actions.modify_code import ModifyCode +from metagpt.ext.cr.utils.schema import Point +from metagpt.tools.libs.browser import Browser +from metagpt.tools.tool_registry import register_tool +from metagpt.utils.report import EditorReporter + + +@register_tool(tags=["codereview"], include_functions=["review", "fix"]) +class CodeReview: + """Review and fix the patch content from the pull request URL or a file.""" + + async def review( + self, + patch_path: str, + cr_output_file: str, + cr_point_file: Optional[str] = None, + ) -> str: + """Review a PR and save code review comments. + + Args: + patch_path: The local path of the patch file or the url of the pull request. Example: "/data/xxx-pr-1.patch", "https://github.com/xx/XX/pull/1362" + cr_output_file: Output file path where code review comments will be saved. Example: "cr/xxx-pr-1.json" + cr_point_file: File path for specifying code review points. Defaults to a predefined file. + """ + patch = await self._get_patch_content(patch_path) + cr_point_file = cr_point_file if cr_point_file else Path(metagpt.ext.cr.__file__).parent / "points.json" + async with aiofiles.open(cr_point_file, "rb") as f: + cr_point_content = await f.read() + cr_points = [Point(**i) for i in json.loads(cr_point_content)] + + async with EditorReporter(enable_llm_stream=True) as reporter: + src_path = cr_output_file + cr_output_path = Path(cr_output_file) + await reporter.async_report( + {"type": "CodeReview", "src_path": src_path, "filename": cr_output_path.name}, "meta" + ) + comments = await CodeReview_().run(patch, cr_points) + cr_output_path.parent.mkdir(exist_ok=True, parents=True) + async with aiofiles.open(cr_output_path, "w") as f: + await f.write(json.dumps(comments, ensure_ascii=False)) + await reporter.async_report(cr_output_path) + + return f"The number of defects: {len(comments)} and the comments are stored in {cr_output_file}" + + async def fix( + self, + patch_path: str, + cr_file: str, + output_dir: str, + ) -> str: + """Fix the patch content based on code review comments. + + Args: + patch_path: The local path of the patch file or the url of the pull request. + cr_file: File path where code review comments are stored. + output_dir: File path where code review comments are stored. + """ + patch = await self._get_patch_content(patch_path) + async with aiofiles.open(cr_file, "r") as f: + comments = json.loads(await f.read()) + await ModifyCode(pr="").run(patch, comments, output_dir) + return f"The fixed patch files store in {output_dir}" + + async def _get_patch_content(self, patch_path): + if patch_path.startswith(("https://", "http://")): + # async with aiohttp.ClientSession(trust_env=True) as client: + # async with client.get(f"{patch_path}.diff", ) as resp: + # patch_file_content = await resp.text() + browser = Browser() + browser.proxy = {"server": "http://127.0.0.1:20172"} + async with browser: + await browser.goto(f"{patch_path}.diff") + patch_file_content = await browser.page.content() + + else: + async with aiofiles.open(patch_path) as f: + patch_file_content = await f.read() + await EditorReporter().async_report(patch_path) + + patch: PatchSet = PatchSet(patch_file_content) + return patch From 105d9bf96ce3de87fe6d17a52abd4c25c2b736bb Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Thu, 27 Jun 2024 16:02:52 +0800 Subject: [PATCH 30/37] fix Engineer2 typing annotation error --- metagpt/roles/di/engineer2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metagpt/roles/di/engineer2.py b/metagpt/roles/di/engineer2.py index 8ea823c74..01bf826f4 100644 --- a/metagpt/roles/di/engineer2.py +++ b/metagpt/roles/di/engineer2.py @@ -12,7 +12,7 @@ class Engineer2(RoleZero): goal: str = "Take on game, app, and web development" instruction: str = ENGINEER2_INSTRUCTION - tools: str = ["Plan", "Editor:write,read", "RoleZero", "ReviewAndRewriteCode"] + tools: list[str] = ["Plan", "Editor:write,read", "RoleZero", "ReviewAndRewriteCode"] def _update_tool_execution(self): review = ReviewAndRewriteCode() From 47eb31d1ce91f892cfa1e2e84a1df95dc8748e4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E4=B9=89=E7=AB=A0?= Date: Thu, 27 Jun 2024 09:18:44 +0000 Subject: [PATCH 31/37] format --- metagpt/prompts/di/role_zero.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metagpt/prompts/di/role_zero.py b/metagpt/prompts/di/role_zero.py index a33487d81..d8dd2cb60 100644 --- a/metagpt/prompts/di/role_zero.py +++ b/metagpt/prompts/di/role_zero.py @@ -49,8 +49,8 @@ Some text indicating your thoughts, such as how you should update the plan statu ... ] ``` - """ + JSON_REPAIR_PROMPT = """ ## json data {json_data} From 68d5e945f63281c95925959b0829200671605967 Mon Sep 17 00:00:00 2001 From: shenchucheng Date: Thu, 27 Jun 2024 20:43:15 +0800 Subject: [PATCH 32/37] add python cr point --- metagpt/ext/cr/actions/code_review.py | 4 +- metagpt/ext/cr/points.json | 959 ++++++++++++++++++-------- metagpt/ext/cr/utils/schema.py | 4 +- 3 files changed, 690 insertions(+), 277 deletions(-) diff --git a/metagpt/ext/cr/actions/code_review.py b/metagpt/ext/cr/actions/code_review.py index 70b85ff06..5586567fa 100644 --- a/metagpt/ext/cr/actions/code_review.py +++ b/metagpt/ext/cr/actions/code_review.py @@ -149,9 +149,9 @@ class CodeReview(Action): points_str = "\n".join([f"{p.id} {p.text}" for p in points]) for patched_file in patch: if patched_file.path.endswith(".py"): - points_str = "\n".join([f"{p.id} {p.text}" for p in points if p.language == "python"]) + points_str = "\n".join([f"{p.id} {p.text}" for p in points if p.language == "Python"]) elif patched_file.path.endswith(".java"): - points_str = "\n".join([f"{p.id} {p.text}" for p in points if p.language == "java"]) + points_str = "\n".join([f"{p.id} {p.text}" for p in points if p.language == "Java"]) else: continue if len(str(patched_file).splitlines()) >= 50: diff --git a/metagpt/ext/cr/points.json b/metagpt/ext/cr/points.json index 49b90e268..496334e3d 100644 --- a/metagpt/ext/cr/points.json +++ b/metagpt/ext/cr/points.json @@ -1,275 +1,688 @@ [ - { - "id": 2, - "text": "避免未使用的临时变量", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:避免未使用的临时变量;对应Fixer:UnusedLocalVariableFixer;修复方案:删除未使用的临时变量", - "yes_example": "### 被判定为\"避免未使用的临时变量\"的例子\n<例子1>\npublic String initCreationForm(Map model) {\n\t\tOwner owner = new Owner();\n\t\tmodel.put(\"owner\", owner);\n\t\tint unusedVar = 10;\n\t\treturn VIEWS_OWNER_CREATE_OR_UPDATE_FORM;\n\t}\n上述代码中unusedVar变量未被使用,所以这个被判定为\"避免未使用的临时变量\"\n\n<例子2>\nint unusedVariable = 10;\nSystem.out.println(\"Hello, World!\");\n这段代码的变量\"unusedVariable\"未被使用或者引用,所以这个不能判定为\"避免未使用的临时变量\"\n", - "no_example": "### 不能被判定为\"避免未使用的临时变量\"的例子\n<例子1>\npublic void setTransientVariablesLocal(Map transientVariables) {\nthrow new UnsupportedOperationException(\"No execution active, no variables can be set\");\n}\n这段代码的\"transientVariables\"是函数参数而不是临时变量,虽然transientVariables没有被使用或者引用,但是这个也不能判定为\"避免未使用的临时变量\"\n\n\n<例子2>\npublic class TriggerCmd extends NeedsActiveExecutionCmd {\n protected Map transientVariables;\n public TriggerCmd(Map transientVariables) {\n this.transientVariables = transientVariables;\n }\n}\n上述代码中transientVariables不属于临时变量,它是类属性,且它在构造函数中被使用,所以这个不能被判定为\"避免未使用的临时变量\"\n" - }, - { - "id": 3, - "text": "不要使用 System.out.println 去打印", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:不要使用 System.out.println 去打印;对应Fixer:SystemPrintlnFixer;修复方案:注释System.out.println代码", - "yes_example": "### 被判定为\"不要使用 System.out.println 去打印\"的例子\n<例子1>\nSystem.out.println(\"Initializing new owner form.\");\n上述代码使用了\"System.out.println\"进行打印,所以这个被判定为\"不要使用 System.out.println 去打印\"\n", - "no_example": "### 不能被判定为\"不要使用 System.out.println 去打印\"的例子\n<例子1>\nthrow new IllegalStateException(\"There is no authenticated user, we need a user authenticated to find tasks\");\n上述代码是抛出异常的代码,没有使用\"System.out.print\",所以这个不能被判定为\"不要使用 System.out.println 去打印\"\n" - }, - { - "id": 4, - "text": "避免函数中未使用的形参", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:避免函数中未使用的形参;修复方案:忽略", - "yes_example": "### 被判定为\"避免函数中未使用的形参\"的例子\n<例子1>\npublic void setTransientVariablesLocal(Map transientVariables) {\n throw new UnsupportedOperationException(\"No execution active, no variables can be set\");\n}这段代码中的形参\"transientVariables\"未在函数体内出现,所以这个被判定为\"避免函数中未使用的形参\"\n\n\n<例子2>\nprotected void modifyFetchPersistencePackageRequest(PersistencePackageRequest ppr, Map pathVars) {}\n这段代码中的形参\"ppr\"和\"pathVars\"未在函数体内出现,所以这个被判定为\"避免函数中未使用的形参\"\n", - "no_example": "### 不能被判定为\"避免函数中未使用的形参\"的例子\n<例子1>\npublic String processFindForm(@RequestParam(value = \"pageNo\", defaultValue = \"1\") int pageNo) {\n\tlastName = owner.getLastName();\n\treturn addPaginationModel(pageNo, paginationModel, lastName, ownersResults);\n}上述代码中的形参\"pageNo\"在当前函数'processFindForm'内被'return addPaginationModel(pageNo, paginationModel, lastName, ownersResults);'这一句被使用,虽然pageNo没有被用于逻辑计算,但作为了函数调用其他函数的参数使用了,所以这个不能被判定为\"避免函数中未使用的形参\"\n" - }, - { - "id": 5, - "text": "if语句块不能为空", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:if 语句块不能为空;对应Fixer:EmptyIfStmtFixer;修复方案:删除if语句块 或 适当的逻辑处理 或 注释说明为何为空", - "yes_example": "### 被判定为\"if语句块不能为空\"的例子\n<例子1>\npublic void emptyIfStatement() {\n\tif (getSpecialties().isEmpty()) {\n\t}\n}这段代码中的if语句块内容是空的,所以这个被判定为\"if语句块不能为空\"\n\n\n<例子2>\npublic void judgePersion() {\n\tif (persion != null) {\n\t\t// judge persion if not null\n\t}\n}\n这段代码中的if语句块虽然有内容,但是\"// judge persion if not null\"只是代码注释,if语句块内并没有实际的逻辑代码,所以这个被判定为\"if语句块不能为空\"\n", - "no_example": "### 不能被判定为\"if语句块不能为空\"的例子\n<例子1>\npublic void judgePersion() {\n\tif (persion != null) {\n\t\treturn 0;\n\t}\n}这段代码中的if语句块里有内容,且里面有非注释代码的逻辑代码\"return 0;\",所以这个不能被判定为\"if语句块不能为空\"\n" - }, - { - "id": 6, - "text": "循环体不能为空", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:循环体不能为空;对应Fixer:EmptyStatementNotInLoopFixer;修复方案:删除对应while、for、foreach 循环体 或 添加适当的逻辑处理或者注释说明为何为空", - "yes_example": "### 被判定为\"循环体不能为空\"的例子\n<例子1>\npublic void emptyLoopBody() {\n\tfor (Specialty specialty : getSpecialties()) {\n\t}\n}这段代码中的for循环体的内容是空的,所以这个被判定为\"循环体不能为空\"\n\n\n<例子2>\npublic void emptyLoopBody() {\n\twhile (True) {\n\t\t// this is a code example\n\t}\n}这段代码中的while循环体的内容虽然不是空的,但内容只是代码注释,无逻辑内容,所以这个被判定为\"循环体不能为空\"\n\n\n<例子3>\npublic void emptyLoopBody() {\n\twhile (True) {\n\t\t\n\t}\n}这段代码中的while循环体内容是空的,所以这个被判定为\"循环体不能为空\"\n", - "no_example": "### 不能被判定为\"循环体不能为空\"的例子\n<例子1>\npublic void emptyLoopBody() {\n\tfor (Specialty specialty : getSpecialties()) {\n\t\ta = 1;\n\t\tif (a == 1) {\n\t\t\tretrun a;\n\t\t}\n\t}\n}上述代码的for循环体的内容不为空,且内容不全是代码注释,所以这个不能被判定为\"循环体不能为空\"\n" - }, - { - "id": 7, - "text": "避免使用 printStackTrace(),应该使用日志的方式去记录", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:避免使用 printStackTrace(),应该使 用日志的方式去记录;修复方案:用日志的方式去记录", - "yes_example": "### 被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"的例子\n<例子1>\npublic void usePrintStackTrace() {\n\ttry {\n\t\tthrow new Exception(\"Fake exception\");\n\t} catch (Exception e) {\n\t\te.printStackTrace();\n\t}\n}这段代码中的catch语句中使用了printStackTrace(),所以这个被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"\n", - "no_example": "### 不能被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"的例子\n<例子1>\npublic void usePrintStackTrace() {\n\ttry {\n\t\tthrow new Exception(\"Fake exception\");\n\t} catch (Exception e) {\n\t\tlogging.info(\"info\");\n\t}\n}这段代码的catch语句中使用的是日志记录的方式,所以这个不能被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"\n" - }, - { - "id": 8, - "text": "catch 语句块不能为空", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:catch 语句块不能为空;对应Fixer:EmptyCatchBlockFixer;修复方案:在catch里面添加注释", - "yes_example": "### 被判定为\"catch语句块不能为空\"的例子\n<例子1>\ntry {\n int[] array = new int[5];\n int number = array[10];\n} catch (ArrayIndexOutOfBoundsException e) {\n \n}\n这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n\n<例子2>\ntry {\n String str = null;\n str.length();\n} catch (NullPointerException e) {\n \n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n\n<例子3>\npublic class EmptyCatchExample {\n public static void main(String[] args) {\n try {\n // 尝试除以零引发异常\n int result = 10 / 0;\n } catch (ArithmeticException e) {\n \n }\n }\n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n<例子4>\ntry {\n FileReader file = new FileReader(\"nonexistentfile.txt\");\n} catch (FileNotFoundException e) {\n \n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n<例子5>\ntry {\n Object obj = \"string\";\n Integer num = (Integer) obj;\n} catch (ClassCastException e) {\n\t\n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n", - "no_example": "### 不能被判定为\"catch语句块不能为空\"的例子\n<例子1>\npersionNum = 1\ntry {\n\treturn True;\n} catch (Exception e) {\n\t// 如果人数为1则返回false\n\tif (persionNum == 1){\n\t\treturn False;\n\t}\n}这段代码的catch语句中不为空,所以不能把这个被判定为\"catch语句块不能为空\"\n\n\n<例子2>\ntry {\n\tthrow new Exception(\"Fake exception\");\n} catch (Exception e) {\n\te.printStackTrace();\n}这段代码的catch语句中虽然只有\"e.printStackTrace();\"但确实不为空,所以不能把这个被判定为\"catch语句块不能为空\"\n" - }, - { - "id": 9, - "text": "避免不必要的永真/永假判断", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:避免不必要的永真/永假判断;对应Fixer:UnconditionalIfStatement Fixer;修复方案:删除永真/永假判断逻辑", - "yes_example": "### 被判定为\"避免不必要的永真/永假判断\"的例子\n<例子1>\npublic void someMethod() {\n\twhile (true) {\n\t}\n}这段代码中的\"while (true)\"是一个使用true做判断条件,但是没有循环结束标记,所以这个被判定为\"避免不必要的永真/永假判断\"\n\n\n<例子2>\nif (true) {\n\tSystem.out.println(\"This is always true\");\n}这段代码中的\"if (true)\"是一个使用true条件做条件,但是没有循环结束标记,所以这个被判定为\"避免不必要的永真/永假判断\"\n\n\n<例子3>\na = 1;\nwhile(a > 0){\n\ta = a + 1\n}这段代码初始化a=1,是大于0的,while循环体的逻辑是每次加1,那么判断条件a > 0会永远是真的,不会退出循环,所以这个被判定为\"避免不必要的永真/永假判断\"\n<例子3>", - "no_example": "### 不能被判定为\"避免不必要的永真/永假判断\"的例子\n<例子1>\na = 0;\nwhile (a < 5) {\n\ta = a + 1;\n}这段代码中的a<5是一个判断,当执行了5次while语句中的逻辑a=a+1之后,a会满足a < 5,就会退出循环,所以这个能被判定为\"避免不必要的永真/永假判断\"\n" - }, - { - "id": 10, - "text": "switch 中 default 必须放在最后", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:switch 中 default 必须放在最后;对应Fixer:DefaultLabelNotLastInSwitchStmtFixer;修复方案:switch 中 default 放在最后", - "yes_example": "### 被判定为\"switch 中 default 必须放在最后\"的例子\n<例子1>\nswitch (number) {\n\tdefault:\n\t\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\t\tbreak;\n\tcase 1:\n\t\tSystem.out.println(\"Number one\");\n\t\tbreak;\n\tcase 2:\n\t\tSystem.out.println(\"Number two\");\n\t\tbreak;\n}这段代码是一个switch语句,但是里面的default没有放在最后,所以这个被判定为\"switch 中 default 必须放在最后\"\n", - "no_example": "### 不能被判定为\"switch 中 default 必须放在最后\"的例子\n<例子1>\nswitch (number) {\ncase 3:\n\tSystem.out.println(\"Number one\");\n\tbreak;\ncase 4:\n\tSystem.out.println(\"Number two\");\n\tbreak;\ndefault:\n\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\tbreak;\n}这段代码是一个switch语句且里面的default放在了最后,所以这个不能被判定为\"switch 中 default 必须放在最后\"\n" - }, - { - "id": 11, - "text": "未使用equals()函数对 String 作比较", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:未使用equals()函数对 String 作比较;对应Fixer:UnSynStaticDateFormatter Fixer;修复方案:使用equals()函数对 String 作比较", - "yes_example": "### 被判定为\"未使用equals()函数对 String 作比较\"的例子\n<例子1>\nif (existingPet != null && existingPet.getName() == petName) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中所涉及的existingPet.getName()和petName均是字符串,但是在if语句里做比较的时候使用了==而没有使用equals()对string做比较,所以这个被判定为\"未使用equals()函数对 String 作比较\"\n\n\n<例子2>\nString isOk = \"ok\";\nif (\"ok\" == isOk) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中的isOk是个字符串,但在if判断中与\"ok\"比较的时候使用的是==,未使用equals()对string做比较,所以这个被判定为\"未使用equals()函数对 String 作比较\"\n", - "no_example": "### 不能被判定为\"未使用equals()函数对 String 作比较\"的例子\n<例子1>\nif (PROPERTY_VALUE_YES.equalsIgnoreCase(readWriteReqNode))\n formProperty.setRequired(true);\n这段代码中的PROPERTY_VALUE_YES和readWriteReqNode均是字符串,在if语句里比较PROPERTY_VALUE_YES和readWriteReqNode的使用的是equalsIgnoreCase(字符串比较忽略大小写),所以equalsIgnoreCase也是符合使用equals()函数对 String 作比较的,所以这个不能被判定为\"未使用equals()函数对 String 作比较\"\n\n\n<例子2>\nString isOk = \"ok\";\nif (\"ok\".equals(isOk)) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中的isOk是个字符串,在if判断中与\"ok\"比较的时候使用的是equals()对string做比较,所以这个不能被判定为\"未使用equals()函数对 String 作比较\"\n" - }, - { - "id": 12, - "text": "禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象 输出异常;对应Fixer:ConcatExceptionFixer;修复方案:使用占位符传递异常对象", - "yes_example": "### 被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"的例子\n<例子1>\ntry {\n listenersNode = objectMapper.readTree(listenersNode.asText());\n} catch (Exception e) {\n LOGGER.info(\"Listeners node can not be read\", e);\n}这段代码中日志输出内容内容是直接使用字符串\"Listeners node can not be read\"拼接,日志输出异常时,应使用占位符输出异常信息,而不是直接使用字符串拼接,所以这个被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n", - "no_example": "### 不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"的例子\n<例子1>\nPersion persion = persionService.getPersion(1);\nif (persion == null){\n\tLOGGER.error(PERSION_NOT_EXIT);\n}这段代码中的PERSION_NOT_EXIT是一个用户自定义的异常常量,代表persion不存在,没有直接使用字符串\"persion not exit\"拼接,所以这个不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n<例子1>\n\n<例子2>\ntry {\n a = a + 1;\n} catch (Exception e) {\n Persion persion = persionService.getPersion(1);\n LOGGER.info(persion);\n}这段代码中输出日志没有直接使用字符串拼接,而是使用的Persion对象输出,所以这个不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n" - }, - { - "id": 13, - "text": "finally 语句块不能为空", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:finally 语句块不能为空;对应Fixer:EmptyFinallyBlockFixer;修复方案:删除空 finally 语句块", - "yes_example": "### 被判定为\"finally 语句块不能为空\"的例子\n<例子1>\ntry {\n\tPersion persion = persionService.getPersion(1);\n\treturn persion;\n} finally {\n\t\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子2>\ntry {\n\tSystem.out.println(\"Inside try block\");\n} finally {\n\t// 空的finally块,没有任何语句,这是一个缺陷\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子3>\ntry {\n int result = 10 / 0;\n} catch (ArithmeticException e) {\n e.printStackTrace();\n} finally {\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子4>\ntry {\n String str = null;\n System.out.println(str.length());\n} catch (NullPointerException e) {\n e.printStackTrace();\n} finally {\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子5>\ntry {\n int[] array = new int[5];\n int number = array[10];\n} catch (ArrayIndexOutOfBoundsException e) {\n e.printStackTrace();\n} finally {\n // 只有注释的 finally 语句块\n // 这是一个空的 finally 块\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子6>\ntry {\n FileReader file = new FileReader(\"nonexistentfile.txt\");\n} catch (FileNotFoundException e) {\n e.printStackTrace();\n} finally {\n // 只有空行的 finally 语句块\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n", - "no_example": "### 不能被判定为\"finally 语句块不能为空\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的finally语句块中有非注释意外的内容\"return null;\",所以这个不能被判定为\"finally 语句块不能为空\"\n" - }, - { - "id": 14, - "text": "try 语句块不能为空", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:try 语句块不能为空;对应Fixer:EmptyTryBlockFixer;修复方案:删除整个 try 语句", - "yes_example": "### 被判定为\"try 语句块不能为空\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\n\t}\n\treturn null;\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子2>\npublic void demoFinallyBlock() {\n\ttry {\n\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子3>\ntry {\n \n} catch (Exception e) {\n e.printStackTrace();\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子4>\ntry {\n // 只有注释的 try 语句块\n\t\n} catch (Exception e) {\n e.printStackTrace();\n}这段代码中的try语句块内只有注释和空行,也可以认定为这种情况是try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n", - "no_example": "### 不能被判定为\"try 语句块不能为空\"的例子\n<例子1>\ntry {\n\ta = a + 1;\n} catch (Exception e) {\n\te.printStackTrace();\n}\n这段代码中的try语句块中有非注释意外的内容\"return null;\",所以这个不能被判定为\"try 语句块不能为空\"\n" - }, - { - "id": 15, - "text": "避免对象进行不必要的 NULL或者null 检查", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:避免对象进行不必要的 NULL或者null 检查;对应Fixer:LogicalOpNpeFixer;修复方案:删除对对象不必要的 NULL 检查的逻辑", - "yes_example": "### 被判定为\"避免对象进行不必要的 NULL或者null 检查\"的例子\n<例子1>\na = \"dog\";\nif (a != null){\n\treturn a;\n}这段代码中的对象a已经是确定的值\"dog\",所以if条件句的判断\"a != null\"是不必要的,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子2>\nif (authenticatedUserId != null && !authenticatedUserId.isEmpty() && userGroupManager!=null){\n\treturn authenticatedUserId;\n}这段代码中的\"authenticatedUserId != null\"和\"!authenticatedUserId.isEmpty()\"都是对\"authenticatedUserId\"的空判断,重复了,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子3>\nList list = new ArrayList<>();\nif (list != null) {\n list.add(1);\n}这段代码中的list已经被初始化,不需要进行 null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子4>\nif (this.type != null && this.type.getName() != null) {\n\tSystem.out.println(\"Type name is not null\");\n}这段代码中的对象type已经检查过非null,再次检查getName()是否为null是不必要的,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n\n<例子5>\nif (\"dog\".equals(null)){\n\treturn a;\n}这段代码中的\"dog\"是个确定的字符串,不需要进行null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子6>\nInteger num = 10;\nif (num != null) {\n System.out.println(num);\n}这段代码中的num 已经被初始化,不需要进行 null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n", - "no_example": "### 不能被判定为\"避免对象进行不必要的 NULL或者null 检查\"的例子\n<例子1>\nCat cat = catService.get(1);\nif (cat != null){\n\tretrun cat;\n}这段代码中的对象\"cat\"是通过service获取到的,不确定是否为空,所以if条件句的判断的\"cat != null\"是必要的,所以这个不能被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n" - }, - { - "id": 17, - "text": "避免 finally 块中出现 return", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:避免 finally 块中出现 return;修复方案:无需修复", - "yes_example": "### 被判定为\"避免 finally 块中出现 return\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的finally语句块内容包含\"return\",所以这个被判定为\"避免 finally 块中出现 return\"\n", - "no_example": "### 不能被判定为\"避免 finally 块中出现 return\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\tLOGGER.info(PERSION_NOT_EXIT);\n\t}\n}这段代码中的finally语句块中内容不包含\"return\",所以这个不能被判定为\"避免 finally 块中出现 return\"\n" - }, - { - "id": 18, - "text": "避免空的 static 初始化", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:避免空的 static 初始化;对应Fixer:EmptyInitializerFixer;修复方案:删除整个空初始化块", - "yes_example": "### 被判定为\"避免空的 static 初始化\"的例子\n<例子1>\npublic class PetValidator implements Validator {\n\tstatic {\n\n\t}\n}这段代码中的static语句块没有内容,是空的,所以这个被判定为\"避免空的 static 初始化\"\n\n\n<例子2>\npublic class Persion {\n\tstatic {\n\t\t// 初始化的静态块\n\t}\n}这段代码中的static语句块是有内容的,不是空的,但是static初始化语句块中只有注释代码,没有实际的逻辑,所以这个被判定为\"避免空的 static 初始化\"\n", - "no_example": "### 不能被判定为\"避免空的 static 初始化\"的例子\n<例子1>\npublic class Cat {\n\tstatic {\n\t\t// 初始化的静态块\n\t\tcat = null;\n\t}\n}这段代码中的static语句块是有内容的,不是空的,且static初始化语句块中有非注释代码,有实际的逻辑,所以这个不能被判定为\"避免空的 static 初始化\"\n" - }, - { - "id": 19, - "text": "避免日历类用法不当风险", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:避免日历类用法不当风险;修复方案:使用Java 8 及以上版本中的 java.time 包的LocalDate", - "yes_example": "### 被判定为\"避免日历类用法不当风险\"的例子\n<例子1>\nprivate static final Calendar calendar = new GregorianCalendar(2020, Calendar.JANUARY, 1);\n这段代码中的Calendar和GregorianCalendar是线程不安全的,所以这个被判定为\"避免日历类用法不当风险\"\n", - "no_example": "### 不能被判定为\"避免日历类用法不当风险\"的例子\n<例子1>\nprivate static final LocalDate calendar = LocalDate.of(2020, 1, 1);\n这段代码中的LocalDate使用的是Java 8 及以上版本中的 java.time 包,LocalDate 是不可变的并且是线程安全的,不会有线程安全和性能方面的问题,所以这个不能被判定为\"避免日历类用法不当风险\"\n" - }, - { - "id": 21, - "text": "使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size();对应Fixer:ClassCastExpWithToArrayF ixer;修复方案:使用集合的toArray(T[]array),且传入的是类型完全一样的数组", - "yes_example": "### 被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"的例子\n<例子1>\nList stringList = new ArrayList<>();\nstringList.add(\"Apple\");\nstringList.add(\"Banana\");\nObject[] objectArray = stringList.toArray(new Object[5]);\n这段代码使用集合转数组的方法的时候使用了toArray(new Object[5]),但是传入的数组类型不一致,所以这个被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"\n", - "no_example": "### 不能被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"的例子\n<例子1>\nList stringList = new ArrayList<>();\nstringList.add(\"Apple\");\nstringList.add(\"Banana\");\nString[] stringArray = stringList.toArray(new String[stringList.size()]);\n这段代码使用集合转数组的方法的时候使用了toArray(new String[stringList.size()]),传入的是类型完全一样的数组,所以这个不能被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"\n" - }, - { - "id": 22, - "text": "禁止在 equals()中使用 NULL或者null 做比较", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:禁止在 equals()中使用 NULL或者null 做比较;对应Fixer:EqualsNullFixer;修复方案:使用Object的判空函数 做比较", - "yes_example": "### 被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"的例子\n<例子1>\nif (\"test\".equals(null)) {\n\tSystem.out.println(\"test\");\n}这段代码中if条件中的代码\"test\".equals(null)使用equals()函数与null进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子2>\nif (!rangeValues[1].equals(\"null\")) {\n\tmaxValue = new BigDecimal(rangeValues[1]);\n}这段代码中if条件中的代码!rangeValues[1].equals(\"null\")使用equals()函数与Nnull进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子3>\nString str1 = \"example\";\nif (str1.equals(\"null\")) {\n System.out.println(\"str1 is null\");\n}这段代码中if条件中的代码str1.equals(null)使用equals()函数与null进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子4>\nString str3 = \"example\";\nif (str3 != null && str3.equals(\"null\")) {\n System.out.println(\"str3 is null\");\n}这段代码中if条件中的代码str3.equals(\"null\")使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子5>\nInteger num1 = 10;\nif (num1.equals(null)) {\n System.out.println(\"num1 is null\");\n}这段代码中if条件中的代码num1.equals(null)使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子6>\nObject obj = new Object();\nif (obj.equals(null)) {\n System.out.println(\"obj is null\");\n}这段代码中if条件中的代码obj.equals(null)使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n", - "no_example": "### 不能被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"的例子\n<例子1>\na = \"test\";\nif (a.equals(\"test\")) {\n\tSystem.out.println(\"test\");\n}这段代码中if条件中的代码a.equals(\"test\")使用equals()函数与\"test\"进行了比较,所以这个不能被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n" - }, - { - "id": 23, - "text": "switch 语句块不能为空", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:switch 语句块不能为空;对应Fixer:EmptySwitchStatementsFix;修复方案:删除整个空 switch 语句块", - "yes_example": "### 被判定为\"switch 语句块不能为空\"的例子\n<例子1>\nswitch (number) {\n\t\n}这段代码是一个switch语句块,但是里面没有内容,所以这个被判定为\"switch 语句块不能为空\"\n\n\n<例子2>\nswitch (number) {\n\t// 这是一个switch语句块\n}这段代码是一个switch语句块,里面虽然有内容,但是内容仅仅是注释内容,没有实际的逻辑,所以这个被判定为\"switch 语句块不能为空\"\n", - "no_example": "### 不能被判定为\"switch 语句块不能为空\"的例子\n<例子1>\nswitch (number) {\n\tcase 1:\n\t\tSystem.out.println(\"Number one\");\n\t\tbreak;\n\tdefault:\n\t\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\t\tbreak;\n}这段代码是一个switch语句块,里面有内容,而且内容里有非注释的代码,有实际的逻辑,所以这个不能被判定为\"switch 语句块不能为空\"\n" - }, - { - "id": 24, - "text": "变量/方法/类 命名,要有效清晰表示对应的实际含义", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:变量/方法/类 命名,要有效清晰表示对应的实际含义;修复方案:修改成合适的变量/方法/类名,有效表示对应的实体含义", - "yes_example": "### 被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"的例子\n<例子1>\nint a = 1;\nif (a == 1) {\n\treturn a;\n}这段代码中的变量a的命名无法从命名中理解a代表什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n\n\n<例子2>\nStringBuilder sb = new StringBuilder();\nsb.append(\"{!\").append(tag).append(\"=\").append(tagField);\n这段代码中的变量sb的命名无法从命名中理解a代表什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n\n\n<例子3>\nPage findAll(Pageable pageable);\n这段代码findAll是一个interface声明,接口名findAll无法清晰的理解这个接口要做什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n", - "no_example": "### 不能被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"的例子\n<例子1>\nint persionNum = 5;\nif (persionNum > 3) {\n\treturn True;\n}这段代码中的变量persionNum的命名可以比较清楚知道persionNum代表人员的数量,所以这个不能被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n" - }, - { - "id": 25, - "text": "判断逻辑应简洁,不能有重复或者无意义的判断", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:判断逻辑应简洁,不能有重复或者无意义的判断;修复方案:简化或删除一些重复的,无意义的判断逻辑", - "yes_example": "### 被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n<例子1>\nif (task == null) {\n\ttask = 1\n\tif (task != null) {\n\t\tInteger ok = 0;\n\t\tif (task == 1) {\n\t\t\tok=1;\n\t\t}\n\t\tif (ok == 0) {\n\t\t\ttask = null;\n\t\t}\n\t}\n}这段代码中的关于变量ok的判断逻辑不够简洁,变量ok其实可以被去掉进行逻辑简化,可以被简化为\nif (task == null) {\n\ttask = 1\n\tif (task != null) {\n\t\tif (task == 1) {\n\t\t task = null;\n\t\t}\n\t}\n},所以这个被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n\n\n<例子2>\nif (!(a == 0) && a == 1 || a == 2){\n\treturn True;\n}这段代码的if判断逻辑过于复杂,可简化为if (0\n\n<例子3>\na = 1;\nif (a > 1){\n\treturn True;\n}这段代码的变量a是确定的值1,这样就不会出现a > 1,所以if的判断无意义,所以这个被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n", - "no_example": "### 不能被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n<例子1>\na = 1;\nb = 2;\nif (0 < a ≤ 2){\n\treturn a + b;\n}这段代码的判断条件比较简洁明了,无重复的判断,所以这个不能被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n" - }, - { - "id": 26, - "text": "代码结构冗余,避免重复代码", - "language": "java", - "file_path": "", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:代码结构冗余,避免重复代码;修复方案:忽略", - "yes_example": "### 被判定为\"代码结构冗余,避免重复代码\"的例子\n<例子1>\npublic void trigger(String executionId, Map processVariables) {\n commandExecutor.execute(new TriggerCmd(executionId, processVariables));\n}\npublic void trigger(String executionId, Map processVariables, Map transientVariables) {\n\tcommandExecutor.execute(new TriggerCmd(executionId, processVariables, transientVariables)); \n}这段代码中的2个trigger存在代码都是触发器的逻辑,存在重复,可以合并成1个函数,所以这个被判定为\"代码结构冗余,避免重复代码\"\n\n\n<例子2>\npublic int sum(int a, int b){\n\treturn a + b;\n}\npublic int merge(int a, int b){\n\treturn a + b;\n}这段代码中的2个函数sum和merge的逻辑是一样的,可以合并成1个函数,所以这个被判定为\"代码结构冗余,避免重复代码\"\n", - "no_example": "### 不能被判定为\"代码结构冗余,避免重复代码\"的例子\n<例子1>\npublic int append(int a, int b){\n\treturn a + b;\n}\npublic int add(int a, int b){\n\treturn (a + b) - b;\n}这段代码中的2个函数sum和add的代码结构看上去差不多,但是具体的处理逻辑是不一样的,所以这个不能被判定为\"代码结构冗余,避免重复代码\"\n" - }, - { - "id": 27, - "text": "不能有多余的分号", - "file_path": "\"\"", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:多余的分号;修复方案:删除多余的分号", - "yes_example": "### 被判定为\"不能有多余的分号\"的例子\n<例子1>\npublic void trigger(String executionId, Map processVariables) {\n commandExecutor.execute(new TriggerCmd(executionId, processVariables));\n}\n;\na = 1;\nb = 2;\nsum = a + b;\n这段代码中包含一个多余的分号\";\",所以这个被判定为\"不能有多余的分号\"\n", - "no_example": "### 不能被判定为\"不能有多余的分号\"的例子\n<例子1>\nwhile (True) {\n\ta = a + 1;\n\tbreak;\n}这段代码每个分号都是必须要的,所以这个能被判定为\"不能有多余的分号\"\n" - }, - { - "id": 28, - "text": "非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized", - "file_path": "\"\"", - "start_line": 0, - "end_line": 0, - "detail": "缺陷类型:非线程安全的 SimpleDateFormat 使用;修复方案:在函数或代码块级别加上synchronized修饰 或 使用其他线程安全的方式", - "yes_example": "### 被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"的例子\n<例子1>\npublic void formatDate(Date date) {\n\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");\n\tSystem.out.println(\"Formatted date: \" + sdf.format(date));\n}这段代码中的函数formatDate在未使用synchronized同步修饰的情况下使用了SimpleDateFormat,这是线程不安全的,所以这个被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"\n", - "no_example": "### 不能被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"的例子\n<例子1>\npublic synchronized void formatDate(Date date) {\n\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");\n\tSystem.out.println(\"Formatted date: \" + sdf.format(date));\n}这段代码是在synchronized同步块对函数'formatDate'进行保护,保证了线程安全,所以这个不能被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"\n" - } + { + "id": 1, + "text": "避免未使用的临时变量", + "language": "java", + "detail": "缺陷类型:避免未使用的临时变量;对应Fixer:UnusedLocalVariableFixer;修复方案:删除未使用的临时变量", + "yes_example": "### 被判定为\"避免未使用的临时变量\"的例子\n<例子1>\npublic String initCreationForm(Map model) {\n\t\tOwner owner = new Owner();\n\t\tmodel.put(\"owner\", owner);\n\t\tint unusedVar = 10;\n\t\treturn VIEWS_OWNER_CREATE_OR_UPDATE_FORM;\n\t}\n上述代码中unusedVar变量未被使用,所以这个被判定为\"避免未使用的临时变量\"\n\n<例子2>\nint unusedVariable = 10;\nSystem.out.println(\"Hello, World!\");\n这段代码的变量\"unusedVariable\"未被使用或者引用,所以这个不能判定为\"避免未使用的临时变量\"\n", + "no_example": "### 不能被判定为\"避免未使用的临时变量\"的例子\n<例子1>\npublic void setTransientVariablesLocal(Map transientVariables) {\nthrow new UnsupportedOperationException(\"No execution active, no variables can be set\");\n}\n这段代码的\"transientVariables\"是函数参数而不是临时变量,虽然transientVariables没有被使用或者引用,但是这个也不能判定为\"避免未使用的临时变量\"\n\n\n<例子2>\npublic class TriggerCmd extends NeedsActiveExecutionCmd {\n protected Map transientVariables;\n public TriggerCmd(Map transientVariables) {\n this.transientVariables = transientVariables;\n }\n}\n上述代码中transientVariables不属于临时变量,它是类属性,且它在构造函数中被使用,所以这个不能被判定为\"避免未使用的临时变量\"\n" + }, + { + "id": 2, + "text": "不要使用 System.out.println 去打印", + "language": "java", + "detail": "缺陷类型:不要使用 System.out.println 去打印;对应Fixer:SystemPrintlnFixer;修复方案:注释System.out.println代码", + "yes_example": "### 被判定为\"不要使用 System.out.println 去打印\"的例子\n<例子1>\nSystem.out.println(\"Initializing new owner form.\");\n上述代码使用了\"System.out.println\"进行打印,所以这个被判定为\"不要使用 System.out.println 去打印\"\n", + "no_example": "### 不能被判定为\"不要使用 System.out.println 去打印\"的例子\n<例子1>\nthrow new IllegalStateException(\"There is no authenticated user, we need a user authenticated to find tasks\");\n上述代码是抛出异常的代码,没有使用\"System.out.print\",所以这个不能被判定为\"不要使用 System.out.println 去打印\"\n" + }, + { + "id": 3, + "text": "避免函数中未使用的形参", + "language": "java", + "detail": "缺陷类型:避免函数中未使用的形参;修复方案:忽略", + "yes_example": "### 被判定为\"避免函数中未使用的形参\"的例子\n<例子1>\npublic void setTransientVariablesLocal(Map transientVariables) {\n throw new UnsupportedOperationException(\"No execution active, no variables can be set\");\n}这段代码中的形参\"transientVariables\"未在函数体内出现,所以这个被判定为\"避免函数中未使用的形参\"\n\n\n<例子2>\nprotected void modifyFetchPersistencePackageRequest(PersistencePackageRequest ppr, Map pathVars) {}\n这段代码中的形参\"ppr\"和\"pathVars\"未在函数体内出现,所以这个被判定为\"避免函数中未使用的形参\"\n", + "no_example": "### 不能被判定为\"避免函数中未使用的形参\"的例子\n<例子1>\npublic String processFindForm(@RequestParam(value = \"pageNo\", defaultValue = \"1\") int pageNo) {\n\tlastName = owner.getLastName();\n\treturn addPaginationModel(pageNo, paginationModel, lastName, ownersResults);\n}上述代码中的形参\"pageNo\"在当前函数'processFindForm'内被'return addPaginationModel(pageNo, paginationModel, lastName, ownersResults);'这一句被使用,虽然pageNo没有被用于逻辑计算,但作为了函数调用其他函数的参数使用了,所以这个不能被判定为\"避免函数中未使用的形参\"\n" + }, + { + "id": 4, + "text": "if语句块不能为空", + "language": "java", + "detail": "缺陷类型:if 语句块不能为空;对应Fixer:EmptyIfStmtFixer;修复方案:删除if语句块 或 适当的逻辑处理 或 注释说明为何为空", + "yes_example": "### 被判定为\"if语句块不能为空\"的例子\n<例子1>\npublic void emptyIfStatement() {\n\tif (getSpecialties().isEmpty()) {\n\t}\n}这段代码中的if语句块内容是空的,所以这个被判定为\"if语句块不能为空\"\n\n\n<例子2>\npublic void judgePersion() {\n\tif (persion != null) {\n\t\t// judge persion if not null\n\t}\n}\n这段代码中的if语句块虽然有内容,但是\"// judge persion if not null\"只是代码注释,if语句块内并没有实际的逻辑代码,所以这个被判定为\"if语句块不能为空\"\n", + "no_example": "### 不能被判定为\"if语句块不能为空\"的例子\n<例子1>\npublic void judgePersion() {\n\tif (persion != null) {\n\t\treturn 0;\n\t}\n}这段代码中的if语句块里有内容,且里面有非注释代码的逻辑代码\"return 0;\",所以这个不能被判定为\"if语句块不能为空\"\n" + }, + { + "id": 5, + "text": "循环体不能为空", + "language": "java", + "detail": "缺陷类型:循环体不能为空;对应Fixer:EmptyStatementNotInLoopFixer;修复方案:删除对应while、for、foreach 循环体 或 添加适当的逻辑处理或者注释说明为何为空", + "yes_example": "### 被判定为\"循环体不能为空\"的例子\n<例子1>\npublic void emptyLoopBody() {\n\tfor (Specialty specialty : getSpecialties()) {\n\t}\n}这段代码中的for循环体的内容是空的,所以这个被判定为\"循环体不能为空\"\n\n\n<例子2>\npublic void emptyLoopBody() {\n\twhile (True) {\n\t\t// this is a code example\n\t}\n}这段代码中的while循环体的内容虽然不是空的,但内容只是代码注释,无逻辑内容,所以这个被判定为\"循环体不能为空\"\n\n\n<例子3>\npublic void emptyLoopBody() {\n\twhile (True) {\n\t\t\n\t}\n}这段代码中的while循环体内容是空的,所以这个被判定为\"循环体不能为空\"\n", + "no_example": "### 不能被判定为\"循环体不能为空\"的例子\n<例子1>\npublic void emptyLoopBody() {\n\tfor (Specialty specialty : getSpecialties()) {\n\t\ta = 1;\n\t\tif (a == 1) {\n\t\t\tretrun a;\n\t\t}\n\t}\n}上述代码的for循环体的内容不为空,且内容不全是代码注释,所以这个不能被判定为\"循环体不能为空\"\n" + }, + { + "id": 6, + "text": "避免使用 printStackTrace(),应该使用日志的方式去记录", + "language": "java", + "detail": "缺陷类型:避免使用 printStackTrace(),应该使 用日志的方式去记录;修复方案:用日志的方式去记录", + "yes_example": "### 被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"的例子\n<例子1>\npublic void usePrintStackTrace() {\n\ttry {\n\t\tthrow new Exception(\"Fake exception\");\n\t} catch (Exception e) {\n\t\te.printStackTrace();\n\t}\n}这段代码中的catch语句中使用了printStackTrace(),所以这个被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"\n", + "no_example": "### 不能被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"的例子\n<例子1>\npublic void usePrintStackTrace() {\n\ttry {\n\t\tthrow new Exception(\"Fake exception\");\n\t} catch (Exception e) {\n\t\tlogging.info(\"info\");\n\t}\n}这段代码的catch语句中使用的是日志记录的方式,所以这个不能被判定为\"避免使用 printStackTrace(),应该使用日志的方式去记录\"\n" + }, + { + "id": 7, + "text": "catch 语句块不能为空", + "language": "java", + "detail": "缺陷类型:catch 语句块不能为空;对应Fixer:EmptyCatchBlockFixer;修复方案:在catch里面添加注释", + "yes_example": "### 被判定为\"catch语句块不能为空\"的例子\n<例子1>\ntry {\n int[] array = new int[5];\n int number = array[10];\n} catch (ArrayIndexOutOfBoundsException e) {\n \n}\n这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n\n<例子2>\ntry {\n String str = null;\n str.length();\n} catch (NullPointerException e) {\n \n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n\n<例子3>\npublic class EmptyCatchExample {\n public static void main(String[] args) {\n try {\n // 尝试除以零引发异常\n int result = 10 / 0;\n } catch (ArithmeticException e) {\n \n }\n }\n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n<例子4>\ntry {\n FileReader file = new FileReader(\"nonexistentfile.txt\");\n} catch (FileNotFoundException e) {\n \n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n\n<例子5>\ntry {\n Object obj = \"string\";\n Integer num = (Integer) obj;\n} catch (ClassCastException e) {\n\t\n}这段代码中的catch语句中没有内容,所以这个被判定为\"catch语句块不能为空\"\n", + "no_example": "### 不能被判定为\"catch语句块不能为空\"的例子\n<例子1>\npersionNum = 1\ntry {\n\treturn True;\n} catch (Exception e) {\n\t// 如果人数为1则返回false\n\tif (persionNum == 1){\n\t\treturn False;\n\t}\n}这段代码的catch语句中不为空,所以不能把这个被判定为\"catch语句块不能为空\"\n\n\n<例子2>\ntry {\n\tthrow new Exception(\"Fake exception\");\n} catch (Exception e) {\n\te.printStackTrace();\n}这段代码的catch语句中虽然只有\"e.printStackTrace();\"但确实不为空,所以不能把这个被判定为\"catch语句块不能为空\"\n" + }, + { + "id": 8, + "text": "避免不必要的永真/永假判断", + "language": "java", + "detail": "缺陷类型:避免不必要的永真/永假判断;对应Fixer:UnconditionalIfStatement Fixer;修复方案:删除永真/永假判断逻辑", + "yes_example": "### 被判定为\"避免不必要的永真/永假判断\"的例子\n<例子1>\npublic void someMethod() {\n\twhile (true) {\n\t}\n}这段代码中的\"while (true)\"是一个使用true做判断条件,但是没有循环结束标记,所以这个被判定为\"避免不必要的永真/永假判断\"\n\n\n<例子2>\nif (true) {\n\tSystem.out.println(\"This is always true\");\n}这段代码中的\"if (true)\"是一个使用true条件做条件,但是没有循环结束标记,所以这个被判定为\"避免不必要的永真/永假判断\"\n\n\n<例子3>\na = 1;\nwhile(a > 0){\n\ta = a + 1\n}这段代码初始化a=1,是大于0的,while循环体的逻辑是每次加1,那么判断条件a > 0会永远是真的,不会退出循环,所以这个被判定为\"避免不必要的永真/永假判断\"\n<例子3>", + "no_example": "### 不能被判定为\"避免不必要的永真/永假判断\"的例子\n<例子1>\na = 0;\nwhile (a < 5) {\n\ta = a + 1;\n}这段代码中的a<5是一个判断,当执行了5次while语句中的逻辑a=a+1之后,a会满足a < 5,就会退出循环,所以这个能被判定为\"避免不必要的永真/永假判断\"\n" + }, + { + "id": 9, + "text": "switch 中 default 必须放在最后", + "language": "java", + "detail": "缺陷类型:switch 中 default 必须放在最后;对应Fixer:DefaultLabelNotLastInSwitchStmtFixer;修复方案:switch 中 default 放在最后", + "yes_example": "### 被判定为\"switch 中 default 必须放在最后\"的例子\n<例子1>\nswitch (number) {\n\tdefault:\n\t\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\t\tbreak;\n\tcase 1:\n\t\tSystem.out.println(\"Number one\");\n\t\tbreak;\n\tcase 2:\n\t\tSystem.out.println(\"Number two\");\n\t\tbreak;\n}这段代码是一个switch语句,但是里面的default没有放在最后,所以这个被判定为\"switch 中 default 必须放在最后\"\n", + "no_example": "### 不能被判定为\"switch 中 default 必须放在最后\"的例子\n<例子1>\nswitch (number) {\ncase 3:\n\tSystem.out.println(\"Number one\");\n\tbreak;\ncase 4:\n\tSystem.out.println(\"Number two\");\n\tbreak;\ndefault:\n\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\tbreak;\n}这段代码是一个switch语句且里面的default放在了最后,所以这个不能被判定为\"switch 中 default 必须放在最后\"\n" + }, + { + "id": 10, + "text": "未使用equals()函数对 String 作比较", + "language": "java", + "detail": "缺陷类型:未使用equals()函数对 String 作比较;对应Fixer:UnSynStaticDateFormatter Fixer;修复方案:使用equals()函数对 String 作比较", + "yes_example": "### 被判定为\"未使用equals()函数对 String 作比较\"的例子\n<例子1>\nif (existingPet != null && existingPet.getName() == petName) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中所涉及的existingPet.getName()和petName均是字符串,但是在if语句里做比较的时候使用了==而没有使用equals()对string做比较,所以这个被判定为\"未使用equals()函数对 String 作比较\"\n\n\n<例子2>\nString isOk = \"ok\";\nif (\"ok\" == isOk) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中的isOk是个字符串,但在if判断中与\"ok\"比较的时候使用的是==,未使用equals()对string做比较,所以这个被判定为\"未使用equals()函数对 String 作比较\"\n", + "no_example": "### 不能被判定为\"未使用equals()函数对 String 作比较\"的例子\n<例子1>\nif (PROPERTY_VALUE_YES.equalsIgnoreCase(readWriteReqNode))\n formProperty.setRequired(true);\n这段代码中的PROPERTY_VALUE_YES和readWriteReqNode均是字符串,在if语句里比较PROPERTY_VALUE_YES和readWriteReqNode的使用的是equalsIgnoreCase(字符串比较忽略大小写),所以equalsIgnoreCase也是符合使用equals()函数对 String 作比较的,所以这个不能被判定为\"未使用equals()函数对 String 作比较\"\n\n\n<例子2>\nString isOk = \"ok\";\nif (\"ok\".equals(isOk)) {\n\tresult.rejectValue(\"name\", \"duplicate\", \"already exists\");\n}这段代码中的isOk是个字符串,在if判断中与\"ok\"比较的时候使用的是equals()对string做比较,所以这个不能被判定为\"未使用equals()函数对 String 作比较\"\n" + }, + { + "id": 11, + "text": "禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象", + "language": "java", + "detail": "缺陷类型:禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象 输出异常;对应Fixer:ConcatExceptionFixer;修复方案:使用占位符传递异常对象", + "yes_example": "### 被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"的例子\n<例子1>\ntry {\n listenersNode = objectMapper.readTree(listenersNode.asText());\n} catch (Exception e) {\n LOGGER.info(\"Listeners node can not be read\", e);\n}这段代码中日志输出内容内容是直接使用字符串\"Listeners node can not be read\"拼接,日志输出异常时,应使用占位符输出异常信息,而不是直接使用字符串拼接,所以这个被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n", + "no_example": "### 不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"的例子\n<例子1>\nPersion persion = persionService.getPersion(1);\nif (persion == null){\n\tLOGGER.error(PERSION_NOT_EXIT);\n}这段代码中的PERSION_NOT_EXIT是一个用户自定义的异常常量,代表persion不存在,没有直接使用字符串\"persion not exit\"拼接,所以这个不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n<例子1>\n\n<例子2>\ntry {\n a = a + 1;\n} catch (Exception e) {\n Persion persion = persionService.getPersion(1);\n LOGGER.info(persion);\n}这段代码中输出日志没有直接使用字符串拼接,而是使用的Persion对象输出,所以这个不能被判定为\"禁止在日志中直接使用字符串输出异常,请使用占位符传递异常对象\"\n" + }, + { + "id": 12, + "text": "finally 语句块不能为空", + "language": "java", + "detail": "缺陷类型:finally 语句块不能为空;对应Fixer:EmptyFinallyBlockFixer;修复方案:删除空 finally 语句块", + "yes_example": "### 被判定为\"finally 语句块不能为空\"的例子\n<例子1>\ntry {\n\tPersion persion = persionService.getPersion(1);\n\treturn persion;\n} finally {\n\t\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子2>\ntry {\n\tSystem.out.println(\"Inside try block\");\n} finally {\n\t// 空的finally块,没有任何语句,这是一个缺陷\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子3>\ntry {\n int result = 10 / 0;\n} catch (ArithmeticException e) {\n e.printStackTrace();\n} finally {\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子4>\ntry {\n String str = null;\n System.out.println(str.length());\n} catch (NullPointerException e) {\n e.printStackTrace();\n} finally {\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子5>\ntry {\n int[] array = new int[5];\n int number = array[10];\n} catch (ArrayIndexOutOfBoundsException e) {\n e.printStackTrace();\n} finally {\n // 只有注释的 finally 语句块\n // 这是一个空的 finally 块\n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n\n\n<例子6>\ntry {\n FileReader file = new FileReader(\"nonexistentfile.txt\");\n} catch (FileNotFoundException e) {\n e.printStackTrace();\n} finally {\n // 只有空行的 finally 语句块\n \n}这段代码中的finally语句块内没有内容,所以这个被判定为\"finally 语句块不能为空\"\n", + "no_example": "### 不能被判定为\"finally 语句块不能为空\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的finally语句块中有非注释意外的内容\"return null;\",所以这个不能被判定为\"finally 语句块不能为空\"\n" + }, + { + "id": 13, + "text": "try 语句块不能为空", + "language": "java", + "detail": "缺陷类型:try 语句块不能为空;对应Fixer:EmptyTryBlockFixer;修复方案:删除整个 try 语句", + "yes_example": "### 被判定为\"try 语句块不能为空\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\n\t}\n\treturn null;\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子2>\npublic void demoFinallyBlock() {\n\ttry {\n\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子3>\ntry {\n \n} catch (Exception e) {\n e.printStackTrace();\n}这段代码中的try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n\n\n<例子4>\ntry {\n // 只有注释的 try 语句块\n\t\n} catch (Exception e) {\n e.printStackTrace();\n}这段代码中的try语句块内只有注释和空行,也可以认定为这种情况是try语句块内没有内容,所以这个被判定为\"try 语句块不能为空\"\n", + "no_example": "### 不能被判定为\"try 语句块不能为空\"的例子\n<例子1>\ntry {\n\ta = a + 1;\n} catch (Exception e) {\n\te.printStackTrace();\n}\n这段代码中的try语句块中有非注释意外的内容\"return null;\",所以这个不能被判定为\"try 语句块不能为空\"\n" + }, + { + "id": 14, + "text": "避免对象进行不必要的 NULL或者null 检查", + "language": "java", + "detail": "缺陷类型:避免对象进行不必要的 NULL或者null 检查;对应Fixer:LogicalOpNpeFixer;修复方案:删除对对象不必要的 NULL 检查的逻辑", + "yes_example": "### 被判定为\"避免对象进行不必要的 NULL或者null 检查\"的例子\n<例子1>\na = \"dog\";\nif (a != null){\n\treturn a;\n}这段代码中的对象a已经是确定的值\"dog\",所以if条件句的判断\"a != null\"是不必要的,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子2>\nif (authenticatedUserId != null && !authenticatedUserId.isEmpty() && userGroupManager!=null){\n\treturn authenticatedUserId;\n}这段代码中的\"authenticatedUserId != null\"和\"!authenticatedUserId.isEmpty()\"都是对\"authenticatedUserId\"的空判断,重复了,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子3>\nList list = new ArrayList<>();\nif (list != null) {\n list.add(1);\n}这段代码中的list已经被初始化,不需要进行 null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子4>\nif (this.type != null && this.type.getName() != null) {\n\tSystem.out.println(\"Type name is not null\");\n}这段代码中的对象type已经检查过非null,再次检查getName()是否为null是不必要的,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n\n<例子5>\nif (\"dog\".equals(null)){\n\treturn a;\n}这段代码中的\"dog\"是个确定的字符串,不需要进行null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n\n\n<例子6>\nInteger num = 10;\nif (num != null) {\n System.out.println(num);\n}这段代码中的num 已经被初始化,不需要进行 null 检查,所以这个被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n", + "no_example": "### 不能被判定为\"避免对象进行不必要的 NULL或者null 检查\"的例子\n<例子1>\nCat cat = catService.get(1);\nif (cat != null){\n\tretrun cat;\n}这段代码中的对象\"cat\"是通过service获取到的,不确定是否为空,所以if条件句的判断的\"cat != null\"是必要的,所以这个不能被判定为\"避免对象进行不必要的 NULL或者null 检查\"\n" + }, + { + "id": 15, + "text": "避免 finally 块中出现 return", + "language": "java", + "detail": "缺陷类型:避免 finally 块中出现 return;修复方案:无需修复", + "yes_example": "### 被判定为\"避免 finally 块中出现 return\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\treturn null;\n\t}\n}这段代码中的finally语句块内容包含\"return\",所以这个被判定为\"避免 finally 块中出现 return\"\n", + "no_example": "### 不能被判定为\"避免 finally 块中出现 return\"的例子\n<例子1>\npublic void getPersion() {\n\ttry {\n\t\tPersion persion = persionService.getPersion(1);\n\t\tif (persion != null){ \n\t\t\treturn persion;\n\t\t}\n\t} finally {\n\t\tLOGGER.info(PERSION_NOT_EXIT);\n\t}\n}这段代码中的finally语句块中内容不包含\"return\",所以这个不能被判定为\"避免 finally 块中出现 return\"\n" + }, + { + "id": 16, + "text": "避免空的 static 初始化", + "language": "java", + "detail": "缺陷类型:避免空的 static 初始化;对应Fixer:EmptyInitializerFixer;修复方案:删除整个空初始化块", + "yes_example": "### 被判定为\"避免空的 static 初始化\"的例子\n<例子1>\npublic class PetValidator implements Validator {\n\tstatic {\n\n\t}\n}这段代码中的static语句块没有内容,是空的,所以这个被判定为\"避免空的 static 初始化\"\n\n\n<例子2>\npublic class Persion {\n\tstatic {\n\t\t// 初始化的静态块\n\t}\n}这段代码中的static语句块是有内容的,不是空的,但是static初始化语句块中只有注释代码,没有实际的逻辑,所以这个被判定为\"避免空的 static 初始化\"\n", + "no_example": "### 不能被判定为\"避免空的 static 初始化\"的例子\n<例子1>\npublic class Cat {\n\tstatic {\n\t\t// 初始化的静态块\n\t\tcat = null;\n\t}\n}这段代码中的static语句块是有内容的,不是空的,且static初始化语句块中有非注释代码,有实际的逻辑,所以这个不能被判定为\"避免空的 static 初始化\"\n" + }, + { + "id": 17, + "text": "避免日历类用法不当风险", + "language": "java", + "detail": "缺陷类型:避免日历类用法不当风险;修复方案:使用Java 8 及以上版本中的 java.time 包的LocalDate", + "yes_example": "### 被判定为\"避免日历类用法不当风险\"的例子\n<例子1>\nprivate static final Calendar calendar = new GregorianCalendar(2020, Calendar.JANUARY, 1);\n这段代码中的Calendar和GregorianCalendar是线程不安全的,所以这个被判定为\"避免日历类用法不当风险\"\n", + "no_example": "### 不能被判定为\"避免日历类用法不当风险\"的例子\n<例子1>\nprivate static final LocalDate calendar = LocalDate.of(2020, 1, 1);\n这段代码中的LocalDate使用的是Java 8 及以上版本中的 java.time 包,LocalDate 是不可变的并且是线程安全的,不会有线程安全和性能方面的问题,所以这个不能被判定为\"避免日历类用法不当风险\"\n" + }, + { + "id": 18, + "text": "使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()", + "language": "java", + "detail": "缺陷类型:使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size();对应Fixer:ClassCastExpWithToArrayF ixer;修复方案:使用集合的toArray(T[]array),且传入的是类型完全一样的数组", + "yes_example": "### 被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"的例子\n<例子1>\nList stringList = new ArrayList<>();\nstringList.add(\"Apple\");\nstringList.add(\"Banana\");\nObject[] objectArray = stringList.toArray(new Object[5]);\n这段代码使用集合转数组的方法的时候使用了toArray(new Object[5]),但是传入的数组类型不一致,所以这个被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"\n", + "no_example": "### 不能被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"的例子\n<例子1>\nList stringList = new ArrayList<>();\nstringList.add(\"Apple\");\nstringList.add(\"Banana\");\nString[] stringArray = stringList.toArray(new String[stringList.size()]);\n这段代码使用集合转数组的方法的时候使用了toArray(new String[stringList.size()]),传入的是类型完全一样的数组,所以这个不能被判定为\"使用集合转数组的方法,必须使用集合的toArray(T[]array),传入的是类型完全一样的数组,大小就是list.size()\"\n" + }, + { + "id": 19, + "text": "禁止在 equals()中使用 NULL或者null 做比较", + "language": "java", + "detail": "缺陷类型:禁止在 equals()中使用 NULL或者null 做比较;对应Fixer:EqualsNullFixer;修复方案:使用Object的判空函数 做比较", + "yes_example": "### 被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"的例子\n<例子1>\nif (\"test\".equals(null)) {\n\tSystem.out.println(\"test\");\n}这段代码中if条件中的代码\"test\".equals(null)使用equals()函数与null进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子2>\nif (!rangeValues[1].equals(\"null\")) {\n\tmaxValue = new BigDecimal(rangeValues[1]);\n}这段代码中if条件中的代码!rangeValues[1].equals(\"null\")使用equals()函数与Nnull进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子3>\nString str1 = \"example\";\nif (str1.equals(\"null\")) {\n System.out.println(\"str1 is null\");\n}这段代码中if条件中的代码str1.equals(null)使用equals()函数与null进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子4>\nString str3 = \"example\";\nif (str3 != null && str3.equals(\"null\")) {\n System.out.println(\"str3 is null\");\n}这段代码中if条件中的代码str3.equals(\"null\")使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子5>\nInteger num1 = 10;\nif (num1.equals(null)) {\n System.out.println(\"num1 is null\");\n}这段代码中if条件中的代码num1.equals(null)使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n\n\n<例子6>\nObject obj = new Object();\nif (obj.equals(null)) {\n System.out.println(\"obj is null\");\n}这段代码中if条件中的代码obj.equals(null)使用equals()函数与\"null\"进行了比较,所以这个被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n", + "no_example": "### 不能被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"的例子\n<例子1>\na = \"test\";\nif (a.equals(\"test\")) {\n\tSystem.out.println(\"test\");\n}这段代码中if条件中的代码a.equals(\"test\")使用equals()函数与\"test\"进行了比较,所以这个不能被判定为\"禁止在 equals()中使用 NULL或者null 做比较\"\n" + }, + { + "id": 20, + "text": "switch 语句块不能为空", + "language": "java", + "detail": "缺陷类型:switch 语句块不能为空;对应Fixer:EmptySwitchStatementsFix;修复方案:删除整个空 switch 语句块", + "yes_example": "### 被判定为\"switch 语句块不能为空\"的例子\n<例子1>\nswitch (number) {\n\t\n}这段代码是一个switch语句块,但是里面没有内容,所以这个被判定为\"switch 语句块不能为空\"\n\n\n<例子2>\nswitch (number) {\n\t// 这是一个switch语句块\n}这段代码是一个switch语句块,里面虽然有内容,但是内容仅仅是注释内容,没有实际的逻辑,所以这个被判定为\"switch 语句块不能为空\"\n", + "no_example": "### 不能被判定为\"switch 语句块不能为空\"的例子\n<例子1>\nswitch (number) {\n\tcase 1:\n\t\tSystem.out.println(\"Number one\");\n\t\tbreak;\n\tdefault:\n\t\tSystem.out.println(\"This is the default block, which is incorrectly placed here.\");\n\t\tbreak;\n}这段代码是一个switch语句块,里面有内容,而且内容里有非注释的代码,有实际的逻辑,所以这个不能被判定为\"switch 语句块不能为空\"\n" + }, + { + "id": 21, + "text": "变量/方法/类 命名,要有效清晰表示对应的实际含义", + "language": "java", + "detail": "缺陷类型:变量/方法/类 命名,要有效清晰表示对应的实际含义;修复方案:修改成合适的变量/方法/类名,有效表示对应的实体含义", + "yes_example": "### 被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"的例子\n<例子1>\nint a = 1;\nif (a == 1) {\n\treturn a;\n}这段代码中的变量a的命名无法从命名中理解a代表什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n\n\n<例子2>\nStringBuilder sb = new StringBuilder();\nsb.append(\"{!\").append(tag).append(\"=\").append(tagField);\n这段代码中的变量sb的命名无法从命名中理解a代表什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n\n\n<例子3>\nPage findAll(Pageable pageable);\n这段代码findAll是一个interface声明,接口名findAll无法清晰的理解这个接口要做什么,所以这个被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n", + "no_example": "### 不能被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"的例子\n<例子1>\nint persionNum = 5;\nif (persionNum > 3) {\n\treturn True;\n}这段代码中的变量persionNum的命名可以比较清楚知道persionNum代表人员的数量,所以这个不能被判定为\"变量/方法/类 命名,要有效清晰表示对应的实际含义\"\n" + }, + { + "id": 22, + "text": "判断逻辑应简洁,不能有重复或者无意义的判断", + "language": "java", + "detail": "缺陷类型:判断逻辑应简洁,不能有重复或者无意义的判断;修复方案:简化或删除一些重复的,无意义的判断逻辑", + "yes_example": "### 被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n<例子1>\nif (task == null) {\n\ttask = 1\n\tif (task != null) {\n\t\tInteger ok = 0;\n\t\tif (task == 1) {\n\t\t\tok=1;\n\t\t}\n\t\tif (ok == 0) {\n\t\t\ttask = null;\n\t\t}\n\t}\n}这段代码中的关于变量ok的判断逻辑不够简洁,变量ok其实可以被去掉进行逻辑简化,可以被简化为\nif (task == null) {\n\ttask = 1\n\tif (task != null) {\n\t\tif (task == 1) {\n\t\t task = null;\n\t\t}\n\t}\n},所以这个被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n\n\n<例子2>\nif (!(a == 0) && a == 1 || a == 2){\n\treturn True;\n}这段代码的if判断逻辑过于复杂,可简化为if (0\n\n<例子3>\na = 1;\nif (a > 1){\n\treturn True;\n}这段代码的变量a是确定的值1,这样就不会出现a > 1,所以if的判断无意义,所以这个被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n", + "no_example": "### 不能被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n<例子1>\na = 1;\nb = 2;\nif (0 < a ≤ 2){\n\treturn a + b;\n}这段代码的判断条件比较简洁明了,无重复的判断,所以这个不能被判定为\"判断逻辑应简洁,不能有重复或者无意义的判断\"\n" + }, + { + "id": 23, + "text": "代码结构冗余,避免重复代码", + "language": "java", + "detail": "缺陷类型:代码结构冗余,避免重复代码;修复方案:忽略", + "yes_example": "### 被判定为\"代码结构冗余,避免重复代码\"的例子\n<例子1>\npublic void trigger(String executionId, Map processVariables) {\n commandExecutor.execute(new TriggerCmd(executionId, processVariables));\n}\npublic void trigger(String executionId, Map processVariables, Map transientVariables) {\n\tcommandExecutor.execute(new TriggerCmd(executionId, processVariables, transientVariables)); \n}这段代码中的2个trigger存在代码都是触发器的逻辑,存在重复,可以合并成1个函数,所以这个被判定为\"代码结构冗余,避免重复代码\"\n\n\n<例子2>\npublic int sum(int a, int b){\n\treturn a + b;\n}\npublic int merge(int a, int b){\n\treturn a + b;\n}这段代码中的2个函数sum和merge的逻辑是一样的,可以合并成1个函数,所以这个被判定为\"代码结构冗余,避免重复代码\"\n", + "no_example": "### 不能被判定为\"代码结构冗余,避免重复代码\"的例子\n<例子1>\npublic int append(int a, int b){\n\treturn a + b;\n}\npublic int add(int a, int b){\n\treturn (a + b) - b;\n}这段代码中的2个函数sum和add的代码结构看上去差不多,但是具体的处理逻辑是不一样的,所以这个不能被判定为\"代码结构冗余,避免重复代码\"\n" + }, + { + "id": 24, + "text": "不能有多余的分号", + "detail": "缺陷类型:多余的分号;修复方案:删除多余的分号", + "yes_example": "### 被判定为\"不能有多余的分号\"的例子\n<例子1>\npublic void trigger(String executionId, Map processVariables) {\n commandExecutor.execute(new TriggerCmd(executionId, processVariables));\n}\n;\na = 1;\nb = 2;\nsum = a + b;\n这段代码中包含一个多余的分号\";\",所以这个被判定为\"不能有多余的分号\"\n", + "no_example": "### 不能被判定为\"不能有多余的分号\"的例子\n<例子1>\nwhile (True) {\n\ta = a + 1;\n\tbreak;\n}这段代码每个分号都是必须要的,所以这个能被判定为\"不能有多余的分号\"\n" + }, + { + "id": 25, + "text": "非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized", + "detail": "缺陷类型:非线程安全的 SimpleDateFormat 使用;修复方案:在函数或代码块级别加上synchronized修饰 或 使用其他线程安全的方式", + "yes_example": "### 被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"的例子\n<例子1>\npublic void formatDate(Date date) {\n\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");\n\tSystem.out.println(\"Formatted date: \" + sdf.format(date));\n}这段代码中的函数formatDate在未使用synchronized同步修饰的情况下使用了SimpleDateFormat,这是线程不安全的,所以这个被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"\n", + "no_example": "### 不能被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"的例子\n<例子1>\npublic synchronized void formatDate(Date date) {\n\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");\n\tSystem.out.println(\"Formatted date: \" + sdf.format(date));\n}这段代码是在synchronized同步块对函数'formatDate'进行保护,保证了线程安全,所以这个不能被判定为\"非线程安全的 SimpleDateFormat 使用,必须在函数或代码块级别使用synchronized\"\n" + }, + { + "id": 26, + "text": "类名使用驼峰式UpperCamelCase风格, 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格", + "detail": "缺陷类型:命名规范;修复方案:类名使用UpperCamelCase风格,方法名、参数名、成员变量、局部变量使用lowerCamelCase风格。", + "language": "Java", + "yes_example": "### 被判定为命名规范的例子\n<例子1>\npublic class myClass {\n private int MyVariable;\n public void MyMethod() {}\n}\n这段代码中的类名、成员变量和方法名没有遵循驼峰命名法,所以被判定为命名规范问题。\n", + "no_example": "### 不能被判定为命名规范的例子\n<例子1>\npublic class MyClass {\n private int myVariable;\n public void myMethod() {}\n}\n这段代码中的类名、成员变量和方法名都遵循了驼峰命名法,所以不能被判定为命名规范问题。\n" + }, + { + "id": 27, + "text": "抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾,测试类命名以它要测试的类的名称开始,以 Test 结尾", + "detail": "缺陷类型:命名规范;修复方案:抽象类命名使用 Abstract 或 Base 开头,异常类命名使用 Exception 结尾,测试类命名以它要测试的类的名称开始,以 Test 结尾。", + "language": "Java", + "yes_example": "### 被判定为命名规范的例子\n<例子1>\npublic class MyAbstractClass {}\npublic class MyExceptionClass {}\npublic class TestMyClass {}\n这段代码中的抽象类、异常类和测试类的命名不符合规范,所以被判定为命名规范问题。\n", + "no_example": "### 不能被判定为命名规范的例子\n<例子1>\npublic abstract class AbstractMyClass {}\npublic class MyCustomException extends Exception {}\npublic class MyClassTest {}\n这段代码中的抽象类、异常类和测试类的命名都符合规范,所以不能被判定为命名规范问题。\n" + }, + { + "id": 28, + "text": "POJO 类中的任何布尔类型的变量,都不要加 is 前缀", + "detail": "缺陷类型:命名规范;修复方案:POJO 类中的布尔类型变量不要加 is 前缀。", + "language": "Java", + "yes_example": "### 被判定为命名规范的例子\n<例子1>\npublic class User {\n private boolean isActive;\n}\n这段代码中的布尔类型变量加了 is 前缀,所以被判定为命名规范问题。\n", + "no_example": "### 不能被判定为命名规范的例子\n<例子1>\npublic class User {\n private boolean active;\n}\n这段代码中的布尔类型变量没有加 is 前缀,所以不能被判定为命名规范问题。\n" + }, + { + "id": 29, + "text": "杜绝完全不规范的英文缩写,避免望文不知义。", + "detail": "缺陷类型:命名规范;修复方案:避免使用不规范的英文缩写,确保代码可读性。", + "language": "Java", + "yes_example": "### 被判定为命名规范的例子\n<例子1>\npublic class CfgMgr {\n private int cnt;\n}\n这段代码中的类名和变量名使用了不规范的英文缩写,所以被判定为命名规范问题。\n", + "no_example": "### 不能被判定为命名规范的例子\n<例子1>\npublic class ConfigManager {\n private int count;\n}\n这段代码中的类名和变量名没有使用不规范的英文缩写,所以不能被判定为命名规范问题。\n" + }, + { + "id": 30, + "text": "不允许任何魔法值(即未经预先定义的常量)直接出现在代码中", + "detail": "缺陷类型:代码规范;修复方案:将魔法值定义为常量。", + "language": "Java", + "yes_example": "### 被判定为代码规范的例子\n<例子1>\npublic class MagicNumberExample {\n public void calculate() {\n int result = 42 * 2;\n }\n}\n这段代码中直接使用了魔法值 42,所以被判定为代码规范问题。\n", + "no_example": "### 不能被判定为代码规范的例子\n<例子1>\npublic class MagicNumberExample {\n private static final int MULTIPLIER = 42;\n public void calculate() {\n int result = MULTIPLIER * 2;\n }\n}\n这段代码中将魔法值定义为了常量,所以不能被判定为代码规范问题。\n" + }, + { + "id": 31, + "text": "long 或 Long 赋值时,数值后使用大写 L,不能是小写 l,浮点数类型的数值后缀统一为大写的 D 或 F", + "detail": "缺陷类型:代码规范;修复方案:long 或 Long 赋值时使用大写 L,浮点数类型的数值后缀使用大写的 D 或 F。", + "language": "Java", + "yes_example": "### 被判定为代码规范的例子\n<例子1>\npublic class NumberExample {\n private long value = 1000l;\n private double pi = 3.14d;\n}\n这段代码中使用了小写的 l 和 d,所以被判定为代码规范问题。\n", + "no_example": "### 不能被判定为代码规范的例子\n<例子1>\npublic class NumberExample {\n private long value = 1000L;\n private double pi = 3.14D;\n}\n这段代码中使用了大写的 L 和 D,所以不能被判定为代码规范问题。\n" + }, + { + "id": 32, + "text": "如果大括号内为空,简洁地写成{}即可,大括号中间无需换行和空格;如果是非空代码块,则:1)左大括号前不换行。2)左大括号后换行。3)右大括号前换行。4)右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。", + "detail": "缺陷类型:代码格式;修复方案:遵循大括号的使用规范。", + "language": "Java", + "yes_example": "### 被判定为代码格式的例子\n<例子1>\npublic class BracketExample{public void method(){\n if (true) {\n }}\n}\n这段代码中的大括号使用不符合规范,所以被判定为代码格式问题。\n", + "no_example": "### 不能被判定为代码格式的例子\n<例子1>\npublic class BracketExample {\n public void method() {\n if (true) {\n // do something\n }\n }\n}\n这段代码中的大括号使用符合规范,所以不能被判定为代码格式问题。\n" + }, + { + "id": 33, + "text": "左小括号和右边相邻字符之间不需要空格;右小括号和左边相邻字符之间也不需要空格;而左大括号前需要加空格。", + "detail": "缺陷类型:代码格式;修复方案:遵循括号和空格的使用规范。", + "language": "Java", + "yes_example": "### 被判定为代码格式的例子\n<例子1>\npublic class SpaceExample {\n public void method (){\n }\n}\n这段代码中的括号和空格使用不符合规范,所以被判定为代码格式问题。\n", + "no_example": "### 不能被判定为代码格式的例子\n<例子1>\npublic class SpaceExample {\n public void method() {}\n}\n这段代码中的括号和空格使用符合规范,所以不能被判定为代码格式问题。\n" + }, + { + "id": 34, + "text": "if / for / while / switch / do 等保留字与左右括号之间都必须加空格。", + "detail": "缺陷类型:代码格式;修复方案:保留字与左右括号之间加空格。", + "language": "Java", + "yes_example": "### 被判定为代码格式的例子\n<例子1>\npublic class KeywordExample {\n public void method() {\n if(true) {\n }\n }\n}\n这段代码中的 if 关键字与括号之间没有空格,所以被判定为代码格式问题。\n", + "no_example": "### 不能被判定为代码格式的例子\n<例子1>\npublic class KeywordExample {\n public void method() {\n if (true) {\n }\n }\n}\n这段代码中的 if 关键字与括号之间有空格,所以不能被判定为代码格式问题。\n" + }, + { + "id": 35, + "text": "所有整型包装类对象之间值的比较,全部使用 equals 方法比较", + "detail": "缺陷类型:代码规范;修复方案:整型包装类对象之间的值比较使用 equals 方法。", + "language": "Java", + "yes_example": "### 被判定为代码规范的例子\n<例子1>\npublic class IntegerComparison {\n public void compare() {\n Integer a = 100;\n Integer b = 100;\n if (a == b) {\n }\n }\n}\n这段代码中使用了 == 比较整型包装类对象,所以被判定为代码规范问题。\n", + "no_example": "### 不能被判定为代码规范的例子\n<例子1>\npublic class IntegerComparison {\n public void compare() {\n Integer a = 100;\n Integer b = 100;\n if (a.equals(b)) {\n }\n }\n}\n这段代码中使用了 equals 方法比较整型包装类对象,所以不能被判定为代码规范问题。\n" + }, + { + "id": 36, + "text": "BigDecimal 的等值比较应使用 compareTo() 方法,而不是 equals() 方法。", + "detail": "缺陷类型:BigDecimal 等值比较错误;修复方案:使用 compareTo() 方法进行比较。", + "language": "Java", + "yes_example": "### 被判定为\"BigDecimal 的等值比较应使用 compareTo() 方法,而不是 equals() 方法\"的例子\n<例子1>\nBigDecimal a = new BigDecimal(\"1.0\");\nBigDecimal b = new BigDecimal(\"1.00\");\nif (a.equals(b)) {\n // 这段代码会返回 false,因为 equals() 方法会比较精度\n}\n", + "no_example": "### 不能被判定为\"BigDecimal 的等值比较应使用 compareTo() 方法,而不是 equals() 方法\"的例子\n<例子1>\nBigDecimal a = new BigDecimal(\"1.0\");\nBigDecimal b = new BigDecimal(\"1.00\");\nif (a.compareTo(b) == 0) {\n // 这段代码会返回 true,因为 compareTo() 方法只比较数值\n}\n" + }, + { + "id": 37, + "text": "禁止在 POJO 类中,同时存在对应属性 xxx 的 isXxx() 和 getXxx() 方法。", + "detail": "缺陷类型:POJO 类中存在重复的 getter 方法;修复方案:确保只存在一个 getter 方法。", + "language": "Java", + "yes_example": "### 被判定为\"禁止在 POJO 类中,同时存在对应属性 xxx 的 isXxx() 和 getXxx() 方法\"的例子\n<例子1>\npublic class User {\n private boolean active;\n public boolean isActive() {\n return active;\n }\n public boolean getActive() {\n return active;\n }\n}\n", + "no_example": "### 不能被判定为\"禁止在 POJO 类中,同时存在对应属性 xxx 的 isXxx() 和 getXxx() 方法\"的例子\n<例子1>\npublic class User {\n private int age;\n public int getAge() {\n return age;\n }\n}\n" + }, + { + "id": 38, + "text": "日期格式化时,传入 pattern 中表示年份统一使用小写的 y。", + "detail": "缺陷类型:日期格式化错误;修复方案:使用小写的 y 表示年份。", + "language": "Java", + "yes_example": "### 被判定为\"日期格式化时,传入 pattern 中表示年份统一使用小写的 y\"的例子\n<例子1>\nSimpleDateFormat sdf = new SimpleDateFormat(\"YYYY-MM-dd\");\n", + "no_example": "### 不能被判定为\"日期格式化时,传入 pattern 中表示年份统一使用小写的 y\"的例子\n<例子1>\nSimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");\n" + }, + { + "id": 39, + "text": "不允许在程序任何地方中使用:1)java.sql.Date 2)java.sql.Time 3)java.sql.Timestamp。", + "detail": "缺陷类型:使用了 java.sql 包中的日期类;修复方案:使用 java.time 包中的日期类。", + "language": "Java", + "yes_example": "### 被判定为\"不允许在程序任何地方中使用:1)java.sql.Date 2)java.sql.Time 3)java.sql.Timestamp\"的例子\n<例子1>\njava.sql.Date sqlDate = new java.sql.Date(System.currentTimeMillis());\n", + "no_example": "### 不能被判定为\"不允许在程序任何地方中使用:1)java.sql.Date 2)java.sql.Time 3)java.sql.Timestamp\"的例子\n<例子1>\njava.time.LocalDate localDate = java.time.LocalDate.now();\n" + }, + { + "id": 40, + "text": "判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size() == 0 的方式。", + "detail": "缺陷类型:集合判空方式错误;修复方案:使用 isEmpty() 方法。", + "language": "Java", + "yes_example": "### 被判定为\"判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size() == 0 的方式\"的例子\n<例子1>\nList list = new ArrayList<>();\nif (list.size() == 0) {\n // 判空逻辑\n}\n", + "no_example": "### 不能被判定为\"判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size() == 0 的方式\"的例子\n<例子1>\nList list = new ArrayList<>();\nif (list.isEmpty()) {\n // 判空逻辑\n}\n" + }, + { + "id": 41, + "text": "只要覆写 equals,就必须覆写 hashCode。", + "detail": "缺陷类型:未覆写 hashCode 方法;修复方案:同时覆写 equals 和 hashCode 方法。", + "language": "Java", + "yes_example": "### 被判定为\"只要覆写 equals,就必须覆写 hashCode\"的例子\n<例子1>\npublic class User {\n private String name;\n @Override\n public boolean equals(Object o) {\n if (this == o) return true;\n if (o == null || getClass() != o.getClass()) return false;\n User user = (User) o;\n return Objects.equals(name, user.name);\n }\n}\n", + "no_example": "### 不能被判定为\"只要覆写 equals,就必须覆写 hashCode\"的例子\n<例子1>\npublic class User {\n private String name;\n @Override\n public boolean equals(Object o) {\n if (this == o) return true;\n if (o == null || getClass() != o.getClass()) return false;\n User user = (User) o;\n return Objects.equals(name, user.name);\n }\n @Override\n public int hashCode() {\n return Objects.hash(name);\n }\n}\n" + }, + { + "id": 42, + "text": "使用 Map 的方法 keySet() / values() / entrySet() 返回集合对象时,不可以对其进行添加元素操作,否则会抛出 UnsupportedOperationException 异常。", + "detail": "缺陷类型:对 Map 的 keySet() / values() / entrySet() 返回的集合进行添加操作;修复方案:避免对这些集合进行添加操作。", + "language": "Java", + "yes_example": "### 被判定为\"使用 Map 的方法 keySet() / values() / entrySet() 返回集合对象时,不可以对其进行添加元素操作,否则会抛出 UnsupportedOperationException 异常\"的例子\n<例子1>\nMap map = new HashMap<>();\nmap.put(\"key1\", \"value1\");\nSet keys = map.keySet();\nkeys.add(\"key2\");\n", + "no_example": "### 不能被判定为\"使用 Map 的方法 keySet() / values() / entrySet() 返回集合对象时,不可以对其进行添加元素操作,否则会抛出 UnsupportedOperationException 异常\"的例子\n<例子1>\nMap map = new HashMap<>();\nmap.put(\"key1\", \"value1\");\nSet keys = map.keySet();\n// 不进行添加操作\n" + }, + { + "id": 43, + "text": "不要在 foreach 循环里进行元素的 remove / add 操作。remove 元素请使用 iterator 方式,如果并发操作,需要对 iterator", + "detail": "缺陷类型:在 foreach 循环中进行元素的 remove / add 操作;修复方案:使用 iterator 进行元素的 remove 操作。", + "language": "Java", + "yes_example": "### 被判定为\"不要在 foreach 循环里进行元素的 remove / add 操作。remove 元素请使用 iterator 方式,如果并发操作,需要对 iterator\"的例子\n<例子1>\nList list = new ArrayList<>(Arrays.asList(\"a\", \"b\", \"c\"));\nfor (String s : list) {\n if (s.equals(\"a\")) {\n list.remove(s);\n }\n}\n", + "no_example": "### 不能被判定为\"不要在 foreach 循环里进行元素的 remove / add 操作。remove 元素请使用 iterator 方式,如果并发操作,需要对 iterator\"的例子\n<例子1>\nList list = new ArrayList<>(Arrays.asList(\"a\", \"b\", \"c\"));\nIterator iterator = list.iterator();\nwhile (iterator.hasNext()) {\n String s = iterator.next();\n if (s.equals(\"a\")) {\n iterator.remove();\n }\n}\n" + }, + { + "id": 44, + "text": "类、类属性、类方法的注释必须使用 Javadoc 规范,使用 /** 内容 */ 格式,不得使用 // xxx方式。", + "detail": "缺陷类型:注释不符合 Javadoc 规范;修复方案:使用 Javadoc 规范的注释格式。", + "language": "Java", + "yes_example": "### 被判定为\"类、类属性、类方法的注释必须使用 Javadoc 规范,使用 /** 内容 */ 格式,不得使用 // xxx方式\"的例子\n<例子1>\npublic class Example {\n // 这是一个类注释\n private String name;\n // 这是一个属性注释\n public String getName() {\n return name;\n }\n // 这是一个方法注释\n}\n", + "no_example": "### 不能被判定为\"类、类属性、类方法的注释必须使用 Javadoc 规范,使用 /** 内容 */ 格式,不得使用 // xxx方式\"的例子\n<例子1>\n/**\n * 这是一个类注释\n */\npublic class Example {\n /**\n * 这是一个属性注释\n */\n private String name;\n /**\n * 这是一个方法注释\n */\n public String getName() {\n return name;\n }\n}\n" + }, + { + "id": 45, + "text": "所有的抽象方法(包括接口中的方法)必须要用 Javadoc 注释", + "detail": "缺陷类型:缺少 Javadoc 注释;修复方案:为所有的抽象方法(包括接口中的方法)添加 Javadoc 注释,除了返回值、参数异常说明外,还必须指出该方法做什么事情,实现什么功能。", + "language": "Java", + "yes_example": "### 被判定为缺少 Javadoc 注释的例子\n<例子1>\npublic interface MyInterface {\n void doSomething();\n}\n这段代码中的接口方法 doSomething() 没有 Javadoc 注释,所以被判定为缺少 Javadoc 注释。\n", + "no_example": "### 不能被判定为缺少 Javadoc 注释的例子\n<例子1>\n/**\n * 执行某个操作\n * @param param 参数说明\n * @return 返回值说明\n * @throws Exception 异常说明\n */\npublic interface MyInterface {\n void doSomething(String param) throws Exception;\n}\n这段代码中的接口方法 doSomething() 有完整的 Javadoc 注释,所以不能被判定为缺少 Javadoc 注释。\n" + }, + { + "id": 46, + "text": "方法内部单行注释和多行注释的使用规范", + "detail": "缺陷类型:注释使用不规范;修复方案:方法内部单行注释,在被注释语句上方另起一行,使用 // 注释。方法内部多行注释使用 /* */注释,注意与代码对齐。", + "language": "Java", + "yes_example": "### 被判定为注释使用不规范的例子\n<例子1>\npublic void exampleMethod() {\n int a = 1; // 初始化变量a\n int b = 2; /* 初始化变量b */\n}\n这段代码中的单行注释和多行注释没有按照规范使用,所以被判定为注释使用不规范。\n", + "no_example": "### 不能被判定为注释使用不规范的例子\n<例子1>\npublic void exampleMethod() {\n // 初始化变量a\n int a = 1;\n /*\n * 初始化变量b\n */\n int b = 2;\n}\n这段代码中的单行注释和多行注释按照规范使用,所以不能被判定为注释使用不规范。\n" + }, + { + "id": 47, + "text": "所有的枚举类型字段必须要有注释", + "detail": "缺陷类型:枚举类型字段缺少注释;修复方案:为所有的枚举类型字段添加注释,说明每个数据项的用途。", + "language": "Java", + "yes_example": "### 被判定为枚举类型字段缺少注释的例子\n<例子1>\npublic enum Status {\n ACTIVE,\n INACTIVE\n}\n这段代码中的枚举类型字段没有注释,所以被判定为枚举类型字段缺少注释。\n", + "no_example": "### 不能被判定为枚举类型字段缺少注释的例子\n<例子1>\npublic enum Status {\n /**\n * 活跃状态\n */\n ACTIVE,\n /**\n * 非活跃状态\n */\n INACTIVE\n}\n这段代码中的枚举类型字段有注释,所以不能被判定为枚举类型字段缺少注释。\n" + }, + { + "id": 48, + "text": "finally 块必须对资源对象、流对象进行关闭", + "detail": "缺陷类型:资源对象、流对象未在 finally 块中关闭;修复方案:在 finally 块中对资源对象、流对象进行关闭,有异常也要做 try-catch。", + "language": "Java", + "yes_example": "### 被判定为资源对象、流对象未在 finally 块中关闭的例子\n<例子1>\npublic void readFile() {\n FileInputStream fis = null;\n try {\n fis = new FileInputStream(\"file.txt\");\n // 读取文件内容\n } catch (IOException e) {\n e.printStackTrace();\n }\n}\n这段代码中的 FileInputStream 对象没有在 finally 块中关闭,所以被判定为资源对象、流对象未在 finally 块中关闭。\n", + "no_example": "### 不能被判定为资源对象、流对象未在 finally 块中关闭的例子\n<例子1>\npublic void readFile() {\n FileInputStream fis = null;\n try {\n fis = new FileInputStream(\"file.txt\");\n // 读取文件内容\n } catch (IOException e) {\n e.printStackTrace();\n } finally {\n if (fis != null) {\n try {\n fis.close();\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n }\n}\n这段代码中的 FileInputStream 对象在 finally 块中关闭,所以不能被判定为资源对象、流对象未在 finally 块中关闭。\n" + }, + { + "id": 49, + "text": "常量命名应该全部大写,单词间用下划线隔开", + "detail": "缺陷类型:常量命名不规范;修复方案:常量命名应该全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。", + "language": "Java", + "yes_example": "### 被判定为\"常量命名应该全部大写,单词间用下划线隔开\"的例子\n<例子1>\npublic static final int maxCount = 100;\n", + "no_example": "### 不能被判定为\"常量命名应该全部大写,单词间用下划线隔开\"的例子\n<例子1>\npublic static final int MAX_COUNT = 100;\n" + }, + { + "id": 50, + "text": "任何二目、三目运算符的左右两边都需要加一个空格", + "detail": "缺陷类型:运算符两边缺少空格;修复方案:任何二目、三目运算符的左右两边都需要加一个空格。", + "language": "Java", + "yes_example": "### 被判定为\"任何二目、三目运算符的左右两边都需要加一个空格\"的例子\n<例子1>\nint a=b+c;\n", + "no_example": "### 不能被判定为\"任何二目、三目运算符的左右两边都需要加一个空格\"的例子\n<例子1>\nint a = b + c;\n" + }, + { + "id": 51, + "text": "在进行类型强制转换时,右括号与强制转换值之间不需要任何空格隔开", + "detail": "缺陷类型:类型强制转换时空格使用不当;修复方案:在进行类型强制转换时,右括号与强制转换值之间不需要任何空格隔开。", + "language": "Java", + "yes_example": "### 被判定为\"在进行类型强制转换时,右括号与强制转换值之间不需要任何空格隔开\"的例子\n<例子1>\nint a = (int) 3.5;\n", + "no_example": "### 不能被判定为\"在进行类型强制转换时,右括号与强制转换值之间不需要任何空格隔开\"的例子\n<例子1>\nint a = (int)3.5;\n" + }, + { + "id": 52, + "text": "方法参数在定义和传入时,多个参数逗号后面必须加空格", + "detail": "缺陷类型:方法参数逗号后缺少空格;修复方案:方法参数在定义和传入时,多个参数逗号后面必须加空格。", + "language": "Java", + "yes_example": "### 被判定为\"方法参数在定义和传入时,多个参数逗号后面必须加空格\"的例子\n<例子1>\npublic void exampleMethod(int a,int b,int c) {}\n", + "no_example": "### 不能被判定为\"方法参数在定义和传入时,多个参数逗号后面必须加空格\"的例子\n<例子1>\npublic void exampleMethod(int a, int b, int c) {}\n" + }, + { + "id": 53, + "text": "禁止使用构造方法 BigDecimal(double) 的方式把 double 值转化为 BigDecimal 对象", + "detail": "缺陷类型:使用不推荐的 BigDecimal 构造方法;修复方案:禁止使用构造方法 BigDecimal(double) 的方式把 double 值转化为 BigDecimal 对象,推荐使用 BigDecimal 的 valueOf 方法。", + "language": "Java", + "yes_example": "### 被判定为\"禁止使用构造方法 BigDecimal(double) 的方式把 double 值转化为 BigDecimal 对象\"的例子\n<例子1>\nBigDecimal bd = new BigDecimal(0.1);\n", + "no_example": "### 不能被判定为\"禁止使用构造方法 BigDecimal(double) 的方式把 double 值转化为 BigDecimal 对象\"的例子\n<例子1>\nBigDecimal bd = BigDecimal.valueOf(0.1);\n" + }, + { + "id": 1, + "text": "避免使用from import *", + "detail": "缺陷类型:避免使用from import *,导入所有内容会造成命名冲突;修复方案:每个使用到的子依赖需分别导入。", + "language": "Python", + "yes_example": "### 被判定为'避免使用from import *'的例子\n<例子1>\nfrom math import *\n", + "no_example": "### 不能被判定为'避免使用from import *'的例子\n<例子1>\nfrom math import sqrt, pi\n" + }, + { + "id": 2, + "text": "避免使用__import__()函数动态导入模块", + "detail": "缺陷类型:避免使用__import__()函数动态导入模块;修复方案:使用标准的import语句。", + "language": "Python", + "yes_example": "### 被判定为'避免使用__import__()函数动态导入模块'的例子\n<例子1>\nmodule = __import__('math')\n", + "no_example": "### 不能被判定为'避免使用__import__()函数动态导入模块'的例子\n<例子1>\nimport math\n" + }, + { + "id": 3, + "text": "导入语句未按标准库导入、相关第三方导入、本地应用/库特定导入的顺序分组", + "detail": "缺陷类型:导入语句未按标准库导入、相关第三方导入、本地应用/库特定导入的顺序分组;修复方案:按顺序分组导入语句。", + "language": "Python", + "yes_example": "### 被判定为'导入语句未按标准库导入、相关第三方导入、本地应用/库特定导入的顺序分组'的例子\n<例子1>\nimport requests\n\nimport mymodule\n\nimport os\n", + "no_example": "### 不能被判定为'导入语句未按标准库导入、相关第三方导入、本地应用/库特定导入的顺序分组'的例子\n<例子1>\nimport os\nimport requests\n\nimport mymodule\n" + }, + { + "id": 4, + "text": "避免未使用的函数形参", + "detail": "缺陷类型:存在未使用的函数形参;修复方案:移除未使用的函数形参。", + "language": "Python", + "yes_example": "### 被判定为'避免未使用的函数形参'的例子\n<例子1>\ndef func(a, b):\n return a\n", + "no_example": "### 不能被判定为'避免未使用的函数形参'的例子\n<例子1>\ndef func(a):\n return a\n" + }, + { + "id": 5, + "text": "使用is not None来检查一个变量是否不是None", + "detail": "缺陷类型:未使用is not None来检查一个变量是否不是None;修复方案:使用is not None来检查。", + "language": "Python", + "yes_example": "### 被判定为'使用is not None来检查一个变量是否不是None'的例子\n<例子1>\nif variable != None:\n pass\n", + "no_example": "### 不能被判定为'使用is not None来检查一个变量是否不是None'的例子\n<例子1>\nif variable is not None:\n pass\n" + }, + { + "id": 6, + "text": "避免使用==或!=来比较实例的等价性", + "detail": "缺陷类型:使用==或!=来比较实例的等价性;修复方案:应使用equals比较。", + "language": "Python", + "yes_example": "### 被判定为'避免使用==或!=来比较实例的等价性'的例子\n<例子1>\nif obj1 == obj2:\n pass\n", + "no_example": "### 不能被判定为'避免使用==或!=来比较实例的等价性'的例子\n<例子1>\nif obj1.equals(obj2):\n pass\n" + }, + { + "id": 7, + "text": "使用描述性变量名,避免使用单字母变量名", + "detail": "缺陷类型:使用单字母变量名;修复方案:使用描述性变量名。", + "language": "Python", + "yes_example": "### 被判定为'使用描述性变量名,避免使用单字母变量名'的例子\n<例子1>\nx = 10\n", + "no_example": "### 不能被判定为'使用描述性变量名,避免使用单字母变量名'的例子\n<例子1>\ncount = 10\n" + }, + { + "id": 8, + "text": "常量命名使用全大写字母,并用下划线分隔", + "detail": "缺陷类型:常量命名未使用全大写字母或未用下划线分隔;修复方案:常量命名使用全大写字母,并用下划线分隔。", + "language": "Python", + "yes_example": "### 被判定为'常量命名未使用全大写字母,并用下划线分隔'的例子\n<例子1>\npi = 3.14\n", + "no_example": "### 不能被判定为'常量命名未使用全大写字母,并用下划线分隔'的例子\n<例子1>\nPI = 3.14\n" + }, + { + "id": 9, + "text": "类名应该使用驼峰式命名(CamelCase)", + "detail": "缺陷类型:类名未使用驼峰式命名;修复方案:类名使用驼峰式命名。", + "language": "Python", + "yes_example": "### 被判定为'类名未使用驼峰式命名(CamelCase)'的例子\n<例子1>\nclass my_class:\n pass\n", + "no_example": "### 不能被判定为'类名未使用驼峰式命名(CamelCase)'的例子\n<例子1>\nclass MyClass:\n pass\n" + }, + { + "id": 10, + "text": "尽量使用with语句来管理资源", + "detail": "缺陷类型:未使用with语句来管理资源;修复方案:使用with语句来管理资源。", + "language": "Python", + "yes_example": "### 被判定为'未使用with语句来管理资源'的例子\n<例子1>\nfile = open('file.txt', 'r')\ncontent = file.read()\nfile.close()\n", + "no_example": "### 不能被判定为'未使用with语句来管理资源'的例子\n<例子1>\nwith open('file.txt', 'r') as file:\n content = file.read()\n" + }, + { + "id": 11, + "text": "避免使用except:来捕获所有异常,应该指定异常类型", + "detail": "缺陷类型:捕获所有异常;修复方案:指定具体的异常类型。", + "language": "Python", + "yes_example": "### 被判定为'避免使用except:来捕获所有异常,应该指定异常类型'的例子\n<例子1>\ntry:\n # some code\nexcept:\n handle_error()\n这段代码中使用了except:来捕获所有异常,所以这个被判定为'避免使用except:来捕获所有异常,应该指定异常类型'\n", + "no_example": "### 不能被判定为'避免使用except:来捕获所有异常,应该指定异常类型'的例子\n<例子1>\ntry:\n # some code\nexcept ValueError:\n handle_value_error()\n这段代码中指定了具体的异常类型ValueError,所以这个不能被判定为'避免使用except:来捕获所有异常,应该指定异常类型'\n" + }, + { + "id": 12, + "text": "尽量避免手动拼接字符串", + "detail": "缺陷类型:手动拼接字符串;修复方案:使用格式化字符串或join方法。", + "language": "Python", + "yes_example": "### 被判定为'尽量避免手动拼接字符串'的例子\n<例子1>\nname = 'John'\ngreeting = 'Hello, ' + name + '!'\n这段代码中使用了手动拼接字符串,所以这个被判定为'尽量避免手动拼接字符串'\n", + "no_example": "### 不能被判定为'尽量避免手动拼接字符串'的例子\n<例子1>\nname = 'John'\ngreeting = f'Hello, {name}!'\n这段代码中使用了格式化字符串,所以这个不能被判定为'尽量避免手动拼接字符串'\n" + }, + { + "id": 13, + "text": "尽量避免出现魔法字符和数字,声明为常量", + "detail": "缺陷类型:使用魔法字符和数字;修复方案:将其声明为常量。", + "language": "Python", + "yes_example": "### 被判定为'尽量避免出现魔法字符和数字,声明为常量'的例子\n<例子1>\nif status == 1:\n print('Active')\n这段代码中使用了魔法数字1,所以这个被判定为'尽量避免出现魔法字符和数字,声明为常量'\n", + "no_example": "### 不能被判定为'尽量避免出现魔法字符和数字,声明为常量'的例子\n<例子1>\nACTIVE_STATUS = 1\nif status == ACTIVE_STATUS:\n print('Active')\n这段代码中将魔法数字声明为了常量ACTIVE_STATUS,所以这个不能被判定为'尽量避免出现魔法字符和数字,声明为常量'\n" + }, + { + "id": 14, + "text": "boolean变量判断无需显式比较", + "detail": "缺陷类型:显式比较boolean变量;修复方案:直接使用boolean变量进行判断。", + "language": "Python", + "yes_example": "### 被判定为'boolean变量判断无需显式比较'的例子\n<例子1>\nflag = True\nif flag == True:\n print('Flag is true')\n这段代码中对boolean变量进行了显式比较,所以这个被判定为'boolean变量判断无需显式比较'\n", + "no_example": "### 不能被判定为'boolean变量判断无需显式比较'的例子\n<例子1>\nflag = True\nif flag:\n print('Flag is true')\n这段代码中直接使用了boolean变量进行判断,所以这个不能被判定为'boolean变量判断无需显式比较'\n" + }, + { + "id": 15, + "text": "使用isinstance()来检查对象的类型", + "detail": "缺陷类型:使用type()检查对象类型;修复方案:使用isinstance()函数。", + "language": "Python", + "yes_example": "### 被判定为'使用isinstance()来检查对象的类型'的例子\n<例子1>\nif type(obj) == list:\n print('obj is a list')\n这段代码中使用了type()来检查对象类型,所以这个被判定为'使用isinstance()来检查对象的类型'\n", + "no_example": "### 不能被判定为'使用isinstance()来检查对象的类型'的例子\n<例子1>\nif isinstance(obj, list):\n print('obj is a list')\n这段代码中使用了isinstance()来检查对象类型,所以这个不能被判定为'使用isinstance()来检查对象的类型'\n" + }, + { + "id": 16, + "text": "避免使用os.system()来调用外部命令", + "detail": "缺陷类型:使用os.system()调用外部命令;修复方案:使用subprocess模块。", + "language": "Python", + "yes_example": "### 被判定为'避免使用os.system()来调用外部命令'的例子\n<例子1>\nos.system('ls -l')\n这段代码中使用了os.system()来调用外部命令,所以这个被判定为'避免使用os.system()来调用外部命令'\n", + "no_example": "### 不能被判定为'避免使用os.system()来调用外部命令'的例子\n<例子1>\nimport subprocess\nsubprocess.run(['ls', '-l'])\n这段代码中使用了subprocess模块来调用外部命令,所以这个不能被判定为'避免使用os.system()来调用外部命令'\n" + }, + { + "id": 17, + "text": "只使用@property装饰器来创建只读属性,而非修改属性", + "detail": "缺陷类型:使用@property装饰器创建可修改属性;修复方案:只使用@property装饰器创建只读属性。", + "language": "Python", + "yes_example": "### 被判定为'只使用@property装饰器来创建只读属性,而非修改属性'的例子\n<例子1>\nclass MyClass:\n def __init__(self, value):\n self._value = value\n\n @property\n def value(self, new_value):\n self._value = new_value\n这段代码中使用@property装饰器创建了可修改属性,所以这个被判定为'只使用@property装饰器来创建只读属性,而非修改属性'\n", + "no_example": "### 不能被判定为'只使用@property装饰器来创建只读属性,而非修改属性'的例子\n<例子1>\nclass MyClass:\n def __init__(self, value):\n self._value = value\n\n @property\n def value(self):\n return self._value\n这段代码中使用@property装饰器创建了只读属性,所以这个不能被判定为'只使用@property装饰器来创建只读属性,而非修改属性'\n" + }, + { + "id": 18, + "text": "在使用索引或切片时,不要在方括号或冒号内加空格", + "detail": "缺陷类型:在索引或切片的方括号或冒号内加空格;修复方案:去掉方括号或冒号内的空格。", + "language": "Python", + "yes_example": "### 被判定为'在使用索引或切片时,不要在方括号或冒号内加空格'的例子\n<例子1>\nlist = [1, 2, 3, 4]\nsublist = list[ 1 : 3 ]\n这段代码中在索引或切片的方括号或冒号内加了空格,所以这个被判定为'在使用索引或切片时,不要在方括号或冒号内加空格'\n", + "no_example": "### 不能被判定为'在使用索引或切片时,不要在方括号或冒号内加空格'的例子\n<例子1>\nlist = [1, 2, 3, 4]\nsublist = list[1:3]\n这段代码中在索引或切片的方括号或冒号内没有加空格,所以这个不能被判定为'在使用索引或切片时,不要在方括号或冒号内加空格'\n" + }, + { + "id": 19, + "text": "在逗号、分号或冒号前不要加空格,但在它们之后要加空格", + "detail": "缺陷类型:在逗号、分号或冒号前加空格或在它们之后不加空格;修复方案:在逗号、分号或冒号前不要加空格,但在它们之后要加空格。", + "language": "Python", + "yes_example": "### 被判定为'在逗号、分号或冒号前不要加空格,但在它们之后要加空格'的例子\n<例子1>\nif x == 4 : print(x , y)\n这段代码中在逗号、分号或冒号前加了空格或在它们之后没有加空格,所以这个被判定为'在逗号、分号或冒号前不要加空格,但在它们之后要加空格'\n", + "no_example": "### 不能被判定为'在逗号、分号或冒号前不要加空格,但在它们之后要加空格'的例子\n<例子1>\nif x == 4: print(x, y)\n这段代码中在逗号、分号或冒号前没有加空格且在它们之后加了空格,所以这个不能被判定为'在逗号、分号或冒号前不要加空格,但在它们之后要加空格'\n" + }, + { + "id": 20, + "text": "对于二元操作符,两边都应有空格,例如 a = b + 1", + "detail": "缺陷类型:二元操作符两边没有空格;修复方案:在二元操作符两边加空格。", + "language": "Python", + "yes_example": "### 被判定为'对于二元操作符,两边都应有空格,例如 a = b + 1'的例子\n<例子1>\na=b+1\n这段代码中二元操作符两边没有空格,所以这个被判定为'对于二元操作符,两边都应有空格,例如 a = b + 1'\n", + "no_example": "### 不能被判定为'对于二元操作符,两边都应有空格,例如 a = b + 1'的例子\n<例子1>\na = b + 1\n这段代码中二元操作符两边有空格,所以这个不能被判定为'对于二元操作符,两边都应有空格,例如 a = b + 1'\n" + }, + { + "id": 21, + "text": "避免使用Python关键字作为变量名或函数名", + "detail": "缺陷类型:使用Python关键字作为变量名或函数名;修复方案:使用非关键字的名称。", + "language": "Python", + "yes_example": "### 被判定为'避免使用Python关键字作为变量名或函数名'的例子\n<例子1>\ndef class():\n pass\n\n<例子2>\nfor = 5\n", + "no_example": "### 不能被判定为'避免使用Python关键字作为变量名或函数名'的例子\n<例子1>\ndef my_function():\n pass\n\n<例子2>\nnumber = 5\n" + }, + { + "id": 22, + "text": "避免使用特殊字符作为变量名,例如$或@", + "detail": "缺陷类型:使用特殊字符作为变量名;修复方案:使用合法的变量名。", + "language": "Python", + "yes_example": "### 被判定为'避免使用特殊字符作为变量名,例如$或@'的例子\n<例子1>\nmy$var = 10\n\n<例子2>\n@var = 20\n", + "no_example": "### 不能被判定为'避免使用特殊字符作为变量名,例如$或@'的例子\n<例子1>\nmy_var = 10\n\n<例子2>\nvar_20 = 20\n" + }, + { + "id": 23, + "text": "避免使用raise来重新抛出当前的异常,这会丢失原始的栈跟踪", + "detail": "缺陷类型:使用raise重新抛出当前异常;修复方案:使用raise ... from ...语法。", + "language": "Python", + "yes_example": "### 被判定为'避免使用raise来重新抛出当前的异常,这会丢失原始的栈跟踪'的例子\n<例子1>\ntry:\n 1 / 0\nexcept ZeroDivisionError:\n raise\n", + "no_example": "### 不能被判定为'避免使用raise来重新抛出当前的异常,这会丢失原始的栈跟踪'的例子\n<例子1>\ntry:\n 1 / 0\nexcept ZeroDivisionError as e:\n raise RuntimeError('Error occurred') from e\n" + }, + { + "id": 24, + "text": "避免在except块中使用pass,这会捕获并忽略异常", + "detail": "缺陷类型:在except块中使用pass;修复方案:处理异常或记录日志。", + "language": "Python", + "yes_example": "### 被判定为'避免在except块中使用pass,这会捕获并忽略异常'的例子\n<例子1>\ntry:\n 1 / 0\nexcept ZeroDivisionError:\n pass\n", + "no_example": "### 不能被判定为'避免在except块中使用pass,这会捕获并忽略异常'的例子\n<例子1>\ntry:\n 1 / 0\nexcept ZeroDivisionError as e:\n logging.error('Error occurred: %s', e)\n" + }, + { + "id": 25, + "text": "避免使用assert语句来执行重要的运行时检查", + "detail": "缺陷类型:使用assert语句执行重要的运行时检查;修复方案:使用显式的条件检查和异常处理。", + "language": "Python", + "yes_example": "### 被判定为'避免使用assert语句来执行重要的运行时检查'的例子\n<例子1>\ndef divide(a, b):\n assert b != 0\n return a / b\n", + "no_example": "### 不能被判定为'避免使用assert语句来执行重要的运行时检查'的例子\n<例子1>\ndef divide(a, b):\n if b == 0:\n raise ValueError('b cannot be zero')\n return a / b\n" + }, + { + "id": 26, + "text": "避免使用eval()和exec(),这些函数可能会带来安全风险", + "detail": "缺陷类型:使用eval()和exec()函数;修复方案:使用安全的替代方案。", + "language": "Python", + "yes_example": "### 被判定为'避免使用eval()和exec(),这些函数可能会带来安全风险'的例子\n<例子1>\neval('print(1)')\n\n<例子2>\nexec('a = 1')\n", + "no_example": "### 不能被判定为'避免使用eval()和exec(),这些函数可能会带来安全风险'的例子\n<例子1>\ncompiled_code = compile('print(1)', '', 'exec')\nexec(compiled_code)\n" + }, + { + "id": 27, + "text": "避免使用open()函数的exec模式,这可能会带来安全风险", + "detail": "缺陷类型:使用open()函数的exec模式;修复方案:使用安全的文件操作模式。", + "language": "Python", + "yes_example": "### 被判定为'避免使用open()函数的exec模式,这可能会带来安全风险'的例子\n<例子1>\nopen('file.txt', 'w+').write('data')\n", + "no_example": "### 不能被判定为'避免使用open()函数的exec模式,这可能会带来安全风险'的例子\n<例子1>\nwith open('file.txt', 'w') as f:\n f.write('data')\n" + }, + { + "id": 28, + "text": "避免使用sys.exit(),应使用异常来控制程序的退出", + "detail": "缺陷类型:使用sys.exit()退出程序;修复方案:使用异常处理机制。", + "language": "Python", + "yes_example": "### 被判定为'避免使用sys.exit(),应使用异常来控制程序的退出'的例子\n<例子1>\nimport sys\nsys.exit(1)\n", + "no_example": "### 不能被判定为'避免使用sys.exit(),应使用异常来控制程序的退出'的例子\n<例子1>\nraise SystemExit(1)\n" + }, + { + "id": 29, + "text": "避免使用time.sleep()进行线程同步,应使用同步原语,如锁或事件", + "detail": "缺陷类型:使用time.sleep()进行线程同步;修复方案:使用同步原语。", + "language": "Python", + "yes_example": "### 被判定为'避免使用time.sleep()进行线程同步,应使用同步原语,如锁或事件'的例子\n<例子1>\nimport time\n\ndef worker():\n time.sleep(1)\n", + "no_example": "### 不能被判定为'避免使用time.sleep()进行线程同步,应使用同步原语,如锁或事件'的例子\n<例子1>\nimport threading\n\nevent = threading.Event()\n\ndef worker():\n event.wait()\n" + }, + { + "id": 30, + "text": "每行代码尽量不超过79个字符", + "detail": "缺陷类型:每行代码超过79个字符;修复方案:将长行代码拆分为多行。", + "language": "Python", + "yes_example": "### 被判定为'每行代码尽量不超过79个字符'的例子\n<例子1>\nprint('This is a very long line of code that exceeds the 79 characters limit')\n", + "no_example": "### 不能被判定为'每行代码尽量不超过79个字符'的例子\n<例子1>\nprint('This is a very long line of code that exceeds the 79 characters limit' +\n ' but it is split into two lines')\n" + }, + { + "id": 31, + "text": "模块级别的函数和类定义之间用两个空行分隔,类内部的方法定义之间用一个空行分隔", + "detail": "缺陷类型:模块级别的函数和类定义之间没有用两个空行分隔,类内部的方法定义之间没有用一个空行分隔;修复方案:按照规范添加空行。", + "language": "Python", + "yes_example": "### 被判定为'模块级别的函数和类定义之间用两个空行分隔,类内部的方法定义之间用一个空行分隔'的例子\n<例子1>\ndef func1():\n pass\ndef func2():\n pass\n\n<例子2>\nclass MyClass:\n def method1(self):\n pass\n def method2(self):\n pass\n", + "no_example": "### 不能被判定为'模块级别的函数和类定义之间用两个空行分隔,类内部的方法定义之间用一个空行分隔'的例子\n<例子1>\ndef func1():\n pass\n\n\ndef func2():\n pass\n\n<例子2>\nclass MyClass:\n def method1(self):\n pass\n\n def method2(self):\n pass\n" + }, + { + "id": 32, + "text": "使用小写字母和下划线分隔的方式命名变量和函数", + "detail": "缺陷类型:变量和函数命名不符合小写字母和下划线分隔的方式;修复方案:使用小写字母和下划线分隔的方式命名。", + "language": "Python", + "yes_example": "### 被判定为'使用小写字母和下划线分隔的方式命名变量和函数'的例子\n<例子1>\ndef myFunction():\n pass\n\n<例子2>\nmyVariable = 10\n", + "no_example": "### 不能被判定为'使用小写字母和下划线分隔的方式命名变量和函数'的例子\n<例子1>\ndef my_function():\n pass\n\n<例子2>\nmy_variable = 10\n" + }, + { + "id": 33, + "text": "不允许使用print()函数来记录日志,使用logging模块等来记录日志", + "detail": "缺陷类型:使用print()函数记录日志;修复方案:使用logging模块记录日志。", + "language": "Python", + "yes_example": "### 被判定为'不允许使用print()函数来记录日志,使用logging模块等来记录日志'的例子\n<例子1>\nprint('Error occurred')\n", + "no_example": "### 不能被判定为'不允许使用print()函数来记录日志,使用logging模块等来记录日志'的例子\n<例子1>\nimport logging\nlogging.error('Error occurred')\n" + } ] \ No newline at end of file diff --git a/metagpt/ext/cr/utils/schema.py b/metagpt/ext/cr/utils/schema.py index e7b08792f..beb27a07f 100644 --- a/metagpt/ext/cr/utils/schema.py +++ b/metagpt/ext/cr/utils/schema.py @@ -6,8 +6,8 @@ from pydantic import BaseModel, Field class Point(BaseModel): id: int = Field(default=0, description="ID of the point.") text: str = Field(default="", description="Content of the point.") - language: Literal["python", "java"] = Field( - default="python", description="The programming language that the point corresponds to." + language: Literal["Python", "Java"] = Field( + default="Python", description="The programming language that the point corresponds to." ) file_path: str = Field(default="", description="The file that the points come from.") start_line: int = Field(default=0, description="The starting line number that the point refers to.") From 632452e2a1c42fd5dfed8cd5c07ebd78746f99ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8E=98=E6=9D=83=20=E9=A9=AC?= Date: Thu, 27 Jun 2024 22:13:41 +0800 Subject: [PATCH 33/37] feat: +pic2txt --- examples/mgx_write_project_framework.py | 6 +++- .../framework/__init__.py | 2 +- .../framework/evaluate_framework.py | 2 +- .../requirement/pic2txt.py | 34 ++++++++++++++---- .../requirement_analysis/trd/evaluate_trd.py | 2 +- metagpt/tools/libs/software_development.py | 17 ++++++--- tests/data/requirements/1.constraint.md | 5 +-- .../requirements/1.original_requirement.txt | 22 +++--------- tests/data/requirements/1.txt | 25 +++++++++++++ tests/data/requirements/pic/2.1.png | Bin 0 -> 184496 bytes tests/data/requirements/pic/3.png | Bin 359948 -> 668744 bytes .../requirement/test_pic2txt.py | 2 -- 12 files changed, 79 insertions(+), 38 deletions(-) create mode 100644 tests/data/requirements/1.txt create mode 100644 tests/data/requirements/pic/2.1.png diff --git a/examples/mgx_write_project_framework.py b/examples/mgx_write_project_framework.py index f82666e04..b43d97b85 100644 --- a/examples/mgx_write_project_framework.py +++ b/examples/mgx_write_project_framework.py @@ -9,6 +9,7 @@ import asyncio import json import uuid +from json import JSONDecodeError from pathlib import Path from typing import Dict, List @@ -73,7 +74,10 @@ async def develop( output_dir = Path(output_dir) if output_dir else DEFAULT_WORKSPACE_ROOT / uuid.uuid4().hex v = await aread(filename=user_requirement_filename) - user_requirements = json.loads(v) + try: + user_requirements = json.loads(v) + except JSONDecodeError: + user_requirements = [v] v = await aread(filename=actors_filename) actors = json.loads(v) technical_constraint = await aread(filename=constraint_filename) diff --git a/metagpt/actions/requirement_analysis/framework/__init__.py b/metagpt/actions/requirement_analysis/framework/__init__.py index 86f6a28e9..3f7d31b99 100644 --- a/metagpt/actions/requirement_analysis/framework/__init__.py +++ b/metagpt/actions/requirement_analysis/framework/__init__.py @@ -54,7 +54,7 @@ async def save_framework( output_dir = ( Path(output_dir) if output_dir - else DEFAULT_WORKSPACE_ROOT / (datetime.now().strftime("%Y%m%d%H%M%S") + uuid.uuid4().hex[0:8]) + else DEFAULT_WORKSPACE_ROOT / (datetime.now().strftime("%Y%m%d%H%M%ST") + uuid.uuid4().hex[0:8]) ) output_dir.mkdir(parents=True, exist_ok=True) diff --git a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py index d0aaf012c..2f9239658 100644 --- a/metagpt/actions/requirement_analysis/framework/evaluate_framework.py +++ b/metagpt/actions/requirement_analysis/framework/evaluate_framework.py @@ -99,8 +99,8 @@ Parts not mentioned in the "Legacy TRD" will be handled by other TRDs, therefore Do the parameters of the interface of the external system used in the code comply with it's specifications in 'Acknowledge'? Is there a lack of necessary configuration files? Return a markdown JSON object with: -- a "is_pass" key containing a true boolean value if there is not any issue in the "Legacy Outputs"; - an "issues" key containing a string list of natural text about the issues that need to addressed, found in the "Legacy Outputs" if any exits, each issue found must provide a detailed description and include reasons; - a "conclusion" key containing the evaluation conclusion; - a "misalignment" key containing the judgement detail of the natural text string list about the misalignment with "Legacy TRD"; +- a "is_pass" key containing a true boolean value if there is not any issue in the "Legacy Outputs"; """ diff --git a/metagpt/actions/requirement_analysis/requirement/pic2txt.py b/metagpt/actions/requirement_analysis/requirement/pic2txt.py index 20ed1028a..ae09e1e87 100644 --- a/metagpt/actions/requirement_analysis/requirement/pic2txt.py +++ b/metagpt/actions/requirement_analysis/requirement/pic2txt.py @@ -5,6 +5,8 @@ @Author : mashenquan @File : pic2txt.py """ +import json +from pathlib import Path from typing import List from tenacity import retry, stop_after_attempt, wait_random_exponential @@ -31,23 +33,41 @@ class Pic2Txt(Action): evaluation_conclusion: str = "", additional_technical_requirements: str = "", ) -> str: - base64_images = [encode_image(i) for i in image_paths] + descriptions = {} + for i in image_paths: + filename = Path(i) + base64_image = encode_image(filename) + rsp = await self._pic2txt( + "Generate a paragraph of text based on the content of the image, the language of the text is consistent with the language in the image.", + base64_image=base64_image, + ) + descriptions[filename.name] = rsp + prompt = PROMPT.format( textual_user_requirement=textual_user_requirement, - acknowledge=to_markdown_code_block(val=acknowledge), + acknowledge=to_markdown_code_block(val=json.dumps(descriptions), type_="json"), legacy_output=to_markdown_code_block(val=legacy_output), evaluation_conclusion=evaluation_conclusion, additional_technical_requirements=to_markdown_code_block(val=additional_technical_requirements), ) - return await self._write(prompt, base64_images=base64_images) + return await self._write(prompt) @retry( wait=wait_random_exponential(min=1, max=20), stop=stop_after_attempt(6), after=general_after_log(logger), ) - async def _write(self, prompt: str, base64_images: List[str]) -> str: - rsp = await self.llm.aask(prompt, images=base64_images) + async def _write(self, prompt: str) -> str: + rsp = await self.llm.aask(prompt) + return rsp + + @retry( + wait=wait_random_exponential(min=1, max=20), + stop=stop_after_attempt(6), + after=general_after_log(logger), + ) + async def _pic2txt(self, prompt: str, base64_image: str) -> str: + rsp = await self.llm.aask(prompt, images=base64_image) return rsp @@ -70,9 +90,9 @@ PROMPT = """ --- You are a tool that generates an intact textual user requirements given a few of textual fragments of user requirements and some fragments of UI pictures. The content of "Textual User Requirements" provides a few of textual fragments of user requirements; -The content of "Acknowledge" provides additional information related to the user requirements; +The content of "Acknowledge" provides the descriptions of pictures used in "Textual User Requirements"; "Legacy Outputs" contains the intact textual user requirements generated by you last time, which you can improve by addressing the issues raised in "Evaluation Conclusion"; "Additional Technical Requirements" specifies the additional technical requirements that the generated textual user requirements must meet; -你需要将图片中的内容转换成文字描述,合并到"Textual User Requirements",以生成完整的用户需求; +You need to merge the text content of the corresponding image in the "Acknowledge" into the "Textual User Requirements" to generate a complete, natural and coherent description of the user requirements; Return the intact textual user requirements according to the given fragments of the user requirement of "Textual User Requirements" and the UI pictures; """ diff --git a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py index 5fc1ca06c..da958609a 100644 --- a/metagpt/actions/requirement_analysis/trd/evaluate_trd.py +++ b/metagpt/actions/requirement_analysis/trd/evaluate_trd.py @@ -107,9 +107,9 @@ If there are interaction events with external systems in "TRD Design", you must Does the sequence of steps in "Interaction Events" cause performance or cost issues? Please provide detailed descriptions and reasons; It is problematic if the data stream composed of input/output contains passive or irrelevant data; Return a markdown JSON object with: -- a "is_pass" key containing a true boolean value if there is not any issue in the "TRD Design"; - an "issues" key containing a string list of natural text about the issues that need to be addressed, found in the "TRD Design" if any exist, each issue found must provide a detailed description and include reasons; - a "conclusion" key containing the evaluation conclusion; - a "correspondence_between" key containing the judgement detail of the natural text string list about the correspondence between "Interaction Events" and "TRD Design" steps; - a "misalignment" key containing the judgement detail of the natural text string list about the misalignment with "User Requirements"; +- a "is_pass" key containing a true boolean value if there is not any issue in the "TRD Design"; """ diff --git a/metagpt/tools/libs/software_development.py b/metagpt/tools/libs/software_development.py index 37b166495..1f8538dfc 100644 --- a/metagpt/tools/libs/software_development.py +++ b/metagpt/tools/libs/software_development.py @@ -2,6 +2,8 @@ # -*- coding: utf-8 -*- from __future__ import annotations +import uuid +from datetime import datetime from pathlib import Path from typing import Optional @@ -16,7 +18,7 @@ from metagpt.actions.requirement_analysis.trd import ( EvaluateTRD, WriteTRD, ) -from metagpt.const import ASSISTANT_ALIAS, TEST_DATA_PATH +from metagpt.const import ASSISTANT_ALIAS, DEFAULT_WORKSPACE_ROOT, TEST_DATA_PATH from metagpt.context import Context from metagpt.logs import ToolLogItem, log_tool_output, logger from metagpt.tools.tool_registry import register_tool @@ -200,6 +202,12 @@ async def write_framework( evaluation_conclusion = "" acknowledgement = await mock_asearch_acknowledgement(use_case_actors) # Replaced by acknowledgement_repo later. loop_count = 0 + output_dir = ( + Path(output_dir) + if output_dir + else DEFAULT_WORKSPACE_ROOT / (datetime.now().strftime("%Y%m%d%H%M%ST") + uuid.uuid4().hex[0:8]) + ) + file_list = [] while not is_pass and (context.cost_manager.total_cost < context.cost_manager.max_budget): try: framework = await write_framework.run( @@ -226,9 +234,9 @@ async def write_framework( logger.info(f"Loop {loop_count}") if context.cost_manager.total_cost < 1 and loop_count > max_loop: break + file_list = await save_framework(dir_data=framework, trd=trd, output_dir=output_dir) + logger.info(f"Output:\n{file_list}") - file_list = await save_framework(dir_data=framework, trd=trd, output_dir=output_dir) - logger.info(f"Output:\n{file_list}") return "## Software Framework" + "".join([f"\n- {i}" for i in file_list]) @@ -237,13 +245,12 @@ async def write_trd_and_framework( use_case_actors: str, user_requirements: str, additional_technical_requirements: str, - investment: float = 17.0, + investment: float = 50.0, output_dir: Optional[str] = "", context: Optional[Context] = None, ) -> str: context = context or Context(cost_manager=CostManager(max_budget=investment)) trd = await write_trd(use_case_actors=use_case_actors, user_requirements=user_requirements, context=context) - return await write_framework( use_case_actors=use_case_actors, trd=trd, diff --git a/tests/data/requirements/1.constraint.md b/tests/data/requirements/1.constraint.md index 576df59bf..1849335ca 100644 --- a/tests/data/requirements/1.constraint.md +++ b/tests/data/requirements/1.constraint.md @@ -1,4 +1,5 @@ - Using pure javascript without any third-party package, 法务查询者与国际小超人钉钉小程序之间UI用web; -- 法务中台网址:`https://mock.apipark.cn/m1/4717294-4369585-default`; +- 法务中台网址:`https://mock.apipark.cn/m1/4717294-4369585-default`, 只有国际小超人钉钉小程序能访问; - 写代码时,不要单元测试代码; -- 如果使用了接口 ID 6, 它的返回结果要去重复项; \ No newline at end of file +- 如果使用了接口 ID 6, 它的返回结果要去重复项; +- 不需要实现登录相关操作; \ No newline at end of file diff --git a/tests/data/requirements/1.original_requirement.txt b/tests/data/requirements/1.original_requirement.txt index 7f6b89a1a..dd3a9a0c2 100644 --- a/tests/data/requirements/1.original_requirement.txt +++ b/tests/data/requirements/1.original_requirement.txt @@ -1,30 +1,16 @@ -3.1.功能总述 - -国际小超人钉钉小程序一期支持法务文档一键查看、各国法律意见检索、申请合同模板三个功能。 - -1、法务文档提供入口,用户点击后一键进入语雀查看,后续法务在语雀中进行维护。——pc和手机 - -2、各国法律意见在钉钉端可进行多维度检索和查看。——pc和手机【待定】 - -3、bd可以在钉钉端申请合同模板,提交申请后即可以下载模板。——可以pc和手机申请,但是下载只能通过pc - -小程度底部有3个tab,首页、模板、我的 - 3.2.首页 首页有两个分区,上面部分是法律意见检索栏。 -用户第一次进入小程序展示引导页,以后进入不再展示,点击「我知道了」引导页消失。 +法务查询者第一次进入国际小超人钉钉小程序展示引导页,以后进入不再展示,点击「我知道了」引导页消失。 【首页】 ![](1.png) 【按国家名维度搜索】 -用户在搜索框中进行检索时采用typeahead,只能下拉选择数据库中有的国家名称。 +法务查询者在国际小超人钉钉小程序的搜索框中进行检索时采用typeahead,只能下拉选择法务中台中有的国家名称。 ![](2.png) 【检索结果】 -可根据滚筒切换业务线 -![](3.png) -![](4.png) -![](5.png) \ No newline at end of file +法务查询者可根据国际小超人钉钉小程序UI上的滚筒切换业务线 +![](3.png) \ No newline at end of file diff --git a/tests/data/requirements/1.txt b/tests/data/requirements/1.txt new file mode 100644 index 000000000..ce2280138 --- /dev/null +++ b/tests/data/requirements/1.txt @@ -0,0 +1,25 @@ +## Textual User Requirements + +### 3.2. 首页 + +首页有两个分区,上面部分是法律意见检索栏。 + +法务查询者第一次进入国际小超人钉钉小程序展示引导页,以后进入不再展示,点击「我知道了」引导页消失。 + +#### 首页 +![首页](1.png) +这是一个名为“法务小超人”的移动应用程序的界面截图。界面顶部显示了应用名称和一个可切换语言的按钮“English”。在界面中间部分,有一个标题“法律意见查询”,以及一个搜索框,提示输入国家名称以查询法律意见。下方显示已收录法律意见8394篇。界面下半部分是“法务 Q&A”部分,列出了一些法律相关的选项,例如“国际法务接入口人”、“国内法务接入口人”、“国际法律协议合同办理指引”和“国内法律协议合同办理指引”。界面底部有三个导航按钮,分别是“首页”、“模板”和“我的”。 + +#### 按国家名维度搜索 +法务查询者在国际小超人钉钉小程序的搜索框中进行检索时采用typeahead,只能下拉选择法务中台中有的国家名称。 +![按国家名维度搜索](2.png) +在这张图像中,用户正在一个名为“法律意见查询”的应用中进行国家名称的搜索。用户在搜索框中输入国家名称时,系统会提供下拉建议。这些建议基于 typeahead 功能,从数据库中筛选出匹配的国家名称供用户选择。目前,搜索结果包含了“中国”和“菲律宾”两个具体的国家名称,其它显示为“国家名”。用户可以通过下拉菜单快速选择所需的国家名称。 + +#### 检索结果 +法务查询者可根据国际小超人钉钉小程序UI上的滚筒切换业务线 +![检索结果](3.png) +这张图片展示了一个移动应用的界面,界面标题为“法律意见详情”。用户可以根据具体情况切换业务线。界面中有多个字段,包括“国家名称”、“国家情况描述”、“业务线”、“产品法规分析”和“签约主体”。第一张截图显示了详细的法律情报信息,包含区域名称、区域情况描述、业务线和产品法规概述等字段。第二张截图显示了“法律意见详情”界面,其中列出了国家名称、国家情况描述、业务线、产品法规分析和签约主体。第三张截图与第二张相似,但显示了选项的可选择状态。最下方有“取消”和“确定”的按钮。 +法务查询者从国家详情中的业务线名列表中选出要查看的业务线。 + +#### 查看法律意见详情 +国际小超人钉钉小程序用国家代码和业务代码做参数,查询法律意见详情,然后将结果展示给法务查询者。 \ No newline at end of file diff --git a/tests/data/requirements/pic/2.1.png b/tests/data/requirements/pic/2.1.png new file mode 100644 index 0000000000000000000000000000000000000000..f50e729e464e2618300a303dd25c3760ef800905 GIT binary patch literal 184496 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

@-rr}Z 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

^C+Br$eEI_(tYcm(W|_*DD>(g9DC>Yr|1R%u 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