



'''simple docstring'''





from typing import Callable, Optional

from .. import Features
from ..packaged_modules.generator.generator import Generator
from .abc import AbstractDatasetInputStream


class 				snake_case (UpperCamelCase   ):



       def __init__(				self     ,UpperCAmelCase_     ,UpperCAmelCase_ = None     ,UpperCAmelCase_ = None     ,UpperCAmelCase_ = False     ,UpperCAmelCase_ = False     ,UpperCAmelCase_ = None     ,UpperCAmelCase_ = None     ,**UpperCAmelCase_     ,)  ->							Dict:
           super().__init__(
               features=UpperCAmelCase_     ,cache_dir=UpperCAmelCase_     ,keep_in_memory=UpperCAmelCase_     ,streaming=UpperCAmelCase_     ,num_proc=UpperCAmelCase_     ,**UpperCAmelCase_     ,)
           lowercase__		       =						Generator(
               cache_dir=UpperCAmelCase_     ,features=UpperCAmelCase_     ,generator=UpperCAmelCase_     ,gen_kwargs=UpperCAmelCase_     ,**UpperCAmelCase_     ,)







       def 							_a      (				self      )  ->							Tuple:
           # Build iterable dataset
           if self.streaming:
               lowercase__		       =						self.builder.as_streaming_dataset(split="train"      )
           # Build regular (map-style) dataset
           else:
               lowercase__		       =						None
               lowercase__		       =						None
               lowercase__		       =						None
               lowercase__		       =						None

               self.builder.download_and_prepare(
                   download_config=UpperCAmelCase_     ,download_mode=UpperCAmelCase_     ,verification_mode=UpperCAmelCase_     ,base_path=UpperCAmelCase_     ,num_proc=self.num_proc     ,)
               lowercase__		       =						self.builder.as_dataset(
                   split="train"     ,verification_mode=UpperCAmelCase_     ,in_memory=self.keep_in_memory      )
           return dataset









'''simple docstring'''





def        lowerCamelCase  (				_snake_case  :						int = 4_000_000       ):





    '''simple docstring'''


    lowercase__		       =						[0, 1]
    lowercase__		       =						0
    while fib[i] <= n:
        fib.append(fib[i] + fib[i + 1]       )
        if fib[i + 2] > n:
            break
        i += 1
    lowercase__		       =						0
    for j in range(len(_snake_case       ) - 1       ):
        if fib[j] % 2 == 0:
            total += fib[j]

    return total


if __name__ == "__main__":
 print(f'''{solution() = }''')




