├── .env ├── .env.backup ├── .gitignore ├── .pre-commit-config.yaml ├── Makefile ├── README.md ├── docker-compose-minio.yml ├── docker-compose-pg-catalog.yml ├── docker-compose.yml ├── helper_scripts └── print_avro_contents.py ├── medium-data ├── db │ └── minio │ │ ├── data │ │ ├── 00000-0-9a99aa40-5d08-4d7e-850a-d307d23f5c0f-00001.parquet │ │ ├── 00000-14-ab2a6c1e-23c1-4aa1-8d9a-09a9d7d97238-00001.parquet │ │ ├── 00000-19-b5ae6ac4-9f6e-4b63-a510-a185ecd03fee-00001.parquet │ │ ├── 00001-1-9a99aa40-5d08-4d7e-850a-d307d23f5c0f-00001.parquet │ │ └── 00007-9-012e468c-5234-40d8-8ce4-d7ec420a068f-00001.parquet │ │ └── metadata │ │ ├── 00000-f5b4c31a-cf6e-4723-a086-0c66c6a102f4.metadata.json │ │ ├── 00001-4c5adbca-0447-491b-999c-50c28051f24d.metadata.json │ │ ├── 00002-9911da1b-4e8c-4216-96f8-df53466e5096.metadata.json │ │ ├── 00003-019ca905-74a2-40a8-a8f3-e123372820fa.metadata.json │ │ ├── 274b9f78-7835-494a-88e7-c4a7fbc87659-m0.avro │ │ ├── b10658da-8308-41c7-9209-217725fa8660-m0.avro │ │ ├── c5934717-68b5-4262-8218-a2de395ba51e-m0.avro │ │ ├── c5934717-68b5-4262-8218-a2de395ba51e-m1.avro │ │ ├── d4223bc8-a7bd-46b3-80f3-7434fb900e74-m0.avro │ │ ├── d4223bc8-a7bd-46b3-80f3-7434fb900e74-m1.avro │ │ ├── snap-2032559078621466157-1-274b9f78-7835-494a-88e7-c4a7fbc87659.avro │ │ ├── snap-739442481904053118-1-c5934717-68b5-4262-8218-a2de395ba51e.avro │ │ ├── snap-7426647800932772370-1-b10658da-8308-41c7-9209-217725fa8660.avro │ │ └── snap-7825605915503001692-1-d4223bc8-a7bd-46b3-80f3-7434fb900e74.avro └── transformed_avro_files │ ├── manifest_lists │ ├── snap-2032559078621466157-1-274b9f78-7835-494a-88e7-c4a7fbc87659.json │ ├── snap-739442481904053118-1-c5934717-68b5-4262-8218-a2de395ba51e.json │ ├── snap-7426647800932772370-1-b10658da-8308-41c7-9209-217725fa8660.json │ └── snap-7825605915503001692-1-d4223bc8-a7bd-46b3-80f3-7434fb900e74.json │ └── manifests │ ├── 274b9f78-7835-494a-88e7-c4a7fbc87659-m0.json │ ├── b10658da-8308-41c7-9209-217725fa8660-m0.json │ ├── c5934717-68b5-4262-8218-a2de395ba51e-m0.json │ ├── c5934717-68b5-4262-8218-a2de395ba51e-m1.json │ ├── d4223bc8-a7bd-46b3-80f3-7434fb900e74-m0.json │ └── d4223bc8-a7bd-46b3-80f3-7434fb900e74-m1.json ├── minio ├── .env ├── .env.backup ├── Dockerfile ├── README.md └── entrypoint.sh ├── notebooks ├── .ipynb_checkpoints │ ├── add-modify-remove-data-checkpoint.ipynb │ ├── getting-started-checkpoint.ipynb │ ├── iceberg-getting-started-checkpoint.ipynb │ ├── inspect-catalogs-checkpoint.ipynb │ ├── postgres-catalog-checkpoint.ipynb │ └── postgres-metadata-checkpoint.ipynb ├── add-modify-remove-data.ipynb ├── getting-started.ipynb ├── inspect-catalogs.ipynb ├── postgres-catalog.ipynb └── read-data.ipynb └── spark ├── .env ├── Dockerfile ├── entrypoint.sh ├── requirements ├── requirements.in └── requirements.txt ├── spark-defaults-minio.conf ├── spark-defaults-pg-catalog.conf └── spark-defaults.conf /.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/.env -------------------------------------------------------------------------------- /.env.backup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/.env.backup -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .DS_Store 3 | /warehouse/ 4 | helper_scripts/*.json 5 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose-minio.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/docker-compose-minio.yml -------------------------------------------------------------------------------- /docker-compose-pg-catalog.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/docker-compose-pg-catalog.yml -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /helper_scripts/print_avro_contents.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/helper_scripts/print_avro_contents.py -------------------------------------------------------------------------------- /medium-data/db/minio/data/00000-0-9a99aa40-5d08-4d7e-850a-d307d23f5c0f-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/data/00000-0-9a99aa40-5d08-4d7e-850a-d307d23f5c0f-00001.parquet -------------------------------------------------------------------------------- /medium-data/db/minio/data/00000-14-ab2a6c1e-23c1-4aa1-8d9a-09a9d7d97238-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/data/00000-14-ab2a6c1e-23c1-4aa1-8d9a-09a9d7d97238-00001.parquet -------------------------------------------------------------------------------- /medium-data/db/minio/data/00000-19-b5ae6ac4-9f6e-4b63-a510-a185ecd03fee-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/data/00000-19-b5ae6ac4-9f6e-4b63-a510-a185ecd03fee-00001.parquet -------------------------------------------------------------------------------- /medium-data/db/minio/data/00001-1-9a99aa40-5d08-4d7e-850a-d307d23f5c0f-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/data/00001-1-9a99aa40-5d08-4d7e-850a-d307d23f5c0f-00001.parquet -------------------------------------------------------------------------------- /medium-data/db/minio/data/00007-9-012e468c-5234-40d8-8ce4-d7ec420a068f-00001.parquet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/data/00007-9-012e468c-5234-40d8-8ce4-d7ec420a068f-00001.parquet -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/00000-f5b4c31a-cf6e-4723-a086-0c66c6a102f4.metadata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/00000-f5b4c31a-cf6e-4723-a086-0c66c6a102f4.metadata.json -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/00001-4c5adbca-0447-491b-999c-50c28051f24d.metadata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/00001-4c5adbca-0447-491b-999c-50c28051f24d.metadata.json -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/00002-9911da1b-4e8c-4216-96f8-df53466e5096.metadata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/00002-9911da1b-4e8c-4216-96f8-df53466e5096.metadata.json -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/00003-019ca905-74a2-40a8-a8f3-e123372820fa.metadata.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/00003-019ca905-74a2-40a8-a8f3-e123372820fa.metadata.json -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/274b9f78-7835-494a-88e7-c4a7fbc87659-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/274b9f78-7835-494a-88e7-c4a7fbc87659-m0.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/b10658da-8308-41c7-9209-217725fa8660-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/b10658da-8308-41c7-9209-217725fa8660-m0.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/c5934717-68b5-4262-8218-a2de395ba51e-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/c5934717-68b5-4262-8218-a2de395ba51e-m0.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/c5934717-68b5-4262-8218-a2de395ba51e-m1.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/c5934717-68b5-4262-8218-a2de395ba51e-m1.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/d4223bc8-a7bd-46b3-80f3-7434fb900e74-m0.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/d4223bc8-a7bd-46b3-80f3-7434fb900e74-m0.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/d4223bc8-a7bd-46b3-80f3-7434fb900e74-m1.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/d4223bc8-a7bd-46b3-80f3-7434fb900e74-m1.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/snap-2032559078621466157-1-274b9f78-7835-494a-88e7-c4a7fbc87659.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/snap-2032559078621466157-1-274b9f78-7835-494a-88e7-c4a7fbc87659.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/snap-739442481904053118-1-c5934717-68b5-4262-8218-a2de395ba51e.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/snap-739442481904053118-1-c5934717-68b5-4262-8218-a2de395ba51e.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/snap-7426647800932772370-1-b10658da-8308-41c7-9209-217725fa8660.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/snap-7426647800932772370-1-b10658da-8308-41c7-9209-217725fa8660.avro -------------------------------------------------------------------------------- /medium-data/db/minio/metadata/snap-7825605915503001692-1-d4223bc8-a7bd-46b3-80f3-7434fb900e74.avro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/db/minio/metadata/snap-7825605915503001692-1-d4223bc8-a7bd-46b3-80f3-7434fb900e74.avro -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifest_lists/snap-2032559078621466157-1-274b9f78-7835-494a-88e7-c4a7fbc87659.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifest_lists/snap-2032559078621466157-1-274b9f78-7835-494a-88e7-c4a7fbc87659.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifest_lists/snap-739442481904053118-1-c5934717-68b5-4262-8218-a2de395ba51e.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifest_lists/snap-739442481904053118-1-c5934717-68b5-4262-8218-a2de395ba51e.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifest_lists/snap-7426647800932772370-1-b10658da-8308-41c7-9209-217725fa8660.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifest_lists/snap-7426647800932772370-1-b10658da-8308-41c7-9209-217725fa8660.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifest_lists/snap-7825605915503001692-1-d4223bc8-a7bd-46b3-80f3-7434fb900e74.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifest_lists/snap-7825605915503001692-1-d4223bc8-a7bd-46b3-80f3-7434fb900e74.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifests/274b9f78-7835-494a-88e7-c4a7fbc87659-m0.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifests/274b9f78-7835-494a-88e7-c4a7fbc87659-m0.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifests/b10658da-8308-41c7-9209-217725fa8660-m0.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifests/b10658da-8308-41c7-9209-217725fa8660-m0.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifests/c5934717-68b5-4262-8218-a2de395ba51e-m0.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifests/c5934717-68b5-4262-8218-a2de395ba51e-m0.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifests/c5934717-68b5-4262-8218-a2de395ba51e-m1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifests/c5934717-68b5-4262-8218-a2de395ba51e-m1.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifests/d4223bc8-a7bd-46b3-80f3-7434fb900e74-m0.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifests/d4223bc8-a7bd-46b3-80f3-7434fb900e74-m0.json -------------------------------------------------------------------------------- /medium-data/transformed_avro_files/manifests/d4223bc8-a7bd-46b3-80f3-7434fb900e74-m1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/medium-data/transformed_avro_files/manifests/d4223bc8-a7bd-46b3-80f3-7434fb900e74-m1.json -------------------------------------------------------------------------------- /minio/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/minio/.env -------------------------------------------------------------------------------- /minio/.env.backup: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/minio/.env.backup -------------------------------------------------------------------------------- /minio/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/minio/Dockerfile -------------------------------------------------------------------------------- /minio/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/minio/README.md -------------------------------------------------------------------------------- /minio/entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/minio/entrypoint.sh -------------------------------------------------------------------------------- /notebooks/.ipynb_checkpoints/add-modify-remove-data-checkpoint.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/.ipynb_checkpoints/add-modify-remove-data-checkpoint.ipynb -------------------------------------------------------------------------------- /notebooks/.ipynb_checkpoints/getting-started-checkpoint.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/.ipynb_checkpoints/getting-started-checkpoint.ipynb -------------------------------------------------------------------------------- /notebooks/.ipynb_checkpoints/iceberg-getting-started-checkpoint.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/.ipynb_checkpoints/iceberg-getting-started-checkpoint.ipynb -------------------------------------------------------------------------------- /notebooks/.ipynb_checkpoints/inspect-catalogs-checkpoint.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/.ipynb_checkpoints/inspect-catalogs-checkpoint.ipynb -------------------------------------------------------------------------------- /notebooks/.ipynb_checkpoints/postgres-catalog-checkpoint.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/.ipynb_checkpoints/postgres-catalog-checkpoint.ipynb -------------------------------------------------------------------------------- /notebooks/.ipynb_checkpoints/postgres-metadata-checkpoint.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/.ipynb_checkpoints/postgres-metadata-checkpoint.ipynb -------------------------------------------------------------------------------- /notebooks/add-modify-remove-data.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/add-modify-remove-data.ipynb -------------------------------------------------------------------------------- /notebooks/getting-started.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/getting-started.ipynb -------------------------------------------------------------------------------- /notebooks/inspect-catalogs.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/inspect-catalogs.ipynb -------------------------------------------------------------------------------- /notebooks/postgres-catalog.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/postgres-catalog.ipynb -------------------------------------------------------------------------------- /notebooks/read-data.ipynb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/notebooks/read-data.ipynb -------------------------------------------------------------------------------- /spark/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/spark/.env -------------------------------------------------------------------------------- /spark/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/spark/Dockerfile -------------------------------------------------------------------------------- /spark/entrypoint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/spark/entrypoint.sh -------------------------------------------------------------------------------- /spark/requirements/requirements.in: -------------------------------------------------------------------------------- 1 | jupyter 2 | pyiceberg[pyarrow,duckdb,pandas] 3 | -------------------------------------------------------------------------------- /spark/requirements/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/spark/requirements/requirements.txt -------------------------------------------------------------------------------- /spark/spark-defaults-minio.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/spark/spark-defaults-minio.conf -------------------------------------------------------------------------------- /spark/spark-defaults-pg-catalog.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/spark/spark-defaults-pg-catalog.conf -------------------------------------------------------------------------------- /spark/spark-defaults.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mrn-aglic/apache-iceberg-data-exploration/HEAD/spark/spark-defaults.conf --------------------------------------------------------------------------------