code: func VerifyNoOverlap(subnets []*net.IPNet, CIDRBlock *net.IPNet) error {
  	firstLastIP := make([][]net.IP, len(subnets))
  	for i, s := range subnets {
  		first, last := AddressRange(s)
  		firstLastIP[i] = []net.IP{first, last}
  	}
  	for i, s := range subnets {
  		if !CIDRBlock.Contains(firstLastIP[i][0]) || !CIDRBlock.Contains(firstLastIP[i][1]) {
  			return fmt.Errorf("%s does not fully contain %s", CIDRBlock.String(), s.String())
  		}
  		for j := 0; j < len(subnets); j++ {
  			if i == j {
  				continue
  			}
  
  			first := firstLastIP[j][0]
  			last := firstLastIP[j][1]
  			if s.Contains(first) || s.Contains(last) {
  				return fmt.Errorf("%s overlaps with %s", subnets[j].String(), s.String())
  			}
  		}
  	}
  	return nil
  }
docs: //VerifyNoOverlap takes a list subnets and supernet (CIDRBlock) and verifies
  //none of the subnets overlap and all subnets are in the supernet
  //it returns an error if any of those conditions are not satisfied