


'''simple docstring'''







import math
from datetime import datetime, timedelta






def 			lowercase				(_A					)     ->   List[Any]:







       """simple docstring"""







       _lowerCAmelCase    :							Optional[Any]   			=       year % 1_9
       _lowerCAmelCase    :							Any   			=       year % 4
       _lowerCAmelCase    :							Optional[int]   			=       year % 7
       _lowerCAmelCase    :							int   			=       math.floor(year / 1_0_0					)
       _lowerCAmelCase    :							Dict   			=       math.floor((1_3 + 8 * leap_day_inhibits) / 2_5					)
       _lowerCAmelCase    :							Optional[Any]   			=       leap_day_inhibits / 4
       _lowerCAmelCase    :							Dict   			=       (
           1_5 - lunar_orbit_correction + leap_day_inhibits - leap_day_reinstall_number
       ) % 3_0
       _lowerCAmelCase    :							List[Any]   			=       (4 + leap_day_inhibits - leap_day_reinstall_number) % 7

       # days to be added to March 21
       _lowerCAmelCase    :							Dict   			=       (1_9 * metonic_cycle + secular_moon_shift) % 3_0

       # PHM -> Paschal Full Moon
       _lowerCAmelCase    :							Union[str, Any]   			=       (
           2 * julian_leap_year
           + 4 * non_leap_year
           + 6 * days_to_add
           + century_starting_point
       ) % 7

       if days_to_add == 2_9 and days_from_phm_to_sunday == 6:
              return datetime(_A   ,						4   ,						1_9					)
       elif days_to_add == 2_8 and days_from_phm_to_sunday == 6:
              return datetime(_A   ,						4   ,						1_8					)
       else:
              return datetime(_A   ,						3   ,						2_2					) + timedelta(
                  days=int(days_to_add + days_from_phm_to_sunday					)					)


if __name__ == "__main__":
       for year in (19_94, 20_00, 20_10, 20_21, 20_23):
              lowerCAmelCase    :     List[str]					=						"""will be""" if year > datetime.now().year else """was"""
              print(F'''Easter in {year} {tense} {gauss_easter(year)}''')





'''simple docstring'''







import os
from typing import Dict, List, Union

import tensorflow as tf
from keras_nlp.tokenizers import BytePairTokenizer
from tensorflow_text import pad_model_inputs

from .tokenization_gpta import GPTaTokenizer
class 	UpperCamelCase__					( tf.keras.layers.Layer	):



     """simple docstring"""






     def __init__( self      ,	snake_case__      ,	snake_case__      ,	snake_case__ = None      ,	snake_case__ = None   ):

            '''simple docstring'''

            super().__init__()
            _lowerCAmelCase    :							Union[str, Any]   			=       pad_token_id
            _lowerCAmelCase    :							List[Any]   			=       max_length
            _lowerCAmelCase    :							Tuple   			=       vocab
            _lowerCAmelCase    :							str   			=       merges
            _lowerCAmelCase    :							List[str]   			=       BytePairTokenizer(snake_case__      ,	snake_case__      ,	sequence_length=snake_case__   )







     @classmethod
     def a	( cls      ,	snake_case__      ,	*snake_case__      ,	**snake_case__   ):

            '''simple docstring'''

            _lowerCAmelCase    :							Dict   			=       [' '.join(snake_case__   ) for m in tokenizer.bpe_ranks.keys()]
            _lowerCAmelCase    :							Any   			=       tokenizer.get_vocab()
            return cls(snake_case__      ,	snake_case__      ,	*snake_case__      ,	**snake_case__   )







     @classmethod
     def a	( cls      ,	snake_case__      ,	*snake_case__      ,	**snake_case__   ):

            '''simple docstring'''

            _lowerCAmelCase    :							List[Any]   			=       GPTaTokenizer.from_pretrained(snake_case__      ,	*snake_case__      ,	**snake_case__   )
            return cls.from_tokenizer(snake_case__      ,	*snake_case__      ,	**snake_case__   )







     @classmethod
     def a	( cls      ,	snake_case__   ):

            '''simple docstring'''

            return cls(**snake_case__   )







     def a	( self   ):

            '''simple docstring'''

            return {
                "vocab": self.vocab,
                "merges": self.merges,
                "max_length": self.max_length,
                "pad_token_id": self.pad_token_id,
            }







     def a	( self      ,	snake_case__      ,	snake_case__ = None   ):

            '''simple docstring'''

            _lowerCAmelCase    :							str   			=       self.tf_tokenizer(snake_case__   )
            _lowerCAmelCase    :							str   			=       tf.ones_like(snake_case__   )

            if self.pad_token_id is not None:
                   # pad the tokens up to max length
                   _lowerCAmelCase    :							Optional[int]   			=       max_length if max_length is not None else self.max_length

                   if max_length is not None:
                          _lowerCAmelCase			,     _lowerCAmelCase    :							str   			=       pad_model_inputs(
                              snake_case__      ,	max_seq_length=snake_case__      ,	pad_value=self.pad_token_id   )

            return {"attention_mask": attention_mask, "input_ids": input_ids}

