




import importlib
import sys
from argparse import REMAINDER, ArgumentParser
from pathlib import Path

import torch_xla.distributed.xla_multiprocessing as xmp



def      __lowerCAmelCase			(					)     ->	List[Any]:
  lowerCAmelCase__				:  Optional[int]		       =     ArgumentParser(
      description=(
          '''PyTorch TPU distributed training launch '''
          '''helper utility that will spawn up '''
          '''multiple distributed processes'''
      )      )

  # Optional arguments for the launch helper
  parser.add_argument('''--num_cores'''	,      type=UpperCamelCase	,      default=1	,      help='''Number of TPU cores to use (1 or 8).'''      )

  # positional
  parser.add_argument(
      '''training_script'''	,      type=UpperCamelCase	,      help=(
          '''The full path to the single TPU training '''
          '''program/script to be launched in parallel, '''
          '''followed by all the arguments for the '''
          '''training script'''
      )	,      )

  # rest from the training program
  parser.add_argument('''training_script_args'''	,      nargs=UpperCamelCase      )

  return parser.parse_args()



def      __lowerCAmelCase			(					)     ->	Union[str, Any]:
  lowerCAmelCase__				:  Optional[Any]		       =     parse_args()

  # Import training_script as a module.
  lowerCAmelCase__				:  Union[str, Any]		       =     Path(args.training_script      )
  sys.path.append(str(script_fpath.parent.resolve()      )      )
  lowerCAmelCase__				:  Dict		       =     script_fpath.stem
  lowerCAmelCase__				:  Any		       =     importlib.import_module(UpperCamelCase      )

  # Patch sys.argv
  lowerCAmelCase__				:  Tuple		       =     [args.training_script] + args.training_script_args + ['''--tpu_num_cores''', str(args.num_cores      )]
  xmp.spawn(mod._mp_fn	,      args=()	,      nprocs=args.num_cores      )


if __name__ == "__main__":
     main()







lowerCAmelCase_					    = 6_55_21



def      __lowerCAmelCase			(					UpperCamelCase      )     ->	int:
  lowerCAmelCase__				:  List[str]		       =     1
  lowerCAmelCase__				:  List[Any]		       =     0
  for plain_chr in plain_text:
    lowerCAmelCase__				:  Union[str, Any]		       =     (a + ord(UpperCamelCase      )) % MOD_ADLER
    lowerCAmelCase__				:  Optional[Any]		       =     (b + a) % MOD_ADLER
  return (b << 16) | a

