
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/ex_groups.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_auto_examples_ex_groups.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_auto_examples_ex_groups.py:


Hierarchical Groups
===================

Builds a dataset with nested Zarr groups (``/data_01/ku/...``), persists
it through a partitioned :py:class:`~zcollection.Collection`, and
demonstrates the path-based access, dimension inheritance, and the
size-aware multi-line ``__repr__``.

Run with::

    python examples/ex_groups.py

.. GENERATED FROM PYTHON SOURCE LINES 14-25

.. code-block:: Python


    from pathlib import Path
    import shutil
    import tempfile

    import numpy
    import zarr

    import zcollection as zc









.. GENERATED FROM PYTHON SOURCE LINES 26-30

Initialization
--------------

Set up a temporary directory for the collection.

.. GENERATED FROM PYTHON SOURCE LINES 30-34

.. code-block:: Python

    target = Path(tempfile.gettempdir()) / "zc-groups"
    if target.exists():
        shutil.rmtree(target)








.. GENERATED FROM PYTHON SOURCE LINES 35-46

Build a hierarchical schema
---------------------------

Groups are declared via the ``group=`` keyword on
:meth:`~zcollection.SchemaBuilder.with_dimension` /
:meth:`~zcollection.SchemaBuilder.with_variable` /
:meth:`~zcollection.SchemaBuilder.with_attribute`, or by calling
:meth:`~zcollection.SchemaBuilder.with_group` to attach group-level
attributes ahead of time. Intermediate groups along the path are
created on demand. Variables in ``/data_01/ku`` reference the root's
``time`` dimension via dimension inheritance.

.. GENERATED FROM PYTHON SOURCE LINES 46-63

.. code-block:: Python

    schema = (
        zc.Schema()
        .with_dimension("time", chunks=4096)
        .with_variable("time", dtype="int64", dimensions=("time",))
        .with_group("/data_01", attrs={"product": "L2"})
        .with_group("/data_01/ku", attrs={"band": "Ku"})
        .with_dimension("range", size=240, chunks=240, group="/data_01/ku")
        .with_variable(
            "power",
            dtype="float32",
            dimensions=("time", "range"),  # ``time`` inherited from root
            group="/data_01/ku",
        )
        .build()
    )
    print(schema.all_variables())





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    {'time': VariableSchema(name='time', dtype=dtype('int64'), dimensions=('time',), fill_value=None, codecs=CodecStack(array_to_array=(), array_to_bytes={'name': 'bytes', 'configuration': {'endian': 'little'}}, bytes_to_bytes=({'name': 'zstd', 'configuration': {'level': 3, 'checksum': False}},), sharded=True, shard_target_bytes=134217728), attrs={}, role=<VariableRole.USER: 'user'>, immutable=False), 'data_01/ku/power': VariableSchema(name='power', dtype=dtype('float32'), dimensions=('time', 'range'), fill_value=None, codecs=CodecStack(array_to_array=(), array_to_bytes={'name': 'bytes', 'configuration': {'endian': 'little'}}, bytes_to_bytes=({'name': 'zstd', 'configuration': {'level': 3, 'checksum': False}},), sharded=True, shard_target_bytes=134217728), attrs={}, role=<VariableRole.USER: 'user'>, immutable=False)}




.. GENERATED FROM PYTHON SOURCE LINES 64-70

Build a sample dataset
----------------------

Variables placed inside nested groups are addressed by their absolute
path in the constructor mapping. Short names (without ``/``) populate
the root group.

.. GENERATED FROM PYTHON SOURCE LINES 70-86

.. code-block:: Python

    N = 5_000
    ku = schema.groups["data_01"].groups["ku"]
    ds = zc.Dataset(
        schema=schema,
        variables={
            "time": zc.Variable(
                schema.variables["time"], numpy.arange(N, dtype="int64")
            ),
            "data_01/ku/power": zc.Variable(
                ku.variables["power"],
                numpy.random.default_rng(0)
                .standard_normal(size=(N, 240), dtype="float32"),
            ),
        },
    )








.. GENERATED FROM PYTHON SOURCE LINES 87-94

The size-aware multi-line repr
------------------------------

:class:`~zcollection.Dataset` and :class:`~zcollection.Variable` print
as multi-line, xarray-like blocks. The byte size is computed
recursively for the dataset and each child group so you can gauge
memory/disk footprint at a glance.

.. GENERATED FROM PYTHON SOURCE LINES 94-96

.. code-block:: Python

    print(ds)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    <zcollection.data.dataset.Dataset '/'> Size: 4.62 MB
      Dimensions: (time: 5000)
    Data variables:
        time    (time)                   int64        39.06 kB  numpy.ndarray<size=39.06 kB>
    Groups:
        data_01    4.58 MB  (0 variables, 1 subgroup)




.. GENERATED FROM PYTHON SOURCE LINES 97-104

Path-based access
-----------------

Use absolute paths (``"/data_01/ku/power"``) or short-name search
(:meth:`~zcollection.Group.find_variable`) to navigate the hierarchy.
:meth:`~zcollection.Group.find_dimension` walks up the tree so child
groups inherit dimensions declared on ancestors.

.. GENERATED FROM PYTHON SOURCE LINES 104-109

.. code-block:: Python

    power = ds.get_variable("/data_01/ku/power")
    ku_group = ds.get_group("/data_01/ku")
    print(f"power shape: {power.shape}, long_name: {ku_group.long_name()!r}")
    print(f"inherited dim: {ku_group.find_dimension('time')!r}")





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    power shape: (5000, 240), long_name: '/data_01/ku'
    inherited dim: Dimension(name='time', size=None, chunks=4096, shards=None)




.. GENERATED FROM PYTHON SOURCE LINES 110-116

Persist the dataset
-------------------

A partitioned collection writes nested Zarr groups *inside* every
partition. ``open_collection().query()`` reconstructs the same
in-memory hierarchy.

.. GENERATED FROM PYTHON SOURCE LINES 116-124

.. code-block:: Python

    collection = zc.create_collection(
        f"file://{target}",
        schema=schema,
        axis="time",
        partitioning=zc.partitioning.Sequence(("time",), dimension="time"),
    )
    collection.insert(ds)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    ['time=0', 'time=1', 'time=2', 'time=3', 'time=4', 'time=5', 'time=6', 'time=7', 'time=8', 'time=9', 'time=10', 'time=11', 'time=12', 'time=13', 'time=14', 'time=15', 'time=16', 'time=17', 'time=18', 'time=19', 'time=20', 'time=21', 'time=22', 'time=23', 'time=24', 'time=25', 'time=26', 'time=27', 'time=28', 'time=29', 'time=30', 'time=31', 'time=32', 'time=33', 'time=34', 'time=35', 'time=36', 'time=37', 'time=38', 'time=39', 'time=40', 'time=41', 'time=42', 'time=43', 'time=44', 'time=45', 'time=46', 'time=47', 'time=48', 'time=49', 'time=50', 'time=51', 'time=52', 'time=53', 'time=54', 'time=55', 'time=56', 'time=57', 'time=58', 'time=59', 'time=60', 'time=61', 'time=62', 'time=63', 'time=64', 'time=65', 'time=66', 'time=67', 'time=68', 'time=69', 'time=70', 'time=71', 'time=72', 'time=73', 'time=74', 'time=75', 'time=76', 'time=77', 'time=78', 'time=79', 'time=80', 'time=81', 'time=82', 'time=83', 'time=84', 'time=85', 'time=86', 'time=87', 'time=88', 'time=89', 'time=90', 'time=91', 'time=92', 'time=93', 'time=94', 'time=95', 'time=96', 'time=97', 'time=98', 'time=99', 'time=100', 'time=101', 'time=102', 'time=103', 'time=104', 'time=105', 'time=106', 'time=107', 'time=108', 'time=109', 'time=110', 'time=111', 'time=112', 'time=113', 'time=114', 'time=115', 'time=116', 'time=117', 'time=118', 'time=119', 'time=120', 'time=121', 'time=122', 'time=123', 'time=124', 'time=125', 'time=126', 'time=127', 'time=128', 'time=129', 'time=130', 'time=131', 'time=132', 'time=133', 'time=134', 'time=135', 'time=136', 'time=137', 'time=138', 'time=139', 'time=140', 'time=141', 'time=142', 'time=143', 'time=144', 'time=145', 'time=146', 'time=147', 'time=148', 'time=149', 'time=150', 'time=151', 'time=152', 'time=153', 'time=154', 'time=155', 'time=156', 'time=157', 'time=158', 'time=159', 'time=160', 'time=161', 'time=162', 'time=163', 'time=164', 'time=165', 'time=166', 'time=167', 'time=168', 'time=169', 'time=170', 'time=171', 'time=172', 'time=173', 'time=174', 'time=175', 'time=176', 'time=177', 'time=178', 'time=179', 'time=180', 'time=181', 'time=182', 'time=183', 'time=184', 'time=185', 'time=186', 'time=187', 'time=188', 'time=189', 'time=190', 'time=191', 'time=192', 'time=193', 'time=194', 'time=195', 'time=196', 'time=197', 'time=198', 'time=199', 'time=200', 'time=201', 'time=202', 'time=203', 'time=204', 'time=205', 'time=206', 'time=207', 'time=208', 'time=209', 'time=210', 'time=211', 'time=212', 'time=213', 'time=214', 'time=215', 'time=216', 'time=217', 'time=218', 'time=219', 'time=220', 'time=221', 'time=222', 'time=223', 'time=224', 'time=225', 'time=226', 'time=227', 'time=228', 'time=229', 'time=230', 'time=231', 'time=232', 'time=233', 'time=234', 'time=235', 'time=236', 'time=237', 'time=238', 'time=239', 'time=240', 'time=241', 'time=242', 'time=243', 'time=244', 'time=245', 'time=246', 'time=247', 'time=248', 'time=249', 'time=250', 'time=251', 'time=252', 'time=253', 'time=254', 'time=255', 'time=256', 'time=257', 'time=258', 'time=259', 'time=260', 'time=261', 'time=262', 'time=263', 'time=264', 'time=265', 'time=266', 'time=267', 'time=268', 'time=269', 'time=270', 'time=271', 'time=272', 'time=273', 'time=274', 'time=275', 'time=276', 'time=277', 'time=278', 'time=279', 'time=280', 'time=281', 'time=282', 'time=283', 'time=284', 'time=285', 'time=286', 'time=287', 'time=288', 'time=289', 'time=290', 'time=291', 'time=292', 'time=293', 'time=294', 'time=295', 'time=296', 'time=297', 'time=298', 'time=299', 'time=300', 'time=301', 'time=302', 'time=303', 'time=304', 'time=305', 'time=306', 'time=307', 'time=308', 'time=309', 'time=310', 'time=311', 'time=312', 'time=313', 'time=314', 'time=315', 'time=316', 'time=317', 'time=318', 'time=319', 'time=320', 'time=321', 'time=322', 'time=323', 'time=324', 'time=325', 'time=326', 'time=327', 'time=328', 'time=329', 'time=330', 'time=331', 'time=332', 'time=333', 'time=334', 'time=335', 'time=336', 'time=337', 'time=338', 'time=339', 'time=340', 'time=341', 'time=342', 'time=343', 'time=344', 'time=345', 'time=346', 'time=347', 'time=348', 'time=349', 'time=350', 'time=351', 'time=352', 'time=353', 'time=354', 'time=355', 'time=356', 'time=357', 'time=358', 'time=359', 'time=360', 'time=361', 'time=362', 'time=363', 'time=364', 'time=365', 'time=366', 'time=367', 'time=368', 'time=369', 'time=370', 'time=371', 'time=372', 'time=373', 'time=374', 'time=375', 'time=376', 'time=377', 'time=378', 'time=379', 'time=380', 'time=381', 'time=382', 'time=383', 'time=384', 'time=385', 'time=386', 'time=387', 'time=388', 'time=389', 'time=390', 'time=391', 'time=392', 'time=393', 'time=394', 'time=395', 'time=396', 'time=397', 'time=398', 'time=399', 'time=400', 'time=401', 'time=402', 'time=403', 'time=404', 'time=405', 'time=406', 'time=407', 'time=408', 'time=409', 'time=410', 'time=411', 'time=412', 'time=413', 'time=414', 'time=415', 'time=416', 'time=417', 'time=418', 'time=419', 'time=420', 'time=421', 'time=422', 'time=423', 'time=424', 'time=425', 'time=426', 'time=427', 'time=428', 'time=429', 'time=430', 'time=431', 'time=432', 'time=433', 'time=434', 'time=435', 'time=436', 'time=437', 'time=438', 'time=439', 'time=440', 'time=441', 'time=442', 'time=443', 'time=444', 'time=445', 'time=446', 'time=447', 'time=448', 'time=449', 'time=450', 'time=451', 'time=452', 'time=453', 'time=454', 'time=455', 'time=456', 'time=457', 'time=458', 'time=459', 'time=460', 'time=461', 'time=462', 'time=463', 'time=464', 'time=465', 'time=466', 'time=467', 'time=468', 'time=469', 'time=470', 'time=471', 'time=472', 'time=473', 'time=474', 'time=475', 'time=476', 'time=477', 'time=478', 'time=479', 'time=480', 'time=481', 'time=482', 'time=483', 'time=484', 'time=485', 'time=486', 'time=487', 'time=488', 'time=489', 'time=490', 'time=491', 'time=492', 'time=493', 'time=494', 'time=495', 'time=496', 'time=497', 'time=498', 'time=499', 'time=500', 'time=501', 'time=502', 'time=503', 'time=504', 'time=505', 'time=506', 'time=507', 'time=508', 'time=509', 'time=510', 'time=511', 'time=512', 'time=513', 'time=514', 'time=515', 'time=516', 'time=517', 'time=518', 'time=519', 'time=520', 'time=521', 'time=522', 'time=523', 'time=524', 'time=525', 'time=526', 'time=527', 'time=528', 'time=529', 'time=530', 'time=531', 'time=532', 'time=533', 'time=534', 'time=535', 'time=536', 'time=537', 'time=538', 'time=539', 'time=540', 'time=541', 'time=542', 'time=543', 'time=544', 'time=545', 'time=546', 'time=547', 'time=548', 'time=549', 'time=550', 'time=551', 'time=552', 'time=553', 'time=554', 'time=555', 'time=556', 'time=557', 'time=558', 'time=559', 'time=560', 'time=561', 'time=562', 'time=563', 'time=564', 'time=565', 'time=566', 'time=567', 'time=568', 'time=569', 'time=570', 'time=571', 'time=572', 'time=573', 'time=574', 'time=575', 'time=576', 'time=577', 'time=578', 'time=579', 'time=580', 'time=581', 'time=582', 'time=583', 'time=584', 'time=585', 'time=586', 'time=587', 'time=588', 'time=589', 'time=590', 'time=591', 'time=592', 'time=593', 'time=594', 'time=595', 'time=596', 'time=597', 'time=598', 'time=599', 'time=600', 'time=601', 'time=602', 'time=603', 'time=604', 'time=605', 'time=606', 'time=607', 'time=608', 'time=609', 'time=610', 'time=611', 'time=612', 'time=613', 'time=614', 'time=615', 'time=616', 'time=617', 'time=618', 'time=619', 'time=620', 'time=621', 'time=622', 'time=623', 'time=624', 'time=625', 'time=626', 'time=627', 'time=628', 'time=629', 'time=630', 'time=631', 'time=632', 'time=633', 'time=634', 'time=635', 'time=636', 'time=637', 'time=638', 'time=639', 'time=640', 'time=641', 'time=642', 'time=643', 'time=644', 'time=645', 'time=646', 'time=647', 'time=648', 'time=649', 'time=650', 'time=651', 'time=652', 'time=653', 'time=654', 'time=655', 'time=656', 'time=657', 'time=658', 'time=659', 'time=660', 'time=661', 'time=662', 'time=663', 'time=664', 'time=665', 'time=666', 'time=667', 'time=668', 'time=669', 'time=670', 'time=671', 'time=672', 'time=673', 'time=674', 'time=675', 'time=676', 'time=677', 'time=678', 'time=679', 'time=680', 'time=681', 'time=682', 'time=683', 'time=684', 'time=685', 'time=686', 'time=687', 'time=688', 'time=689', 'time=690', 'time=691', 'time=692', 'time=693', 'time=694', 'time=695', 'time=696', 'time=697', 'time=698', 'time=699', 'time=700', 'time=701', 'time=702', 'time=703', 'time=704', 'time=705', 'time=706', 'time=707', 'time=708', 'time=709', 'time=710', 'time=711', 'time=712', 'time=713', 'time=714', 'time=715', 'time=716', 'time=717', 'time=718', 'time=719', 'time=720', 'time=721', 'time=722', 'time=723', 'time=724', 'time=725', 'time=726', 'time=727', 'time=728', 'time=729', 'time=730', 'time=731', 'time=732', 'time=733', 'time=734', 'time=735', 'time=736', 'time=737', 'time=738', 'time=739', 'time=740', 'time=741', 'time=742', 'time=743', 'time=744', 'time=745', 'time=746', 'time=747', 'time=748', 'time=749', 'time=750', 'time=751', 'time=752', 'time=753', 'time=754', 'time=755', 'time=756', 'time=757', 'time=758', 'time=759', 'time=760', 'time=761', 'time=762', 'time=763', 'time=764', 'time=765', 'time=766', 'time=767', 'time=768', 'time=769', 'time=770', 'time=771', 'time=772', 'time=773', 'time=774', 'time=775', 'time=776', 'time=777', 'time=778', 'time=779', 'time=780', 'time=781', 'time=782', 'time=783', 'time=784', 'time=785', 'time=786', 'time=787', 'time=788', 'time=789', 'time=790', 'time=791', 'time=792', 'time=793', 'time=794', 'time=795', 'time=796', 'time=797', 'time=798', 'time=799', 'time=800', 'time=801', 'time=802', 'time=803', 'time=804', 'time=805', 'time=806', 'time=807', 'time=808', 'time=809', 'time=810', 'time=811', 'time=812', 'time=813', 'time=814', 'time=815', 'time=816', 'time=817', 'time=818', 'time=819', 'time=820', 'time=821', 'time=822', 'time=823', 'time=824', 'time=825', 'time=826', 'time=827', 'time=828', 'time=829', 'time=830', 'time=831', 'time=832', 'time=833', 'time=834', 'time=835', 'time=836', 'time=837', 'time=838', 'time=839', 'time=840', 'time=841', 'time=842', 'time=843', 'time=844', 'time=845', 'time=846', 'time=847', 'time=848', 'time=849', 'time=850', 'time=851', 'time=852', 'time=853', 'time=854', 'time=855', 'time=856', 'time=857', 'time=858', 'time=859', 'time=860', 'time=861', 'time=862', 'time=863', 'time=864', 'time=865', 'time=866', 'time=867', 'time=868', 'time=869', 'time=870', 'time=871', 'time=872', 'time=873', 'time=874', 'time=875', 'time=876', 'time=877', 'time=878', 'time=879', 'time=880', 'time=881', 'time=882', 'time=883', 'time=884', 'time=885', 'time=886', 'time=887', 'time=888', 'time=889', 'time=890', 'time=891', 'time=892', 'time=893', 'time=894', 'time=895', 'time=896', 'time=897', 'time=898', 'time=899', 'time=900', 'time=901', 'time=902', 'time=903', 'time=904', 'time=905', 'time=906', 'time=907', 'time=908', 'time=909', 'time=910', 'time=911', 'time=912', 'time=913', 'time=914', 'time=915', 'time=916', 'time=917', 'time=918', 'time=919', 'time=920', 'time=921', 'time=922', 'time=923', 'time=924', 'time=925', 'time=926', 'time=927', 'time=928', 'time=929', 'time=930', 'time=931', 'time=932', 'time=933', 'time=934', 'time=935', 'time=936', 'time=937', 'time=938', 'time=939', 'time=940', 'time=941', 'time=942', 'time=943', 'time=944', 'time=945', 'time=946', 'time=947', 'time=948', 'time=949', 'time=950', 'time=951', 'time=952', 'time=953', 'time=954', 'time=955', 'time=956', 'time=957', 'time=958', 'time=959', 'time=960', 'time=961', 'time=962', 'time=963', 'time=964', 'time=965', 'time=966', 'time=967', 'time=968', 'time=969', 'time=970', 'time=971', 'time=972', 'time=973', 'time=974', 'time=975', 'time=976', 'time=977', 'time=978', 'time=979', 'time=980', 'time=981', 'time=982', 'time=983', 'time=984', 'time=985', 'time=986', 'time=987', 'time=988', 'time=989', 'time=990', 'time=991', 'time=992', 'time=993', 'time=994', 'time=995', 'time=996', 'time=997', 'time=998', 'time=999', 'time=1000', 'time=1001', 'time=1002', 'time=1003', 'time=1004', 'time=1005', 'time=1006', 'time=1007', 'time=1008', 'time=1009', 'time=1010', 'time=1011', 'time=1012', 'time=1013', 'time=1014', 'time=1015', 'time=1016', 'time=1017', 'time=1018', 'time=1019', 'time=1020', 'time=1021', 'time=1022', 'time=1023', 'time=1024', 'time=1025', 'time=1026', 'time=1027', 'time=1028', 'time=1029', 'time=1030', 'time=1031', 'time=1032', 'time=1033', 'time=1034', 'time=1035', 'time=1036', 'time=1037', 'time=1038', 'time=1039', 'time=1040', 'time=1041', 'time=1042', 'time=1043', 'time=1044', 'time=1045', 'time=1046', 'time=1047', 'time=1048', 'time=1049', 'time=1050', 'time=1051', 'time=1052', 'time=1053', 'time=1054', 'time=1055', 'time=1056', 'time=1057', 'time=1058', 'time=1059', 'time=1060', 'time=1061', 'time=1062', 'time=1063', 'time=1064', 'time=1065', 'time=1066', 'time=1067', 'time=1068', 'time=1069', 'time=1070', 'time=1071', 'time=1072', 'time=1073', 'time=1074', 'time=1075', 'time=1076', 'time=1077', 'time=1078', 'time=1079', 'time=1080', 'time=1081', 'time=1082', 'time=1083', 'time=1084', 'time=1085', 'time=1086', 'time=1087', 'time=1088', 'time=1089', 'time=1090', 'time=1091', 'time=1092', 'time=1093', 'time=1094', 'time=1095', 'time=1096', 'time=1097', 'time=1098', 'time=1099', 'time=1100', 'time=1101', 'time=1102', 'time=1103', 'time=1104', 'time=1105', 'time=1106', 'time=1107', 'time=1108', 'time=1109', 'time=1110', 'time=1111', 'time=1112', 'time=1113', 'time=1114', 'time=1115', 'time=1116', 'time=1117', 'time=1118', 'time=1119', 'time=1120', 'time=1121', 'time=1122', 'time=1123', 'time=1124', 'time=1125', 'time=1126', 'time=1127', 'time=1128', 'time=1129', 'time=1130', 'time=1131', 'time=1132', 'time=1133', 'time=1134', 'time=1135', 'time=1136', 'time=1137', 'time=1138', 'time=1139', 'time=1140', 'time=1141', 'time=1142', 'time=1143', 'time=1144', 'time=1145', 'time=1146', 'time=1147', 'time=1148', 'time=1149', 'time=1150', 'time=1151', 'time=1152', 'time=1153', 'time=1154', 'time=1155', 'time=1156', 'time=1157', 'time=1158', 'time=1159', 'time=1160', 'time=1161', 'time=1162', 'time=1163', 'time=1164', 'time=1165', 'time=1166', 'time=1167', 'time=1168', 'time=1169', 'time=1170', 'time=1171', 'time=1172', 'time=1173', 'time=1174', 'time=1175', 'time=1176', 'time=1177', 'time=1178', 'time=1179', 'time=1180', 'time=1181', 'time=1182', 'time=1183', 'time=1184', 'time=1185', 'time=1186', 'time=1187', 'time=1188', 'time=1189', 'time=1190', 'time=1191', 'time=1192', 'time=1193', 'time=1194', 'time=1195', 'time=1196', 'time=1197', 'time=1198', 'time=1199', 'time=1200', 'time=1201', 'time=1202', 'time=1203', 'time=1204', 'time=1205', 'time=1206', 'time=1207', 'time=1208', 'time=1209', 'time=1210', 'time=1211', 'time=1212', 'time=1213', 'time=1214', 'time=1215', 'time=1216', 'time=1217', 'time=1218', 'time=1219', 'time=1220', 'time=1221', 'time=1222', 'time=1223', 'time=1224', 'time=1225', 'time=1226', 'time=1227', 'time=1228', 'time=1229', 'time=1230', 'time=1231', 'time=1232', 'time=1233', 'time=1234', 'time=1235', 'time=1236', 'time=1237', 'time=1238', 'time=1239', 'time=1240', 'time=1241', 'time=1242', 'time=1243', 'time=1244', 'time=1245', 'time=1246', 'time=1247', 'time=1248', 'time=1249', 'time=1250', 'time=1251', 'time=1252', 'time=1253', 'time=1254', 'time=1255', 'time=1256', 'time=1257', 'time=1258', 'time=1259', 'time=1260', 'time=1261', 'time=1262', 'time=1263', 'time=1264', 'time=1265', 'time=1266', 'time=1267', 'time=1268', 'time=1269', 'time=1270', 'time=1271', 'time=1272', 'time=1273', 'time=1274', 'time=1275', 'time=1276', 'time=1277', 'time=1278', 'time=1279', 'time=1280', 'time=1281', 'time=1282', 'time=1283', 'time=1284', 'time=1285', 'time=1286', 'time=1287', 'time=1288', 'time=1289', 'time=1290', 'time=1291', 'time=1292', 'time=1293', 'time=1294', 'time=1295', 'time=1296', 'time=1297', 'time=1298', 'time=1299', 'time=1300', 'time=1301', 'time=1302', 'time=1303', 'time=1304', 'time=1305', 'time=1306', 'time=1307', 'time=1308', 'time=1309', 'time=1310', 'time=1311', 'time=1312', 'time=1313', 'time=1314', 'time=1315', 'time=1316', 'time=1317', 'time=1318', 'time=1319', 'time=1320', 'time=1321', 'time=1322', 'time=1323', 'time=1324', 'time=1325', 'time=1326', 'time=1327', 'time=1328', 'time=1329', 'time=1330', 'time=1331', 'time=1332', 'time=1333', 'time=1334', 'time=1335', 'time=1336', 'time=1337', 'time=1338', 'time=1339', 'time=1340', 'time=1341', 'time=1342', 'time=1343', 'time=1344', 'time=1345', 'time=1346', 'time=1347', 'time=1348', 'time=1349', 'time=1350', 'time=1351', 'time=1352', 'time=1353', 'time=1354', 'time=1355', 'time=1356', 'time=1357', 'time=1358', 'time=1359', 'time=1360', 'time=1361', 'time=1362', 'time=1363', 'time=1364', 'time=1365', 'time=1366', 'time=1367', 'time=1368', 'time=1369', 'time=1370', 'time=1371', 'time=1372', 'time=1373', 'time=1374', 'time=1375', 'time=1376', 'time=1377', 'time=1378', 'time=1379', 'time=1380', 'time=1381', 'time=1382', 'time=1383', 'time=1384', 'time=1385', 'time=1386', 'time=1387', 'time=1388', 'time=1389', 'time=1390', 'time=1391', 'time=1392', 'time=1393', 'time=1394', 'time=1395', 'time=1396', 'time=1397', 'time=1398', 'time=1399', 'time=1400', 'time=1401', 'time=1402', 'time=1403', 'time=1404', 'time=1405', 'time=1406', 'time=1407', 'time=1408', 'time=1409', 'time=1410', 'time=1411', 'time=1412', 'time=1413', 'time=1414', 'time=1415', 'time=1416', 'time=1417', 'time=1418', 'time=1419', 'time=1420', 'time=1421', 'time=1422', 'time=1423', 'time=1424', 'time=1425', 'time=1426', 'time=1427', 'time=1428', 'time=1429', 'time=1430', 'time=1431', 'time=1432', 'time=1433', 'time=1434', 'time=1435', 'time=1436', 'time=1437', 'time=1438', 'time=1439', 'time=1440', 'time=1441', 'time=1442', 'time=1443', 'time=1444', 'time=1445', 'time=1446', 'time=1447', 'time=1448', 'time=1449', 'time=1450', 'time=1451', 'time=1452', 'time=1453', 'time=1454', 'time=1455', 'time=1456', 'time=1457', 'time=1458', 'time=1459', 'time=1460', 'time=1461', 'time=1462', 'time=1463', 'time=1464', 'time=1465', 'time=1466', 'time=1467', 'time=1468', 'time=1469', 'time=1470', 'time=1471', 'time=1472', 'time=1473', 'time=1474', 'time=1475', 'time=1476', 'time=1477', 'time=1478', 'time=1479', 'time=1480', 'time=1481', 'time=1482', 'time=1483', 'time=1484', 'time=1485', 'time=1486', 'time=1487', 'time=1488', 'time=1489', 'time=1490', 'time=1491', 'time=1492', 'time=1493', 'time=1494', 'time=1495', 'time=1496', 'time=1497', 'time=1498', 'time=1499', 'time=1500', 'time=1501', 'time=1502', 'time=1503', 'time=1504', 'time=1505', 'time=1506', 'time=1507', 'time=1508', 'time=1509', 'time=1510', 'time=1511', 'time=1512', 'time=1513', 'time=1514', 'time=1515', 'time=1516', 'time=1517', 'time=1518', 'time=1519', 'time=1520', 'time=1521', 'time=1522', 'time=1523', 'time=1524', 'time=1525', 'time=1526', 'time=1527', 'time=1528', 'time=1529', 'time=1530', 'time=1531', 'time=1532', 'time=1533', 'time=1534', 'time=1535', 'time=1536', 'time=1537', 'time=1538', 'time=1539', 'time=1540', 'time=1541', 'time=1542', 'time=1543', 'time=1544', 'time=1545', 'time=1546', 'time=1547', 'time=1548', 'time=1549', 'time=1550', 'time=1551', 'time=1552', 'time=1553', 'time=1554', 'time=1555', 'time=1556', 'time=1557', 'time=1558', 'time=1559', 'time=1560', 'time=1561', 'time=1562', 'time=1563', 'time=1564', 'time=1565', 'time=1566', 'time=1567', 'time=1568', 'time=1569', 'time=1570', 'time=1571', 'time=1572', 'time=1573', 'time=1574', 'time=1575', 'time=1576', 'time=1577', 'time=1578', 'time=1579', 'time=1580', 'time=1581', 'time=1582', 'time=1583', 'time=1584', 'time=1585', 'time=1586', 'time=1587', 'time=1588', 'time=1589', 'time=1590', 'time=1591', 'time=1592', 'time=1593', 'time=1594', 'time=1595', 'time=1596', 'time=1597', 'time=1598', 'time=1599', 'time=1600', 'time=1601', 'time=1602', 'time=1603', 'time=1604', 'time=1605', 'time=1606', 'time=1607', 'time=1608', 'time=1609', 'time=1610', 'time=1611', 'time=1612', 'time=1613', 'time=1614', 'time=1615', 'time=1616', 'time=1617', 'time=1618', 'time=1619', 'time=1620', 'time=1621', 'time=1622', 'time=1623', 'time=1624', 'time=1625', 'time=1626', 'time=1627', 'time=1628', 'time=1629', 'time=1630', 'time=1631', 'time=1632', 'time=1633', 'time=1634', 'time=1635', 'time=1636', 'time=1637', 'time=1638', 'time=1639', 'time=1640', 'time=1641', 'time=1642', 'time=1643', 'time=1644', 'time=1645', 'time=1646', 'time=1647', 'time=1648', 'time=1649', 'time=1650', 'time=1651', 'time=1652', 'time=1653', 'time=1654', 'time=1655', 'time=1656', 'time=1657', 'time=1658', 'time=1659', 'time=1660', 'time=1661', 'time=1662', 'time=1663', 'time=1664', 'time=1665', 'time=1666', 'time=1667', 'time=1668', 'time=1669', 'time=1670', 'time=1671', 'time=1672', 'time=1673', 'time=1674', 'time=1675', 'time=1676', 'time=1677', 'time=1678', 'time=1679', 'time=1680', 'time=1681', 'time=1682', 'time=1683', 'time=1684', 'time=1685', 'time=1686', 'time=1687', 'time=1688', 'time=1689', 'time=1690', 'time=1691', 'time=1692', 'time=1693', 'time=1694', 'time=1695', 'time=1696', 'time=1697', 'time=1698', 'time=1699', 'time=1700', 'time=1701', 'time=1702', 'time=1703', 'time=1704', 'time=1705', 'time=1706', 'time=1707', 'time=1708', 'time=1709', 'time=1710', 'time=1711', 'time=1712', 'time=1713', 'time=1714', 'time=1715', 'time=1716', 'time=1717', 'time=1718', 'time=1719', 'time=1720', 'time=1721', 'time=1722', 'time=1723', 'time=1724', 'time=1725', 'time=1726', 'time=1727', 'time=1728', 'time=1729', 'time=1730', 'time=1731', 'time=1732', 'time=1733', 'time=1734', 'time=1735', 'time=1736', 'time=1737', 'time=1738', 'time=1739', 'time=1740', 'time=1741', 'time=1742', 'time=1743', 'time=1744', 'time=1745', 'time=1746', 'time=1747', 'time=1748', 'time=1749', 'time=1750', 'time=1751', 'time=1752', 'time=1753', 'time=1754', 'time=1755', 'time=1756', 'time=1757', 'time=1758', 'time=1759', 'time=1760', 'time=1761', 'time=1762', 'time=1763', 'time=1764', 'time=1765', 'time=1766', 'time=1767', 'time=1768', 'time=1769', 'time=1770', 'time=1771', 'time=1772', 'time=1773', 'time=1774', 'time=1775', 'time=1776', 'time=1777', 'time=1778', 'time=1779', 'time=1780', 'time=1781', 'time=1782', 'time=1783', 'time=1784', 'time=1785', 'time=1786', 'time=1787', 'time=1788', 'time=1789', 'time=1790', 'time=1791', 'time=1792', 'time=1793', 'time=1794', 'time=1795', 'time=1796', 'time=1797', 'time=1798', 'time=1799', 'time=1800', 'time=1801', 'time=1802', 'time=1803', 'time=1804', 'time=1805', 'time=1806', 'time=1807', 'time=1808', 'time=1809', 'time=1810', 'time=1811', 'time=1812', 'time=1813', 'time=1814', 'time=1815', 'time=1816', 'time=1817', 'time=1818', 'time=1819', 'time=1820', 'time=1821', 'time=1822', 'time=1823', 'time=1824', 'time=1825', 'time=1826', 'time=1827', 'time=1828', 'time=1829', 'time=1830', 'time=1831', 'time=1832', 'time=1833', 'time=1834', 'time=1835', 'time=1836', 'time=1837', 'time=1838', 'time=1839', 'time=1840', 'time=1841', 'time=1842', 'time=1843', 'time=1844', 'time=1845', 'time=1846', 'time=1847', 'time=1848', 'time=1849', 'time=1850', 'time=1851', 'time=1852', 'time=1853', 'time=1854', 'time=1855', 'time=1856', 'time=1857', 'time=1858', 'time=1859', 'time=1860', 'time=1861', 'time=1862', 'time=1863', 'time=1864', 'time=1865', 'time=1866', 'time=1867', 'time=1868', 'time=1869', 'time=1870', 'time=1871', 'time=1872', 'time=1873', 'time=1874', 'time=1875', 'time=1876', 'time=1877', 'time=1878', 'time=1879', 'time=1880', 'time=1881', 'time=1882', 'time=1883', 'time=1884', 'time=1885', 'time=1886', 'time=1887', 'time=1888', 'time=1889', 'time=1890', 'time=1891', 'time=1892', 'time=1893', 'time=1894', 'time=1895', 'time=1896', 'time=1897', 'time=1898', 'time=1899', 'time=1900', 'time=1901', 'time=1902', 'time=1903', 'time=1904', 'time=1905', 'time=1906', 'time=1907', 'time=1908', 'time=1909', 'time=1910', 'time=1911', 'time=1912', 'time=1913', 'time=1914', 'time=1915', 'time=1916', 'time=1917', 'time=1918', 'time=1919', 'time=1920', 'time=1921', 'time=1922', 'time=1923', 'time=1924', 'time=1925', 'time=1926', 'time=1927', 'time=1928', 'time=1929', 'time=1930', 'time=1931', 'time=1932', 'time=1933', 'time=1934', 'time=1935', 'time=1936', 'time=1937', 'time=1938', 'time=1939', 'time=1940', 'time=1941', 'time=1942', 'time=1943', 'time=1944', 'time=1945', 'time=1946', 'time=1947', 'time=1948', 'time=1949', 'time=1950', 'time=1951', 'time=1952', 'time=1953', 'time=1954', 'time=1955', 'time=1956', 'time=1957', 'time=1958', 'time=1959', 'time=1960', 'time=1961', 'time=1962', 'time=1963', 'time=1964', 'time=1965', 'time=1966', 'time=1967', 'time=1968', 'time=1969', 'time=1970', 'time=1971', 'time=1972', 'time=1973', 'time=1974', 'time=1975', 'time=1976', 'time=1977', 'time=1978', 'time=1979', 'time=1980', 'time=1981', 'time=1982', 'time=1983', 'time=1984', 'time=1985', 'time=1986', 'time=1987', 'time=1988', 'time=1989', 'time=1990', 'time=1991', 'time=1992', 'time=1993', 'time=1994', 'time=1995', 'time=1996', 'time=1997', 'time=1998', 'time=1999', 'time=2000', 'time=2001', 'time=2002', 'time=2003', 'time=2004', 'time=2005', 'time=2006', 'time=2007', 'time=2008', 'time=2009', 'time=2010', 'time=2011', 'time=2012', 'time=2013', 'time=2014', 'time=2015', 'time=2016', 'time=2017', 'time=2018', 'time=2019', 'time=2020', 'time=2021', 'time=2022', 'time=2023', 'time=2024', 'time=2025', 'time=2026', 'time=2027', 'time=2028', 'time=2029', 'time=2030', 'time=2031', 'time=2032', 'time=2033', 'time=2034', 'time=2035', 'time=2036', 'time=2037', 'time=2038', 'time=2039', 'time=2040', 'time=2041', 'time=2042', 'time=2043', 'time=2044', 'time=2045', 'time=2046', 'time=2047', 'time=2048', 'time=2049', 'time=2050', 'time=2051', 'time=2052', 'time=2053', 'time=2054', 'time=2055', 'time=2056', 'time=2057', 'time=2058', 'time=2059', 'time=2060', 'time=2061', 'time=2062', 'time=2063', 'time=2064', 'time=2065', 'time=2066', 'time=2067', 'time=2068', 'time=2069', 'time=2070', 'time=2071', 'time=2072', 'time=2073', 'time=2074', 'time=2075', 'time=2076', 'time=2077', 'time=2078', 'time=2079', 'time=2080', 'time=2081', 'time=2082', 'time=2083', 'time=2084', 'time=2085', 'time=2086', 'time=2087', 'time=2088', 'time=2089', 'time=2090', 'time=2091', 'time=2092', 'time=2093', 'time=2094', 'time=2095', 'time=2096', 'time=2097', 'time=2098', 'time=2099', 'time=2100', 'time=2101', 'time=2102', 'time=2103', 'time=2104', 'time=2105', 'time=2106', 'time=2107', 'time=2108', 'time=2109', 'time=2110', 'time=2111', 'time=2112', 'time=2113', 'time=2114', 'time=2115', 'time=2116', 'time=2117', 'time=2118', 'time=2119', 'time=2120', 'time=2121', 'time=2122', 'time=2123', 'time=2124', 'time=2125', 'time=2126', 'time=2127', 'time=2128', 'time=2129', 'time=2130', 'time=2131', 'time=2132', 'time=2133', 'time=2134', 'time=2135', 'time=2136', 'time=2137', 'time=2138', 'time=2139', 'time=2140', 'time=2141', 'time=2142', 'time=2143', 'time=2144', 'time=2145', 'time=2146', 'time=2147', 'time=2148', 'time=2149', 'time=2150', 'time=2151', 'time=2152', 'time=2153', 'time=2154', 'time=2155', 'time=2156', 'time=2157', 'time=2158', 'time=2159', 'time=2160', 'time=2161', 'time=2162', 'time=2163', 'time=2164', 'time=2165', 'time=2166', 'time=2167', 'time=2168', 'time=2169', 'time=2170', 'time=2171', 'time=2172', 'time=2173', 'time=2174', 'time=2175', 'time=2176', 'time=2177', 'time=2178', 'time=2179', 'time=2180', 'time=2181', 'time=2182', 'time=2183', 'time=2184', 'time=2185', 'time=2186', 'time=2187', 'time=2188', 'time=2189', 'time=2190', 'time=2191', 'time=2192', 'time=2193', 'time=2194', 'time=2195', 'time=2196', 'time=2197', 'time=2198', 'time=2199', 'time=2200', 'time=2201', 'time=2202', 'time=2203', 'time=2204', 'time=2205', 'time=2206', 'time=2207', 'time=2208', 'time=2209', 'time=2210', 'time=2211', 'time=2212', 'time=2213', 'time=2214', 'time=2215', 'time=2216', 'time=2217', 'time=2218', 'time=2219', 'time=2220', 'time=2221', 'time=2222', 'time=2223', 'time=2224', 'time=2225', 'time=2226', 'time=2227', 'time=2228', 'time=2229', 'time=2230', 'time=2231', 'time=2232', 'time=2233', 'time=2234', 'time=2235', 'time=2236', 'time=2237', 'time=2238', 'time=2239', 'time=2240', 'time=2241', 'time=2242', 'time=2243', 'time=2244', 'time=2245', 'time=2246', 'time=2247', 'time=2248', 'time=2249', 'time=2250', 'time=2251', 'time=2252', 'time=2253', 'time=2254', 'time=2255', 'time=2256', 'time=2257', 'time=2258', 'time=2259', 'time=2260', 'time=2261', 'time=2262', 'time=2263', 'time=2264', 'time=2265', 'time=2266', 'time=2267', 'time=2268', 'time=2269', 'time=2270', 'time=2271', 'time=2272', 'time=2273', 'time=2274', 'time=2275', 'time=2276', 'time=2277', 'time=2278', 'time=2279', 'time=2280', 'time=2281', 'time=2282', 'time=2283', 'time=2284', 'time=2285', 'time=2286', 'time=2287', 'time=2288', 'time=2289', 'time=2290', 'time=2291', 'time=2292', 'time=2293', 'time=2294', 'time=2295', 'time=2296', 'time=2297', 'time=2298', 'time=2299', 'time=2300', 'time=2301', 'time=2302', 'time=2303', 'time=2304', 'time=2305', 'time=2306', 'time=2307', 'time=2308', 'time=2309', 'time=2310', 'time=2311', 'time=2312', 'time=2313', 'time=2314', 'time=2315', 'time=2316', 'time=2317', 'time=2318', 'time=2319', 'time=2320', 'time=2321', 'time=2322', 'time=2323', 'time=2324', 'time=2325', 'time=2326', 'time=2327', 'time=2328', 'time=2329', 'time=2330', 'time=2331', 'time=2332', 'time=2333', 'time=2334', 'time=2335', 'time=2336', 'time=2337', 'time=2338', 'time=2339', 'time=2340', 'time=2341', 'time=2342', 'time=2343', 'time=2344', 'time=2345', 'time=2346', 'time=2347', 'time=2348', 'time=2349', 'time=2350', 'time=2351', 'time=2352', 'time=2353', 'time=2354', 'time=2355', 'time=2356', 'time=2357', 'time=2358', 'time=2359', 'time=2360', 'time=2361', 'time=2362', 'time=2363', 'time=2364', 'time=2365', 'time=2366', 'time=2367', 'time=2368', 'time=2369', 'time=2370', 'time=2371', 'time=2372', 'time=2373', 'time=2374', 'time=2375', 'time=2376', 'time=2377', 'time=2378', 'time=2379', 'time=2380', 'time=2381', 'time=2382', 'time=2383', 'time=2384', 'time=2385', 'time=2386', 'time=2387', 'time=2388', 'time=2389', 'time=2390', 'time=2391', 'time=2392', 'time=2393', 'time=2394', 'time=2395', 'time=2396', 'time=2397', 'time=2398', 'time=2399', 'time=2400', 'time=2401', 'time=2402', 'time=2403', 'time=2404', 'time=2405', 'time=2406', 'time=2407', 'time=2408', 'time=2409', 'time=2410', 'time=2411', 'time=2412', 'time=2413', 'time=2414', 'time=2415', 'time=2416', 'time=2417', 'time=2418', 'time=2419', 'time=2420', 'time=2421', 'time=2422', 'time=2423', 'time=2424', 'time=2425', 'time=2426', 'time=2427', 'time=2428', 'time=2429', 'time=2430', 'time=2431', 'time=2432', 'time=2433', 'time=2434', 'time=2435', 'time=2436', 'time=2437', 'time=2438', 'time=2439', 'time=2440', 'time=2441', 'time=2442', 'time=2443', 'time=2444', 'time=2445', 'time=2446', 'time=2447', 'time=2448', 'time=2449', 'time=2450', 'time=2451', 'time=2452', 'time=2453', 'time=2454', 'time=2455', 'time=2456', 'time=2457', 'time=2458', 'time=2459', 'time=2460', 'time=2461', 'time=2462', 'time=2463', 'time=2464', 'time=2465', 'time=2466', 'time=2467', 'time=2468', 'time=2469', 'time=2470', 'time=2471', 'time=2472', 'time=2473', 'time=2474', 'time=2475', 'time=2476', 'time=2477', 'time=2478', 'time=2479', 'time=2480', 'time=2481', 'time=2482', 'time=2483', 'time=2484', 'time=2485', 'time=2486', 'time=2487', 'time=2488', 'time=2489', 'time=2490', 'time=2491', 'time=2492', 'time=2493', 'time=2494', 'time=2495', 'time=2496', 'time=2497', 'time=2498', 'time=2499', 'time=2500', 'time=2501', 'time=2502', 'time=2503', 'time=2504', 'time=2505', 'time=2506', 'time=2507', 'time=2508', 'time=2509', 'time=2510', 'time=2511', 'time=2512', 'time=2513', 'time=2514', 'time=2515', 'time=2516', 'time=2517', 'time=2518', 'time=2519', 'time=2520', 'time=2521', 'time=2522', 'time=2523', 'time=2524', 'time=2525', 'time=2526', 'time=2527', 'time=2528', 'time=2529', 'time=2530', 'time=2531', 'time=2532', 'time=2533', 'time=2534', 'time=2535', 'time=2536', 'time=2537', 'time=2538', 'time=2539', 'time=2540', 'time=2541', 'time=2542', 'time=2543', 'time=2544', 'time=2545', 'time=2546', 'time=2547', 'time=2548', 'time=2549', 'time=2550', 'time=2551', 'time=2552', 'time=2553', 'time=2554', 'time=2555', 'time=2556', 'time=2557', 'time=2558', 'time=2559', 'time=2560', 'time=2561', 'time=2562', 'time=2563', 'time=2564', 'time=2565', 'time=2566', 'time=2567', 'time=2568', 'time=2569', 'time=2570', 'time=2571', 'time=2572', 'time=2573', 'time=2574', 'time=2575', 'time=2576', 'time=2577', 'time=2578', 'time=2579', 'time=2580', 'time=2581', 'time=2582', 'time=2583', 'time=2584', 'time=2585', 'time=2586', 'time=2587', 'time=2588', 'time=2589', 'time=2590', 'time=2591', 'time=2592', 'time=2593', 'time=2594', 'time=2595', 'time=2596', 'time=2597', 'time=2598', 'time=2599', 'time=2600', 'time=2601', 'time=2602', 'time=2603', 'time=2604', 'time=2605', 'time=2606', 'time=2607', 'time=2608', 'time=2609', 'time=2610', 'time=2611', 'time=2612', 'time=2613', 'time=2614', 'time=2615', 'time=2616', 'time=2617', 'time=2618', 'time=2619', 'time=2620', 'time=2621', 'time=2622', 'time=2623', 'time=2624', 'time=2625', 'time=2626', 'time=2627', 'time=2628', 'time=2629', 'time=2630', 'time=2631', 'time=2632', 'time=2633', 'time=2634', 'time=2635', 'time=2636', 'time=2637', 'time=2638', 'time=2639', 'time=2640', 'time=2641', 'time=2642', 'time=2643', 'time=2644', 'time=2645', 'time=2646', 'time=2647', 'time=2648', 'time=2649', 'time=2650', 'time=2651', 'time=2652', 'time=2653', 'time=2654', 'time=2655', 'time=2656', 'time=2657', 'time=2658', 'time=2659', 'time=2660', 'time=2661', 'time=2662', 'time=2663', 'time=2664', 'time=2665', 'time=2666', 'time=2667', 'time=2668', 'time=2669', 'time=2670', 'time=2671', 'time=2672', 'time=2673', 'time=2674', 'time=2675', 'time=2676', 'time=2677', 'time=2678', 'time=2679', 'time=2680', 'time=2681', 'time=2682', 'time=2683', 'time=2684', 'time=2685', 'time=2686', 'time=2687', 'time=2688', 'time=2689', 'time=2690', 'time=2691', 'time=2692', 'time=2693', 'time=2694', 'time=2695', 'time=2696', 'time=2697', 'time=2698', 'time=2699', 'time=2700', 'time=2701', 'time=2702', 'time=2703', 'time=2704', 'time=2705', 'time=2706', 'time=2707', 'time=2708', 'time=2709', 'time=2710', 'time=2711', 'time=2712', 'time=2713', 'time=2714', 'time=2715', 'time=2716', 'time=2717', 'time=2718', 'time=2719', 'time=2720', 'time=2721', 'time=2722', 'time=2723', 'time=2724', 'time=2725', 'time=2726', 'time=2727', 'time=2728', 'time=2729', 'time=2730', 'time=2731', 'time=2732', 'time=2733', 'time=2734', 'time=2735', 'time=2736', 'time=2737', 'time=2738', 'time=2739', 'time=2740', 'time=2741', 'time=2742', 'time=2743', 'time=2744', 'time=2745', 'time=2746', 'time=2747', 'time=2748', 'time=2749', 'time=2750', 'time=2751', 'time=2752', 'time=2753', 'time=2754', 'time=2755', 'time=2756', 'time=2757', 'time=2758', 'time=2759', 'time=2760', 'time=2761', 'time=2762', 'time=2763', 'time=2764', 'time=2765', 'time=2766', 'time=2767', 'time=2768', 'time=2769', 'time=2770', 'time=2771', 'time=2772', 'time=2773', 'time=2774', 'time=2775', 'time=2776', 'time=2777', 'time=2778', 'time=2779', 'time=2780', 'time=2781', 'time=2782', 'time=2783', 'time=2784', 'time=2785', 'time=2786', 'time=2787', 'time=2788', 'time=2789', 'time=2790', 'time=2791', 'time=2792', 'time=2793', 'time=2794', 'time=2795', 'time=2796', 'time=2797', 'time=2798', 'time=2799', 'time=2800', 'time=2801', 'time=2802', 'time=2803', 'time=2804', 'time=2805', 'time=2806', 'time=2807', 'time=2808', 'time=2809', 'time=2810', 'time=2811', 'time=2812', 'time=2813', 'time=2814', 'time=2815', 'time=2816', 'time=2817', 'time=2818', 'time=2819', 'time=2820', 'time=2821', 'time=2822', 'time=2823', 'time=2824', 'time=2825', 'time=2826', 'time=2827', 'time=2828', 'time=2829', 'time=2830', 'time=2831', 'time=2832', 'time=2833', 'time=2834', 'time=2835', 'time=2836', 'time=2837', 'time=2838', 'time=2839', 'time=2840', 'time=2841', 'time=2842', 'time=2843', 'time=2844', 'time=2845', 'time=2846', 'time=2847', 'time=2848', 'time=2849', 'time=2850', 'time=2851', 'time=2852', 'time=2853', 'time=2854', 'time=2855', 'time=2856', 'time=2857', 'time=2858', 'time=2859', 'time=2860', 'time=2861', 'time=2862', 'time=2863', 'time=2864', 'time=2865', 'time=2866', 'time=2867', 'time=2868', 'time=2869', 'time=2870', 'time=2871', 'time=2872', 'time=2873', 'time=2874', 'time=2875', 'time=2876', 'time=2877', 'time=2878', 'time=2879', 'time=2880', 'time=2881', 'time=2882', 'time=2883', 'time=2884', 'time=2885', 'time=2886', 'time=2887', 'time=2888', 'time=2889', 'time=2890', 'time=2891', 'time=2892', 'time=2893', 'time=2894', 'time=2895', 'time=2896', 'time=2897', 'time=2898', 'time=2899', 'time=2900', 'time=2901', 'time=2902', 'time=2903', 'time=2904', 'time=2905', 'time=2906', 'time=2907', 'time=2908', 'time=2909', 'time=2910', 'time=2911', 'time=2912', 'time=2913', 'time=2914', 'time=2915', 'time=2916', 'time=2917', 'time=2918', 'time=2919', 'time=2920', 'time=2921', 'time=2922', 'time=2923', 'time=2924', 'time=2925', 'time=2926', 'time=2927', 'time=2928', 'time=2929', 'time=2930', 'time=2931', 'time=2932', 'time=2933', 'time=2934', 'time=2935', 'time=2936', 'time=2937', 'time=2938', 'time=2939', 'time=2940', 'time=2941', 'time=2942', 'time=2943', 'time=2944', 'time=2945', 'time=2946', 'time=2947', 'time=2948', 'time=2949', 'time=2950', 'time=2951', 'time=2952', 'time=2953', 'time=2954', 'time=2955', 'time=2956', 'time=2957', 'time=2958', 'time=2959', 'time=2960', 'time=2961', 'time=2962', 'time=2963', 'time=2964', 'time=2965', 'time=2966', 'time=2967', 'time=2968', 'time=2969', 'time=2970', 'time=2971', 'time=2972', 'time=2973', 'time=2974', 'time=2975', 'time=2976', 'time=2977', 'time=2978', 'time=2979', 'time=2980', 'time=2981', 'time=2982', 'time=2983', 'time=2984', 'time=2985', 'time=2986', 'time=2987', 'time=2988', 'time=2989', 'time=2990', 'time=2991', 'time=2992', 'time=2993', 'time=2994', 'time=2995', 'time=2996', 'time=2997', 'time=2998', 'time=2999', 'time=3000', 'time=3001', 'time=3002', 'time=3003', 'time=3004', 'time=3005', 'time=3006', 'time=3007', 'time=3008', 'time=3009', 'time=3010', 'time=3011', 'time=3012', 'time=3013', 'time=3014', 'time=3015', 'time=3016', 'time=3017', 'time=3018', 'time=3019', 'time=3020', 'time=3021', 'time=3022', 'time=3023', 'time=3024', 'time=3025', 'time=3026', 'time=3027', 'time=3028', 'time=3029', 'time=3030', 'time=3031', 'time=3032', 'time=3033', 'time=3034', 'time=3035', 'time=3036', 'time=3037', 'time=3038', 'time=3039', 'time=3040', 'time=3041', 'time=3042', 'time=3043', 'time=3044', 'time=3045', 'time=3046', 'time=3047', 'time=3048', 'time=3049', 'time=3050', 'time=3051', 'time=3052', 'time=3053', 'time=3054', 'time=3055', 'time=3056', 'time=3057', 'time=3058', 'time=3059', 'time=3060', 'time=3061', 'time=3062', 'time=3063', 'time=3064', 'time=3065', 'time=3066', 'time=3067', 'time=3068', 'time=3069', 'time=3070', 'time=3071', 'time=3072', 'time=3073', 'time=3074', 'time=3075', 'time=3076', 'time=3077', 'time=3078', 'time=3079', 'time=3080', 'time=3081', 'time=3082', 'time=3083', 'time=3084', 'time=3085', 'time=3086', 'time=3087', 'time=3088', 'time=3089', 'time=3090', 'time=3091', 'time=3092', 'time=3093', 'time=3094', 'time=3095', 'time=3096', 'time=3097', 'time=3098', 'time=3099', 'time=3100', 'time=3101', 'time=3102', 'time=3103', 'time=3104', 'time=3105', 'time=3106', 'time=3107', 'time=3108', 'time=3109', 'time=3110', 'time=3111', 'time=3112', 'time=3113', 'time=3114', 'time=3115', 'time=3116', 'time=3117', 'time=3118', 'time=3119', 'time=3120', 'time=3121', 'time=3122', 'time=3123', 'time=3124', 'time=3125', 'time=3126', 'time=3127', 'time=3128', 'time=3129', 'time=3130', 'time=3131', 'time=3132', 'time=3133', 'time=3134', 'time=3135', 'time=3136', 'time=3137', 'time=3138', 'time=3139', 'time=3140', 'time=3141', 'time=3142', 'time=3143', 'time=3144', 'time=3145', 'time=3146', 'time=3147', 'time=3148', 'time=3149', 'time=3150', 'time=3151', 'time=3152', 'time=3153', 'time=3154', 'time=3155', 'time=3156', 'time=3157', 'time=3158', 'time=3159', 'time=3160', 'time=3161', 'time=3162', 'time=3163', 'time=3164', 'time=3165', 'time=3166', 'time=3167', 'time=3168', 'time=3169', 'time=3170', 'time=3171', 'time=3172', 'time=3173', 'time=3174', 'time=3175', 'time=3176', 'time=3177', 'time=3178', 'time=3179', 'time=3180', 'time=3181', 'time=3182', 'time=3183', 'time=3184', 'time=3185', 'time=3186', 'time=3187', 'time=3188', 'time=3189', 'time=3190', 'time=3191', 'time=3192', 'time=3193', 'time=3194', 'time=3195', 'time=3196', 'time=3197', 'time=3198', 'time=3199', 'time=3200', 'time=3201', 'time=3202', 'time=3203', 'time=3204', 'time=3205', 'time=3206', 'time=3207', 'time=3208', 'time=3209', 'time=3210', 'time=3211', 'time=3212', 'time=3213', 'time=3214', 'time=3215', 'time=3216', 'time=3217', 'time=3218', 'time=3219', 'time=3220', 'time=3221', 'time=3222', 'time=3223', 'time=3224', 'time=3225', 'time=3226', 'time=3227', 'time=3228', 'time=3229', 'time=3230', 'time=3231', 'time=3232', 'time=3233', 'time=3234', 'time=3235', 'time=3236', 'time=3237', 'time=3238', 'time=3239', 'time=3240', 'time=3241', 'time=3242', 'time=3243', 'time=3244', 'time=3245', 'time=3246', 'time=3247', 'time=3248', 'time=3249', 'time=3250', 'time=3251', 'time=3252', 'time=3253', 'time=3254', 'time=3255', 'time=3256', 'time=3257', 'time=3258', 'time=3259', 'time=3260', 'time=3261', 'time=3262', 'time=3263', 'time=3264', 'time=3265', 'time=3266', 'time=3267', 'time=3268', 'time=3269', 'time=3270', 'time=3271', 'time=3272', 'time=3273', 'time=3274', 'time=3275', 'time=3276', 'time=3277', 'time=3278', 'time=3279', 'time=3280', 'time=3281', 'time=3282', 'time=3283', 'time=3284', 'time=3285', 'time=3286', 'time=3287', 'time=3288', 'time=3289', 'time=3290', 'time=3291', 'time=3292', 'time=3293', 'time=3294', 'time=3295', 'time=3296', 'time=3297', 'time=3298', 'time=3299', 'time=3300', 'time=3301', 'time=3302', 'time=3303', 'time=3304', 'time=3305', 'time=3306', 'time=3307', 'time=3308', 'time=3309', 'time=3310', 'time=3311', 'time=3312', 'time=3313', 'time=3314', 'time=3315', 'time=3316', 'time=3317', 'time=3318', 'time=3319', 'time=3320', 'time=3321', 'time=3322', 'time=3323', 'time=3324', 'time=3325', 'time=3326', 'time=3327', 'time=3328', 'time=3329', 'time=3330', 'time=3331', 'time=3332', 'time=3333', 'time=3334', 'time=3335', 'time=3336', 'time=3337', 'time=3338', 'time=3339', 'time=3340', 'time=3341', 'time=3342', 'time=3343', 'time=3344', 'time=3345', 'time=3346', 'time=3347', 'time=3348', 'time=3349', 'time=3350', 'time=3351', 'time=3352', 'time=3353', 'time=3354', 'time=3355', 'time=3356', 'time=3357', 'time=3358', 'time=3359', 'time=3360', 'time=3361', 'time=3362', 'time=3363', 'time=3364', 'time=3365', 'time=3366', 'time=3367', 'time=3368', 'time=3369', 'time=3370', 'time=3371', 'time=3372', 'time=3373', 'time=3374', 'time=3375', 'time=3376', 'time=3377', 'time=3378', 'time=3379', 'time=3380', 'time=3381', 'time=3382', 'time=3383', 'time=3384', 'time=3385', 'time=3386', 'time=3387', 'time=3388', 'time=3389', 'time=3390', 'time=3391', 'time=3392', 'time=3393', 'time=3394', 'time=3395', 'time=3396', 'time=3397', 'time=3398', 'time=3399', 'time=3400', 'time=3401', 'time=3402', 'time=3403', 'time=3404', 'time=3405', 'time=3406', 'time=3407', 'time=3408', 'time=3409', 'time=3410', 'time=3411', 'time=3412', 'time=3413', 'time=3414', 'time=3415', 'time=3416', 'time=3417', 'time=3418', 'time=3419', 'time=3420', 'time=3421', 'time=3422', 'time=3423', 'time=3424', 'time=3425', 'time=3426', 'time=3427', 'time=3428', 'time=3429', 'time=3430', 'time=3431', 'time=3432', 'time=3433', 'time=3434', 'time=3435', 'time=3436', 'time=3437', 'time=3438', 'time=3439', 'time=3440', 'time=3441', 'time=3442', 'time=3443', 'time=3444', 'time=3445', 'time=3446', 'time=3447', 'time=3448', 'time=3449', 'time=3450', 'time=3451', 'time=3452', 'time=3453', 'time=3454', 'time=3455', 'time=3456', 'time=3457', 'time=3458', 'time=3459', 'time=3460', 'time=3461', 'time=3462', 'time=3463', 'time=3464', 'time=3465', 'time=3466', 'time=3467', 'time=3468', 'time=3469', 'time=3470', 'time=3471', 'time=3472', 'time=3473', 'time=3474', 'time=3475', 'time=3476', 'time=3477', 'time=3478', 'time=3479', 'time=3480', 'time=3481', 'time=3482', 'time=3483', 'time=3484', 'time=3485', 'time=3486', 'time=3487', 'time=3488', 'time=3489', 'time=3490', 'time=3491', 'time=3492', 'time=3493', 'time=3494', 'time=3495', 'time=3496', 'time=3497', 'time=3498', 'time=3499', 'time=3500', 'time=3501', 'time=3502', 'time=3503', 'time=3504', 'time=3505', 'time=3506', 'time=3507', 'time=3508', 'time=3509', 'time=3510', 'time=3511', 'time=3512', 'time=3513', 'time=3514', 'time=3515', 'time=3516', 'time=3517', 'time=3518', 'time=3519', 'time=3520', 'time=3521', 'time=3522', 'time=3523', 'time=3524', 'time=3525', 'time=3526', 'time=3527', 'time=3528', 'time=3529', 'time=3530', 'time=3531', 'time=3532', 'time=3533', 'time=3534', 'time=3535', 'time=3536', 'time=3537', 'time=3538', 'time=3539', 'time=3540', 'time=3541', 'time=3542', 'time=3543', 'time=3544', 'time=3545', 'time=3546', 'time=3547', 'time=3548', 'time=3549', 'time=3550', 'time=3551', 'time=3552', 'time=3553', 'time=3554', 'time=3555', 'time=3556', 'time=3557', 'time=3558', 'time=3559', 'time=3560', 'time=3561', 'time=3562', 'time=3563', 'time=3564', 'time=3565', 'time=3566', 'time=3567', 'time=3568', 'time=3569', 'time=3570', 'time=3571', 'time=3572', 'time=3573', 'time=3574', 'time=3575', 'time=3576', 'time=3577', 'time=3578', 'time=3579', 'time=3580', 'time=3581', 'time=3582', 'time=3583', 'time=3584', 'time=3585', 'time=3586', 'time=3587', 'time=3588', 'time=3589', 'time=3590', 'time=3591', 'time=3592', 'time=3593', 'time=3594', 'time=3595', 'time=3596', 'time=3597', 'time=3598', 'time=3599', 'time=3600', 'time=3601', 'time=3602', 'time=3603', 'time=3604', 'time=3605', 'time=3606', 'time=3607', 'time=3608', 'time=3609', 'time=3610', 'time=3611', 'time=3612', 'time=3613', 'time=3614', 'time=3615', 'time=3616', 'time=3617', 'time=3618', 'time=3619', 'time=3620', 'time=3621', 'time=3622', 'time=3623', 'time=3624', 'time=3625', 'time=3626', 'time=3627', 'time=3628', 'time=3629', 'time=3630', 'time=3631', 'time=3632', 'time=3633', 'time=3634', 'time=3635', 'time=3636', 'time=3637', 'time=3638', 'time=3639', 'time=3640', 'time=3641', 'time=3642', 'time=3643', 'time=3644', 'time=3645', 'time=3646', 'time=3647', 'time=3648', 'time=3649', 'time=3650', 'time=3651', 'time=3652', 'time=3653', 'time=3654', 'time=3655', 'time=3656', 'time=3657', 'time=3658', 'time=3659', 'time=3660', 'time=3661', 'time=3662', 'time=3663', 'time=3664', 'time=3665', 'time=3666', 'time=3667', 'time=3668', 'time=3669', 'time=3670', 'time=3671', 'time=3672', 'time=3673', 'time=3674', 'time=3675', 'time=3676', 'time=3677', 'time=3678', 'time=3679', 'time=3680', 'time=3681', 'time=3682', 'time=3683', 'time=3684', 'time=3685', 'time=3686', 'time=3687', 'time=3688', 'time=3689', 'time=3690', 'time=3691', 'time=3692', 'time=3693', 'time=3694', 'time=3695', 'time=3696', 'time=3697', 'time=3698', 'time=3699', 'time=3700', 'time=3701', 'time=3702', 'time=3703', 'time=3704', 'time=3705', 'time=3706', 'time=3707', 'time=3708', 'time=3709', 'time=3710', 'time=3711', 'time=3712', 'time=3713', 'time=3714', 'time=3715', 'time=3716', 'time=3717', 'time=3718', 'time=3719', 'time=3720', 'time=3721', 'time=3722', 'time=3723', 'time=3724', 'time=3725', 'time=3726', 'time=3727', 'time=3728', 'time=3729', 'time=3730', 'time=3731', 'time=3732', 'time=3733', 'time=3734', 'time=3735', 'time=3736', 'time=3737', 'time=3738', 'time=3739', 'time=3740', 'time=3741', 'time=3742', 'time=3743', 'time=3744', 'time=3745', 'time=3746', 'time=3747', 'time=3748', 'time=3749', 'time=3750', 'time=3751', 'time=3752', 'time=3753', 'time=3754', 'time=3755', 'time=3756', 'time=3757', 'time=3758', 'time=3759', 'time=3760', 'time=3761', 'time=3762', 'time=3763', 'time=3764', 'time=3765', 'time=3766', 'time=3767', 'time=3768', 'time=3769', 'time=3770', 'time=3771', 'time=3772', 'time=3773', 'time=3774', 'time=3775', 'time=3776', 'time=3777', 'time=3778', 'time=3779', 'time=3780', 'time=3781', 'time=3782', 'time=3783', 'time=3784', 'time=3785', 'time=3786', 'time=3787', 'time=3788', 'time=3789', 'time=3790', 'time=3791', 'time=3792', 'time=3793', 'time=3794', 'time=3795', 'time=3796', 'time=3797', 'time=3798', 'time=3799', 'time=3800', 'time=3801', 'time=3802', 'time=3803', 'time=3804', 'time=3805', 'time=3806', 'time=3807', 'time=3808', 'time=3809', 'time=3810', 'time=3811', 'time=3812', 'time=3813', 'time=3814', 'time=3815', 'time=3816', 'time=3817', 'time=3818', 'time=3819', 'time=3820', 'time=3821', 'time=3822', 'time=3823', 'time=3824', 'time=3825', 'time=3826', 'time=3827', 'time=3828', 'time=3829', 'time=3830', 'time=3831', 'time=3832', 'time=3833', 'time=3834', 'time=3835', 'time=3836', 'time=3837', 'time=3838', 'time=3839', 'time=3840', 'time=3841', 'time=3842', 'time=3843', 'time=3844', 'time=3845', 'time=3846', 'time=3847', 'time=3848', 'time=3849', 'time=3850', 'time=3851', 'time=3852', 'time=3853', 'time=3854', 'time=3855', 'time=3856', 'time=3857', 'time=3858', 'time=3859', 'time=3860', 'time=3861', 'time=3862', 'time=3863', 'time=3864', 'time=3865', 'time=3866', 'time=3867', 'time=3868', 'time=3869', 'time=3870', 'time=3871', 'time=3872', 'time=3873', 'time=3874', 'time=3875', 'time=3876', 'time=3877', 'time=3878', 'time=3879', 'time=3880', 'time=3881', 'time=3882', 'time=3883', 'time=3884', 'time=3885', 'time=3886', 'time=3887', 'time=3888', 'time=3889', 'time=3890', 'time=3891', 'time=3892', 'time=3893', 'time=3894', 'time=3895', 'time=3896', 'time=3897', 'time=3898', 'time=3899', 'time=3900', 'time=3901', 'time=3902', 'time=3903', 'time=3904', 'time=3905', 'time=3906', 'time=3907', 'time=3908', 'time=3909', 'time=3910', 'time=3911', 'time=3912', 'time=3913', 'time=3914', 'time=3915', 'time=3916', 'time=3917', 'time=3918', 'time=3919', 'time=3920', 'time=3921', 'time=3922', 'time=3923', 'time=3924', 'time=3925', 'time=3926', 'time=3927', 'time=3928', 'time=3929', 'time=3930', 'time=3931', 'time=3932', 'time=3933', 'time=3934', 'time=3935', 'time=3936', 'time=3937', 'time=3938', 'time=3939', 'time=3940', 'time=3941', 'time=3942', 'time=3943', 'time=3944', 'time=3945', 'time=3946', 'time=3947', 'time=3948', 'time=3949', 'time=3950', 'time=3951', 'time=3952', 'time=3953', 'time=3954', 'time=3955', 'time=3956', 'time=3957', 'time=3958', 'time=3959', 'time=3960', 'time=3961', 'time=3962', 'time=3963', 'time=3964', 'time=3965', 'time=3966', 'time=3967', 'time=3968', 'time=3969', 'time=3970', 'time=3971', 'time=3972', 'time=3973', 'time=3974', 'time=3975', 'time=3976', 'time=3977', 'time=3978', 'time=3979', 'time=3980', 'time=3981', 'time=3982', 'time=3983', 'time=3984', 'time=3985', 'time=3986', 'time=3987', 'time=3988', 'time=3989', 'time=3990', 'time=3991', 'time=3992', 'time=3993', 'time=3994', 'time=3995', 'time=3996', 'time=3997', 'time=3998', 'time=3999', 'time=4000', 'time=4001', 'time=4002', 'time=4003', 'time=4004', 'time=4005', 'time=4006', 'time=4007', 'time=4008', 'time=4009', 'time=4010', 'time=4011', 'time=4012', 'time=4013', 'time=4014', 'time=4015', 'time=4016', 'time=4017', 'time=4018', 'time=4019', 'time=4020', 'time=4021', 'time=4022', 'time=4023', 'time=4024', 'time=4025', 'time=4026', 'time=4027', 'time=4028', 'time=4029', 'time=4030', 'time=4031', 'time=4032', 'time=4033', 'time=4034', 'time=4035', 'time=4036', 'time=4037', 'time=4038', 'time=4039', 'time=4040', 'time=4041', 'time=4042', 'time=4043', 'time=4044', 'time=4045', 'time=4046', 'time=4047', 'time=4048', 'time=4049', 'time=4050', 'time=4051', 'time=4052', 'time=4053', 'time=4054', 'time=4055', 'time=4056', 'time=4057', 'time=4058', 'time=4059', 'time=4060', 'time=4061', 'time=4062', 'time=4063', 'time=4064', 'time=4065', 'time=4066', 'time=4067', 'time=4068', 'time=4069', 'time=4070', 'time=4071', 'time=4072', 'time=4073', 'time=4074', 'time=4075', 'time=4076', 'time=4077', 'time=4078', 'time=4079', 'time=4080', 'time=4081', 'time=4082', 'time=4083', 'time=4084', 'time=4085', 'time=4086', 'time=4087', 'time=4088', 'time=4089', 'time=4090', 'time=4091', 'time=4092', 'time=4093', 'time=4094', 'time=4095', 'time=4096', 'time=4097', 'time=4098', 'time=4099', 'time=4100', 'time=4101', 'time=4102', 'time=4103', 'time=4104', 'time=4105', 'time=4106', 'time=4107', 'time=4108', 'time=4109', 'time=4110', 'time=4111', 'time=4112', 'time=4113', 'time=4114', 'time=4115', 'time=4116', 'time=4117', 'time=4118', 'time=4119', 'time=4120', 'time=4121', 'time=4122', 'time=4123', 'time=4124', 'time=4125', 'time=4126', 'time=4127', 'time=4128', 'time=4129', 'time=4130', 'time=4131', 'time=4132', 'time=4133', 'time=4134', 'time=4135', 'time=4136', 'time=4137', 'time=4138', 'time=4139', 'time=4140', 'time=4141', 'time=4142', 'time=4143', 'time=4144', 'time=4145', 'time=4146', 'time=4147', 'time=4148', 'time=4149', 'time=4150', 'time=4151', 'time=4152', 'time=4153', 'time=4154', 'time=4155', 'time=4156', 'time=4157', 'time=4158', 'time=4159', 'time=4160', 'time=4161', 'time=4162', 'time=4163', 'time=4164', 'time=4165', 'time=4166', 'time=4167', 'time=4168', 'time=4169', 'time=4170', 'time=4171', 'time=4172', 'time=4173', 'time=4174', 'time=4175', 'time=4176', 'time=4177', 'time=4178', 'time=4179', 'time=4180', 'time=4181', 'time=4182', 'time=4183', 'time=4184', 'time=4185', 'time=4186', 'time=4187', 'time=4188', 'time=4189', 'time=4190', 'time=4191', 'time=4192', 'time=4193', 'time=4194', 'time=4195', 'time=4196', 'time=4197', 'time=4198', 'time=4199', 'time=4200', 'time=4201', 'time=4202', 'time=4203', 'time=4204', 'time=4205', 'time=4206', 'time=4207', 'time=4208', 'time=4209', 'time=4210', 'time=4211', 'time=4212', 'time=4213', 'time=4214', 'time=4215', 'time=4216', 'time=4217', 'time=4218', 'time=4219', 'time=4220', 'time=4221', 'time=4222', 'time=4223', 'time=4224', 'time=4225', 'time=4226', 'time=4227', 'time=4228', 'time=4229', 'time=4230', 'time=4231', 'time=4232', 'time=4233', 'time=4234', 'time=4235', 'time=4236', 'time=4237', 'time=4238', 'time=4239', 'time=4240', 'time=4241', 'time=4242', 'time=4243', 'time=4244', 'time=4245', 'time=4246', 'time=4247', 'time=4248', 'time=4249', 'time=4250', 'time=4251', 'time=4252', 'time=4253', 'time=4254', 'time=4255', 'time=4256', 'time=4257', 'time=4258', 'time=4259', 'time=4260', 'time=4261', 'time=4262', 'time=4263', 'time=4264', 'time=4265', 'time=4266', 'time=4267', 'time=4268', 'time=4269', 'time=4270', 'time=4271', 'time=4272', 'time=4273', 'time=4274', 'time=4275', 'time=4276', 'time=4277', 'time=4278', 'time=4279', 'time=4280', 'time=4281', 'time=4282', 'time=4283', 'time=4284', 'time=4285', 'time=4286', 'time=4287', 'time=4288', 'time=4289', 'time=4290', 'time=4291', 'time=4292', 'time=4293', 'time=4294', 'time=4295', 'time=4296', 'time=4297', 'time=4298', 'time=4299', 'time=4300', 'time=4301', 'time=4302', 'time=4303', 'time=4304', 'time=4305', 'time=4306', 'time=4307', 'time=4308', 'time=4309', 'time=4310', 'time=4311', 'time=4312', 'time=4313', 'time=4314', 'time=4315', 'time=4316', 'time=4317', 'time=4318', 'time=4319', 'time=4320', 'time=4321', 'time=4322', 'time=4323', 'time=4324', 'time=4325', 'time=4326', 'time=4327', 'time=4328', 'time=4329', 'time=4330', 'time=4331', 'time=4332', 'time=4333', 'time=4334', 'time=4335', 'time=4336', 'time=4337', 'time=4338', 'time=4339', 'time=4340', 'time=4341', 'time=4342', 'time=4343', 'time=4344', 'time=4345', 'time=4346', 'time=4347', 'time=4348', 'time=4349', 'time=4350', 'time=4351', 'time=4352', 'time=4353', 'time=4354', 'time=4355', 'time=4356', 'time=4357', 'time=4358', 'time=4359', 'time=4360', 'time=4361', 'time=4362', 'time=4363', 'time=4364', 'time=4365', 'time=4366', 'time=4367', 'time=4368', 'time=4369', 'time=4370', 'time=4371', 'time=4372', 'time=4373', 'time=4374', 'time=4375', 'time=4376', 'time=4377', 'time=4378', 'time=4379', 'time=4380', 'time=4381', 'time=4382', 'time=4383', 'time=4384', 'time=4385', 'time=4386', 'time=4387', 'time=4388', 'time=4389', 'time=4390', 'time=4391', 'time=4392', 'time=4393', 'time=4394', 'time=4395', 'time=4396', 'time=4397', 'time=4398', 'time=4399', 'time=4400', 'time=4401', 'time=4402', 'time=4403', 'time=4404', 'time=4405', 'time=4406', 'time=4407', 'time=4408', 'time=4409', 'time=4410', 'time=4411', 'time=4412', 'time=4413', 'time=4414', 'time=4415', 'time=4416', 'time=4417', 'time=4418', 'time=4419', 'time=4420', 'time=4421', 'time=4422', 'time=4423', 'time=4424', 'time=4425', 'time=4426', 'time=4427', 'time=4428', 'time=4429', 'time=4430', 'time=4431', 'time=4432', 'time=4433', 'time=4434', 'time=4435', 'time=4436', 'time=4437', 'time=4438', 'time=4439', 'time=4440', 'time=4441', 'time=4442', 'time=4443', 'time=4444', 'time=4445', 'time=4446', 'time=4447', 'time=4448', 'time=4449', 'time=4450', 'time=4451', 'time=4452', 'time=4453', 'time=4454', 'time=4455', 'time=4456', 'time=4457', 'time=4458', 'time=4459', 'time=4460', 'time=4461', 'time=4462', 'time=4463', 'time=4464', 'time=4465', 'time=4466', 'time=4467', 'time=4468', 'time=4469', 'time=4470', 'time=4471', 'time=4472', 'time=4473', 'time=4474', 'time=4475', 'time=4476', 'time=4477', 'time=4478', 'time=4479', 'time=4480', 'time=4481', 'time=4482', 'time=4483', 'time=4484', 'time=4485', 'time=4486', 'time=4487', 'time=4488', 'time=4489', 'time=4490', 'time=4491', 'time=4492', 'time=4493', 'time=4494', 'time=4495', 'time=4496', 'time=4497', 'time=4498', 'time=4499', 'time=4500', 'time=4501', 'time=4502', 'time=4503', 'time=4504', 'time=4505', 'time=4506', 'time=4507', 'time=4508', 'time=4509', 'time=4510', 'time=4511', 'time=4512', 'time=4513', 'time=4514', 'time=4515', 'time=4516', 'time=4517', 'time=4518', 'time=4519', 'time=4520', 'time=4521', 'time=4522', 'time=4523', 'time=4524', 'time=4525', 'time=4526', 'time=4527', 'time=4528', 'time=4529', 'time=4530', 'time=4531', 'time=4532', 'time=4533', 'time=4534', 'time=4535', 'time=4536', 'time=4537', 'time=4538', 'time=4539', 'time=4540', 'time=4541', 'time=4542', 'time=4543', 'time=4544', 'time=4545', 'time=4546', 'time=4547', 'time=4548', 'time=4549', 'time=4550', 'time=4551', 'time=4552', 'time=4553', 'time=4554', 'time=4555', 'time=4556', 'time=4557', 'time=4558', 'time=4559', 'time=4560', 'time=4561', 'time=4562', 'time=4563', 'time=4564', 'time=4565', 'time=4566', 'time=4567', 'time=4568', 'time=4569', 'time=4570', 'time=4571', 'time=4572', 'time=4573', 'time=4574', 'time=4575', 'time=4576', 'time=4577', 'time=4578', 'time=4579', 'time=4580', 'time=4581', 'time=4582', 'time=4583', 'time=4584', 'time=4585', 'time=4586', 'time=4587', 'time=4588', 'time=4589', 'time=4590', 'time=4591', 'time=4592', 'time=4593', 'time=4594', 'time=4595', 'time=4596', 'time=4597', 'time=4598', 'time=4599', 'time=4600', 'time=4601', 'time=4602', 'time=4603', 'time=4604', 'time=4605', 'time=4606', 'time=4607', 'time=4608', 'time=4609', 'time=4610', 'time=4611', 'time=4612', 'time=4613', 'time=4614', 'time=4615', 'time=4616', 'time=4617', 'time=4618', 'time=4619', 'time=4620', 'time=4621', 'time=4622', 'time=4623', 'time=4624', 'time=4625', 'time=4626', 'time=4627', 'time=4628', 'time=4629', 'time=4630', 'time=4631', 'time=4632', 'time=4633', 'time=4634', 'time=4635', 'time=4636', 'time=4637', 'time=4638', 'time=4639', 'time=4640', 'time=4641', 'time=4642', 'time=4643', 'time=4644', 'time=4645', 'time=4646', 'time=4647', 'time=4648', 'time=4649', 'time=4650', 'time=4651', 'time=4652', 'time=4653', 'time=4654', 'time=4655', 'time=4656', 'time=4657', 'time=4658', 'time=4659', 'time=4660', 'time=4661', 'time=4662', 'time=4663', 'time=4664', 'time=4665', 'time=4666', 'time=4667', 'time=4668', 'time=4669', 'time=4670', 'time=4671', 'time=4672', 'time=4673', 'time=4674', 'time=4675', 'time=4676', 'time=4677', 'time=4678', 'time=4679', 'time=4680', 'time=4681', 'time=4682', 'time=4683', 'time=4684', 'time=4685', 'time=4686', 'time=4687', 'time=4688', 'time=4689', 'time=4690', 'time=4691', 'time=4692', 'time=4693', 'time=4694', 'time=4695', 'time=4696', 'time=4697', 'time=4698', 'time=4699', 'time=4700', 'time=4701', 'time=4702', 'time=4703', 'time=4704', 'time=4705', 'time=4706', 'time=4707', 'time=4708', 'time=4709', 'time=4710', 'time=4711', 'time=4712', 'time=4713', 'time=4714', 'time=4715', 'time=4716', 'time=4717', 'time=4718', 'time=4719', 'time=4720', 'time=4721', 'time=4722', 'time=4723', 'time=4724', 'time=4725', 'time=4726', 'time=4727', 'time=4728', 'time=4729', 'time=4730', 'time=4731', 'time=4732', 'time=4733', 'time=4734', 'time=4735', 'time=4736', 'time=4737', 'time=4738', 'time=4739', 'time=4740', 'time=4741', 'time=4742', 'time=4743', 'time=4744', 'time=4745', 'time=4746', 'time=4747', 'time=4748', 'time=4749', 'time=4750', 'time=4751', 'time=4752', 'time=4753', 'time=4754', 'time=4755', 'time=4756', 'time=4757', 'time=4758', 'time=4759', 'time=4760', 'time=4761', 'time=4762', 'time=4763', 'time=4764', 'time=4765', 'time=4766', 'time=4767', 'time=4768', 'time=4769', 'time=4770', 'time=4771', 'time=4772', 'time=4773', 'time=4774', 'time=4775', 'time=4776', 'time=4777', 'time=4778', 'time=4779', 'time=4780', 'time=4781', 'time=4782', 'time=4783', 'time=4784', 'time=4785', 'time=4786', 'time=4787', 'time=4788', 'time=4789', 'time=4790', 'time=4791', 'time=4792', 'time=4793', 'time=4794', 'time=4795', 'time=4796', 'time=4797', 'time=4798', 'time=4799', 'time=4800', 'time=4801', 'time=4802', 'time=4803', 'time=4804', 'time=4805', 'time=4806', 'time=4807', 'time=4808', 'time=4809', 'time=4810', 'time=4811', 'time=4812', 'time=4813', 'time=4814', 'time=4815', 'time=4816', 'time=4817', 'time=4818', 'time=4819', 'time=4820', 'time=4821', 'time=4822', 'time=4823', 'time=4824', 'time=4825', 'time=4826', 'time=4827', 'time=4828', 'time=4829', 'time=4830', 'time=4831', 'time=4832', 'time=4833', 'time=4834', 'time=4835', 'time=4836', 'time=4837', 'time=4838', 'time=4839', 'time=4840', 'time=4841', 'time=4842', 'time=4843', 'time=4844', 'time=4845', 'time=4846', 'time=4847', 'time=4848', 'time=4849', 'time=4850', 'time=4851', 'time=4852', 'time=4853', 'time=4854', 'time=4855', 'time=4856', 'time=4857', 'time=4858', 'time=4859', 'time=4860', 'time=4861', 'time=4862', 'time=4863', 'time=4864', 'time=4865', 'time=4866', 'time=4867', 'time=4868', 'time=4869', 'time=4870', 'time=4871', 'time=4872', 'time=4873', 'time=4874', 'time=4875', 'time=4876', 'time=4877', 'time=4878', 'time=4879', 'time=4880', 'time=4881', 'time=4882', 'time=4883', 'time=4884', 'time=4885', 'time=4886', 'time=4887', 'time=4888', 'time=4889', 'time=4890', 'time=4891', 'time=4892', 'time=4893', 'time=4894', 'time=4895', 'time=4896', 'time=4897', 'time=4898', 'time=4899', 'time=4900', 'time=4901', 'time=4902', 'time=4903', 'time=4904', 'time=4905', 'time=4906', 'time=4907', 'time=4908', 'time=4909', 'time=4910', 'time=4911', 'time=4912', 'time=4913', 'time=4914', 'time=4915', 'time=4916', 'time=4917', 'time=4918', 'time=4919', 'time=4920', 'time=4921', 'time=4922', 'time=4923', 'time=4924', 'time=4925', 'time=4926', 'time=4927', 'time=4928', 'time=4929', 'time=4930', 'time=4931', 'time=4932', 'time=4933', 'time=4934', 'time=4935', 'time=4936', 'time=4937', 'time=4938', 'time=4939', 'time=4940', 'time=4941', 'time=4942', 'time=4943', 'time=4944', 'time=4945', 'time=4946', 'time=4947', 'time=4948', 'time=4949', 'time=4950', 'time=4951', 'time=4952', 'time=4953', 'time=4954', 'time=4955', 'time=4956', 'time=4957', 'time=4958', 'time=4959', 'time=4960', 'time=4961', 'time=4962', 'time=4963', 'time=4964', 'time=4965', 'time=4966', 'time=4967', 'time=4968', 'time=4969', 'time=4970', 'time=4971', 'time=4972', 'time=4973', 'time=4974', 'time=4975', 'time=4976', 'time=4977', 'time=4978', 'time=4979', 'time=4980', 'time=4981', 'time=4982', 'time=4983', 'time=4984', 'time=4985', 'time=4986', 'time=4987', 'time=4988', 'time=4989', 'time=4990', 'time=4991', 'time=4992', 'time=4993', 'time=4994', 'time=4995', 'time=4996', 'time=4997', 'time=4998', 'time=4999']



.. GENERATED FROM PYTHON SOURCE LINES 125-131

Inspect the on-disk layout
--------------------------

Each partition is a real Zarr v3 group containing a real ``data_01``
subgroup, which itself contains a real ``ku`` subgroup with the
``power`` array. No flattening, no name mangling.

.. GENERATED FROM PYTHON SOURCE LINES 131-138

.. code-block:: Python

    zstore = collection.store.zarr_store()
    partition_paths = list(collection.partitions())
    first = zarr.open_group(store=zstore, path=partition_paths[0], mode="r")
    print(f"top-level keys: {list(first)}")
    print(f"  /data_01 keys: {list(first['data_01'])}")
    print(f"  /data_01/ku keys: {list(first['data_01/ku'])}")





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    top-level keys: ['time', 'data_01']
      /data_01 keys: ['ku']
      /data_01/ku keys: ['power']




.. GENERATED FROM PYTHON SOURCE LINES 139-144

Reopen and verify
-----------------

The query result is a :class:`~zcollection.Dataset` with the same
hierarchy as the original.

.. GENERATED FROM PYTHON SOURCE LINES 144-147

.. code-block:: Python

    reopened = zc.open_collection(f"file://{target}", mode="r").query()
    assert reopened.get_variable("/data_01/ku/power").shape == (N, 240)
    print(reopened)




.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    <zcollection.data.dataset.Dataset '/'> Size: 4.62 MB
      Dimensions: (time: 5000)
    Data variables:
        time    (time)                   int64        39.06 kB  numpy.ndarray<size=39.06 kB>
    Attributes:
        _zc_partition_key : [['time', 0]]
    Groups:
        data_01    4.58 MB  (0 variables, 1 subgroup)





.. _sphx_glr_download_auto_examples_ex_groups.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: ex_groups.ipynb <ex_groups.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: ex_groups.py <ex_groups.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: ex_groups.zip <ex_groups.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
