bggfhghgjghj

taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught

Comments

Popular posts from this blog

ghghgjgj

hgjhgjhgjhg