# 時間行動 ## 3分前行動 - 時計を目立たせる - 班の気づいた人が声をかける - 自分が意識する。 1. 自分が意識する。 > しっかり時計をみる。 > 時間を把握する。 > 授業の準備する。 > トランプで遊ぶ時間を朝・中休み・昼休み・放課後にする。 2. 班の気づいた人が声をかける。 ばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかばかば
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up