Chelsea Elizabeth Manning[4] (born Bradley Edward Manning, December 17, 1987) is a United States Army soldier who was convicted in July 2013 of violations of the Espionage Act and other offenses, after releasing the largest set of classified documents ever leaked to the public. Manning was sentenced in August 2013 to 35 years in prison with the possibility of parole in 8 years, and to be dishonorably discharged from the Army.[2] Throughout her early life, even when she joined the Army, Manning was known as Bradley. While she was in the Army, she was diagnosed with gender identity disorder.[5] In a statement the day after sentencing, Manning said she felt female since childhood, wanted to be known as Chelsea, and requested hormone replacement therapy.[4] <br>
 <br>
Assigned in 2009 to an Army unit in Iraq as an intelligence analyst, Manning had access to classified databases. In early 2010 she leaked classified information to WikiLeaks and confided this to Adrian Lamo, an online acquaintance. Lamo informed Army Counterintelligence, and Manning was arrested in May that same year. The material included videos of the July 12, 2007 Baghdad airstrike, and the 2009 Granai airstrike in Afghanistan; 250,000 U.S. diplomatic cables; and 500,000 Army reports that came to be known as the Iraq War logs and Afghan War logs. Much of the material was published by WikiLeaks or its media partners between April and November 2010.[6] <br>
 <br>
Manning was ultimately charged with 22 offenses, including aiding the enemy, the most serious charge.[7] She was held at the Marine Corps Brig, Quantico in Virginia, from July 2010 to April 2011 under Prevention of Injury status—which entailed de facto solitary confinement and other restrictions that caused domestic and international concern—before being transferred to Fort Leavenworth, Kansas, where she could interact with other detainees.[8] She pleaded guilty in February 2013 to 10 of the charges.[9] The trial on the remaining charges began on June 3, 2013, and on July 30 she was convicted of 17 of the original charges and amended versions of four others, but was acquitted of aiding the enemy.[1] She will serve her sentence at the maximum-security U.S. Disciplinary Barracks at Fort Leavenworth.[10] <br>
 <br>
Reaction to Manning\'s disclosures, arrest, and sentence was mixed. Denver Nicks, one of her biographers, writes that the leaked material, particularly the diplomatic cables, was widely seen as a catalyst for the Arab Spring that began in December 2010, and that Manning was viewed as both a 21st-century Tiananmen Square Tank Man and an embittered traitor.[11] Reporters Without Borders condemned the length of the sentence, saying that it demonstrated how vulnerable whistleblowers are.[12] 