أنت تقوم ببناء برنامج نصي لإطلاق إصدارات مختلفة من Maya، وهو برنامج رسومات كمبيوتر ثلاثي الأبعاد شائع. يأخذ البرنامج النصي الخاص بك قاموسًا يسمى "الإصدارات" كمدخل يقوم بتعيين رقم إصدار Maya (كسلسلة) إلى إصدار Maya المقابل القابل للتنفيذ. قد يكون القاموس فارغًا في البداية.

مهمتك هي تنفيذ الوظيفتين التاليتين:

1. `add_version(version: str, executable: str, versions: Dict[str, str]) -> Dict[str, str]`: تأخذ هذه الوظيفة رقم الإصدار (`الإصدار`) والمسار القابل للتنفيذ (`القابل للتنفيذ) `) كمدخل، إلى جانب القاموس الحالي للإصدارات ("الإصدارات"). يجب أن يضيف رقم الإصدار والملف القابل للتنفيذ المقابل إلى قاموس "الإصدارات" ويعيد القاموس المحدث. يجب تنسيق رقم الإصدار والسلسلة القابلة للتنفيذ كما هو موضح في مقتطف الشفرة.

2. `launch(exec_: str, setup_path: اختياري[str]) -> لا شيء`: تأخذ هذه الوظيفة سلسلة Maya القابلة للتنفيذ (`exec_`) كمدخل، بالإضافة إلى مسار إعداد اختياري (`setup_path`). يجب أن تقوم الوظيفة بتشغيل تطبيق Maya مع الملف القابل للتنفيذ المقدم. إذا تم توفير مسار الإعداد، فيجب على الوظيفة أيضًا إجراء التكوينات اللازمة قبل تشغيل Maya.

افترض أن قاموس "الإصدارات" سيحتوي دائمًا على أرقام إصدارات فريدة كمفاتيح.

مثال:

```بيثون
الإصدارات = {} # قاموس فارغ

الإصدارات = add_version("2022"، "C:/Program Files/Maya2022/maya.exe"، الإصدارات)
الإصدارات = add_version("2019"، "C:/Program Files/Maya2019/maya.exe"، الإصدارات)

طباعة (إصدارات)
# الإخراج: {'2022': 'C:/Program Files/Maya2022/maya.exe'، '2019': 'C:/Program Files/Maya2019/maya.exe'}

الإطلاق (الإصدارات ["2022"]، لا شيء)
# الإخراج: إطلاق Maya 2022 بالتكوين الافتراضي

إطلاق (الإصدارات ["2019"]، "C:/Program Files/Setup2019.ini")
# الإخراج: إجراء التكوينات باستخدام "C:/Program Files/Setup2019.ini" وإطلاق Maya 2019
```
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}