plrpphppphppppprlplpphppppppspppplrpphptslplpltppprttpppppttsppllptpptpttrtpppptsttptpptpttstpppptttsppptpttptpstptpppptsptpttrtplppplttphppshptppssltppphptpsssshppppttptssphllpslhslshplpppsphphphphpsssssphphphpslslhphphshsslspsphphphpspspsshshphpspspsphphphpsssssphphphtspspsphthshsspslslpphphtslshsshshphlspshsphlhshhs