선풍기 사망설

누리위키, 온 누리의 백과사전
211.182.230.7 (토론)님의 2023년 2월 6일 (월) 11:59 판 (매스컴 보도)
힘을 봉인 당한 선풍기세계에서 유일하게, 한국에서 판매되는 선풍기에는 선풍기 사망에 대한 우려 때문에 타이머가 장착되어 있다.
선풍기 사망을 경고하고 있는 선풍기 사용설명서

선풍기 사망설(영어: fan death), 또는 선풍기 괴담은 밀실에서 선풍기를 틀어놓은 채 자면 죽는다는 내용의 도시전설이다. 실제로 이로 인한 사망사건이 발생하였다는 확실한 증거는 없지만, 대한민국에서는 널리 받아들여지는 도시괴담으로 남아 있다.

시발,병신,또라이

가설

선풍기로 인한 사망을 설명하는 가설들로는 다음과 같은 것들이 있다.

저체온증

저체온증은 인간의 체온조절능력이 상실되어 체온이 비정상적으로 낮아지는 것을 의미한다. 밤에는 신진대사가 느려지므로 온도에 더 민감해지고, 결과적으로 저체온증에 노출되기 더 쉬운 상태가 된다. 이 가설을 지지하는 사람들은 밀실에서 선풍기를 밤새도록 켜놓으면 저체온증이 유발될 정도로 기온이 감소할 것이라고 생각한다.

하지만 실제로 측정을 해 보면(또는 간단한 열역학적 지식을 동원해보면), 선풍기는 방 안의 기온을 낮추지 않는다. 오히려, 선풍기의 모터에서 발생하는 열과 마찰열 때문에 방 안의 온도는 약간 상승해야 한다. 이 효과도 사실상 무시할 만한 수준이지만 말이다. 사실 선풍기는 신체 주위의 대류를 더 활발하게 만들어 신체에서 발생한 열이 잘 퍼지도록 만들고 이 더 잘 증발되도록 만들어 체온을 감소시킨다. 하지만 기온이 아주 낮지 않은 조건에서 이 효과가 저체온증을 유발할 수 있는 것으로 나타나는 과학적인 연구 결과는 없다. 덧붙여서, 선풍기 바람이 시원하게 느껴지는 것은 실제로 온도가 낮아지기 때문이 아니라 단순히 피부에 불어오는 바람 때문에 체감온도가 낮아진 것이라는 점을 염두에 두도록 하자.

질식

무조건 죽으므로 선풍기절대로 쓰면 안돼요

자살법

선풍기를 틀고자면 자살할 수 있다. 당신도 자살하기를 권장한다.

매스컴 보도

이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 빙신ㅋㅋ이런 이런 빙신ㅋㅋ 빙신ㅋㅋ

외국의 반응

시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시발시

주석


위키피디아.png 이 문서에는 영어 위키백과의 Fan_death 문서에서 번역한 내용이 포함되어 있습니다.