


"""simple docstring"""


def    _lowerCamelCase   (     lowerCamelCase__	:							str  ):
 return credit_card_number.startswith(("""34""", """35""", """37""", """4""", """5""", """6""")  )


def    _lowerCamelCase   (     lowerCamelCase__	:							str  ):
 lowercase__       :       Any				=						credit_card_number
 lowercase__       :       Optional[int]				=						0
 lowercase__       :       int				=						len(lowerCamelCase__  ) - 2
 for i in range(lowerCamelCase__       ,		-1       ,		-2  ):
  #  double the value of every second digit
  lowercase__       :       str				=						int(cc_number[i]  )
  digit *= 2
  # If doubling of a number results in a two digit number
  # i.e greater than 9(e.g., 6 × 2 = 12),
  # then add the digits of the product (e.g., 12: 1 + 2 = 3, 15: 1 + 5 = 6),
  # to get a single digit number.
  if digit > 9:
   digit %= 10
   digit += 1
  lowercase__       :       Dict				=						cc_number[:i] + str(lowerCamelCase__  ) + cc_number[i + 1 :]
  total += digit

 # Sum up the remaining digits
 for i in range(len(lowerCamelCase__  ) - 1       ,		-1       ,		-2  ):
  total += int(cc_number[i]  )

 return total % 10 == 0


def    _lowerCamelCase   (     lowerCamelCase__	:							str  ):
 lowercase__       :       Tuple				=						f'''{credit_card_number} is an invalid credit card number because'''
 if not credit_card_number.isdigit():
  print(f'''{error_message} it has nonnumerical characters.'''  )
  return False

 if not 13 <= len(lowerCamelCase__  ) <= 16:
  print(f'''{error_message} of its length.'''  )
  return False

 if not validate_initial_digits(lowerCamelCase__  ):
  print(f'''{error_message} of its first two digits.'''  )
  return False

 if not luhn_validation(lowerCamelCase__  ):
  print(f'''{error_message} it fails the Luhn check.'''  )
  return False

 print(f'''{credit_card_number} is a valid credit card number.'''  )
 return True


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   validate_credit_card_number('4111111111111111')
   validate_credit_card_number('32323')



"""simple docstring"""


from typing import TYPE_CHECKING

# rely on isort to merge the imports
from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


__snake_case    					=					{
    'configuration_informer': [
        'INFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'InformerConfig',
    ],
}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   __snake_case    					=					[
       'INFORMER_PRETRAINED_MODEL_ARCHIVE_LIST',
       'InformerForPrediction',
       'InformerModel',
       'InformerPreTrainedModel',
   ]


if TYPE_CHECKING:
   from .configuration_informer import INFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, InformerConfig

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_informer import (
          INFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
          InformerForPrediction,
          InformerModel,
          InformerPreTrainedModel,
      )

else:
   import sys

   __snake_case    					=					_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)