From 499651f51b5d0acef2decff7f7508c7c35830d95 Mon Sep 17 00:00:00 2001 From: RedDeadDepresso <94017243+RedDeadDepresso@users.noreply.github.com> Date: Mon, 25 Dec 2023 11:35:05 +0000 Subject: [PATCH] feat: mission/commissions/event --- MCE/config.json | 136 ++++++ MCE/custom_widgets/__init__.py | 0 MCE/custom_widgets/ctk_integerspinbox.py | 95 ++++ MCE/custom_widgets/ctk_notification.py | 27 ++ MCE/custom_widgets/ctk_templatedialog.py | 133 ++++++ MCE/custom_widgets/ctk_timeentry.py | 36 ++ MCE/custom_widgets/ctk_tooltip.py | 212 +++++++++ MCE/custom_widgets/ctkmessagebox.py | 448 ++++++++++++++++++ MCE/custom_widgets/icons/cancel.png | Bin 0 -> 38437 bytes MCE/custom_widgets/icons/check.png | Bin 0 -> 31308 bytes MCE/custom_widgets/icons/info.png | Bin 0 -> 14921 bytes MCE/custom_widgets/icons/question.png | Bin 0 -> 15030 bytes MCE/custom_widgets/icons/warning.png | Bin 0 -> 17104 bytes MCE/utils.py | 92 ++++ aas.py | 4 + .../page/WORK_GO_TO_TACTICAL_CHALLENGE.png | Bin 12228 -> 28304 bytes assets/en/mission/CHECK_BD.png | Bin 0 -> 13974 bytes assets/en/mission/CHECK_COMMISSIONS.png | Bin 0 -> 15676 bytes assets/en/mission/CHECK_IR.png | Bin 0 -> 12652 bytes assets/en/mission/CHECK_MISSION_SWEEP.png | Bin 0 -> 5709 bytes assets/en/mission/HARD_OFF.png | Bin 0 -> 6043 bytes assets/en/mission/HARD_ON.png | Bin 0 -> 5401 bytes assets/en/mission/LEFT.png | Bin 0 -> 8761 bytes assets/en/mission/NORMAL_OFF.png | Bin 0 -> 6397 bytes assets/en/mission/NORMAL_ON.png | Bin 0 -> 6984 bytes assets/en/mission/OCR_AREA.png | Bin 0 -> 5681 bytes assets/en/mission/RIGHT.png | Bin 0 -> 8339 bytes assets/en/mission/SELECT_BD.png | Bin 0 -> 12815 bytes assets/en/mission/SELECT_IR.png | Bin 0 -> 14512 bytes config/template.json | 10 +- module/config/argument/args.json | 29 +- module/config/argument/menu.json | 3 +- module/config/argument/task.yaml | 2 + module/config/config_manual.py | 2 +- module/config/i18n/en-US.json | 4 + module/config/i18n/zh-CN.json | 4 + tasks/base/assets/assets_base_page.py | 8 +- tasks/mission/assets/assets_mission.py | 148 ++++++ tasks/mission/mission.py | 260 ++++++++++ tasks/mission/ui.py | 147 ++++++ tasks/stage/mission_list.py | 252 ++++++++++ tasks/task/assets/assets_task.py | 32 +- 42 files changed, 2072 insertions(+), 12 deletions(-) create mode 100644 MCE/config.json create mode 100644 MCE/custom_widgets/__init__.py create mode 100644 MCE/custom_widgets/ctk_integerspinbox.py create mode 100644 MCE/custom_widgets/ctk_notification.py create mode 100644 MCE/custom_widgets/ctk_templatedialog.py create mode 100644 MCE/custom_widgets/ctk_timeentry.py create mode 100644 MCE/custom_widgets/ctk_tooltip.py create mode 100644 MCE/custom_widgets/ctkmessagebox.py create mode 100644 MCE/custom_widgets/icons/cancel.png create mode 100644 MCE/custom_widgets/icons/check.png create mode 100644 MCE/custom_widgets/icons/info.png create mode 100644 MCE/custom_widgets/icons/question.png create mode 100644 MCE/custom_widgets/icons/warning.png create mode 100644 MCE/utils.py create mode 100644 assets/en/mission/CHECK_BD.png create mode 100644 assets/en/mission/CHECK_COMMISSIONS.png create mode 100644 assets/en/mission/CHECK_IR.png create mode 100644 assets/en/mission/CHECK_MISSION_SWEEP.png create mode 100644 assets/en/mission/HARD_OFF.png create mode 100644 assets/en/mission/HARD_ON.png create mode 100644 assets/en/mission/LEFT.png create mode 100644 assets/en/mission/NORMAL_OFF.png create mode 100644 assets/en/mission/NORMAL_ON.png create mode 100644 assets/en/mission/OCR_AREA.png create mode 100644 assets/en/mission/RIGHT.png create mode 100644 assets/en/mission/SELECT_BD.png create mode 100644 assets/en/mission/SELECT_IR.png create mode 100644 tasks/mission/assets/assets_mission.py create mode 100644 tasks/mission/mission.py create mode 100644 tasks/mission/ui.py create mode 100644 tasks/stage/mission_list.py diff --git a/MCE/config.json b/MCE/config.json new file mode 100644 index 0000000..796b553 --- /dev/null +++ b/MCE/config.json @@ -0,0 +1,136 @@ +{ + "ResetDaily": true, + "LastRun": "2023-12-24 21:41:55", + "ResetTime": "20:21:30", + "RechargeAP": true, + "PreferredTemplate": "commissions", + "Queue": [ + [ + "N", + "7-2", + 17 + ], + [ + "H", + "7-3", + 6 + ], + [ + "BD", + "01", + 1 + ], + [ + "N", + "7-2", + 1 + ], + [ + "IR", + "02", + 1 + ], + [ + "N", + "7-2", + 1 + ], + [ + "N", + "7-3", + 1 + ] + ], + "Event": false, + "Templates": { + "template1": [ + [ + "H", + "5-1", + 3 + ], + [ + "H", + "4-3", + 3 + ], + [ + "H", + "5-3", + 3 + ], + [ + "H", + "3-3", + 3 + ], + [ + "H", + "2-2", + 3 + ], + [ + "H", + "1-1", + 3 + ], + [ + "H", + "1-3", + 3 + ], + [ + "E", + "08", + 30 + ], + [ + "E", + "08", + 30 + ], + [ + "E", + "30", + 30 + ] + ], + "commissions": [ + [ + "N", + "7-2", + 20 + ], + [ + "H", + "7-3", + 6 + ], + [ + "BD", + "01", + 1 + ], + [ + "N", + "7-2", + 1 + ], + [ + "IR", + "02", + 1 + ], + [ + "N", + "7-2", + 1 + ], + [ + "N", + "7-3", + 1 + ] + ] + } +} \ No newline at end of file diff --git a/MCE/custom_widgets/__init__.py b/MCE/custom_widgets/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/MCE/custom_widgets/ctk_integerspinbox.py b/MCE/custom_widgets/ctk_integerspinbox.py new file mode 100644 index 0000000..d3a2c56 --- /dev/null +++ b/MCE/custom_widgets/ctk_integerspinbox.py @@ -0,0 +1,95 @@ +import customtkinter +import re +from typing import Callable + +class CTkIntegerSpinbox(customtkinter.CTkFrame): + def __init__(self, *args, + width: int = 100, + height: int = 32, + step_size: int = 1, + min_value: int = 0, + command: Callable = None, + **kwargs): + super().__init__(*args, width=width, height=height, **kwargs) + + self.step_size = step_size + self.min_value = min_value + self.command = command + self.after_id = None + + self.grid_columnconfigure((0, 2), weight=0) + self.grid_columnconfigure(1, weight=1) + + self.subtract_button = customtkinter.CTkButton(self, text="-", width=height-6, height=height-6) + self.subtract_button.grid(row=0, column=0, padx=(3, 0), pady=3) + self.subtract_button.bind('', self.start_decrementing) + self.subtract_button.bind('', self.stop_decrementing) + + self.entry = customtkinter.CTkEntry(self, width=width-(2*height), height=height-6, border_width=0) + self.entry.grid(row=0, column=1, columnspan=1, padx=3, pady=3, sticky="ew") + + self.add_button = customtkinter.CTkButton(self, text="+", width=height-6, height=height-6) + self.add_button.grid(row=0, column=2, padx=(0, 3), pady=3) + self.add_button.bind('', self.start_incrementing) + self.add_button.bind('', self.stop_incrementing) + + self.entry.insert(0, "0") + + # Configure validatecommand to allow only integers + vcmd = (self.entry.register(self.validate_input), '%P') + self.entry.configure(validate='key', validatecommand=vcmd) + + def start_incrementing(self, event): + self.increment() + self.after_id = self.after(150, self.start_incrementing, event) + + def stop_incrementing(self, event): + if self.after_id: + self.after_cancel(self.after_id) + self.after_id = None + + def start_decrementing(self, event): + self.decrement() + self.after_id = self.after(150, self.start_decrementing, event) + + def stop_decrementing(self, event): + if self.after_id: + self.after_cancel(self.after_id) + self.after_id = None + + def increment(self): + value = int(self.entry.get()) + self.step_size + self.entry.delete(0, "end") + self.entry.insert(0, max(self.min_value, value)) # Ensure the value is not less than 1 + if self.command is not None: + self.command() + + def decrement(self): + value = int(self.entry.get()) - self.step_size + self.entry.delete(0, "end") + self.entry.insert(0, max(self.min_value, value)) # Ensure the value is not less than 0 + if self.command is not None: + self.command() + + def validate_input(self, new_value): + # Validate that the input is a non-negative integer + return re.match(r'^\d*$', new_value) is not None + + def get(self) -> int: + try: + return int(self.entry.get()) + except ValueError: + return 0 + + def set(self, value: int): + self.entry.delete(0, "end") + self.entry.insert(0, max(self.min_value, value)) # Ensure the value is not less than 0 + + def configure(self, **kwargs): + state = kwargs.get("state", None) + if state is not None: + self.subtract_button.configure(state=state) + self.add_button.configure(state=state) + self.entry.configure(state=state) + kwargs.pop("state") + super().configure(**kwargs) \ No newline at end of file diff --git a/MCE/custom_widgets/ctk_notification.py b/MCE/custom_widgets/ctk_notification.py new file mode 100644 index 0000000..713ecfd --- /dev/null +++ b/MCE/custom_widgets/ctk_notification.py @@ -0,0 +1,27 @@ +import customtkinter +class CTkNotification(customtkinter.CTkFrame): + def __init__(self, text, master, **kwargs): + self.master_color = master.cget("fg_color") + super().__init__(master=master, **kwargs, fg_color=self.master_color) + self.label = customtkinter.CTkLabel(self, text=text, text_color=self.master_color, width=200, wraplength=200, font=("Inter", 16)) + self.label.grid(row=0, column=0, sticky="nsew") + self.close_button = customtkinter.CTkButton( + self, width=40, text="X", text_color_disabled=self.master_color, command=self.hide, fg_color="transparent", state="disabled") + self.close_button.grid(row=0, column=1) + self.progress_bar = customtkinter.CTkProgressBar(self, determinate_speed=0.4, fg_color=self.master_color, progress_color=self.master_color) + self.progress_bar.grid(row=1, column=0, columnspan=2, sticky="nsew") + + def hide(self): + self.configure(fg_color="transparent") + self.progress_bar.stop() + self.progress_bar.configure(progress_color=self.master_color) + self.close_button.configure(state="disabled") + self.label.configure(text_color=self.master_color) + + def show(self): + self.configure(fg_color="green") + self.progress_bar.configure(progress_color="white") + self.progress_bar.set(0) + self.progress_bar.start() + self.close_button.configure(state="normal") + self.label.configure(text_color="white") \ No newline at end of file diff --git a/MCE/custom_widgets/ctk_templatedialog.py b/MCE/custom_widgets/ctk_templatedialog.py new file mode 100644 index 0000000..553bed0 --- /dev/null +++ b/MCE/custom_widgets/ctk_templatedialog.py @@ -0,0 +1,133 @@ +from typing import Union, Tuple, Optional +from customtkinter import CTkLabel, CTkEntry, CTkButton, ThemeManager, CTkToplevel, CTkFont, CTkOptionMenu + + +class CTkTemplateDialog(CTkToplevel): + """ + Dialog with extra window, message, entry widget, cancel and ok button. + For detailed information check out the documentation. + """ + + def __init__(self, + fg_color: Optional[Union[str, Tuple[str, str]]] = None, + text_color: Optional[Union[str, Tuple[str, str]]] = None, + button_fg_color: Optional[Union[str, Tuple[str, str]]] = None, + button_hover_color: Optional[Union[str, Tuple[str, str]]] = None, + button_text_color: Optional[Union[str, Tuple[str, str]]] = None, + entry_fg_color: Optional[Union[str, Tuple[str, str]]] = None, + entry_border_color: Optional[Union[str, Tuple[str, str]]] = None, + entry_text_color: Optional[Union[str, Tuple[str, str]]] = None, + + title: str = "CTkDialog", + font: Optional[Union[tuple, CTkFont]] = None, + text: str = "CTkDialog", + values = []): + + super().__init__(fg_color=fg_color) + + self._fg_color = ThemeManager.theme["CTkToplevel"]["fg_color"] if fg_color is None else self._check_color_type(fg_color) + self._text_color = ThemeManager.theme["CTkLabel"]["text_color"] if text_color is None else self._check_color_type(button_hover_color) + self._button_fg_color = ThemeManager.theme["CTkButton"]["fg_color"] if button_fg_color is None else self._check_color_type(button_fg_color) + self._button_hover_color = ThemeManager.theme["CTkButton"]["hover_color"] if button_hover_color is None else self._check_color_type(button_hover_color) + self._button_text_color = ThemeManager.theme["CTkButton"]["text_color"] if button_text_color is None else self._check_color_type(button_text_color) + self._entry_fg_color = ThemeManager.theme["CTkEntry"]["fg_color"] if entry_fg_color is None else self._check_color_type(entry_fg_color) + self._entry_border_color = ThemeManager.theme["CTkEntry"]["border_color"] if entry_border_color is None else self._check_color_type(entry_border_color) + self._entry_text_color = ThemeManager.theme["CTkEntry"]["text_color"] if entry_text_color is None else self._check_color_type(entry_text_color) + + self._user_input = ("", "") + self._running: bool = False + self._title = title + self._text = text + self._font = font + self._values = [""] + values + + self.title(self._title) + self.lift() # lift window on top + self.attributes("-topmost", True) # stay on top + self.protocol("WM_DELETE_WINDOW", self._on_closing) + self.after(10, self._create_widgets) # create widgets with slight delay, to avoid white flickering of background + self.resizable(False, False) + self.grab_set() # make other windows not clickable + + def _create_widgets(self): + self.grid_columnconfigure((0, 1), weight=1) + self.rowconfigure(0, weight=1) + + self._label = CTkLabel(master=self, + width=300, + wraplength=300, + fg_color="transparent", + text_color=self._text_color, + text=self._text, + font=self._font) + self._label.grid(row=0, column=0, columnspan=2, padx=20, pady=20, sticky="ew") + + self._entry = CTkEntry(master=self, + width=230, + fg_color=self._entry_fg_color, + border_color=self._entry_border_color, + text_color=self._entry_text_color, + font=self._font) + self._entry.grid(row=1, column=0, columnspan=2, padx=20, pady=(0, 20), sticky="ew") + + self._label2 = CTkLabel(master=self, + width=100, + wraplength=100, + fg_color="transparent", + text_color=self._text_color, + text="Import stages from: ", + font=self._font) + self._label2.grid(row=2, column=0, columnspan=1, padx=(20, 10), pady=(0, 20), sticky="ew") + + self._template_optionmenu = CTkOptionMenu(master=self, + width=100, + fg_color=self._button_fg_color, + button_hover_color=self._button_hover_color, + text_color=self._button_text_color, + font=self._font, + values=self._values + ) + self._template_optionmenu.grid(row=2, column=1, columnspan=1, padx=(10, 20), pady=(0, 20), sticky="ew") + + + self._ok_button = CTkButton(master=self, + width=100, + border_width=0, + fg_color=self._button_fg_color, + hover_color=self._button_hover_color, + text_color=self._button_text_color, + text='Ok', + font=self._font, + command=self._ok_event) + self._ok_button.grid(row=3, column=0, columnspan=1, padx=(20, 10), pady=(0, 20), sticky="ew") + + self._cancel_button = CTkButton(master=self, + width=100, + border_width=0, + fg_color=self._button_fg_color, + hover_color=self._button_hover_color, + text_color=self._button_text_color, + text='Cancel', + font=self._font, + command=self._cancel_event) + self._cancel_button.grid(row=3, column=1, columnspan=1, padx=(10, 20), pady=(0, 20), sticky="ew") + + self.after(150, lambda: self._entry.focus()) # set focus to entry with slight delay, otherwise it won't work + self._entry.bind("", self._ok_event) + + def _ok_event(self, event=None): + self._user_input = self._entry.get(), self._template_optionmenu.get() + self.grab_release() + self.destroy() + + def _on_closing(self): + self.grab_release() + self.destroy() + + def _cancel_event(self): + self.grab_release() + self.destroy() + + def get_input(self): + self.master.wait_window(self) + return self._user_input diff --git a/MCE/custom_widgets/ctk_timeentry.py b/MCE/custom_widgets/ctk_timeentry.py new file mode 100644 index 0000000..ee0aea0 --- /dev/null +++ b/MCE/custom_widgets/ctk_timeentry.py @@ -0,0 +1,36 @@ +import customtkinter +import tkinter as tk + +class CTkTimeEntry(customtkinter.CTkFrame): + def __init__(self, master=None, **kwargs): + super().__init__(master, **kwargs) + self.hour = tk.StringVar() + self.minute = tk.StringVar() + self.second = tk.StringVar() + + self.hour_entry = customtkinter.CTkEntry(self, width=50, textvariable=self.hour, validate="key", validatecommand=(self.register(self.validate_hour), '%P')) + self.hour_entry.pack(side=tk.LEFT) + + self.minute_entry = customtkinter.CTkEntry(self,width=50, textvariable=self.minute, validate="key", validatecommand=(self.register(self.validate_min_sec), '%P')) + self.minute_entry.pack(side=tk.LEFT) + + self.second_entry = customtkinter.CTkEntry(self, width=50, textvariable=self.second, validate="key", validatecommand=(self.register(self.validate_min_sec), '%P')) + self.second_entry.pack(side=tk.LEFT) + + def validate_hour(self, P): + return len(P) <= 2 and (P.isdigit() and int(P) <= 23 or P == "") + + def validate_min_sec(self, P): + return len(P) <= 2 and (P.isdigit() and int(P) <= 59 or P == "") + + def set(self, time_str): + h, m, s = map(str, time_str.split(':')) + self.hour.set(h) + self.minute.set(m) + self.second.set(s) + + def get(self): + h = self.hour.get() if self.hour.get() else "00" + m = self.minute.get() if self.minute.get() else "00" + s = self.second.get() if self.second.get() else "00" + return f"{h.zfill(2)}:{m.zfill(2)}:{s.zfill(2)}" \ No newline at end of file diff --git a/MCE/custom_widgets/ctk_tooltip.py b/MCE/custom_widgets/ctk_tooltip.py new file mode 100644 index 0000000..7304965 --- /dev/null +++ b/MCE/custom_widgets/ctk_tooltip.py @@ -0,0 +1,212 @@ +""" +CTkToolTip Widget +version: 0.8 +""" + +import time +import sys +import customtkinter +from tkinter import Toplevel, Frame + + +class CTkToolTip(Toplevel): + """ + Creates a ToolTip (pop-up) widget for customtkinter. + """ + + def __init__( + self, + widget: any = None, + message: str = None, + delay: float = 0.2, + follow: bool = True, + x_offset: int = +20, + y_offset: int = +10, + bg_color: str = None, + corner_radius: int = 10, + border_width: int = 0, + border_color: str = None, + alpha: float = 0.95, + padding: tuple = (10, 2), + **message_kwargs): + + super().__init__() + + self.widget = widget + + self.withdraw() + + # Disable ToolTip's title bar + self.overrideredirect(True) + + if sys.platform.startswith("win"): + self.transparent_color = self.widget._apply_appearance_mode( + customtkinter.ThemeManager.theme["CTkToplevel"]["fg_color"]) + self.attributes("-transparentcolor", self.transparent_color) + self.transient() + elif sys.platform.startswith("darwin"): + self.transparent_color = 'systemTransparent' + self.attributes("-transparent", True) + self.transient(self.master) + else: + self.transparent_color = '#000001' + corner_radius = 0 + self.transient() + + self.resizable(width=True, height=True) + + # Make the background transparent + self.config(background=self.transparent_color) + + # StringVar instance for msg string + self.messageVar = customtkinter.StringVar() + self.message = message + self.messageVar.set(self.message) + + self.delay = delay + self.follow = follow + self.x_offset = x_offset + self.y_offset = y_offset + self.corner_radius = corner_radius + self.alpha = alpha + self.border_width = border_width + self.padding = padding + self.bg_color = customtkinter.ThemeManager.theme["CTkFrame"]["fg_color"] if bg_color is None else bg_color + self.border_color = border_color + self.disable = False + + # visibility status of the ToolTip inside|outside|visible + self.status = "outside" + self.last_moved = 0 + self.attributes('-alpha', self.alpha) + + if sys.platform.startswith("win"): + if self.widget._apply_appearance_mode(self.bg_color) == self.transparent_color: + self.transparent_color = "#000001" + self.config(background=self.transparent_color) + self.attributes("-transparentcolor", self.transparent_color) + + # Add the message widget inside the tooltip + self.transparent_frame = Frame(self, bg=self.transparent_color) + self.transparent_frame.pack(padx=0, pady=0, fill="both", expand=True) + + self.frame = customtkinter.CTkFrame(self.transparent_frame, bg_color=self.transparent_color, + corner_radius=self.corner_radius, + border_width=self.border_width, fg_color=self.bg_color, + border_color=self.border_color) + self.frame.pack(padx=0, pady=0, fill="both", expand=True) + + self.message_label = customtkinter.CTkLabel(self.frame, textvariable=self.messageVar, **message_kwargs) + self.message_label.pack(fill="both", padx=self.padding[0] + self.border_width, + pady=self.padding[1] + self.border_width, expand=True) + + if self.widget.winfo_name() != "tk": + if self.frame.cget("fg_color") == self.widget.cget("bg_color"): + if not bg_color: + self._top_fg_color = self.frame._apply_appearance_mode( + customtkinter.ThemeManager.theme["CTkFrame"]["top_fg_color"]) + if self._top_fg_color != self.transparent_color: + self.frame.configure(fg_color=self._top_fg_color) + + # Add bindings to the widget without overriding the existing ones + self.widget.bind("", self.on_enter, add="+") + self.widget.bind("", self.on_leave, add="+") + self.widget.bind("", self.on_enter, add="+") + self.widget.bind("", self.on_enter, add="+") + self.widget.bind("", lambda _: self.hide(), add="+") + + def show(self) -> None: + """ + Enable the widget. + """ + self.disable = False + + def on_enter(self, event) -> None: + """ + Processes motion within the widget including entering and moving. + """ + + if self.disable: + return + self.last_moved = time.time() + + # Set the status as inside for the very first time + if self.status == "outside": + self.status = "inside" + + # If the follow flag is not set, motion within the widget will make the ToolTip dissapear + if not self.follow: + self.status = "inside" + self.withdraw() + + # Calculate available space on the right side of the widget relative to the screen + root_width = self.winfo_screenwidth() + widget_x = event.x_root + space_on_right = root_width - widget_x + + # Calculate the width of the tooltip's text based on the length of the message string + text_width = self.message_label.winfo_reqwidth() + + # Calculate the offset based on available space and text width to avoid going off-screen on the right side + offset_x = self.x_offset + if space_on_right < text_width + 20: # Adjust the threshold as needed + offset_x = -text_width - 20 # Negative offset when space is limited on the right side + + # Offsets the ToolTip using the coordinates od an event as an origin + self.geometry(f"+{event.x_root + offset_x}+{event.y_root + self.y_offset}") + + # Time is in integer: milliseconds + self.after(int(self.delay * 1000), self._show) + + def on_leave(self, event=None) -> None: + """ + Hides the ToolTip temporarily. + """ + + if self.disable: return + self.status = "outside" + self.withdraw() + + def _show(self) -> None: + """ + Displays the ToolTip. + """ + + if not self.widget.winfo_exists(): + self.hide() + self.destroy() + + if self.status == "inside" and time.time() - self.last_moved >= self.delay: + self.status = "visible" + self.deiconify() + + def hide(self) -> None: + """ + Disable the widget from appearing. + """ + if not self.winfo_exists(): + return + self.withdraw() + self.disable = True + + def is_disabled(self) -> None: + """ + Return the window state + """ + return self.disable + + def get(self) -> None: + """ + Returns the text on the tooltip. + """ + return self.messageVar.get() + + def configure(self, message: str = None, delay: float = None, bg_color: str = None, **kwargs): + """ + Set new message or configure the label parameters. + """ + if delay: self.delay = delay + if bg_color: self.frame.configure(fg_color=bg_color) + + self.messageVar.set(message) + self.message_label.configure(**kwargs) diff --git a/MCE/custom_widgets/ctkmessagebox.py b/MCE/custom_widgets/ctkmessagebox.py new file mode 100644 index 0000000..1a7465c --- /dev/null +++ b/MCE/custom_widgets/ctkmessagebox.py @@ -0,0 +1,448 @@ +""" +CustomTkinter Messagebox +Author: Akash Bora +Version: 2.5 +""" + +import customtkinter +from PIL import Image, ImageTk +import os +import sys +import time +from typing import Literal + +class CTkMessagebox(customtkinter.CTkToplevel): + ICONS = { + "check": None, + "cancel": None, + "info": None, + "question": None, + "warning": None + } + ICON_BITMAP = {} + def __init__(self, + master: any = None, + width: int = 400, + height: int = 200, + title: str = "CTkMessagebox", + message: str = "This is a CTkMessagebox!", + option_1: str = "OK", + option_2: str = None, + option_3: str = None, + options: list = [], + border_width: int = 1, + border_color: str = "default", + button_color: str = "default", + bg_color: str = "default", + fg_color: str = "default", + text_color: str = "default", + title_color: str = "default", + button_text_color: str = "default", + button_width: int = None, + button_height: int = None, + cancel_button_color: str = None, + cancel_button: str = None, # types: circle, cross or none + button_hover_color: str = "default", + icon: str = "info", + icon_size: tuple = None, + corner_radius: int = 15, + justify: str = "right", + font: tuple = None, + header: bool = False, + topmost: bool = True, + fade_in_duration: int = 0, + sound: bool = False, + option_focus: Literal[1, 2, 3] = None): + + super().__init__() + + + self.master_window = master + + self.width = 250 if width<250 else width + self.height = 150 if height<150 else height + + if self.master_window is None: + self.spawn_x = int((self.winfo_screenwidth()-self.width)/2) + self.spawn_y = int((self.winfo_screenheight()-self.height)/2) + else: + self.spawn_x = int(self.master_window.winfo_width() * .5 + self.master_window.winfo_x() - .5 * self.width + 7) + self.spawn_y = int(self.master_window.winfo_height() * .5 + self.master_window.winfo_y() - .5 * self.height + 20) + + self.after(10) + self.geometry(f"{self.width}x{self.height}+{self.spawn_x}+{self.spawn_y}") + self.title(title) + self.resizable(width=False, height=False) + self.fade = fade_in_duration + + if self.fade: + self.fade = 20 if self.fade<20 else self.fade + self.attributes("-alpha", 0) + + if not header: + self.overrideredirect(1) + + if topmost: + self.attributes("-topmost", True) + else: + self.transient(self.master_window) + + if sys.platform.startswith("win"): + self.transparent_color = self._apply_appearance_mode(self.cget("fg_color")) + self.attributes("-transparentcolor", self.transparent_color) + default_cancel_button = "cross" + elif sys.platform.startswith("darwin"): + self.transparent_color = 'systemTransparent' + self.attributes("-transparent", True) + default_cancel_button = "circle" + else: + self.transparent_color = '#000001' + corner_radius = 0 + default_cancel_button = "cross" + + self.lift() + + self.config(background=self.transparent_color) + self.protocol("WM_DELETE_WINDOW", self.button_event) + self.grid_columnconfigure(0, weight=1) + self.grid_rowconfigure(0, weight=1) + self.x = self.winfo_x() + self.y = self.winfo_y() + self._title = title + self.message = message + self.font = font + self.justify = justify + self.sound = sound + self.cancel_button = cancel_button if cancel_button else default_cancel_button + self.round_corners = corner_radius if corner_radius<=30 else 30 + self.button_width = button_width if button_width else self.width/4 + self.button_height = button_height if button_height else 28 + + if self.fade: self.attributes("-alpha", 0) + + if self.button_height>self.height/4: self.button_height = self.height/4 -20 + self.dot_color = cancel_button_color + self.border_width = border_width if border_width<6 else 5 + + if type(options) is list and len(options)>0: + try: + option_1 = options[-1] + option_2 = options[-2] + option_3 = options[-3] + except IndexError: None + + if bg_color=="default": + self.bg_color = self._apply_appearance_mode(customtkinter.ThemeManager.theme["CTkFrame"]["fg_color"]) + else: + self.bg_color = bg_color + + if fg_color=="default": + self.fg_color = self._apply_appearance_mode(customtkinter.ThemeManager.theme["CTkFrame"]["top_fg_color"]) + else: + self.fg_color = fg_color + + default_button_color = self._apply_appearance_mode(customtkinter.ThemeManager.theme["CTkButton"]["fg_color"]) + + if sys.platform.startswith("win"): + if self.bg_color==self.transparent_color or self.fg_color==self.transparent_color: + self.configure(fg_color="#000001") + self.transparent_color = "#000001" + self.attributes("-transparentcolor", self.transparent_color) + + if button_color=="default": + self.button_color = (default_button_color, default_button_color, default_button_color) + else: + if type(button_color) is tuple: + if len(button_color)==2: + self.button_color = (button_color[0], button_color[1], default_button_color) + elif len(button_color)==1: + self.button_color = (button_color[0], default_button_color, default_button_color) + else: + self.button_color = button_color + else: + self.button_color = (button_color, button_color, button_color) + + if text_color=="default": + self.text_color = self._apply_appearance_mode(customtkinter.ThemeManager.theme["CTkLabel"]["text_color"]) + else: + self.text_color = text_color + + if title_color=="default": + self.title_color = self._apply_appearance_mode(customtkinter.ThemeManager.theme["CTkLabel"]["text_color"]) + else: + self.title_color = title_color + + if button_text_color=="default": + self.bt_text_color = self._apply_appearance_mode(customtkinter.ThemeManager.theme["CTkButton"]["text_color"]) + else: + self.bt_text_color = button_text_color + + if button_hover_color=="default": + self.bt_hv_color = self._apply_appearance_mode(customtkinter.ThemeManager.theme["CTkButton"]["hover_color"]) + else: + self.bt_hv_color = button_hover_color + + if border_color=="default": + self.border_color = self._apply_appearance_mode(customtkinter.ThemeManager.theme["CTkFrame"]["border_color"]) + else: + self.border_color = border_color + + if icon_size: + self.size_height = icon_size[1] if icon_size[1]<=self.height-100 else self.height-100 + self.size = (icon_size[0], self.size_height) + else: + self.size = (self.height/4, self.height/4) + + self.icon = self.load_icon(icon, icon_size) if icon else None + + self.frame_top = customtkinter.CTkFrame(self, corner_radius=self.round_corners, width=self.width, border_width=self.border_width, + bg_color=self.transparent_color, fg_color=self.bg_color, border_color=self.border_color) + self.frame_top.grid(sticky="nswe") + + if button_width: + self.frame_top.grid_columnconfigure(0, weight=1) + else: + self.frame_top.grid_columnconfigure((1,2,3), weight=1) + + if button_height: + self.frame_top.grid_rowconfigure((0,1,3), weight=1) + else: + self.frame_top.grid_rowconfigure((0,1,2), weight=1) + + self.frame_top.bind("", self.move_window) + self.frame_top.bind("", self.oldxyset) + + if self.cancel_button=="cross": + self.button_close = customtkinter.CTkButton(self.frame_top, corner_radius=10, width=0, height=0, hover=False, border_width=0, + text_color=self.dot_color if self.dot_color else self.title_color, + text="✕", fg_color="transparent", command=self.button_event) + self.button_close.grid(row=0, column=5, sticky="ne", padx=5+self.border_width, pady=5+self.border_width) + elif self.cancel_button=="circle": + self.button_close = customtkinter.CTkButton(self.frame_top, corner_radius=10, width=10, height=10, hover=False, border_width=0, + text="", fg_color=self.dot_color if self.dot_color else "#c42b1c", command=self.button_event) + self.button_close.grid(row=0, column=5, sticky="ne", padx=10, pady=10) + + self.title_label = customtkinter.CTkLabel(self.frame_top, width=1, text=self._title, text_color=self.title_color, font=self.font) + self.title_label.grid(row=0, column=0, columnspan=6, sticky="nw", padx=(15,30), pady=5) + self.title_label.bind("", self.move_window) + self.title_label.bind("", self.oldxyset) + + self.info = customtkinter.CTkButton(self.frame_top, width=1, height=self.height/2, corner_radius=0, text=self.message, font=self.font, + fg_color=self.fg_color, hover=False, text_color=self.text_color, image=self.icon) + self.info._text_label.configure(wraplength=self.width/2, justify="left") + self.info.grid(row=1, column=0, columnspan=6, sticky="nwes", padx=self.border_width) + + if self.info._text_label.winfo_reqheight()>self.height/2: + height_offset = int((self.info._text_label.winfo_reqheight())-(self.height/2) + self.height) + self.geometry(f"{self.width}x{height_offset}") + + + self.option_text_1 = option_1 + + self.button_1 = customtkinter.CTkButton(self.frame_top, text=self.option_text_1, fg_color=self.button_color[0], + width=self.button_width, font=self.font, text_color=self.bt_text_color, + hover_color=self.bt_hv_color, height=self.button_height, + command=lambda: self.button_event(self.option_text_1)) + + + self.option_text_2 = option_2 + if option_2: + self.button_2 = customtkinter.CTkButton(self.frame_top, text=self.option_text_2, fg_color=self.button_color[1], + width=self.button_width, font=self.font, text_color=self.bt_text_color, + hover_color=self.bt_hv_color, height=self.button_height, + command=lambda: self.button_event(self.option_text_2)) + + self.option_text_3 = option_3 + if option_3: + self.button_3 = customtkinter.CTkButton(self.frame_top, text=self.option_text_3, fg_color=self.button_color[2], + width=self.button_width, font=self.font, text_color=self.bt_text_color, + hover_color=self.bt_hv_color, height=self.button_height, + command=lambda: self.button_event(self.option_text_3)) + + if self.justify=="center": + if button_width: + columns = [4,3,2] + span = 1 + else: + columns = [4,2,0] + span = 2 + if option_3: + self.frame_top.columnconfigure((0,1,2,3,4,5), weight=1) + self.button_1.grid(row=2, column=columns[0], columnspan=span, sticky="news", padx=(0,10), pady=10) + self.button_2.grid(row=2, column=columns[1], columnspan=span, sticky="news", padx=10, pady=10) + self.button_3.grid(row=2, column=columns[2], columnspan=span, sticky="news", padx=(10,0), pady=10) + elif option_2: + self.frame_top.columnconfigure((0,5), weight=1) + columns = [2,3] + self.button_1.grid(row=2, column=columns[0], sticky="news", padx=(0,5), pady=10) + self.button_2.grid(row=2, column=columns[1], sticky="news", padx=(5,0), pady=10) + else: + if button_width: + self.frame_top.columnconfigure((0,1,2,3,4,5), weight=1) + else: + self.frame_top.columnconfigure((0,2,4), weight=2) + self.button_1.grid(row=2, column=columns[1], columnspan=span, sticky="news", padx=(0,10), pady=10) + elif self.justify=="left": + self.frame_top.columnconfigure((0,1,2,3,4,5), weight=1) + if button_width: + columns = [0,1,2] + span = 1 + else: + columns = [0,2,4] + span = 2 + if option_3: + self.button_1.grid(row=2, column=columns[2], columnspan=span, sticky="news", padx=(0,10), pady=10) + self.button_2.grid(row=2, column=columns[1], columnspan=span, sticky="news", padx=10, pady=10) + self.button_3.grid(row=2, column=columns[0], columnspan=span, sticky="news", padx=(10,0), pady=10) + elif option_2: + self.button_1.grid(row=2, column=columns[1], columnspan=span, sticky="news", padx=10, pady=10) + self.button_2.grid(row=2, column=columns[0], columnspan=span, sticky="news", padx=(10,0), pady=10) + else: + self.button_1.grid(row=2, column=columns[0], columnspan=span, sticky="news", padx=(10,0), pady=10) + else: + self.frame_top.columnconfigure((0,1,2,3,4,5), weight=1) + if button_width: + columns = [5,4,3] + span = 1 + else: + columns = [4,2,0] + span = 2 + self.button_1.grid(row=2, column=columns[0], columnspan=span, sticky="news", padx=(0,10), pady=10) + if option_2: + self.button_2.grid(row=2, column=columns[1], columnspan=span, sticky="news", padx=10, pady=10) + if option_3: + self.button_3.grid(row=2, column=columns[2], columnspan=span, sticky="news", padx=(10,0), pady=10) + + if header: + self.title_label.configure(text="") + self.title_label.grid_configure(pady=0) + self.button_close.configure(text_color=self.bg_color) + self.frame_top.configure(corner_radius=0) + + if self.winfo_exists(): + self.grab_set() + + if self.sound: + self.bell() + + if self.fade: + self.fade_in() + + if option_focus: + self.option_focus = option_focus + self.focus_button(self.option_focus) + else: + if not self.option_text_2 and not self.option_text_3: + self.button_1.focus() + self.button_1.bind("", lambda event: self.button_event(self.option_text_1)) + + self.bind("", lambda e: self.button_event()) + + def focus_button(self, option_focus): + try: + self.selected_button = getattr(self, "button_"+str(option_focus)) + self.selected_button.focus() + self.selected_button.configure(border_color=self.bt_hv_color, border_width=3) + self.selected_option = getattr(self, "option_text_"+str(option_focus)) + self.selected_button.bind("", lambda event: self.button_event(self.selected_option)) + except AttributeError: + return + + self.bind("", lambda e: self.change_left()) + self.bind("", lambda e: self.change_right()) + + def change_left(self): + if self.option_focus==3: + return + + self.selected_button.unbind("") + self.selected_button.configure(border_width=0) + + if self.option_focus==1: + if self.option_text_2: + self.option_focus = 2 + + elif self.option_focus==2: + if self.option_text_3: + self.option_focus = 3 + + self.focus_button(self.option_focus) + + def change_right(self): + if self.option_focus==1: + return + + self.selected_button.unbind("") + self.selected_button.configure(border_width=0) + + if self.option_focus==2: + self.option_focus = 1 + + elif self.option_focus==3: + self.option_focus = 2 + + self.focus_button(self.option_focus) + + def load_icon(self, icon, icon_size): + if icon not in self.ICONS or self.ICONS[icon] is None: + if icon in ["check", "cancel", "info", "question", "warning"]: + image_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'icons', icon + '.png') + else: + image_path = icon + if icon_size: + size_height = icon_size[1] if icon_size[1] <= self.height - 100 else self.height - 100 + size = (icon_size[0], size_height) + else: + size = (self.height / 4, self.height / 4) + self.ICONS[icon] = customtkinter.CTkImage(Image.open(image_path), size=size) + self.ICON_BITMAP[icon] = ImageTk.PhotoImage(file=image_path) + self.after(200, lambda: self.iconphoto(False, self.ICON_BITMAP[icon])) + return self.ICONS[icon] + + def fade_in(self): + for i in range(0,110,10): + if not self.winfo_exists(): + break + self.attributes("-alpha", i/100) + self.update() + time.sleep(1/self.fade) + + def fade_out(self): + for i in range(100,0,-10): + if not self.winfo_exists(): + break + self.attributes("-alpha", i/100) + self.update() + time.sleep(1/self.fade) + + def get(self): + if self.winfo_exists(): + self.master.wait_window(self) + return self.event + + def oldxyset(self, event): + self.oldx = event.x + self.oldy = event.y + + def move_window(self, event): + self.y = event.y_root - self.oldy + self.x = event.x_root - self.oldx + self.geometry(f'+{self.x}+{self.y}') + + def button_event(self, event=None): + try: + self.button_1.configure(state="disabled") + self.button_2.configure(state="disabled") + self.button_3.configure(state="disabled") + except AttributeError: + pass + + if self.fade: + self.fade_out() + self.grab_release() + self.destroy() + self.event = event + +if __name__ == "__main__": + app = CTkMessagebox() + app.mainloop() diff --git a/MCE/custom_widgets/icons/cancel.png b/MCE/custom_widgets/icons/cancel.png new file mode 100644 index 0000000000000000000000000000000000000000..dcae66ef22cfb2b9b753148944440ba068e15893 GIT binary patch literal 38437 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 literal 0 HcmV?d00001 diff --git a/MCE/custom_widgets/icons/info.png b/MCE/custom_widgets/icons/info.png new file mode 100644 index 0000000000000000000000000000000000000000..4b382883eb0b3f78ca2c829882e56b297f1166ff GIT binary patch literal 14921 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 rT+ku6v8Y(fO2=%Bl&*U*n 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

tbn@KjmnEf;%>s6E^2gKnpB#Q1Y9XTx>J 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 C!j#1T literal 12228 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 diff --git a/assets/en/mission/CHECK_BD.png b/assets/en/mission/CHECK_BD.png new file mode 100644 index 0000000000000000000000000000000000000000..c3413b19dd85d55e2ca817578d3297250238fc74 GIT binary patch literal 13974 zcmeHtcT`i^zi-sB%vcx%M^OPMi~=Gc-2ed{X%;}5bRuHtB$xmJ0*Pfr1O*uoqy>j6 zU225TEEK6yLJdS|p(WHLgtT{nS$=Tn%zu*1Y-?qQ|Jh@?J zeDJ&D-+@4&gI7!pEJ2{%!0pb@`*s397p1T60DivpH?c>9K>NkEKRZAvX~zJnB`<5c z06Wv`+HOccCD%L1+i;~|KYxH41k%+H_IGvjfd`zr4fpUuK*7tTM(`=GJ5aE#hUs}z z|I2VsFOyId+$z+}+AY+_4RQypuXjo}SQ{9?4<6upD%j5#fz}R&f`1=Z8@S(otPDQ& zJ4t{K6ntr$;VC=Q8>cQKQSeg`B^5=t^XFAgX#scYnyMEdkaMS0&#S5_pVw4Y)lgJD zuYF!cTSMd2pBETlhq~jgZE0ZiCo|w56zmxg;IFN$jKN@(FltIjl!vkk1Oib$ud1x7 zst8ahqC*e?uEB~3w9H>47{JkPC@=p2FC^mB_K2>xk%0kFFd*t5bMW*3dsqbePn-b6 zl!IOUl~t6^Z_nv>!aHt%)AH8uU4$G?@u&+l&*=m5hYU>bh{@^7ip)*=3IWlK038HjR&8wLSl%KSB(05A9d zfb(B^Z@2u5T<~D8|AKV8npWcignyktjb`05>l`R}Z+dKf(ii>hIOizKrxmq5yV)IBLK1HZ|40fC?H$b`t zZY#)N{qOu=_BTg)0T$}&`#&FNdqK5Cmg`*-|OZd6lkP-0LB#szvKbn``@a)G9b6|wio(i3d;Zc?0#?iPaf+p za=;C4-~R1@fj@t{a5w_++bF<6zvBiCfI#POTrs$09h^oV_o%yLldjC5j?x0y^N3fe zCylqgfJb1M)on&rH4}>ihXpBWbGO?{yLlfk>%|Qoj@xI@~%0FNKpCKUF zdlk?4PB*yNMa@NA-Z0xbn?Ot0Qew3i3vW*@JIykfk!>N92?+~^vs)#X_D(ys7@W4U z$rBgNH>sB`A(@#LD9lEx(u^v6)jMWKjU?jG$(Ewzz-X{#Z^6X^TjJAl<~Npsb_ONh ziG{{}0)?bFnIw4kvxSnV%wrOgriO7*Ch3l*ahaauU$!XYMv$DPMh%RO25qA641OLO z5%yv~tuv+81q512^4{oizQ4E3p|fp~Z*|H0aoXU|{L%sRt;YT>`co76naE7ZL?&3qWj?hwkmVaG1m-=du*^1zL&u26S!J^% za~#4QA&|T@)U=7kw46*q*qHv6AOuE+A60QE|1Ebz5UW+y*#88-GamUH4HLh$!^>@4 z83f|R%7R1&&FUfT3DFF9Qsm3KD_2Ep+N0=9%AucokA!H?weCr1-{5M%zA7B6w# z{sZ>QRK5OdwnvnF9-D0(df75GkQW<(d({BsoWXKp_x6sSFZPCppLlyXHih6Dv~d4G;yFbCy1}}%zQBP8wd)c_2uBN_dP;+ z3CIPryDup9qb?@#F5fboN?3|X(7j$e_JHoqe}7LaQ!oEqAQNtyA1OC>_w|uTQlIle zcV~TVOOH3d*R1h_aeYen{-%fKF_GXIRnxj)RP1|d5 zRWv`iN$IHbl!r0FY*WinLAA?9T_)YnOeCHtbB!dCXQbq9OW=f)%y6o_iV zhb7&>GTk@@Xu=WI+&L;q@BUAQ1_8${#;hp0ubVRpemsvU9-NRuXh`YbDsEst`V{{Y z^5kVypcF6p0#WCR-cQ-CS-4#wklGoLh?=3**q(1KZQ8ud<;9DuO1_(B^%>xNlreos zZs%{-+0u}_7>M?+H?PCZ1GbV5^jY{+v~7$Yw) zy5_(E5NPp(+~adjt)Qo+nu|M^2zRQP$s*b*X`=$mk znqPE7a1*#5_wn~mh^~Y&iL=<055E+DfO|Ns8CePohCCRjfxQk$>h*ewUqN$Mn$L*O zlqam{wa1rBL)VMtBON+Ul+uYl6XOnhlq?hEEkz9_;Ag?$z^;C)O806>yIb7u+E#6Z zGx$i{8L6LR+VWrH4tU1moDW3*Mt(k8!#6<}PLJ*$8aI+$^tthF4KU6kksZOW(mGD| z=5-)&r$S?FW!z>4#@)yAG%7Ur*eD)gR|vWq>DiKSvUoBWl`U=<*Iuqy<459XkrVTB zd?F|%HIE$W?PB^D#d}>O?d-5fXi<<2I{4L6CsLR5rgCCkN~B@q^Hs9a*@L@4O$WYh z+7)Qz67$kEYV2Y`Ni*}MTJK{>mCiMN&x!BG=Z<`Gj+Sqi$3LDMGtrrH`6!Z-2C3Q0 zeVFSFD9>j=c@oeP7S_t?tcLzA(A9ATdhXC|H}*%u&poM4=`DRRl$1|iCip1{{k{Sb zboaHSa~z^iDTy_@$Y{iWnwx7=BXEf3+_B42t8K=)nXsRv1c&|2PlwuatD5p6DW&$o z{Og5vqsIpO0AxA`9_H>?eMb|(JB*EujE$o*J?p=rNc>i?Z16KA=~|LfdL7hIMO9l> zQ&Uq_Rh4P;xFzMunXU#vfj;0g?T*gPC?skOmUKbdPeP3C6Q8+f^`4VC;^yX-B_jj) zbHlSyuXEuG)@O~CI?meUW=3Y3#Gz8&mY%ffz+wyXoQy^yon|A&4OJ|kY8^-FFLtIP z1)S;j`V~W2U3Qy{&QS;Dbd?fW)06}qWv?FIVX^wRvX2;%C2yee6-VR1w3|KaKPF9h z3yLIc_k%!!+nzh5Jafb0=$H>NVeekm%TJ1ubi*1AqYvq>e2NVnz%Aa)5l>fnE=*IZ z-Td{M9^QuPEZ@u^>7jZjq7Q{FT+(5@Mf)s9ctMrX;z<4V&Q$y;5Fwt~;_H&Nn zSn;Wd+Ij7S^;5|59teUnQ%vNo4Jwq>hQ52y)y+u~Q6BbPKWG~ak>htKL$Lvs<4t;A ztl5G3^UoAa)6{CZ0wpbjXsroP9uW?IbO3>dH^2GvV|$z7bQ{F@YQA@5^w;sHdGPu2 zBabETQidAWniC?rC;NL|ZM<-ND20qn#^v2GtMCi^^lOeRVI@;5{qEKjVda;DsIRH` zP;@vm+sY+i&h@dOI3%efQ8^tltqD%E@ylFcRcKdm__EFfr{oXe-tJIck;dW8!Uwh+0kg-(qDgD)a$|D-5asmW;DY|Xy zg|3gI247#7&+&ehYi&dbt^E3su#qhjbD^$c)K^ovaWZOMuj*~ZOr3c+OXBg#!}XU6 zePPg2`-;%+v@+}cmQ|P=(S&13Sx?Ko3mD@zbV6Edd--*FOR8x7mVzu<6Fk{0n=#O7 zm^C7I;+auJjW=_FSjY4u@`a6yCs!EkIvQ_(H`TXd_qfJ_)V=}@&4D-mweDf2;eo6r zNVC3$V*X?L}p0_3~O55?ba z``}9;DLG^N+03gNkf?&ktJ>BA)%|gvVDoil*O>w@T4MGPqQB z0~*j{Bn*GKiZpUg$b8VO%x%RlLHx)IFN8sKTRrYbGjuE#GRx`F-uPVOwyy1%;*+W` zJwwWC> zhQyEPr`?oXdD0UWn(9|=U+p_zLrYt)U&b}!7*~|_=I!zLx#_!gcy1~cxA{<-M=lM` z5M~-;B{A>6jipqD3d9l>9a)@fdKf0TzDHP@lpgf?oq4K;&)^%p!?sr}%Gk?!c@=Ml zuUi%X`KakH)<8at)y@{gD$;lx!f-neW{xthSF}f`j(czIxraV+#J9>0QPupuL#g2u zu?ISz(2v8mI$vI>7*o< zianCLnjS06*z1=9w-jp04Wt7Ev zAZB(FHa2&X)m+$Um$7Fa@I2uy^T^}UurW4D#&DIuuE*1ygGzEQY0qa{B`PhhCnAlH z+(UodR*;RM`m%Fe%vmW3dA*gdBJ{d-rF2CmC~U<_M0fHvt&s;8=8gE8>0!qFh@3fD zJs=455xV8{_)lW-^9!y$!kWkWw2$#-^F05RENQ_C-Q!@Gpu(d^kCsJ4kh(PaTw-hG z&Np7qL7-ca2h~2V3QdYJ_jE>Nh_&-UH?exqbZ2w|1QU+i>dy%5LmH&9evL%*>t5VBxp@+Qa$QsmVVq@>Y^t2HK`$NrrkzN zYhwM0K*e{m#iw+rJ4Iu0*ewI5zeH^0`+0C;*@CYdT4^eBd?SO3b1?R(EfpgSCoimQ zoS-XzEg><&`cIfiC*Wi~S^{#@`|j;i@Vy{hW0X-Ib;-`MpxS1d$Bv z#F^Aid>>W!YjO{dszcv=6S+w)MTCO&r(}+e9Uwsmb z^GtFMLTDZ*@+OmPU6?u2yrEcH%rn0R|L6jTDW4&Nz}y29fpmF0a)uT*7mlyu9}>Mg zWvZ3Fnpja7SD2^-ySsWiDQzS3D2qhO^sebrxfT4n#MshE9INPHP2Hd)!`F8!Unq0H z%_z83RQGzHBCEK7YOk z$D?Wmey1zg-TF*ihPgVY*<}IFkA>V{0I-W3i;3Wn0CVfxYFeWyL^)28-+=t;7aS@zxXR ztt52NXh;%ZDjhJvWJ+P_)@rPv5#r|N=-conYIthOrw2EdT*Iemjt9hJ8kfVzmfu`9 z;7!YF)vtF}3_XoC{up&cL8)=6Z_0dWowoxBe!wm-KI`~5g`N3rHRrV5U^#lfk=d`VdsKV)g4%96Mt9=8jDU zY1yR=1^3{Nb%!o8unY@wK&vEXt1Uzt%K3QIhJ@S5lBPD^`82!#2VL5m%i9SYdU40* z=MMxmpTV?labwK*U0S!IQC7w8mRsA4pDcU@-?ckxQW+10k0690rksoJc%6>b`tADzP{fbZ%%dP(q)m9u=SF6 z@kyn24zuN*Gl`DABO{x6+$5La-ew?kwKrluQLiNrjs@M+XFXZh*{koJQLj1f+wY#N zlQGU7b_1+aXYV=3vP_Fvf_VjGRi3oVKe?maeztrm#ZNBDt-@nS#IfwQVU&pl0n4aK zf98m+Cj)TXm}B=JJvZ#0TC7uunFtwruGGY2%n5l7Y)tj?n-8qm;Tci--MWsn4n-mb zRakt6Fg)Jas9;;FfJtfqaM2AFwpMa0lORc@IR4_o-Xe#Z%+ZGCM6p%eC;l}hF6DF$ z>qAppTbt(C^*YmVL7x7&y-THM>7)I%4gFBoun&&TDRrn<1%d88ySRVlmOMC0HOa!r zAkH!w3_c?NqK5jhxc@*CmHRa|1JCaTzYQtA-I{m0q*vRgqupmlrkIrNyt&0F96d};2>$OKu0Of?lj+S&muwD%6GP$ibrbE08vL{Jm0&jvo2 zX$#|%xQ`Y<1T!07hm7N}bk1^JKNLfi6t%cs_n?k^)3L}?Ur40{jZH+eB!WJ8^%)&( z0V=cycdnd=B*g)c%D1OQ1J$snk?xH~p9ppA&dY?L&-a0nMq3$broa)&C%>?TRiMZV z-ph@6uFkqvGG^^lUOy4S51aiN7FQmS5`qTiV7b{SDIf z%-){2!wI3NsoecXjjk4(FXnIX^ewH&jE&sG=V0C8KpLW1vm)G#T{MTzG!MC`H6QE! zu%H>TZ?5FC<5-db4A@&JDK>qmlnwJU{g{#oJ+O8!Qqk z^Z_xm3xcAG3BlqRZp`YwIezxRV}0IN?otKD9NIeDNl^3XeoitoOc>Y50NWP%^w`IFO>Ar|#uBtp~Ny8u6{zS}33CK!4OC$qs~!Tr-Exec846 zXk!CMmk*lYah7pCBp@)OnKrhtyEEkUkbB_CXj|thPfL*AWaNho^zd)-1)9E;uMNw( zLxt+1M;vp+*~<1Taw)z7-Dwgx8`D)7b5c@55;nH5yIv^Z^7|dBKhWcHWY0JtsCN*W znI{LONjW5zx$c*Hw)KoE8`C`*RxD1$o*y7(Wup_2KmpHmg8NRS#J*y-K%w+4ue@VX zvaYmla?Oy-+VdqV7P19-tdAUil*f}z^2T4Q2MpV<_M%8arin_5B~#w=Z07nCTn2$? z=%}_UFdW#=&u;y=K8rYP5yq!BjzDA#byx4n4w`$ho)*6_+Hwi+POCAN3fu^h7JBlB zfvSdmOr+co1GO$fu2zG+Uz)YBySVwIw=k6+<1C*e7d60ns+rm~)W~2mFS~G}g#Gpt z2-1_Jc;T{;Z&=a0r1*xdQhm@g!f~i2reVJ2L~7UU^M`pkc|O7H7Q)1o8+!I6ljo)v zBH%FHkhQC_ap)+!x19IgEv4a1pY*$xT&-eE?JZlM{6TpV3H*EIClaK4<80K+&8J4k zpM~yWaOd?JY3T95A@VN&sNi8U9iy|e-RX`ZKj+WYes0wZnwU;8JbSamMT2vA{|~;n z$^GVYCx?9#<)0ayHG|A#cejujwcOcM{2&&wC>2ef@^L5>!}_rM((jLvl`PLjEoeQ6 zJb`#C;I!6%iN)8JqMJ>%l7-WGCx`9Bn-ySWdzXf==D;Cb$m9eGS?TlhtNc+zs(;IT z`poHTiMS~r*olDY0-HiGICD<=qLspf>X`X;p^2zPkyBMBjXy75=Ks!JmMj%mF;W!q z5cerxOa?U`LUY!l^5U(pyne4rcifT` zylNPI6sG=WDH6&a%{nIWEK>I5%EuE(-W87_KyR5#jY6({g?q7G+2l1?-2zF-;S(GT zEet+lsr-oy!3IsXVdaxtD6#AcJ%E%S)~*cwMz!8< zdyfYG@Kj95+NHf+salC0$6z`QzVqeFPI&$cAh#ixhA^qTQrUwzx$v!@r9%eR3m-Lz z2C|Cmr8k?nK%Gv9gc-ftT3k)x#j>jpujT1+l1YrZ_0JzNh@W^INbBZkRY#%{r&mPa zvpU(_6Uw62&t;nt&T(C!naseYwMb*%vgTR5_ul2$bZ!}tPEL(H*7Jxr)oxbee`Pmf zzfSIt)!lmS7K^`RaJ`!-Z`8MeI}*wsqjKUiD7?&g*v89N0rSD5{T@ApBcec=kkgr` z*AH=TKy@ZhE5X>;zQS0Wl!S2T-w`{s;@<>bMM+LKYgvFQLv>PCfHvZ z!uQG8$d(nUDH#R|c#GFTQoemZ)r(04ua$UqJy$o3qdzJuDIIu<>E&2mtqkiYDxU}%wUqjAV(Wu%$;acn9X&n{Z{QdZWhMY!9NO5Moq zE{RsIot}(VlDN^az-W&gy>Kf(rK)bbl21CX=M2HcnOot)_~J4y~he%-<* zi)FZqR7}7Fd+J$R1G}S*J-YJE(x4uU-c~8KxsO(`t#aGCS#s3_qfzHud7BK@2!`6K zzk1J%$#SafAx*FaUKHl^eZqp|Z)1+R7A-2q(B-}!=gO|?F>}3JK#fE&Tq7+dKe(Jh z%~pTQKco}3Nr^p>Qp4U+y^Q1PeZ99!yAVsSXJhrxKcm64IH#xgwifRIHC;~l;mf>9 zee}aU`=s9Z1q9rQH`N;VUM!Ysm@+e#L@(WR^dqB(MUD0GjJld6-lCz;V9~rU=fCUGrd`o3!wwN&fisSh#GBFL4)J#e=m3>{lC`e{fs^ z@@I4CW`1nw2Cg{CckeKQD_K&vw$`CkzvM_2u;>^HnS>$vu}3f&SuuLxtfbe!hKzf{z19ntIiM=i(Fo(dgVRV7d$Z!rc6oc zuee{{e;%kQ9aX%#i|@)AJ(h4mv)io$-mu8V6uZ>i4hRT%H|sd~7$KG2>p6j;)+^jB z@+|Soj=RmE)HwRq%%qKc$mJAM@IpRN>$lg@BN#>1xS@|C8g5Nc-igs>P10rK3P&D} z;*G4;xVeOU&%#S@92Msb7g=DG{Ve6UQ2vPFRYP&Fk+m5%e}2NorzKj>y(_um);srg zT2HB^r&5R9i5g!61C8%7XQRv<0~RvM9Jz^#&Y?m+yVzch5Ov$vxBLC>{j{!(jNFln zY2btAsq)~=UQfZiIlIKEEVI`)+q$!mApGo=sKB=A!PA2S2OkhXy%nUohCyYRH&6V1kPWg5QEoS2a@<=)Cti9ceQ*hg?kaMOrhlpEdsR<|?bsqJ z(OA;_;|W69psT=U?BI0}!NGQI?A~eCi^q(U1XKh;r#Vn2SL>(Xkp^pzwcjEcO@n6D zHgM8Icp7fQm<`Ld~~L|k&>VHW+7a!|0VP6o*7Dh zLu4}FZSfm7z}d*{2(HbgitE~3b!MX<5B&&jDkjTk9*+p=Bj~C`3|x2c_StPtF+K~N z@Fo-=poCPt4Ju};%x&Pv470j^lD{xZvwJ986nF_SLhPQ$tzF-AR+>HXeSW8c@hIWL z@yAv}*BatOFXbgOZ!)aHrZY9J-(;}e{V-qqyLoS6!P5rPyP@SbGT!}}oJM|(rRFJc~edqPFJ)Og~W*nWA8e$OZUJsY~K z36|4oQ3DbhJ`wEU1f_5D~35!bG*Oa2;vgh_gS;UG|;O9$yz9aP;nxIwjdF1>O) z&)Jty=_83e&yMlZ4cr7)krembL$a1e@gu^tv$TD*aIGFUKIEX zVOTtFE9R}n@SCQ(iAL{i^$qfz*Mb@nbwI88HRUy z0J|3X9l>u1y)PGZA|AyGxV6V`3{`~(FRUhTe`(1#OBUQ$yV4kbb#Y7xp@kOF+ncJs zz3=gvh#ln)j=gDB38`GbMZMe_N?;=H>;ZvBzxk5SOr{0d)qV2v%(d@<+}Hf|ATwe; zo9wOng<{`PY?|(xgWcuA-t3`+rRK`oa^1qus5-=^&NDQMB>{MH%|TK{np2C`Avq*@ zJ`_WL5X@hS`;3|JrWLj2wsk2%@UC*m36AxXz&faY(zw0hz%@7d4`&3_H~H zmlvT@JrQz8faAWy+eh}gUA++wSv$-zEnl26t_7`ySVE@{$dMr1IIT{~>1Dx z{KyP*JSUUe<~3b~Q(Hrr6rZhB^)Hk~BKTUIzL3efy;E;n7uOX{Ik!ACqYney1?bL| ziys{BaWO{`nEtMQskg6tQq$m4sI350?>$^|f1!!W3Wb85Q@_>~XQkLNm{64;zLlXH z*7QctkX8C#J2djq=f`$|J3wE0fWz^*dsDC@qJ~lB&>MG;Ke-*0;DbWLv%!WE%|$P( zu4Icp)9AGmlW%TIixi(JXq$p0J*)G!Q9mInk5VhRk&nzs4_gGz zb=N#a`HeVLY0d!0v}slr23MQYdXGtbl2Q3p#!%fVN?fL^P4t;6tqPLllQq%_S3|Ye zTyHjsae5l_!+zRy!A^L4$IXO7TUt32d#PmHB0Hf&H3tl)rCFWz#yAAsl*wrW=7d^Q zsm}0j2humAY;SD#;4e3e>GFowv1Qst{NOQjou~yzPt0+1!vH8RbBmd!4b90UCpe2k zXyWn(k22dVvNI!lN6JD((GDRE{pHZI(a5)@Op(lE&uUVQ4b*S8Znj58s_WlA*Vk_1 zgGLzD!)W=TiQ%iG*gVC)U_38Ch|$o+Mboyg!;LVG}}+YW57o$jE!21qI$tO zaZa;sHNJ^8=dya+y4=+)B@DCAnkIP-dY+9^|Fth|MCI4aNKXT_sZ6P#L00mRW(vEx ztq!7+h-&wG$BU~$r(8=k%Ia0S6U5y;uxNHoV#&CoTa#^my3G4wdUE6;tq1=L!K6pw literal 0 HcmV?d00001 diff --git a/assets/en/mission/CHECK_COMMISSIONS.png b/assets/en/mission/CHECK_COMMISSIONS.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e92e652a17be69e6457fae634678bffd7fe33c GIT binary patch literal 15676 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 z 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 HJotYAT-~g4 literal 0 HcmV?d00001 diff --git a/assets/en/mission/CHECK_IR.png b/assets/en/mission/CHECK_IR.png new file mode 100644 index 0000000000000000000000000000000000000000..6ba97cdac6327bc3b72ba7236a65af0b0e3069ff GIT binary patch literal 12652 zcmeHtcU05Mw{Os+q9~xEsB}Eap@d$fdq7k`K%39{_%?3K_5gKSzCT+8{w7j??=eHc;Bja{$$nyScT$ zwb3m#D8gIX(HY?clMeFs0jNPB4ecNwN2n*vU)Txe>JHZwrPL5ah25PsMXi*KWQ}}u zVQ%g>gZ*G;!N%s$U{9#3v#7R~utty?z`z^k?Obs;W}L^0M*@GP24t@=9QNSv6TX zH6UtX_SIA!p~JkPE}P^Mpj-%ULFik zfRSjpzhe*>j=cC6hifn-)X&|=-yH!L-skA(gb4806a`fMV+`Itf3t-n|HKJEOeV8}?E4C7Bg{w+1q9PI;>F@+%!0e(=JULc_6#lJ@5@9y#+aQ;j0 z{g!{x3l`-5Uy$y%{7vekrt1fD^hfxaBM@GH&HwGcfDo2fl9m(x#mXJ-j6fm9_tp5b z1MHfkKTK0}-xk1f@?d#+b2()-S->2w*#1Ffgm89uLH}DSWi>guzo-EFb9VH1{6En- zL)Bame%_7%ZtmWWt}q!NxT~n}-?O2ni||7D0pb946n@AyGE&orBmEuWP?-KTO;JE+ zX?J&LH92QhM^#y<0$3TQas}*oMNt{-2!$zv9bK*{U2$=7lmlx1>VFLZ4cIr3zxq4> zU-mcga|c$aqu2kO&;Ep}0c-#z9QRj&rl_2#@Q+ICecSK~_@h!qUKV&{uB!3Lxu8pC4^D z|EUeoXMYL*SQTnF-I0K0q5pIWW-#ABOJ456KNf61e%o)~L3cBQK_JP?`qzFn4|=&gg08%)_dsRr1CnCI{xkLJftJg{+3}Bx z#U770KQ>0^}fbVUp?x90Rl7Id6r|Z|R`d;_>bVlG%DF5}7Ctc0&4g92Y z|0?&X-+hpXECy?Cr8j4@u1e+pRG9Z?o5k;{0$I@ztBeoaKcdP%U;lq1aNjk5%in4Y zQ9rO{ecZ+iV~*R(E-~N9ffH@`&OQ=b(>7EV>NDi$*-##Zr711mkVamT<=&IjMWxp5jzb7|soSm=Rd;++o&|&|#b! zU)D^@d%8i0$#u`&h%n1EZ8giBMGKk=>YR0Y)K_#lg1bajA?HN6ItWCSl4bf^-Rm>$ zz{cI;qdj#B!_v; zDdKwwskR+oGvR2wXml{tC>Ou}opI*v+OLUUSNC~~f{L6Amdmi-M&Fd1g4-ZoZT@m! zcnrZ`mU-R17dkGa&Y3=AYkZFNtBetOd;M^sg|s5#sK|OdRx*Es-Sj3dmn#0X{d`J6HXClx#=>)FWi}L0>?Doayt<- z(Nz$(huzLaxeW5oH}hSBUk1iAIQ)8FwpN1SR`rkZo2~eHXdJ_g_g-E zZ*DAPTXVO1a^E7MuF={iH*>p&Sd|%`g+>86vWYfZ(ABWCZLT5>(J*X=&_RyZt5zze$ zd%hY+%}%}jAR0Y|pFZcFoV!(We8s2kV7h`}VjTSU`$yY0pXzI$-JH@gb-8jZy{EU8^`SwAuZE zXN_gG(^lTO;_DZEx&qf0NS_n8B>UyR_X^`v)dgwCm$!%Y4S8vg!*G(^X>6b|n~q<) z9~y`x zF8*4ALJCO1B9<}P_UEs|ivE~4Dgo7m@4zHEDMw==C- ztUaTXZpK1_VxNJuy-#DocU;{&x0Y3@FSU$G{bM2# z8d1RpNbo0yWLNnGBsof{;t#*+HP7rjz$~7OBRIX1^#GeNT5NNgg>}laQkFAhxMT=R?QT z_iVyygpj+3P3IAh_NDbx)U|Klvh2g?#n?878WJ2y%;+sM&Nbr*JuYIjd#xs{&8{}+ z8>%iq5657rbdKC>IFVC%3UC|wmq8|RdI>THBRgL@)5=^@jPwY-PASzWj=?L<&6Bvs%?OJ&3u|5IUA1uR67uYR)AfTimbxifqZ3o#Y9fDph;JQj%0GdVvz zE_xclGSXZ0bwziz*Xf+-?0Viw0LLZ*@jlE;zPbvHY- zo=EZ<34YO|O6M82Wk%FJnrNJC(lI>xSpx7#p$B|0;#h8IzVeskcMIT*R>t5zEVk@XwzX=cxN&iQnYzXaogVzLNBZ`lj}tYp$!i9sYOz2(&4N*{XKt% ztCm2H)71DjZ5Fe;m}-@}Ie_e%arkDRsqc16;I7x;y@w~b)S2CRMXav_Ypbd7-JTIL zHL9~rNOm$X_`>v6vg1HOQuK49E3{)@K_FRGKsUYkg=ddA)#eU{EYmadFpLr;!Os`x z8@*h?>K>1V7k_P)ga?QB6x;D7Y?f zRQD$zq^=-m;l-;>(_=u)-)Q+vNQo&-hV-cBO`$KfMHx_Dxq#1KiPU)aRIMY((J&)}l<|HVn5}y;$hYRSzbJ zO`%(h9pvz)xx>LE?-7qP9u^QWzzB}t1g*$mH6rte8Y&THJ_$O4p>CgWVlU0TY?Rfi7t_g>`75+c6#x1s zE}j=s*mdo_9YRj{!V^6cDe=^jU1gbVs&8|C4f*8&|7TSCPW-~>QEf~tt!`@@hr=N- zJ2jB1t>QH~O3)%7m+IE5^9n8z+=8LhPYGGUL(8ZUvn7Gn;u38X!_p2u2tHmxXtA{n z`&q8(*|TRCIkju~@9(YWXjcdkLcO*zkUfYiW;_;58l^^!kSq3B3a$kfd37O)qE^%&WU`aVq4w2C=ZI zs&u%m#v9ZUdFwE0gsyZ$2&1#TweXPfH6c8Rg`VZ*BLtDF_z=au2JWj9jf6TDgVyN{ zCvu8Jd|VDB@%wF^Tr8-7Kk3-5Wdq&Ue?Bqqk(un_o!Lhm8cL}p<;;Isr~>jx>DswG zO4!~fE=^{OuoXWapE~PHV*E~vICx$q0$6W*D9WyO&~)Z+c zLJA*Vmt90E)PMYrkXo@OKp(zQk|ngoIv9@WjcZJiEUKL7Ziug}sd5dt(U^QARR%(( zHW;RYRk!XRj9KT?vG%6-G2XSbT2C*PXrbDlHJ82}<^EiY-V_S^a)eJwboxfEMk32h~+yS z&IY=-_R|>4l%B<7YB1f$nMG8P)Vqpj#!$+ZSAwwII%>=oD2v)`7t9|-j^u?PI|2ky znmGSKk!T@02F1cok`EWM!6# znR}Ei7(6!)Z=6D_Ehpx5V8&Pr3!8O&4J)bnse_h9AuFu5)f)mOL93^y;~FmZ>X4pI z%gCB+&vr7F0{U6<{+p9RyHk0*cdhNo$gIs2)JO;gUnalE<^AnVW1B(lRvdEH(k`Lj z#&rXTNyMFZb$%?XmAXaaK_Dl27bD$$@Mhm?Rta|=A}|Ub_KK8fG2Z=#RzkXxbNSXXLm}xP(H*UY#E?G{g*{tCjz!1(&ZUs$G=7di~jqbj#-YxA4 zXIT^tIWpG!hVpzzce$dt9oByXlh@)_wKPfItR_2C?dh4Qz<^p z8K}G4859{ldk21>Z52WlCO6t=*P;07+D3@iFPgvGA-or8%ryZA2M5iiM;9~s1q!6O zxVQvDKI4jpR{P|>L~;miZ#5fdY7;g>97$JiL4Eo%e$)SK&5q`O}ywQK}!*66Tf>ZXaJAQL`8^5n=~cc_o8RyC8!!Pnr1 zhi<9}e%uQeiAd_{zP<5y57inSueH%xFhSa zuyx!Xi(Z7;h`qkJPNjCIkM^8HY~z}RAh$hsG?`Rg)R6nEN5k6EAW{ppL0Bqr_5N*i zx~&^QZ?J3C%@3(tbGnb*-m<dl-ehQ@cw%J)PQab*NyxBLcwz^&spH$`Fx?=%Zm1g%btjs%$nP?QK;+gdv- ze9!^UEIi>Zt-RpcN}BO4^rfOC?OYyyv$@-y zpCdU^6XJNAm&#^CT0=^tLV6b=kfq%TH1CvnQMm0w?WO}Ick1;PzaRC%G+v#u6*KGg z@z+ZxeO)tMq$SnG4sjvb%$yVxY|ol|^{|++HjR2QL3Jh~QEPi%p$+gxK5Jiv?2rXz zPV^Jw+=Y96GHnmw{Ud=K*rv((-W){r{N+Y+dN|6A9Y53Ny&O-TVa7@aH|7PtRPuBI z)|Ku1qW1>ro)-uIObe7 z2EV(Z9@}@?gyB||Dc5wJ0Y*=z&zx>@65Gr1&Zz2ubBy6CY9ZXFM}s`ntD&Q@<$x*C^u-Q22Js*DWc1ui(d zi+0*D)pCtfY0xV%&JqH(tfIy#d!)r~jZlJJ+psD_ZVg9x6%WsO6j>X(wVUmkmp45* zpS3k5mbu3yaEL@$^J(sMs;@{1mE8N(&}UzEd03-1D35m(X;ScbXZ#RXq;w)5SC14! z2BPN5D4owp3r)A84Q=|7yp1UK2~VDAtk*v*OO}e@PSGBG)SR8&CONqcnDPbB_Rw#! z4%Vf{dn79vGJMB2m7>k+5{j7wrnmF35kgPi zTz_QRsyjzUs`tfuFi`q)?CldtvXmINOPMevaZl>v3U3NJx5%cOVMYx&aD-K_q zo6?a`WT6*;QRQ+usVy&B0If5Zi;v*`?2_)SrmW>a?&*P|GX{~ioaf+~v*j>E&8qRI z8ZTnIl63XlZ}YwHDx8a>&r1DLB&#dFM1v-1D}R$Tr{rtI z`CRJ4peEx0cZGz7GFO{<&yXNxG~;Onf)7!9Z^3F$>49ND$SGU^B4A-G$u!{h%Fnw8 zKvy#W-RT0~%onvTn9dCi5qp%>up6B{=!8jKb_Ey3xP@9`nnKMj@b@xc7P@bH73rH@ z8j`TIe;n8M4v*W7Pgm$uwnN~*B2_p=_`_R@X?1>g0w(o%A;puO>K&OS;lA+WjzcY_ zYmWhE=JE(o$1%S1Nlu zwYOLnjSpl(KhgRj6xGIs1kCzFKZbyyVDJvGQ=F-&g>5XUibU)&=S{lQH;3b`<^$ayqd1o|Bj_pc_w+s1?q{mX)k_m z#CKkGWuWPaL2Q<_-{7Uxl!Rd>Ivv;w%0L{zxt{SM$Bsyn{qhQ0^D3CzCUGZ|Nm^h& zVw%!oRhRb@#SQB)m$45SkP=Tc{q>=^$FGzJ##E<)^m41ALnYM;$}UILDqv{y(?AFJ zbKZl`Ld-*6yr;Em4E8)U^OD4AJIw znHZv@7-raZ!#IohT{SeOk=yAxad?0g*%jvK@1GB46`7l2P2F1?_sAH`t|Fk{*zECiUGQMJc{o!MmI4u>;iCfnf%ijn|TRD^|XtCRsu6%9G2=} zszqVSK!EhC!phWvzhr(Uofvamq-ZK9E1ZGf98pKGYDbwHQ3_pGE;Qn~!(f;!{Aw4twzx z!{fc<$=_{n3|nVhl!%p6pT8(}Hu^2MvG#KBB(&`7OJYXJ$_(~J_})&xN+_eWcLvzj zeeDrT0oxb5eS5P*!Hl_D?M?0Otn4HRZQa|JSS%V>|POuy1el+ETzaz@gA@hdAJ@U5b_;6BklT z%gAoa@)C!Umdp7B3*%^^`bmFL3VD5kq zJxSSSaf1_F4;CxmeAcP^zN;uP2He*$bjmhAl^fVfwH5bj1uQfhtCm$G$;=}~wG*U} zWjyL8nti;)H50cPvMK2z%j!Uc@1&11%XbAWv*fbPD?-}}$|bm#{JS)1##i1E`-9_@ zh|fQ~-TXZjzB6PGK`txxTUgOF_HwvT=q+!Tc57(Oaz)L!3gLu^lzn-AHLyEK*9-}4 zdsZ~;+bl^4fbE`|Z)o0pvGl>sRp=UYDUWBN$owD(B;v*O z3U>PxbjgCt&NV}|i{wO;K0=JSAb4JNaS2J3Ryq|}WKEo=cW+$a4A7KovQ-&QvE$SW zlt4ukBIeh4#jv(3LmqkHitw)~jT>!ss~rTb>W|eL-b3p}_RJz|sQObS*N)(6NeALy z<>k|GgO1{*7HIrPV2$@-wdw*TbXVAhyXuq>*KTupG#`1VZZ|lI(ILr#?krb$SGWHB zwH^fG*5ST?q<6j0HTvY!Y9n*AC2@g`7bSJnCY3IM^Kg&*_TFWE<%5Cg6VG3dzvhr; zRV12d(kT_8cS2tD=9pl%Ic2mbk*+6Ba0M)WC*{C*B}W+>eg!A0UOq@yv@|;o+{2V) zCujvbyS@Kq=hZ{5f+zh^{+UXi#Ocw>b*e7c&>ON?t=Do{KN*&4m9>jS+8SuFwkAhe z8x@5_=DU>^DwRm8EyX_t&VfX*we-`rIrj}jxUeQEjR}|uvn=h|CGU!nU^ln-*p_F{ z#=XnY^Lsl}%~p`GxQ%b66$4JODU*ezqH0&pEJ$m==<~r zdK`Db$t+XnCOXq}`No6iFgcgD%)8apZ_TNiRX<0_%F9D%(mV@QJ>$-m41KwY7F=6R z0uEb09Q2(P$GCm^3^S4b8dYqg(4PhvBay+0G_8yAWjCD?jU!uv6 z14(>N%>EfTo8ADMV|6+Gtk=8I=(y>=9LQxI2Cyl)e(nqovxM z&K6sH>Kln*ML+dHU`FTcM4X|BXa{lm?;XKJ> zI2sE&4g$dre{!0LS?N|nYp$P}FZ!8&G&FAAjt8PCp3>l8i8r|Qy2Y;mtN7KB??N^* zK&@CL(0btxCEvFpX zq{t(b9uc`7q1_)%*oJ#~*h(9i(BbX$nF*d^Zk=Q3GJK^~lvm%p#lS#uN~D8hAl37P zzvWVS1xxbkEOFX=FWc;)U+xS1_KDf=j826=E}2+qzmM{y4BT0$DnXrEM8mTdqhtpj zxuJJW>29{*N^?KWK}$&zzm#XeJG7>VYp%a#RYZ3ZMwi_tzwVo@;_|y%M*Qlr52<#0 zen%cZ0%sH+F-Xox^diVOIbjB4?%l0%BA2TanK)Z`+5$I77KtE@_YNcWr1+)RD3LIS zFU#m){@NHb(I{@6g`{dT@8h}M+KU0=mA*niK4Bd zrYZG(4qa?(Mn|{pFZcZ4e;Pab{I~n(t=>Nse=I5KaFd+pdqo*PMIv&j8Ru8{MNjCq zdNep=jS)m;Uabdpb$CK#VMs4efY{3RZOf&{*moFuO5*xNW(mtjKdvSlj;0 z9QHu z#1X_ORon{{;^zanu^pf)w7+#NvUk7yY|{xU@^0oDkp;bKs1Yw0mE?3b_D;#=poB7q zUcD88rIC>}aY?HAj*;c}@Ymu`da-W|DsJN9!MY2-v=FcGQH>>~ja9)X(bQ zee1`oOryOM^KUIa#>RKY8Hs#}zX%WLmy|VOSjC+Ssk@;0ij#IZTDp;l+_`4^(d-zG z)#LX>#D(rUacCb<;QC6~cGiA5Q82Uh^>Z;tr}MwigwMA%$+I zOF%f8%6+tA2;^sIa|yr|Jf&+@SDKm%3j<^}hk>x!d7Qt5yLjQtohZTq(7ohKAg)*V z+)}IG=4y*_*#h)P(K`t_8jp`67(!Q`t&?7t#_wjCNi+`)@Q=nEeIV9d5i%B*NL=(S zO|Tr%Kg-xllgC}3F-5Iwyp?iBw|ZJV#<4ET0=D!4I6PEqN0KDTZ^>Y<#FwYtF1`4m z@{(kkm&lgm1nyHl(_m0>xOQeWYf(?5(TtzVS^o5SqY0O^5Tgo6PTeKLzT^C~b2_Up z#k3v)?;dJ|u-6~Fi6+$c3@7!6u#XX$a<~dxF|T?XN6&Hp$VN^>?Ac)#dKJ3*Esp5> zD$fQ^b^M~%?>S-VG?n@Nnl)~EHHkM}?VPjRj7TKU2PmXqO9{B}9Q<|vES}uJ*?0XQ zJnT-Tr!Uy-+bvla`Xf2KM>nQBhx5e9L;FC{HSwFtxaOgx1M#lL@_-}>ve70`MQ{5@W(L?Wk*UwjQU3=>*Pdiy=I*LeT^%YUAK5cmgye-QWwfqxMA2Z8_R e5vcE7*gL2Yn7^v8R=K&at-hY|wL+bHzx^-X4JHi$ literal 0 HcmV?d00001 diff --git a/assets/en/mission/CHECK_MISSION_SWEEP.png b/assets/en/mission/CHECK_MISSION_SWEEP.png new file mode 100644 index 0000000000000000000000000000000000000000..df4347e9c2f05f63b040381696225b4463136e7d GIT binary patch literal 5709 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 literal 0 HcmV?d00001 diff --git a/assets/en/mission/HARD_OFF.png b/assets/en/mission/HARD_OFF.png new file mode 100644 index 0000000000000000000000000000000000000000..e41bc2a3e8e3a148cb0db6c889765f3e8e3a2537 GIT binary patch literal 6043 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 aCgyk_dsx0;e~vzyjH{yuv(SFWzJCFeoUKd% literal 0 HcmV?d00001 diff --git a/assets/en/mission/HARD_ON.png b/assets/en/mission/HARD_ON.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7dc903a45084f961b9833735be2ff1f99bcf65 GIT binary patch literal 5401 zcmeHJdsGu=79X$*6}9x>)?F=S7*VU3OcDqr1JO!ig_a;y6r?H+lOY*MG9fdO@Ce$f zSZ#5S;#z#6xW%;^2)>R`AD|T#1qBoz2P&|N6ak;BIhhahNVNU&lK1PujC$BWL6;PIZv2M*xzx*>Q013@ls+|L2p zvh9xm^?-_qVxyFy7(wg!xQdP?`DUE~pdl!5y4ipe2_y^0l4?pXL)wauAuy$qA(3LG zKxvSZ8Y(!&NX|_Oiy%@G2&oF0J`D~uW59rpWO3N6)9M+_EJJK|F|g*gQ3SR@*aR6e zgL4Q+DZ^noZ6skSU&tc_0wL@VR=$2BiBvij770W?sK5^uiFqOcCJJpO;LfOu z!{#X7w>txGGDO3&1`I`$l9KpIK787!Muk$T6cvb2k%$KnJSJJs;%1(n8Q*U~K{AAq zGO!e_hdGOQENx0+f>sKnK51a-jr?s>ZxC7z%*nBIMScslsaXmqXC}aqTnNLwF zOd|Dd!V(phI!( zZ@0r8Ct>oBkpJxKJT?x62p&iu`BsJUs1fEjN|gjilr8 zhxfN{t~@w5-g{njxEJhk)b+IE-V=qvv7w=%UzC}$tmdjyac)HH?TPWX&#Z8gwUFZY zl5AOiS>~+F*6w}q&RrKZqo|H?(+}pJCpzB zY5Q9ly!~Dn@C~__Is}3Y1=ix0O;73^x4C>=Z)Qr14C!aicMbzAG%R#I4jzgb5P-Q3 zbr=D@RYt!i09zmZcY;+n(r931$yUQ~riLGS z^BOPoCg1F;ZK-HmoHm>4aNqG&W2eXABZ-JKHGuM-KYYyFBRy4k}|HfG^_a77c-+LX{-$}0Z z_MUWwcJ@4Tx%x&&Vy?RJV!N!O-BMfjR$;*9I*XSj`Dss(Gu{+aHvh&UqFXJG`l8IaI)K}bM(=5 z8LoV5)91Nk4rP=*KK)@)T8>v$;p`FjvSw!fp{R9BH`a8^nsD~7t4cqyH1T33a!2sl zn7yd&sD&wcw4z6!JvLI_)x1g^`K&|Z?3uOoJg;!xv2$V8tzMbYc|>Q`5VzvmOPdS! z-SwLLVR>rrcVyRhm98g?ZtYU`UfbOEG%4}Q4S46plC2#*%TX&}bx(@F$H(dIm05i6 z{JjOewK<0>e>ji&8`Z&aCErxne9%@A#WY8mtT*Zcr$1L7SXM=~zP-DTr@P~itl6&f ziMyJ!(9M0^lyM&EliaI+yxzQ~HC`IC_n@hxZTj6U9r2}4);G8YZP>Tt(b<}n%T_2{ zIPINcesQ}2+cOWFW{GXTQ*_-m==r0X-Q~00k00|}(ETLCFfpJppG~BWm}w78TAd$z7TYA z?CNRJmrUi)U4sg&Y>N+_mz9}vXmN$wn8hr}O@RX*U8$)vrOKUkrw@Em{(NiY>`f`{ zi}a4n?i&uEH=`TBKUQ2eDqoZHbu|+cSai47qi}l<(vuUt^ua$SRQNQ?zijF1$+)Ur ze|W;TF(50KbH%m#&27A?su0hq)+FC7`U`Da-~rjPEuT+~e_Sukxii)&rd1#M{idpe z9hv_3Q(f+lnY9!2(ERv~r#jJ}wlyK;8&;sEqSydI#hV()-eS;apF$uUcsN&fFZSO5 xQUII{UV{t_GBC)%AOnL83^MTl$H4NTt&@VIJvYcZn%8pChs+F96a+2#^qW3TA*4Jb8T3P8=^ zZ0sraW~UJtLV&uvC&2@&P75FcXb?zGpGI`Y_+csX9$0T29tGxBbHMUAPZZb=YNlaE z{2A+mGY%nPtwYRhFd=>zxF=ZuxV#<>0T>9tQrzWf0seS0f`$Tru!{i3qG}7;s1O^g>vn4L>;p{-MA=6bcamfl#Sbb*i>Hf#eO*gu~$w4K0Y4mKuOiBh&E| zcbXcWtnk?a8cW8Ia6}4@fR`6pboU?xQBYtY)Q>p?5WkqklRxnUFb1Ky6Cs-F8ls#& z06j5ZaKs>z{|D!u7zoxM8-T@A$N*OJ3zq0Zpb*GDgnwcBi};@$0Nk3Heev;^u>=Hs zaY3dS1OsV&BIGa8WE(mW3$enI2|*+b)*u)NQ{i(q6r9)J>HH^ck>sD^!qRa60xFVx zff5lvld$d-0?CFz@c+F2zkDV_UJI(ODSyNchxa5<$;zTIJ}F?)?i4HvEUE=HO)WJo zEgMZ8ga%L!x{e=FW&}^17yU0$P=vPTXB1F>p6(R){|V=bL3j~J0qy{AxBz!=EQE;n z2Frh04aCm`e*y_`2ZW>j!MB+i;uM}tamQn@r_d-c5VJZC=ZVmPdFjG28gQVZwcOR< z+Q*Km!QFMW)u0-1C>(~xXn1&eeAY)3FhQaM`K<5xztp!N;eZ|L?*E_L5iKYJFareP zF4_esuqIgk!=$~aHvEG=PQtV_fCr)}`u-$$_&4&ui_hS30I6DFc~MDxpPGU-Ht^HP zA1D7|BOu%{AG5%SY7pxQ{xpsIk5})bS*i~f;Onnz^CN;x@S;%NN!SzK0KfmX>>)th z5K$NUm;&U#XZJz&4;||>9B6~0;g<#s{Q1(tv3Q_wlYj=@P;mV)2y}4q6#9e>Eq!)? zaW$YP?7;kxqjwg)pUJNeoH^H*W73N#@V}lHxF_}IPcQy<@M840HbNiV-*mTK{NCoa z&QF`Rf1ka6`((g*m2Z_zj)*TSM*WIb1KVr1*4?@BP)YnQ`l)Ua1{PFQT+C%_Pn7JB zNY~c(ZcXn=Phr+j#~0gUxp2V@o0qx9?;;cqMSpnPeEs^$z*h#oGVp)Ez*+anj-g7e z*$TwQT+|;D@m6TG@)$^5cF<{RtwE-F&l?vO@m9h@Yqe|0(_-MjTpM&7{=20wYE@u zG8Ua4an>>5hgOKZUbDLQYaTR_EzzM(B z5=R={Q>TI-EE-C($&N+8Y41PC%-ciul9c;q>%~+Wa|6b@ zDq^#nTu6-)irG0)h|Da)IU7A}74;PCNfQwNgNI%u@YSd&8B5;L6g5kJXSlVB0(A7< zr8CGK6l$wm8otexl4CCMeB|thq$ZPn%(BGTY506eV_lfE05l=+@5k4(QZ#)>9cTVD3iYW$F0rZa7mr-?_0gAp4O~ zrqs>Fo42}akmE+AeK-KJzZ;D%jJHaVrkiXvSLXW>hF)KkePG;0^MFh;>w0j?^jk|i z0Ujqyt9MxyT6*|yZH+fo!Fb0mw~U);Dk|Eo900-%tOMyC*<_KvEyJp){AtiNn)vX| zrl{+Q4S~?9~C~XG=dJGp!ce&s<$> zE^ol{&L=T;jp0SC2k34Iff2d~B8;@=m$8$*3&$p<>c0hnhO4xG7fjjjxIY^K{S7FH z;dt#2I5+l38&N*QI#4=zt3cN5%xyPtuA%*UzLl{teTThb$ByG_c@)1 zRfUtHyVBcq;0DigJO6+;tmK6;?TVL7E93?Sh8>kyQzJ@)N2CD9>6GekXeTw&_wHDH zVjAk*lF_Q{`}DO^amC0&S+f4hBqVg^x|__}(qqQp+5%VjsJz<|oe;h>&GRwR-_fgX z4CHyZ-{W!d?%#+7k#8?UEs@V0Ra{oABjc?n-qQZT#iH*&<_7`)r5qluV3v(@ooJStv8LqJTE#Y)pFtzEVwf42^2D}dCGD+l!Y8-&1@U4Y z8i^sq$Gk*#XLOX!$UX?YoiVt4i4gHz?Es?O+9aPNP$v&jd4^`nv&^&nd*1?$f|z|M z^t+|n;MGGp4L_8>K2bN(Wm|(&tT3U!CA+OZb6eroWd-kDFkhUAin3!ZU6c#uiXZcC z(;FyATle@z1K=#O!XFeHC3SRjX5z16SHkU_R-BRiM+nZlEV-3Jv6@F4DeHeAxAUPD zLrX$Fn~f&lvaZVYPrUs)nARx-i!2--G?vOp-<(fn6lu>zOU7G0B&P>VXtz&O8FE5u z)=E~Kp5@{N#Rk=N;aL`Ee!_K8fe^7=mQmTS>a_kcr8JX2f0=f4Y5WE(;~-FP2m6CT z=9;S0=C;1*0(kyA@ci)5vhDpx3x-Qo>vPrIb($lyRM6*oo-9Y>XACV)*`a!3n%G)5 zR#=`d%&ZkkJ%Hv_Tac*Ga+!n?B;iypi z44%>J8K8L&Cm_&!?+>KZW4*x?)rOGkFvk+{;G;GgF@hRCn^WNzq&54e3t6wcwq$8;{cL2_z1AtSoEAZDXpUX3sq&QZN^< z)0PuOWv@S~5Du#{W@Aj9#(aw@)9nN*(2+sNSS64V+9Y=$^VB=BxDAe*u%)=U=KbOD zwQ5(vB|B<1vr{btye?{yGqFcOMlni8cgJoSg>yPn^Tc|y*6tODw)nZWx3!cxjhPhR z;E7&xP~r=A#Dq^pYB4Gh%Y#z;=?q2~=AIneQ8FB8SCu-kTA&_j=txppt5LdLoG-{O-y(6F7c*`;{-o^D^#r$p<>uAWV zvm=xgW1}$D8h%Pb;@zKa5u-5u<%@Y7dfvWiGgm)wzA>iZ$3c}OT@S9RD1njDSq!gu zZyd@u2G5}g#tbS3R%0vH+7q(#Y|XA4*2rv(B+IRI#f8sHdt^=iK+~+NITKn^xq4Y3C%72bzcF+1%0%kg zZ^8JA?D!L+7Og}7-X;I(z@ZK@9s_N=$99}DR1KEf3suCnQE`xcQZJ&s#@mQDPZo4S54 z?hNfw<-AeQU#x@ZabzXh9a3yh3nwFZ1w$(X4XzKn5ksTpw)ZQt_r)trOnwvErZ*eE z^XP7%W;HBjDK4@*V$Yw2ui*?8?#Ij8;RNK%ZK-Sj;trg;}%Eph^Rqy;CZs zj)j_7*>?MEL13nRuYmb9UTD$a^Rv3|r{cQ6_W&d$otIZ_9G2AxW2;t1aN z=)Wh+ZPZ_nD>U-H{oJom_w-0co3jtFi96ga9_sx<9@~P!#JuIbF@dQEn-sId`P29a zZX7$X5QTb~N1M6aB)2+0k+pXIa1Y6WFxF)|8hTXu%wgb^bgtu#l;1t1FPf87=;}O| z=;}!Ca)AgN^q2Dqh#vL!seD`ga-OrJg0G%%bWD70DSu=7aD*VQ>tTDNYQx@hq8ddl zTvd5{^}1Nh?Q+B7Bs@etIHZj-#dN|8#JCX+_c(9*7P?bdK}ua(daLoP@!4)YI@7)5 z#cRnMiv(a&{132(w%*U?aG1WPU`%TnH4g3<8lRS(F}4Ws%qne zV(#zR331_TCHYya^&zS-lMnTMGS*$}?sKC7e$d2?Fw9e;>EM6@Df$Ssh}SgcO82@) zarDz)O?Kti$b~sjdVC3myzWb=9P1oMa^dI8_C*UGmSClIL{`TI))WD}ivt#j>|R2kAh+7VL-CpUS<5eUGIz zZ)aNbu)SrLq8DL)%PsJq57mC79@x$;0C6)R&=AE(tAV)(23WjR*uXnT1W(M3+MrgK zW_7o`)6qA^$(1-h$7Rre$a#k<4wDfBY#i=hyuNDHSZ-MH)T`KeGO@+Swv9cXFYFfY z7d9p@!BPiJI+c2qipK{1+?IQt@Jyz)31Q=;JD_TBPiEEi+`+Mex_LcTesf88ByyAR zG0QS?@0$prtKwNzT;WhPt$?v;c90u7?NT9(cgmXVEDTS$y}cI8wL1gcs?K$QQA_X1 z+TlfFgIpiVjBz~14J50gXqA(okUbDBS@JTv%ht7p`8?h_K{}0HdgiuWc1N60V#_dl zJ5A~wBz*d0!C2(n8c%@^oZCS?x8VDRGrVl}wsGwmI7v2(7bIO2z*aHR@m5QwqmoYR zZ<9+CP0i^H+$bX^)g<*%?<2#UJ@KZ8@Tc@1X#cr# z)A|9Q{qla*Tq`oS4h38$&rQ2&!#DD&v1%I<)sPpKHC?kK=d6gnvkT3m z4K$f+3OMA4DVq+5QS(!iB=+^ZQQUcC1>u%U>X4h4cT zt;I5}6=c1JLe?B?np8!$y#5Th7W>rWd9VfSKBg=p76#Zk{OUePk8`5aGTGNpO?g-J z%QEkiZ7RbskFmy}IsYmck6?P}Zm9V=))>-R@;dhBh^UY^4l zeFu_bIm4ni@ZvPl`lh% zFwgyY%kVLFc2!u2MJOFNcRQV@)5F4+qk;N7E76i3 z+o*kbYflt*??Pwv^o3F)`mSa6)qTGLfu9YGyqaLz6FD(ZNxjUKzm)7a@;yUdv|g!d z54OIiPwp;{&?KV$Ev_Yr;JSC{`-Z3UV5FE6%C80u0KZ2u=38`)nr{^K>-SPq0vPSHnUGV>h;hhSXv_>Ib82Ro!B#5iv_dOZl!^|L zLkCn2V|PhMROAqAOF~Go&ZqAgWOu)-{r39yzwi3I*ER3^ywCl6?!)i7@B4YLIc7)Q zwrKu}`49vxqL3{dAZQL4%2z7NgU6QDR&wC+HJ|JzgrEhgvY#AuCTST!b+Q~?MXom1 zL^_Xyq%n9tOr(Uv2WSY|Y$D;)=mAU-%!ld6;u^ub^QCYYi(v$J!P%f~_~uN17CA(~ z+z~=`q=y912@JT2F>JGh2o!LbA{tD>VRMB5+VvPf}6?=!dz|a zVCFml6GlK{5Og#e1H*%nfgyGifv^#VMPv0*XhRehhrptVXbcgDgH2y>U{1jBB|2Da zoi+yEjNtwv5ub=ciN#{1SRcs~_@OWa0s)1_qOe#5Kp=#{ToFxz;0m=rYp`Gn=>isC z#Nu&bGL1AJUZBVb4qTmzfy19s%N0)Z1Q7#1lC3cjgkBHDk#G3Z2Jo`6FGysNnt*BQ2l)Nlv_}EIQL-*H6$0wtqnnidp<{i9gElA|&NN`~GSkADT+p`# zph0V7IIn;pl{|`tsiP#Rt1*}#+p=ojM?azRLY4E+?Vic4+HA^lD$XbNMWj_ZpSYA^ z9^j!n$I^6j#BsD@?aB3XP{r@B=J+qRA~~nIo34s-x6CNjKd5cTGWAERYvqs8wcf(C z>N?eWhOBq(ANi0!Vw_l@A1oa*>dx1iJXU6J|7Q$jD;;NqfUl5yPR=!*foEM+`!sXL zBtBV*tNegFy~WrN|;>OQVLgDjqQKIH9H@o zXagq@r^kJ-_oGM;i??89F5F8PwN6)*Zn-IY(W@FGr1vvJN{n?#djT&Styh4Zk9xWvqdzwsS(bA=Vzq0q6#z?{h6iAuFBa2sxI(eDo4 z>@`5jF4JD%xAnd4;n2O+uS}9Rqr%Z4C2l4~Y>W93(HlrXos#jVrKyqecBuPO4X$T-*v%f?oHTjJ(WVP_Ek+yILArGkQeRwckwf_2ElG z`VD?_70K({^floh+X@~Y(X4NcU9heD>M`ozv%~6(OnChbO~~N>zQJ1pZG!MhSB!gRq0Jz)d8Ah6v_hu-*h~(?e z8D69{8qjrLFEe3rWY@}SbtZGsbDrXbn;~VknfYUBSCRu>d;C&X^1czeeGpm*-KN}h z2&f+pR&!GOK69m7R{SWZ`rT8HMEBmTit9Ubdom<@-+ek#kr-0iw%D(Th_pdnEifaahKJnSd?--i8{H!DaP4EM(6_6Hl4q=JwrpgqSN+Mo;iHE_ z@2khLYe(%Lo{==B-x<9A#}3CBaSFX zEF`|Zy<_g!uh%@x6)TGRO>J(k!|UYr>oT24MfKgqgj<=YjSX3!f|NS;7LSRkN?I$$ z4aKK$9WDhoda+eP?!7l}Rc#fuHjX}xy@gsXExf!gJe&6OeeG{L)V*o%o~m{fl~>cZ z8GU*auKd%>o@)pXD`{0qsE1U$E8cdiygOwcsMz%W)27$*Tn;PyRwOy*zpZQany>Zt z-AfX(J~yLt%obnT!AlAjboJElTwx}mSDR=Q3>FG6cVfVHa+jH0%hmkU)%(WMi&{?6 z(NxbOsV`Z$yb|x_;^ zb+-kvl232sm7fjmuL%u8EYym1X7BI(q%(g($E5~;(Lj4n%sLq8!#4@n@jkB<+NK3%lU`ta#D4YT!)xrj>|9I-*zfjCv* z+>-|qP;wS#<)g23$~poQtu!`^K4rgX?khvIxQdOQ50Fea<+mbJu0_dYn7pnb%!pv^HECHA<- zcVA%~mUrh)YfikktC+%F)A}O`WaaR4N8Y{0XJFgm>H9_?sNK%qbBBk{fZh2$igomj ztf;cpYgcCtv70Yz8XZ4L?D^)wAk2+s!A)lR)gYEcg7j(W_g)EH>fXMo?vv$>$arsKB%;0<+cWAe~ zLbPshf+hr28n3Aw0qIgh&)gs~^S<@wn>F+2jCZZ%o_qH1?D9K%?{kyO)|MvX zTV%HY03dE=YGeZd8^EFPYf)kFX1Mo+5O~|{XNsW#z}D@8j}UM(Sq4Onkn9}kj%W)c zj^e9=#ZyibR9L=#AQ}L44Oo6yoHv24aGF3Qk@X5ke~uz0v)Ts^7SFpkSsmOs$L{G7EHq+3ab#hw;trEz@UO7 z+FIc_g-TG+QGr8os;Y1WEpVi+iO|;3Ijn$CMX144HDL%1C_)vf3P);aD6Cx&&>R)- zfwVC)UNZ(h=|Mc{bU!2v#$+;8m})8%DiH?P(b0jaB47vv6huI20c1Ls1trrIziBWc z&~Q|eADu)YD+n}VPg59lJqYOP*BE^L*42_}YdnFB!B|*77+ghF5Ys9Uk6Xw2F{nPP z#_>29!H3{WAk%3e7QT-4^Q6!zG*8MuQN1qyodJ+rGrg-BaVh~zr%>%E z6rXSVZ~cu31%!qQT;YHNiHxT(Y03gO))o+quyleRM34(mI0A}5*ugcCs$e>3JAFl= zDR`1cz#pQ(j9Ev4`G?2SvHu?qk3)J;sJ>W`HO!Xr;(aX7d-!UL+UjnjeRJk&LzItVQ-=xLmm2Nti2 zQ&q=#d|Pis!7&60@@+l--&}7+C4m)+_4&{B2sRW6ssWwA3aUU40*5H9PC5#5!-w&8 zQVXF9UNE@edrgk{7xKT0Pm)O>sR)RIASJ%?XbW~2kVs7p4K5Hz(dxi zN&oTgeO1f!B!GPVac+J^&?p{sCYDM#N(A}+muU|J{e}s;(AN-P|2Mi-**|owZ*Z^; z3Wn!A=DBQZyPNwY|C-ZRd@dthD*LdP zn3B>qciD63scd++>=F3UD{a+66&np^XXB0tu5vcf--Fo_r0*0k)?OM%8;7WOEvK+8 ze^@%k);IyGT!D5<+tamF?h`I%|;jskE&0EKr;OoHzuI$CyEZr<@d+D zq~vD5Wga)4^A#u4Bc(Fadh)X;s|;9Q>I0ocD?}L4OcCI0@ipUG82YNT8AZ8mI-i## z)zWq_EVken_YIau*9yzpepcwLrnLfeMyad#5Pz2R&Oat?sie(ur|{rT&kaH{fXrhV zsj#T5l-c1Wmut2B=!98|=m1Q`m{@Yo9TDhX01-gZ{9cs*^K+IT{6p?1?lY9Dan*8cOd=BHKX#pC98Pb63RTYy(qx`x7&~R70)w-w#NcufE2?17pypAVRK?g zO)S)exCKBFtXAZCP} z_(FD2^i*DguHjK(RlqvDpMF7Qx2H|y<@wJPP0gdM+e%L_A&(8PHOrN&jwFC;3v+@_ z-`ad5L=h5$*_awJR96*QWjG~T1sDd~Wc>Il(yrzgZcJK+Z{Zi&eIEOKvVmlj(X?i% zQq_?+pC-rvpgQp>hny(nbD?9u*TBFd8%gb`M5ik!55>*B=ptLlV~p}jLtl1SSx^>A zZ$j%JDEk45R+MS;Ne0S4-4%54b%d0%xB5HjMZ+NEd-wP(cQ>mRNq&sW{)|>sP>U?Ln5(x zyq53#wxR@h+O$Cy@O+*A>8kO9@~aW2kq6Mc(R-y66D{%;*Qj2$4|ZRS3=eA#39A;w zdtO#Xvdpvc{`2kp`ee><+Z3;OQcUSsoAsmW>f&09tzyxUAYbbD9norsmZd~h<`cNM zD{=;BI&n>9)ey6jE>Yd~=Erya8nz5PQL6%~K4%;=%Wy2Bh*ej%6;CbiU#{lU>ARD4 z=VRmy<|k*oEq8}3M%A~4juPbVSOyeTcytYKC6^EX79OHrRM9`!%tSqt=ehVb@QCgH zGqIW6N;t%|z35Y8l4S?0hRbAdc1Z4ZVa!7vI7@FN^qe>qr(kIdInGuoTIIaDv=8dU zS$_Ya0-wf8{=;5#-kv0GN_%|p%5A++)@)Np2RrwE?MdunvAyZj>xDEooNwye0kUuy5xhbvJ!po(YjIu2oXc*g4KwvE?~rbw%9J zqt(1}=vo}?`ruGBQFEQ*9Na+*Scr+xVrSWfEEF}Y_@GeWqgxukshkoxGz-)J(UL0} z-xzOhuTOs&K082>;AO>yPP0!AYC$>|lN$0k*pJij9QP7M`CDPen?Wi)WBfh3S44^` zrl#JGoqrePdvt!ZvSi8qMhwigRNqaz@d)9mL__PBr?lF=%Yzq(J^Up^8}{$!jojXl zR7>glJa~VJ-b#w&c_e7*F2{$bYL`?{>qkb_vMLL?#1(EZvv2m4dF?Q4ad~HLo%a~O zqcd;nA)1(9Hs4rBS$f9gdk1hrTB6hPbw5_U*xBAW`PU@WNBLVqL$|l81Fw;&O-R{- zvAm8`o7e^P#g3gW%O>86y&VN5ZoiI9FQ(npWYtlYpSLv9YcMq!hf`Pcb!XjFoOylY z^o--mGo69W^#=T*C$*im(Ziv!FGZUvRM61&qsITZ$5Dsr; zrPtT>P?X!3@cdRMeNm6N)O@GJgI5+7e%bcJ0yw{z{bg+DN9maoO_E;|CfL<>}vf3fcfY+K;+Nt`7KHx_58NztTipH*yxqhGI_ zB&}{Zj_qK@`O@-O)@qx?y)kbW&fI7KEv@eQ-cHt-INxPRVL2_7SDm+u(!wsBb+{?5 z?46-?R!mGP1B|E8INll&0@jcJ_&5uXBU$t(Shd+L4{~fm`<3qasN|2_OoWDv7tBw> zc=eaUP4ZqfqHoX&CST=%u3mzdf2^C2JiOA zxO-y{f)jJf6$?Q=ei7`iTV&$GrQ+OOcpJHluJ(8D8rnW+DcStw%_-}?RpWri%2vvsh>J*xs!%7E@+ed#-<*{rI?IfvR>s%eM_;Z_QB7>;y`ri=AS|oPd{x@ zmMh+-Q!{=bBl7c+jL<;3$FtvdBv+=y1UUn;>4Ki4-deTABNxL>@*FHd+3>wX8g#3j zpx*9=htFccj%m2HIkKveBHd8Xl6bOGI675u(%Z@Y>6~<^ciq7gj}r+!SpZrIOwd4=LGDYqkX7Y2w25arM(|Rx`I6NEWt*!Z-e%2F@=dg6%R>^gQxdxR{G_l!d&E=MKSq<&uv3E|%zd#DfZl z^AJ_lK*6DZO!=V6<4EiF-DWn2_udo}i@qvwur^(0f2%mDI|dG+7g1rJyJTd<1u8DT z}PP-jOoAYbzk_@yv`fE>0&BH>ch8)}H z=L)s13~5^%fQGY=$G44l*Mx+(-iVLj5K@IV8k++ffk-dvkg15P%(Z6@P&J79D%7*M zH@+p}HLBF=fAdZKd(__<_|Cw02EH@!oq_)j2BJUlg@)OEPsy9#mk1&> zaIgV!K^hcroWX_NZgD|TP?2^+1QAdH0R@r8c@>uKo?}m+@z?yI&Plyj?|$zt-@Esw zYPXM<+k$xp^B@RX;J)6)7lJ+mQ`H6yRWPhs;h_QsP2u{jVhGaG!G9{yp{%6<^$PX# zm-w?h85}H<%;sXD2w4#+1ZW7dcT@=3oCrih2t~qB0h8EQUQHyRTqbdgC5yrmIwRre z`WO+iDaOl>6BEI)}u=jJ3rjPWFLwg_1p z2KfEMw1dPL8A>RmJqb)rMt^o zKSfs0V{D(_mSuBW#bLZK{q*F|{oV%fSLLXjQSDRaKq;dUzy?tr2 zq7y}~eAZp3rX3pV_+OP;<+*GM^nZ}6etfU7%8s6Otlg@4ekxn_WOCWWHplsfpRYb% zpPlV!e=A>nE3>k*{zlwLM`i3PHRb=y>}{5T{|g3^noSC&D)qU3W+~c7O*g-ETCD9_ zwHUlNiFc&jPzNrC8AEd*Na&@V1m2@;Of+i1T9%Gl2pDc^s#3tvxy!RitM%2o!I6s> zFUD1UThB9*d0yql?EtcpOw-NHIq}6G^uH+%u6{f6E-lm3>}|g}kM!=Dw6k)AReEYZ z1m!lml#+9oedkfD?WAiwVjsOcqiT3(Q$$XeUC$2PADPy{i9M;EU!8B?ZRa-W+<;?^ z^u;w+U=V3MMY~PA>TKJ^%F&^35O-j60jnHVY3hQ4?T5u_{d3_9T|>rNCUV)U$HN0{ z4>S7gB&Y13G&P<@d&V^d1`-fg((}AIkD&CHq2vPWRUI!7K9n$#9USD7>1bo)`%@v% zX|NaC)_2rY;&sUXLY7tO$&^~KNGGeDZ>f#y`f&Y;Sw`Two>TkatOvG3Z*h^S%6YHH z(mNG(ihe^!dqtN}+&(HSH3V#6c|34mW2q|CSebD>K6a!~TK!O37iX0n zBpqh`Gi-a-D;a_xNy907)$P>*fr0v@iir=M`ZvofJi7G(&%4oKV9&7ChFlcOZ@;~w zh}rYvQq=w6l8Jj?obYrPUZEL=0NB=UsJXx`q4epqH|5V#PBzEMuid>lG|Rig{#WZy{As>GKcI%yagT_}M^CpJC& z5RkLtaQz$RSy}5y>N4+m(wPC(j5+oo-LxQHGip1cisH z3RMgH?P{!B#_Fp&hqFd3Po~HBpON2k7>o$gQ32l$LXXogm<%QBEU}MwmAJC#=?wR|EWAWbM&xSCKBbAlRd9?vs z0Fyo>z=?0Sq_=C0QpEl#rKPvGcuKZl`Oh!hB4S7LGJ?)@nag$eCI>VR!~l;<`np-w zPxP!sNw^CZe>PD`j+=O0(_ehEU!KrjJU(|Jy>4ei$N7XG`~n8AJ~%u+_B1C@FYiob zDH(k8_(N)2=bMATW{c-OfHxJosul233yz6UwN1Qh| z-to7Ce*=L)JIn62WLN+kEa3|S#^PxRSWZGh@q&X- zi3Q4`k>}-36G>P(T@^KDjH;@d926L7YOCw$>Yk8OS5?=5sA@yhwUpIWVXA5{EiJjv z7Z?yna&?2D5JsPc0Z(wS2ZiDTgFvWMstQ#@g-CLTsOjqJLR8fu>gvh>g)%viKyeOG zCXnU7a6n+m7!uBhf+G^-#2lSnh<+3}7*KW12E5N#wgmELoB+fi0nR=UH5FB{O%g&^ z%vU-eKa#gZxGM&N^~U0{1PU3TRr^Zo<3Xel$sWXi!TRg+KM4S^MIyh-_)A^z_^%?! zlr#Q-8J_|9OKP%ppbr*;!jg%8Bnwm2Ux1KP*HTfFQ?$VmT!~b&l30z;8?Xpx3Kk9)`+~BXy0W^u zwVF0e6>tZgOKVg}qASiV@Gq&fU|Q;5r~vZFVcLs37;ho*F5Fdg& zSnlg-z)lmri6lTAppJ$_HWCRtOCVF62^j2I1RMNYyc&k z#ZdqUtAXVtlW4JTc>AqQLe*7)3!*0e{k(4bZ`S|5e1U)iKvf6JiCtn1M=K!106=PM zX=!MEoW^QWO>>ITH`ar7t||`Xd02mnYLYVAEq`Oj@6dCbN14muLY(X<-1%VANq~nbrvxrid!N zDu{+F(|NOb-${zgx1Vnad_&+H0{>qKblfhO-3AEvQLdQ2R)16L0%w_#(?Wt0n_}H1WC)wCL48 zbn|Z{RQ}TCvQ^CGaD?W&lwrk(m0O&)Y68!gTmF`5+=8}RB^3O2MyPP<#!q6hkHsd7 z94(7OdRCdIA?pP}FH0Zi|4kL(R^*Sir4B6b(!GBoNE=o2CYKExsV^eFAHl2xn*FQt zbgTGFa|zdKk9Maf^s0~Ch;Y`qDN)eU3xhk77OBboZSRwP+OZA|EwvpR#G1FgFZeaB z!bw-A?Vw zdN~K$0ATkftER($n@^0QlBaSRgk_bX{DgS-Bxo}LCVS_-5oTMvXV53)OFK_QrioTk zI5St_VrRJ*YPU*Dum@7={d$RU&-z#$x?az*8tsWPYP!aRIkWTf&6ap}@fNXhVfDM> zv<;V<(uBcUdOzoi#XkBi@TXji;H(m9Xg7nUb9mn8fkYep)7tf;Z)~!+=ShsX?|-br zJSO~sUq_+m1U0Pwc(RJCA#!8o8-Dm-n3Kiu&A~%g{jLG$;PgXkIKw=TJvCCb z@;>dH*M!J%nNuRFucCdtL7>f$sEj*wy(Vd!NW9c;R-8gMH~bBrJ9am{C`@^6d-0Ae ztmwr}*|AwtuUS$~RyZ?mfZDsr*AS7pld~38guvkexg=UdxSMP7^dlL{;pU&mc1hg% zL?-+-)GsT~P9=1*U3R$vDr$K}9<`uOk2~;($D+&N#mU!V-AW21p8B(CG%cF-wyrIK z;eVXSQR&YjM5d76F7#TYEHI!eqJ-&DBKmDMvo!fW)i3yhB&<$k<}?vq&JRExmTpI{ z1hwwfYP;>3U(9}hR1w)PS`PL@@uj$Flh!kr64L(a-rcQ|;U< z6Jb*NQ`L9tk7g&4dT&*0G4^VmX;4~O;KseeYM0$YV`Le z*>mDJa=LwbYxSmHyMc3QJI)i)nq?HJh|}8|`(u}AW8YJuyx5Nqd)@s0suv>K#B%8=NAG4BdGqG-@#_h8*n}$|*Bz-VW1bY}6Aw>BRZYUNf|AZu z?jANl2|Umul@>Y-Dd)W_eUjbW$7GauHSk{iSsI=9(zzu}V5STHoU-3IbVj5vw1#KZ z3}>ZGNF5ocA0l2Em~fnJXipzw#FO|#`n2Qx#!9}7>{88@Ts57}=sTRAhL>ALMDUP< z!Qz}3Q%tW|ES?_WE@Y4*cUyXDT0)baj~B%TPT2tMuGHm)p3z0W_t7jla9cd8%UjgL zGp35tsG)qe)xw+t=XvXRYxt@BCc>)BYc6vZbAJ+YN9zSpZsZ)aseAH7L)^J{_Z78F z^BJ!jVhu#mjm+V=C;JTpSAQLw=^poQ_w$P9hlcdo+v`$=mt*Tw&0|_2#k|ns3Vc8i zsJHa3E>C2-mSsnzs<)h%Cq<$rj3OAry<~pn__IS66%)M{?dH*Y18tI!apyG8$ub24 z3mT5km&TzGKRPN>dqb_;=7J^u`U+8kIQ)F_WN@Gu{~svPC@-swAr`(Qh4y+6QxGDQ z$32Q?issUI7uXycWl0EMepA|L7}72SO|yp=^~UF~0AGz1LB!}rz0oeFcIMW7fNvP* z;&)Uu#cvZmPE4%)aJO->%?5sD@wZ@uPoES7qLYZ38}NJb+Jij%#_l7#23LU{S2NDb zvy;%ofj?jW(K;Wg$6t<4UrMTjwujG8Q}xk{UYx`D^}P;F`WhQ!Kd#8ELd6~!hstmq zG_^tz7nCeSAI71fbMF{!ZEf&tP)5qmpc5#eTo^#+l#W7}H`O;qp!u(Z4HruzO0-iI zQ~i~uS;#8hG4AeN!P*;$BmLG2iJ_+@nDUR!TrjuF&1)%Bi;Y3&3?v5zb8>P? zrF?FO-~hb)fl*|*JsHm|T!|=SYcC?}iurl-iT-COoeKlF#;U=!s-M5Nsi7!-I>%w= zez_=Bc5$$TrUP~f6r^emhnwi8T^XHq^lRr$AUhQ;johO8$4xD3i8C@)-8N!1`o5bb zWrkaw3p_gNCYnlL;RLTt^3r9j^77+IA9j!sAxqPQrE7w~ODFOR5_;lg+D2r;npHQ@ z{|(l}L-2b-lXo-&r~3q}gAw)Lv!NL|$PXY5gWRp&r!MXkIsmR-!K zS{7R9`#jUr4%1db<*5iAR$Cg&#@Wg2W>iiQJN{JXyJy9SgXwta{-2HC>5P>8B6iY~ z@8SYRW!1d{+v*fxO;In51)`6IRl{5r2M0So;i6Z`=8^u#!*=GES0m|H26-i1ihqTz z0LV7o<4_mWA}7e++|sl6@{S|q^fjMHMpWKWLF#T$${x!?kB{t0ML#?wEFa7ut|SYM z3Jr%h5dwS0ZC2*D5ts`%G;ETNhp8(zwc^hDf5c4BfYQM^;(V%l(Nqm*>uZYj-b`o_ zL^v3<)gLci?sTja5Vdcj_L|XUE zp|wur9MFkWn5T@5Bxs_meENmlMaR{J7fXW(M6@*+jFLGr)}5ak5B3Y9a(uh%LznMP zG*$FKY&J7;nr{eXZ$2x~{es+3jcWQ}4#{>FiY(^(%%9FB^S{i6^ zD8I=j2OFU8(-ll#tMM=;m{KCCXX(Z2LPb@8AQw znB(Ev_v06P^kkPJ>7ke1XPMi=mj8FjT%UrQ3s@)bDGoR&i}QT&CaOeu4S{EpCJR z(C3y6{XH5VSj!vRm-lE|W*GH;Fit=rD5z|u3PI>f16MduSh4#YUHfg2RT9jsYANJH z9?3U4MZ3(Xy<+^b#ESB>II;yrc~{tOYL9OV56b;iw}rK{q;JGLcy=z?Vr5KdIDK3Y z5@J|rk8{aTVi@UGza72&TK2qt2yd?%!Ey4b8gM+SR!VA$mSx8w0lnJ_>%EGTy`WGI zOeZd#Qac#BG7JfsYN;g27utWI7r&T$J1X7$yz%|ekIDYa>bD>5kLm$9EE@_1LdPSa z&Qn2y2g@E-E8TC8Xd}>CNwlFT_m#OcsnEq0$Xw6@1Hv3EiVgkqLtP7fbCJOT?U1zg zny0YhnB*Jub5GCoJsyRN-=Zq_NdXPZSs>#!1Tw5HmT^+#!JCh=lOH$LoYEGV>n~9Y zK!@$518U8kB&8N@ZIu!4;VB)Dh8#s@9%LlaBK&Iw_Pk7myY7?ZTe+WhCj0JKmAr}Q zY%DgaGBUjH_?9&tAl1wZY%eFb(prA6PxiV;&TLN1lQ`^7tK9#pSVdl5a(ap({z=our4;yT{xR(`Eo&u z*!fue$_C1qb8Rly3s3aTK8Tck?07Wc!A&66BQ`n#wQdl^SNJl`TI>uu z?5vu1GT(Pp9OaJpYsMaW43Xb7^sAefq>$W-QxKLWRcJ0$D}YKiDAZ0oJ!y+x+qJX2 zX-<(2m#vGdV678Z4fJ`*EvYNGquKI;rv#9Kf+B_OL^b$AM+ZTwI*jFjT+T2(4 z#B7n&Z~Raa79~$-F^NqFi68kp;ckig3(ejdhY+88Dub4h@)Ct9>yEa#l8CH+)M)9z2s3XQhM=x!5p z6AaCKrk<4Kjnd0?acY8NGip|4b;(&`uKhNrv2R%@niT4y%Qa&m&6b{l{_6BO}xTrl>WZYnMZYr3v{E7Z8*~(CO9I7v;H(^ zwlQQMzghoE#B4_tZgJRl&7Lxzj_$of?B5^3iizxZig0C7jNNkis3&J~RMSq#_)cP5 z$E`>^U(&su=$7sERmH5JnvFQ2tcHWej{F}=AGVOl0 zjK<-g52R6EYUvFC$>!Vj4S{b6d_&;>7=gZkMZ@a1@7CKPeiVOD1)V)(jwtxq>H2>H DW6jNl literal 0 HcmV?d00001 diff --git a/assets/en/mission/SELECT_BD.png b/assets/en/mission/SELECT_BD.png new file mode 100644 index 0000000000000000000000000000000000000000..b09f0527e91efdbf081104497298b0c4edbc5233 GIT binary patch literal 12815 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 literal 0 HcmV?d00001 diff --git a/assets/en/mission/SELECT_IR.png b/assets/en/mission/SELECT_IR.png new file mode 100644 index 0000000000000000000000000000000000000000..39c493d8fc5cda2388798006370a5e7c486f9e1b GIT binary patch literal 14512 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 Cafe > TacticalChallenge > Circle > Mail - > DataUpdate > Bounty > Scrimmage > Task > Shop > Momotalk + > DataUpdate > Bounty > Scrimmage > Task > Shop > Mission > Momotalk """ """ diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 258def7..6d3bf99 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -50,6 +50,10 @@ "name": "Tactical Challenge", "help": "" }, + "Mission": { + "name": "Mission/Commissions/Event", + "help": "Open MCE Manager for additional settings" + }, "Circle": { "name": "Club", "help": "" diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 07927ee..4ab9e1f 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -50,6 +50,10 @@ "name": "战术对抗赛", "help": "战术大赛 / 竞技场" }, + "Mission": { + "name": "Task.Mission.name", + "help": "Task.Mission.help" + }, "Circle": { "name": "公会", "help": "社团 / 小组" diff --git a/tasks/base/assets/assets_base_page.py b/tasks/base/assets/assets_base_page.py index 1d9bf47..f24ba41 100644 --- a/tasks/base/assets/assets_base_page.py +++ b/tasks/base/assets/assets_base_page.py @@ -538,9 +538,9 @@ WORK_GO_TO_TACTICAL_CHALLENGE = ButtonWrapper( ), en=Button( file='./assets/en/base/page/WORK_GO_TO_TACTICAL_CHALLENGE.png', - area=(1034, 435, 1162, 466), - search=(1014, 415, 1182, 486), - color=(179, 199, 221), - button=(1034, 435, 1162, 466), + area=(1012, 532, 1152, 591), + search=(992, 512, 1172, 611), + color=(199, 211, 227), + button=(1012, 532, 1152, 591), ), ) diff --git a/tasks/mission/assets/assets_mission.py b/tasks/mission/assets/assets_mission.py new file mode 100644 index 0000000..4f591e5 --- /dev/null +++ b/tasks/mission/assets/assets_mission.py @@ -0,0 +1,148 @@ +from module.base.button import Button, ButtonWrapper + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.button_extract ``` + +CHECK_BD = ButtonWrapper( + name='CHECK_BD', + jp=None, + en=Button( + file='./assets/en/mission/CHECK_BD.png', + area=(94, 135, 325, 194), + search=(74, 115, 345, 214), + color=(208, 215, 220), + button=(94, 135, 325, 194), + ), +) +CHECK_COMMISSIONS = ButtonWrapper( + name='CHECK_COMMISSIONS', + jp=None, + en=Button( + file='./assets/en/mission/CHECK_COMMISSIONS.png', + area=(646, 78, 909, 135), + search=(626, 58, 929, 155), + color=(70, 96, 124), + button=(646, 78, 909, 135), + ), +) +CHECK_IR = ButtonWrapper( + name='CHECK_IR', + jp=None, + en=Button( + file='./assets/en/mission/CHECK_IR.png', + area=(97, 137, 340, 191), + search=(77, 117, 360, 211), + color=(213, 220, 223), + button=(97, 137, 340, 191), + ), +) +CHECK_MISSION_SWEEP = ButtonWrapper( + name='CHECK_MISSION_SWEEP', + jp=None, + en=Button( + file='./assets/en/mission/CHECK_MISSION_SWEEP.png', + area=(654, 184, 703, 209), + search=(634, 164, 723, 229), + color=(208, 213, 219), + button=(654, 184, 703, 209), + ), +) +HARD_OFF = ButtonWrapper( + name='HARD_OFF', + jp=None, + en=Button( + file='./assets/en/mission/HARD_OFF.png', + area=(947, 132, 1193, 182), + search=(927, 112, 1213, 202), + color=(242, 246, 248), + button=(947, 132, 1193, 182), + ), +) +HARD_ON = ButtonWrapper( + name='HARD_ON', + jp=None, + en=Button( + file='./assets/en/mission/HARD_ON.png', + area=(940, 133, 1189, 186), + search=(920, 113, 1209, 206), + color=(200, 71, 63), + button=(940, 133, 1189, 186), + ), +) +LEFT = ButtonWrapper( + name='LEFT', + jp=None, + en=Button( + file='./assets/en/mission/LEFT.png', + area=(0, 301, 89, 408), + search=(0, 281, 109, 428), + color=(193, 224, 241), + button=(0, 301, 89, 408), + ), +) +NORMAL_OFF = ButtonWrapper( + name='NORMAL_OFF', + jp=None, + en=Button( + file='./assets/en/mission/NORMAL_OFF.png', + area=(682, 135, 927, 182), + search=(662, 115, 947, 202), + color=(238, 243, 246), + button=(682, 135, 927, 182), + ), +) +NORMAL_ON = ButtonWrapper( + name='NORMAL_ON', + jp=None, + en=Button( + file='./assets/en/mission/NORMAL_ON.png', + area=(682, 137, 924, 185), + search=(662, 117, 944, 205), + color=(62, 81, 89), + button=(682, 137, 924, 185), + ), +) +OCR_AREA = ButtonWrapper( + name='OCR_AREA', + jp=None, + en=Button( + file='./assets/en/mission/OCR_AREA.png', + area=(108, 176, 176, 219), + search=(88, 156, 196, 239), + color=(237, 238, 240), + button=(108, 176, 176, 219), + ), +) +RIGHT = ButtonWrapper( + name='RIGHT', + jp=None, + en=Button( + file='./assets/en/mission/RIGHT.png', + area=(1202, 311, 1280, 412), + search=(1182, 291, 1280, 432), + color=(193, 223, 241), + button=(1202, 311, 1280, 412), + ), +) +SELECT_BD = ButtonWrapper( + name='SELECT_BD', + jp=None, + en=Button( + file='./assets/en/mission/SELECT_BD.png', + area=(1016, 165, 1227, 211), + search=(996, 145, 1247, 231), + color=(205, 212, 220), + button=(1016, 165, 1227, 211), + ), +) +SELECT_IR = ButtonWrapper( + name='SELECT_IR', + jp=None, + en=Button( + file='./assets/en/mission/SELECT_IR.png', + area=(1004, 267, 1237, 321), + search=(984, 247, 1257, 341), + color=(214, 220, 227), + button=(1004, 267, 1237, 321), + ), +) diff --git a/tasks/mission/mission.py b/tasks/mission/mission.py new file mode 100644 index 0000000..9b6ccc0 --- /dev/null +++ b/tasks/mission/mission.py @@ -0,0 +1,260 @@ +from enum import Enum + +from module.base.timer import Timer +from module.exception import RequestHumanTakeover +from module.logger import logger +from tasks.mission.ui import MissionUI, CommissionsUI +from tasks.stage.ap import AP +from tasks.cafe.cafe import Cafe +from tasks.circle.circle import Circle +from tasks.task.task import Task +from tasks.mail.mail import Mail +from tasks.item.data_update import DataUpdate +import json +import math +from filelock import FileLock +from datetime import datetime + +class MissionStatus(Enum): + AP = 0 # Calculate AP and decide to terminate Mission module or not + NAVIGATE = 1 # Navigate to the stage page for example the commissions page or mission page + SELECT = 2 # Select the stage mode for example hard or normal in mission + ENTER = 3 # Search and for the stage in the stage list and enter + SWEEP = 4 # Sweep the stage + RECHARGE = 5 # Recharge AP from other taks if they are enabled + FINISH = -1 # Inidicate termination of Mission module + + +class Mission(MissionUI, CommissionsUI): + _stage_ap = [10, 15, 15, 15] + + @property + def stage_ap(self): + return self._stage_ap + + @property + def mission_info(self) -> list: + """ + Read the config from MCE/config.json and extract the queue, a list of list. + If queue is empty repopulate from preferred template. + + Format of each element in queue: [mode, stage, sweep_num] + e.g. ["N", "1-1", 3] + + Mode Acronyms: + "N" : Normal Mission + "H" : Hard Mission + "E" : Event Quest + "IR" : Item Retrieval / Commission where you get credit + "BD" : Base Defense / Commission where you get exp + + Returns: + list of list + """ + queue = [] + try: + with open("MCE/config.json") as json_file: + config_data = json.load(json_file) + queue = config_data["Queue"] + self.recharge_AP = config_data["RechargeAP"] + self.reset_daily = config_data["ResetDaily"] + self.reset_time = config_data["ResetTime"] + self.last_run = config_data["LastRun"] + self.event = config_data["Event"] + if self.check_reset_daily() or not queue: + preferred_template = config_data["PreferredTemplate"] + queue = config_data["Templates"][preferred_template] + if not self.event: + queue = [x for x in queue if x[0] != "E"] + except: + logger.error("Failed to read configuration file") + finally: + return queue + + def check_reset_daily(self): + # Check if it's time to reset the queue + if self.reset_daily: + current_datetime = datetime.now().replace(microsecond=0) # Round to the nearest second + current_date = current_datetime.date() + current_time = current_datetime.time() + last_run_datetime = datetime.strptime(self.last_run, "%Y-%m-%d %H:%M:%S") + reset_time = datetime.strptime(self.reset_time, "%H:%M:%S").time() + + if current_date != last_run_datetime.date() and current_time >= reset_time: + self.last_run = str(datetime.now().replace(microsecond=0)) + logger.info("Reset Daily activated.") + return True + return False + + @property + def valid_task(self) -> list: + task = self.mission_info + if not task: + logger.warning('Mission enabled but no task set') + #self.error_handler() + return task + + @property + def current_mode(self): + return self.task[0][0] + + @property + def current_stage(self): + return self.task[0][1] + + @property + def current_count(self): + if self.current_mode == "H" and self.task[0][2] > 3: + return 3 + return self.task[0][2] + + @current_count.setter + def current_count(self, value): + self.task[0][2] = value + + def select(self) -> bool: + """ + A wrapper method to select the current_mode + by calling the specific method based on its type. + + Return + True if selection happens without any problem, False otherwise. + """ + if self.current_mode in ["N", "H"]: + return self.select_mission(self.current_mode, self.current_stage) + elif self.current_mode in ["BD", "IR"]: + return self.select_commission(self.current_mode) + elif self.current_mode == "E": + #return self.select_mode(SWITCH_QUEST) + logger.error("Event not yet implemented") + return False + else: + logger.error("Uknown mode") + return False + + def get_realistic_count(self) -> int: + """ + Calculate the possible number of sweeps based on the current AP + """ + ap_cost = 20 if self.current_mode == "H" else 10 + required_ap = ap_cost * self.current_count + return math.floor(min(required_ap, self.current_ap) / ap_cost) + + def update_task(self, failure=False): + """ + Update self.task and save the current state of the queue in + MCE/config.json. + """ + try: + if failure or self.current_count == self.realistic_count: + self.previous_mode = self.current_mode + self.task.pop(0) + else: + self.previous_mode = None + self.current_count -= self.realistic_count + with open("MCE/config.json", "r") as json_file: + config_data = json.load(json_file) + with open("MCE/config.json", "w") as json_file: + config_data["Queue"] = self.task + config_data["LastRun"] = self.last_run + json.dump(config_data, json_file, indent=2) + except: + logger.error("Failed to save configuration") + self.task = [] + + def update_ap(self): + ap_cost = 20 if self.current_mode == "H" else 10 + ap = self.config.stored.AP + ap_old = ap.value + ap_new = ap_old - ap_cost * self.realistic_count + ap.set(ap_new, ap.total) + logger.info(f'Set AP: {ap_old} -> {ap_new}') + + def recharge(self) -> bool: + """ + Check if AP related modules such as cafe, circle, task, mail are enabled and run them if they are. + task_call only works after the current task is finished so is not suitable. + """ + cafe_reward = self.config.cross_get(["Cafe", "Scheduler", "Enable"]) and self.config.cross_get(["Cafe", "Cafe", "Reward"]) + circle = self.config.cross_get(["Circle", "Scheduler", "Enable"]) + task = self.config.cross_get(["Task", "Scheduler", "Enable"]) + mail = self.config.cross_get(["Mail", "Scheduler", "Enable"]) + ap_tasks = [(cafe_reward,Cafe), (circle, Circle), (task, Task), (mail, Mail)] + modules = [x[1] for x in ap_tasks if x[0]] + if not modules: + logger.info("Recharge AP was enabled but no AP related modules were enabled") + return False + for module in modules: + module(config=self.config, device=self.device).run() + return True + + def handle_mission(self, status): + match status: + case MissionStatus.AP: + if not self.task: + return MissionStatus.FINISH + self.realistic_count = self.get_realistic_count() + if self.realistic_count == 0 and self.recharge_AP: + self.recharge_AP = False + return MissionStatus.RECHARGE + elif self.realistic_count == 0 and not self.recharge_AP: + return MissionStatus.FINISH + else: + return MissionStatus.NAVIGATE + case MissionStatus.NAVIGATE: + self.navigate(self.previous_mode, self.current_mode) + return MissionStatus.SELECT + case MissionStatus.SELECT: + if self.select(): + return MissionStatus.ENTER + self.update_task(failure=True) + return MissionStatus.AP + case MissionStatus.ENTER: + if self.enter_stage(self.current_stage): + return MissionStatus.SWEEP + self.update_task(failure=True) + return MissionStatus.AP + case MissionStatus.SWEEP: + if self.do_sweep(self.current_mode, self.realistic_count): + self.update_ap() + self.update_task() + else: + self.update_task(failure=True) + return MissionStatus.AP + case MissionStatus.RECHARGE: + if self.recharge(): + DataUpdate(config=self.config, device=self.device).run() + return MissionStatus.AP + return MissionStatus.FINISH + case MissionStatus.FINISH: + return status + case _: + logger.warning(f'Invalid status: {status}') + return status + + def run(self): + self.lock = FileLock("MCE/config.json.lock") + with self.lock.acquire(): + self.previous_mode = None + self.task = self.valid_task + action_timer = Timer(0.5, 1) + status = MissionStatus.AP + + """Update the dashboard to accurately calculate AP""" + DataUpdate(config=self.config, device=self.device).run() + + while 1: + self.device.screenshot() + + if self.ui_additional(): + continue + + if action_timer.reached_and_reset(): + logger.attr('Status', status) + status = self.handle_mission(status) + + if status == MissionStatus.FINISH: + break + + self.config.task_delay(server_update=True) + \ No newline at end of file diff --git a/tasks/mission/ui.py b/tasks/mission/ui.py new file mode 100644 index 0000000..2be9c0c --- /dev/null +++ b/tasks/mission/ui.py @@ -0,0 +1,147 @@ +from module.base.timer import Timer +from module.logger import logger +from module.ui.switch import Switch +from module.ocr.ocr import Digit +from tasks.base.assets.assets_base_page import BACK, MISSION_CHECK +from tasks.base.page import page_mission, page_commissions +from tasks.base.ui import UI +from tasks.mission.assets.assets_mission import * +from tasks.stage.ap import AP +from tasks.stage.mission_list import StageList +from tasks.stage.sweep import StageSweep + + +SHARED_LIST = StageList('SharedList') +MISSION_SWEEP = StageSweep('MissionSweep', 60) +MISSION_SWEEP.set_button(button_check=CHECK_MISSION_SWEEP) # Check sweep is different for mission +SHARED_SWEEP = StageSweep('SharedSweep', 60) + +SWITCH_NORMAL = Switch("Normal_switch") +SWITCH_NORMAL.add_state("on", NORMAL_ON) +SWITCH_NORMAL.add_state("off", NORMAL_OFF) + +SWITCH_HARD = Switch("HARD_switch") +SWITCH_HARD.add_state("on", HARD_ON) +SWITCH_HARD.add_state("off", HARD_OFF) + +SWITCH_QUEST = None + +""" +A dictionary that maps the mode to a tuple where +the first element is an argument to go_back and second is for ui_ensure +Missing for "E" because there are no event in Global and no page_event +""" +MODE_TO_PAGE = { + "N": (MISSION_CHECK, page_mission), + "H": (MISSION_CHECK, page_mission), + "BD": (CHECK_BD, page_commissions), + "IR": (CHECK_IR, page_commissions), + "E" : () +} + + +class MissionUI(UI, AP): + def select_mission(self, mode, stage): + area = int(stage.split("-")[0]) + if not self.select_area(area): + logger.warning("Area not found") + return False + + to_switch = { + "N": SWITCH_NORMAL, + "H": SWITCH_HARD + } + switch = to_switch[mode] + if not self.select_mode(switch) and not self.select_area(area): + return False + return True + + def select_area(self, num): + """" + May require further error handling for these cases. + 1. Fails to ocr area number + 2. May trigger too many click exception when clicking left or right too many times + 3. Area not unlocked. Simplest way if left or right button are still present + but problem is it is expensive to check every time and they always keep moving. + """ + tries = 0 + ocr_area = Digit(OCR_AREA) + while 1: + try: + self.device.screenshot() + current_area = int(ocr_area.ocr_single_line(self.device.image)) + if current_area == num: + return True + elif current_area > num: + [self.click_with_interval(LEFT, interval=1) for x in range(abs(current_area-num))] + elif current_area < num: + [self.click_with_interval(RIGHT, interval=1) for x in range(abs(current_area-num))] + except: + tries += 1 + if tries > 5: + return False + + def select_mode(self, switch): + """ + Set switch to on. + Returns: + True if switch is set, False if switch not found + """ + if not switch.appear(main=self): + logger.info(f'{switch.name} not found') + return False + switch.set('on', main=self) + return True + + def enter_stage(self, index: int) -> bool: + if not index: + index = SHARED_LIST.insight_max_sweepable_index(self) + if SHARED_LIST.select_index_enter(self, index): + return True + return False + + def do_sweep(self, mode, num: int) -> bool: + if mode in ["N", "H"]: + return MISSION_SWEEP.do_sweep(self, num=num) + else: + return SHARED_SWEEP.do_sweep(self, num=num) + + def navigate(self, prev, next): + """ + go_back is called when the previous stage and next stage are in + the same game mode. + For example, "N" and "H" are in Mission so we call go_back. + If different, ui_ensure is called for example, "N" and "IR". + """ + if prev==next or (prev in ["N", "H"] and next in ["N", "H"]): + self.go_back(MODE_TO_PAGE[next][0]) + elif prev in ["BD", "IR"] and next in ["BD", "IR"]: + self.go_back(CHECK_COMMISSIONS) + else: + self.ui_ensure(MODE_TO_PAGE[next][1]) + + def go_back(self, check): + while 1: + self.device.screenshot() + if self.match_color(check) and self.appear(check): + return True + self.click_with_interval(BACK, interval=2) + +class CommissionsUI(UI, AP): + """Works the same way as select_bounty""" + def select_commission(self, mode): + to_button = { + "IR": (SELECT_IR, CHECK_IR), + "BD": (SELECT_BD, CHECK_BD) + } + dest_enter, dest_check = to_button[mode] + timer = Timer(5, 10).start() + while 1: + self.device.screenshot() + self.appear_then_click(dest_enter, interval=1) + if self.appear(dest_check): + return True + if timer.reached(): + return False + + \ No newline at end of file diff --git a/tasks/stage/mission_list.py b/tasks/stage/mission_list.py new file mode 100644 index 0000000..52896f3 --- /dev/null +++ b/tasks/stage/mission_list.py @@ -0,0 +1,252 @@ +import re + +import numpy as np + +from module.base.base import ModuleBase +from module.base.timer import Timer +from module.base.utils import area_pad, area_size, area_offset +from module.logger import logger +from module.ocr.ocr import Ocr +from tasks.stage.assets.assets_stage_list import * + + +class StageList: + swipe_vector_range = (0.65, 0.70) + + def __init__( + self, + name, + button_list: ButtonWrapper = None, + button_index: ButtonWrapper = None, + button_item: ButtonWrapper = None, + button_enter: ButtonWrapper = None, + button_stars: ButtonWrapper = None, + swipe_direction: str = "down" + ): + self.name = name + self.stage = button_list if button_list else STAGE_LIST + self.index_ocr = Ocr(button_index if button_index else OCR_INDEX, lang='en') + self.stage_item = (button_item if button_item else STAGE_ITEM).button + self.enter = button_enter if button_enter else STAGE_ENTER + self.sweepable = button_stars if button_stars else STAGE_STARS + self.swipe_direction = swipe_direction + + self.current_index_min = 1 + self.current_index_max = 1 + self.current_indexes: list[tuple[str, tuple]] = [] + + def __str__(self): + return f'StageList({self.name})' + + __repr__ = __str__ + + def __eq__(self, other): + return str(self) == str(other) + + def __hash__(self): + return hash(self.name) + + @property + def _indexes(self) -> list[int]: + return [x[0] for x in self.current_indexes] + + def load_stage_indexes(self, main: ModuleBase): + self.current_indexes = list( + filter( + lambda x: re.match(r'^\d{1,2}-?\d?$', x[0]) and x[0] != '00', + map(lambda x: (x.ocr_text, x.box), self.index_ocr.detect_and_ocr(main.device.image)) + ) + ) + if not self.current_indexes: + logger.warning(f'No valid index in {self.index_ocr.name}') + return + indexes = self._indexes + + self.current_index_min = min(indexes) + self.current_index_max = max(indexes) + logger.attr(self.index_ocr.name, f'Index range: {self.current_index_min} - {self.current_index_max}') + + def swipe_page(self, direction: str, main: ModuleBase, vector_range=None, reverse=False): + """ + Args: + direction: up, down + main: + vector_range (tuple[float, float]): + reverse (bool): + """ + if vector_range is None: + vector_range = self.swipe_vector_range + vector = np.random.uniform(*vector_range) + width, height = area_size(self.stage.button) + if direction == 'up': + vector = (0, vector * height) + elif direction == 'down': + vector = (0, -vector * height) + else: + logger.warning(f'Unknown swipe direction: {direction}') + return + + if reverse: + vector = (-vector[0], -vector[1]) + main.device.swipe_vector(vector, self.stage.button, name=f'{self.name}_SWIPE') + + def insight_index(self, index: int, main: ModuleBase, skip_first_screenshot=True) -> bool: + """ + Args: + index: + main: + skip_first_screenshot: + + Returns: + If success + """ + logger.info(f'Insight index: {index}') + last_indexes: set[int] = set() + + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + main.device.screenshot() + + self.load_stage_indexes(main=main) + + if self.current_index_min <= index <= self.current_index_max: + return True + + indexes = self._indexes + if indexes and last_indexes == set(indexes): + logger.warning(f'No more index {index}') + return False + last_indexes = set(indexes) + + if index < self.current_index_min: + self.swipe_page(self.swipe_direction, main, reverse=True) + elif index > self.current_index_max: + self.swipe_page(self.swipe_direction, main) + + main.wait_until_stable( + self.stage.button, + timer=Timer(0, 0), + timeout=Timer(1.5, 5) + ) + + def insight_max_sweepable_index(self, main: ModuleBase, skip_first_screenshot=True) -> int: + """ + Args: + main: + skip_first_screenshot: + + Returns: + Index of max sweepable stage + """ + logger.info('Insight sweepable index') + max_sweepable_index = 0 + last_max_sweepable_index = 0 + + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + main.device.screenshot() + + self.load_stage_indexes(main=main) + + sweepable_index = next( + filter( + lambda x: not self.is_sweepable(main, self.search_box(x[-1][:2])), + self.current_indexes + ), None + ) + + # all sweepable + if sweepable_index is None: + logger.info('All sweepable') + max_sweepable_index = self.current_index_max + self.swipe_page(self.swipe_direction, main) + if max_sweepable_index == last_max_sweepable_index: + logger.info(f'Max sweepable index: {max_sweepable_index}') + return max_sweepable_index + last_max_sweepable_index = max_sweepable_index + # all not sweepable + elif int(sweepable_index[0]) == self.current_index_min: + logger.info('All not sweepable') + if int(sweepable_index[0]) == 1: + logger.warning('No sweepable index') + return 0 + self.swipe_page(self.swipe_direction, main, reverse=True) + else: + logger.info(f'Sweepable index: {int(sweepable_index[0]) - 1}') + return int(sweepable_index[0]) - 1 + + main.wait_until_stable( + self.stage.button, + timer=Timer(0, 0), + timeout=Timer(1.5, 5) + ) + + def is_sweepable(self, main: ModuleBase, search_box) -> bool: + self.sweepable.load_search(search_box) + return main.appear(self.sweepable, similarity=0.8) + + def search_box( + self, + index_cord: tuple[int, int], + padding: tuple[int, int] = (-20, -15) + ) -> tuple[int, int, int, int]: + stage_item_box = area_pad((*padding, *area_size(self.stage_item))) + return area_offset(stage_item_box, index_cord) + + def select_index_enter( + self, + main: ModuleBase, + index: int, + insight: bool = True, + sweepable: bool = True, + padding: tuple[int, int] = (-20, -15), + skip_first_screenshot: bool = True, + interval: int = 1.5 + ) -> bool: + # insight index, if failed, return False + if insight and not self.insight_index(index, main, skip_first_screenshot): + return False + logger.info(f'Select index: {index}') + click_interval = Timer(interval) + load_index_interval = Timer(1) + timeout = Timer(15, 10).start() + while 1: + if skip_first_screenshot: + skip_first_screenshot = False + else: + main.device.screenshot() + + # load index if not insight + if load_index_interval.reached_and_reset(): + self.load_stage_indexes(main=main) + + # find box of index + index_box = next(filter(lambda x: x[0] == index, self.current_indexes), None) + + if index_box is None: + logger.warning(f'No index {index} in {self.index_ocr.name}') + continue + + search_box = self.search_box(index_box[-1][:2], padding) + if sweepable and not self.is_sweepable(main, search_box): + logger.warning(f'Index {index} is not sweepable') + return False + + self.enter.load_search(search_box) + click_button = self.enter.match_multi_template(main.device.image) + + if not click_button: + logger.warning(f'No clickable {self.enter.name}') + continue + + if click_interval.reached_and_reset(): + main.device.click(click_button[0]) + return True + + if timeout.reached(): + logger.warning(f'{self.enter.name} failed') + return False diff --git a/tasks/task/assets/assets_task.py b/tasks/task/assets/assets_task.py index d08f0bb..5c6a15c 100644 --- a/tasks/task/assets/assets_task.py +++ b/tasks/task/assets/assets_task.py @@ -5,7 +5,13 @@ from module.base.button import Button, ButtonWrapper CLAIM = ButtonWrapper( name='CLAIM', - jp=None, + jp=Button( + file='./assets/jp/task/CLAIM.png', + area=(936, 641, 1010, 696), + search=(916, 621, 1030, 716), + color=(230, 210, 63), + button=(936, 641, 1010, 696), + ), en=Button( file='./assets/en/task/CLAIM.png', area=(935, 639, 1015, 698), @@ -16,7 +22,13 @@ CLAIM = ButtonWrapper( ) CLAIMED = ButtonWrapper( name='CLAIMED', - jp=None, + jp=Button( + file='./assets/jp/task/CLAIMED.png', + area=(935, 641, 1010, 696), + search=(915, 621, 1030, 716), + color=(211, 211, 210), + button=(935, 641, 1010, 696), + ), en=Button( file='./assets/en/task/CLAIMED.png', area=(937, 641, 1010, 696), @@ -27,7 +39,13 @@ CLAIMED = ButtonWrapper( ) CLAIMED_ALL = ButtonWrapper( name='CLAIMED_ALL', - jp=None, + jp=Button( + file='./assets/jp/task/CLAIMED_ALL.png', + area=(1057, 640, 1242, 701), + search=(1037, 620, 1262, 720), + color=(192, 193, 196), + button=(1057, 640, 1242, 701), + ), en=Button( file='./assets/en/task/CLAIMED_ALL.png', area=(1058, 641, 1240, 701), @@ -38,7 +56,13 @@ CLAIMED_ALL = ButtonWrapper( ) CLAIM_ALL = ButtonWrapper( name='CLAIM_ALL', - jp=None, + jp=Button( + file='./assets/jp/task/CLAIM_ALL.png', + area=(1058, 641, 1242, 701), + search=(1038, 621, 1262, 720), + color=(235, 218, 67), + button=(1058, 641, 1242, 701), + ), en=Button( file='./assets/en/task/CLAIM_ALL.png', area=(1054, 642, 1243, 700),