ghgfhgfhfg

taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught taught 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

ghghgfh

fgfdgfdg

vbnghjhgj