sync with aydao:master