Depoimentos
Ryo
Qua 15/10/2025 23:55
Your class is so fun and so excited. I want to learn in your class again.
Yuika
Qua 18/06/2025 09:49
Thank you for pointing out my mistake.Thank you for the fun time today.
Imari
Seg 16/06/2025 23:56
Siri先生ととても楽しくレッスンができました。
先生に笑顔で話してもらえると、私は拙い英語でも、間違っていると思っても、話すことができます。
今日は楽しいレッスンをありがとうございました。
私は、またSiri先生のレッスンが受けられる日を楽しみにしています
先生に笑顔で話してもらえると、私は拙い英語でも、間違っていると思っても、話すことができます。
今日は楽しいレッスンをありがとうございました。
私は、またSiri先生のレッスンが受けられる日を楽しみにしています
Michiaki
Dom 15/06/2025 21:58
She is great at leading lessons and makes learning enjoyable.
Kiyomi
Dom 08/06/2025 23:26
わかりやすい。
よかったです。
よかったです。
Rie
Qua 04/06/2025 01:56
電波のせいか、声が途切れ途切れになる事が多かった。
ゆっくり話してくれるので聞き取りやすかったです!
ゆっくり話してくれるので聞き取りやすかったです!
Hana
Qua 28/05/2025 05:57
Siri先生の授業を初めて受けました。
Siri先生は面白くて、とても話が聞き取りやすいし、わかりやすいです。
なのでとてもおすすめします!
Siri先生は面白くて、とても話が聞き取りやすいし、わかりやすいです。
なのでとてもおすすめします!
Anônimo
Qui 22/05/2025 03:48
最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最高最高最高最高最高最高最高最高最高高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最高最最高最高最高最高最
Rinko
Sex 16/05/2025 22:57
はじめすごく緊張していたんだけどはじめから笑顔で接してくれてすごくよかった。
初心者でも上級者でも楽しくレッスンできそうでよかった
またしたいです
初心者でも上級者でも楽しくレッスンできそうでよかった
またしたいです
Natsuki
Qui 15/05/2025 06:27
強いて言うと、話すときに面白くしてくれたり、顔をちゃんと見て話をしてくれた。
評価が高いのも納得
評価が高いのも納得
Reviews de um professor pode ser postado apenas depois da aula com o professor em questão
