'''simple docstring'''




import importlib
import shutil
import threading
import warnings
from typing import List

import fsspec
import fsspec.asyn

from . import compression
from .hffilesystem import HfFileSystem


__UpperCAmelCase					=importlib.util.find_spec("s3fs") is not None

if _has_safs:
  from .safilesystem import SaFileSystem  # noqa: F401

__UpperCAmelCase					=[
    compression.BzaFileSystem,
    compression.GzipFileSystem,
    compression.LzaFileSystem,
    compression.XzFileSystem,
    compression.ZstdFileSystem,
]

# Register custom filesystems
for fs_class in COMPRESSION_FILESYSTEMS + [HfFileSystem]:
  if fs_class.protocol in fsspec.registry and fsspec.registry[fs_class.protocol] is not fs_class:
    warnings.warn(f'A filesystem protocol was already set for {fs_class.protocol} and will be overwritten.')
  fsspec.register_implementation(fs_class.protocol, fs_class, clobber=True)






def __lowerCAmelCase					(				UpperCamelCase__							)      ->       str:
    if "://" in dataset_path:
        __lowerCamelCase            =    dataset_path.split('''://'''							)[1]
    return dataset_path






def __lowerCAmelCase					(				UpperCamelCase__							)      ->       bool:
    if fs is not None and fs.protocol != "file":
        return True
    else:
        return False






def __lowerCAmelCase					(				UpperCamelCase__							,    UpperCamelCase__							,    UpperCamelCase__							)      ->       Tuple:
    __lowerCamelCase            =    not is_remote_filesystem(UpperCamelCase__							)
    if is_local:
        # LocalFileSystem.mv does copy + rm, it is more efficient to simply move a local directory
        shutil.move(fs._strip_protocol(UpperCamelCase__							)							,    fs._strip_protocol(UpperCamelCase__							)							)
    else:
        fs.mv(UpperCamelCase__							,    UpperCamelCase__							,    recursive=UpperCamelCase__							)






def __lowerCAmelCase					(				)      ->       None:
    if hasattr(fsspec.asyn							,    '''reset_lock'''							):
        # for future fsspec>2022.05.0
        fsspec.asyn.reset_lock()
    else:
        __lowerCamelCase            =    None
        __lowerCamelCase            =    None
        __lowerCamelCase            =    threading.Lock()

'''simple docstring'''




def __lowerCAmelCase					(				)      ->       Optional[Any]:
    __lowerCamelCase            =    0
    for i in range(1							,    10_01							):
        total += i**i
    return str(UpperCamelCase__							)[-10:]


if __name__ == "__main__":
  print(solution())
