�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`� 0x0x
PHP 8.1.31
Preview: zipapp.py Size: 7.36 KB
/lib/python3.8/zipapp.py
import contextlib
import os
import pathlib
import shutil
import stat
import sys
import zipfile

__all__ = ['ZipAppError', 'create_archive', 'get_interpreter']


# The __main__.py used if the users specifies "-m module:fn".
# Note that this will always be written as UTF-8 (module and
# function names can be non-ASCII in Python 3).
# We add a coding cookie even though UTF-8 is the default in Python 3
# because the resulting archive may be intended to be run under Python 2.
MAIN_TEMPLATE = """\
# -*- coding: utf-8 -*-
import {module}
{module}.{fn}()
"""


# The Windows launcher defaults to UTF-8 when parsing shebang lines if the
# file has no BOM. So use UTF-8 on Windows.
# On Unix, use the filesystem encoding.
if sys.platform.startswith('win'):
    shebang_encoding = 'utf-8'
else:
    shebang_encoding = sys.getfilesystemencoding()


class ZipAppError(ValueError):
    pass


@contextlib.contextmanager
def _maybe_open(archive, mode):
    if isinstance(archive, (str, os.PathLike)):
        with open(archive, mode) as f:
            yield f
    else:
        yield archive


def _write_file_prefix(f, interpreter):
    """Write a shebang line."""
    if interpreter:
        shebang = b'#!' + interpreter.encode(shebang_encoding) + b'\n'
        f.write(shebang)


def _copy_archive(archive, new_archive, interpreter=None):
    """Copy an application archive, modifying the shebang line."""
    with _maybe_open(archive, 'rb') as src:
        # Skip the shebang line from the source.
        # Read 2 bytes of the source and check if they are #!.
        first_2 = src.read(2)
        if first_2 == b'#!':
            # Discard the initial 2 bytes and the rest of the shebang line.
            first_2 = b''
            src.readline()

        with _maybe_open(new_archive, 'wb') as dst:
            _write_file_prefix(dst, interpreter)
            # If there was no shebang, "first_2" contains the first 2 bytes
            # of the source file, so write them before copying the rest
            # of the file.
            dst.write(first_2)
            shutil.copyfileobj(src, dst)

    if interpreter and isinstance(new_archive, str):
        os.chmod(new_archive, os.stat(new_archive).st_mode | stat.S_IEXEC)


def create_archive(source, target=None, interpreter=None, main=None,
                   filter=None, compressed=False):
    """Create an application archive from SOURCE.

    The SOURCE can be the name of a directory, or a filename or a file-like
    object referring to an existing archive.

    The content of SOURCE is packed into an application archive in TARGET,
    which can be a filename or a file-like object.  If SOURCE is a directory,
    TARGET can be omitted and will default to the name of SOURCE with .pyz
    appended.

    The created application archive will have a shebang line specifying
    that it should run with INTERPRETER (there will be no shebang line if
    INTERPRETER is None), and a __main__.py which runs MAIN (if MAIN is
    not specified, an existing __main__.py will be used).  It is an error
    to specify MAIN for anything other than a directory source with no
    __main__.py, and it is an error to omit MAIN if the directory has no
    __main__.py.
    """
    # Are we copying an existing archive?
    source_is_file = False
    if hasattr(source, 'read') and hasattr(source, 'readline'):
        source_is_file = True
    else:
        source = pathlib.Path(source)
        if source.is_file():
            source_is_file = True

    if source_is_file:
        _copy_archive(source, target, interpreter)
        return

    # We are creating a new archive from a directory.
    if not source.exists():
        raise ZipAppError("Source does not exist")
    has_main = (source / '__main__.py').is_file()
    if main and has_main:
        raise ZipAppError(
            "Cannot specify entry point if the source has __main__.py")
    if not (main or has_main):
        raise ZipAppError("Archive has no entry point")

    main_py = None
    if main:
        # Check that main has the right format.
        mod, sep, fn = main.partition(':')
        mod_ok = all(part.isidentifier() for part in mod.split('.'))
        fn_ok = all(part.isidentifier() for part in fn.split('.'))
        if not (sep == ':' and mod_ok and fn_ok):
            raise ZipAppError("Invalid entry point: " + main)
        main_py = MAIN_TEMPLATE.format(module=mod, fn=fn)

    if target is None:
        target = source.with_suffix('.pyz')
    elif not hasattr(target, 'write'):
        target = pathlib.Path(target)

    with _maybe_open(target, 'wb') as fd:
        _write_file_prefix(fd, interpreter)
        compression = (zipfile.ZIP_DEFLATED if compressed else
                       zipfile.ZIP_STORED)
        with zipfile.ZipFile(fd, 'w', compression=compression) as z:
            for child in source.rglob('*'):
                arcname = child.relative_to(source)
                if filter is None or filter(arcname):
                    z.write(child, arcname.as_posix())
            if main_py:
                z.writestr('__main__.py', main_py.encode('utf-8'))

    if interpreter and not hasattr(target, 'write'):
        target.chmod(target.stat().st_mode | stat.S_IEXEC)


def get_interpreter(archive):
    with _maybe_open(archive, 'rb') as f:
        if f.read(2) == b'#!':
            return f.readline().strip().decode(shebang_encoding)


def main(args=None):
    """Run the zipapp command line interface.

    The ARGS parameter lets you specify the argument list directly.
    Omitting ARGS (or setting it to None) works as for argparse, using
    sys.argv[1:] as the argument list.
    """
    import argparse

    parser = argparse.ArgumentParser()
    parser.add_argument('--output', '-o', default=None,
            help="The name of the output archive. "
                 "Required if SOURCE is an archive.")
    parser.add_argument('--python', '-p', default=None,
            help="The name of the Python interpreter to use "
                 "(default: no shebang line).")
    parser.add_argument('--main', '-m', default=None,
            help="The main function of the application "
                 "(default: use an existing __main__.py).")
    parser.add_argument('--compress', '-c', action='store_true',
            help="Compress files with the deflate method. "
                 "Files are stored uncompressed by default.")
    parser.add_argument('--info', default=False, action='store_true',
            help="Display the interpreter from the archive.")
    parser.add_argument('source',
            help="Source directory (or existing archive).")

    args = parser.parse_args(args)

    # Handle `python -m zipapp archive.pyz --info`.
    if args.info:
        if not os.path.isfile(args.source):
            raise SystemExit("Can only get info for an archive file")
        interpreter = get_interpreter(args.source)
        print("Interpreter: {}".format(interpreter or "<none>"))
        sys.exit(0)

    if os.path.isfile(args.source):
        if args.output is None or (os.path.exists(args.output) and
                                   os.path.samefile(args.source, args.output)):
            raise SystemExit("In-place editing of archives is not supported")
        if args.main:
            raise SystemExit("Cannot change the main function when copying")

    create_archive(args.source, args.output,
                   interpreter=args.python, main=args.main,
                   compressed=args.compress)


if __name__ == '__main__':
    main()

Directory Contents

Dirs: 28 × Files: 175
Name Size Perms Modified Actions
asyncio DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
- drwxr-xr-x 2026-02-20 12:29:32
Edit Download
ctypes DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
curses DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
dbm DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
distutils DIR
- drwxr-xr-x 2025-04-09 10:37:49
Edit Download
email DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
encodings DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
html DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
http DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
importlib DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
json DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
lib2to3 DIR
- drwxr-xr-x 2022-07-11 21:40:36
Edit Download
logging DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
sqlite3 DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
test DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
unittest DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
urllib DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
venv DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
wsgiref DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
xml DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
xmlrpc DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
4.38 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
32.04 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
477 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
94.05 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
18.78 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
11.06 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
19.62 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
19.90 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
31.30 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.63 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.16 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
12.26 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
24.25 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
33.14 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
11.81 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.51 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.37 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
35.81 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.18 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.97 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
53.10 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
24.41 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
129 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.46 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.97 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.83 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
3.53 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
15.77 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
48.80 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
86.22 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
320 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
82.09 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.09 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
102.09 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.75 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
37.24 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
9.60 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.98 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.79 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
23.76 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
34.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
36.53 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
4.86 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.85 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
26.92 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.56 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.91 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
9.50 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
22.34 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.47 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
52.35 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.72 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
115.77 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.46 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
74.55 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
945 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.60 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.21 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
76.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
12.68 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
76.82 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.85 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
21.16 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
23.86 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.44 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
42.25 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
27.08 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.82 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.00 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.67 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.46 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
58.95 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
38.08 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
51.38 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
61.27 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
62.96 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
91.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.71 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.96 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
39.48 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
31.46 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.72 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
15.26 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.98 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
22.98 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
26.70 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
4.69 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.90 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
104.36 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
7.96 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
11.09 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.08 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
28.13 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
15.49 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.14 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.93 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
11.77 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
1.99 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
18.13 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.33 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.01 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
50.27 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.22 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
21.81 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
155 B lrw-r--r-- 2020-03-13 10:14:16
Edit Download
33.90 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
43.75 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
6.93 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
34.42 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
26.66 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
26.07 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.99 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
39.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
51.14 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
38.76 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
12.61 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
257 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
75.52 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
17.94 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.06 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.83 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
24.45 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
11.14 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
93.22 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
22.71 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
32.15 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
18.95 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
1003 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
49.63 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.16 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
2.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
25.24 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
29.16 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
23.06 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
16.68 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
879 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
140.35 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
9.49 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
67.35 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.79 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
29.75 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
19.23 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
17.80 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.89 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
23.52 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
5.77 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
86.40 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
30.04 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
1.76 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
25.49 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.54 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.21 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.89 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.26 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
21.26 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
223.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
90.99 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.04 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.04 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
24.68 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
25.23 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
25.23 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.05 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.60 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.03 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
64 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 0xNothings — Secure File Manager. All rights reserved. Built with ❤️ & Tailwind x Dark UI
Upload
Kotlin Archives - Weelorum https://weelorum.com/technology/kotlin/ Full Cycle Mobile App Development Services For Startups Sun, 01 Mar 2026 20:04:38 +0000 en-US hourly 1 https://wordpress.org/?v=7.0 PayFlow https://weelorum.com/portfolio-projects/payflow/ Sun, 01 Mar 2026 20:04:38 +0000 https://weelorum.com/success-stories/payflow/ PayFlow is a fintech application that simplifies international money transfers and currency exchange. Users can hold multiple currencies, send money globally with competitive rates, and receive instant notifications. The app features biometric authentication and real-time transaction tracking.

Сообщение PayFlow появились сначала на Weelorum.

]]>
PayFlow is a fintech application that simplifies international money transfers and currency exchange. Users can hold multiple currencies, send money globally with competitive rates, and receive instant notifications. The app features biometric authentication and real-time transaction tracking.

Сообщение PayFlow появились сначала на Weelorum.

]]>
Knock Knock https://weelorum.com/portfolio-projects/knock-knock/ Sun, 01 Mar 2026 20:04:37 +0000 https://weelorum.com/success-stories/knock-knock/ Knock Knock is a real-time restaurant discovery app. It shows users what’s happening inside venues, how crowded they are, and offers live previews via photos and video. The app uses geolocation to help people choose where to eat or socialize based on current ambiance.

Сообщение Knock Knock появились сначала на Weelorum.

]]>
Knock Knock is a real-time restaurant discovery app. It shows users what’s happening inside venues, how crowded they are, and offers live previews via photos and video. The app uses geolocation to help people choose where to eat or socialize based on current ambiance.

Сообщение Knock Knock появились сначала на Weelorum.

]]>