code: def AND(*args, **kwargs):
      
      for arg in args:
          try:
              arg()
          except CertifierError as e:
              exc = kwargs.get('exc', None)
              if exc is not None:
                  raise exc(e)
              raise
docs: ALL args must not raise an exception when called incrementally.
      If an exception is specified, raise it, otherwise raise the callable's exception.
  
  
      :params iterable[Certifier] args:
          The certifiers to call
      :param callable kwargs['exc']:
          Callable that excepts the unexpectedly raised exception as argument and return an
          exception to raise.
      :raises CertifierError:
          The first certifier error if at least one raises a certifier error.