يتم إعطاؤك قائمة بالأعداد الصحيحة. مهمتك هي العثور على الحد الأقصى لمجموع صفيفتين فرعيتين غير متداخلتين من الأعداد.

يتم تعريف المصفوفة الفرعية على أنها تسلسل متجاور للمصفوفة. تكون المصفوفة غير متداخلة إذا كانت مصفوفاتها الفرعية لا تشترك في أي عناصر.

اكتب دالة `max_sum_of_two_non_overlapping_subarrays(nums: List[int], len1: int, len2: int) -> int` لحل المشكلة. يجب أن تقوم الدالة بإرجاع الحد الأقصى لمجموع صفيفتين فرعيتين غير متداخلتين من الأعداد، حيث يكون طول المصفوفة الفرعية الأولى len1 والمصفوفة الفرعية الثانية لها طول len2.

**مثال**

مدخل:
```
الأعداد = [0،6،5،2،2،5،1،9،4]
لين1 = 1
لين2 = 2
```

انتاج:
```
20
```

توضيح:

الصفيفتان الفرعيتان غير المتداخلتين مع الحد الأقصى للمجموع هما [9] و [6،5]. المجموع هو 9 + 6 + 5 = 20.
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}