답변자님,
정보를 공유해 주세요.
2003.08.14.
-
채택
질문자가 채택한 답변입니다.
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.
싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하
자, 다보셨죠?
이것은 국제 착시 연구회International Optical Illusion Institute(IOII) 에서 개발한 것으로 이것을 보고난 후에 눈을 감았다 뜨면
그순간!
넌 낚인거다
2007.12.11.
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.
싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하싱하
자, 다보셨죠?
이것은 국제 착시 연구회International Optical Illusion Institute(IOII) 에서 개발한 것으로 이것을 보고난 후에 눈을 감았다 뜨면
그순간!
2008.01.31.
-
출처
준재님
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.