library SafeMath {

 /**
  * @dev 乘法
  */
 function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
  if (a == 0) {
   return 0;
  }
  c = a * b;
  assert(c / a == b);
  return c;
 }

 /**
  * @dev 除法
  */
 function div(uint256 a, uint256 b) internal pure returns (uint256) {
  return a / b;
 }

 /**
  * @dev 减法
  */
 function sub(uint256 a, uint256 b) internal pure returns (uint256) {
  assert(b <= a);
  return a - b;
 }

 /**
  * @dev 加法
  */
 function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
  c = a + b;
  assert(c >= a);
  return c;
 }
}
/**
 * @title 安全数学库
 * @dev 用于uint256的安全计算，合约内的代币操作均使用这个库的函数代替加减乘除，来避免上溢、下溢等问题
 */
function div(uint256 a, uint256 b) internal pure returns (uint256) {
 return a / b;
}

/**
 * @dev 除法
 */