Repository: WildlifeDatasets/wildlife-tools (language: python)

Issue:
Experimental
## :memo: What does this PR do ?
Fix loading of images with incomplete bboxes / segmentations

### :small_blue_diamond: Current behavior

- WildlifeDataset(img_load='bbox') crashes if metadata['bbox'] contains missing values.

### :small_orange_diamond: New behavior
- WildlifeDataset(img_load='bbox') tries to apply bounding box even if there are missing values.



Discussion / hints:

Fix patch:
diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml
index 342d19c..bc06583 100644
--- a/.github/workflows/code-quality.yml
+++ b/.github/workflows/code-quality.yml
@@ -25,7 +25,7 @@ jobs:
           python -m pip install --upgrade pip
           pip install black[jupyter]==22.3.0
       - name: Analysing the code with black
-        run: black --check .
+        run: black --check --diff --line-length 120 wildlife_tools
   isort:
     runs-on: ubuntu-latest
     steps:
@@ -40,19 +40,20 @@ jobs:
           python -m pip install --upgrade pip
           pip install isort==5.10.1
       - name: Analysing the code with isort
-        run: isort --check .
-  flake8:
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@v3
-      - name: Set up Python ${{ env.PYTHON_VERSION }}
-        uses: actions/setup-python@v3
-        with:
-          python-version: ${{ env.PYTHON_VERSION }}
-      - name: Install dependencies
-        run: |
-          python -m pip install --upgrade pip
-          pip install flake8==4.0.1 flake8-docstrings==1.6.0
-      - name: Analysing the code with flake8
-        run: flake8 .
+        run: isort --check --diff --line-length 120 wildlife_tools
+  
+  # flake8:
+  #   runs-on: ubuntu-latest
+  #   steps:
+  #     - name: Checkout code
+  #       uses: actions/checkout@v3
+  #     - name: Set up Python ${{ env.PYTHON_VERSION }}
+  #       uses: actions/setup-python@v3
+  #       with:
+  #         python-version: ${{ env.PYTHON_VERSION }}
+  #     - name: Install dependencies
+  #       run: |
+  #         python -m pip install --upgrade pip
+  #         pip install flake8==4.0.1 flake8-docstrings==1.6.0
+  #     - name: Analysing the code with flake8
+  #       run: flake8 wildlife_tools
diff --git a/README.md b/README.md
index 48aa893..bac71c3 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,9 @@
 </p>
 
 <div align="center">
-  <p align="center">Pipeline for wildlife re-identification including dataset zoo, training tools and trained models. Usage includes classifying new images in labelled databases and clustering individuals in unlabelled databases.</p>
+  <img src="docs/resources/tools-logo.png" alt="Wildlife tools" width="300">
+  <p align="center">A toolkit for Animal Individual Identification that covers use cases such as training, feature extraction, similarity calculation, image retrieval, and classification.</p>
+
   <a href="https://wildlifedatasets.github.io/wildlife-tools/">Documentation</a>
   ·
   <a href="https://github.com/WildlifeDatasets/wildlife-tools/issues/new?assignees=aerodynamic-sauce-pan&labels=bug&projects=&template=bug_report.md&title=%5BBUG%5D">Report Bug</a>
@@ -21,7 +23,9 @@
   <a href="https://github.com/WildlifeDatasets/wildlife-tools/issues/new?assignees=aerodynamic-sauce-pan&labels=enhancement&projects=&template=enhancement.md&title=%5BEnhancement%5D">Request Feature</a>
 </div>
 
-</br>
+</br >
+
+## Our other projects
 
 | <a href="https://github.com/WildlifeDatasets/wildlife-datasets"><img src="docs/resources/datasets-logo.png" alt="Wildlife datasets" width="200"></a>  | <a href="https://huggingface.co/BVRA/MegaDescriptor-L-384"><img src="docs/resources/megadescriptor-logo.png" alt="MegaDescriptor" width="200"></a> | <a href="https://github.com/WildlifeDatasets/wildlife-tools"><img src="docs/resources/tools-logo.png" alt="Wildlife tools" width="200"></a> |
 |:--------------:|:-----------:|:------------:|
@@ -30,10 +34,21 @@
 </br>
 
 # Introduction
-The `wildlife-tools` library offers a simple interface for various tasks in the Wildlife Re-Identification domain. It covers use cases such as training, feature extraction, similarity calculation, image retrieval, and classification. It complements the `wildlife-datasets` library, which acts as dataset repository. All datasets there can be used in combination with `WildlifeDataset` component, which serves for loading extracting images and image tensors other tasks. 
+The `wildlife-tools` library offers a simple interface for various tasks in the Wildlife Re-Identification domain. It covers use cases such as training, feature extraction, similarity calculation, image retrieval, and classification. It complements the `wildlife-datasets` library, which acts as dataset repository.
 
 More information can be found in [Documentation](https://wildlifedatasets.github.io/wildlife-tools/)
 
+## What's New
+Here’s a summary of recent updates and changes.
+
+
+- **Expanded Functionality:** Local feature matching is done using [gluefactory](https://github.com/cvg/glue-factory) 
+    - Feature extraction methods: SuperPoint, ALIKED, DISK, SIFT features
+    - Matching method: LightGlue, More efficient LoFTR
+- **New Feature:** Introduced WildFusion, calibrated score fusion for high-accuracy animal reidentification. Added calibration methods.
+- **Bug Fixes:** Resolved issues with knn and ranking inference methods and many more.
+
+
 ## Installation
 
 To install `wildlife-tools`, you can build it from scratch or use pre-build Pypi package.
@@ -58,9 +73,9 @@ pip install -e .
 
 ## Modules in the in the `wildlife-tools`
 
-- The `data` module provides tools for creating instances of the `WildlifeDataset`.
-- The `train` module offers tools for fine-tuning feature extractors on the `WildlifeDataset`.
-- The `features` module provides tools for extracting features from the `WildlifeDataset` using various extractors.
+- The `data` module provides tools for creating instances of the `ImageDataset`.
+- The `train` module offers tools for fine-tuning feature extractors on the `ImageDataset`.
+- The `features` module provides tools for extracting features from the `ImageDataset` using various extractors.
 - The `similarity` module provides tools for constructing a similarity matrix from query and database features.
 - The `inference` module offers tools for creating predictions using the similarity matrix.
 
@@ -70,8 +85,8 @@ pip install -e .
 
 ```mermaid
   graph TD;
-      A[Data]-->|WildlifeDataset|B[Features]
-      A-->|WildlifeDataset|C;
+      A[Data]-->|ImageDataset|B[Features]
+      A-->|ImageDataset|C;
       C[Train]-->|finetuned extractor|B;
       B-->|query and database features|D[Similarity]
       D-->|similarity matrix|E[Inference]
@@ -80,24 +95,24 @@ pip install -e .
 
 
 ## Example
-### 1. Create `WildlifeDataset` 
-Using metadata from `wildlife-datasets`, create `WildlifeDataset` object for the MacaqueFaces dataset.
+### 1. Create `ImageDataset` 
+Using metadata from `wildlife-datasets`, create `ImageDataset` object for the MacaqueFaces dataset.
 
 ```Python
 from wildlife_datasets.datasets import MacaqueFaces
-from wildlife_tools.data import WildlifeDataset
+from wildlife_tools.data import ImageDataset
 import torchvision.transforms as T
 
 metadata = MacaqueFaces('datasets/MacaqueFaces')
 transform = T.Compose([T.Resize([224, 224]), T.ToTensor(), T.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))])
-dataset = WildlifeDataset(metadata.df, metadata.root, transform=transform)
+dataset = ImageDataset(metadata.df, metadata.root, transform=transform)
 ```
 
 Optionally, split metadata into subsets. In this example, query is first 100 images and rest are in database.
 
 ```Python
-dataset_database = WildlifeDataset(metadata.df.iloc[100:,:], metadata.root, transform=transform)
-dataset_query = WildlifeDataset(metadata.df.iloc[:100,:], metadata.root, transform=transform)
+dataset_database = ImageDataset(metadata.df.iloc[100:,:], metadata.root, transform=transform)
+dataset_query = ImageDataset(metadata.df.iloc[:100,:], metadata.root, transform=transform)
 ```
 
 ### 2. Extract features
@@ -149,3 +164,13 @@ If you like our package, please cite us.
     pages     = {5953-5963}
 }
 ```
+
+```
+@article{cermak2024wildfusion,
+  title={WildFusion: Individual animal identification with calibrated similarity fusion},
+  author={Cermak, Vojt{\v{e}}ch and Picek, Lukas and Adam, Luk{\'a}{\v{s}} and Neumann, Luk{\'a}{\v{s}} and Matas, Ji{\v{r}}{\'\i}},
+  journal={arXiv preprint arXiv:2408.12934},
+  year={2024}
+}
+```
+
diff --git a/docs/data.md b/docs/data.md
deleted file mode 100644
index 79ecc94..0000000
--- a/docs/data.md
+++ /dev/null
@@ -1,26 +0,0 @@
-## Data splits
-
-Utilities for creating subset of the datasets from WildlifeDataset, by subseting its metadata dataframe.
-
-- splits provided wildlife-datasets SplitWildlife
-
-- Splits can be chained using SplitChain.
-
-For example I want to parallelize matching SIFT descriptors over multiple jobs. This requires splitting wildlifeDataset to query and databse subsets. query subsets can be subsequently split into additional equally sized subsets.
-
-Example: Split dataset
-
-## Transforms
-
-Simple wrapper that provides unified interface to popular image transform methods such as timm.create_transforms and Torchvision Compose
-
-## Database
-
-Storage of extracted features.
-
-
-## Example of usage:
-
-Which can be constructed from Yaml file using tools.realize:
-
-For hands on example, please refer to examples/data.ipynb
\ No newline at end of file
diff --git a/docs/wildlife_dataset.md b/docs/dataset.md
similarity index 77%
rename from docs/wildlife_dataset.md
rename to docs/dataset.md
index 482a0fb..4d590e7 100644
--- a/docs/wildlife_dataset.md
+++ b/docs/dataset.md
@@ -1,10 +1,16 @@
+::: data.dataset
+    options:
+      show_root_heading: true
+      heading_level: 2
+
+
 # Wildlife dataset
 
-WildlifeDataset is a class for creating pytorch style datasets by integration of datasets provided by wildlife-datasets library. It has implemented \_\_len\_\_ and \_\_getattr\_\_ methods, which allows using pytorch dataloaders for training and inference.
+WildlifeDataset is a class for creating Pytorch style image datasets and allows integration of datasets provided by `wildlife-datasets` library. It has implemented `__len__` and `__getattr__` methods, which allows using standard Pytorch dataloaders for training and inference.
 
 
 ## Metadata dataframe
-Integral part of WildlifeDataset is metadata dataframe, which includes all information about images in the dataset.
+Key part of WildlifeDataset is metadata dataframe, which includes all information about images in the dataset.
 Typical dataset from the wildlife-dataset have following metadata table:
 
 
@@ -49,9 +55,3 @@ image, label = dataset[0]
 ```
 
 
-## Reference
-::: data.dataset.WildlifeDataset
-    options:
-      show_symbol_type_heading: false
-      show_bases: false
-      show_root_toc_entry: false
\ No newline at end of file
diff --git a/docs/features.md b/docs/features.md
index 608be49..9f6bc1c 100644
--- a/docs/features.md
+++ b/docs/features.md
@@ -1,63 +1,46 @@
 # Feature extraction
 Feature extractors offers a standardized way to extract features from instances of the `WildlifeDataset`.
 
-Feature extractors, implemented as classes, can be created with specific arguments that define the extraction properties. After instantiation, the extractor functions as a callable, requiring only a single argument—the `WildlifeDataset` instance. The specific output type and shape vary based on the chosen feature extractor. In general, the output is iterable, with the first dimension corresponding to the size of the `WildlifeDataset` input.
+Feature extractors, implemented as classes, can be created with specific arguments that define the extraction properties. After instantiation, the extractor functions as a callable, requiring only a single argument—the `WildlifeDataset` instance. The specific output type and shape vary based on the chosen feature extractor. Output is `FeatureDataset` instance.
 
-## Deep features
 
+::: features.deep
+    options:
+      show_root_heading: true
+      heading_level: 2
 
-The `DeepFeatures` extractor operates by extracting features through the forward pass of a PyTorch model. The output is a 2D array, where the rows represent images, and the columns correspond to the embedding dimensions. The size of the columns is determined by the output size of the model performing the feature extraction.
-
-### Example
-The term `dataset` refers to any instance of WildlifeDataset with transforms that convert it into a tensor with the appropriate shape.
 
-```Python
-import timm
-from wildlife_tools.features import DeepFeatures
+::: features.local
+    options:
+      show_root_heading: true
+      heading_level: 2
 
-backbone = timm.create_model('hf-hub:BVRA/MegaDescriptor-T-224', num_classes=0, pretrained=True)
-extractor = DeepFeatures(backbone, device='cuda')
-features = extractor(dataset)
-```
 
-### Reference
-::: features.deep.DeepFeatures
+::: features.memory
     options:
-      show_symbol_type_heading: false
-      show_bases: false
-      show_root_toc_entry: false
-
+      show_root_heading: true
+      heading_level: 2
 
 
-## SIFT features
-The `SIFTFeatures` extractor retrieves a set of SIFT descriptors for each provided image. The output is a list with a length of `n_inputs`, containing arrays. These arrays are 2D with a shape of `n_descriptors` x `128`, where the value of `n_descriptors` depends on the number of SIFT descriptors extracted for the specific image. If one or less descriptors are extracted, the value is None.  The SIFT implementation from OpenCV is used.
+## Examples
 
-### Example
-The term `dataset` refers to any instance of WildlifeDataset with transforms that convert it into grayscale PIL image.
+### Example - SuperPoint features
 
 ```Python
-from wildlife_tools.features import SIFTFeatures
+from wildlife_tools.features.local import SuperPointExtractor
 
-extractor = SIFTFeatures()
+extractor = SuperPointExtractor(backend='opencv', detection_threshold=0.0, force_num_keypoints=True, max_num_keypoints=256)
 features = extractor(dataset)
 ```
 
 
-### Reference
-::: features.sift.SIFTFeatures
-    options:
-      show_symbol_type_heading: false
-      show_bases: false
-      show_root_toc_entry: false
-
-
+### Example - Deep features
 
-## Data to memory
-
-The `DataToMemory` extractor loads the `WildlifeDataset` into memory. This is particularly usefull for the `LoftrMatcher`, which operates directly with image tensors. While it is feasible to directly use the `WildlifeDataset` and load images from storage dynamically, the `LoftrMatcher` lacks a loading buffer. Consequently, loading images on the fly could become a significant bottleneck, especially when matching all query-database pairs, involving `n_query` x `n_database` image loads.
+```Python
+import timm
+from wildlife_tools.features.deep import DeepFeatures
 
-::: features.memory.DataToMemory
-    options:
-      show_symbol_type_heading: false
-      show_bases: false
-      show_root_toc_entry: false
\ No newline at end of file
+backbone = timm.create_model('hf-hub:BVRA/MegaDescriptor-T-224', num_classes=0, pretrained=True)
+extractor = DeepFeatures(backbone, device='cuda')
+features = extractor(dataset)
+```
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
index ab7c516..82ec52a 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -9,8 +9,8 @@
 </p>
 
 <div align="center">
-  <img src="resources/logo-transparent.png" alt="Project logo" width="300">
-  <p align="center">A tool-kit for Wildlife Individual Identification that provides a wide variety of pre-trained models for inference and fine-tuning.</p>
+  <img src="resources/tools-logo.png" alt="Wildlife tools" width="300">
+  <p align="center">A toolkit for Animal Individual Identification that covers use cases such as training, feature extraction, similarity calculation, image retrieval, and classification.</p>
   <a href="https://wildlifedatasets.github.io/wildlife-tools/">Documentation</a>
   ·
   <a href="https://github.com/WildlifeDatasets/wildlife-tools/issues/new?assignees=aerodynamic-sauce-pan&labels=bug&projects=&template=bug_report.md&title=%5BBUG%5D">Report Bug</a>
@@ -41,10 +41,21 @@
 <h1></h1>
 
 # Introduction
-The `wildlife-tools` library offers a simple interface for various tasks in the Wildlife Re-Identification domain. It covers use cases such as training, feature extraction, similarity calculation, image retrieval, and classification. It complements the `wildlife-datasets` library, which acts as dataset repository. All datasets there can be used in combination with `WildlifeDataset` component, which serves for loading extracting images and image tensors other tasks. 
+The `wildlife-tools` library offers a simple interface for various tasks in the Wildlife Re-Identification domain. It covers use cases such as training, feature extraction, similarity calculation, image retrieval, and classification. It complements the `wildlife-datasets` library, which acts as dataset repository.
 
 More information can be found in [Documentation](https://wildlifedatasets.github.io/wildlife-tools/)
 
+## What's New
+Here’s a summary of recent updates and changes.
+
+
+- **Expanded Functionality:** Local feature matching is done using [gluefactory](https://github.com/cvg/glue-factory) 
+    - Feature extraction methods: SuperPoint, ALIKED, DISK, SIFT features
+    - Matching method: LightGlue, More efficient LoFTR
+- **New Feature:** Introduced WildFusion, calibrated score fusion for high-accuracy animal reidentification. Added calibration methods.
+- **Bug Fixes:** Resolved issues with knn and ranking inference methods and many more.
+
+
 ## Installation
 
 To install `wildlife-tools`, you can build it from scratch or use pre-build Pypi package.
@@ -54,7 +65,6 @@ To install `wildlife-tools`, you can build it from scratch or use pre-build Pypi
 
 ```script
 pip install wildlife-tools
-
 ```
 
 ### Building from scratch
@@ -70,9 +80,9 @@ pip install -e .
 
 ## Modules in the in the `wildlife-tools`
 
-- The `data` module provides tools for creating instances of the `WildlifeDataset`.
-- The `train` module offers tools for fine-tuning feature extractors on the `WildlifeDataset`.
-- The `features` module provides tools for extracting features from the `WildlifeDataset` using various extractors.
+- The `data` module provides tools for creating instances of the `ImageDataset`.
+- The `train` module offers tools for fine-tuning feature extractors on the `ImageDataset`.
+- The `features` module provides tools for extracting features from the `ImageDataset` using various extractors.
 - The `similarity` module provides tools for constructing a similarity matrix from query and database features.
 - The `inference` module offers tools for creating predictions using the similarity matrix.
 
@@ -82,8 +92,8 @@ pip install -e .
 
 ```mermaid
   graph TD;
-      A[Data]-->|WildlifeDataset|B[Features]
-      A-->|WildlifeDataset|C;
+      A[Data]-->|ImageDataset|B[Features]
+      A-->|ImageDataset|C;
       C[Train]-->|finetuned extractor|B;
       B-->|query and database features|D[Similarity]
       D-->|similarity matrix|E[Inference]
@@ -92,30 +102,31 @@ pip install -e .
 
 
 ## Example
-### 1. Create `WildlifeDataset` 
-Using metadata from `wildlife-datasets`, create `WildlifeDataset` object for the MacaqueFaces dataset.
+### 1. Create `ImageDataset` 
+Using metadata from `wildlife-datasets`, create `ImageDataset` object for the MacaqueFaces dataset.
 
 ```Python
 from wildlife_datasets.datasets import MacaqueFaces
-from wildlife_tools.data import WildlifeDataset
+from wildlife_tools.data import ImageDataset
 import torchvision.transforms as T
 
 metadata = MacaqueFaces('datasets/MacaqueFaces')
 transform = T.Compose([T.Resize([224, 224]), T.ToTensor(), T.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))])
-dataset = WildlifeDataset(metadata.df, metadata.root, transform=transform)
+dataset = ImageDataset(metadata.df, metadata.root, transform=transform)
 ```
 
 Optionally, split metadata into subsets. In this example, query is first 100 images and rest are in database.
 
 ```Python
-dataset_database = WildlifeDataset(metadata.df.iloc[100:,:], metadata.root, transform=transform)
-dataset_query = WildlifeDataset(metadata.df.iloc[:100,:], metadata.root, transform=transform)
+dataset_database = ImageDataset(metadata.df.iloc[100:,:], metadata.root, transform=transform)
+dataset_query = ImageDataset(metadata.df.iloc[:100,:], metadata.root, transform=transform)
 ```
 
 ### 2. Extract features
 Extract features using MegaDescriptor Tiny, downloaded from HuggingFace hub.
 
 ```Python
+import timm
 from wildlife_tools.features import DeepFeatures
 
 name = 'hf-hub:BVRA/MegaDescriptor-T-224'
@@ -138,6 +149,9 @@ similarity = similarity_function(query, database)
 Use the cosine similarity in nearest neigbour classifier and get predictions.
 
 ```Python
+import numpy as np
+from wildlife_tools.inference import KnnClassifier
+
 classifier = KnnClassifier(k=1, database_labels=dataset_database.labels_string)
 predictions = classifier(similarity['cosine'])
 accuracy = np.mean(dataset_database.labels_string == predictions)
@@ -156,4 +170,13 @@ If you like our package, please cite us.
     year      = {2024},
     pages     = {5953-5963}
 }
+```
+
+```
+@article{cermak2024wildfusion,
+  title={WildFusion: Individual animal identification with calibrated similarity fusion},
+  author={Cermak, Vojt{\v{e}}ch and Picek, Lukas and Adam, Luk{\'a}{\v{s}} and Neumann, Luk{\'a}{\v{s}} and Matas, Ji{\v{r}}{\'\i}},
+  journal={arXiv preprint arXiv:2408.12934},
+  year={2024}
+}
 ```
\ No newline at end of file
diff --git a/docs/inference.md b/docs/inference.md
index 0bc7047..5575989 100644
--- a/docs/inference.md
+++ b/docs/inference.md
@@ -1,20 +1,9 @@
 # Inference
-This module is concerned with making predictions on unseen data, using nearest neigbour techiqnues on either features or similarity matrix.
+This `inference` module uses similarity scores to perform predictions on unseen data. This includes
+classification (`KnnClassifier` class) and ranking (`TopkClassifier` class) using using nearest neigbours.
+Similarity scores are expected to be in the form of 2D array with shape `n_query` x `n_database`.
 
-
-## KnnClassifier
-
-### Reference
-::: inference.classifier.KnnClassifier
-    options:
-      show_bases: false
-      show_root_toc_entry: false
-
-
-## KnnMatcher
-
-### Reference
-::: inference.classifier.KnnMatcher
+::: inference.classifier
     options:
-      show_bases: false
-      show_root_toc_entry: false
\ No newline at end of file
+      show_root_heading: true
+      heading_level: 2
\ No newline at end of file
diff --git a/docs/sim_calibration.md b/docs/sim_calibration.md
new file mode 100644
index 0000000..2320e4c
--- /dev/null
+++ b/docs/sim_calibration.md
@@ -0,0 +1,27 @@
+# Similarity scores calibration
+The `similarity.calibration` module offers tools to improve the interpretability and utility of similarity scores by calibrating them. Calibration allows similarity scores to be interpreted as probabilities, making them suitable for confidence assessments and thresholding. This also enables the effective ensemble of multiple scores by mapping them onto a common probabilistic scale.
+
+- Calibration Methods:
+    - `LogisticCalibration`: Uses logistic regression to map similarity scores to probabilities, providing a smooth and parametric approach to calibration.
+    - `IsotonicCalibration`: A non-parametric approach that fits isotonic regression. Conceptually similar to score binning.
+- Visualization:
+    - The `reliability_diagram` function allows for visual comparison of calibrated and uncalibrated scores. This tool is helpful for assessing calibration quality, as it visualizes how well the predicted probabilities align with observed outcomes.
+
+ 
+::: similarity.calibration
+    options:
+      show_root_heading: true
+      show_bases: false
+      show_root_toc_entry: false
+      heading_level: 2
+
+## Examples
+Example of isotonic regression calibration.
+
+```python
+from wildlife_tools.similarity.calibration import IsotonicCalibration
+
+calibration = IsotonicCalibration()
+calibration.fit([0, 0.5, 1], [0, 1, 1])
+calibration.predict([0, 0.25, 0.8])
+```
\ No newline at end of file
diff --git a/docs/sim_global.md b/docs/sim_global.md
new file mode 100644
index 0000000..a053f4d
--- /dev/null
+++ b/docs/sim_global.md
@@ -0,0 +1,20 @@
+# Global similarity scores
+
+The `similarity.cosine` module provides tools for calculating global similarity scores between query and database. This is done using cosine similarity between fixed-length embeddings extracted by neural networks.
+
+
+::: similarity.cosine
+    options:
+      show_root_heading: true
+      heading_level: 2
+
+
+## Example
+`query` and `database` are instance of `FeatureDataset` with deep features.
+
+```Python
+from wildlife_tools.similarity import CosineSimilarity
+
+similarity = CosineSimilarity()
+sim = similarity(query, database)
+```
\ No newline at end of file
diff --git a/docs/sim_matching.md b/docs/sim_matching.md
new file mode 100644
index 0000000..7c9576c
--- /dev/null
+++ b/docs/sim_matching.md
@@ -0,0 +1,90 @@
+# Matching based similarity scores
+The `similarity.pairwise` module provides tools and methods for calculating pairwise matching similarity scores. At its core, the `MatchPairs` base class offers pairwise matching with support for batch processing, making it essential for neural network-based matching.
+
+Specific implementations of of `MatchPairs` are:
+
+- `MatchLightGlue`: This class uses the LightGlue model, a lightweight neural matching that uses extracted SIFT, DISK, ALIKED or SuperPoint keypoints and descriptors.
+-  `MatchLOFTR`: This class uses the LOFTR (Local Feature TRansformer) model, which performs descriptor-free matching using directly pair of images.
+
+
+Outputs from the matchers, such as confidence scores for local matches and keypoints, are processed using collectors from `similarity.pairwise.collectors`. In particular, the `CollectCounts` collector calculates  matching similarity scores by counting significant matches based on given confidence thresholds.
+
+Performance consideration: For the best performance LOFTR requires higher image resolution such as 512x512. However, this makes it about 5x slower than Lighglue with default values (256 keypoints and descriptors per image). 
+
+
+
+::: similarity.pairwise.base
+    options:
+      show_root_heading: true
+      heading_level: 2
+      filters:
+        - "!^_[^_]"
+        - "!PairDataset"
+
+
+::: similarity.pairwise.lightglue
+    options:
+      show_root_heading: true
+      heading_level: 2
+      filters:
+        - "!^_[^_]"
+
+
+::: similarity.pairwise.loftr
+    options:
+      show_root_heading: true
+      heading_level: 2
+      filters:
+        - "!^_[^_]"
+        - "!LoFTR"
+
+
+::: similarity.pairwise.collectors
+    options:
+      show_root_heading: true
+      heading_level: 2
+      filters:
+        - "!^_[^_]"
+
+
+## Examples
+
+
+### Example - SuperGlue matching
+Matches all pairs using the SuperGlue matcher with SuperPoint features and calculates similarity scores based on the count of significant matches at confidence thresholds of 0.25, 0.5, and 0.75.
+
+```python
+import torchvision.transforms as T
+from wildlife_tools.features.local import SuperPointExtractor
+from wildlife_tools.similarity.pairwise.lightglue import MatchLightGlue
+from wildlife_tools.similarity.pairwise.collectors import CollectCounts
+from wildlife_tools.data.dataset import WildlifeDataset
+
+transform = T.Compose([T.Resize([224, 224]), T.ToTensor()])
+dataset_query = WildlifeDataset(metadata_query, transform=transform)
+dataset_database = WildlifeDataset(metadata_database, transform=transform)
+
+extractor = SuperPointExtractor()
+matcher = MatchLightGlue(features='superpoint', collector=CollectCounts(thresholds=[0.25, 0.5, 0.75]))
+output = matcher(extractor(dataset_query), extractor(dataset_database))
+
+```
+
+
+### Example - LOFTR matching
+Matches all pairs using the LOFTR matcher and calculates similarity scores based on the count of significant matches at confidence thresholds of 0.25, 0.5, and 0.75. Note that LOFTR operates directly on image pairs and requires no feature extraction.
+
+```python
+from wildlife_tools.similarity.pairwise.loftr import MatchLOFTR
+from wildlife_tools.similarity.pairwise.collectors import CollectCounts
+from wildlife_tools.data.dataset import WildlifeDataset
+
+transform = T.Compose([T.Resize([224, 224]), T.ToTensor()])
+dataset_query = WildlifeDataset(metadata_query, transform=transform)
+dataset_database = WildlifeDataset(metadata_database, transform=transform)
+
+extractor = SuperPointExtractor()
+matcher = MatchLightGlue(features='superpoint', collector=CollectCounts(thresholds=[0.25, 0.5, 0.75]))
+output = matcher(dataset_query, dataset_database)
+
+```
\ No newline at end of file
diff --git a/docs/sim_wildfusion.md b/docs/sim_wildfusion.md
new file mode 100644
index 0000000..a7ddbf4
--- /dev/null
+++ b/docs/sim_wildfusion.md
@@ -0,0 +1,171 @@
+# WildFusion - calibrated score fusion
+
+The `similarity.wildfusion` module provides a tools to combine any set of similarity scores using score calibration. For example, cosine similarity between deep features outputs scores in the [-1, 1] interval, while scores obtained using local feature matching range from 0 to infinity. To combine them, calibration is used to convert any raw similarity score into a probability that two images represent the same identity.
+
+This functionality is implemented using `WildFusion` class, which uses multiple `SimilarityPipeline` objects as building blocks, which implements pipeline of matching and calculating calibrated similarity scores. In addition, `WildFusion` class allows significant speeds up of calculation of matching scores.
+
+
+::: similarity.wildfusion
+    options:
+      show_root_heading: true
+      heading_level: 2
+      filters:
+        - "!^_[^_]"
+        - "!get_feature_dataset"
+        - "!get_hits"
+        - "!get_priority_pairs"
+
+
+
+## Examples
+### Example - SimilarityPipeline
+
+We use LightGlue matching with SuperPoint descriptors and keypoints extracted from images resized to
+ 512x512. The scores are calibrated using isotonic regression.
+
+```Python
+import timm
+import torchvision.transforms as T
+from wildlife_tools.features import SuperPointExtractor
+from wildlife_tools.similarity import MatchLightGlue
+
+from wildlife_tools.similarity.wildfusion import SimilarityPipeline
+from wildlife_tools.similarity.calibration import IsotonicCalibration
+
+
+pipeline = SimilarityPipeline(
+  matcher = MatchLightGlue(features='superpoint'),
+  extractor = SuperPointExtractor(),
+  transform = T.Compose([
+      T.Resize([512, 512]),
+      T.ToTensor()
+  ]),
+  calibration = IsotonicCalibration()
+),
+pipeline.fit_calibration(calibration_dataset1, calibration_dataset2)
+scores = pipeline(query, database)
+```
+
+
+
+
+### Example - WildFusion
+
+
+```python
+import timm
+import torchvision.transforms as T
+from wildlife_tools.features import *
+from wildlife_tools.similarity import CosineSimilarity, MatchLOFTR, MatchLightGlue
+from wildlife_tools.similarity.wildfusion import SimilarityPipeline, WildFusion
+from wildlife_tools.similarity.calibration import IsotonicCalibration
+
+
+matchers = [
+
+    SimilarityPipeline(
+        matcher = MatchLightGlue(features='superpoint'),
+        extractor = SuperPointExtractor(),
+        transform = T.Compose([
+            T.Resize([512, 512]),
+            T.ToTensor()
+        ]),
+        calibration = IsotonicCalibration()
+    ),
+
+    SimilarityPipeline(
+        matcher = MatchLightGlue(features='aliked'),
+        extractor = AlikedExtractor(),
+        transform = T.Compose([
+            T.Resize([512, 512]),
+            T.ToTensor()
+        ]),
+        calibration = IsotonicCalibration()
+    ),
+
+    SimilarityPipeline(
+        matcher = MatchLightGlue(features='disk'),
+        extractor = DiskExtractor(),
+        transform = T.Compose([
+            T.Resize([512, 512]),
+            T.ToTensor()
+        ]),
+        calibration = IsotonicCalibration()
+    ),
+
+    SimilarityPipeline(
+        matcher = MatchLightGlue(features='sift'),
+        extractor = SiftExtractor(),
+        transform = T.Compose([
+            T.Resize([512, 512]),
+            T.ToTensor()
+        ]),
+        calibration = IsotonicCalibration()
+    ),
+
+    SimilarityPipeline(
+        matcher = MatchLOFTR(pretrained='outdoor'),
+        extractor = None,
+        transform = T.Compose([
+            T.Resize([512, 512]),
+            T.Grayscale(),
+            T.ToTensor(),
+        ]),
+        calibration = IsotonicCalibration()
+    ),
+
+    SimilarityPipeline(
+        matcher = CosineSimilarity(),
+        extractor = DeepFeatures(
+            model = timm.create_model(
+              'hf-hub:BVRA/wildlife-mega-L-384',
+              num_classes=0,
+              pretrained=True
+              )
+        ),
+        transform = T.Compose([
+            T.Resize(size=(384, 384)),
+            T.ToTensor(),
+            T.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
+        ]),
+        calibration = IsotonicCalibration()
+    ),
+]
+
+wildfusion = WildFusion(calibrated_matchers = matchers)
+wildfusion.fit_calibration(calibration_dataset1, calibration_dataset2)
+similarity = wildfusion(query, database)
+```
+
+
+
+
+### Example - WildFusion with shortlist
+Cosine similarity of MegaDescriptor features is used to construct the shortlist. Then, after 
+calibration, WildFusion is run with a budget of 100 score calculations per query image.
+
+
+```python
+priority_matcher =  SimilarityPipeline(
+    matcher = CosineSimilarity(),
+    extractor = DeepFeatures(
+        model = timm.create_model(
+        'hf-hub:BVRA/wildlife-mega-L-384',
+        num_classes=0,
+        pretrained=True
+        )
+    ),
+    transform = T.Compose([
+        T.Resize(size=(384, 384)),
+        T.ToTensor(),
+        T.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
+    ]),
+)
+
+wildfusion = WildFusion(calibrated_matchers = matchers)
+wildfusion.fit_calibration(calibration_dataset1, calibration_dataset2)
+similarity = wildfusion(query, database, B=100)
+
+```
+
+
diff --git a/docs/similarity.md b/docs/similarity.md
deleted file mode 100644
index 625bf64..0000000
--- a/docs/similarity.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# Similarity
-`Similarity` subclasses provides a standardized method for calculating the similarity between two sets of features extracted by the same feature extractor.
-
-
-Once instantiated, the `Similarity` object functions as a callable, expecting two arguments: `query_features` and `database_features`. The specific input type and shape depend on the chosen feature extractor.
-
-The output of all `Similarity` objects is a dictionary. The keys represent properties of the similarity, such as the used threshold, while the values contain arrays with the shape `n_query` x `n_database`. In other words, each row in the array corresponds to one query image.
-
-
-## CosineSimilarity
-
-Calculates cosine similarity between query and database features. Query should be 2D array with shape `n_query` x `dim_embeddings` and database should be 2D array with shape`n_database` x `dim_embeddings`. Output is dictionary with `cosine` key and value that contains 2D array with cosine similarities.
-
-
-### Example
-In this context, query and database are 2D arrays of deep features.
-
-```Python
-from wildlife_tools.similarity import CosineSimilarity
-
-similarity = CosineSimilarity()
-sim = similarity(query, database)
-```
-
-
-### Reference
-::: similarity.cosine.CosineSimilarity
-    options:
-      show_symbol_type_heading: false
-      show_bases: false
-      show_root_toc_entry: false
-
-## MatchDescriptors
-
-Calculates similarity between query and database as number of descriptor correspondences after filtering with ratio test.
-For each descriptor in query, nearest two descriptors in database are found. If their ratio of their distance is lesser than threshold, they are considered as valid correspondence. Similarity is calculated as sum of all correspondences.
-
-Output is dictionary with key for each threshold. Values contains 2D array with number of correspondences.
-
-
-### Example
-In this context, query and database are sets of SIFT descriptors with `descriptor_dim` = 128.
-
-```Python
-from wildlife_tools.similarity import MatchDescriptors
-
-similarity = MatchDescriptors(descriptor_dim=128, thresholds=[0.8])
-sim = similarity(query, database)
-```
-
-
-### Reference
-::: similarity.descriptors.MatchDescriptors
-    options:
-      show_symbol_type_heading: false
-      show_bases: false
-      show_root_toc_entry: false
-
-
-
-
-## MatchLOFTR
-
-Uses LOFTR matching capabilities to calculate number of correspondences. Does not use descriptors and takes pair of greyscale image tensors instead. LOFTR implementation from Kornia is used.
-
-Output is dictionary with key for each confidence threshold. Values contains corresponding 2D array with cosine similarities.
-
-
-### Reference
-::: similarity.loftr.MatchLOFTR
-    options:
-      show_symbol_type_heading: false
-      show_bases: false
-      show_root_toc_entry: false
diff --git a/docs/training.md b/docs/training.md
index b4fe987..9fe2bc5 100644
--- a/docs/training.md
+++ b/docs/training.md
@@ -1,7 +1,24 @@
 # Training
 We provide simple trainer class for training on `WildlifeDataset` instances as well as wrappers for ArcFace and Triplet losses.
 
-## Training Example
+
+## Replicability
+The model can be trained with a specified seed to ensure replicable results by calling the `set_seed` function at the beginning of the training process. If the trainer is saved into checkpoint, the seed is stored as well, allowing for its later use in restarting the model and maintaining replicability throughout the restart.
+
+
+::: train.trainer
+    options:
+      show_root_heading: true
+      heading_level: 2
+
+
+::: train.objective
+    options:
+      show_root_heading: true
+      heading_level: 2
+
+
+## Examples
 Fine-tuning MegaDescriptor-T from HuggingFace Hub
 
 ```Python
@@ -9,6 +26,7 @@ import timm
 import itertools
 from torch.optim import SGD
 from wildlife_tools.train import ArcFaceLoss, BasicTrainer
+from wildlife_tools.train import set_seed
 
 # Download MegaDescriptor-T backbone from HuggingFace Hub
 backbone = timm.create_model('hf-hub:BVRA/MegaDescriptor-T-224', num_classes=0, pretrained=True)
@@ -25,7 +43,7 @@ objective = ArcFaceLoss(
 params = itertools.chain(backbone.parameters(), objective.parameters())
 optimizer = SGD(params=params, lr=0.001, momentum=0.9)
 
-
+set_seed(0)
 trainer = BasicTrainer(
     dataset=dataset,
     model=backbone,
@@ -39,26 +57,3 @@ trainer.train()
 
 ```
 
-
-## Reference
-::: train.trainer.BasicTrainer
-    options:
-      show_symbol_type_heading: false
-      show_bases: false
-      show_root_toc_entry: false
-
-
-## Replicability
-The model can be trained with a specified seed to ensure replicable results by calling the `set_seed` function at the beginning of the training process. If the trainer is saved into checkpoint, the seed is stored as well, allowing for its later use in restarting the model and maintaining replicability throughout the restart.
-
-### Example
-
-```Python
-from wildlife_tools.train import set_seed, BasicTrainer
-
-
-set_seed(0)
-trainer = BasicTrainer(<add trainer parameters here>)
-trainer.train()
-
-```
\ No newline at end of file
diff --git a/examples/ExampleDataset/images/identity_a/image_1.JPG b/examples/ExampleDataset/images/identity_a/image_1.JPG
deleted file mode 100644
index 24af988..0000000
Binary files a/examples/ExampleDataset/images/identity_a/image_1.JPG and /dev/null differ
diff --git a/examples/ExampleDataset/images/identity_a/image_2.JPG b/examples/ExampleDataset/images/identity_a/image_2.JPG
deleted file mode 100644
index 8723dcd..0000000
Binary files a/examples/ExampleDataset/images/identity_a/image_2.JPG and /dev/null differ
diff --git a/examples/ExampleDataset/images/identity_b/image_3.JPG b/examples/ExampleDataset/images/identity_b/image_3.JPG
deleted file mode 100644
index d5d8e83..0000000
Binary files a/examples/ExampleDataset/images/identity_b/image_3.JPG and /dev/null differ
diff --git a/examples/ExampleDataset/metadata.csv b/examples/ExampleDataset/metadata.csv
deleted file mode 100644
index 02d146d..0000000
--- a/examples/ExampleDataset/metadata.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-image_id,identity,path,split,bbox,date,orientation,segmentation
-image_1,a,images/identity_a/image_1.JPG,train,"[995, 466, 434, 302]",2016-07-11 16:53:13,right,"{'size': [1333, 2000], 'counts': 'jRaX1k1eW1<G4K6K4M3M2N2M3N3M2M4L4M3L6K5J5L3M3M2N2O1N2N2N2O1N3M2N4L3N3L4L3M3M3N1N2N2O1N2N101N2O2N0O4M2M3N0O3N1O1N2O1N2O0O2O2M2N2N2N3N1O2M2O1N101O1N2O001O1N2O001N3N2N1O1N3N1N2O0O2O1N2O1N2O1O1N2O1N2O2N1O1N2O1O1O1O001O1O001N102N001O1O001O1N101O0000001O00001O0O10001O0000001N10000O101N100O2O000O2O000O101O0O100000000000000O1000000000001O00000000000000000000000000000000000000000O0100000000000000000000O100000000000000000000O100000000000000O1000000O100000000000000O10001O0000000000000000000O10000000000000000O1000001O000O100000001O1O0O101O001O0O2O1O0O2O00000O101N10000O1O10000O2O000O1000000O1O2O000O10000O1O1O100O10000O2O0O101N101N101N2O1N101N101N100O2N100O100O100O1O101O0O10000O10000O2O0O100O1O1O1O1O2O0O1O100O2O0O2O0O2N2O1N1O2O1N1O2N100O101N101N101N101N101N2N2N2N2N2N1O2N1O2O0O2O1N1O2N2N3M2N2N2N2O1N1O2O1N101N2O002M5K6K3L4L3M3N2M2N2N2O0O2N3M2O2M2N7I6J6J5K4L3M3M3M2O1N3M3M2N4J6H`0]OW]Ug0'}"
-image_2,a,images/identity_a/image_2.JPG,test,"[769, 593, 135, 145]",2016-07-11 16:53:31,topleft,"{'size': [1333, 2000], 'counts': '[nZo034V1lW1>M3M5K9H3L2N3N2M9H3L3N1O3M7H3N1O1O3M5J2O1O2M3N2M3N1O001O2N1O1O001O1O010O10O010O000001O0001O0000000000000000000000001O001O001O1O00001N100000001O0O2O1N2N2O0O2O001N3N1O0O2N2N2N2O1N2O0O2N2M4N0O2N2N2M3N2O1N1N3N2N101N3M2M3N1O3N1N2M3N2O1N2N2N2N2N3M2N4L2N2N2O2M4L2N2O2L6K4K6I6Jk^_\\1'}"
-image_3,b,images/identity_b/image_3.JPG,train,"[1170, 668, 339, 245]",2015-06-30 17:43:12,right,"{'size': [1333, 2000], 'counts': 'fRe_1V1ZX1:F8J6J5M2M4K4L6K3J:E=F7I5L5K3N2N2M3N2N2M5K5K6J4L4M3M2O1N2N102M2N2O2M3M3N2N1N2O1N2O1O001O1O2N1O1O2N1N2O1O1O001O1O1O1O1O1O2N001O2N001O001O1O1O1O2N001O1O10O01O1O001O1O1O1O1O1O1O001O001O00001O1O010O00001O00001O0000000000000000000000000000000O100000000000000000O100000000O100000000O10000O1O10000O1000000O10000000001O00000O2O0000001O001O001N101O0000001O0000000O1000000O1000000O1O101O0O1000000O10001O00001O0O2O001O1O1O001O0O101O00000000000000000000001O0000000O2O00001O001O1N101O0O2N1O101N1O10001N10000O10000O2O0O1O100O1O1O101N101N101O1N2O0O2O1N100O2N1O100O1O1O100O100O100O2N101N1O2M201N3L2O2N1O2N1O101N101N1O2O1N1O2N2N2N101N2O1N101N3N2N1N3N1O2M101N2N2O2M3M3M9G;E4L3M2O2M2N2N2N3L5K5KZSmc0'}"
diff --git a/examples/example-features.ipynb b/examples/example-features.ipynb
new file mode 100644
index 0000000..0fac505
--- /dev/null
+++ b/examples/example-features.ipynb
@@ -0,0 +1,185 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "f4716800",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import timm\n",
+    "import torchvision.transforms as T\n",
+    "\n",
+    "from wildlife_tools.features import SuperPointExtractor, SiftExtractor, DiskExtractor, AlikedExtractor, DeepFeatures\n",
+    "from wildlife_tools.data import ImageDataset\n",
+    "\n",
+    "metadata = {'metadata':  pd.read_csv('../tests/TestDataset/metadata.csv'), 'root': '../tests/TestDataset'}\n",
+    "transform = T.Compose([T.Resize([224, 224]), T.ToTensor()])\n",
+    "dataset = ImageDataset(**metadata, transform=transform)\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "799b7ae7-619b-4ea2-a2cd-9e64c20ea58e",
+   "metadata": {},
+   "source": [
+    "# Extract local features"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "78b04526",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  3.45it/s]\n"
+     ]
+    }
+   ],
+   "source": [
+    "extractor = SiftExtractor()\n",
+    "output = extractor(dataset)\n",
+    "\n",
+    "assert len(output) == len(dataset)\n",
+    "assert tuple(output.features[0]['keypoints'].shape) == (256, 2)\n",
+    "assert tuple(output.features[0]['descriptors'].shape) == (256, 128)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "5f6bb73b",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  4.46it/s]\n"
+     ]
+    }
+   ],
+   "source": [
+    "extractor = SuperPointExtractor()\n",
+    "output = extractor(dataset)\n",
+    "\n",
+    "assert len(output) == len(dataset)\n",
+    "assert tuple(output.features[0]['keypoints'].shape) == (256, 2)\n",
+    "assert tuple(output.features[0]['descriptors'].shape) == (256, 256)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "ff226994",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  5.84it/s]\n"
+     ]
+    }
+   ],
+   "source": [
+    "extractor = AlikedExtractor()\n",
+    "output = extractor(dataset)\n",
+    "\n",
+    "assert len(output) == len(dataset)\n",
+    "assert tuple(output.features[0]['keypoints'].shape) == (256, 2)\n",
+    "assert tuple(output.features[0]['descriptors'].shape) == (256, 128)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "id": "ac1e189e",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 11.04it/s]\n"
+     ]
+    }
+   ],
+   "source": [
+    "extractor = DiskExtractor()\n",
+    "output = extractor(dataset)\n",
+    "\n",
+    "assert len(output) == len(dataset)\n",
+    "assert tuple(output.features[0]['keypoints'].shape) == (256, 2)\n",
+    "assert tuple(output.features[0]['descriptors'].shape) == (256, 128)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ed509956-c5cf-418c-a29a-78f043482bc7",
+   "metadata": {},
+   "source": [
+    "# Extract deep features"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "id": "8d9da74f",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "INFO:timm.models._builder:Loading pretrained weights from Hugging Face hub (BVRA/MegaDescriptor-T-224)\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:01<00:00,  1.13s/it]\n"
+     ]
+    }
+   ],
+   "source": [
+    "backbone = timm.create_model('hf-hub:BVRA/MegaDescriptor-T-224', num_classes=0, pretrained=True)\n",
+    "extractor = DeepFeatures(backbone)\n",
+    "output = extractor(dataset)\n",
+    "\n",
+    "assert len(output) == len(dataset)\n",
+    "assert tuple(output.features.shape) == (len(dataset), 768)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "81e9ac29",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.11.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/example-pairwise-sim.ipynb b/examples/example-pairwise-sim.ipynb
new file mode 100644
index 0000000..71a829e
--- /dev/null
+++ b/examples/example-pairwise-sim.ipynb
@@ -0,0 +1,2159 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "3831563a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import timm\n",
+    "import torchvision.transforms as T\n",
+    "\n",
+    "from wildlife_tools.features import SuperPointExtractor\n",
+    "from wildlife_tools.similarity import MatchLOFTR, MatchLightGlue\n",
+    "from wildlife_tools.similarity.pairwise.collectors import CollectCounts, CollectCountsRansac, CollectAll\n",
+    "from wildlife_tools.data import ImageDataset\n",
+    "\n",
+    "metadata = {'metadata':  pd.read_csv('../tests/TestDataset/metadata.csv'), 'root': '../tests/TestDataset'}\n",
+    "transform = T.Compose([T.Resize([224, 224]), T.ToTensor()])\n",
+    "dataset = ImageDataset(**metadata, transform=transform)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1330d335",
+   "metadata": {},
+   "source": [
+    "# LightGlue"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "20418895",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 10.26it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 16.27it/s]\n"
+     ]
+    }
+   ],
+   "source": [
+    "extractor = SuperPointExtractor()\n",
+    "dataset.transform = T.Compose([T.Resize([224, 224]), T.ToTensor()])\n",
+    "\n",
+    "features_query = extractor(dataset)\n",
+    "features_database = extractor(dataset)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "d76942ab-c377-490a-95f7-2cd755ae49de",
+   "metadata": {},
+   "source": [
+    "### Default SuperPoint + LightGlue matching score\n",
+    "- Default score is number of significant (confidence > 0.5) correspondences."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "9c41d2f8",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 22.73it/s]\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "array([[197.,   0.,   2.],\n",
+       "       [  0., 239.,   0.],\n",
+       "       [  2.,   0., 203.]], dtype=float16)"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "matcher = MatchLightGlue(features='superpoint')\n",
+    "output = matcher(features_query, features_database)\n",
+    "output"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "08a29fa8-e942-43f2-bb69-166a61a05f50",
+   "metadata": {},
+   "source": [
+    "### Collect scores from multiple thresholds\n",
+    "- Suitable for calculation of scores from multiple thresholds at once."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "6cf48fdc",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 31.84it/s]\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "{0.2: array([[228.,   2.,  16.],\n",
+       "        [  2., 247.,   0.],\n",
+       "        [ 16.,   0., 236.]], dtype=float16),\n",
+       " 0.5: array([[197.,   0.,   2.],\n",
+       "        [  0., 239.,   0.],\n",
+       "        [  2.,   0., 203.]], dtype=float16),\n",
+       " 0.8: array([[156.,   0.,   1.],\n",
+       "        [  0., 202.,   0.],\n",
+       "        [  1.,   0., 121.]], dtype=float16)}"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "collector = CollectCounts(thresholds=[0.2, 0.5, 0.8])\n",
+    "matcher = MatchLightGlue(features='superpoint', collector=collector)\n",
+    "output = matcher(features_query, features_database)\n",
+    "output"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a9474065-59d1-4c2e-9787-f2b16b41a354",
+   "metadata": {},
+   "source": [
+    "### Collect after RANSAC filtering"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "30aa9051",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 26.46it/s]\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "array([[238.,   0.,  22.],\n",
+       "       [  0., 248.,   0.],\n",
+       "       [ 22.,   0., 247.]], dtype=float16)"
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "collector = CollectCountsRansac(ransacReprojThreshold=1.0, maxIters=100)\n",
+    "matcher = MatchLightGlue(features='superpoint', collector=collector)\n",
+    "output = matcher(features_query, features_database)\n",
+    "output"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2ae05492-41c6-410c-bed9-4a704f7d4feb",
+   "metadata": {},
+   "source": [
+    "## Collect all\n",
+    "- Collect all SuperPoint keypoint and descriptors as list of dict"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "7b2663ad",
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 31.63it/s]"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "9\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "[{'idx0': 0,\n",
+       "  'idx1': 0,\n",
+       "  'kpts0': array([[119.5, 122.5],\n",
+       "         [131.5,  77.5],\n",
+       "         [115.5, 143.5],\n",
+       "         [ 82.5, 156.5],\n",
+       "         [ 95.5, 157.5],\n",
+       "         [156.5, 156.5],\n",
+       "         [ 76.5, 101.5],\n",
+       "         [ 79.5,  85.5],\n",
+       "         [164.5, 133.5],\n",
+       "         [ 90.5,  72.5],\n",
+       "         [ 73.5, 195.5],\n",
+       "         [ 50.5, 173.5],\n",
+       "         [144.5, 126.5],\n",
+       "         [ 98.5, 140.5],\n",
+       "         [151.5,  85.5],\n",
+       "         [ 67.5, 117.5],\n",
+       "         [113.5,  64.5],\n",
+       "         [ 64.5, 107.5],\n",
+       "         [202.5, 118.5],\n",
+       "         [128.5,  87.5],\n",
+       "         [143.5, 116.5],\n",
+       "         [154.5, 137.5],\n",
+       "         [159.5, 111.5],\n",
+       "         [ 43.5, 124.5],\n",
+       "         [140.5,  80.5],\n",
+       "         [174.5,  31.5],\n",
+       "         [ 79.5, 165.5],\n",
+       "         [134.5, 154.5],\n",
+       "         [145.5,  99.5],\n",
+       "         [110.5,  79.5],\n",
+       "         [129.5,  95.5],\n",
+       "         [ 99.5,  96.5],\n",
+       "         [170.5,  28.5],\n",
+       "         [ 88.5, 116.5],\n",
+       "         [144.5, 154.5],\n",
+       "         [ 91.5,  86.5],\n",
+       "         [207.5, 161.5],\n",
+       "         [138.5, 116.5],\n",
+       "         [ 79.5, 206.5],\n",
+       "         [105.5, 120.5],\n",
+       "         [ 91.5, 187.5],\n",
+       "         [119.5,   8.5],\n",
+       "         [164.5,  11.5],\n",
+       "         [ 99.5,  68.5],\n",
+       "         [137.5, 103.5],\n",
+       "         [148.5, 196.5],\n",
+       "         [ 10.5, 168.5],\n",
+       "         [159.5, 100.5],\n",
+       "         [ 22.5, 194.5],\n",
+       "         [130.5, 153.5],\n",
+       "         [150.5, 136.5],\n",
+       "         [185.5, 104.5],\n",
+       "         [ 73.5, 127.5],\n",
+       "         [ 39.5, 199.5],\n",
+       "         [153.5,  91.5],\n",
+       "         [ 75.5, 165.5],\n",
+       "         [110.5,  83.5],\n",
+       "         [161.5, 206.5],\n",
+       "         [ 36.5, 171.5],\n",
+       "         [139.5,  10.5],\n",
+       "         [168.5, 125.5],\n",
+       "         [ 47.5, 123.5],\n",
+       "         [ 11.5, 164.5],\n",
+       "         [ 90.5, 180.5],\n",
+       "         [129.5,  91.5],\n",
+       "         [157.5,  95.5],\n",
+       "         [ 73.5, 105.5],\n",
+       "         [ 55.5, 141.5],\n",
+       "         [215.5, 153.5],\n",
+       "         [199.5, 171.5],\n",
+       "         [153.5, 118.5],\n",
+       "         [ 74.5,  90.5],\n",
+       "         [122.5,  85.5],\n",
+       "         [ 96.5,   8.5],\n",
+       "         [ 16.5, 130.5],\n",
+       "         [119.5,  90.5],\n",
+       "         [140.5, 127.5],\n",
+       "         [ 14.5, 211.5],\n",
+       "         [ 88.5, 215.5],\n",
+       "         [125.5, 130.5],\n",
+       "         [ 85.5,  97.5],\n",
+       "         [ 88.5, 108.5],\n",
+       "         [114.5, 106.5],\n",
+       "         [180.5, 114.5],\n",
+       "         [124.5, 149.5],\n",
+       "         [138.5, 154.5],\n",
+       "         [ 81.5, 161.5],\n",
+       "         [215.5, 178.5],\n",
+       "         [158.5, 135.5],\n",
+       "         [121.5,  81.5],\n",
+       "         [168.5, 132.5],\n",
+       "         [136.5,  79.5],\n",
+       "         [120.5, 149.5],\n",
+       "         [215.5, 149.5],\n",
+       "         [121.5, 167.5],\n",
+       "         [146.5,  94.5],\n",
+       "         [144.5,  81.5],\n",
+       "         [ 93.5, 208.5],\n",
+       "         [141.5, 208.5],\n",
+       "         [ 68.5, 107.5],\n",
+       "         [103.5,  95.5],\n",
+       "         [ 87.5,  76.5],\n",
+       "         [167.5, 121.5],\n",
+       "         [ 95.5,  96.5],\n",
+       "         [ 12.5, 131.5],\n",
+       "         [149.5, 166.5],\n",
+       "         [157.5,  91.5],\n",
+       "         [182.5, 159.5],\n",
+       "         [147.5,  90.5],\n",
+       "         [ 48.5, 212.5],\n",
+       "         [147.5, 202.5],\n",
+       "         [197.5, 109.5],\n",
+       "         [145.5, 122.5],\n",
+       "         [ 88.5, 112.5],\n",
+       "         [ 13.5, 135.5],\n",
+       "         [169.5,  92.5],\n",
+       "         [ 23.5, 101.5],\n",
+       "         [101.5, 112.5],\n",
+       "         [133.5, 101.5],\n",
+       "         [171.5, 109.5],\n",
+       "         [168.5, 159.5],\n",
+       "         [ 92.5, 212.5],\n",
+       "         [  9.5, 186.5],\n",
+       "         [ 67.5, 113.5],\n",
+       "         [ 95.5, 197.5],\n",
+       "         [155.5, 144.5],\n",
+       "         [ 24.5, 167.5],\n",
+       "         [ 67.5, 142.5],\n",
+       "         [212.5, 166.5],\n",
+       "         [ 96.5, 117.5],\n",
+       "         [145.5, 103.5],\n",
+       "         [107.5, 138.5],\n",
+       "         [127.5,  76.5],\n",
+       "         [112.5,  99.5],\n",
+       "         [159.5, 106.5],\n",
+       "         [153.5,  95.5],\n",
+       "         [119.5,  76.5],\n",
+       "         [103.5,  68.5],\n",
+       "         [215.5, 113.5],\n",
+       "         [ 40.5, 187.5],\n",
+       "         [129.5, 110.5],\n",
+       "         [135.5, 165.5],\n",
+       "         [214.5, 174.5],\n",
+       "         [  9.5, 172.5],\n",
+       "         [162.5, 202.5],\n",
+       "         [ 95.5,  69.5],\n",
+       "         [ 72.5, 109.5],\n",
+       "         [119.5,  72.5],\n",
+       "         [103.5, 101.5],\n",
+       "         [117.5, 167.5],\n",
+       "         [ 60.5, 199.5],\n",
+       "         [149.5, 130.5],\n",
+       "         [ 28.5, 203.5],\n",
+       "         [165.5, 107.5],\n",
+       "         [ 94.5, 183.5],\n",
+       "         [129.5,  83.5],\n",
+       "         [119.5, 135.5],\n",
+       "         [151.5, 202.5],\n",
+       "         [110.5,  75.5],\n",
+       "         [196.5, 154.5],\n",
+       "         [180.5, 146.5],\n",
+       "         [133.5, 116.5],\n",
+       "         [ 85.5, 162.5],\n",
+       "         [ 80.5,  81.5],\n",
+       "         [109.5,  64.5],\n",
+       "         [ 54.5, 172.5],\n",
+       "         [203.5, 146.5],\n",
+       "         [ 39.5, 125.5],\n",
+       "         [111.5, 172.5],\n",
+       "         [144.5, 197.5],\n",
+       "         [110.5,  87.5],\n",
+       "         [100.5, 119.5],\n",
+       "         [169.5, 116.5],\n",
+       "         [173.5, 201.5],\n",
+       "         [116.5,  84.5],\n",
+       "         [171.5,  15.5],\n",
+       "         [102.5, 108.5],\n",
+       "         [133.5,  97.5],\n",
+       "         [186.5, 206.5],\n",
+       "         [155.5, 110.5],\n",
+       "         [ 85.5, 199.5],\n",
+       "         [177.5, 192.5],\n",
+       "         [ 98.5, 150.5],\n",
+       "         [ 72.5, 101.5],\n",
+       "         [207.5, 141.5],\n",
+       "         [102.5, 140.5],\n",
+       "         [ 91.5, 191.5],\n",
+       "         [117.5,  65.5],\n",
+       "         [210.5, 126.5],\n",
+       "         [168.5,  11.5],\n",
+       "         [192.5, 124.5],\n",
+       "         [211.5, 161.5],\n",
+       "         [144.5,  85.5],\n",
+       "         [129.5, 130.5],\n",
+       "         [ 51.5,  94.5],\n",
+       "         [163.5, 111.5],\n",
+       "         [129.5, 106.5],\n",
+       "         [ 97.5, 113.5],\n",
+       "         [146.5, 206.5],\n",
+       "         [123.5, 108.5],\n",
+       "         [187.5, 135.5],\n",
+       "         [  9.5, 194.5],\n",
+       "         [155.5, 148.5],\n",
+       "         [165.5, 116.5],\n",
+       "         [112.5,  68.5],\n",
+       "         [141.5, 104.5],\n",
+       "         [200.5, 175.5],\n",
+       "         [ 62.5, 169.5],\n",
+       "         [ 83.5,  77.5],\n",
+       "         [107.5, 149.5],\n",
+       "         [ 66.5, 121.5],\n",
+       "         [153.5, 176.5],\n",
+       "         [ 68.5,  97.5],\n",
+       "         [160.5,  22.5],\n",
+       "         [124.5, 187.5],\n",
+       "         [125.5,  81.5],\n",
+       "         [ 67.5, 102.5],\n",
+       "         [105.5, 182.5],\n",
+       "         [121.5,  98.5],\n",
+       "         [105.5, 133.5],\n",
+       "         [ 92.5, 116.5],\n",
+       "         [203.5, 122.5],\n",
+       "         [176.5, 129.5],\n",
+       "         [  8.5, 128.5],\n",
+       "         [111.5, 138.5],\n",
+       "         [121.5, 131.5],\n",
+       "         [ 74.5, 123.5],\n",
+       "         [172.5, 126.5],\n",
+       "         [115.5,  94.5],\n",
+       "         [133.5, 107.5],\n",
+       "         [165.5,  16.5],\n",
+       "         [120.5,  94.5],\n",
+       "         [ 68.5, 214.5],\n",
+       "         [ 46.5, 172.5],\n",
+       "         [ 58.5, 170.5],\n",
+       "         [ 78.5,  89.5],\n",
+       "         [135.5, 187.5],\n",
+       "         [180.5, 118.5]], dtype=float32),\n",
+       "  'kpts1': array([[119.5, 122.5],\n",
+       "         [131.5,  77.5],\n",
+       "         [115.5, 143.5],\n",
+       "         [ 82.5, 156.5],\n",
+       "         [ 95.5, 157.5],\n",
+       "         [156.5, 156.5],\n",
+       "         [ 76.5, 101.5],\n",
+       "         [ 79.5,  85.5],\n",
+       "         [164.5, 133.5],\n",
+       "         [ 90.5,  72.5],\n",
+       "         [ 73.5, 195.5],\n",
+       "         [ 50.5, 173.5],\n",
+       "         [144.5, 126.5],\n",
+       "         [ 98.5, 140.5],\n",
+       "         [151.5,  85.5],\n",
+       "         [ 67.5, 117.5],\n",
+       "         [113.5,  64.5],\n",
+       "         [ 64.5, 107.5],\n",
+       "         [202.5, 118.5],\n",
+       "         [128.5,  87.5],\n",
+       "         [143.5, 116.5],\n",
+       "         [154.5, 137.5],\n",
+       "         [159.5, 111.5],\n",
+       "         [ 43.5, 124.5],\n",
+       "         [140.5,  80.5],\n",
+       "         [174.5,  31.5],\n",
+       "         [ 79.5, 165.5],\n",
+       "         [134.5, 154.5],\n",
+       "         [145.5,  99.5],\n",
+       "         [110.5,  79.5],\n",
+       "         [129.5,  95.5],\n",
+       "         [ 99.5,  96.5],\n",
+       "         [170.5,  28.5],\n",
+       "         [ 88.5, 116.5],\n",
+       "         [144.5, 154.5],\n",
+       "         [ 91.5,  86.5],\n",
+       "         [207.5, 161.5],\n",
+       "         [138.5, 116.5],\n",
+       "         [ 79.5, 206.5],\n",
+       "         [105.5, 120.5],\n",
+       "         [ 91.5, 187.5],\n",
+       "         [119.5,   8.5],\n",
+       "         [164.5,  11.5],\n",
+       "         [ 99.5,  68.5],\n",
+       "         [137.5, 103.5],\n",
+       "         [148.5, 196.5],\n",
+       "         [ 10.5, 168.5],\n",
+       "         [159.5, 100.5],\n",
+       "         [ 22.5, 194.5],\n",
+       "         [130.5, 153.5],\n",
+       "         [150.5, 136.5],\n",
+       "         [185.5, 104.5],\n",
+       "         [ 73.5, 127.5],\n",
+       "         [ 39.5, 199.5],\n",
+       "         [153.5,  91.5],\n",
+       "         [ 75.5, 165.5],\n",
+       "         [110.5,  83.5],\n",
+       "         [161.5, 206.5],\n",
+       "         [ 36.5, 171.5],\n",
+       "         [139.5,  10.5],\n",
+       "         [168.5, 125.5],\n",
+       "         [ 47.5, 123.5],\n",
+       "         [ 11.5, 164.5],\n",
+       "         [ 90.5, 180.5],\n",
+       "         [129.5,  91.5],\n",
+       "         [157.5,  95.5],\n",
+       "         [ 73.5, 105.5],\n",
+       "         [ 55.5, 141.5],\n",
+       "         [215.5, 153.5],\n",
+       "         [199.5, 171.5],\n",
+       "         [153.5, 118.5],\n",
+       "         [ 74.5,  90.5],\n",
+       "         [122.5,  85.5],\n",
+       "         [ 96.5,   8.5],\n",
+       "         [ 16.5, 130.5],\n",
+       "         [119.5,  90.5],\n",
+       "         [140.5, 127.5],\n",
+       "         [ 14.5, 211.5],\n",
+       "         [ 88.5, 215.5],\n",
+       "         [125.5, 130.5],\n",
+       "         [ 85.5,  97.5],\n",
+       "         [ 88.5, 108.5],\n",
+       "         [114.5, 106.5],\n",
+       "         [180.5, 114.5],\n",
+       "         [124.5, 149.5],\n",
+       "         [138.5, 154.5],\n",
+       "         [ 81.5, 161.5],\n",
+       "         [215.5, 178.5],\n",
+       "         [158.5, 135.5],\n",
+       "         [121.5,  81.5],\n",
+       "         [168.5, 132.5],\n",
+       "         [136.5,  79.5],\n",
+       "         [120.5, 149.5],\n",
+       "         [215.5, 149.5],\n",
+       "         [121.5, 167.5],\n",
+       "         [146.5,  94.5],\n",
+       "         [144.5,  81.5],\n",
+       "         [ 93.5, 208.5],\n",
+       "         [141.5, 208.5],\n",
+       "         [ 68.5, 107.5],\n",
+       "         [103.5,  95.5],\n",
+       "         [ 87.5,  76.5],\n",
+       "         [167.5, 121.5],\n",
+       "         [ 95.5,  96.5],\n",
+       "         [ 12.5, 131.5],\n",
+       "         [149.5, 166.5],\n",
+       "         [157.5,  91.5],\n",
+       "         [182.5, 159.5],\n",
+       "         [147.5,  90.5],\n",
+       "         [ 48.5, 212.5],\n",
+       "         [147.5, 202.5],\n",
+       "         [197.5, 109.5],\n",
+       "         [145.5, 122.5],\n",
+       "         [ 88.5, 112.5],\n",
+       "         [ 13.5, 135.5],\n",
+       "         [169.5,  92.5],\n",
+       "         [ 23.5, 101.5],\n",
+       "         [101.5, 112.5],\n",
+       "         [133.5, 101.5],\n",
+       "         [171.5, 109.5],\n",
+       "         [168.5, 159.5],\n",
+       "         [ 92.5, 212.5],\n",
+       "         [  9.5, 186.5],\n",
+       "         [ 67.5, 113.5],\n",
+       "         [ 95.5, 197.5],\n",
+       "         [155.5, 144.5],\n",
+       "         [ 24.5, 167.5],\n",
+       "         [ 67.5, 142.5],\n",
+       "         [212.5, 166.5],\n",
+       "         [ 96.5, 117.5],\n",
+       "         [145.5, 103.5],\n",
+       "         [107.5, 138.5],\n",
+       "         [127.5,  76.5],\n",
+       "         [112.5,  99.5],\n",
+       "         [159.5, 106.5],\n",
+       "         [153.5,  95.5],\n",
+       "         [119.5,  76.5],\n",
+       "         [103.5,  68.5],\n",
+       "         [215.5, 113.5],\n",
+       "         [ 40.5, 187.5],\n",
+       "         [129.5, 110.5],\n",
+       "         [135.5, 165.5],\n",
+       "         [214.5, 174.5],\n",
+       "         [  9.5, 172.5],\n",
+       "         [162.5, 202.5],\n",
+       "         [ 95.5,  69.5],\n",
+       "         [ 72.5, 109.5],\n",
+       "         [119.5,  72.5],\n",
+       "         [103.5, 101.5],\n",
+       "         [117.5, 167.5],\n",
+       "         [ 60.5, 199.5],\n",
+       "         [149.5, 130.5],\n",
+       "         [ 28.5, 203.5],\n",
+       "         [165.5, 107.5],\n",
+       "         [ 94.5, 183.5],\n",
+       "         [129.5,  83.5],\n",
+       "         [119.5, 135.5],\n",
+       "         [151.5, 202.5],\n",
+       "         [110.5,  75.5],\n",
+       "         [196.5, 154.5],\n",
+       "         [180.5, 146.5],\n",
+       "         [133.5, 116.5],\n",
+       "         [ 85.5, 162.5],\n",
+       "         [ 80.5,  81.5],\n",
+       "         [109.5,  64.5],\n",
+       "         [ 54.5, 172.5],\n",
+       "         [203.5, 146.5],\n",
+       "         [ 39.5, 125.5],\n",
+       "         [111.5, 172.5],\n",
+       "         [144.5, 197.5],\n",
+       "         [110.5,  87.5],\n",
+       "         [100.5, 119.5],\n",
+       "         [169.5, 116.5],\n",
+       "         [173.5, 201.5],\n",
+       "         [116.5,  84.5],\n",
+       "         [171.5,  15.5],\n",
+       "         [102.5, 108.5],\n",
+       "         [133.5,  97.5],\n",
+       "         [186.5, 206.5],\n",
+       "         [155.5, 110.5],\n",
+       "         [ 85.5, 199.5],\n",
+       "         [177.5, 192.5],\n",
+       "         [ 98.5, 150.5],\n",
+       "         [ 72.5, 101.5],\n",
+       "         [207.5, 141.5],\n",
+       "         [102.5, 140.5],\n",
+       "         [ 91.5, 191.5],\n",
+       "         [117.5,  65.5],\n",
+       "         [210.5, 126.5],\n",
+       "         [168.5,  11.5],\n",
+       "         [192.5, 124.5],\n",
+       "         [211.5, 161.5],\n",
+       "         [144.5,  85.5],\n",
+       "         [129.5, 130.5],\n",
+       "         [ 51.5,  94.5],\n",
+       "         [163.5, 111.5],\n",
+       "         [129.5, 106.5],\n",
+       "         [ 97.5, 113.5],\n",
+       "         [146.5, 206.5],\n",
+       "         [123.5, 108.5],\n",
+       "         [187.5, 135.5],\n",
+       "         [  9.5, 194.5],\n",
+       "         [155.5, 148.5],\n",
+       "         [165.5, 116.5],\n",
+       "         [112.5,  68.5],\n",
+       "         [141.5, 104.5],\n",
+       "         [200.5, 175.5],\n",
+       "         [ 62.5, 169.5],\n",
+       "         [ 83.5,  77.5],\n",
+       "         [107.5, 149.5],\n",
+       "         [ 66.5, 121.5],\n",
+       "         [153.5, 176.5],\n",
+       "         [ 68.5,  97.5],\n",
+       "         [160.5,  22.5],\n",
+       "         [124.5, 187.5],\n",
+       "         [125.5,  81.5],\n",
+       "         [ 67.5, 102.5],\n",
+       "         [105.5, 182.5],\n",
+       "         [121.5,  98.5],\n",
+       "         [105.5, 133.5],\n",
+       "         [ 92.5, 116.5],\n",
+       "         [203.5, 122.5],\n",
+       "         [176.5, 129.5],\n",
+       "         [  8.5, 128.5],\n",
+       "         [111.5, 138.5],\n",
+       "         [121.5, 131.5],\n",
+       "         [ 74.5, 123.5],\n",
+       "         [172.5, 126.5],\n",
+       "         [115.5,  94.5],\n",
+       "         [133.5, 107.5],\n",
+       "         [165.5,  16.5],\n",
+       "         [120.5,  94.5],\n",
+       "         [ 68.5, 214.5],\n",
+       "         [ 46.5, 172.5],\n",
+       "         [ 58.5, 170.5],\n",
+       "         [ 78.5,  89.5],\n",
+       "         [135.5, 187.5],\n",
+       "         [180.5, 118.5]], dtype=float32),\n",
+       "  'scores': array([0.99331033, 0.9764705 , 0.99681693, 0.97005135, 0.9744613 ,\n",
+       "         0.948918  , 0.98940504, 0.84770143, 0.9241318 , 0.6673755 ,\n",
+       "         0.8923656 , 0.8825645 , 0.9610975 , 0.9824358 , 0.49167967,\n",
+       "         0.9905464 , 0.73124003, 0.9868962 , 0.24970493, 0.9666658 ,\n",
+       "         0.94612426, 0.96190673, 0.9255812 , 0.8506369 , 0.8863918 ,\n",
+       "         0.27236673, 0.9568786 , 0.9945959 , 0.9910381 , 0.9656223 ,\n",
+       "         0.99843824, 0.99144655, 0.18601236, 0.99101174, 0.98044795,\n",
+       "         0.95543754, 0.28137842, 0.9701657 , 0.9157667 , 0.9890128 ,\n",
+       "         0.82796144, 0.3743135 , 0.25944406, 0.77139467, 0.9948578 ,\n",
+       "         0.6341657 , 0.564404  , 0.9097641 , 0.72531015, 0.9877368 ,\n",
+       "         0.96778196, 0.6156632 , 0.97920483, 0.7784519 , 0.53184104,\n",
+       "         0.95796704, 0.9679666 , 0.39456028, 0.93568486, 0.11155913,\n",
+       "         0.8381508 , 0.8703285 , 0.6186796 , 0.86635524, 0.98834693,\n",
+       "         0.7186431 , 0.9846651 , 0.9196807 , 0.20878819, 0.13670117,\n",
+       "         0.93978405, 0.91613054, 0.9984542 , 0.5138487 , 0.46559793,\n",
+       "         0.99216527, 0.9890043 , 0.75541395, 0.7770927 , 0.9961203 ,\n",
+       "         0.99202836, 0.9916898 , 0.9949183 , 0.7072668 , 0.99130887,\n",
+       "         0.9919912 , 0.96799165, 0.11831317, 0.95012844, 0.9959924 ,\n",
+       "         0.8782748 , 0.96925765, 0.9908772 , 0.1855284 , 0.96839726,\n",
+       "         0.9777572 , 0.8349843 , 0.8036546 , 0.4873221 , 0.98896307,\n",
+       "         0.9911064 , 0.75313085, 0.87066746, 0.9859931 , 0.39473635,\n",
+       "         0.93872434, 0.20442306, 0.49602017, 0.9201586 , 0.8263867 ,\n",
+       "         0.682503  , 0.21320792, 0.93339455, 0.98500264, 0.4845125 ,\n",
+       "         0.35315084, 0.2909146 , 0.9897872 , 0.9964946 , 0.9296288 ,\n",
+       "         0.73670685, 0.8190218 , 0.7515517 , 0.99267894, 0.8188942 ,\n",
+       "         0.965044  , 0.7312106 , 0.935219  , 0.19151077, 0.9880865 ,\n",
+       "         0.9918228 , 0.99339664, 0.9849982 , 0.9919676 , 0.89859176,\n",
+       "         0.8497134 , 0.9781264 , 0.79761326, 0.34727573, 0.8331176 ,\n",
+       "         0.99465156, 0.9841159 , 0.15274507, 0.58005005, 0.5206315 ,\n",
+       "         0.69830495, 0.98741955, 0.94346434, 0.99445236, 0.9655578 ,\n",
+       "         0.8029968 , 0.9607123 , 0.8677299 , 0.92221105, 0.8786372 ,\n",
+       "         0.9936502 , 0.9970882 , 0.6088962 , 0.98770833, 0.3379827 ,\n",
+       "         0.46233884, 0.9830849 , 0.9528082 , 0.6472849 , 0.59308285,\n",
+       "         0.9319895 , 0.36859423, 0.6532225 , 0.95584303, 0.69151807,\n",
+       "         0.9897171 , 0.9737138 , 0.9228647 , 0.4966713 , 0.9934445 ,\n",
+       "         0.18450175, 0.9899195 , 0.9981252 , 0.10196651, 0.8911175 ,\n",
+       "         0.88317215, 0.22505681, 0.9887077 , 0.98539704, 0.27800918,\n",
+       "         0.98482376, 0.8208008 , 0.66965693, 0.56475514, 0.2767495 ,\n",
+       "         0.44067284, 0.1312656 , 0.9233264 , 0.9915256 , 0.5394103 ,\n",
+       "         0.94077855, 0.99634176, 0.98263884, 0.7532844 , 0.9954569 ,\n",
+       "         0.5830042 , 0.8056112 , 0.9496983 , 0.91011596, 0.87255615,\n",
+       "         0.9942709 , 0.28616118, 0.97126764, 0.4648189 , 0.9955854 ,\n",
+       "         0.9905524 , 0.75249714, 0.9750775 , 0.26514268, 0.84943503,\n",
+       "         0.9954851 , 0.9836867 , 0.9509827 , 0.9968258 , 0.990562  ,\n",
+       "         0.9911754 , 0.43351004, 0.6755649 , 0.7052533 , 0.9960927 ,\n",
+       "         0.99592906, 0.9864496 , 0.6126267 , 0.99706966, 0.9934244 ,\n",
+       "         0.36510807, 0.9845529 , 0.7282971 , 0.9268405 , 0.96000105,\n",
+       "         0.9292963 , 0.78828794, 0.61303437], dtype=float32)},\n",
+       " {'idx0': 0,\n",
+       "  'idx1': 1,\n",
+       "  'kpts0': array([[121.5,  81.5],\n",
+       "         [215.5, 149.5],\n",
+       "         [186.5, 206.5],\n",
+       "         [187.5, 135.5],\n",
+       "         [120.5,  94.5]], dtype=float32),\n",
+       "  'kpts1': array([[ 59.5,  28.5],\n",
+       "         [135.5,  88.5],\n",
+       "         [126.5, 121.5],\n",
+       "         [114.5,  78.5],\n",
+       "         [ 69.5,  53.5]], dtype=float32),\n",
+       "  'scores': array([0.1001681 , 0.11667754, 0.2919281 , 0.34712577, 0.12168849],\n",
+       "        dtype=float32)},\n",
+       " {'idx0': 0,\n",
+       "  'idx1': 2,\n",
+       "  'kpts0': array([[ 82.5, 156.5],\n",
+       "         [ 95.5, 157.5],\n",
+       "         [ 76.5, 101.5],\n",
+       "         [144.5, 126.5],\n",
+       "         [143.5, 116.5],\n",
+       "         [110.5,  79.5],\n",
+       "         [170.5,  28.5],\n",
+       "         [144.5, 154.5],\n",
+       "         [138.5, 116.5],\n",
+       "         [105.5, 120.5],\n",
+       "         [137.5, 103.5],\n",
+       "         [185.5, 104.5],\n",
+       "         [ 75.5, 165.5],\n",
+       "         [129.5,  91.5],\n",
+       "         [ 73.5, 105.5],\n",
+       "         [ 55.5, 141.5],\n",
+       "         [119.5,  90.5],\n",
+       "         [138.5, 154.5],\n",
+       "         [146.5,  94.5],\n",
+       "         [103.5,  95.5],\n",
+       "         [167.5, 121.5],\n",
+       "         [147.5, 202.5],\n",
+       "         [197.5, 109.5],\n",
+       "         [145.5, 122.5],\n",
+       "         [168.5, 159.5],\n",
+       "         [ 67.5, 113.5],\n",
+       "         [159.5, 106.5],\n",
+       "         [151.5, 202.5],\n",
+       "         [133.5, 116.5],\n",
+       "         [111.5, 172.5],\n",
+       "         [144.5, 197.5],\n",
+       "         [110.5,  87.5],\n",
+       "         [102.5, 108.5],\n",
+       "         [129.5, 106.5],\n",
+       "         [123.5, 108.5],\n",
+       "         [155.5, 148.5],\n",
+       "         [165.5, 116.5],\n",
+       "         [153.5, 176.5],\n",
+       "         [121.5,  98.5],\n",
+       "         [115.5,  94.5],\n",
+       "         [180.5, 118.5]], dtype=float32),\n",
+       "  'kpts1': array([[107.5, 202.5],\n",
+       "         [117.5, 200.5],\n",
+       "         [103.5, 142.5],\n",
+       "         [157.5, 158.5],\n",
+       "         [159.5, 144.5],\n",
+       "         [100.5, 103.5],\n",
+       "         [198.5,  34.5],\n",
+       "         [154.5, 178.5],\n",
+       "         [158.5, 148.5],\n",
+       "         [127.5, 156.5],\n",
+       "         [158.5, 135.5],\n",
+       "         [187.5, 114.5],\n",
+       "         [ 98.5, 212.5],\n",
+       "         [146.5, 125.5],\n",
+       "         [106.5, 154.5],\n",
+       "         [ 72.5, 196.5],\n",
+       "         [137.5, 125.5],\n",
+       "         [150.5, 179.5],\n",
+       "         [161.5, 125.5],\n",
+       "         [123.5, 132.5],\n",
+       "         [181.5, 148.5],\n",
+       "         [158.5, 215.5],\n",
+       "         [207.5, 106.5],\n",
+       "         [157.5, 153.5],\n",
+       "         [173.5, 181.5],\n",
+       "         [ 89.5, 163.5],\n",
+       "         [168.5, 135.5],\n",
+       "         [162.5, 214.5],\n",
+       "         [147.5, 148.5],\n",
+       "         [138.5, 204.5],\n",
+       "         [154.5, 215.5],\n",
+       "         [130.5, 126.5],\n",
+       "         [127.5, 146.5],\n",
+       "         [146.5, 135.5],\n",
+       "         [143.5, 147.5],\n",
+       "         [158.5, 169.5],\n",
+       "         [176.5, 148.5],\n",
+       "         [164.5, 193.5],\n",
+       "         [141.5, 135.5],\n",
+       "         [136.5, 135.5],\n",
+       "         [192.5, 132.5]], dtype=float32),\n",
+       "  'scores': array([0.712827  , 0.1177851 , 0.11706207, 0.18848844, 0.21790591,\n",
+       "         0.19401628, 0.16866642, 0.21519151, 0.11110612, 0.10270315,\n",
+       "         0.28088066, 0.10083088, 0.38638934, 0.13841552, 0.13295628,\n",
+       "         0.19572255, 0.17820404, 0.16357067, 0.32619324, 0.31115392,\n",
+       "         0.11235158, 0.12280726, 0.3415416 , 0.22214574, 0.10602367,\n",
+       "         0.11337014, 0.13778451, 0.22696368, 0.21030691, 0.9438978 ,\n",
+       "         0.16854443, 0.28098914, 0.17943151, 0.12319986, 0.10438316,\n",
+       "         0.24757846, 0.10714743, 0.1532308 , 0.40568703, 0.25252163,\n",
+       "         0.18216586], dtype=float32)},\n",
+       " {'idx0': 1,\n",
+       "  'idx1': 0,\n",
+       "  'kpts0': array([[126.5, 121.5],\n",
+       "         [135.5,  88.5],\n",
+       "         [ 69.5,  53.5],\n",
+       "         [114.5,  78.5],\n",
+       "         [ 59.5,  28.5]], dtype=float32),\n",
+       "  'kpts1': array([[186.5, 206.5],\n",
+       "         [215.5, 149.5],\n",
+       "         [120.5,  94.5],\n",
+       "         [187.5, 135.5],\n",
+       "         [121.5,  81.5]], dtype=float32),\n",
+       "  'scores': array([0.2919281 , 0.11667754, 0.12168849, 0.34712577, 0.1001681 ],\n",
+       "        dtype=float32)},\n",
+       " {'idx0': 1,\n",
+       "  'idx1': 1,\n",
+       "  'kpts0': array([[126.5, 121.5],\n",
+       "         [100.5, 145.5],\n",
+       "         [179.5, 203.5],\n",
+       "         [ 93.5, 152.5],\n",
+       "         [136.5, 138.5],\n",
+       "         [ 92.5, 168.5],\n",
+       "         [ 97.5, 135.5],\n",
+       "         [205.5, 134.5],\n",
+       "         [110.5, 173.5],\n",
+       "         [ 47.5, 127.5],\n",
+       "         [ 83.5, 136.5],\n",
+       "         [109.5, 163.5],\n",
+       "         [213.5, 126.5],\n",
+       "         [ 63.5, 162.5],\n",
+       "         [169.5, 120.5],\n",
+       "         [147.5,  96.5],\n",
+       "         [141.5, 167.5],\n",
+       "         [ 66.5, 128.5],\n",
+       "         [215.5, 141.5],\n",
+       "         [128.5,  69.5],\n",
+       "         [133.5, 174.5],\n",
+       "         [ 32.5, 156.5],\n",
+       "         [144.5, 185.5],\n",
+       "         [ 89.5, 100.5],\n",
+       "         [140.5, 158.5],\n",
+       "         [ 39.5, 136.5],\n",
+       "         [ 12.5, 211.5],\n",
+       "         [ 14.5, 152.5],\n",
+       "         [107.5, 149.5],\n",
+       "         [157.5, 123.5],\n",
+       "         [129.5, 109.5],\n",
+       "         [123.5, 181.5],\n",
+       "         [ 12.5, 215.5],\n",
+       "         [109.5, 184.5],\n",
+       "         [ 49.5, 149.5],\n",
+       "         [149.5, 151.5],\n",
+       "         [125.5, 168.5],\n",
+       "         [ 65.5,  32.5],\n",
+       "         [149.5, 147.5],\n",
+       "         [ 87.5, 215.5],\n",
+       "         [120.5, 135.5],\n",
+       "         [131.5,  58.5],\n",
+       "         [ 88.5, 121.5],\n",
+       "         [135.5,  88.5],\n",
+       "         [110.5,  58.5],\n",
+       "         [127.5, 180.5],\n",
+       "         [206.5, 127.5],\n",
+       "         [134.5, 167.5],\n",
+       "         [ 22.5, 172.5],\n",
+       "         [ 86.5, 117.5],\n",
+       "         [149.5, 159.5],\n",
+       "         [160.5, 150.5],\n",
+       "         [151.5, 168.5],\n",
+       "         [146.5, 164.5],\n",
+       "         [113.5, 163.5],\n",
+       "         [ 76.5, 155.5],\n",
+       "         [129.5, 168.5],\n",
+       "         [ 31.5, 152.5],\n",
+       "         [165.5, 197.5],\n",
+       "         [ 55.5, 112.5],\n",
+       "         [ 85.5, 141.5],\n",
+       "         [118.5, 104.5],\n",
+       "         [141.5, 163.5],\n",
+       "         [ 79.5, 192.5],\n",
+       "         [145.5, 113.5],\n",
+       "         [ 36.5, 125.5],\n",
+       "         [149.5, 155.5],\n",
+       "         [130.5, 215.5],\n",
+       "         [ 10.5, 170.5],\n",
+       "         [119.5, 131.5],\n",
+       "         [196.5, 164.5],\n",
+       "         [123.5,  50.5],\n",
+       "         [ 87.5, 104.5],\n",
+       "         [ 14.5,  73.5],\n",
+       "         [119.5, 182.5],\n",
+       "         [109.5, 116.5],\n",
+       "         [150.5, 138.5],\n",
+       "         [200.5, 186.5],\n",
+       "         [114.5, 184.5],\n",
+       "         [141.5, 113.5],\n",
+       "         [163.5, 210.5],\n",
+       "         [ 28.5,  73.5],\n",
+       "         [ 98.5, 214.5],\n",
+       "         [ 86.5, 113.5],\n",
+       "         [ 55.5,  43.5],\n",
+       "         [104.5,  84.5],\n",
+       "         [112.5, 142.5],\n",
+       "         [102.5, 112.5],\n",
+       "         [ 54.5,  18.5],\n",
+       "         [113.5,  74.5],\n",
+       "         [145.5, 160.5],\n",
+       "         [ 94.5,  46.5],\n",
+       "         [150.5, 164.5],\n",
+       "         [ 86.5, 108.5],\n",
+       "         [105.5, 182.5],\n",
+       "         [ 21.5, 127.5],\n",
+       "         [120.5,  68.5],\n",
+       "         [107.5, 153.5],\n",
+       "         [169.5, 106.5],\n",
+       "         [186.5, 148.5],\n",
+       "         [178.5, 121.5],\n",
+       "         [115.5, 128.5],\n",
+       "         [ 88.5, 211.5],\n",
+       "         [152.5, 172.5],\n",
+       "         [ 91.5,  94.5],\n",
+       "         [105.5,  48.5],\n",
+       "         [ 26.5, 139.5],\n",
+       "         [175.5, 151.5],\n",
+       "         [117.5, 164.5],\n",
+       "         [  8.5, 215.5],\n",
+       "         [ 99.5, 197.5],\n",
+       "         [150.5, 142.5],\n",
+       "         [170.5, 134.5],\n",
+       "         [158.5, 104.5],\n",
+       "         [ 99.5, 191.5],\n",
+       "         [ 33.5, 160.5],\n",
+       "         [ 11.5, 207.5],\n",
+       "         [148.5, 195.5],\n",
+       "         [ 67.5, 194.5],\n",
+       "         [178.5, 115.5],\n",
+       "         [132.5, 103.5],\n",
+       "         [135.5,  77.5],\n",
+       "         [211.5, 139.5],\n",
+       "         [161.5, 124.5],\n",
+       "         [ 37.5, 163.5],\n",
+       "         [178.5, 111.5],\n",
+       "         [ 68.5, 175.5],\n",
+       "         [  9.5, 190.5],\n",
+       "         [ 66.5,  99.5],\n",
+       "         [106.5, 159.5],\n",
+       "         [ 55.5,  99.5],\n",
+       "         [153.5, 176.5],\n",
+       "         [187.5, 134.5],\n",
+       "         [130.5, 191.5],\n",
+       "         [ 63.5,  88.5],\n",
+       "         [ 98.5, 106.5],\n",
+       "         [  8.5, 141.5],\n",
+       "         [103.5,  77.5],\n",
+       "         [105.5, 116.5],\n",
+       "         [ 91.5, 164.5],\n",
+       "         [ 61.5,  32.5],\n",
+       "         [207.5, 123.5],\n",
+       "         [ 93.5, 100.5],\n",
+       "         [130.5, 211.5],\n",
+       "         [ 76.5,  37.5],\n",
+       "         [104.5, 145.5],\n",
+       "         [  8.5, 179.5],\n",
+       "         [155.5, 127.5],\n",
+       "         [197.5, 168.5],\n",
+       "         [ 89.5, 125.5],\n",
+       "         [174.5, 120.5],\n",
+       "         [ 60.5, 203.5],\n",
+       "         [132.5, 178.5],\n",
+       "         [ 22.5, 168.5],\n",
+       "         [153.5, 122.5],\n",
+       "         [ 53.5, 151.5],\n",
+       "         [ 88.5, 207.5],\n",
+       "         [101.5, 136.5],\n",
+       "         [ 74.5, 141.5],\n",
+       "         [ 16.5, 179.5],\n",
+       "         [116.5,  66.5],\n",
+       "         [ 70.5,  17.5],\n",
+       "         [169.5, 116.5],\n",
+       "         [177.5, 133.5],\n",
+       "         [109.5, 167.5],\n",
+       "         [105.5,  65.5],\n",
+       "         [ 91.5, 104.5],\n",
+       "         [ 87.5,  96.5],\n",
+       "         [ 92.5,   8.5],\n",
+       "         [196.5, 160.5],\n",
+       "         [120.5,  64.5],\n",
+       "         [125.5,  41.5],\n",
+       "         [ 44.5, 191.5],\n",
+       "         [147.5,  79.5],\n",
+       "         [146.5, 168.5],\n",
+       "         [149.5, 114.5],\n",
+       "         [ 31.5, 148.5],\n",
+       "         [154.5, 131.5],\n",
+       "         [ 85.5, 100.5],\n",
+       "         [139.5, 124.5],\n",
+       "         [161.5, 169.5],\n",
+       "         [  8.5, 183.5],\n",
+       "         [168.5, 112.5],\n",
+       "         [132.5, 129.5],\n",
+       "         [118.5,  40.5],\n",
+       "         [158.5, 100.5],\n",
+       "         [ 24.5,  54.5],\n",
+       "         [ 69.5,  53.5],\n",
+       "         [118.5,  50.5],\n",
+       "         [118.5,  45.5],\n",
+       "         [ 23.5,  50.5],\n",
+       "         [ 16.5, 215.5],\n",
+       "         [ 85.5,  65.5],\n",
+       "         [178.5, 137.5],\n",
+       "         [101.5,  64.5],\n",
+       "         [173.5, 215.5],\n",
+       "         [147.5, 212.5],\n",
+       "         [ 32.5, 215.5],\n",
+       "         [ 52.5, 175.5],\n",
+       "         [156.5, 118.5],\n",
+       "         [170.5, 125.5],\n",
+       "         [ 65.5, 120.5],\n",
+       "         [163.5, 214.5],\n",
+       "         [ 65.5, 124.5],\n",
+       "         [ 55.5, 155.5],\n",
+       "         [124.5,  68.5],\n",
+       "         [111.5,  70.5],\n",
+       "         [116.5,  70.5],\n",
+       "         [102.5, 157.5],\n",
+       "         [ 83.5, 215.5],\n",
+       "         [ 22.5, 113.5],\n",
+       "         [ 92.5,  89.5],\n",
+       "         [182.5, 135.5],\n",
+       "         [137.5, 163.5],\n",
+       "         [108.5, 145.5],\n",
+       "         [114.5,  78.5],\n",
+       "         [178.5, 141.5],\n",
+       "         [182.5, 119.5],\n",
+       "         [100.5, 174.5],\n",
+       "         [104.5, 130.5],\n",
+       "         [139.5, 119.5],\n",
+       "         [ 56.5,  60.5],\n",
+       "         [ 90.5,  45.5],\n",
+       "         [158.5, 109.5],\n",
+       "         [202.5, 127.5],\n",
+       "         [ 50.5, 163.5],\n",
+       "         [105.5, 186.5],\n",
+       "         [136.5, 104.5],\n",
+       "         [ 97.5,  59.5],\n",
+       "         [ 59.5,  28.5],\n",
+       "         [164.5, 112.5],\n",
+       "         [ 37.5, 129.5],\n",
+       "         [177.5, 189.5],\n",
+       "         [ 93.5, 156.5],\n",
+       "         [ 67.5, 104.5],\n",
+       "         [200.5, 163.5],\n",
+       "         [187.5, 130.5],\n",
+       "         [127.5, 144.5],\n",
+       "         [ 41.5, 108.5],\n",
+       "         [ 91.5, 160.5],\n",
+       "         [158.5, 201.5],\n",
+       "         [ 33.5,  58.5],\n",
+       "         [109.5,  65.5],\n",
+       "         [181.5, 145.5],\n",
+       "         [182.5, 141.5],\n",
+       "         [157.5, 113.5],\n",
+       "         [166.5,  92.5],\n",
+       "         [137.5, 113.5]], dtype=float32),\n",
+       "  'kpts1': array([[126.5, 121.5],\n",
+       "         [100.5, 145.5],\n",
+       "         [179.5, 203.5],\n",
+       "         [ 93.5, 152.5],\n",
+       "         [136.5, 138.5],\n",
+       "         [ 92.5, 168.5],\n",
+       "         [ 97.5, 135.5],\n",
+       "         [205.5, 134.5],\n",
+       "         [110.5, 173.5],\n",
+       "         [ 47.5, 127.5],\n",
+       "         [ 83.5, 136.5],\n",
+       "         [109.5, 163.5],\n",
+       "         [213.5, 126.5],\n",
+       "         [ 63.5, 162.5],\n",
+       "         [169.5, 120.5],\n",
+       "         [147.5,  96.5],\n",
+       "         [141.5, 167.5],\n",
+       "         [ 66.5, 128.5],\n",
+       "         [215.5, 141.5],\n",
+       "         [128.5,  69.5],\n",
+       "         [133.5, 174.5],\n",
+       "         [ 32.5, 156.5],\n",
+       "         [144.5, 185.5],\n",
+       "         [ 89.5, 100.5],\n",
+       "         [140.5, 158.5],\n",
+       "         [ 39.5, 136.5],\n",
+       "         [ 12.5, 211.5],\n",
+       "         [ 14.5, 152.5],\n",
+       "         [107.5, 149.5],\n",
+       "         [157.5, 123.5],\n",
+       "         [129.5, 109.5],\n",
+       "         [123.5, 181.5],\n",
+       "         [ 12.5, 215.5],\n",
+       "         [109.5, 184.5],\n",
+       "         [ 49.5, 149.5],\n",
+       "         [149.5, 151.5],\n",
+       "         [125.5, 168.5],\n",
+       "         [ 65.5,  32.5],\n",
+       "         [149.5, 147.5],\n",
+       "         [ 87.5, 215.5],\n",
+       "         [120.5, 135.5],\n",
+       "         [131.5,  58.5],\n",
+       "         [ 88.5, 121.5],\n",
+       "         [135.5,  88.5],\n",
+       "         [110.5,  58.5],\n",
+       "         [127.5, 180.5],\n",
+       "         [206.5, 127.5],\n",
+       "         [134.5, 167.5],\n",
+       "         [ 22.5, 172.5],\n",
+       "         [ 86.5, 117.5],\n",
+       "         [149.5, 159.5],\n",
+       "         [160.5, 150.5],\n",
+       "         [151.5, 168.5],\n",
+       "         [146.5, 164.5],\n",
+       "         [113.5, 163.5],\n",
+       "         [ 76.5, 155.5],\n",
+       "         [129.5, 168.5],\n",
+       "         [ 31.5, 152.5],\n",
+       "         [165.5, 197.5],\n",
+       "         [ 55.5, 112.5],\n",
+       "         [ 85.5, 141.5],\n",
+       "         [118.5, 104.5],\n",
+       "         [141.5, 163.5],\n",
+       "         [ 79.5, 192.5],\n",
+       "         [145.5, 113.5],\n",
+       "         [ 36.5, 125.5],\n",
+       "         [149.5, 155.5],\n",
+       "         [130.5, 215.5],\n",
+       "         [ 10.5, 170.5],\n",
+       "         [119.5, 131.5],\n",
+       "         [196.5, 164.5],\n",
+       "         [123.5,  50.5],\n",
+       "         [ 87.5, 104.5],\n",
+       "         [ 14.5,  73.5],\n",
+       "         [119.5, 182.5],\n",
+       "         [109.5, 116.5],\n",
+       "         [150.5, 138.5],\n",
+       "         [200.5, 186.5],\n",
+       "         [114.5, 184.5],\n",
+       "         [141.5, 113.5],\n",
+       "         [163.5, 210.5],\n",
+       "         [ 28.5,  73.5],\n",
+       "         [ 98.5, 214.5],\n",
+       "         [ 86.5, 113.5],\n",
+       "         [ 55.5,  43.5],\n",
+       "         [104.5,  84.5],\n",
+       "         [112.5, 142.5],\n",
+       "         [102.5, 112.5],\n",
+       "         [ 54.5,  18.5],\n",
+       "         [113.5,  74.5],\n",
+       "         [145.5, 160.5],\n",
+       "         [ 94.5,  46.5],\n",
+       "         [150.5, 164.5],\n",
+       "         [ 86.5, 108.5],\n",
+       "         [105.5, 182.5],\n",
+       "         [ 21.5, 127.5],\n",
+       "         [120.5,  68.5],\n",
+       "         [107.5, 153.5],\n",
+       "         [169.5, 106.5],\n",
+       "         [186.5, 148.5],\n",
+       "         [178.5, 121.5],\n",
+       "         [115.5, 128.5],\n",
+       "         [ 88.5, 211.5],\n",
+       "         [152.5, 172.5],\n",
+       "         [ 91.5,  94.5],\n",
+       "         [105.5,  48.5],\n",
+       "         [ 26.5, 139.5],\n",
+       "         [175.5, 151.5],\n",
+       "         [117.5, 164.5],\n",
+       "         [  8.5, 215.5],\n",
+       "         [ 99.5, 197.5],\n",
+       "         [150.5, 142.5],\n",
+       "         [170.5, 134.5],\n",
+       "         [158.5, 104.5],\n",
+       "         [ 99.5, 191.5],\n",
+       "         [ 33.5, 160.5],\n",
+       "         [ 11.5, 207.5],\n",
+       "         [148.5, 195.5],\n",
+       "         [ 67.5, 194.5],\n",
+       "         [178.5, 115.5],\n",
+       "         [132.5, 103.5],\n",
+       "         [135.5,  77.5],\n",
+       "         [211.5, 139.5],\n",
+       "         [161.5, 124.5],\n",
+       "         [ 37.5, 163.5],\n",
+       "         [178.5, 111.5],\n",
+       "         [ 68.5, 175.5],\n",
+       "         [  9.5, 190.5],\n",
+       "         [ 66.5,  99.5],\n",
+       "         [106.5, 159.5],\n",
+       "         [ 55.5,  99.5],\n",
+       "         [153.5, 176.5],\n",
+       "         [187.5, 134.5],\n",
+       "         [130.5, 191.5],\n",
+       "         [ 63.5,  88.5],\n",
+       "         [ 98.5, 106.5],\n",
+       "         [  8.5, 141.5],\n",
+       "         [103.5,  77.5],\n",
+       "         [105.5, 116.5],\n",
+       "         [ 91.5, 164.5],\n",
+       "         [ 61.5,  32.5],\n",
+       "         [207.5, 123.5],\n",
+       "         [ 93.5, 100.5],\n",
+       "         [130.5, 211.5],\n",
+       "         [ 76.5,  37.5],\n",
+       "         [104.5, 145.5],\n",
+       "         [  8.5, 179.5],\n",
+       "         [155.5, 127.5],\n",
+       "         [197.5, 168.5],\n",
+       "         [ 89.5, 125.5],\n",
+       "         [174.5, 120.5],\n",
+       "         [ 60.5, 203.5],\n",
+       "         [132.5, 178.5],\n",
+       "         [ 22.5, 168.5],\n",
+       "         [153.5, 122.5],\n",
+       "         [ 53.5, 151.5],\n",
+       "         [ 88.5, 207.5],\n",
+       "         [101.5, 136.5],\n",
+       "         [ 74.5, 141.5],\n",
+       "         [ 16.5, 179.5],\n",
+       "         [116.5,  66.5],\n",
+       "         [ 70.5,  17.5],\n",
+       "         [169.5, 116.5],\n",
+       "         [177.5, 133.5],\n",
+       "         [109.5, 167.5],\n",
+       "         [105.5,  65.5],\n",
+       "         [ 91.5, 104.5],\n",
+       "         [ 87.5,  96.5],\n",
+       "         [ 92.5,   8.5],\n",
+       "         [196.5, 160.5],\n",
+       "         [120.5,  64.5],\n",
+       "         [125.5,  41.5],\n",
+       "         [ 44.5, 191.5],\n",
+       "         [147.5,  79.5],\n",
+       "         [146.5, 168.5],\n",
+       "         [149.5, 114.5],\n",
+       "         [ 31.5, 148.5],\n",
+       "         [154.5, 131.5],\n",
+       "         [ 85.5, 100.5],\n",
+       "         [139.5, 124.5],\n",
+       "         [161.5, 169.5],\n",
+       "         [  8.5, 183.5],\n",
+       "         [168.5, 112.5],\n",
+       "         [132.5, 129.5],\n",
+       "         [118.5,  40.5],\n",
+       "         [158.5, 100.5],\n",
+       "         [ 24.5,  54.5],\n",
+       "         [ 69.5,  53.5],\n",
+       "         [118.5,  50.5],\n",
+       "         [118.5,  45.5],\n",
+       "         [ 23.5,  50.5],\n",
+       "         [ 16.5, 215.5],\n",
+       "         [ 85.5,  65.5],\n",
+       "         [178.5, 137.5],\n",
+       "         [101.5,  64.5],\n",
+       "         [173.5, 215.5],\n",
+       "         [147.5, 212.5],\n",
+       "         [ 32.5, 215.5],\n",
+       "         [ 52.5, 175.5],\n",
+       "         [156.5, 118.5],\n",
+       "         [170.5, 125.5],\n",
+       "         [ 65.5, 120.5],\n",
+       "         [163.5, 214.5],\n",
+       "         [ 65.5, 124.5],\n",
+       "         [ 55.5, 155.5],\n",
+       "         [124.5,  68.5],\n",
+       "         [111.5,  70.5],\n",
+       "         [116.5,  70.5],\n",
+       "         [102.5, 157.5],\n",
+       "         [ 83.5, 215.5],\n",
+       "         [ 22.5, 113.5],\n",
+       "         [ 92.5,  89.5],\n",
+       "         [182.5, 135.5],\n",
+       "         [137.5, 163.5],\n",
+       "         [108.5, 145.5],\n",
+       "         [114.5,  78.5],\n",
+       "         [178.5, 141.5],\n",
+       "         [182.5, 119.5],\n",
+       "         [100.5, 174.5],\n",
+       "         [104.5, 130.5],\n",
+       "         [139.5, 119.5],\n",
+       "         [ 56.5,  60.5],\n",
+       "         [ 90.5,  45.5],\n",
+       "         [158.5, 109.5],\n",
+       "         [202.5, 127.5],\n",
+       "         [ 50.5, 163.5],\n",
+       "         [105.5, 186.5],\n",
+       "         [136.5, 104.5],\n",
+       "         [ 97.5,  59.5],\n",
+       "         [ 59.5,  28.5],\n",
+       "         [164.5, 112.5],\n",
+       "         [ 37.5, 129.5],\n",
+       "         [177.5, 189.5],\n",
+       "         [ 93.5, 156.5],\n",
+       "         [ 67.5, 104.5],\n",
+       "         [200.5, 163.5],\n",
+       "         [187.5, 130.5],\n",
+       "         [127.5, 144.5],\n",
+       "         [ 41.5, 108.5],\n",
+       "         [ 91.5, 160.5],\n",
+       "         [158.5, 201.5],\n",
+       "         [ 33.5,  58.5],\n",
+       "         [109.5,  65.5],\n",
+       "         [181.5, 145.5],\n",
+       "         [182.5, 141.5],\n",
+       "         [157.5, 113.5],\n",
+       "         [166.5,  92.5],\n",
+       "         [137.5, 113.5]], dtype=float32),\n",
+       "  'scores': array([0.9919746 , 0.9694379 , 0.574696  , 0.92792034, 0.99444586,\n",
+       "         0.9365329 , 0.9772284 , 0.52163786, 0.93300706, 0.9583165 ,\n",
+       "         0.9479255 , 0.9411898 , 0.5749007 , 0.979793  , 0.9543643 ,\n",
+       "         0.9914612 , 0.9740392 , 0.97322077, 0.67672765, 0.99085426,\n",
+       "         0.961568  , 0.9733169 , 0.9734138 , 0.95623106, 0.9527329 ,\n",
+       "         0.9179667 , 0.7469439 , 0.8981722 , 0.95385265, 0.96531093,\n",
+       "         0.985258  , 0.98132783, 0.7879847 , 0.916755  , 0.965233  ,\n",
+       "         0.9736314 , 0.9873206 , 0.79415464, 0.9578185 , 0.73500514,\n",
+       "         0.9734381 , 0.89556456, 0.9615223 , 0.97978383, 0.9807899 ,\n",
+       "         0.9824511 , 0.42359924, 0.97892815, 0.94846565, 0.96241874,\n",
+       "         0.9719544 , 0.95054173, 0.95969725, 0.9419618 , 0.93423045,\n",
+       "         0.9575657 , 0.98506767, 0.96890944, 0.9258343 , 0.9404307 ,\n",
+       "         0.9247972 , 0.9879879 , 0.96348107, 0.93657446, 0.9800211 ,\n",
+       "         0.82313937, 0.97550344, 0.7079221 , 0.8555419 , 0.9757415 ,\n",
+       "         0.4294521 , 0.8877053 , 0.95759153, 0.522747  , 0.968656  ,\n",
+       "         0.98410225, 0.92358303, 0.514248  , 0.9464724 , 0.9747917 ,\n",
+       "         0.79174894, 0.7635115 , 0.7507471 , 0.98123544, 0.8890429 ,\n",
+       "         0.98960876, 0.8713017 , 0.9782442 , 0.2067602 , 0.9840392 ,\n",
+       "         0.9637419 , 0.8932571 , 0.9526838 , 0.98559904, 0.9224387 ,\n",
+       "         0.88747525, 0.9664006 , 0.94952935, 0.91835594, 0.8573159 ,\n",
+       "         0.86873704, 0.9626927 , 0.81564677, 0.9731332 , 0.98183167,\n",
+       "         0.9163083 , 0.94072735, 0.8964602 , 0.95265144, 0.7304365 ,\n",
+       "         0.8349984 , 0.95584327, 0.96201634, 0.9888747 , 0.89318717,\n",
+       "         0.9803658 , 0.5247783 , 0.92580914, 0.87490237, 0.820106  ,\n",
+       "         0.9824475 , 0.9623328 , 0.6033152 , 0.96155655, 0.97599083,\n",
+       "         0.7065795 , 0.941377  , 0.79564524, 0.9630512 , 0.9680512 ,\n",
+       "         0.952905  , 0.98506176, 0.90353274, 0.9170547 , 0.9711884 ,\n",
+       "         0.9848092 , 0.74384886, 0.98787713, 0.9655352 , 0.95732594,\n",
+       "         0.6992063 , 0.12091305, 0.9708571 , 0.6377522 , 0.89418656,\n",
+       "         0.9582177 , 0.86367977, 0.9731652 , 0.5886011 , 0.97107965,\n",
+       "         0.920881  , 0.90800893, 0.97722113, 0.92692554, 0.97725034,\n",
+       "         0.95086616, 0.7745675 , 0.9789396 , 0.9722456 , 0.90489805,\n",
+       "         0.9763849 , 0.29298002, 0.97427267, 0.92364186, 0.9327283 ,\n",
+       "         0.97873545, 0.97819096, 0.9687787 , 0.32092568, 0.35236293,\n",
+       "         0.95309424, 0.56970906, 0.9485846 , 0.95869136, 0.96675885,\n",
+       "         0.98249155, 0.90591526, 0.96429664, 0.94951767, 0.9760829 ,\n",
+       "         0.9571876 , 0.878182  , 0.9832895 , 0.9940086 , 0.7815527 ,\n",
+       "         0.9915569 , 0.65102017, 0.96175265, 0.93741757, 0.9017949 ,\n",
+       "         0.6695846 , 0.8652964 , 0.96203136, 0.9099566 , 0.9836211 ,\n",
+       "         0.5101979 , 0.89463073, 0.84448296, 0.95627165, 0.95981133,\n",
+       "         0.9510154 , 0.9433948 , 0.75257474, 0.9494473 , 0.9661396 ,\n",
+       "         0.9862188 , 0.9764876 , 0.969395  , 0.98135436, 0.77007693,\n",
+       "         0.70198447, 0.97320914, 0.89723176, 0.9735492 , 0.9079078 ,\n",
+       "         0.9882873 , 0.85255367, 0.74172777, 0.94509983, 0.96456903,\n",
+       "         0.9905289 , 0.95047355, 0.86805224, 0.9891417 , 0.5426675 ,\n",
+       "         0.97375065, 0.92581826, 0.9504616 , 0.9701157 , 0.2439851 ,\n",
+       "         0.9922074 , 0.92438656, 0.67975944, 0.930602  , 0.97819936,\n",
+       "         0.3272524 , 0.8272213 , 0.984134  , 0.8853816 , 0.955402  ,\n",
+       "         0.9323457 , 0.5414893 , 0.9778555 , 0.8711013 , 0.8448546 ,\n",
+       "         0.9916554 , 0.6651964 , 0.95442754], dtype=float32)},\n",
+       " {'idx0': 1,\n",
+       "  'idx1': 2,\n",
+       "  'kpts0': array([[149.5, 147.5]], dtype=float32),\n",
+       "  'kpts1': array([[103.5, 142.5]], dtype=float32),\n",
+       "  'scores': array([0.17108876], dtype=float32)},\n",
+       " {'idx0': 2,\n",
+       "  'idx1': 0,\n",
+       "  'kpts0': array([[107.5, 202.5],\n",
+       "         [173.5, 181.5],\n",
+       "         [103.5, 142.5],\n",
+       "         [164.5, 193.5],\n",
+       "         [100.5, 103.5],\n",
+       "         [106.5, 154.5],\n",
+       "         [158.5, 148.5],\n",
+       "         [198.5,  34.5],\n",
+       "         [168.5, 135.5],\n",
+       "         [158.5, 215.5],\n",
+       "         [130.5, 126.5],\n",
+       "         [192.5, 132.5],\n",
+       "         [146.5, 135.5],\n",
+       "         [ 89.5, 163.5],\n",
+       "         [ 98.5, 212.5],\n",
+       "         [150.5, 179.5],\n",
+       "         [ 72.5, 196.5],\n",
+       "         [136.5, 135.5],\n",
+       "         [157.5, 158.5],\n",
+       "         [146.5, 125.5],\n",
+       "         [137.5, 125.5],\n",
+       "         [187.5, 114.5],\n",
+       "         [138.5, 204.5],\n",
+       "         [117.5, 200.5],\n",
+       "         [127.5, 156.5],\n",
+       "         [181.5, 148.5],\n",
+       "         [127.5, 146.5],\n",
+       "         [141.5, 135.5],\n",
+       "         [158.5, 135.5],\n",
+       "         [161.5, 125.5],\n",
+       "         [143.5, 147.5],\n",
+       "         [154.5, 215.5],\n",
+       "         [159.5, 144.5],\n",
+       "         [158.5, 169.5],\n",
+       "         [162.5, 214.5],\n",
+       "         [207.5, 106.5],\n",
+       "         [154.5, 178.5],\n",
+       "         [176.5, 148.5],\n",
+       "         [157.5, 153.5],\n",
+       "         [123.5, 132.5],\n",
+       "         [147.5, 148.5]], dtype=float32),\n",
+       "  'kpts1': array([[ 82.5, 156.5],\n",
+       "         [168.5, 159.5],\n",
+       "         [ 76.5, 101.5],\n",
+       "         [153.5, 176.5],\n",
+       "         [110.5,  79.5],\n",
+       "         [ 73.5, 105.5],\n",
+       "         [138.5, 116.5],\n",
+       "         [170.5,  28.5],\n",
+       "         [159.5, 106.5],\n",
+       "         [147.5, 202.5],\n",
+       "         [110.5,  87.5],\n",
+       "         [180.5, 118.5],\n",
+       "         [129.5, 106.5],\n",
+       "         [ 67.5, 113.5],\n",
+       "         [ 75.5, 165.5],\n",
+       "         [138.5, 154.5],\n",
+       "         [ 55.5, 141.5],\n",
+       "         [115.5,  94.5],\n",
+       "         [144.5, 126.5],\n",
+       "         [129.5,  91.5],\n",
+       "         [119.5,  90.5],\n",
+       "         [185.5, 104.5],\n",
+       "         [111.5, 172.5],\n",
+       "         [ 95.5, 157.5],\n",
+       "         [105.5, 120.5],\n",
+       "         [167.5, 121.5],\n",
+       "         [102.5, 108.5],\n",
+       "         [121.5,  98.5],\n",
+       "         [137.5, 103.5],\n",
+       "         [146.5,  94.5],\n",
+       "         [123.5, 108.5],\n",
+       "         [144.5, 197.5],\n",
+       "         [143.5, 116.5],\n",
+       "         [155.5, 148.5],\n",
+       "         [151.5, 202.5],\n",
+       "         [197.5, 109.5],\n",
+       "         [144.5, 154.5],\n",
+       "         [165.5, 116.5],\n",
+       "         [145.5, 122.5],\n",
+       "         [103.5,  95.5],\n",
+       "         [133.5, 116.5]], dtype=float32),\n",
+       "  'scores': array([0.712827  , 0.10602367, 0.11706207, 0.1532308 , 0.19401628,\n",
+       "         0.13295628, 0.11110612, 0.16866642, 0.13778451, 0.12280726,\n",
+       "         0.28098914, 0.18216586, 0.12319986, 0.11337014, 0.38638934,\n",
+       "         0.16357067, 0.19572255, 0.25252163, 0.18848844, 0.13841552,\n",
+       "         0.17820404, 0.10083088, 0.9438978 , 0.1177851 , 0.10270315,\n",
+       "         0.11235158, 0.17943151, 0.40568703, 0.28088066, 0.32619324,\n",
+       "         0.10438316, 0.16854443, 0.21790591, 0.24757846, 0.22696368,\n",
+       "         0.3415416 , 0.21519151, 0.10714743, 0.22214574, 0.31115392,\n",
+       "         0.21030691], dtype=float32)},\n",
+       " {'idx0': 2,\n",
+       "  'idx1': 1,\n",
+       "  'kpts0': array([[103.5, 142.5]], dtype=float32),\n",
+       "  'kpts1': array([[149.5, 147.5]], dtype=float32),\n",
+       "  'scores': array([0.17108876], dtype=float32)},\n",
+       " {'idx0': 2,\n",
+       "  'idx1': 2,\n",
+       "  'kpts0': array([[114.5,  88.5],\n",
+       "         [ 60.5, 152.5],\n",
+       "         [ 85.5,  48.5],\n",
+       "         [ 88.5, 121.5],\n",
+       "         [111.5, 165.5],\n",
+       "         [104.5, 116.5],\n",
+       "         [144.5, 109.5],\n",
+       "         [107.5, 202.5],\n",
+       "         [ 44.5,  59.5],\n",
+       "         [ 74.5,  93.5],\n",
+       "         [ 33.5,  41.5],\n",
+       "         [ 88.5, 182.5],\n",
+       "         [143.5, 163.5],\n",
+       "         [ 78.5, 145.5],\n",
+       "         [ 87.5,  88.5],\n",
+       "         [128.5,  92.5],\n",
+       "         [173.5, 181.5],\n",
+       "         [175.5, 159.5],\n",
+       "         [ 87.5, 104.5],\n",
+       "         [ 75.5, 190.5],\n",
+       "         [ 88.5,  28.5],\n",
+       "         [137.5,  27.5],\n",
+       "         [103.5, 142.5],\n",
+       "         [164.5, 193.5],\n",
+       "         [ 18.5,  45.5],\n",
+       "         [ 22.5,  91.5],\n",
+       "         [100.5, 103.5],\n",
+       "         [ 87.5,  38.5],\n",
+       "         [182.5, 179.5],\n",
+       "         [ 87.5, 172.5],\n",
+       "         [106.5, 154.5],\n",
+       "         [209.5,  62.5],\n",
+       "         [ 47.5, 185.5],\n",
+       "         [152.5,   8.5],\n",
+       "         [136.5, 176.5],\n",
+       "         [116.5, 148.5],\n",
+       "         [158.5, 148.5],\n",
+       "         [ 44.5,  87.5],\n",
+       "         [ 32.5,   8.5],\n",
+       "         [ 99.5,  87.5],\n",
+       "         [198.5,  34.5],\n",
+       "         [125.5, 185.5],\n",
+       "         [ 59.5, 213.5],\n",
+       "         [ 74.5, 105.5],\n",
+       "         [166.5, 121.5],\n",
+       "         [131.5, 155.5],\n",
+       "         [168.5, 135.5],\n",
+       "         [ 51.5, 128.5],\n",
+       "         [ 75.5, 167.5],\n",
+       "         [ 47.5,  29.5],\n",
+       "         [204.5, 190.5],\n",
+       "         [ 96.5, 152.5],\n",
+       "         [158.5, 173.5],\n",
+       "         [ 67.5, 100.5],\n",
+       "         [ 96.5, 130.5],\n",
+       "         [ 27.5,  61.5],\n",
+       "         [115.5,  15.5],\n",
+       "         [ 57.5,  89.5],\n",
+       "         [ 53.5,  10.5],\n",
+       "         [ 63.5, 184.5],\n",
+       "         [111.5, 190.5],\n",
+       "         [128.5,  30.5],\n",
+       "         [ 54.5,  74.5],\n",
+       "         [ 79.5, 181.5],\n",
+       "         [ 65.5, 203.5],\n",
+       "         [ 26.5,  30.5],\n",
+       "         [ 67.5, 158.5],\n",
+       "         [ 15.5,  34.5],\n",
+       "         [ 52.5, 143.5],\n",
+       "         [102.5,  16.5],\n",
+       "         [158.5, 215.5],\n",
+       "         [160.5,  14.5],\n",
+       "         [  9.5,  38.5],\n",
+       "         [ 50.5, 173.5],\n",
+       "         [ 17.5,  19.5],\n",
+       "         [ 51.5, 136.5],\n",
+       "         [146.5,  17.5],\n",
+       "         [130.5, 126.5],\n",
+       "         [192.5, 132.5],\n",
+       "         [146.5, 135.5],\n",
+       "         [ 48.5, 157.5],\n",
+       "         [143.5,  35.5],\n",
+       "         [ 92.5,  87.5],\n",
+       "         [ 84.5, 143.5],\n",
+       "         [208.5, 191.5],\n",
+       "         [ 66.5, 142.5],\n",
+       "         [ 32.5,  61.5],\n",
+       "         [ 89.5, 163.5],\n",
+       "         [199.5, 123.5],\n",
+       "         [ 44.5, 165.5],\n",
+       "         [154.5,  18.5],\n",
+       "         [111.5, 177.5],\n",
+       "         [ 47.5,  37.5],\n",
+       "         [ 74.5,  23.5],\n",
+       "         [ 68.5, 130.5],\n",
+       "         [141.5, 125.5],\n",
+       "         [ 91.5, 112.5],\n",
+       "         [107.5, 215.5],\n",
+       "         [ 98.5, 212.5],\n",
+       "         [ 95.5,  68.5],\n",
+       "         [203.5, 123.5],\n",
+       "         [150.5, 179.5],\n",
+       "         [ 72.5, 196.5],\n",
+       "         [136.5, 135.5],\n",
+       "         [ 87.5, 167.5],\n",
+       "         [157.5, 158.5],\n",
+       "         [ 23.5,  61.5],\n",
+       "         [ 21.5, 165.5],\n",
+       "         [ 51.5, 132.5],\n",
+       "         [ 18.5,  61.5],\n",
+       "         [128.5,  12.5],\n",
+       "         [146.5, 125.5],\n",
+       "         [ 18.5, 188.5],\n",
+       "         [ 48.5, 162.5],\n",
+       "         [137.5, 125.5],\n",
+       "         [ 49.5,  51.5],\n",
+       "         [150.5, 125.5],\n",
+       "         [187.5, 114.5],\n",
+       "         [ 50.5, 169.5],\n",
+       "         [138.5, 204.5],\n",
+       "         [122.5,  63.5],\n",
+       "         [207.5, 140.5],\n",
+       "         [117.5, 200.5],\n",
+       "         [ 92.5, 196.5],\n",
+       "         [ 28.5,  77.5],\n",
+       "         [ 91.5, 159.5],\n",
+       "         [127.5, 130.5],\n",
+       "         [116.5, 191.5],\n",
+       "         [154.5, 166.5],\n",
+       "         [127.5, 156.5],\n",
+       "         [ 22.5, 185.5],\n",
+       "         [215.5, 173.5],\n",
+       "         [178.5, 208.5],\n",
+       "         [134.5, 105.5],\n",
+       "         [109.5,  96.5],\n",
+       "         [133.5, 122.5],\n",
+       "         [181.5, 148.5],\n",
+       "         [127.5, 146.5],\n",
+       "         [ 10.5, 214.5],\n",
+       "         [111.5, 186.5],\n",
+       "         [211.5, 143.5],\n",
+       "         [ 64.5, 130.5],\n",
+       "         [162.5, 120.5],\n",
+       "         [178.5, 180.5],\n",
+       "         [131.5,  45.5],\n",
+       "         [ 57.5,  50.5],\n",
+       "         [152.5,  36.5],\n",
+       "         [ 63.5, 103.5],\n",
+       "         [151.5, 121.5],\n",
+       "         [ 38.5,  60.5],\n",
+       "         [ 96.5, 170.5],\n",
+       "         [ 48.5,  89.5],\n",
+       "         [194.5, 178.5],\n",
+       "         [ 19.5, 157.5],\n",
+       "         [150.5,  17.5],\n",
+       "         [149.5,  24.5],\n",
+       "         [111.5, 213.5],\n",
+       "         [ 79.5,  99.5],\n",
+       "         [141.5, 135.5],\n",
+       "         [ 52.5, 203.5],\n",
+       "         [ 62.5, 136.5],\n",
+       "         [173.5,   8.5],\n",
+       "         [196.5, 164.5],\n",
+       "         [  8.5, 197.5],\n",
+       "         [ 48.5, 153.5],\n",
+       "         [ 67.5,  45.5],\n",
+       "         [ 52.5, 124.5],\n",
+       "         [158.5, 135.5],\n",
+       "         [ 60.5, 111.5],\n",
+       "         [ 32.5, 176.5],\n",
+       "         [ 84.5, 182.5],\n",
+       "         [ 60.5, 130.5],\n",
+       "         [197.5, 143.5],\n",
+       "         [105.5,  37.5],\n",
+       "         [ 60.5, 209.5],\n",
+       "         [167.5, 131.5],\n",
+       "         [112.5, 209.5],\n",
+       "         [ 74.5, 110.5],\n",
+       "         [166.5,   8.5],\n",
+       "         [ 71.5, 164.5],\n",
+       "         [ 17.5,  23.5],\n",
+       "         [ 95.5, 156.5],\n",
+       "         [100.5,  99.5],\n",
+       "         [121.5, 187.5],\n",
+       "         [127.5, 151.5],\n",
+       "         [ 52.5, 162.5],\n",
+       "         [ 53.5,  51.5],\n",
+       "         [ 27.5,  22.5],\n",
+       "         [ 85.5, 153.5],\n",
+       "         [161.5, 125.5],\n",
+       "         [143.5, 147.5],\n",
+       "         [117.5, 187.5],\n",
+       "         [144.5, 187.5],\n",
+       "         [164.5, 135.5],\n",
+       "         [ 64.5, 207.5],\n",
+       "         [154.5, 215.5],\n",
+       "         [  8.5, 175.5],\n",
+       "         [203.5, 139.5],\n",
+       "         [ 40.5, 165.5],\n",
+       "         [207.5, 123.5],\n",
+       "         [204.5,  94.5],\n",
+       "         [ 92.5, 181.5],\n",
+       "         [159.5, 144.5],\n",
+       "         [ 13.5,  61.5],\n",
+       "         [156.5, 120.5],\n",
+       "         [ 56.5, 195.5],\n",
+       "         [171.5, 147.5],\n",
+       "         [ 30.5, 155.5],\n",
+       "         [ 29.5, 210.5],\n",
+       "         [145.5,  21.5],\n",
+       "         [ 70.5,  96.5],\n",
+       "         [ 94.5, 215.5],\n",
+       "         [158.5, 169.5],\n",
+       "         [ 57.5, 116.5],\n",
+       "         [ 16.5, 169.5],\n",
+       "         [ 40.5,  87.5],\n",
+       "         [ 39.5, 157.5],\n",
+       "         [162.5, 214.5],\n",
+       "         [167.5, 125.5],\n",
+       "         [210.5, 155.5],\n",
+       "         [ 53.5,  89.5],\n",
+       "         [207.5, 106.5],\n",
+       "         [ 57.5,  30.5],\n",
+       "         [151.5,  13.5],\n",
+       "         [137.5,  12.5],\n",
+       "         [154.5, 178.5],\n",
+       "         [ 69.5, 178.5],\n",
+       "         [176.5, 148.5],\n",
+       "         [ 91.5,  23.5],\n",
+       "         [157.5, 153.5],\n",
+       "         [110.5, 154.5],\n",
+       "         [158.5, 116.5],\n",
+       "         [ 44.5, 215.5],\n",
+       "         [ 55.5, 120.5],\n",
+       "         [ 91.5, 171.5],\n",
+       "         [215.5, 144.5],\n",
+       "         [ 42.5,  19.5],\n",
+       "         [215.5, 106.5],\n",
+       "         [ 38.5,  18.5],\n",
+       "         [123.5,  23.5],\n",
+       "         [ 83.5,  39.5],\n",
+       "         [123.5, 132.5],\n",
+       "         [168.5, 193.5],\n",
+       "         [ 13.5,  38.5],\n",
+       "         [147.5, 148.5],\n",
+       "         [ 21.5, 161.5],\n",
+       "         [ 26.5,  26.5]], dtype=float32),\n",
+       "  'kpts1': array([[114.5,  88.5],\n",
+       "         [ 60.5, 152.5],\n",
+       "         [ 85.5,  48.5],\n",
+       "         [ 88.5, 121.5],\n",
+       "         [111.5, 165.5],\n",
+       "         [104.5, 116.5],\n",
+       "         [144.5, 109.5],\n",
+       "         [107.5, 202.5],\n",
+       "         [ 44.5,  59.5],\n",
+       "         [ 74.5,  93.5],\n",
+       "         [ 33.5,  41.5],\n",
+       "         [ 88.5, 182.5],\n",
+       "         [143.5, 163.5],\n",
+       "         [ 78.5, 145.5],\n",
+       "         [ 87.5,  88.5],\n",
+       "         [128.5,  92.5],\n",
+       "         [173.5, 181.5],\n",
+       "         [175.5, 159.5],\n",
+       "         [ 87.5, 104.5],\n",
+       "         [ 75.5, 190.5],\n",
+       "         [ 88.5,  28.5],\n",
+       "         [137.5,  27.5],\n",
+       "         [103.5, 142.5],\n",
+       "         [164.5, 193.5],\n",
+       "         [ 18.5,  45.5],\n",
+       "         [ 22.5,  91.5],\n",
+       "         [100.5, 103.5],\n",
+       "         [ 87.5,  38.5],\n",
+       "         [182.5, 179.5],\n",
+       "         [ 87.5, 172.5],\n",
+       "         [106.5, 154.5],\n",
+       "         [209.5,  62.5],\n",
+       "         [ 47.5, 185.5],\n",
+       "         [152.5,   8.5],\n",
+       "         [136.5, 176.5],\n",
+       "         [116.5, 148.5],\n",
+       "         [158.5, 148.5],\n",
+       "         [ 44.5,  87.5],\n",
+       "         [ 32.5,   8.5],\n",
+       "         [ 99.5,  87.5],\n",
+       "         [198.5,  34.5],\n",
+       "         [125.5, 185.5],\n",
+       "         [ 59.5, 213.5],\n",
+       "         [ 74.5, 105.5],\n",
+       "         [166.5, 121.5],\n",
+       "         [131.5, 155.5],\n",
+       "         [168.5, 135.5],\n",
+       "         [ 51.5, 128.5],\n",
+       "         [ 75.5, 167.5],\n",
+       "         [ 47.5,  29.5],\n",
+       "         [204.5, 190.5],\n",
+       "         [ 96.5, 152.5],\n",
+       "         [158.5, 173.5],\n",
+       "         [ 67.5, 100.5],\n",
+       "         [ 96.5, 130.5],\n",
+       "         [ 27.5,  61.5],\n",
+       "         [115.5,  15.5],\n",
+       "         [ 57.5,  89.5],\n",
+       "         [ 53.5,  10.5],\n",
+       "         [ 63.5, 184.5],\n",
+       "         [111.5, 190.5],\n",
+       "         [128.5,  30.5],\n",
+       "         [ 54.5,  74.5],\n",
+       "         [ 79.5, 181.5],\n",
+       "         [ 65.5, 203.5],\n",
+       "         [ 26.5,  30.5],\n",
+       "         [ 67.5, 158.5],\n",
+       "         [ 15.5,  34.5],\n",
+       "         [ 52.5, 143.5],\n",
+       "         [102.5,  16.5],\n",
+       "         [158.5, 215.5],\n",
+       "         [160.5,  14.5],\n",
+       "         [  9.5,  38.5],\n",
+       "         [ 50.5, 173.5],\n",
+       "         [ 17.5,  19.5],\n",
+       "         [ 51.5, 136.5],\n",
+       "         [146.5,  17.5],\n",
+       "         [130.5, 126.5],\n",
+       "         [192.5, 132.5],\n",
+       "         [146.5, 135.5],\n",
+       "         [ 48.5, 157.5],\n",
+       "         [143.5,  35.5],\n",
+       "         [ 92.5,  87.5],\n",
+       "         [ 84.5, 143.5],\n",
+       "         [208.5, 191.5],\n",
+       "         [ 66.5, 142.5],\n",
+       "         [ 32.5,  61.5],\n",
+       "         [ 89.5, 163.5],\n",
+       "         [199.5, 123.5],\n",
+       "         [ 44.5, 165.5],\n",
+       "         [154.5,  18.5],\n",
+       "         [111.5, 177.5],\n",
+       "         [ 47.5,  37.5],\n",
+       "         [ 74.5,  23.5],\n",
+       "         [ 68.5, 130.5],\n",
+       "         [141.5, 125.5],\n",
+       "         [ 91.5, 112.5],\n",
+       "         [107.5, 215.5],\n",
+       "         [ 98.5, 212.5],\n",
+       "         [ 95.5,  68.5],\n",
+       "         [203.5, 123.5],\n",
+       "         [150.5, 179.5],\n",
+       "         [ 72.5, 196.5],\n",
+       "         [136.5, 135.5],\n",
+       "         [ 87.5, 167.5],\n",
+       "         [157.5, 158.5],\n",
+       "         [ 23.5,  61.5],\n",
+       "         [ 21.5, 165.5],\n",
+       "         [ 51.5, 132.5],\n",
+       "         [ 18.5,  61.5],\n",
+       "         [128.5,  12.5],\n",
+       "         [146.5, 125.5],\n",
+       "         [ 18.5, 188.5],\n",
+       "         [ 48.5, 162.5],\n",
+       "         [137.5, 125.5],\n",
+       "         [ 49.5,  51.5],\n",
+       "         [150.5, 125.5],\n",
+       "         [187.5, 114.5],\n",
+       "         [ 50.5, 169.5],\n",
+       "         [138.5, 204.5],\n",
+       "         [122.5,  63.5],\n",
+       "         [207.5, 140.5],\n",
+       "         [117.5, 200.5],\n",
+       "         [ 92.5, 196.5],\n",
+       "         [ 28.5,  77.5],\n",
+       "         [ 91.5, 159.5],\n",
+       "         [127.5, 130.5],\n",
+       "         [116.5, 191.5],\n",
+       "         [154.5, 166.5],\n",
+       "         [127.5, 156.5],\n",
+       "         [ 22.5, 185.5],\n",
+       "         [215.5, 173.5],\n",
+       "         [178.5, 208.5],\n",
+       "         [134.5, 105.5],\n",
+       "         [109.5,  96.5],\n",
+       "         [133.5, 122.5],\n",
+       "         [181.5, 148.5],\n",
+       "         [127.5, 146.5],\n",
+       "         [ 10.5, 214.5],\n",
+       "         [111.5, 186.5],\n",
+       "         [211.5, 143.5],\n",
+       "         [ 64.5, 130.5],\n",
+       "         [162.5, 120.5],\n",
+       "         [178.5, 180.5],\n",
+       "         [131.5,  45.5],\n",
+       "         [ 57.5,  50.5],\n",
+       "         [152.5,  36.5],\n",
+       "         [ 63.5, 103.5],\n",
+       "         [151.5, 121.5],\n",
+       "         [ 38.5,  60.5],\n",
+       "         [ 96.5, 170.5],\n",
+       "         [ 48.5,  89.5],\n",
+       "         [194.5, 178.5],\n",
+       "         [ 19.5, 157.5],\n",
+       "         [150.5,  17.5],\n",
+       "         [149.5,  24.5],\n",
+       "         [111.5, 213.5],\n",
+       "         [ 79.5,  99.5],\n",
+       "         [141.5, 135.5],\n",
+       "         [ 52.5, 203.5],\n",
+       "         [ 62.5, 136.5],\n",
+       "         [173.5,   8.5],\n",
+       "         [196.5, 164.5],\n",
+       "         [  8.5, 197.5],\n",
+       "         [ 48.5, 153.5],\n",
+       "         [ 67.5,  45.5],\n",
+       "         [ 52.5, 124.5],\n",
+       "         [158.5, 135.5],\n",
+       "         [ 60.5, 111.5],\n",
+       "         [ 32.5, 176.5],\n",
+       "         [ 84.5, 182.5],\n",
+       "         [ 60.5, 130.5],\n",
+       "         [197.5, 143.5],\n",
+       "         [105.5,  37.5],\n",
+       "         [ 60.5, 209.5],\n",
+       "         [167.5, 131.5],\n",
+       "         [112.5, 209.5],\n",
+       "         [ 74.5, 110.5],\n",
+       "         [166.5,   8.5],\n",
+       "         [ 71.5, 164.5],\n",
+       "         [ 17.5,  23.5],\n",
+       "         [ 95.5, 156.5],\n",
+       "         [100.5,  99.5],\n",
+       "         [121.5, 187.5],\n",
+       "         [127.5, 151.5],\n",
+       "         [ 52.5, 162.5],\n",
+       "         [ 53.5,  51.5],\n",
+       "         [ 27.5,  22.5],\n",
+       "         [ 85.5, 153.5],\n",
+       "         [161.5, 125.5],\n",
+       "         [143.5, 147.5],\n",
+       "         [117.5, 187.5],\n",
+       "         [144.5, 187.5],\n",
+       "         [164.5, 135.5],\n",
+       "         [ 64.5, 207.5],\n",
+       "         [154.5, 215.5],\n",
+       "         [  8.5, 175.5],\n",
+       "         [203.5, 139.5],\n",
+       "         [ 40.5, 165.5],\n",
+       "         [207.5, 123.5],\n",
+       "         [204.5,  94.5],\n",
+       "         [ 92.5, 181.5],\n",
+       "         [159.5, 144.5],\n",
+       "         [ 13.5,  61.5],\n",
+       "         [156.5, 120.5],\n",
+       "         [ 56.5, 195.5],\n",
+       "         [171.5, 147.5],\n",
+       "         [ 30.5, 155.5],\n",
+       "         [ 29.5, 210.5],\n",
+       "         [145.5,  21.5],\n",
+       "         [ 70.5,  96.5],\n",
+       "         [ 94.5, 215.5],\n",
+       "         [158.5, 169.5],\n",
+       "         [ 57.5, 116.5],\n",
+       "         [ 16.5, 169.5],\n",
+       "         [ 40.5,  87.5],\n",
+       "         [ 39.5, 157.5],\n",
+       "         [162.5, 214.5],\n",
+       "         [167.5, 125.5],\n",
+       "         [210.5, 155.5],\n",
+       "         [ 53.5,  89.5],\n",
+       "         [207.5, 106.5],\n",
+       "         [ 57.5,  30.5],\n",
+       "         [151.5,  13.5],\n",
+       "         [137.5,  12.5],\n",
+       "         [154.5, 178.5],\n",
+       "         [ 69.5, 178.5],\n",
+       "         [176.5, 148.5],\n",
+       "         [ 91.5,  23.5],\n",
+       "         [157.5, 153.5],\n",
+       "         [110.5, 154.5],\n",
+       "         [158.5, 116.5],\n",
+       "         [ 44.5, 215.5],\n",
+       "         [ 55.5, 120.5],\n",
+       "         [ 91.5, 171.5],\n",
+       "         [215.5, 144.5],\n",
+       "         [ 42.5,  19.5],\n",
+       "         [215.5, 106.5],\n",
+       "         [ 38.5,  18.5],\n",
+       "         [123.5,  23.5],\n",
+       "         [ 83.5,  39.5],\n",
+       "         [123.5, 132.5],\n",
+       "         [168.5, 193.5],\n",
+       "         [ 13.5,  38.5],\n",
+       "         [147.5, 148.5],\n",
+       "         [ 21.5, 161.5],\n",
+       "         [ 26.5,  26.5]], dtype=float32),\n",
+       "  'scores': array([0.9692492 , 0.96799946, 0.85848594, 0.9784593 , 0.97139263,\n",
+       "         0.9750043 , 0.93003577, 0.8897391 , 0.69170564, 0.9367635 ,\n",
+       "         0.5030084 , 0.9301398 , 0.9019505 , 0.98709196, 0.8370528 ,\n",
+       "         0.9142083 , 0.5532745 , 0.76951134, 0.9700414 , 0.921504  ,\n",
+       "         0.7813731 , 0.6309166 , 0.9772386 , 0.5016729 , 0.38990054,\n",
+       "         0.5909444 , 0.9921261 , 0.64937717, 0.5525468 , 0.9649442 ,\n",
+       "         0.9798516 , 0.26488397, 0.9275512 , 0.5282266 , 0.8236951 ,\n",
+       "         0.9899011 , 0.92219275, 0.72621614, 0.34363595, 0.87932223,\n",
+       "         0.1684001 , 0.82562965, 0.79986924, 0.76962113, 0.66132236,\n",
+       "         0.9683515 , 0.8268979 , 0.9580816 , 0.9635782 , 0.56462824,\n",
+       "         0.17186657, 0.9832046 , 0.76242036, 0.3741699 , 0.9773501 ,\n",
+       "         0.4970101 , 0.641747  , 0.7401628 , 0.25341222, 0.9434771 ,\n",
+       "         0.87925154, 0.7251568 , 0.61827105, 0.9605896 , 0.9414783 ,\n",
+       "         0.29345068, 0.97174376, 0.22808623, 0.95698375, 0.44695064,\n",
+       "         0.21010092, 0.6564488 , 0.1765379 , 0.9249362 , 0.1362969 ,\n",
+       "         0.94522095, 0.61378723, 0.98331165, 0.6613495 , 0.98126954,\n",
+       "         0.9701685 , 0.73337036, 0.7836295 , 0.988393  , 0.10468163,\n",
+       "         0.9846882 , 0.5272243 , 0.9787335 , 0.46751684, 0.9488417 ,\n",
+       "         0.5691366 , 0.91805965, 0.6978972 , 0.6192585 , 0.9929634 ,\n",
+       "         0.99210083, 0.98268354, 0.72958404, 0.9050731 , 0.77614284,\n",
+       "         0.40797922, 0.87089914, 0.91303015, 0.98542506, 0.9753798 ,\n",
+       "         0.7749549 , 0.43449   , 0.79814714, 0.9266246 , 0.27727252,\n",
+       "         0.6289127 , 0.9904255 , 0.7370634 , 0.9766171 , 0.9854873 ,\n",
+       "         0.637935  , 0.9864301 , 0.78707033, 0.94756943, 0.50719064,\n",
+       "         0.8593736 , 0.5365246 , 0.75009143, 0.90249413, 0.69463605,\n",
+       "         0.98074347, 0.98220485, 0.83260775, 0.77177477, 0.91828704,\n",
+       "         0.7995596 , 0.19959462, 0.22037254, 0.99033076, 0.98846847,\n",
+       "         0.97956187, 0.7428527 , 0.9880672 , 0.7038766 , 0.8937345 ,\n",
+       "         0.46516427, 0.9858171 , 0.44923756, 0.57239485, 0.6283408 ,\n",
+       "         0.5619549 , 0.64059186, 0.1273746 , 0.91334397, 0.68467677,\n",
+       "         0.96290326, 0.7380757 , 0.4398199 , 0.44457135, 0.49392143,\n",
+       "         0.5843304 , 0.75672644, 0.9265747 , 0.9789698 , 0.8723042 ,\n",
+       "         0.9829355 , 0.4823585 , 0.41307458, 0.595597  , 0.9503915 ,\n",
+       "         0.78737134, 0.948055  , 0.9328258 , 0.34003016, 0.8990606 ,\n",
+       "         0.92338955, 0.976086  , 0.56482345, 0.64774305, 0.9201118 ,\n",
+       "         0.6090269 , 0.7403004 , 0.912681  , 0.6629477 , 0.9467177 ,\n",
+       "         0.16010706, 0.9867981 , 0.9899138 , 0.805964  , 0.9344472 ,\n",
+       "         0.97114575, 0.53035474, 0.3958918 , 0.98580223, 0.9053975 ,\n",
+       "         0.9364123 , 0.8671733 , 0.7523461 , 0.8545489 , 0.9498044 ,\n",
+       "         0.14338659, 0.6835568 , 0.51657873, 0.9326862 , 0.41308188,\n",
+       "         0.26225474, 0.9495324 , 0.9312527 , 0.16665639, 0.8205637 ,\n",
+       "         0.94428265, 0.8693838 , 0.563292  , 0.9145673 , 0.5335757 ,\n",
+       "         0.7135802 , 0.87996715, 0.7099017 , 0.954751  , 0.75860435,\n",
+       "         0.7973224 , 0.90652275, 0.19971362, 0.7699583 , 0.3254936 ,\n",
+       "         0.7603075 , 0.6297836 , 0.58932847, 0.48680958, 0.54001546,\n",
+       "         0.87421006, 0.96506065, 0.8352489 , 0.5688558 , 0.90872866,\n",
+       "         0.9786423 , 0.35032672, 0.8134767 , 0.8764911 , 0.964473  ,\n",
+       "         0.3753773 , 0.7260946 , 0.33659092, 0.6154749 , 0.69739383,\n",
+       "         0.8143621 , 0.9774399 , 0.5362112 , 0.21506383, 0.9679617 ,\n",
+       "         0.74414563, 0.40794522], dtype=float32)}]"
+      ]
+     },
+     "execution_count": 9,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "collector = CollectAll()\n",
+    "matcher = MatchLightGlue(features='superpoint', collector=collector)\n",
+    "output = matcher(features_query, features_database)\n",
+    "print(len(output)) # = len(query) x len(database) \n",
+    "output"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "f26b8302",
+   "metadata": {},
+   "source": [
+    "# LoFTR\n",
+    "- Default score is number of significant (confidence > 0.5) correspondences."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "7f8e27d2",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  1.50it/s]\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "array([[784.,   5.,  30.],\n",
+       "       [  7., 784.,   6.],\n",
+       "       [ 27.,   9., 774.]], dtype=float16)"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "dataset.transform = T.Compose([T.Resize([256, 256]), T.Grayscale(), T.ToTensor()])\n",
+    "\n",
+    "matcher = MatchLOFTR()\n",
+    "output = matcher(dataset, dataset)\n",
+    "output"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "7f84b25f",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.11.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/example-wildfusion.ipynb b/examples/example-wildfusion.ipynb
new file mode 100644
index 0000000..c294116
--- /dev/null
+++ b/examples/example-wildfusion.ipynb
@@ -0,0 +1,341 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "388bea78",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas as pd\n",
+    "import numpy as np\n",
+    "import timm\n",
+    "import torchvision.transforms as T\n",
+    "\n",
+    "from wildlife_tools.features import SuperPointExtractor, SiftExtractor, AlikedExtractor, DiskExtractor, DeepFeatures\n",
+    "from wildlife_tools.similarity import CosineSimilarity, MatchLOFTR, MatchLightGlue\n",
+    "from wildlife_tools.data.dataset import ImageDataset\n",
+    "from wildlife_tools.similarity.wildfusion import SimilarityPipeline, WildFusion\n",
+    "from wildlife_tools.similarity.calibration import IsotonicCalibration\n",
+    "\n",
+    "metadata = {'metadata':  pd.read_csv('../tests/TestDataset/metadata.csv'), 'root': '../tests/TestDataset'}\n",
+    "transform = T.Compose([T.Resize([224, 224]), T.ToTensor()])\n",
+    "dataset = ImageDataset(**metadata, transform=transform)\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ed3dbbae-a41c-40ee-8d57-4c5f276e338f",
+   "metadata": {},
+   "source": [
+    "# WildFusion\n",
+    "- Run wildfusion as mean of\n",
+    "    - LightGlue + SuperPoint\n",
+    "    - LightGlue + ALIKED\n",
+    "    - LightGlue + DISK\n",
+    "    - LightGlue + SIFT\n",
+    "    - LOFTR\n",
+    "    - Deep features of MegaDescriptor-L\n",
+    "\n",
+    "Additionally, shortlist is created using MegaDescriptor-L scores. It can be used to significantly speed up the matching pipelines by using only `B` samples from database per query, which are selected based on score in the shortlist."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "9510a38c",
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [],
+   "source": [
+    "pipelines = [\n",
+    "\n",
+    "    SimilarityPipeline(\n",
+    "        matcher = MatchLightGlue(features='superpoint'),\n",
+    "        extractor = SuperPointExtractor(),\n",
+    "        transform = T.Compose([\n",
+    "            T.Resize([512, 512]),\n",
+    "            T.ToTensor()\n",
+    "        ]),\n",
+    "        calibration = IsotonicCalibration()\n",
+    "    ),\n",
+    "\n",
+    "    SimilarityPipeline(\n",
+    "        matcher = MatchLightGlue(features='aliked'),\n",
+    "        extractor = AlikedExtractor(),\n",
+    "        transform = T.Compose([\n",
+    "            T.Resize([512, 512]),\n",
+    "            T.ToTensor()\n",
+    "        ]),\n",
+    "        calibration = IsotonicCalibration()\n",
+    "    ),\n",
+    "\n",
+    "    SimilarityPipeline(\n",
+    "        matcher = MatchLightGlue(features='disk'),\n",
+    "        extractor = DiskExtractor(),\n",
+    "        transform = T.Compose([\n",
+    "            T.Resize([512, 512]),\n",
+    "            T.ToTensor()\n",
+    "        ]),\n",
+    "        calibration = IsotonicCalibration()\n",
+    "    ),\n",
+    "\n",
+    "    SimilarityPipeline(\n",
+    "        matcher = MatchLightGlue(features='sift'),\n",
+    "        extractor = SiftExtractor(),\n",
+    "        transform = T.Compose([\n",
+    "            T.Resize([512, 512]),\n",
+    "            T.ToTensor()\n",
+    "        ]),\n",
+    "        calibration = IsotonicCalibration()\n",
+    "    ),\n",
+    "\n",
+    "    SimilarityPipeline(\n",
+    "        matcher = MatchLOFTR(pretrained='outdoor'),\n",
+    "        extractor = None,\n",
+    "        transform = T.Compose([\n",
+    "            T.Resize([512, 512]),\n",
+    "            T.Grayscale(),\n",
+    "            T.ToTensor(),\n",
+    "        ]),\n",
+    "        calibration = IsotonicCalibration()\n",
+    "    ),\n",
+    "\n",
+    "    SimilarityPipeline(\n",
+    "        matcher = CosineSimilarity(),\n",
+    "        extractor = DeepFeatures(\n",
+    "            model = timm.create_model('hf-hub:BVRA/wildlife-mega-L-384', num_classes=0, pretrained=True)\n",
+    "        ),\n",
+    "        transform = T.Compose([\n",
+    "            T.Resize(size=(384, 384)),\n",
+    "            T.ToTensor(),\n",
+    "            T.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),\n",
+    "        ]),\n",
+    "        calibration = IsotonicCalibration()\n",
+    "    ),\n",
+    "]\n",
+    "\n",
+    "\n",
+    "priority_pipeline =  SimilarityPipeline(\n",
+    "    matcher = CosineSimilarity(),\n",
+    "    extractor = DeepFeatures(\n",
+    "        model = timm.create_model('hf-hub:BVRA/wildlife-mega-L-384', num_classes=0, pretrained=True)\n",
+    "    ),\n",
+    "    transform = T.Compose([\n",
+    "        T.Resize(size=(384, 384)),\n",
+    "        T.ToTensor(),\n",
+    "        T.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),\n",
+    "    ]),\n",
+    ")\n",
+    "\n",
+    "wildfusion = WildFusion(calibrated_pipelines = pipelines, priority_pipeline = priority_pipeline)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "8586ae0a",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  4.06it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 11.64it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  8.39it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  6.11it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 10.44it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 32.05it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  8.16it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.49it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 44.09it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  7.98it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  7.55it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 42.42it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  1.48it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.73s/it]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.69s/it]\n"
+     ]
+    }
+   ],
+   "source": [
+    "wildfusion.fit_calibration(dataset, dataset)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "4d1b72b7",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  8.43it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.78it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 28.07it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.76it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 10.36it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 26.57it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  8.12it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.56it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 42.97it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  5.75it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  7.05it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 43.76it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  1.54it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:15<00:00, 15.08s/it]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.92s/it]\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "array([[0.99877299, 0.28487387, 0.36920329],\n",
+       "       [0.24108243, 0.99892936, 0.11111111],\n",
+       "       [0.36928767, 0.17491576, 0.99962759]])"
+      ]
+     },
+     "execution_count": 4,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "wildfusion(dataset, dataset)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "75060d30",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.36s/it]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.88s/it]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.63it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 10.77it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 42.49it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 11.07it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 10.10it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 40.83it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  7.73it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.46it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 53.22it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  7.16it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  6.30it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 55.76it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  4.01it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.31s/it]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:16<00:00, 16.04s/it]\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "array([[0.99812824,       -inf,       -inf],\n",
+       "       [      -inf, 0.9984538 ,       -inf],\n",
+       "       [      -inf,       -inf, 0.9996745 ]], dtype=float32)"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "wildfusion(dataset, dataset, B=1)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "c8a2a3f6",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:16<00:00, 16.31s/it]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.85s/it]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.41it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 10.89it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 38.57it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.51it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00, 10.73it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 36.97it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  9.59it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  8.15it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 50.77it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  6.71it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:00<00:00,  7.88it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 51.42it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  2.00it/s]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.57s/it]\n",
+      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:14<00:00, 14.61s/it]\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "array([[0.9983724 ,       -inf, 0.36974892],\n",
+       "       [0.29660138, 0.99698895,       -inf],\n",
+       "       [0.36926064,       -inf, 0.9996745 ]], dtype=float32)"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "wildfusion(dataset, dataset, B=2)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "19c996c9",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b106784e",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3 (ipykernel)",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.11.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/examples/example_data_tools.ipynb b/examples/example_data_tools.ipynb
deleted file mode 100644
index c6bda77..0000000
--- a/examples/example_data_tools.ipynb
+++ /dev/null
@@ -1,782 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "id": "eb22569d",
-   "metadata": {},
-   "source": [
-    "# 1. Split\n",
-    "- Split represents subset of dataset.\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "4cabebdd",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from wildlife_tools import realize\n",
-    "import pandas as pd\n",
-    "\n",
-    "metadata = pd.DataFrame([\n",
-    "    [1, 'test',  'A'],\n",
-    "    [2, 'train', 'A'],\n",
-    "    [3, 'test',  'B'],\n",
-    "    [4, 'train', 'B'],\n",
-    "    [5, 'test',  'C'],\n",
-    "    [6, 'train', 'C'],\n",
-    "    ],\n",
-    "    columns=['id', 'split', 'identity']\n",
-    ")"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "0367500b",
-   "metadata": {},
-   "source": [
-    "## 1.1 Split to chunks\n",
-    "- Deterministically splits to equally sized chunks. Usefull for splitting the dataset to paralellize computationsally heavy tasks."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "id": "b8841e9c",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>id</th>\n",
-       "      <th>split</th>\n",
-       "      <th>identity</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>3</td>\n",
-       "      <td>test</td>\n",
-       "      <td>B</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>4</td>\n",
-       "      <td>train</td>\n",
-       "      <td>B</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "   id  split identity\n",
-       "2   3   test        B\n",
-       "3   4  train        B"
-      ]
-     },
-     "execution_count": 2,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "split_config = {\n",
-    "    'method': 'SplitChunk',\n",
-    "    'chunk': 2,\n",
-    "    'chunk_total': 3\n",
-    "}\n",
-    "split = realize(split_config)\n",
-    "split(metadata)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "d5cf0cb3",
-   "metadata": {},
-   "source": [
-    "## 1.2 Split  based on metadata\n",
-    "- Split based on column in metadata (eg. train / test in split column)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "id": "a479be93",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>id</th>\n",
-       "      <th>split</th>\n",
-       "      <th>identity</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>1</td>\n",
-       "      <td>test</td>\n",
-       "      <td>A</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>3</td>\n",
-       "      <td>test</td>\n",
-       "      <td>B</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>5</td>\n",
-       "      <td>test</td>\n",
-       "      <td>C</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "   id split identity\n",
-       "0   1  test        A\n",
-       "2   3  test        B\n",
-       "4   5  test        C"
-      ]
-     },
-     "execution_count": 3,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "split_config = {\n",
-    "    'method': 'SplitMetadata',\n",
-    "    'col': 'split',\n",
-    "    'value': 'test',\n",
-    "}\n",
-    "split = realize(split_config)\n",
-    "split(metadata)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "d90e1686",
-   "metadata": {},
-   "source": [
-    "## 1.3 Split using wildlife-datasets splits"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "id": "6bba52bd",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>id</th>\n",
-       "      <th>split</th>\n",
-       "      <th>identity</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>0</th>\n",
-       "      <td>1</td>\n",
-       "      <td>test</td>\n",
-       "      <td>A</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>3</th>\n",
-       "      <td>4</td>\n",
-       "      <td>train</td>\n",
-       "      <td>B</td>\n",
-       "    </tr>\n",
-       "    <tr>\n",
-       "      <th>4</th>\n",
-       "      <td>5</td>\n",
-       "      <td>test</td>\n",
-       "      <td>C</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "   id  split identity\n",
-       "0   1   test        A\n",
-       "3   4  train        B\n",
-       "4   5   test        C"
-      ]
-     },
-     "execution_count": 4,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "split_config = {\n",
-    "    'method': 'SplitWildlife',\n",
-    "    'split': 'test',\n",
-    "    'splitter': {\n",
-    "        'method': 'closed',\n",
-    "        'seed': 1,\n",
-    "        'ratio_train': 0.7\n",
-    "        }\n",
-    "}\n",
-    "split = realize(split_config)\n",
-    "split(metadata)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "f2f14d12",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "markdown",
-   "id": "12cf0442",
-   "metadata": {},
-   "source": [
-    "## 1.4 Split pipeline\n",
-    "- Multiple splits chained in succession. Usefull for splitting data to both train set and to chunks."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "id": "0bcc05d0",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [
-       "<div>\n",
-       "<style scoped>\n",
-       "    .dataframe tbody tr th:only-of-type {\n",
-       "        vertical-align: middle;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe tbody tr th {\n",
-       "        vertical-align: top;\n",
-       "    }\n",
-       "\n",
-       "    .dataframe thead th {\n",
-       "        text-align: right;\n",
-       "    }\n",
-       "</style>\n",
-       "<table border=\"1\" class=\"dataframe\">\n",
-       "  <thead>\n",
-       "    <tr style=\"text-align: right;\">\n",
-       "      <th></th>\n",
-       "      <th>id</th>\n",
-       "      <th>split</th>\n",
-       "      <th>identity</th>\n",
-       "    </tr>\n",
-       "  </thead>\n",
-       "  <tbody>\n",
-       "    <tr>\n",
-       "      <th>2</th>\n",
-       "      <td>3</td>\n",
-       "      <td>test</td>\n",
-       "      <td>B</td>\n",
-       "    </tr>\n",
-       "  </tbody>\n",
-       "</table>\n",
-       "</div>"
-      ],
-      "text/plain": [
-       "   id split identity\n",
-       "2   3  test        B"
-      ]
-     },
-     "execution_count": 5,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "split_config = {\n",
-    "    'method': 'SplitChain',\n",
-    "    'steps': [\n",
-    "    {\n",
-    "        'method': 'SplitMetadata',\n",
-    "        'col': 'split',\n",
-    "        'value': 'test',\n",
-    "    },{\n",
-    "        'method': 'SplitChunk',\n",
-    "        'chunk': 2,\n",
-    "        'chunk_total': 3\n",
-    "    }\n",
-    "]}\n",
-    "\n",
-    "split = realize(split_config)\n",
-    "split(metadata)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "9abf7df1",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "id": "aa86631c",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "No method SplitPipeline in method store.\n"
-     ]
-    }
-   ],
-   "source": [
-    "# Raise if component is not split\n",
-    "split_config = {\n",
-    "    'method': 'SplitPipeline',\n",
-    "    'steps': [\n",
-    "    {\n",
-    "        'method': 'TransformTimm',\n",
-    "        'input_size': 224,\n",
-    "        'is_training': True,\n",
-    "        'auto_augment': 'rand-m10-n2-mstd1',\n",
-    "    }\n",
-    "]}\n",
-    "\n",
-    "try:\n",
-    "    split = realize(split_config)\n",
-    "    split(metadata)\n",
-    "\n",
-    "except ValueError as e:\n",
-    "    print(e)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "db5d55f3",
-   "metadata": {},
-   "source": [
-    "# 2. Datasets"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 13,
-   "id": "60088254",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "tensor([[[0.2000, 0.2000, 0.2000,  ..., 0.1765, 0.1882, 0.1843],\n",
-       "         [0.2000, 0.2000, 0.2000,  ..., 0.2157, 0.2431, 0.2118],\n",
-       "         [0.2000, 0.2000, 0.2000,  ..., 0.2431, 0.2157, 0.1961],\n",
-       "         ...,\n",
-       "         [0.4078, 0.3922, 0.3804,  ..., 0.2784, 0.2784, 0.2941],\n",
-       "         [0.3961, 0.3843, 0.3804,  ..., 0.2706, 0.2588, 0.2667],\n",
-       "         [0.3961, 0.3843, 0.3843,  ..., 0.2667, 0.2471, 0.2471]],\n",
-       "\n",
-       "        [[0.3333, 0.3333, 0.3333,  ..., 0.2863, 0.2980, 0.2941],\n",
-       "         [0.3333, 0.3333, 0.3333,  ..., 0.3216, 0.3490, 0.3176],\n",
-       "         [0.3333, 0.3333, 0.3333,  ..., 0.3412, 0.3137, 0.2980],\n",
-       "         ...,\n",
-       "         [0.3569, 0.3412, 0.3294,  ..., 0.2275, 0.2275, 0.2431],\n",
-       "         [0.3490, 0.3333, 0.3294,  ..., 0.2196, 0.2078, 0.2196],\n",
-       "         [0.3490, 0.3333, 0.3373,  ..., 0.2157, 0.2078, 0.2157]],\n",
-       "\n",
-       "        [[0.3804, 0.3804, 0.3765,  ..., 0.3333, 0.3490, 0.3412],\n",
-       "         [0.3804, 0.3804, 0.3765,  ..., 0.3922, 0.4235, 0.3922],\n",
-       "         [0.3804, 0.3804, 0.3765,  ..., 0.4235, 0.3843, 0.3608],\n",
-       "         ...,\n",
-       "         [0.3216, 0.3059, 0.2941,  ..., 0.1961, 0.1961, 0.2118],\n",
-       "         [0.3098, 0.2980, 0.2941,  ..., 0.1882, 0.1765, 0.1843],\n",
-       "         [0.3059, 0.2902, 0.2902,  ..., 0.1804, 0.1686, 0.1725]]])"
-      ]
-     },
-     "execution_count": 13,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "config = {\n",
-    "    'method': 'WildlifeDataset',\n",
-    "    'metadata': 'ExampleDataset/metadata.csv',\n",
-    "    'root': 'ExampleDataset',\n",
-    "\n",
-    "    'transform': {\n",
-    "        'method': 'TransformTorchvision',\n",
-    "        'compose': [\n",
-    "            'Resize(224)',\n",
-    "            'ToTensor()'\n",
-    "        ],\n",
-    "    },\n",
-    "\n",
-    "    'split': {\n",
-    "        'method': 'SplitChunk',\n",
-    "        'chunk': 1,\n",
-    "        'chunk_total': 2,\n",
-    "    },\n",
-    "}\n",
-    "dataset = realize(config)\n",
-    "x, y = dataset[0]\n",
-    "x"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "5b74eef6",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "markdown",
-   "id": "346e5e93",
-   "metadata": {},
-   "source": [
-    "## 2.2 Feature dataset\n",
-    "- In memory dataset with features."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "23a69f66",
-   "metadata": {},
-   "source": [
-    "# 3. Transforms"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "297f13d2",
-   "metadata": {},
-   "source": [
-    "## 3.1 TIMM Transforms\n",
-    "- Gives arguments to timm.data.transforms_factory.create_transform."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 15,
-   "id": "855c1976",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "Compose(\n",
-       "    RandomResizedCropAndInterpolation(size=(224, 224), scale=(0.08, 1.0), ratio=(0.75, 1.3333), interpolation=bilinear)\n",
-       "    RandomHorizontalFlip(p=0.5)\n",
-       "    RandAugment(n=2, ops=\n",
-       "\tAugmentOp(name=AutoContrast, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Equalize, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Invert, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Rotate, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Posterize, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Solarize, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=SolarizeAdd, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Color, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Contrast, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Brightness, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=Sharpness, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=ShearX, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=ShearY, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=TranslateXRel, p=0.5, m=10, mstd=1.0)\n",
-       "\tAugmentOp(name=TranslateYRel, p=0.5, m=10, mstd=1.0))\n",
-       "    ToTensor()\n",
-       "    Normalize(mean=tensor([0.4850, 0.4560, 0.4060]), std=tensor([0.2290, 0.2240, 0.2250]))\n",
-       ")"
-      ]
-     },
-     "execution_count": 15,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "config = {\n",
-    "    'method': 'TransformTimm',\n",
-    "    'input_size': 224,\n",
-    "    'is_training': True,\n",
-    "    'auto_augment': 'rand-m10-n2-mstd1',\n",
-    "}\n",
-    "transform = realize(config)\n",
-    "transform"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "ca3b7ef2",
-   "metadata": {},
-   "source": [
-    "## 3.2 Torchvision Transforms\n",
-    "- Build transform pipelines using torchvision.transform Compose."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 16,
-   "id": "761ddc39",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "Compose(\n",
-       "    Resize(size=256, interpolation=bilinear, max_size=None, antialias=warn)\n",
-       "    ToTensor()\n",
-       ")"
-      ]
-     },
-     "execution_count": 16,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "config = {\n",
-    "    'method': 'TransformTorchvision',\n",
-    "    'compose': [\n",
-    "        'Resize(size=256)',\n",
-    "        'ToTensor()',\n",
-    "    ]\n",
-    "}\n",
-    "transform = realize(config)\n",
-    "transform"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "ef84e726",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "markdown",
-   "id": "f8b4c716",
-   "metadata": {},
-   "source": [
-    "# Yaml parser\n",
-    "- Utilize Jinja to parse config.\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 19,
-   "id": "62fa0b2e",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from wildlife_tools.tools import parse_yaml"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 20,
-   "id": "9f4aa3f1",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "{'pipeline1': {'method': 'SplitChunk', 'chunk': 2, 'chunk_total': 3}}"
-      ]
-     },
-     "execution_count": 20,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# No impute\n",
-    "\n",
-    "yaml_string = \"\"\"\n",
-    "pipeline1:\n",
-    "  method: SplitChunk\n",
-    "  chunk: 2\n",
-    "  chunk_total: 3\n",
-    "\"\"\"\n",
-    "\n",
-    "\n",
-    "parse_yaml(yaml_string)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 21,
-   "id": "66d16cd5",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "{'pipeline1': {'method': 'SplitChunk', 'chunk': 2, 'chunk_total': 3},\n",
-       " 'pipeline2': {'method': 'SplitPipeline',\n",
-       "  'steps': [{'method': 'SplitChunk', 'chunk': 2, 'chunk_total': 3}]},\n",
-       " 'pipeline3': {'method': 'SplitPipeline',\n",
-       "  'steps': [{'method': 'SplitPipeline',\n",
-       "    'steps': [{'method': 'SplitChunk', 'chunk': 2, 'chunk_total': 3}]}]}}"
-      ]
-     },
-     "execution_count": 21,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "# Multiple imputes\n",
-    "\n",
-    "yaml_string = \"\"\"\n",
-    "pipeline1:\n",
-    "  method: SplitChunk\n",
-    "  chunk: 2\n",
-    "  chunk_total: 3\n",
-    "\n",
-    "pipeline2:\n",
-    "  method: SplitPipeline\n",
-    "  steps:\n",
-    "  - \"{{pipeline1}}\"\n",
-    "\n",
-    "pipeline3:\n",
-    "  method: SplitPipeline\n",
-    "  steps:\n",
-    "  - \"{{pipeline2}}\"\n",
-    "\n",
-    "\"\"\"\n",
-    "\n",
-    "\n",
-    "parse_yaml(yaml_string)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 22,
-   "id": "f988c798",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Unable to impute variables in all places: {'pipeline3'}\n"
-     ]
-    }
-   ],
-   "source": [
-    "# Error if circular impute:\n",
-    "\n",
-    "yaml_string = \"\"\"\n",
-    "pipeline3:\n",
-    "  method: SplitPipeline\n",
-    "  steps:\n",
-    "  - \"{{pipeline3}}\"\n",
-    "\n",
-    "\"\"\"\n",
-    "\n",
-    "try:\n",
-    "    parse_yaml(yaml_string)\n",
-    "except ValueError as e:\n",
-    "    print(e)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "6538385c",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.10.4"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/examples/example_datasets.ipynb b/examples/example_datasets.ipynb
deleted file mode 100644
index f060a44..0000000
--- a/examples/example_datasets.ipynb
+++ /dev/null
@@ -1,235 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "markdown",
-   "id": "11f67035",
-   "metadata": {},
-   "source": [
-    "# Dataset loading tools"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "91300b40",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import pycocotools.mask as mask_coco\n",
-    "import cv2\n",
-    "import os\n",
-    "import numpy as np\n",
-    "import pandas as pd\n",
-    "from PIL import Image\n",
-    "import json\n",
-    "\n",
-    "from wildlife_tools.data.dataset import WildlifeDataset\n",
-    "from torchvision.transforms import Resize\n"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "93c0fd3f",
-   "metadata": {},
-   "source": [
-    "## 1. Create WildlifeDataset\n",
-    "- Use metadata dataframe"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 18,
-   "id": "f3aae799",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "0\n"
-     ]
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<PIL.Image.Image image mode=RGB size=384x256>"
-      ]
-     },
-     "execution_count": 18,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "metadata = pd.read_csv('ExampleDataset/metadata.csv') # 3 images from SeaTurtleID\n",
-    "dataset_root = 'ExampleDataset'\n",
-    "\n",
-    "dataset = WildlifeDataset(metadata, dataset_root, transform=Resize(256))\n",
-    "img, label = dataset[0]\n",
-    "print(label)\n",
-    "img"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "811f1adc",
-   "metadata": {},
-   "source": [
-    "## 2. Different load regimes\n",
-    "\n",
-    "Full image\n",
-    "- Full image 'full'\n",
-    "- Full image with redacted background 'full_mask'\n",
-    "- Full image with redacted foreground 'full_hide'\n",
-    "\n",
-    "\n",
-    "BBox Cropping\n",
-    "- BBox cropped 'bbox'\n",
-    "- BBox cropped with redacted background 'bbox_mask'\n",
-    "- BBox cropped with redacted foreground 'bbox_hide'\n",
-    "\n",
-    "Other\n",
-    "- Cropping black background if there is one 'crop_black'"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 17,
-   "id": "4f0f0163",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAF8CAYAAADSGE2IAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOz9Wcxt2ZbnB/3GnKvbzdedNk5E3Lhx+6zMW5lVWa4sdyBsTBVyYWODigIsWUbIEgLDA/IDEmDxAA/AAy8IIx4sCwkZsMoUWMKGomxcdjVOk67KysybN/M2caOPOM13vmY3q5tz8DDnavb+vtNE3Lg3zjmx/vfG+fbea63ZjmaNOcYcU1SVCRMmTJgwYcKECRMmBJgvuwETJkyYMGHChAkTJrxImF6QJ0yYMGHChAkTJkwYYXpBnjBhwoQJEyZMmDBhhOkFecKECRMmTJgwYcKEEaYX5AkTJkyYMGHChAkTRphekCdMmDBhwoQJEyZMGGF6QX4FICL/AxH5QxH5Pz3lnlX8+7aI/P4vr3UTJkyYMGHChAkvF6YX5FcD/13gv6Cq/9yX3ZAJE74KeNGNUhH5F0Tkf/vLrHPChJcBXyTvPo3PROT/KSLH1/z+PxORf/lzNH3CLxnTC/JLDhH53wPfBP4dETkfM56I/L6IvP2lNW7ChFcXk1E6YcLLiV8K76rqP6mqZ7/IOib8YjG9IL/kUNX/DvAR8I8B/5svuTkTJrzy+KKN0rgK9VdF5K+JyM9E5F8Skf+hiPxdEfk7InIj3vcvish/IiK/KyJ/RUTm8fe/FOv9XRH5G9eU/xdF5G+LyK2fq+MTJrzk+AUtKL0uIv+uiPxIRP5Xo/J+1vGciPyPReSPReQ/Ar43uudb8dnfEZH/UER+5XN3bsIXjukFecKECRM+A35BRun3gf8K8GeB/wWwUdU/Dfxt4J+P9/xbqvpnVfU3gD8E/tvx938F+Avx9396XKiI/LPA/wj4J1X14RfU1gkTXkr8gnj3TwF/GfiTwF8Wka+NL4rInwH+6/G+f5LA4x3+D8B/X1X/DPAvA/+7L6hNE74AJF92AyZ8oWjZNXqKL6shEyZM+Ez491X1ErgUkXPg346//x7w6/Hz90Xkfw4cA0vg/xV//5vAvy4i/1fg3xqV+Y8D/wDw51X14hfc/gkTvqr466p6DiAiPwC+Drw/uv6fAf5vqrqJ9/w/4t8l8A8D/6aIdPfmv6xGT3g2phfkVws/A/5LACLym8A3vtTWTJjw6uOLMkqr0Wc/+u4Z5PS/Dvwzqvq7IvIvAP85CKtiIvLngL8I/E5csQL4CcGd/F3g//c52zVhwquKXwTvOp7/vcoAZ6r6pz5nvRN+wZhCLF4t/BXghoj8AfAvAX/8JbdnwoRXHT8DfhN+KUbpAfCxiKRAv8FIRL6lqv+xqv4rwAOgc/G+C/xXgf+jiPzaL7BdEya8jPgZvxze/RvAPyMiMxE5AP4pgOjVeUdE/lJsg4jIb/yC2jDhc2BaQX4FoKpvj77++Sfcs4x/f0aId5wwYcLPj78C/PPRKP2P+cUapf/TWMeD+Pcg/v6/FpHvAAL8deB3CfGOqOoPReSfI7hx/ylV/ckvsH0TJrxM+KXwrqr+pyLyfyHw5X3gPxld/ueAf1VE/idACvyf430TXgCIqn7ZbZgwYcKECRMmTJgw4YXBFGIxYcKECRMmTJgwYcIIU4jFhAkTJvwSICJ/Afhf7v38jqr+s19GeyZMmPB8mHj3q4kpxGLChAkTJkyYMGHChBGeuoL8Z/7Sf0tDej5FACOGPl+fCBiJvwuCICKoKIT/o8R/vI/fu/+F3SSCoBLK6l7TZdyAcLEvy+tQd7jiCVmQNNyrAB6LYIxBUVrnwnUR0NAPJDxtJLSBrm2qGGOx1uIVUltwvLwBqtRtTePWbKo1rfOhF7EjVhKKbIZXaFxD6yqccwAYYzDGAIpX349TaIZBwhVUFVEwGLJ8BghV3ZAmM5Iko2kvaZoKY0ASG571inoHCK1zNM5hTDdHitcwc04F5z14EBN6a9DQdwnDEdoVR8KH9gzjHudFFPWKGAk/4jEiGBG892H+IYxjpAmDwavDq4tUJP24EWlKfbimsSIRQTXMmbEGIwaD0LZtaFcgOoyGfnb3az+X4PFh2ns6jP3xoekaiVNVQU2gKXE79C9090VaVcVjwhjE+evpIFJwN79hLH3orhrAIRrphjDXcfixJuFgdsI8O6CqN3hajFgA6rrkt//qv7bDFk+DiEwW74QJXzJU9bl4dtKxk46ddGz3+cXTsc8RYtF1f0Tk8Xf1BAbQMKESB96rxsGMnRP6p7rBUJUwYaPfgEE4dFA/YuxuULrJGgisEyKowaE0vu1aCYBR7cs2JiNNM5yrQnu9B/UYY0hsgjUZs+KY2zdeB+N4ePoBzpe0rsHpMAKd0LCJUDcbnPrA/EZQH8dNA4MZYyKhenzfYd+VgjFCYm0geBPGK0vg9skt8nzG6VnDWj3Ot7R1ExiqqwJCmZF5Qn8UFUFQTBw3sZ0M08DkJLR9ezqq9lHwxTnrytQRwQkhel0NKhLGpBNE3oc6AOcdIh710IW7d32lZ4bwrBEBPMYIqj6ODHiveNqe/jrmFgSHB4QksXjn8c53Mjr+NxCWqgY6i4zaqZfQltD/4f7wm/OCd5HyJApd8RgroTfqwjyYThhDQoIxlo6M0zQntQV1vaFqNngc3iuKQzQKKwNOGiqtmR2cMMsOsWJxTUlVbpkwYcKrjEnHTjp20rEvoo596gtyZLfYFUW1m7mui9pbh14VdR6JE99bHDqybHsLdDAIunu72XImPJeIdCbVMLAd9XQTgUQGDnauU3pC7SaMSKiBsQPRLOdLDg6OKbcbmrahbWuatgr0JYKxlnyWc759wHr9mM1mhfcerw4XWz+2jqqmBoljEGYbjx+YRoTepo9EoIMUw4pQZDnWJrRNQ9O05GnBvFhyMD/Ea4tzDo3WsVFwGghXI7F6EVCPxLHpmJTIFKDD3CBYLIeLEzCW1faCTbWOFrZGQRAZAMX0wjh8955hpSAKKD+2lCVSZDdOOzQzWJbdL2JiC+Pco92dQRB1dNitqKTWIiIYRy9cOqt6oMgRHQ8mKki3wjBQufcSjPXY307gew0rKkYGYhURrEkibbuu5tAek3B0cJPD+R1Uw8rGbHZEmua4ZsPlxQPW2zPKakPZrHG+QQlCZ725xMwT0uR2NHnBmpSDYs6ECRNeTUw6dtKxk459cXXss1+QoxXaj0icDNuPb7CiOvu1S4vRMY50y/XaMehgCSAOCWv5g9UVLWL1UWxIcCIEBu4suUEIoF15XQNd304hWt5xUhObspgd0riS9eaCRXHIrBA21YpmXVO3NapKWVesylVsk+8ntSPezr2CBuvRex+t+0A4XqNFqaM1ARekkxgJQsxIdJGEEauaBlM3GGNIk5Q8zciShMvNI7bVlsY1kZA1jon0DOW9hnKkE2YarbtIeFEQBgKHzBacHLzGbF7QNFsutw0iHTPGPkWGDQakBAuuI3Cv0QodGK17ViUIUYnCZZ+RduhLh7Z27qMuQKAXAuHGYLELweWiwcUlxuBVg2Xr41LLNVZtmAHpVxWkp89OQIU5UdXI1IMbyBgfhX9wVWVZxsnRPSw52+0lVb2maTfBtWdAbYukDfP8mCTJMSZDxWDJmS+WFLMZdV2z2pxxuX5I3ZahXmBTrmhP3yGzKcZY2qYhSaaTRydMeFUx6dhJx0469sXVsU99QQ5WGCgmWD2isROd1TQ4MDoDoGfenVnaHdDxjGo0d7pJFN8xdrTeANTi1YzcJpFUTOAO6csPFnC0I+mjqLwGN4RV1HiaxrFdX3C+uUQEvHM41/YCJMQxac+MHRGE2ByNsUHSuxq8j5asCXFZBulu6duikVLUhRKNWFwk2K4sr2C84lpP07aBuaNl3roWp5FI6XkmuGrURSaFKCNCPyBYohJG0tC5ghyVu2Bzfkpdb2nbphOZ9BZpb732A8B4CsOYBkb1aFgY2Lt/+Ki7V7UTLoPV6SPjdHd1JBYN2vCYD5ZnNJyDpSmdLaojGpNdetORyy7KI+8luIu6ytAgwCQucsQ4MiW6OOMYOt9wsbpPmubkxZJ8dky5FiTO53a1otpckiY5RbHE2BST5KRiWV0+xvmG2fyAYjbH6xFZU9C4GhGlaRvK7Yo6rn5YY7Dt+BTTCRMmvEqYdOykY4eJmnTsi6ZjP0Oat2jREQ2eMXtGi3fscvDBZhgGLZYhAorHR3IK1swwidEopjNPFdP/1lnZhs7M7e7rp7xvZ+e66NukgmtbyotzugV+kRYBjAb3knM+BvuPJj9yaPfd+EA0XjUSsPQbBNQrrY/B3701GX7vuM2YYIX6ES3LiMm9KjgNsT8iiBuG3scAdInjq6oYP1jNEARrV10XgababfII81E1NVV7GoRzJwziGId5C5a664xb39u88V7tn4GwgmCMIUszvHO0bRst0V3b1o/qIs6PKr1FO94E0KkFa3pOBSMkaYqxtn+228DQWcDeh1UQ3ymE+D/fx0WBdz2RERYagmVqiBsfRkLbGNuXiYQ+lNWGqt6y3lxgxLCcL7l5dJuy3HB+0VLXG5q6ZrvdhDg0E91/Pljiq/VZEMrWcri8wY3sgM36gov1I1pfR9oUnFeU6QV5woSvBiYdC5OOhUnHvig69ukryHEJv7dheyLr7bWe77oKgbBDsx//Ln5Fe+b0auh2W6q4YDloV5aLFgd4JLp6/GCt+m46CMQdqaGvOzayi0gKGxUs2gfhhBiuzoXTyQDvA6X6rp0uME/YsRoFAV0dkZmFzuwJgyMa3VnBEotNpBtFieaaongXR8B0bgfBaSCSnuQ7N09H0mOrUAYyVzTsoI3tEmPAe0y0AE3X7kiYzvleWuQmIUkSqqbBeReYKhK2QLQeo+ACXLQIbZJEZgwC2RiwRhA1+OiWGRg0CLBOQHU0YyTGd/koiEzcZDAS4C66fbq5VhN3ZXcjo7v/DfPTxVVF0zRKU+eC0AXBiJJY6a1nEy1ljYJHNM54dHcZCZslwk8adsyKcrm9pKxLRH2IY+sEt2/DqHlo28Gl5L3v6eHctWyzC9q2pfXB/dftcAb6ndoTJkx49TDp2EnHTjqWF1bHPmMFuYsXuToIA2THLeBGX2TEuN3PYU4HJ1FvycZ0IkSC08iAVlwfJC/R0u3Iu2co6SZuVI+Jrisd2ixdzSPLByUGv1vEdOlstLfW+7gdCZsCxJheCBFdIGjHhF2fYloUQpyRJ+xAtiPiRDX2a0ih4iKxG0/ftnGMkIm7mLt5UB3ihrrxiKMZhM5oXjoXTBcDFAgoCAyLYq2hde1g9Q2zjqrv29jFCaXW0vrQNwhEvSkr2FmNgJBaJrrT4neJ7fGYIHh32hjrFUbtDdY8KtSVw1gfBf5wvx+XA/SxaxoFtKPvmxHFmOjm6UUr8VonHOjnz0T/z1g4dEJYANe2uLYNrrVRe4JQddE96XsBJDKs+TRNTdPUcZVEsNbSanBB7vLZhAkTXj1MOnbSsZOOfVF17NM36fWWm8bciyYObAyCJ/Ic2k8YkgwsO2K03tJBdyaJaMGa6ANRRhbizrCC4kMGEY0uCgSRmKdxJGRUCRsQFPqwePF08S+BaLo+dEyuQGDMMMRh92S3ESDmUdkhGCEGpUsnCDTy/ih2SodVgCGZjoLpNgCEcfJ+YESnQ+f7vgpDPssxgw2UD76r0wVhIYE5fGTyPo1KnMPOjVXWdc/cEvLfjFo66q8CEnbp1k2zM49BHkWrsh/PQXjuxz+Fi0MuyK6uscDp2hh5JZbnUR9EgUQrtHMrIWG8nb9q8UqsXLoh6/MlDvCMN8AM/ZI4mV0fh/YrjiAoh53A0enWSa+xGPQhBqub3NDfaPXHjTqt870ger5MqhMmTHhZMenYScdOOvbF1bFPX0GWvb877BQZTIfGqQ6d7HaAQmfpMUoePSovfvcyBNP7WK5012OMjCHm4IupaEJy6I45dBg8BddtJIhEE5hkmDDtmdaP2jMIkK4/XobfO1dM3/u4mcDK0F/BBGu2z+03JDAPu2xj/I0NYxKSrMd6e0Yd6vFRKAhgvOy0AZF+dzOxHCHu2fUxCk26W2XnbwcfGQjtdtFqJJ5hfiUKVu+DFSzG4L0DI/huJ7TvhGOcZNGRENtl5HDf0A698m/UGYyYrbP4Tbd5oYtj89GdE8ofmLafpZ4OI3Xslhuvm86VSKRhHdxRgysr0FnHzPFryLnYWbzqo4CLYxjntVdaGt1KRvs+hn4r3tELLx8LN3vzNWHChFcIk46ddOykY19YHfvcm/SEkHw6JJ+x/aSPh2XU/fhQDFnvLIW9ARUxw9u+dBsOTD/5wwA7ov24w/xD/YOVKtHS7VNmm6FNEi1xIz4wZhy0MJDBig2RK3G/aEcE6ntm72Ze0V7YuJ4KbLTgNF7vrFtP7wqLmx6Gfpjozdl1g/T/xXE0BOHXWdfdzuRubgP9hmtdTsF+gwPDqUdj66yzyoJ1qAx+Dx2sfOl28YZVh8HiGoTz3sCE7wpE4dGV07k0fHdfT5hDm7pPPpYjvb0pIIrRsbsx9KePP4ufgzAZtSeOfrCGw39GhvHo6ShOUK9EdHcuemu7pycTreuYl7NbQeioslsR2ZujoMhie3aUWdfvwRr37N0wYcKEVxKTjp107KRjXywd+4wX5N03a42VG6P9JoHehdI/oSEAe/Rsx8DalzgaSKL7pns+HkVoRPcmeGhNiCWxNA10rh8hpgqBvrzOGokPDb/F6gxuxyUSLJIuvidOWKxP8UOuyTg5Y2HUDbaqB6M9TSsh6Xcn2rRrhe66Y8bxS/2qQHzGdN0Q+jis3h3S/SuhLZ7OOo0kq/EkHS9Ya0JAfoR3ru8fMsyYMTYILgGVuJsXUButvY7Z+4nRvg/SDYky9FiG23ZcGh3TS9d/ut72M94RM93xqqrhHtUotONqQtePflQGARl24XYJxyUKkECDxliCoBuC9jXOseD7ge6szH7ONIqJSMd+j8d2SGXUplBGN9fxd5WeVgPtxZmXvXGeMGHCK4ZJx046dtKxXRndPL8oOvYZIRYdYY3qFh92aNItg8eg/hg34/H9+d2+70YY/DikmO4tfzR5fZXq+4HqdyrCDul7BddGd4fEFCL9OHQD0A1ZmOR+p650tuuo7n7wAnEMuSC7NgS3hjASVt0DsY87sUI718J1T3QxRBcL0rlGYkKfrg1In4Owb09frkZXWBdbFcczumdAe9LfFZ7h3zZaYWOB0btkRgJYUVRin7wORDgScqFxYV57ARfHQLT73DFKJIN+CkcT1DPc2GoNSeuBoCiisBqY08ck62YYd5FgPY/6rIBR7VcYjBkJ8GjBK250QCd9+eNx6p7rSh4L4d71M7rfjwRkt4O6O1t+f3YUeqUg4+GI2k7HzDFhwoRXC5OOnXTspGNfWB37nCvIsaORmMLPpmeWzroMg2JGtiqjBof4pvDjMHkqIXC6+z6OBxmISWK8SDfMwRKxPUWYnqDCbtlo/ejAvIOtGB1JEsrb2cioveOG/qR01T6hdXismyji5HtQO7Q5jk8XQyMCYukFVWc5jWmln3zAGsuwb7VjsPBNRUJqGwHVYZeyN6Pxj8/11m+k/OC+GS5o576LnNXtIkWC5de7e6LLR0UH19NO4/tOxP6Fr16I90vH4zsPdMPQ9RHpdi5rz1gSqSbKAPyYsJAwX71FOnKF+U4gRoro5kMguKQCLXRWcbdKcZXy6Ok+NDbcM94s0N3dCdN9VuuFixLTEu0pq5FA1H6QgsA0MMUgT5jwSmPSsZOOnXTsi6pjn57FYmSxdRX0DQG64PhwWzdIowD0nvdjfArDmfFDB4Y4KFWNAfH7DY4RMNGKM3ST2yXsHphzMHB2Y7O6wHGHwfRE09Gy9PUIHZFHC74j4n75X3fuDj/6ocX9bttY64hoe9dFLEcjM3XEZZCBqcbWcj/2g5sARuedRyHVtUFkYNjwYyQaZFg5UNk5HWlse6myc8pOn84H3WGW7u+uZd+NE/0cdYPQxQSNpUxXptIF3tMnZO82nGiM8xqvWvR1ID3j7lqZ0b3TCTFG2F9ViXTVG+T9Mxq9izviinEMVBc31cHv8YyMP3T5OEds3rPuWNj2qmgsUCZMmPCqYdKxk46ddOyLq2OfY5Oe0DkVujd4E62DMMsx/UtcihfpltNlrwwd/So9hfREI3SzcUVoSLQqiMdTdtaP6wsMHBsSS2tvvQyWbRdY3llZ4XnTTXhPUdFFo8R8ifS7LMeWDD3Dd0wardFuUnvhNba+RmMi40B8UDWIF9qeReMIqiMcXil0Wd77U20YAtB3GSiU0AWzd/WNd8mG+LKYNsUQT6EZnu3GVmKcjndDnM4wNfsusL6qHfT9v+ZaL1c6eogMPLiSgrjdF4J0Yx3noWPWnTHuxplumjo3VZizLudjJzjH7NkxsYtCzPQdi0LFd6xFoLPREOyRbhQMsc1Gej4ZenOdYIj98XIl7mrChAmvGiYd2/UhPjnp2G5OJx37perY585iMcTvxLfu3mwcE42O5jJ8FhkGjvEl7YLN40g9vfI4UUOAeh8z1DFdd+/ImpMRY0v3bEefV6y/vqoopMITrs/b2JUZP+3MUhcD002wxjrC1ZDCJLhYVONxjQzjaSKze4Gxe8gQj8wc9VuU/nx5EcIRngwn1HQukYFoGfIAdn0eWWQy2hQwCMnO1RPbuddXRv2/QqwjITKe2bEt1//pBGScT43StSctCSfweBFiaNeOJRm+D9UakRg3FeZBuyTz0K/EdC6+oR9xoHaaFwSdGQuerr5IMn70+77g3B2fUGd4yPeWeCdMx6w7jlsTQijc9H48YcJXA5OOnXTsaIAnHTv6/cvSsU8PscDGv12S8NgQJCY1H7luxMfG2L5rwjCXHcF3ufXC+PjdkdkZiKEzHdGNg9yB/pt2w9YZEqPyunyPfXnCFZfFGP0xmPG6j23sIqCCi4ru1MvdDqJ93Z1F7RXUB8JxI+YOMV6hF14Ug+uFRPw5pJzZpX5c7LOJDNa5G7x0Ft9AAN2Z7/0O1B0xGk7s8T7kIhwfQTm0cRBY3bVwalE/WyNZOawCiCiiV49v3Blz7Z8OAjNa/EOck/TDOtDN1XK6HJuJTREJx0Z20zLkNtfenQUxlZLIznGTEgXnEKsmI2EH3g8SZyw+FI3uNhjvzh4s7jCO41Sgnett1M1roc+4PmHChJcbk46ddOykY19cHfuMGORuEruTX0aDhglB5TE2qLNUOgTG7c5j931Dtb86ijnq67ueoTprLeZIH/Wne76LfYoEocRdvFFA7JX1pBHR4SZ0756xEeQ7g0V11O/Ys8jZKp2bwNC5DnqXhsTAcDOKN6ITLp0EGtgnPDuqoxeZneDS3q3VJeOW3jSKxEeUOHEgVTxeAqN5Bd9ZxQq9fB0GJP47CL9+9Dt3Rd/0uC7QWW86/N4VJ7FEL/Q90VEtwxx1zCP91Vhl/BueMsaQFzkWS9OG8+5b51F1fQOkG9/Y1q4lI6/OMNc6inGT7v5OkHVtHLajdOOqcZ4GA3wQDKHcbi6HkeiY/DpYOtfbhAkTXkVMOnbv2qRjJx37AunYZ7wgM1qmHlwug8dGUG92lrIVkO64TDo71/TPdZZhlwimSyV+ff1d5wdCpaftYRG/a0/HTIjEHI+KH7kLeqtWu+0MQ3nhLkNwP4QCx7LEDzzVldY/5zsqj38690EXhzQOvBfTsdtut3cttvFnIZ792Y9pyJs4sva6fzWcJmQ6hukos2tXX65GARWY1veECtYS+z7kPhwYLzLLSEiMBVdob9x9GqlY+/qjewuwI0HfMW3HXN3JTR06d1u3QSXIvyhd8FHQKFW9JhFLmmQs5kd4J2zLFWW96Y8ijU6VPieOaht+jXFSHX3thO1Ltyago7kRUBucY9JF4XU0Omx0UDVRkHn2FdNQl/arEh19drLC4/vNFBMmTHj1MOnYoS2Tju1qmnTsi6Jjn2uTXvdG3yfT7mtnxEz0DNx3XsY3am9l9HZOR8G9tTLqgFxttDDEziAxRisOZhd2HZb6NboThlimLi5IpW/YTj8GBhjXOHSyFxg6tq76EYp3702QKs65wY0gcQCHmYOR9d0z+EgQ9v90brfxOO+MkfTtC1VIX1WXrmZIIUOwwqFfYejg2niH+J7BBxoIp+NIzNsjJsQg7cQC0dFDL6WHa/FrG/tu2BsL7eZ3LJhCh2RMZ52wlKFsVQ1nQamndU1wF4nHWoM6388/45J1bNrKiHFHwqNjpn7cu3524xNnf0xrvttQ0vdgp96h/igWNLqQxmMFuD2rfsKECa8iJh076dhJx3YD9yLp2Ke+IIvEU066cR93ZKdY7S3FcV1KTJq980QnBMaNDX+7OB3nrsbWCAp+FHwdC+6OKox2S6ghWiohPsnEGKKrFmUX8+TjM/uTu7+Mr6p9gvGdpN0MbQjj1l0fMWTvA7B9Wbt1hHu6vcHed3FSwQ4PVuJA1H17Ru3ohFh/zGRXb5fYffRsn2A+tqPvpgy7TtGBjfp1CO2S39Anq7/ebSdXv0U66pKN9/FqvpsdJexAlb5/Lgp8K9Gi7lY6xqckKT3tqSpt29CfTOSvi6vqyghU04l/EwXMTsxU//CuIBxu6Oa1b0A/hyK7SdWHxwa66eagE8adC263vRMmTHgVMenY3Z5OOnbSsS+Sjn3GCrLrbcbQgFFhnUHSN0Hi3A9B133szP4b+j4l7Vkp40B43+9K7GqLVp52qb4ZG1H9ZsZuR3BvS4yFSsdo/XPST85Ok7rrvakSGc7EgY0MyoiJpCf+q1brUPhgpXZ9CdZ6ZHzoXTfaN15RXG9JgQljPrJYdz+Mvu5Zn3tNYf/nQPQaGU1iPzsBMBZYXRe61DvXNIBIG6OKRocYhf6ajmmkF1ghPUwUEiIYExijd82FHRPd1PVj2csAZBwOFtrXufZ0cDPtKBHCfHrdcQAhI0LQ3lU07NwO1UpPB1eCBdkV9n2DI00phDygsQ392fDTC/KECa84Jh0bOz7p2EnH8qLp2KevIPcFxAoM/STK+B4EHfagxobFyRCJVlDf/fBvdwb2QAGh6b31sjewqmgkWOmWzfvyGFkHxLPFdwXOWBh0rWwjE3fl6Oi+MKB79Diy5gYSDoR7xQUSpdt1DDOOIdJOOHZEJ9149rZP/Oyh3zMbnvWd0GBXHo7dPMTTefat6KttGtovfRt2/0o/T6FsH4lWxMQ6tW8xo/EcW/mxAWEuIp2b2EffJ4CXwdU4Euw9C3lhvBu270O8odvQ0O1qlTgOgbm6uLpR4RG9MmAYyy4faSc0OpeOxB3lnRCjr5u9D+z1v0uF051br7H8OCba8ez+FpYJEya8aph07KRjJx374urY586DLBCP8aO3ZAaLFpDuPMnYk+5PR6AyuA9UJCbIHjYPdGX1RNi5CMZE1LlHOkIR7QevH9RuSK5hnF1Lphu2PUGk4y8dA4/628XUyFDSuJZ+MvtGDe0kPi9IdK111uWuAAq7XYd2duMQ/h3cI1fnSAcLUUdPykCqOhI0oT/7YzMekZ3Ri10arPhurtQTNjSoBjroBAxRkOKjEB9GrCOVsPc6pG7xsSzimIfeElP9SD8WqkP3ZIdJBubrY9Z0UCS9AOr7GuOSNJywhMTz57vZiuPmuzkUgsRBQLtd5/FrJ3y7FowZOvqRhlgyQcQO49iNiu/S5gxrQtcJ2gkTJrx6mHTspGMnHcsLpWOf/oK8R8jdx5337vFA7Dw2xJF0VoMbqJUuimTfzug3q6rpzJKhCf1gGVA/EI9EQuwOHFLt42P2McQp7V7dXfDnCdc6oTHuvo7u0R3C6a0qxmNkB4HXiZCRIBjfs89Egt11I/S/d8M63N/fodqfFONHxe3uYx3XdQ3z7q0y7PRbzDDSncyWSA06jMi4sv2kKt29BulzZEqkk2iUDuPR02QYq06g7KNbxegYx4tc6ZnGVPKCpZ/bETXqjoQI496P247Pcb/2Qbir+v5kpfHceR/HTru+eLqdwyPq4cpcTJgw4dXBpGP3rk06dtKxL46OfcZBIeMjIENHh3aGwGt/TdmDjXl9xd2VjvG6Z4IhonHShS5T+M6A+2iRAGD3WHQwN6ItExwmkd/UxOD1wU8QBMmYAKLAGMqN1ty4nn3LhZF50xXSWUNdDNVg94RmxvgfxMfTgfpMliOBEG5WBsb0Qw3XjK728U7jHZtjQdrF84SG+L6UXfr3ozHp2t8RZAx2Z7DABp4S8N2GjREZdgwvI5GqXbvMINq8353Nfcbt1IKMyh5Z22Psfw/hVcOs9nFW45nVJ4zqSHiNxz/8M8o/2uXn7AVbcI2Nuftaa1UFxMZYsdDxXl3sCeoJEya8Oph0bPw86VgmHduNDH1rvmwd+9QXZBcrMghgYlB7eBMPuyIlEGfPNH2Pht/peER3KGR/QkB6wgsDEZlhXHTfoaGebmPBTvyKdjd1DBPL8T4wS8wPuW/hDmUPv+sOse92cbh/70JnwSjEoLKuUX2L+iJHRDRU05PYXuvkepkosjPZMlBW/9yVTROj4K9eAO30YzR2vYAdChgsv70xG83NQBIyenYsxKQnid5N2F3XbsPCPlPGAeiF7G7T5fpp3S23f2S37LErrGOy/dWEnVZqyNHYk/yuiN9lvNifoW97Akc7Poqld2b9hAkTXllMOnbSsZOOfXF17DNWkAOx+L3JVR3imjo7a/xG3zXQx0E2/XM7XRsxoT7h2rjve52VTiiMfhh9HyZVYx+I7bTD7dpN0JPHQILJvbPaP7Rpf/IHopV+HkbkNz7KMa4WdMKpZ9cdQhk3pCt3mNQdkpK4sxfprcvhst9hwp5/x8L0OkKRjuBHjehrjITq2bmnt3p7wdAJMcIuUu1cLUO9V3Il9u0ZCzGNMXVmiKrrBJXxMY6qm6hhHsb2crgUBZ3XUT1X+7+zoSL2q29JR1cSha52myt0hw92ytCBaffrGHimq4FhTKZ35AkTXllMOnbSseHaqBF9jZOO/bJ17HPFII8Zp7c6Yq4X2SOkfUsAHcXDiOzcs8+wQweub8jYQlbvw1GS4+udjTimhZ6ZB/sxDtnoueFf2fkU/upeH69n9n1LjW5++xo7YtMxWfUPXcck44nuvuvVO/p/xtzZMcVuOV1Z45FgdNeuQByNbDf0PXPszt14SMb96HcT70zKk+a5uzZWDANExkb5iF68wQGDWND+/uHbTof2ytj9u5t/U3bydw50Tj+/vQS+tg/XtOGJ/R3K7lcjJkyY8Opi0rFMOrYra9Kx47JeBB373Fks9q1Lje4dE9vd5cPbmcT9hj9txp5cc/9Xx18ZMQkQ4qiGIx27AHRlINbOWBiIekTcCsLusZkDkcqIKOQzdWNswfc0IMIQit5ZMPttun64uikdxrTrK0Mnd56VjutG/ezK1z0DamzGxxUGATADkY5aGbuy8x0dC8dByENvUF7dQbBH2tdtkhjuG2Kzuue6PJKuG6E9qu/mQGC0w3bUl1GM1b4FCiBeIn0PDN21p2Oy3rp/4orBPoPqlfuv6+30kjxhwlcDk45l+Dzp2EnHxrq+TB371BfkPiNgfIvfr1Ak7GrdCcy+tqGjSR5bDtd0tIvtGSyO7o59S6c3JePVMIH9pOp+MHpYqu/zLO61UzsJ1Fc1EEpHmd0zQ7t11F7Yt5JGrWWcQiUM6G5guY5PvhmNyXhVYXx9340wBPuPQ9xj+0b3xpkbzZnsXNf9f/cl5jV22q41PIwXhJObINrye0zzJFxhHhmlu9kRIF18lOw9P9jSvSWvMfFNT8ujRsbS0DDf17loxgJp5xk6IdaxWqSvPSVDXBXal8hX3JqjPl9X44QJE14dTDp20rGTjn1xdewzXpBDZTbmDByF9/QDoc+oQaOJ9LwW4fVWzbPv6wem47/R5bCEvztRYxbufoslXa1nbA3LYP2IEPJWPi3O6AndeVI/n9X/p12/3p2m8fjQyNz91Zj6Z0doDZs+nmZ97dYTyg0J1a+ww1BO/+xTu/eEfhHb3jFIaGsfB3ZNoZ387a3wHYbc/RvmcaAKuYYWzGjsds3O2C6RYAV3v0VB9TQLd2jPNTTHjgycMGHCK4hJx046dtKxAS+ijn36Jr34ZMirHF09MrIYOu69Mr/7b/jjmzriGNXDeAl9d5L6Jfndlg0Ms88r/czITrv6CRk9JjoQq8DOJoH9QesJUYcfwjiMJdquxb1T4fjBPTzLFbBTb1/S7jNPs37HTHVdTNSoomFOn3D/dW3bDYAfCtXuaWWHkT8vdvng+rL6hYlr6tsdk7HAZcQpnXXerWzEvo2lj4z7Y0YzrE+sO5rmT+mTsJs2aHo5njDhVcekY/d6NOnYa9s26dh46ZesY58rBrmzDDVWphJy3omC65l0THjdhA5MOMSf7JUdKugJMtQxLH0/uQOx7HjTtQHb13Dg1Xie0f1XJMHw3BVaGRHozoky8YFdd9ZTOjNmlL1Giwjee4aTYK55fI8gd8YhDtG1fRs9u5sK5UkVdX9Gwm5cpz6N0ffcIVwVYeO2PL8Fz5X2C7t8+DQOuFKXSJzrro8jBu/vCZ/MTrkyCv4anu/4QnZLGLW0+z2MyE4Ser0SRDZhwoRXFJOOnXTspGO7e14cHft8m/TiIPhRnX70+3UYx5UMFucuoYWfBotQ9wocF30lZqa/43qL8AmNog9o17Hg0J3KdnhoMLufUuxzXO9vuebeK7E67BDRWCg8VZx1lua+DFLdsfr6jzJcv1LWSKoNgph+h2v3hPfay9Du/nG6m1E1z7TWnoYnxRHtX/PQ75dQQsLz663KJ/R5pAj8mL50d0y6OLCOavfLfTJN7Cuw8eh0wmR6OZ4w4SuFScc+o9hJx046drfcX4aOfeoL8s5Y7c2AjiyWHWIfUf21robRfQNj71b0fDEl17SxvxYJ7VpLaY9R9eqOyp0yPotweE5c375n1KOAPIkgdsvescpGQvS5ejIm0nHdO3/32qxD+RrdI+Px+4widrfq53UZjZo0dqnsXvyMdbNHX2OJR6hHx1/6j/tS8rPU2NXxnHQxYcKElxaTjp10bP/wzt9Jx4a2fbk69rlikHcK1xhMPRile3w78q/sdXTcE9WdtNBPagEDWeyXBSJXGU+vGcSnMfNzWabsuhh2yhvde90wB2LWKxP/zLqvuzTmgr25fYanY4fBnlnnM5t1VTBfW87oS7/zdseKu+bRJwjT7trTKu2PO73mts9X5tXrQ7Lycc2jro3vvVLW00a/o6nu3q6E6QV5woRXFZOOnXTs9bdMOvZF0LHPDrHYm3EF3I5ZS08YdIM3oqQnrNgTbKgr3bumsZ2b6JoSrljG42tPun8fzyT7/tmn5dOTpxXTj8/zmDrjBNrXVLJfhu5d3vvcb5KQa4zjJwiI8XGOQxtGwivO09NIUa4bVx0IZjx33Z1PHMLnGbbRfb1806dEbD2XBapXvu0waUfv/YhcX9bzWuj7Cg6exroTJkx4JTDp2P7ZScd2t0w6tvvhy9Sxz1hB7ohFR791X+X6hj61QftX96296xhXr9LryP1wlZ6vrNePfntS/bpX7vV4uiX9tOeeWuwTyx+3DeJRi9cMu+x9Dv8F9unzbD4XB+jo36cIquco6bqy9xnGjNrUn6bzhPpkTELdD9dsiR734EoLnjAR3ZhdYVW9et+Tnt/lkmvqHhoRnrmiCGTvb6fapnjkCRNeVUw69kn1Xv0+6dhnlz3pWL5QHfscm/SGURn4UIZB7AdVx2T29BK7Mp7Lqvx5rneW8f6A6Z5QeV7i/mx47tie50BPYDoiIhlfl/5idy+q8WjISNL7VLY3TbvN1Wt+273+dIF13UUZ/RvnRLsmxfKuI519zthfXbna7P2WPuP6NWU/N67h8J3q9Np7n00bz3CxTZgw4RXBpGM/LyYde10vJh0bqvn5dewzXpADMfRL9fvmh8ZB5+qYPG3ynoUvkuj3LdDuVJ74y167Plu918VOfR6M3T1PakE3zibeN7Z5hHBGetcNQzhks0jgzsJwvFzy8LLiw4uSNkpd39X1zC5fP0ZPmqInzt1I2A9uqOgC1LHACVe8CXWYJw/IbrnPg6cJG3ie/Rnh3mfS55CbckR9z0VeV+Kxfk7amjBhwouMScc+T9mTjr3al2uLmXTsZy77abT19Bfk3gqNMTvX0bhIH7jt+4n95VmKn5WBrhbTiR55Yn7AZ9UxfibIhme0ZX+Cdj7v1a8DU0tnuWpIraKEmC0BUiMc5Sl5knBrabm3SLhXOG7mFxSZZ+My/oOfbPnZ2qKSsKod26bt6/A7lvJO9U/ryO4Tkdl27Ll9ht3/+wTISCPstGc8F2Mr95rt4APNXvERsi8qx/VdqfSa+p9h1O4Jgudj3Ovr+3zPTZgw4SXApGOfq45Jx0469svQsc9YQe4mZWBKkb1l6djp3j3xXA0aDdrnSFr9PNee5/oemfX3P2lH7mcVSmZ8VCPPaUNrZ/MNrpLupHUTf00SxWDIjVIYR5FY/tz33uS3vvc1jhcJua5o1o9xJuP0UU6azJhtLvnHv7lgfut1EOVv/vAhf+OdM2onvdC90pReeI9xTS9072onzEeMayAcGXptWVcRmEn74vcFp6r2DKLCk6m8/3mXOvudz4CMJFdX4/i8+GuTwz+hB4ruMO7TmjZhwoSvOiYdO+nYSce+qDr2GZv0rjZ4nMgZpB+APgbnM7b086QGeZoF+rzPdOemD9dhZEcC/nNZ6RoLu2IJx/ixp+7S1d007oKSiKdAmYtnkcAyE44KS26EgzxjkcCt4xm/+as3uX3TUbcrjJ1xWaecna1pSsvj6oK28dROKDaX+GbFG3bFdw7h07Vy1kCt0Cd03xuzkLD+mnZ3Qjt0GmXPLRV/38nAo0PvnjiGzzm/zz07etW63BMFuwwmPJfQDnpLezHb8wBdV5+vhb+I1aAJEya8+Jh07KRjYdKxL6qOfb6jpkfxO8NKtow+f34F/1ncN5+3k5+F2a/9ufvxs8RB6fNtsdpl1hDnZAUyamY4Do1ymAhHs4wbi4LbJ3MO5im+deRZysHMkqeCd47T84aq3LItz7m8KKlqj2tqmqal9ZY0nbHdNFxetoi3/Mkj5VdPMh7pjB8/XPPRZUODsH8E45MJUXoG7jwt2i9zxHkdP9bfBOwIifDMZxhddgt/ypM7luY+h1655bmge590XHb353MomP37pvjjCRO+Gph07KRjJx17XZFfro595gtyZ5XsjPvVO57auH13z3X3/iJX0cZnmfcEdrWVo/+e0NenMPGThrkvR4Z9x6ONvsEtgscKzESZUzOnZS4wT2GeWhZFTlHk5Kllta2pasdyVmC8YdsaGjLWn6zwruZwnrBel1SVw1ioao8xFpWQlMaalNl8RnMp4BtSEb4+U07u5Lw7s3yycTzYVlQOXGzjeB1gGCGuSh66+Kgdjn3GCD1p0J703PD70KY9phzdOiicJ9PXQBOfgQbDUgV01q3uX/x8mFaTJ0z4amHSsTuN7Aq8WseT6u7KmXTsE0boSYM26dhn4ekhFk/4Ho0R+vPVP5PR99k69tQdmx3k6n07loEOH3rD6rrrMnpu7Iq5Lnn4E5qzPxQ7ge7DcgDdpFvgwHoOpGVJQ6qOzBpSm2AlTJB3js16Q5tYUqNonuFnOSJK6zxVuWFRZBwezjE0lFWLU8GqoShmOFez3Vacbyo8wUWzrRyqSr1Z09QbrDG8kRlupynV8RGflC0/Ot1SOYXe2pW+r70gGgm7zmDs3T29tNyZhN1B0tFU9Nz4hOeeZ8CfYLLK+N5ry9Wnfu1+kvHFJ9H+OIt/99NzkP0vU6FNmDDhy8ekYycdO+nY3Z9eJB373HmQO2bV3tbRvbX9pzfky4Z0Fs7OLPLzGCLXYhwvcx1srDJYs56biedu5piL4mpovdA4T92WJNbiMbStJ0ksgiCpITGGertmJimaZGxWDUWxpKyBNmwoaKqK1aYkTS1eoHE1xsMnn55T5CneCM47BHj4YEVihIODA+aZcmDh5Djh7vKIn5xu+eCipPGdXStxQ0M3sPtjqHt/vxjsjOYef8ruz1fvH6TJ8+FJ98bfd05T2mfgJ9bzYvHDhAkTXhRMOvazYNKxk479bIV+fjxXDHJnlPUWC72dGK/r9fN33ffPYAk/rT27368zRXS3ridZQQz8HI5/1J2r1xPG1fqeIsYwIwIXgVyUG0nL64Xh9iynSKDcllTq0VZxviVJhMwqqXiMGLLMkGeGw8Ml2WxG3bSsyobc1ty9cwexhsePV6SJxajBINA6Hl9uWDWOs8s1zilV3VIwQxKDa1sefvqQy22Ns5bjssKmCTdvHHMjX3A0g9ffKPjx0vKHDzecVY7Od7YzSldM+jiW+oTre/f2Re0P4uja1XnQZ9LSzjNPpYVr6n5agd3nPTl11aZ9PiX2oim6CRMm/JIx6dhJx0469oXTsc/Ig/yM13ztUnUwGLw83zg8L/rxemahcfbVXH0wfjZjttsjrMHts/t9N5j7yY3YmdeRa6lLOo6AxXNglTdSzxtLy1GeU1hYbbd459mWDbXzLGcZRylY55DEMJvl5EVBgmLUc3m+omo8t2+ccPfuDbabLaf3H5EVKcXiiEcPtvi6JEuEzaZitVqz3pZ4FVrneLA5Z9s05LMC0ZpES9qN49P1Co/h/ieP+d5bd7h395h5lvP9m3PuHWT8vY8uef+yoe4mPP4RrieVYRiucssVd133+zVj3//efRZ2itxXHGa/yucgyJ00M08QCsNiztNoYXrZnTBhwnNi0rGTjp107HDPC6Zjny+LxVN+UL0+XPz5CxtfeoLr5BrT+YmHbj7rqJanbHIQeVIi82dPyEBPwpC5u/tdSVBuJY5vH1q+c/OAwnq2NdStZ9s4yqomNZ5vvXGL42WBtp7LTU0+y0kTg7ESdstuaw7zlPnxkhu3bnB2ec75+WXYYftwzccPz2mblovzNcczYX12waPzSy63JZdliWQpeWLx3rPEYiXB2YQ0UXxZUjuomormsmCTCY+2jluv3eJkVvBnbqdk2vLRqiG1FrxQtQ0tYJMUFRPdV4rDR3m6ty4iw3h1qyaIjO94ytjuyuTxRpCfZ9HkydbldeZ2aPTYBfTzYFo9nvBFwhghS1KSNAmHHoiQpDkYQ2ITUE/dtri2xZjwolOVFVVVTrT4JWLSsV81HVvSXBasEuXji5Kjmyeks5xv547Vo3M+utiCCqLhRD4SC8aCWEyWYdJ8dKz1pGM/X93PxnNnsRi+DBi7S56Fpw3uVeEwtiivqWPMoGODpLOKnrPuJ6X4GDPwOP5/9/erz3anHUl/ZIxiRMlEuZd6vn9zzjduH3Iwz9g2JeW6paxKqm1JbuHo6IBvvnWHJDE8frylICcrMtRV1E1D00KSZaR5Qqst9+9/guBZ5MrWeZq64ZOHZ5yfryi3WzLjKHLDR6fnXFYteZaROdhst1hr8FLROI81hrde/xretVxcnNM2ngu1nD+u+Ph0RXr/EpsmlLVjUzsKhBvHx1xcXOKrLak1LJcLjg8PwQobHKc1lJLQiNCqQZErO5sHlpVhCaD3A8mVMR4Y9xpWj6dNPdHU/twYlMT+zz+PwJgw4edFmqakSRJcvmKYFTl3bt4gyXJSazGJpaodjQdrLDeOjzi/vGRblmBguZhzfHBA2zR89PGHfPjxfZq2oW0drff4tmXyiPziMenYV1/HGiPcu/0aUlVsTh9S1Y4//OSU+z98l/c/fYgKiISzn2vncW43DRwmZMhABJvlnNy5y+zmXVxaoEmCmgSxWTj+b2deJh378+C5Y5CBK3HYO6fDXDde147hMDm7UkGHwdjxpVzHvtdFMg3lD4vzcmWAd+nhyZM82mg7IiKNjBnt2LgLd2yxiXT3geCZG+UbhfBrd455/TDHJgkNhtN1w8PTS7TecnJgOSgyErE8+PgRJjNsS2V5cAgGNuuKtmmRxODFUDuhrloSHIkVvKtZXW64ePCIy0fnPD5fsSo3bOsKTLBAZ7MZRiQcl3mwYDFfMjs4ppjPECBJMzyKTwrqumajyup8w8GyIDMJHzy6pKobvCrLWY6rt6zWa5x3YISVV6SpuXl8QFE7DuuGwyTBZDmlpJw3nloNTgzeyGgdY+RKGRFACG/b/T0Yy7oz3rtuIO3noLepVXfm8irLaT9nA8938xuprBcIg1D5eVfbptW6CZ8HaZpwuFzw1r3XuHfnLmmeUdcN3jmSxFKWFbNZ1vNs0ypelXmWor5lW9Y4H+h4WzYksuLm8QFvvfEmR8c38aKIWEoPn3z8MaeffoRrW1RDOV+sYpzQY9KxQ9mviI6dzxckxZLGe9776BP+9t//IVVVUlYVrXM0rcM598Tx2cHoNldX3F9fYt9/F0kSJEmRJGV26zUWd19H0gw1BiT8N+nYz49nviCPu9obDzs3xOXw0Z2689w1jdyzQK5l2vGzcs2Q69XJGxW+057O8lXd7cGVvlxTUm8xXzPYImB01FvpLOAQozM3wreXwp9+7Yg7h3OqxrN1jsf3L3j46IzNek2eJKTHJ5Db6EUx4D3iKtbrcwRls60QFcrLhvmioK0qtHXMsgT1jk1V8ejROZuLS6r1BWdnZ6zbhgbI0pTbN0/I05TttmS9rZnND1gc3+TG0QFpari4XLO6vMBaS1M31FUDCHdODrl7a8Ef/OhD0JqElk3VUGrLySLjrbvHbBohTUP+SFyFaT1N3XL+6IzGe8QaFvOCNxYFjVMuWw95gaYFpVhKLE4NuudO6RjOKP21MeNehfYT2jPuWCGMygzzOZ7lgR72CaNTE7vV6l5Wop+TEad3jgnPQJokfP2Ne/zKN9/m9o0jBNhWLdZa1gqVV9TxuXm2bTzry80Oz/7qN95kc+uYx+sNTsA1jtNHD7k4P58MvC8Qk459tXTsaluTpDMuzjfc/+n7PL645GK1/kJ5RlVpmxqauv+tOnvE5sN3SIoCk+WY2ZLFrbukhzdQCXmaJx372fB8K8gR+2/1g823y67DDeNWPbf5+4w2XLU4r7kLs2d4K90zw0R1hmp3605qlQi/P7F9iT7a57tHXoYYK2VmlG/NLX/y3hF3bx1Qr9acrypOL9a0TYk6TzGbk+dpVHaKmWf4qmRpDTePFmzblm3pKdIMFBwSmDY1HCxz8jRhu15zdnZK+eknPHp0yeOyomwb1FjyJKHIM9brLStKXrv7Ovdee52jZUGWCuWm5v6jC85WK147PCBtGi43G3LgtVvHoMoPfv8nPFptEVVSazieZWR5jrEJq6qlbC1OPY0TfCtY4xCThHCLtmJ1ueI4mXMjS7n/8AxflqRZwmEx5/BgzikZDxplaxNckgVXE9rz4jDwimAiM+3OumGXYYe5HKmQKzk8d4++3KUmhR1akUh3u/S8azUPv6nu0sO1gv9qjRMmXEGWZbz52mt87xtf5603X8M1jovLy18Oz+YZ9y8NW5uQZgkHRwW/+vod3vn0Ee9+8AHrzfrLHp5XDpOOHZf4cunYS0punNzEYXj3k/t89OmnNG372Qb/50HMuVz3fClsP3qPo7uvM7/zOubwGD/p2M+Ez/SC3I1od/5396/smQ07TpcrnR5+fxa6W2QvwFyu3HW95TkeHj86MjHaq324jo+ldBM+3mmZ9Hd35OHj95CrcHzevEiwghZG+OZC+MbRjIO84PxiS71eszq/wDnFi5BkFpzHVRVWPUfHt1gu5xTpAXlqqauS5nzNMgWvwmXdcOco4WCWkavBNS1ttaG9PGX94BNOz075ZFWxapUWQ5HlnBwdcH65Zn5wxK9893u8/vpdrPc0dUlZbvj04UO2VY31LW/dnOHLmqPCcufGgsVyzg9++B55W3NsPKu6oVVDkiZUbc3pxw+pmgYxhiRJQSERASOkaQZAahNu3TzhtaM55w8fsX18SmENN4s5tw8SFgc5j95/SHN6SjZfUt96DZ/Pwhzt+BpHqxxXEoSHuCiRTtBKTxUCcSPDWLk8iU2uugqv0tRYGIx/3/1t3/K9yuR77eh5ah/Ta/NXGUeHh/xDf/bP8N23vobFU1ZbPn746Mvj2cOMxcEB59uGy+NjjIHVesv+sbkTfh5MOvZl1LGz5SH37t3jvQ8/4sfvvENVDyu7Xx6Upip5+N5PyR98zI3X3iB965vIbMGkY6+55xp8hhdkBdE9VhkfARjZqw+evzoU16UWeUIMf7imuxanjyXbzuxRHXp9xXoZWRij/xj/GhnciA87bOPvvRUczV9BEdXeiu/sp/0yRSA3wluFcCdTUOVyU5IapVHBJwlelVYhFcVYWBzM+RPf+yZvvv0dlkc32G4e8u6P/5hmW2FEyVPBZhkHkpOlwjw11JuKRw8fsjl7yPsffsx7j9a8d1mx8qDW0rQeX1XckAP+xHe+xWv33iTNC2i2NK7FNQ3V6pzHp49IrOGN4znfuLskMYaPPn1IW66wc/i1b93lpBB+8v59TJ7iBE43NZuyZtu2GJOg6kniiUSVKsZamjTBSEKJhXnB0dzh25rjzHNwWHB864T54REX2wZ1UK632LpBREjvvoVP0zDbka66DX5BEStmlCdSR4xtvQ4bATvruLNU9To66RMEDSTRka5eT6/d911G1h2a0ysxWd31keXbMY52Qma0zDJqz4SvJu7dvcM/+Ju/yTfeuI36F4tn8YJ6OD66gUlWXF5e4J83lnLCUzDp2JdRx/7Kd76Jmozf+f0f8PGnn76Q4UfVdssn7/6UY9dy/O1fg2LGpGO5joV28Fx5kKX/ZyizHzSNn/aMhx3rpH82MkPfs4EVGP027uwwTWAkxqr05eruXzpW27NVJNTTD+7oWjBOZVSE9kw9/GuQ3gbWnmiMhHrCPHhSA29lcCdTDFCVJVaU2jmwltpbymqLFUVFWSxm/OqvfIubN5bgS8r1Jxjd4toaUIoipxCP+hoqR0KKa1ouPn3Eww8/4JPHF/zk0zM+WrdssHiEpm4xYrh5dMTbb7/Nndu3sWJpq0sOjpekNqcuW+5/cMEigdcOCn7ze68zS+Dv/d6P+MFPPwbvuXcy55tv3uStN25TmpSLTx7xwcf3qepAaM456qZFgFZahJANw6snTVOMCN4LtSs4PFpy7/U3qM9TzHzJhc549MkpeSJ8494RaWr59PQx1eoSe7JGimNELOqDAFSJawodPaqAymjFIgpnu+tqUR1yiPb8O2KqQKN7HCLD3/Eqzk6ZV5hK9q5fv0O7p7f+3p6kBkt8v+TpJfkrh+ViwT/ym3+KuycLDnNLapMXlmfTNKU4ucGD99/Dt82XPXQvHyYdG/99eXXsbD7nr/2Hf4ePPvmUFxnqPWcfvIdX4eav/To2yyYdu3f/Pp76gmzHDe+N1oFLdXSpP0l8VFl3uo1n2A/bXe/StXRs1j1v+pvCxO3GHoX7Ie50lYGh+nu0K3GQHOHezvoOjyjQ7e/s3UsjKWTGgkMCA4dvPralu0/Aeyzwegp3Ek8qgm89detQbTmYZajzVOtLpG0x1pDlCXduHzBfpNSt4yA3rB9/TFVVNFVFU1cUWYpNEtzG47ShrTbU5ZrNxQMenF/wowfnfLKuqcUiYqjrFmOEt998nW+99TaHJzc4WCw4O30E2uKqNd9++w6rleHi5JBv37vBt752m+OjBX/0e3/Mex8+5mxdktqEByWYj06xukE55tHZitWmovVhIqqmpW3DWfNGhCxNSJMERKmbOjAXUDY1H3z8EYuv3YP8kG1labYXJL7i9r1DXrsz4+3Xjvng/hE/++QRG9+wSZRWbKDuqBzCDvoYzh93FOxuOtBuHaIjnZ4GVIdYqN2/gXKls5Y1UnVv3XYUNLJwr2HoYHqbK1ZvV/e1qY46Xuo3RexvUpjwVUSaWP7hP/3r3DiY4X3zUvDsBcL69CGr8/Mve/heOkw6Nv74kurY2fKQv/+HP+DT+w+eOMcvEtR71g8+5kb1TZL5rUnHPgNPfUHWSMA7rCCji7GH+5UGHtB+Kb33pvRlac+kXXlGOvdKvK+/ueeiIcVffEikY6gBYgaLuR/8kXUtZmiv2bk2skiiBdMJi/A5hKlrVDZGBGPDme2o50gdN6UiUQW1tM4jRpjNCjyOy8sV80wQCyrKfJaSJpa6rXn4yTv88R//NjNTU8xvIW3G0nqOZ1DXLc5tyfOU89NzHj16xMPzDT+8f8lHq5rWJng11E1DYhPeuHWb73/nW7ReSIzDNmuackOthrIsSdyG73zzLe7dmpOj3Lox55MPHvDRR484X2957CARxy3dcmeecnLjmPNLw/F8TtvAx2dntM7Rti3ea5+mpnUteZ6R2pAgHWPwPozng0ePcG3LN7/5bWxb4ozixHK2Ljncbrh1M+etWwu2qxWPW8dcWs5sEplW8NFKdT5EQJkdpo10FK1Y73UIeEPweLzXgVk1MjME5TCiZe0XZGRkbvZaa0RpuwqDSNM9a6gPfDlmyH2mDxLhCYnYZYceJ3x1cO/OTX79m/c4u9xQviQ8m9ae127f4CcXFxPNfkZMOjb8/rLq2PuP7vMHf/QjnH954vBdVdE8us/RzRsgMunYp+CZL8gK2PjdCxhGTDmqzoyX3aXbf9rtQg2DYccdkDHjgEiMfhoxtCBI9/Yvgtlf7ldBxgFU0lmyoD4woInMKtCfHEX8bPA9YexYG3FSrbUogjES3Y8e1zognN2eRsF1kAgnrsU2LU7Bi8daAypcbh3np6eIOm7OhaQumS0XvHnrmNs3DlmXFQ/uP6R1cNa0fOvrBVmiFInhcCa8d1Zy9uiMt7/7Le4/fsQfvPMp75+ec39d0iioCmXrsEnCyXLJr3zzG2RJhsVz5yjHbTasLi8pxZIIuIXHVxt+9KP3MDZlPjfU60uqcoPBMxflVmH4tduWb3/7mJNvfI2//3cekWYzjg6Fi/Wax5sG7x2dTPDex881rY0CdWTVeZdQNY6qaskRqqZGfc06nXN67jg+Sjk8SviT332Thxdr1tbyLrCVjLp1gWnF4JyjdQ7RyMRGEGOwSYK1CR5wrQtzFBnRq6BWesWvCuo7S1Zi3FtHUeFvn6pobPXG3waGkr6fgfS0v0/2YvY6hXUVums5D5R9zb0Tvgp4+4075JaXjmfv3lqy3Wz48KMX2838omHSsS+3jt2sLoL35SWCqvLwpz/l+OZNTt54g8b5Scc+AU99Qe7cN12Rg7uE4UJ3L7t2gBndF6yRaJF2Zm5s/NhSlVG7RUP9BlATYqp2u6UjK1Sw0YTuk9mb8LuIYo3BGhMFTmhhmloSSXDekyR2sD7Uo37k4tFQZts2pNbgEZzzqLa4yjEzcFQYtC6p6jYmCjf4pmWzqWn0AleV3F3OOcoy5osZ83nG6zcL5rOWx5+uuLk8ptxuuXnjmNwrlorl8ohPT095dLHi/U/u886jMz5+8CmfnJ5yuXW0qrReaZ0nSVJmWcpb9+5ysMhIjOfuyZKFdTyutzTlltNVxUFmcUcHJNbhjVA1DUmacHDrAOMrDjPP7VnGrblyMLfkh8e45ARjzikKS0POvMh4vFlHRRoEbq9UveK17eeqG0MTBXNVlmzaElzLIrMUxrOgZJkKxzfuIL7lxuyUi/UaV9a8KwligcTigQZIVBAxwWJX8K2jbRpIU2yWYgxYKz0deB+sYoMPtBa340ZvUu8uCgnVA5NpH1AVBHbYpB/oIPDlwLjBUo7/GwuIrgjdIfOe7JUhz2NolnSXkL4NT+POCa8iMiO0TfnS8ezd1Yrz777F/fuPfrmprV5yTDr25dWxd44XvPdeuz9NLwXK1ZpPf/Qjbr52l9yaScc+AU9/Qe6WwbvvshsYPTQmBNMr3cp7x6rDmz+ENDDByhweld6iDVakCKj3wb0S68SEgeotVQlPWukYNDyjXkcunFC/EHbQJtaSWIOo0jqH8S1pklBkFmsNibW0TYN3QhvLMdF09t0MtC2JhnHx3mPx3EoNptrSlDVJkqCtY7vZkqUJ6htyhZMbhyyKjOXS8MZrx5wc5pzcyPHecVgopnGcHBVIu+HhBx9gk5aqPOLT+4/59HHN+w8estqWePVUqpStx6nQAhjL0XzG8XLOW7dvkEnDokiZzwITW22x5QVULU0jVFVBmhjuLnOS1HJy6xbzRc63v/cJ7//sU06WKbeOc25987vkr/8K3i753ltbmrpkXSk2TcgTQ9WOiHOXKtm35UQgM4aj5YyLi5LWtSySnFw9RqFcr3BHW45PTrh5OANqivuPePjhlksfVjDqpiEzBsksiU0ApW4dbeuoa8V6h3VBsFoRTGQsEcH7pmcgEQlMJkKSJBhrUR9eFDS6gDAG1XCfR0ImdTGRvgLtIYEmOyES4jeD1a0qfUxWlwInCInI3GO3ULCx6Ta+xNLpIgpfQtk74eeAc47Ev5w822aGv/E7P+DscnpBfl5MOvbl1rF5kX9xxPBLxvb8HDYr7OJg0rFPwDPSvGnPKMP3zkr1wR0TLWBRRWVoxsCUXQPpv4sMi9wSGcPjEYKVahITY6G6ckDV9zkR0yTEFqVxR2XjGqxJwPvoOvQ452iaNgSbYwPzKrRtQ4KQSkgXU+RJsKIFEEPdetZVw7Zs+nic0JXAzEJwdc2LnAOjFL4OwsBajAh5alhtHbkIxwcZxwcLZqnFu5YbJznLBaSFcnl5yuXFBQ/vbzh//Ji68dR1xenZhrouMalQqrIulXXVUjWObeVYlY5t62nVICIcLwqOZzlfu3OT124eY2zLfLHgYLkk9SuSu8c8vn9AYc4wXrlZOF67s+T7371JNlvQbM95eOn41ve/x/Hxkmw+Izu+SZt/jR/f95w//hk8+oTtp+8yt0uyNOXOyQn+8RmrbdmnhhnHko1TslgxFEnK4WJOtV3RVlsOFhmptsyLBfnhCc5YNts1i4MZWZGSJ3O+dlv42uP7/OB0Q9U2qECeZ8yyDKfKrMipG8d6UyFJoEvxSmLCuCSJYVtVIEqSGrwPAjexBrXxdUB9WLExgthuAwAU8xznlPWmwnsNsXH9iltUUtFtZNWEbDlew7Vo2XZMF1boYl5P7Sxi3x8p24cZ9stIw27vztqe8NVBmhju3D3m/OHLx7PffusNXr99wtnldIDI82PSsS+rjl0ul2TJy+vmq8oSs9lANpt07BPw7BALYNgOq32hwWrsXDexJSZ8DrFJirUmWMTeIRC+G0FjgIoRQYxFGJjEGiGxwV3jnYvr4WFgumTVoi3iPImxNG2DNg5nhNxajBhq58IpOjFuBq/QNrgWXNuSJAbnHY33GG2xRqJ17HBeaZsW9Q5UwyZeosVuolUkhsNEmGuLdw1WFNfWGNdyc5Hx+mtHHC0Ny3lOkSmI8tGjkk8frVhvLYcLoSy3PDhd8cGHp5TbbbCy0pR11bBZNxgDtVPW24amhct1ReUFIZwV71Q5ms25Oc9ADG+/+QaL5RzntmTzgvk8Iy0T8sWc7//G92g25xzmwr07M27cvcP85DYPP3yPP/jtv8uDBxfc+dotbnztGySzgnr9iHd/70fcX6d8eLrCXdwnd2vSvOHG7JhVMidNLJ88PuNis6VpGVmSw2YFESEvCm6c3MAYYb26pKlrkkXKbD4nyXLK7ZoshcXhgropSbRGszmC8Noi58ena9QYWufQtqVCaRqHcS1JklAklsyaIKi9J0kTRGCepWQCrfe0zoe4NadYI2R5RusczilV3eBVQ5orQxDQbUuRpphZRtOE1TCTWFSDuy1YxwaNLiHnPG2rcdUmWNhB4AtqofX0mxbUC0F6BJ5xBG4fmDnGbPV09/IK4AmfHVaVg8XspeTZLMn4h379T/DTD+5TvhAHJbz4mHTsS6xjFzl5YnsD5mVD07S885N3ePv7S9I0mXTsNXj2C7LE5erOchXt45isMXRRJaJdTFFwAVkjJEk0Zb1BjJAlCUYE1za0rQMVrCrexeTUxpDbhDwRRD0Oj3MhyD9YoIJrW5xXbJoiiWFR5BRJWGoXwLUNBk+edO6kYIVbG5bva0liIHqL8Z7KCUliEeLGldahTQvOYySkXQrXHElqmRcZcyMU6sE58iwcRZk4x/e+fodfffsG1lSsHz/AU1GL53Kz5nK74dOHZ3j1GHVsqprzjWNdOpq2QRQ8FWXt8C4IQJtktI2hbFoqH+yfxjlaFRKbcDzPKNKUwxv30LRAE0F8GnOaOuaLjPsfPeLjB4946407fO2br3P35gLfrnGNcHh0wO07Bzw+vcD7illuqOstq0/fp3z4iM1jjykV52oWS8vsaAFlwunFOY0aTg4OWM5mbMqKqvFUTYPXYRfsYjnn9o3b3D25hTYrtuUalwht3ZIeLjHGhrkxhiRJaKqSVelJshprLUvbcJhZTiuwicG7lqqqQYQSpcghjYeKiIJ6Q5YarBHyRDiYzdmUNZuqoWrbYQOM82RiSPKETMK8J2kSynag4qibJnhrnMY5sxgDiRowQvBACW2rlM6RSmRoDXV0ms95JY0rRAphM0PnQlLF+JGjVDurW1DR3oU04auB4Bp3bC8uuH96+lLy7Pe+fofXX7vNT9/78MsezpcCk459iXUsLcV89uUQzheED9//kJtvvM7J3XuTjr0GT8+DbIdULCbGcUB0xYiJlmj8zWm0PqXPGpNEa9epQ53GlQpB1GG9R3GIF1IJ1qwI5ImhSCzeObyVQKgmIctS0iylG4YsSxA8Vd1yudlQ121gPvV450JrBQ4Xc9JEqasWEQvOId4zyxLyNMFaQ9O2uLYlS1IkEYz6kGhclSKzZFlKYoPVnamQ46mrFhVDubrElTVfv3eb3/qtX2Oe1Zw/eo/z7YqfvHfKRe3YNA2nFw2PLzastzWtUzyGqnE9Q6Y2wYjiPGTW4FxLu9mg3tNEawpVvAvOteUsYzlLmWU53/7227x+7zbrs09IjJIYS+uU2fGSm80tfvfv/zE//elH1NsLjn7r+5w/+IiPH6y5e+uAt3/tu8xPlrRJQqUGJznJja+zuHC8WWx4y4BNlyxv30CKOxx+siVJhQeXFWerLTjP8XKBF0PtPM478jTj8OAwHLepyrfevEm7Fd79aEOWZizSnNlyzsnRAb7eIqml9Y6qbHHlCkRJE0NKyp1lQrGcBbfctqJqTHSjeFzTkBhDYg1JmuK8p6mrEDfmPSLhcISqLAOxm2ChNlUdLFU7BOppG4R5ViTYxGBtGoQ2QlVV/Q7bsmlRlEQC6xjvya2QpAnOhXtaEzjOKzhHdGzG9DhGhh27Ymi97xl0SI0TDmyYUmZ9taDAfLnk5u0b/P4f/Oil5NlFkvLajcPpBfk5MenYl1vHEo2al3IJGWiaBq02vH5zQd3qpGP38NQX5CwJ+2YlxqtZEyxMkaTf0ep8OJkpTS1pzFfYtkrTtlgX4pxSEZIixTuPMYKVBPWKkYy6bnDOoa0DEVyprAmbDKwYEpGwrK4e19QYE+JayiYsxbeNQ+sW48Iy+uE8YbNxVC2kmWF9cUFdO5wqSWKx1oIo6j1WTNgN64IwCulLWpxz4YSo1JKnKScnB5wczVidXbI+X+FdsLqlqaGq+Obrt/iHfut7HCwt73xwwY9/+CE/efdj3vnkgkerhm3paT043/11WCMYYwnmVIIjiZOlNK2LwecSXFTGhE0MYhDxzCwsM8OisDTOsS0b3n/vE+6ezLCUSOugmNOaGcWyIU0NZ59sePedj/jed96iaQzvv/eQs/ff4fv/6D/I4evf5uGn73N5+i5iZ8xO3uDenzik3T4mNRvS2RFa3KKtS7K85vhwzqMzw8cPlAcXDVufh1Ukqxwd3ODo4ID1+hJfVXixNOWa41nOwbwgn824fXDAfJajvgmKwAh1uSEtMppyC4nSOGhbxTYzvFlyspzx5p1DVpuKs8stm7IM1mJb0zqLV6VxnrKsaduWbVrDxTrQmTUUWRroSztFE+g6sZbZLMcaQ1lWGCtYA3XVBGVSZMwPFpRVjVclERvi4TDBxTnLqMqwQcG7NgpMh0TlNstznBLclDF2L8xjOILTqA9HYKJ47SIJBTVDvNWErw4eXlak88VLzbOLl3ff0i8dk459eXWs5HOOjo8w1rxUeZD3sV1v8M5NOvYaPP0F2YRdrfiYtNsQlqxNjG1CaDUcV5pbIY1xTZolVHV4s3etI89SFnmGVwcoaZrgnWezKXtmQSHNUiSe9OQJuxu9OhJjIU/x6snShATFew2WgfcIHudCEvzLVUvTtBhj8a2ndS7EsHiFxiE+xrSIIzPCuiqpWiWxQdCIBJfCcjHjYJ7H3aopZ48eU16WFIll0zjmqSUzlps37vJn//S3uXmS8NGnH/P3f/8dfvSzc376/jmrsmFTe5wPeyqtDZYTPvTXWIPpdm56jxfF0KW8CeljjDHY1GJ9WF0ovTLPUg5mWSC6ytGsH5MfHeI1YZZaXFth24xNmZJLyr3X71BvVxQzi2s3HN2+wZuv36dd1zT1Fs3A12d89NMPqCvH7dcfcfLmWxS33sI7x0VZous1Uj2gvLzk7NMHlOsSv/ZkzpAvDyiKlNQG4V1uL9iWa1LjsYlhvT1nJgW3jg6ZL+bMiwJizJyxoPWGqna4lWJpmc2PMdkMW2+ZtQ2+bVivw4rJYpYjGJIk7IQuyxoUkiQBbZA0weQJN24scS08PFshRrBeSTJBxVIj1I3HtUHxJCLkaUpuDWlqWS4LtlsXNhvF43NDnlIllRAHVbcV1gqZsdg8oW0dTkP8nboWYy3FLO9jAZPEYpMcVaFpWtq2oW1bLIoYg9hg0QompL1RcEwvyF81/OBH7/H+g9XLzbPplz2KLw8mHfsS61iX8Y037/H67RPe/ejlOEnvOkhbTzr2CXjqC3J3ZGOXuDwRg7WWJBVc43CuxbQtYiTuYFUW84IshdVFy8VljfeOIp1xclAgKFVTsy1rtpuSumowTlHn8AiphLd958NZ50WekqYZRZFhrLLZthhjSAi7YMuqoXVtDMAWEmNQp2TW0iq41qMuuHGsEbI0JbeQ2LCrUr3DGGFZJP2OXpBQhxGSmBKn3G4pLzckYiirCivCLLXcOjnk179zh+WB48c/e5f/6Ld/n5+8e8lF5WlasCZjUcQjKp1HjMFrECgi4J3D2pTaNUG44LHRtaZqw0qACSsLXhTnNIxzYskzw3ZTY21oe1VusUcpddNiEsDllJsSyTJe+9rXMX7NycEcSXPW2w1vfust6uYezhQ0DVycldz/dMsHj7a8vm75/sGcpE1pWsfF2UOqpqbZbnnwySmXFxV14/l0pSyPjjhOM7Dgm5KmrimdkoiwWC6ZZQnVdoscHHDraB43lShiPIkxuNrTblcoYWNHkuVYk5Dkh5Rnp8yNcPOgYLV1VFVN07ZUVYMVw3yWs8wz2tYFgk9DKqHGtTR1y3pTI+owakizBBQ2m5LaeZLEMMvDTu2qrGjqmvmiwBhD2yjWwNEiJ80sznlW65LWgU/AlzGOzkFj6rAS4TTUhSezCd47jEKWJ7hWqWsHGo4pzYyCIewkNxYTV1ya1tE2QSGp82Elp9/FM+GrgPunF/yVv/Yf81/7z/8pvvGS8qzVKc3b82LSsS+3jj0sZvzT//if41/7K/8f1tvyS6Wlz4vMws1l8ChNOnYXT31BPprnIU6naXDO45ygYvB1eFtPCYHsxhgyK6Ce9cWGlYY8hXXdYq0lFXB1hRXwdU1d1vjaYb2G3bc+uDvauuGgSDFpRlmVlJuWrcDFRbBmnUIahcm2anAqeOcwxpJnoR0YxVrBuLCz0qaWnDCpWZawKFKSRFAciRjSJAsbCERoXduXl6UpRZYgqmwutiQIbV1jVPFtjdeMb//Jtzk6qPnhH/8Rf/N3/oiPH9U8ON/QOJjNCuoW2uDRwSbBPmrbkHvSJgbnLKhQZBYlJEa3muAaR5IlGCt412AEkgQabUiMJbVQ5Dl3Tg5oW4eKYbFY4rynrGtMmjH3Ja41uMRy882vMTtImCdKpQ7ZXKB+S3Z0j+36FK85ddMynynLwjCf59QuZ71e45s1j+4/4v0PHvHRacnjTXCN2SShEctBsUBFyLQmW8zYimCalvliycnRARaHsTArLLn1uLYECe6velORJpBmYFUo8gIrKeoEXEliPct8yf2q7YVo6zwWYbHIyS3MD5fM8gJFqaoK1zQ0jeNivaWx4L2haRpWbU1ibVi9sIA66qqlaWxcuTFsy7Dz3rkg1LMk4cbxAYdHC2Z5xmq9BaCyLZm1NN7RNi113ZDnOfM8x3tP03oq59iuN9RlSH8UzraP+SE94DypNaSpoanDC0UmUOQJIkLTetoY7zfhqwNV5e/98Kf8xX/iz/H293/95eNZ4zHJM7KHTugx6diXW8d6b/iT3/06b71+hz/8yXtfKi19XszzFB8NiknH7uKpkiyVFvUNxPQfaiw2EfCKjTsJPZ48sRSpUJUNPu5ItGJYFIExUvFoA2UbdkiK8zEBeUKaW7xv2VZt3KUrKJ5ELLV2Z3yHzQdpYhEfsjkWaUqaho0FBo9rh6TPszwBISz7W0tqk3538LxImeUZSku1LTEmiT7D4FrI0oQ0sSyKgiwzXF6csTrzbKsKcS2vHeVcnNW89dpdbt9KeeeDd/mdP/gZDx4LeXrI7ZOCy+2WTdWymM1J0pSyroeckSacfZ5gOVwekGU5gmdbrmmbmtY7aq1jHkuPB1qn5FlKnoa0JzbNMGlGS0rTek5yYbu+IMfgXEOSClUGyyKj8Y7KGUhmtGx4+OEHnBzO0KZi0zxAEkPTVtx44y1c23Dr9ZrD40MufUbTrKnWZ3z6ySk//XjFx6sWTMJhIizzjNdv3CA1aYgPqtconjS1LBYHFHmB1hs8juMbR6Qm0FCeCr71VJuS7faS5bLg8PAgKHBT0DYW1YR2e8n8oOBCCy5PK2rfEWzYndIlI3eNw9mWosjJ0pSmqlit1wiQpWHe5zG9jEjY5WpMiHtqqobLVUXZtsFN6MNuW2uCO8ngefDwjE8ePKLIU5raoRJSKc1nBZkkeCyap4gKtXO0cec1bXjJOJjlWLHUjcdLSLbUqiczhqIIG1gyCUqwLEucdxSznCJLaZ3SRPfThK8OVpuS3/7dH/HGP/EbtNQvFc8WBzkX5bSC/LyYdOzLr2NtuuA3vv89fvTuhyFzyEsEETg8WHK5qmhiqMGkYwc89QV5fbmNieMhK7Jw6o2GZN55aimKFNc6rDFk1pIvQ3oX9UpR5MzyHLTBVTViDC61GJSk9ZRVRau+d4e0bUPThGV1a4U8SeJAW6xNEBNcLokoEnMxgpBlCainrkIi86zImBdJsHCNkKYZxhq22w11VQe3jjVYm5FKElJ+IGR5ynI+I80y8EpihbouaaqGuqpYbzYc5pbCGk7u3eB737rFowcf8zu/+yM++nRNkuR4FzYgLPKCg0UKGDSeFFQ3TTiCVTohI9R1TevbaPF40iSlqUJsjcR0O9ZmFIUlTRIMgrXCG3dv8Rt/4ttkNuO9937KertmefMNRFZY1waLfLUhTw354RxrFJIUKwl1m/DwdM1rr93Elw3GLmlqR+08h6+9zdIrZdUiZUuiK07PTqnKLZmB43nCydGc+axgvjgkzQvqckNVbjCuwV/UHB4fsZwXGCHGsxkSC7N5Tm48Td3gUdIs5fjkHouDJSadUaml4ZCzi0vcZsVh4UnxfHSxYr01NC6sqCzmOYJwcbHG2JI8r8izNKScch5rJPxnDYsipRaommCFqkBqk7CztXaIKkezjMIZqtbTNA4nwixPKYqMzBpW24q6gboMVrMxglpDLWF3b+tbVKHxjiLNmGWW3BoqKzTexTjC4MbKsoQsz2L8mwuJ8ROLT0PaGd8mISekU5yvwz1TDPJXDqrKv/+3/i5fe+2Qf+wfeOul4tnVxZqffvDoyx7ClwaTjn01dOyf/0d/gw8++JC/+Ts/eKnyWRwtZ8xmMzZlPenYa/DUF+QbR3NUFaPEAH1oXWA4V0MrhiweI5kmYZm+bBoO53OOlwUA1qQ0BsqyZrUpKcsa1ziMFQxtf5ykxVPVDZVLKPIcb8KpPupbRAyisG1rFMGLIUsSijSl9eHtPzHdkYY+7lEM1owxgmsa1LXgPevVmrqqKWYZ86JAtaUsa5RwSlHuPEUi4D1tXZOoR9uawkKGY5EZfvW7d3Hukr/3ez/k3fcesZwdMCsKPnpwzltv3MaS8OHDx9SNQxKDMeFkKnKlTjxpC0WaB5dlU7NpAhPTODJjUAmWWVrkJImQJ8F9VdYNiTUUqaGqK2paateSZwlZmlFvWr739ps8vlxx+uARBjjO5iRSk1mDJgl3X7/HZr1lW9Wkec6H738IaXC5GkosgkqGSSpM23DjKCWzB9y5C7UXstkMkiPWW8O2rBBZk+fBz5VnBelsiaYzsiLD6gwrNdk8p1gsoXUsDwqKWRFi7UzC/UcX/PEfvctluSVJClrnyTLDvMhpfcuFS6kaE5SCplysQpyYcw6M4C/WeFWyNCWzYQe1MZCkSXD5WeGwyPGas60drQvKBoQ0z0M6IywnNqPtlEpMp9Q2DYvMcjjLsUlGWY128LeOy20TVmtCcTRlQ5YYTJLg1ZMmJuwctyHXYllWrDdbUMjyPCRmJyRQz/KUg2WOupS6dZhW4ulEU4jFVxGPL1b8u//Bf8pv/eqbLwXPppnBNY6/9Xf/kJ99/PjLHr6XBpOOfTV07KxI+S/+I7/C3/3BT1hvqy+LnD4TDpcz/syvf5d0sWRbtZOOvQZPD7EwYcdsYi3b7ZbWtyHVTGqp65Z6W1KXJiQIXyjLImF5tORwuSBJlM2mjjFMLZcXK+qGEJRvQ8oarFC3IY4pnSXUtgGbMFvMOJxnVNuYxF4V51oES+2D68gaUHXgwut/WTkaaxGUprQUeUGaW5qywRiDSEKepxjbAIbEpORZRpoWFHnTB/WnRqirmnJbst2WtFVJapWiMNxZ5Hz7G7cR2/L7P/gxP/rZRxiTcbBYcLla883XXyPLMzZVQ26Ftm1CMnJVWgFrLb5t42SHk2ASK3GSgwA03uGaJmRWVKGpG6zzJGnKPM2RLCW1wiLPWCwOcA6S9hLXXOCM8qP3PsaKcnCwpHY15eYC4zMWh3OMXbCtwWvDxx98QpoINl+y3a7IcqE8f8hqVcH8GE3nZJogoiSpcJBYktkCZxZUboGnxZoKf+Fw4lGTYGdLsuUJtlhgixmZbclSoTg4Apvz+PSUj959j6/du8PRwREXF6c8fPSYH7/7PlVbkRcLljfv0EqONzOyec6BNciqwhhYLma4Vvnk0Tnbuu2TfCvBMq1M2HQR0iQRdrlmCeag4OCg4OaNGW08xelyXbIp63DKlIAVZTHLOFgUOAdVVSHiyFJDUWRgElYry3qzjWfKB8WCesQPuTA7K7uqKxJrOZgXgV8aT92GwwDKsmJTVeFYVxPit0RzsiInySxpaqgq8NgQ8zfhK4n3P37ED378Cb/+3VsvNM/Oj2/x+NE5f/jHP+P08cVLtYL2ZWPSsa+Ojv3WvQN+/btv8Hf+/k9f6OxDxhhee+02f/o3fpXXXruFSSx20rHX4qkvyK51NL4Jp5aoZ5Ym2MTSNA3bzRbnQuVpalm5lnodNouUZQt4XNPiXEj6XDWe+azAtxX3z7e0DtR5ksQyn80oiozlYsFiPmMxTzC0PGxqLjctddPSxt2+syzn4GBBkiZ415JnKaqOum5QFyyFRZGQ5wVJGo67FIQ0ScjzJO6ateSpIcsyjBVQpXWOxjmauqWuajbrLXXbcLlpWBY5t+bCW3cPSOfCD/7oHf74Jx9wsSq5eVAgvuGNe3dYzJc0jaP1yp1bt9jWjlVZheV+r1RNQ5ZltG1DalMsUFUlDaASXFpeG3y00BHLrEiZJ45FblkuT8jnS167c4ubJzfRtuY7X7/H40+3fPzoISc3Dnh0eo7YjIPDYzKbstmssUbwNsFKS1ocUTuDzLaUq8fcPJ6RZEvOzi84u1Q++GAFec2d127RZDmJL6h9Q01C62c8fNRSVo9IjKK0bMoG7w1JMYPiAMlyWpR1taVOUxZZjluXnJ9/xI9/8g6np49452fvkGWWuqxxPlqcWc781m2yxQnOK5tGacVzsCw4PEzYbDacX5aIEY6XOXlqQpop75nlGYeHC8rKcXa5oW1bnHoQQTUDYLWpuHcbnAqtD2mGchWcV3zrqGtHFQXCcj4nyzJEWw6WMxaLcFpQYhsOlwVt60lbxyyzVHWNdxoC/psGcZ4isSSSxxyibViRyDOK3FBXWyQLx5jO8iJsWvFKW9doZkkkCItSDOuqZvuS7oye8PNjU9b8G//O3ybJ/lG+87WbLx7Pphm+mPPHP/uY997/aKLVz4FJx746Ovbk+ID/5l/8s2xrx+/+4bsvpKG4WC745jff5s03X2O2WLCtlYMsm3TsE/DUF2TfNuFUFO/xrsXZFirlclVSNy7ktctMOLaSkOdws9nwsKxIk4wssXjXICJsq5pNGU5palvXJw5PkoTFPA9uD9/iXc3p2YbttmJT1pR12PFa5DNmeUpiDSJxZ60Y2lbJspwbJwvyLAmnviQSNw8kpImgjcNayyzPyDJLlhcYo0Eo1A2uVZq6pazreOKPj/lBDfMsIU+VrFBqcfz0/U/48fsPOV+XWMBtK/LDY16/e4f1eotPCxRP2ZbMlksOTm7QtC3r1RrnQjuc95RlcI0ubh3x+z9+j7KqkCbkmszSlFahqbYsZzOOD3Kstmi7or5Yk9884Fe/eZc0n/PxJ4+pL+ekp6ecnl6AJBwsD7ksDXfvnJA0nqr2rNY1iyJlNp9jlifI64dsLj6iPPuAZtOwPLxNOZvh2wpDS1qf0doDalnS2opN6Xnw4IL3Pj4PmznEU7ctHjg4voFUsD27YFMrTbnBaUNbVRwdHtDUFednZzF3JlRtQ+OakG7HCLMs5fj2HczsgKZtaJoGr4a6CUzlvKMsS6q6BYEiTzmcFxycLDg8XHC4nNE0jtV6Q5YIq23IfyjRym2qGpMntI1S1krtmnBEK4a2aVhtStq2pWkdzjmy7Jx5UZCnCZttxcFhS9s61ustRZ6ymM9YipJnNuZgFNabmodnl9R1SImUZgnGJrgmxKs1VU3rQ/zW8eGcPMvIswwRuLjcUjVNyMFZ1jRNSJKvLqRQmvDVxU/fv8///a//Xf57/42/wM3Xv8f2BeHZIk1oSPj9H7zDw0dnL/SK2YuMSce+Qjp20/DG7Rv85T//5/jo/mPuP7r4ssmrh4hw+9YJv/onvsvxyTGta0M6tknHPlXHPj0fj/NYY9Fo9W1cDR6ssSznOceHM2appXU+EH1T41zLLMuYzQoSiUHZzmEkMIt2GxDyjHmRIaJoW7M4WlLVjqataRuHc57EJqTG07iWtrVIntDWNa5pQKRPHeO8o20TtokhtSF9TJJAknhcmpAlCVlekOQpYhTvHHVVh5x4dRvSiDRNjNWCvEiRwmJsOF2nrUra5pzTizWffvKI88sNokqaZNjEcuvWCUWeog4+fvcTnBqseM4fn6KS4BRskpClacj3t1rjFbZVyYefXtI4F451bIO1FmLHPFmSoArrTUViW4rM88atGyyymqpcMc8zbp4ccn5+gzsnl7z76IzKGx5+/AhjMk7PL7h7nJDP5jy6rFDJ8XrG6/duY3FstkdcrD+iWq+4e/MWt++csFnfpapLGkm4vKw4K2G13nJ2UfHobMumarDxcAEwZEXOpmpYn6+wySV5fkpTbUitUJc173/4IXmWMssTiiQlsYrBIyhGFGMTzOyQ7OA2RhPUV0hiKBvYbkvWmwrv41ntBowYyrKhqVvmc0diE9abCktgpuPlnHmhlHWNqFJWNYpnXmRBiK4rytZhkpB70TtP7TQyTItvHU3tqKpw6lSWWi63dZ9NXDWsUiTWcOPkkFkeNjepD9ZqVV5SNjHxubQIgos7d9MkpLXJE0ueWkTCzumbN46o65ZtVbPelFTVJVXd0Lp4iMCErzR+/0fv8Vf/+t/hL/+FfxDSL59nEcvp2vHjDz7mYrX9sofn5cakY185HfuNNw75F//Sf5Z/9d/49zk9X3/ZFIYR4datE37rH/gNjhYhLMTIpGOfR8c+9QX57HJFYmxIxpwl5EnoQGJDDMhqtWVrLIvFjKODORDyHLatI0nCkndbJ1R1Q91qvzpoRMjzlDQ1qHdcrtc8vtxijY1RJiGhs1cJiaO9x3rHZlthJHTGGKH1DlSpo1ulSA0kFrxDnSUxFiugrqWuypBjUTwi4SQdEYM2LqxYOheSRytInoZYJWNQ56idUlZKW5dcrEtEDFmaULdtiB8zkIjim5Lbt29S1cr5+SV2bnFYJC04PDrCNxXbzQbUs1qvmc9yRJTGr6PLAsSHHaKZCasGTVWzccqdY8Odw4zDXFF3wcf3P+B83ZCnB7z5+lvM5BH3L85Js0NsVrLdtpxfXOIamM1LlgcVSkWdg4qymC1ZFCmnsyWbRvnhh2cIytrP2bSGi/MN29qzLasoPJU8MywXy3A6jngOFguMSfE0HC/mICmta2kkoUgNdaKUFaSpITFKbkMyeTSc4YSxqC3YtinvfPgQMZY8zwBDWQcBnuc5qRVE4pGqNkGN4nw4OOTR+QUHBzPu3DxgZoW6FRzQaoZrHXWTInHXbGItmQj3H19yualQJRxp6sMRqgYBY1APbRM2t9QllNsaMUPsk2/DaVWrdUWR5SRpSM2khBOAEiMhp6kP+ZvDBhtDkVoODxakiYSTrjQkMfdN2Imb2ZRKKjSxGITVtqJ5ydIGTfji0baOv/a3fo95UfDn/+HfQL8knvXqWdct792/5MF5WH2a8PNh0rGvno49yOFXv3mH//I/9hv8m//v32G1+XI27QkwLzLeuneT4xu3eHS+5nRVTjr2M+jYp4dYxHyIy/mM5SyLMWyAMbQuJBb3HjIrqDqqukFM2OFogLpp2ZY1ZdmEYwedkFqLlZAI/PGmxTlP7UL+OhFBAj+GeqxBTDhZyLWesinx8cz6JE3Jspw0sViTkIog6vEqYMKRmqkV8EGYqHekSYJXReMW3NbV+Hg2PNCnC/FeKcvg+mpdS1k1VCW4OqQKEWNRElTDyT0Q8y7ODjBuy9nZKWXdojYlL3JMklBkOZu6xLuGIk+BBRcXlxjnOZjlVOUW3zgSwDUVdlYwS4U8yzk+LMhlG3bbZoYbNw74+KN3WDefcPv1X+HG0U3e+3jDdrvi/GwLSY5qgvPC+bqlrNdsNiWbiwtuHGWcX264ceM2mc24vHjEo4ePKSWjUUNZleG8eivkeRioQ5ujHupGSdIU9cE9ESRtibU+EK4FyKgrMOKYpTnzPAhoAyTG9eejq53jZY63M0SCG80nKWXlwCS0zgMak8CHTSRpmnIwsxS5ITfhbHj1Hm0dVe0hTeJGECHPLLPlLN7jSAyocyyLJYtFwcePLqnqlrap8S4wY9W2lDV4IyFGLeZ/UR/KbJuG86ZFJKyqbOsV6i+xRijyDBTaNm5sQEkMLGYFB4sMNCiMqqpBw8aANM1AhDSxYcwTWM4Kzi7CWffLWUaaTpv0JkDdOP7t/+/vcH5xwa/cTajq+pfHsxhar3z8uOK9B2tW2yk39xeFSce+mjp2Pl/z5379G3g1/NV/7z/l/HLzS6WrxBru3TrijTu3WSwPcQKbctKxn1XHPvUFeZFnZFnKPE8xRnGqiFiKdMbRYUaehk0GodEVjSpNE+KLvNagLizVNx5JEoxJmOcZ3oUdrcBwJrzzGELsEyhGwBqD07Ak770PR3AmljRNKWY5szwlT7Nwfr13YUCSlCxJEXVoK3gRkjQjyxKMKD4ejdnt3A3CKGwi8D64A5qmxfsQl9M4F4SUSWkkw9gcCMnPbaq0ItTe0XhH01Tcv/8JtUs4OLnF4uCAogipeJIkJbVK21RcXJzTNhVZltI0JXW1ZVmklBL6uS3DkYmqgpiUtDjiZL5kkdfU3vHuRw/Ji4Sjg5T33/8Jv/eHP6QqL7BakxrL+WWDLQ5pXIMRz6ZsWG9bzi+F88uEg4MFH370mKPDI5ydU/pzzi8vQASxBpsEAdyoRxRc4/DeBSK3HhVBbBJebL1HDIj3VJs1Rpqwk9g7xFgSkyI2ELYxhiyd0XpD4wVjC1zrydIEtZbatbQieADn8Kps6jrEQcY0R+Vmy60bC9587QZtG+YwTwzbbUm1UdI0Ic0S2gZKqVkUBV5DSprFyYKL8xWzXHjrziHnqy1na0NZVoGGvWATR5EYUluE3KHxhCtrQ97H1nu8CxtCWudRr3iBtg55SNV7HIoxhoZwjGWWJ8wyyyxLMcZSNy0XqxKvJVYMNknYlmHlJzHKYpYHWjdCkv58gnLCq4Oyavj3fvuHrH/tLd6+W7De/OJ51nnlbNXw0cNL7p9taP0UbPxFYtKxr66OtXrG1+8c8BvfeY2/9bvv0P4S9pMk1nDn5JA7N444OVyQZXOaScd+bh371BfkuzeOmC9yROOOTwSbhGP9jAm7BzebOhz7V9dhGV0UsBR5SmIU44StGlr1IUaq1iC4NRB0kecU3qNIiBlB8N6RJIFRjUifBsfYpE9SnWUJi1lKak08EYfAgC4I/8QGV1LTNmRJcAN1qUOcKt4pzoedu60PGxpCLEtwJRqNeR5VUB+OJBSbkc2Pw25KtiAhfurx5YYbN2+yXdek+TE3X3+Nozv3cE2F1hVN0+Ca4ILKsoRZniLA5WZDkVlSKSjLmtxkqPegLdYEt4Q3c+rWs9qsuDhb8dbrt7m83FCdWWxa0dTKuoa2ceTiyWcJ+IpqfU7jFZsYjHi8trRN2AV6uXWIb/j44SNUEqraQQx2d21NfRkUpljBiEfjUZxZFmJ6rITThlrnEIISxRHSsChYE5SxuuBi896yKRvyzFLM5rSbDdo6bCYkKli1FIkllYTaeRoCQ1gj5ImlMULrNbQP5cGpkiUpx4czFrOCm8dLijSJ6X2EtChAhLpuKKsaay3NpuFy9Rh8HQ5BSA3LW0uW85yL9RZ8SGZvU0NqBPVhs0fTtqw2NVXd0ngNLkcE0eCi2lRNeLFQRQi5R/MknDIVcj42nJ6tyLOEg3lBniWAkBiDc56qamjWJeuyYluFfNWzPCNNs+Ce8tMK8oQBrfP89g/e48HjY77ztWOM9184zyKGuhUenq359PGGx6tyCvX5BWHSsa+2jrX2EXdOcn7l7Vv80buPaNpfTF57Y4RlkfG1Oyd8443XaKoK71qMqyYd+3Po2Ke+IL/1+l2Wy5yq3rBZhZxzYkNal6ZpwokkxpBkCUmWoupR36Ie8nxGkc85yDacryu2TRC8Et08VgQrBjFh0FQ1BlUHF0ye5+RZGo87dCCGJMs4mOfMi4Qksai6wIQx+Fujq8daS1bkWJshNjxfbkvqJuSDdK7BuZAYO7iwQv1igqGbGOlPNApn2PuYZqSlqVo8KeksMk9Vsa5qzi5ayG5yMs+4cec2y8MDqq3h4vE2nAmvytHJCU2VcLRIOD1dAVBuA8MkXnCJpW4rGrIwtr4i1RUL60iTlqqxfPDxOQfLjNbVfPhwhU0ybL4gSYSiWLCuBbUZ9XZN25SQJngJMWcIeFWc1qCgjQcJ8VEi0KqGfTzxuMjuX09IjyNicE5ibkQXiEslCDEHohYxhroN9Xiv1E1IbI/XEBBvV7RVSRLjgdRYWl/T1g2z+QJtPV4dubE4kTAfWRJi5XxcYTGWs4st4KlaD2K4e+OQw+U81ulRgSLPqaqGsqzCjlXvSKzgvcEDKcKiyFjMcsRYEGE5LxDfst1sWC7mGFHWZc3pZc3pxSbQuIZVkEWjLIqEug2xdVaUNLUhAX2a0DhltSqpXUtTt6z8Fp2nzOczDII6ZZZ1lq/lYgVN27LZlkhZhyNepzzIE/bQtJ6ffPiYJBFevzHHWr4Yno0rNufrio9PN5xebKMbdsIvCpOO/SroWOXte4fUTcs7H57TfIE8ZUTIs4Sbh3NOlgXzPKGstpOO/YJ07FNfkKu6ItmG5XUyS9O0VLVHxYSYI4UkNRixGAyzWUZqfTiPXAWT5OQHM9LsknWlIUCeYJ22LriNksRibTAurCQkVkIcUJ6S2ZD0vshSjLUcHByFtB++oakbNpuacIRlQlN7XBOOSBWb0jjFq0Oc0jTxDHD1UUn44OrxGgO9BZskzGYZRaKob3GNpw0hOlj1tK7BqCfLUrI8C7vCgXK9ZpYW2NkJRVFgjGU+E6Q9g82aG8sUFWG92VJVFXW7xTcNRhvyxEKa44wNGy8qJcsy0qZCDYh4fLumKh2ZnZEXOU0Dksy4eZhhk5Szi0vK+pIkySmrDGyIqVldbqhrZVtuyFNLmiYYAypC4zxiLNaEXaaoRiIRmrbF2kDI3gtO4xGNDrRTtC78hioaMnjStKEM9UJdV6y2NXVDOLLUKrM0RSw4X2ElpC/KUlAMqQdfN1BekkkI0s8yg80yvIajUKvGYT0hLk9d2IXdWuqy4tR5ttuS5WIeUxQpi6KI8x52qWZpFldJwNiw8SkxGk6U8ooaizEJdesp0pT58pC8yDAaYvgWqcPNc2rX4lpl225IrOdkloEkIV9p3CxgTEiT49WwmM1x3tO0jrrcYlWxtBRpTp4WrDYVzoXxOFwUNHXLum4R9VhcEOITJuzBeeWP3j3l8cWWt+7MOZjnQFBMz8OzHmhbRYzBt7CpSk4vtpytK9bbuFI54ReOScfyldCxqsp3vnbCvEj58fuPWZfN506NaOLKb5ZY5nnOclGQpeGI7EnHfrE69qkvyDeP58OJOq7Fe0si4QhABbIsp5gvOChCMSFeyXNxsWKzrdisL7l0hN2yvtt9aEEdFiXNMoo8w5qEo6MlWR7cPaiLp9xA04RRUUnZ1jXrbXCjNHWDb8PE5HlKYrpVS48xHjyBMZ2jbsK1pm1wzsUjPUN6EBFIbQj2FhU8STjuU8J9qkQhk4TNAhLOrc/ShNs3jnFVzeqs5OjokJOF5fJyQ1tXlI0nQcmNp65qqEvq9YbECJokZGmB05o8t+RpwvvvrljXDrECamLIltJ4R6uW/z97f9YkSZLkeWI/ZhFRVTNzj8ijqrpmpmexAHbxgCV8/0+Bt30aEIFAe00flZkR4e5mqnIw44HFPHN6uqN3lrCEqFzjqqiI8vBwM1UVFjYW/h/XwylLYrgxdGHImaePK5pPfH57QQSenzaGF67XgyVBJU/JFOd2HKEduCZySYiFJzopxTXKmBtrxi264WGOoPPvNTBEU47oaMZhztED0+gEeH5M4L9MmfRtKRRVbrfK6Ik1XXg6r6w5se83Wr/y9PTMUoQMSE70Dn10zuUUXuqaEB+IllkYBuuaOS/KuiSWNcgc+35FJATre234MFQTp/PCh+cz59NC0nCYGsMBY10XUkpc985+HOScsKIkUcyFlFZIg5IrH86FZoXXtx0rihlkhdN5YT090Ufci+Oo/Pz5xj5HQ45Tcg7CiwxWVZKEnM6Hy4nWGtfrDUan9Ya48XRa2JbE263+b9tFH/G7j2HOf/zpyi8vBx8vCx8uC0+nwlYWwKPRJQpVrT3G9MO51RFMcQtZsKPF341h36S5we85HjX2/0g1Fv78/ZmnNfPlbefTa+Xl2thrPOv7tEbm/wR+W1DVcK9TeXcizEmn8oQDHedRY//3qLFfd9Jz6NVCRPqovN1qgKYJcH/JiYSETI16EAaOQeSb8nQWjj7Y98TpdGJdM6UUVKKbXUshJaF3w2zQj2Cs3m0vzTrtiM08XHhsdk7KsOiW12VBs0cym7EssWDv40Kb7jruYUtpZrGwUpkjyMBjAYwe7Mc4aYGUNXC0uWDztT9+/AFx4/bljcv6zKfjE//2b/8deWF6g2deXg/eaueHk2Kt0q6vUAdPz88s28LLp89wTgyH06lQ94Mfv/+e2+1gSKbvt5C3EXALDcI9O08uiAz+8ae/8PG7P3HZSuhTmtA9c/z8Gpii08LzxxN1GH23OdqaHfRtoMcdT+i4SIxdAw02McOEJI/A3oy9Rpc1bD4Hc9pwejh5xojOfZI/mFIxIWxvtVFMKQKG8cuXN0ScnqHtIfXWe2M7rQwTbnsDVUZveK1IUbY10ZtRFmUsgjhcTgvbusVpwLLiwO2oE+8W+KqcZhL2we2obEtBSPTuQLCuR0ssKfG0rajH+GXfG25GOSopFY6jsh/BnB0iuCp5OweWs3eu++BWr/M+B9v6qI3Xt3AcAiepc942TttK6grilDQoJbOWE0spfPr8gtSBEqcvki8sp/W/sOQ+4v9osdfBXm/8/S+3sNVNYe16Hx2OqWBhc3z6v/Xk6hH/v49Hjf0/Zo09rSeWvPD9s/F6dK57f8eYu4eyifk8ZpqQGXcHERqE7q/wqLH/O9fYr+sgf/7C7W2ndSFnD6kWiY5myQtPl5WsnbZ3NAnXVjHPnC5nvvtYEIkPV3hg4XJJJFVsDAwDG+z7wdv1OnFyMvPG0SQkMdreQipkDOowSsrcVOboaSEnj6QcPSwOj7n7e3TUaEK0gDvrqoChCOtSMLPZ7QYmSxRKybjFeAFz+hwVMcdFf/mHX6J7ao3/1//7f+ByufDjB6B3mjhlKfybpydsDLJVXt5e8VRIOXGtFQM+f7rxertRW8M1kbMyRPjw3Udero11W9mPKzkX9sNoo/L0dEKXC9YPcobPX154fVXO2+D755Vqic9fKsfRqLOrOz9vmGZabQzrqIdcUzc4Ro8NEGbhnAXUlDZPJGpvHHN0dpdViUY4cEuz143E/c3vBvTA2SMtxliLCjkJb6lx9FdOi3DKmZKMWm9cPvyA105/fWOwIJKo7SCZMLJR6CwpYS5oKjw9PZNTouRCXjIppViDtytJoCQlqSIJsEHfD15wyrJxOZ8oSXGPUWWI6xuQEDHUR8gsmbEfb+y3HZsM7pSUNWXeamXvsanhQk59kgY6uWS2tVBrZowGGE+Xhe8uC4JQW8VlpayFlHSOqYzn5wuaErfjwDH225XaHhjQR/yvjz5CNusRfx3xqLGPGvvP11jClIcJi3rU2P+/1NivfkC+vu0TZG+orjxdQoBZUyKXhcuWqMfObpBSwkWioyThCPveghAyLJJGI6mOW40R/ujR0Q0DCUKAm2A4Rw2P+XZU/M58HY64klN0VJqCgDB6C6/v4TidUmIclFIiPOFXclZUOr2GELqo0IeQc0GlTDajTaC9I4S7kNsc46TEwBiLMgSe8srT+cT5+YmBM95eub1eOX//Pbe9saREf/3El89fOMi0Xnl7vaFJgohhDeud19dXPnz3AdMEopy3wuc3p/YYs6WUOGlCS4mum8IYgw+XE58+/8R//BLC3yXnYK9746gDkcA+JQVZlN4Vd0FdqPOEYgB1xKi2D59jl8HRRpwI4Px25irBeX+Pe7LeT47/s5j/3NzZhyFNuMrgZW/kJJyXxIdt4RjO3jviI1i0XtHtxOid/a1xXCGJkN9eyOvK+cP3iAjbtk5Hp5CnKUkoymRrlxjZic81DG6w3w5GN3JOjBG6zCkdxHm3kjOsWZEkmIVw+bIs3Pado3XGUUmaQpcUpQ8JrJY5JSVOywISm8HHy8KiwWpecyYn5bxuoMqtNl5ermxb+Nj3EaxzTZlcYjR1Knl2x494xCN+j/GosY8a+6ix326N/eoH5DszUUSx7pAcs9CUy7lgLlxrYEvseoAby7oxBtxqdAspwbBOyZk1K/v+xqg1hKondlVTpo3AycncAGofE9yeyEXJahiDkpXTtiEMHGO0RnsXyJm/O4imkCPJhXXJKIPeeuCORsc6jOFozkgOKST3wN2OPnAy1/1gf7lyWVZa2zGBbRU+Pj9xPl/48PGZUsLRJZ9PlJIgJT795S8osF7OtJLZD+PtywvjVjEVtGjkYRKOo/Hp02fWbeMv//gTKoJ1w9AJno/NotZKrZnLunE+XyiLYX7h8vyB1pmWngfu4aIUG6FRjzaFvRX3MWESAWjf2+B6dFrvdFOGBQ7KfpOUov8pfOK3SQv+Lycuv4FeEMSF6IvvMkDwcgxejxv/8FI5lSvbopyXTElw1DfMwiBBNHRev//4zH/1pz/w4flpCn/DURtriW61pEJSow0jq07s3VxPrXPbD7o5tfdw7JnM2Ps4M4mybhlbMmsJPNxUpkE14TXubT0OJreE81LwUmj3jSAn1lxgFqKPl43WwzFoXSeJw4yiICUxepzKHHun9jbH4XGOUJuxPISQH/GI3208auyjxj5qLN9sjf3qB+TbXsl5JacUmFNXxOG63/j08ooZHPPmCuFWsmpm2GDsgyUnxKakkDn70bjug2ES2p11BJNaYL///xEYuXfMjTlDBimFBI2mRMrKwqC2RuswpLAs0eVgRtLQVhDu8jMHgr+7tpgHrqUOR03IHjfTe8OOAzdDciGrktcLAyVvCz/++JGiirXBui70euP4cmNZV7YtUW+Noxp5XehtcN0Pvny5MVQxzVQ7eL0drDmzt4rkzHG78eWXnR//5k/sY2C90qxNuRjobqQufPnyhgo8bSe2deM4viAGWQB1UENLQmWjtp3j2Pn86Y3XW0WTkkuZeGKjDrjVRutG7ROXyK/YxLtM0D1J/6kMyj+XyPev/ZrY/+nPEZGQpCnKd08nns8rtXY+vdXAEjXjtQ3S7pxX4fnDmefTiW3LPF8unLeVy+WJtSwYkdR7vcW1LQvrtrLkRM6xIY5uiA/wRO8jRizDYvzVDd/DR158jhtVMTNe3uDp6cyHyxbdfNJIKGA9rYhHiWitTeKEYyRad25HBZy9JE5TXL9k5Wk7k1KMqC5rxsbgl08vtF6nBmhgC603XGLM6ubUrryO/Wsp+ohHPOKvOB419lFj4VFjv9Ua+9UPyJILzZzRBvtewY2clFpDTHpaNpE1s52f2NZC8cpxu3LslTVnUsrs3SfQfIqdT2kxPFyD3I1undYGdSZznkSC6DqEBO9i5klAkTlymj2TddCEpsCwKGHFafVG7QEEzxMvsy5Kl8C/tNYwUzzD7fVG/fzC09MJ+uB4uVKWC08fv+O0JZ7WgninL8rlkkM4+8MF3LldX3l52zFRdDuRRfj7//F/Zr/uVFG284nt6cTRG+N4QwyQ8J6vdeennz7hJIaFyPrrHtikkpQlKzloznjb+fz6mdv1xlIyrdUArRu4Odc6uNbB23XnerQ4eZDEsEYzAw390zYGfvcDjUwLMfiZcL9NyN8m69e62X8aqvqbnxHC8tuSWdcTp+3Ex+fE3/xBeb3t1HagmijTS/1vfvyBdVmxuZHnycgPa9YA+t8LBqMxekXLiVxWBKXlESO+NuVcVDCEVqdovY/39RRM7hYJ0zpvt8rtdub5siKiCEr3KEaqQh+B9ZQRup4ikNTJKiBC74Mv+1sQbBKsa9ihimT2W4+Rjy70Xmk9vOBTUrZTofZB1mmxmkLD9hGPeMTvMx419lFjf/v7P/3zvxaPGvu/b439uopFN0Qy27aylVA26AaSF7IPcnbOy8qaF7SEHl+/vVGnx/rt6HSrHG2E8NfUc1FNYUlpnTEOZBK+3Kf6gTClR5SSM1llJrGD9bC3XAu1HbTaAOW0FdK0GNz3ipuHd7cYR3NWgdMSIxAjAPMA++1GbR2VhLtyySv7yyulJH68fECWlVKgpLj+03nj+XQiM/B2THwX7PXGyJmEQm0cx4GoosvCmhbEO88fziiDzz9XRhuoBlP05Xrl+uULMsHkS1442gufr0dc95R1edkb/8vPb2zrNSwTS+F6O0KY3aI7beaBJTOfIwoH+q8jnHcpmd8mVoyjRJg4oV8T9bfdKr/5+m///p8m92//PiRq4rVCtL5wDOVl71xQLqvy43cfKEVYUg6c07KiORjIZrFmDEHcUbFYFyrknFiKUkps6PhgKRvbumDu1Fo5aCxLZnNlOBy1430gOD6MgUTX238VtW8OR2u8HSvPp5WkCXOoKSEugVnyYBsPG+/uURCYvG3JyBIFJeW4/lY77oNWB3/5qYVoOtBb4LfcBuu2ctkKrQ7ASDkYz494xCN+n/GosY8a+6ix326N/eoH5I9PT6goSxJSGngKQe4yRyPrligJMMcx+v7K3gethwtK7YPjNyMdJ4TpkxgiPpm2odcpCEvJs0MIrPxdEFsJlmZvY96gQj9GuPNA+MiPQqt9Cq3XwL34nSFL+H13uBMZrBu3Ly9cP32h94GuF/7453/DOQ3GnjifN46eSElJVil64emykQRuX96QFKOXPuDLlxdGjXHOL59e8DFYk3PaFurEO7kNjusBLpTtxJDwfFdxRIKsUCRjHtqQiGCqGMKw8Lu3AdaMT7e3YLx6fQf5+ztWaY5a0nQqek9gfiUDxLfxn6flTMj3b/rnE/if637/uaS9f+0+PhLR6MSBYxheO8OdbQyWUfA1gYJ3Q6bAPDKtVyU0DdekLCW0PMuSSTlP/JWyLImkTloWxgCrobEpELqOCpfzGqcKrdG70XoNiaM+CMMpBzdad35uLSyyyxKkFST0IoW5iQig71g0JNjFnqCUAin0Plt3fOLu6jD2ozI8dBvFoDVD1REaSwnN0ZQkNqR/9ik94hGP+D3Eo8Y+auyjxn67NfbrEAug1oMhwrJEpxnrIwRw3YRqQimFRT3kNlpIcYS8S8fMKTqxM/djfJ8gdQUhxWgmKTlnciqAY96AOzA+tBXjHyj7uHd90f3Uo4EkUpjBUefm4dJxicTpVG6HkoE1KbfXN9rrC2spXD48Uc5nzitgwtDMde/42MnripWV02lD0sL17YUv//gT3YUf//Qjo3VEnf3YOX7ZWc9PmAq1N9RhzQlPg3atHJ9faCg1FXxVtHfEEnUYRx+cLxtHu/L57cZeO8t9nKXKumT+8PHEeVsY5rxdD15eb+FbLvduNTzZU0rR0xrvDGkAwzEPDUGbm9s/lY+RCfT330i4/Uvjn98m7W+//tvEvf8M1UhcZhfdR7CBzQKztNiUIEJYHEoJcXQcEhbPbSlsa4nNXBN5PZFSPHdzxyWTy0prndtt5+31ld57iOWfziwOhx+UnHHrtDo4aqMNnx1sx8csEKIxDtorrTZENLB593usse5LCma0KlPL9GDfBZEjiCvqoSOqmWDTeHTKtXHUYOuuS5BrBNj3nTKUp6cziqLpqyn6iEc84q84HjX2UWMfNfbbrbFfl3nbb3HMnTPW4uHnJKF5Z51umZwzTqeLB1C7R1IDLLmQpkObqIIqS8kwgj17HJWBoMQiqrXRZKAitN5otVLveCqCiSuqqEgc+6fochxovdJlDi/cg6lqg5QcMPYqpJQ5bQtFjbcxKJdnnp7PYcmYBW1Xjtrotx0vS7Ap+6CY8Je/+zter53L05nL0wfSUqgDjtc33AY63WBur18QgeXDRz798on28sK2ZiRBA27HwefbF44+uHx4Zk1wPQ5qg0+fvmCj8rI3XAITdReL/+75wv/j//Zf8YcPG3kp1Db4+fMrR204xrosE0Af1s+1DY7aOY6OJqUO4x9+eeHTlytH6xx1zDFRjIp+28G+82f914T8l8ZA/1yn+zXCwW9HRm7QuyFqIIMsypIHpyVT5mZud4xcyuCCm+BJQJTW4sQjh+4M1+stSBAeTn4lK0J+B/ybOeqh4SwoJoqkglgPEoEQrFqL4qLTO1401oG1HpI+GteY2mDNoTtaxCerdkyGrPC231AVfvignNZETpnTKrQREj/1aJg3hi3kpy02eoecAmPVbLCdHh+QH/GI32s8auyjxr5/7VFjv7ka+9Xqe++AEmEpeVilqbDMjkL6wD3GODkHgzKrIlnJpOgyLR5wUmFZSzi04XFk7gGWFkJncVgPTMwwbreD3u5drZBKIWtCxiBnJQGMAJOrBFkAPNx4krBoCJa35txqSOc8bwt5LbSXX6AdnC7PZBw7rrz88sqyXSArkhdYV+id42g4O/32ytUS17c37PmE41wbnIvgrXLdG8dwkghLtN0Es7hTD0O3wstt520PJvHr7ca6rRyjgSZKNoZVrrVznYBy1Rg/lZI5nU48f/8nfvzDE1syrHe+//gB1UQumZwT27pwPhdUnGOvXK8HrQ2GwWuDL683/v4ff+bnz5/4yy9vvLwd1DHoI54jHoMid49u0Z07bu1fYtD+Swn9T7/vjpN6/xrCHfrj7nQzug9QyDlNnFR537iF6IoRoQ3H+gDvYVtpgo9ByXF6oikjksilkEucxAjhaCRbDrejpqzLgksPFvcUKQefG5rhHlqXgqKSGF7pQ2AEycW9c6iwrktI56gipuw1SAHhae/cjsHzZePpcmJbVi5ria66NrwPrHe+fH5hKSvrWvDm3PYrKWsU0Ec84hG/y3jU2EeNfdTYb7fGfvUDcmj9AdPj3bEY1WSNzkHALCRoSs5kccjC6GAKSVp4t4/41WpnjIYKXG83Wu8si6Aefug2+6phndb38MxGyGlFNEYaqkoqhdAb7HMMpGR1YkKUoHfMB7+87PTuPF/OHMcrPTk3PXG8fI5xxLJRNXPsB6WcWC/PqDXcO5pWUlpQ2Wmtcgz46eWNH7870443khsrSk0r+/XK7bbTmnN+/sDtaLzefmEgfPz+A/X2Su+VZS1cj4Pmg+7O69srf/n5E+bGsgivN+en146Zvo8Ycooud1Ehu6MSwuzdQ+A85UxZV0opweJdMtYOLDlrDq3Gehzgymk98+c/Zr778JHvnn7hf/i7f+DnlyvaHEfx2dWZOzKT9755/nMJ+S8l8T/3ff8UM3X3C9IUSa0ShIDTaSWXAhL2qAKkHMUi5xQ2lz0Ev1OKQpGm/mTvDXzhOCp1CNuSeLqcSNi8noTWTu0hLC5Et3sMjVMCdzSleJ9uDJtKjGPEzjGMfpflmZfsFvfFu7FuGTFhmFPbmPa+huC8AvvReTr3EF/PGVsXDoJAcD0Ozmdw8WmNWXAb2GhfS9FHPOIRf8XxqLGPGvuosd9ujf3qB+SUwpZSVThtC1mcnFMsqClu7SlxvmzBaDx2lhLWfu5KciEPCbC4DfwYmCujhB2je7AQLQZAjDGotQVLcdsopTCGkySTJvjpvgCO/SCJoFmRHF93nHZrfPrpM+u6cLlcWJfCcX1FFXTJXL98RtNCSiXwLqokLQFsTwujD5ZSYAw8JzpGbTdevrzyx6cPlKS8fd45nU+UJOzNSOcLH5+f0dE5bleyGId1kkO9NvJWWEsm1c7nV+gW+pLLUPZWWQt8eRv8w5edOoJNLAElQhGKCltJKOF8VEd0zu6G9UGXGuMRMs0TSGKgDFGO0diPxrEfmEf3lVX5/uMHwFjKL3x6uVJ7jO+6BXg/sOvOUA2CiAep4z4S+pdwUmb2nxELfitF88/Hr2SH3p2jhVNUTqG1yRCETD3CslJVyHOd5ZzJWUhq2Bi83UIIvDu4x3Muk0wRTOiBiHDaVnLrlJxYSuI0Mm5xivPm0bniITGTAhRFG8ARyZQFkoImDeH7MbgeTkIwD10akRjlqBvWQwLosxlHN3IplBKnPUettOFca6O7cAKeTxeO3RBdvpaij3jEI/6K41FjHzX2UWO/3Rr71Q/I520hz/HCVkKfUETIOYMb7uFHniRcY9pw8PYO6AZCKFoIhqiFYLY1By2UybZ1i4fkrdP2Hd02csmo5GCgIqzLGmLPAt6jSx4DfCgmGTdhtPCkP1+eWLIy6hXSSl6Uojn6KRHMAocy6kGtSl5XvDfeXm5A5/PrZ7bTOZi4o6PlxNPHhLow9h23xtEzpiuMwfXTF9bLiZwL25Lon15oR41NC0i28PHHE3/5X/6Bz59fOIx4T1lZF+XlVvn59eDo9s7gTJrC+3x2uOfzwrIkcpKJO4OeogPEoNXB7VZpLe7F9Wa8XXeOozMGILHInEFJkFNBPjxz2Taut8aX65Wfv3zm9XrQR+hEDjOSR+Ka+5SD+bXLlbnDCL8RKv/NiEf1VwmV3ybvb0kJ8bODXIIL9WjzGpVFMyKKudBHZ/SODUOXBZiSO32Q8xLOTg63/WA4OBKjR4NSouAAiBklR3ERLWgLZx5zm1I0MZ5sCdxC7gYRujk5LSSJDjuJkXXe18lwxuCwAUgUh8nEFbPQEHXDxag7HEcLRnnKXPsNd6MdFTFnUUPGgo9BXh8fkB/xiN9rPGrso8Y+auy3W2O/+gH5w3nj+fKEKtS6I54jeZcQYK51MFocm4fPuGFinNaCiIR141FBcjApx/Rhx1EgaQaLDWH0AaIsZSWponcJlJTCyz0lYODDYAy0e3jKC/zy9/+I2mA7n3n6+B1Laqjv8R6bUpLSbjtv+wuG8t3ziUzl9dML6fI9p9MZ/EabDN58OiOjM1rYNdYvf6FMRuVIJ07f/5nz0wlncLx8pvUrejN6Urws3I5KPW6YJHYL6RR9ufL6euPL25Vb61yeVj6/DH76svPzW43FTly3zC4+58RlXfjbf/sH/t2//SMfPj6znU8kCXcaTQXRRq2Nut+4Xvd3i8s+QqA9WMkONjAbqCZaC2kWVeX5wzMfvi/8oTX+ff2R1+uNL2839qPSh7G3EEKvbYRPus/kdXsflwjyzuLl/tywcH9SReU/727/aTLfcVApK3gIgpccG+5ogeHCjaVMkoQbRxvU3iEpW0mhuTh6bJiq5JJQGeBOa7+OsBwoy0I7GiIW68g0GOAl8ZQz9cgxNiM2MSXwglG4grk8LEZl3cI+VdLc3CzGVpoz4oaok4iRmuAkYpx03TtJM23EaUKrOyodk8Jrm9jE8Z8TNx7xiEf8PuJRYx819lFjv90a+9UPyH/44fs5hjCUTHjnODAgwVDjuh+MUbCZoOadnmJ8UY/B7dZYViWg/syLIW7+XhljkEtBVTnnTFo3lMHonWaJronVwWvFLJxpQscxU7aVoze2JbPkleV0ISchLQk/nF47X66f0Zy5vrySc+LpfMEcyvnEkgoshc9//z/hraKnE1oWQBm3NwaQtw3plVIyRohm93qwH4qMG3urLKeMXa+wbPRlw0vCDsE8xMV7O3h5c35+fWOvB+dT4Tgaf/fpyue3iksQBYQQwU4To6MIf/j+mf/uv/33/PGHZwSl18oQeZeW6X1MOZNGrQPE5wYZC1xwxONkwcwnScNpPXBt1hrJnZQzT+fv+O7DB47joPdGrUdoCu6N69uVz9eDa4vNofZONwtLUTOS6Hviqsa4RSauKsaBUz/9Nwzb35ISzCIZBwIS5BPtIRTukzEtKb//GxvBxEYGx/UNljU2PpEYi1lmDGckp4+OjSmDE+RcfEBOMExQ02CJ98DomXnIJ40+nwMMps6ix3tCwDXFWNODuHJXgk/ic4Q3zVjnGMhHx22AD4omdEnsU8w+qbCez+QsiAu/fH4LX/mHiMUjHvG7jUeNfdTYR439dmvsV8vvklNId/iY3Wbgo1ICPzo+omM1N1KJm9Ob01qnjcHL7QBNoafnQpNYzEqie2B8chFKWcjLSv38maey8vHDmZf9xk/XN4YU9Hzhw9OZ87nQe+d6u/HFnL13clK20xnB2F8+8/LT4PnDhdvrl5DDQSnZef7whOaV8xqC1LSO9YNhxls7yC6cesOG49uZ7cOF7IpLIn/8CONgaOHWnecCK50vb2/8/MtnzlvBrGKHcT5v5G1FRth67m2nZKit8nbdUYVf3g7+7tNBHWEDGmzNWKAQbOEkwloS/+YP3/N0uYBmzMGGU+tBq4M2Wcmhh3n/WYmUY3QhotgY0YmN6MBq79TWgySgKcDqLuBwYCQPC9KyLpy2gplwnA/2U+J5XzmasdfBda9c98qtd9qYJANCePvOqE45NA1TyvThIXA/Bm7/6TqLtPdYM9cbRYikALKmCdafIyPVudjT3CSE2vr0bU8sc1Rp5vho1GqMMegj2LelJJZUEAnJmTWDj4YPJ+mkNThIziw5LFqPGp11StGFdwvCi07msc0RZ0iY/7qBmYVYekoa4zYRRBOaADHWnIMQoytmBXEjq1KPFgz0DLUdXy2wj3jEI/5641FjHzX2UWO/3Rr7rxiFdHxUer87zzitC2PEIjhqsAh7b6TZ5YzeGa0FED0lSlkZTog4jxCDHubc9kpy4bKduCwXTuczv1wrr9c3xmi4DJYUm8VWFBkHb5/eqK0ycI595+1248Pz9+ztyhidcRyU8we280rJ32PDw96wHmQMGxX3RHu90deFUxFEnB+/+wE53tjEYT3xese81EpvHZLw8fl72ui8vR6UpKS9knvF9ys/XZ3zh0vgaj5/5vPnF7oDOSFrAUJL0HA+3zp/eTkYd2melAgITthEBrM2FuH3H0786ccLJcd4TCQsGGs7sC4xmuqD1jpjOEtRxAfW7tkRXVrvI3BI5rTaaKPTh71jl4qkGIsYJEJPU5LGoMLDYWjZ5sLb60ykQk7CxU/v9pHMpSsipBzjm8DeJ5rBW20xrnFhmFHbwN1mgms4E/kI7JE4We3de11FJ2FganOqhqaixM/ae4+Rk0xskkaixWgpGLnNB0ieRaNMZ55gaA8RwlZHGEQyimgUL3y+noMM+gDrHZujyzS76hFaN6gqwybuTxOB5XKyKDkZmpljoE4pBRVheOCpShL87RVBOGWh5K8RLx7xiEf8Ncejxj5q7KPGfrs19qsfkN1jBLAfjdt+sJZCyuHFjihHN261UUQZYyCaQy/PnZwSLhI2lB4i066F05JJCc5rYt87o8N1r2Tv/OmHJ66l8/blBbSwrE90G3z6+S/hFb9spCXx8tM/UI/Ox6cLf/jxI0c709rBIsKyrLh15PTE69sbNjqnpzO+v2G9wijkp+/AG/vrZ9J25unjM6dLpr58ptYrzZQlLyiQC1jf+fzTle5KKhtlvXD98j+R+gGEXuLbdUcE3r584XarXFulm3E+L5yWBUd5qcZfXirh7vgr8zRPofKUdI4PlA+XM//X/9Of+cN3z1zWlWExdvFhYE4z46g13IWOjiEx1soFYI6GasiyEPffPMY/7iDoewJAwwZ0u2OZlHEIvTl1JmUp4JZxGeSygDq5OOI2sVLM8Vws9Jx0XmOKJLAA6rcxQvjendY7bs6SlKQh3J1y4nLepiD7JH0QuqCa4j4VJQTOEXAPvVA3cMdHFBqXwCml2YGKGa3HfWrj4CQheH+Xksk5AdGRulkQGpDZ7YYmpJmHRIwqN+JEIkg0sbG43WV7pvGohej/XWInJdiWkHAaLX6e+WArhW4xAlvWjeenP5DmCUHOD4zFIx7xe41HjX3U2EeN/XZr7Fer73EM9qNzNKN2I2l0rMOCXdtbQ1VYloXeJ5s0T693H+y1czQnLyslZy6nzHkJm8ujtvBhXwunpLjtJHHOp5Vt3Wgk3q47VivnbWU7nbl8/MiXTz/x/HSmrYbrShsjPLfXM+P6mdfbG7U1xAXNCR1GLmfW8wmxjrUeoPK8IB8+UlJCeoPTwvbdB8bbQbodFAaSHfXpmHN9Y4zBIQWl8YdTpt1eyIT3Ny2S+Ho9OGrFMBTjetv5H//xhWs1vlzr7PRTJG0Koe3TWvjbP37k+bJNmRflDz/8wH/zX/+Zp8sKEOOTOtir4R7OSiCTiRvPyxy6CX0MaquID0SUrNG9igWDN6ugkkglU7JSNORnRje62LRpHIzJtBVNmCsqIQhud1JEkrk4AyB/90p39yAOTP3MJJmjgxxC0k5KCQG2nBFNIfEyE39bFi6nIJEMGwhQcmLN+uu4MAllSZjpZNhmlhHXz/193G8KMYppdQTBBUgpxjIiMn9+uE+N0bFagxWboI0eWCgsrl0cEyEloaRE7eEc1MzwdJfbIUY3DpKEnKCohP970hgpidBsMLqDdBJQ1gKeEXP60cnbyum0cj5v/2qRfcQjHvHXGY8a+6ixjxr77dbYf8VqOhZbzoXFDCdu1pjH2mspDM8giVwSkjLDBj5qjIHGoO5xgXlbWURQc6510C2xroV+NI7qrB9OXD5s9Ff4+Ke/5ZeXz1zOO/vLCy5gLuCdU1G8Zl5eXvj44/d8OBf2lyM4u0vmrQ+204YTR/BZC/3YsQ6ntbD4gFHxKZ69SghFv/7yRrk8Y3nDqeRCuOXURq0VdaO1g+6Vn38ZrGyMevB63TFZOG8Lv/zljZfXN8yNJvBlH3y6da61v49aohOKBbsuK3/47pn/87/9A3/75x8oOXE+XyjLidPTU+DQRg1s1e3K9Vo5Wo/k0cBC5bwwRkUdxnD6qLQp9F1KCm1IgrAh4ogu+OxgzaYdJU63GCXZHJf4O+nAAm0vCSN0ECNHo3MTCbmYJExbTULqRoW8rqzTW5066J7QAUhYlMboJaOa0AJrVs6bsszxmxId8loySwJJZbo9SXTxk4xgOYrH+/WMjmFTf/M+0BmTTDFIoiTxX0dDJmzrCoQsTZLYXGzswYw1I2nYapoLHWXpcb9DfMZp3RGd4zxJJJwszlaUJRfWNbPlBG6TUSsMGxj3DVI4nS+hO+qOEk4Ao+u/lJ6PeMQj/srjUWMfNfZRY7/dGvvVD8i1NvbbwbosJAncTBsD1XDZaVOSZFkLSeOTfVGhtriRSymMVchFOZUAl4+p67LmlaenjazKde/88cfv+GhXPmniH//u73i57fzx44lljXHT5y+fGePCbd/58nLgy4U//vnPPF0Ky3qijs7YE0bmtl9p3ViWgrUrtYMsG6e8sRShu6AlsabMQg+dw5L4/OUvdAo5AUwx7HqEJmSvdPdgnvbGz9konjjcSVuMJF5evtDMeGmDv3s5qH1ihn4z6kmqpJzZ1sy//5sf+W//q3/Dn3/4QC4ZFyhFUZx+VKoYPhqtN+pRsTHAhH1v1L5zOZ8CZ5MU60ZrgXsKd5oQ7e7DSVmnpI3SZ/KMHvalzY2BUXufJIPA9Tihi+huMIREjlGJe4yoNDq1ZYnTDLeQU7mPNMZQpMvsYoVlKaScaXNTNw/2KUzWqysiGZOEKShOyjMRkgZGiRT4Ng/JmKyJ4S3GPNFWRkJPfJOLcrggDi4JkdBPLDkcgHBh3yvugM2TgiK4xcafUmy0p9P6q1SSC82V3qNQmQYppplNaZo41ygpRTLnQi5lso0TmhJHPyZmLcZHwwaVODHY1o2yFE5bZlsySR4yb494xO81HjX2UWMfNfbbrbFf/YA8PASdDYvF5cKoDff2LpWCC91G2DO6sGZHlowTD2NZIKuwLopj9DEmO9JhDCQV/vSHZz7kwevff+bT68GtDk7PF05L4noLuZTzx+9Ia8GBy9NTHKHvN/7+8ydux8Gyrbz99B/xHtqAvQ1S+Y714w/sL1fO24a5oZePPGlHJLpd+gF7Q925qlJrI29njtsX+gjmJuqxwNtO7Z2G8/JmPD+fkfNGt87bcaP64C+3xl9eD6oH+zO9Y2MSqomSE0/nlb/98w/8X/72b/j4/MRAUJ9i2sR9Gm1nWGCOeu+TlSr03rjebvQxyCWT5ujFLJK29x4WkXl6njsMJE4WRELeZ9jsYH9deGP4O9YITUEAcQWTGHuYk3MIqqecKTmzlkzWICYYidad4TbxQUavgwx4zqxLwVGWMWgtNsbAN8WCd0LDcLRBSylGY5NYcScnGCNE67ujrVNFqe/SREyMFiDQhtNro5vHvSdYy0uCosRmkgpmHcdZSkZFQxdxUXrvwJ1YMXFeBPlFunEqJVyRvCMqeLfAntnA3OgYmjMDYViwiEO+RoG4Pn6rTYljvXEAkpTFM6L5QdJ7xCN+x/GosY8a+6ix326N/dcZQKqYQScesAOlLNMRxRjDOJ021pIpKYFZyKAkmYsp8EvD40i91oM1r6jX0K4joX5j3ys3nPN33/PH54+cT8pqOwoc/hJMT4PLxx9YsvPlH/+R10+fOI7GSInl9G/IkkiF2eVAbTtlTXz/lClSkTp4/WL88ccnsoSdopa4vuvrlXq7crsdjHGQ+406GbpHq7y+vnG93RgKnguvn165Hs7L7Y2/++mVY4pOf742TBJFJ3BcAwe1LoXLaePH7575r//tn/ju44XztiJCWFlax7ojI5E1mJw2rxkbkwUaWJ2lJPKSYfaHTB3AEORus5OLEVG+az7iobEphnkImuN3Zq+QsuKiIJGMvbY5Lgm8FAlMMjklRJVcVsrsvsbojG4hL+MejGEcFcNdcRckJZayhHOO3FmvHtI5wcsNy0mVYLK6x+Zx7+5c5qZTsT5IJTa6egy6j5B8GYN3xyHjXcdSvaBZKFnZ1sy6JLhrhqY8dRY1xlAy4rktKy4Jp9J7R8RJmtlUSTUIF3tt8z4qrtFFmxjdW2xKbXDzHZYVlkyxhLnH+G0WsEk1iBOHYQyrIMqSM62MSWx4xCMe8buNR4191NhHjf0ma+y/ooO8MnzQW+gxOoK7cLsF49bcuVxOPF9ObEuh98brrTHMgZBDEe/REbQAfasm3m43Titc1sTzahRvXNuVSrAKDUNt4Psr9dPf079cuTWjWWb7/m84fUh80MpNA+R/WKNYRUtcUDPFysLldOb5EkxZqztmQsfI28pzVqQ3zDpHr+xvn9mvX3Bz3l53snc+fbnReqfWyq1Wqhk3g5/fXnndDeEXbKaQiKBirOsCfmeXCksp/OG7Z/7dn3/gh48fOG0Lp2WNzRCliIblZ06YNZSZAAhZYQAJpdZbsGU9NsuQowmixDCbYHgnp4xN/FPOmZRz2FHi7zqQeTrzQHig38Xhh2voD/Y2x0TRab9bQQ7n/p/ajZIccthNNotTEMTnqYfH5qgKqdA8ISSSQkplkghiwzOf+Dd+xQLlJGQ1Sk6xMfRB7ZOgMIxjdLo5vQcuS1OaAvmzi7eBzc1ktErWTEorKQfGyh2OWsENlWDSugQzeXTHp7WqeGwoeW7E7kZJsC3K3hJOodawxNTw7yFpmmOzYPpeb0e4FM1R1uixITohrwNx/XeG7rCK+RUXxXhYTT/iEb/XeNTYR4191Nhvt8Z+HWLRHRkeb8YG19uNVp2ybnz4/gfO28J5S2yFSFQGy5KpLUDmSUFLwrmD3TMpZdbVUFFej4Ntz3z3tKBJGTRGO0i7suaCaWJ5/kjZOy/XV6Qkcg4Wb7mcaXZlpbLpwtPS2dPAe2d5/oE1r1xWYV3ux/QFI7HmwrBOWjK9fua47lhtjFERPbDW+bJ3jqPzl5/fuNXOWzOubXAMoU3vd5magdua+f75wg/ffeBpK+xH5dOXK2bOdj7xxx8+8m/+8B1LiYRRSRxt4BqJYRqJqpMUoBnQ6WhD3MPWoktzd5gdIA5uThvTO13vOoYhL5NSdIvijkpG1FE3RIyFEhsxIBqdZmsD6wb262jIkdgINE1HnVi8YzitNWpSVvR+mEDW8Fu/M2tl/lsz4bY3ajOWBInoqtdtYUmxaG2ERmRrHVehLErJyl0IpreB0jELnJG7UGuL0ZEow6P7VPO5B9y7xtgT7iM4R2kNUg6noNE7pWSm+g9lWREIy1Y1lnz/MfcTBye7cVqUNpY48SnQ+7j36Jjp7GIn21igj8HLbSdrjMzy3Nh6jXfq2LsTk3fnmG5K+3H6X1dpH/GIR/zVxaPGPmrso8bef8y3V2P/FZm3PYDOhJVjPQbr9szH77/nw4cTly2RqBR1RDP1Zvh88OZgTejdWNZMTjE6COzOQsmKe8fE+cuXFnInFg4uY3Ru++CQhmclnxc+jJXhSvJKSYWeEmnb2BJsS+Z86rRfdk7PHzj94UPoIE4ZGLdGHQPKQloybdz49Art5cqXnz/x+fML//jlhZ+vO1/eKj+9VD7dOrU7fTiGvLMny1LCWWgpPF02/vbPP/Dv/vRjSOsY7MfObT+QVFjXhVLC3aUNmyMx5+iGqpFNkZxwlekys8TDdyFrCdtFM4YJJgUEco5N456wVi28ynvYMIY+YoD1c0osuZAUlqIsKYEn3O6yMkQ3K8EAdg8yhaogNvUPScFcTYHzco/uNefYAHoP5u69A06aYwmL4Cbgyug9pGqITv2uPZhLnsLrsZWIGdYTx2jIBO/jgichZSPNUUsfFl3tJEuYW2RecsKNc46cJPI4uuzpEe+E1qXD3X5TxObphJBLiU2gdyQJVgQbbcrrCMkdTwkRZxvE9Wswp+N5DXqH3sND/h7xZ+NojaEeopeEeLqZxa/pmHXX0Bz9oPf6X1hyH/GIR/y1xKPGPmrso8Z+uzX2qx+QY9Eq7iFcXYqwbhtbVi7ryseLomRSUfrxxvVFMM/kzHxDISOy5kLOmd4q5tGBtRbAb/OpF6hKXnxKnAz6CJvD4YqvK7m+oX1w3gZWX8E7iw4GB87gaB2XTnlacDW8O8OgtyttPziOzqg3eDOMyvXt4PXlM//zf/yJv//ljZ+vjZdj0KaXeVLQnDivmXVZ2E4rl9PKZVs5rZnL+czT85nn85llYmx6q6RSWN8xR4B3hodUjLu/y7wIUwbGfbr7KL9KmSjSjT4mUxQNRqrEwhrWY1MZAwgM0rAY8SzLQs5pMmozy5rfTyGSTFZt63SLxUsz0Aw2NRcL5DEYIvgkM9w7NCTE6d+92l3pOO7hOR8+6uFhr8yNREFTMGxLTuSsIRKOYJ7oQ1mLAkrKRl4MWsZcEBsozLEVpFJgyMTb9UA4ieJTyzEIEEqZWDFNStZw0YlOORjLKWXGGICjKaESxQXxyU52Ul4hZXqtuAku4XIlomCOMEJTdCu4hFyRQVjG1ikEPxpxIBHtf4yn4tSiW2C6xuzMfTDlfuJ+OzGS2/f9f0PZfcQjHvHXEI8a+6ixjxr77dbYr35ALqVM0erAqdy/VkoKv/icyFlwGfS3ztv1IKUVktDqwdPljBm03mnVGaTw2m5X2hAkCUsKXNHoA9NgONa90pvGaMIMN/D8hFN5+eUzx1HBBwkCT3RUPr28cbtVxl/+P4zunMqZ/+7//t/w+vrCy08/0Ufn59edT9eDz9eDT68Hb0fl7Wj0MTuzXPjhfOK7p5Xn08r5cuFyOnE+ndi2jIyOSKabIKmQlxTJ5DBM6ENA5j2x8GJfckZSuPyYEYxOdyQrSiR5mQ4zrfVYTA63XnFRNAWjtHdwTxx90M2g93hIk1qa757j+Te2mrmwnc+ctoWcHOshUbP3wLmFGH2wRocLLk7OzmldSdLY26D2KRSjwpJjjOckRg89yEjS6Ax9ys/cn4u4kzWF409Kk0ww3Z9GZ+wNm6cFBcE0Ay0cejywW+pGKUI1QY5OQlHrLBiaFVcFixFU3MsQC1cN284QSU8wR1Fo6D+aR5Iumie+LTal0Q3kiALgoUkZWozRbY9uHEel9UrJiaXEtb95uDo5QcZIkmlDGL2HXeck4ojG5pxVopO1IGzMGdB8pLPrjqOe/6KC+4hHPOKvJx419lFjHzX2262xXyfpLQsqQmsHicG2XZCUWFclJ8FYOGpjtJ3Xa6d5oqiS00LdD+6SKbfjwEYi5XsX2DHXeHOpY6OF+DUB9hYLN6FmPgW7DRkDHwMjI8sWYxEM743RDS+ZJRvX25WX1xc8K//+v/3v+B/+x8T/87//D/z0+Y1fXisvR6cDp+3E84eP/JBzdIFL5vsPZ/74w3ec1xUsPMVVU4Dn+8FwxUzQlNGUSHIH38OxH+G9rmlq+5WpX5hwSZhkGBb2je4B4ZFIiv1oczRmWBvR0boyPHzhWx/YxGV1NzQJyUPIexVBzEM2xkNSG0kBlM8Lqku8797x3qmt0ZszJM1kduqINzOGIXhoSAqsGY4WQzTSlNRJOVirkuZrgchM2CSIFvCOmyIa90k0gysm0M2w0cEdGx0pQSZYM7ReA5tlcQ0+QUsynGxC7kazDhiajCwZTRqEDQJztBSlpEjqPmIT6PN+i0+h99ZxhVwK3SETicScIsXzroSEj+GE8Ln1SGSRsLM8rQtLTry83sCMvfVgKKuyd8NrdPz3rFR1JI33MZqKhvQMDhrWm2byax57EAoe8YhH/D7jUWMfNfZRY7/dGvvVD8g6F5cI4EJOmbRs5GXFBF5eX7BxsF9fqNVoBt4ca51rHdj1c8iZjIabkHrGfUyJlDQZuPEQ+7DwlLceN7OO8M4eYNYQH9hwUllxMRyD0RDxkIoZyras/PjdiY/PH3i+PHHsO8dhfP+nP/H93yj7cfD55QDN/PD993z8cGHRYH1qgpI0JHeGUOsNG84wn2D8kHxJKTokZgcpQO89WK6qpBQLKmchLwUhnGFqDxvGWBt3UXONTlUkXG3krmM5fdtb52idwSQMIJH4uqFFyRky05rSB2l0zKOrFQ05oP3tSk2KiGOjMUbgdwaO1R6aisRIyWyQ0xy3JGUphe2k9BEuQN2i40wqaIpNTZKSMDSsf2KzGxIe8KJBUmAgE/PTe+CTmID+p6ysS+a0ZdaR6PXgtnf2bhwjkVIGN5opg4yrIkXREfctpxz4KrljruLejh7kAFElEdc/RrgfWQ97UFyxJGhyUgK1gQqMQP5j7/gpAWJtiiilRPFa1sJlOwXmbXQGce9cYFhnaEeDLRFrZbKuc87U7rRhgeESwbn7yQdZw8aUCHp8QH7EI3638aixjxr7qLHfbo396gfkNQeOJGmm5ISm8OhWjP32hnjDWqPtlbc9bvqxdzQH1uQueQIazi/tQEXJJeEMdGoCelATSRAdl4fn9/BgHIo7KRdc4WgNnSLko9Uphh1dZ7e4oaclOqb/8B/+e15f3/jxxz+wrBt1r/zNj0b3AHyXnEOuREI2BIkEGt5wj1FO6GfLfGiZQKgrpgoSoxNDKMsaci9T3iXlRO+D1mt0qtjU8wuw/BiT0ZljPOL3MRc6RzI9cDPzoQZpYOCENEuaLZCrxs/FyTnhpmGtaCNGTaJIj050jEHtIeytmgCnjfC5H90RHQzTSVTI836Aq6PiLAru9j5WYWpxFg0RbsFiM5bYsHzaUK55Sgt5XHfvRh9GKsprFc5WWDxRcnTBqe9IPai1AuEKFFJIE9OkMUoCAuwvRhanlHDR8YnfUg29xWC9+hyrDLoN3AfqQiogOvUbS0bc5tqdQH6ZozKmLI0Tgv0qGOEbn5clHK1GrFk88FJFMqNMti3xOqoKxAkJbYQeaJIYi8UPJ2vG5E54eHxAfsQjfq/xqLGPGvuosd9ujf36CbIGriSVAH+HvMmB1SMwON45jp39eqUegzbmJ3ZvAWKXRGt3sewprJ1i0dvoqCitB7Yoqc4RTzjaaF6QnEk5wQSSrwq1xmgkqWIlLDLNg235LniNAM6+H3P8sHI0Z1hCUgDM49tkdqShW9h753bcJtsx2Ke6LJjAooqkwLgMC6vENgbiguaQ0NFQacFxjv0WHdbE1jBPCe6gd1TnvSDGWqPRp0ONWQhs++yMQ288NsKivGsX5jQxNm7kHI415pFgEJtis4EQVos2jDqcZjG2cRzrYz6zHBqBc8GP3uk5GM8Zwt2naGwY7pQcz7IshTVnhMHoldECJ1RSAk0sa/i6h/SOUY+D1hrmA+jUq/BLUszPLCq4K60Lu8UdGGNwHMc7sD8Wf/ydz3FXWVYSg2VJc7wWoyAYRCMdr+8ezGaRYCXPbR8RYT8Okq5RbOZoRjSKiTOve24AaIyV8LtwurMWxT0HRsqcnArrkul9cLTx6/tP+b2oqRZwZ68Vtxi9xdxH54nSb0TOH/GIR/zu4lFjHzX2UWO/3Rr7dRULC5ZiykryWGSt38cNRh+dehxTtFzwEdidOwPT3WmtkqZ8yx0YjYQ+XnehNUczqBhJiBtjAbgeI1ijZcmsKZGLksQ59hb/ft44GwPvAy1xvJ5SjB1UF0QSdTi1tilGneImycQ55Ug668E8bX3+XJMA/nswKhsWYH3mbxIdnxOaiTKTyybovLcjOjwXoE/plUztMKZ+pVnjy5c3Xj+/8PzhwraeWJaQrEEEZyAqMIH+LiEyHosw/k4IOZrOwC3wU+7BhPVpH9ktOmsbhvfwmu+BGIqOejiaBSWE1PFpSekaRw45UbKyljS9240sAqLkNRLchmBD8JTBJYDyaQEtDEJwfK+Do3bcY2y25AQ+2G97aB/GVI1hDbFgIY9xxPhvYqbuLj7B+v2V/ACJ5jq73UztFZeF1ndSnl70EtIxIjadhAx8UPJGba/cbnswbV0Cg6ZQ9woSo8EgJWgImkuMbiRBccVKIaVM7YPaRmg8JoIk4k5yYdhAxCc5QilAuqyhT9obyadLEU4fgbuzaZP5iEc84vcXjxr7qLGPGvvt1tivnyBnKFlRcVodhBv4oLWDo3rgVTwkQVrv4FDyEtqBFolqDqMba8rT59uAuOlHPTCDIhKjH0JwezCoLcYfkDiXjZwX+uhT3LkFmF0Tok5OytCELkscy5vhPhMJmX7rsaCj62YKWsf39Gn7WOsxX1Nm5+lgLX6GTKmYiWdRUfpEnK+LxohiQr/FLR7CNC2/22GCUcS5HpVbNdZFuF3feHm74uKUVJBlQVUn6zJOBkZv1BH2oqJ3J6TEIpnwejeYD1s1v492BGd0Y/Qe702Y5IOwLxVVug9Gb5MIoPQWfy45saiyZKVkKCWxrAun00pJThJHJWGWOEZoDA4LAe9xH1m44GTG6FgPy8ikGkmjoVGIG6MdvPVByjF+Ue+UfF/GoW2pKhiCizCGM96923O45ohjTQJ/585+tCksHp1ptzo3jQQkVPoU5zdeXz8jSozgcnjW61AEpZRCmBbZxLQBU95GJfQly7oGbm26DSENWmeMGMmlNNeCl1noovsWMYxEEmjNSZTYbMegjxg52kPF4hGP+N3Go8Y+auyjxn67NfbrGOQSI5u7uLJ4x7xhozK6YiljBrX3CbROoVU3k6WPjiDU3pCUgIG1g5IXzGE/OpoyZeo0ugW7c7hwVCOXxLItiChv152X643RawDG3TithWWB3hpZM0NiJMO7JEsmOfReKUlZS2Zd45JtDNwGow/afP/I3e5QJy7FUC3BQDXBVbB3wW6lpDJF1xvHUQO4DyGvMgYmkFIma55YKIUUI7I+IrHPU/vxtG2UUlCJRMAG4jG2iVFN6PdZD+cdCLFzBHrtuDnLuiIycV4apw3DPIgdKa7NRkjX5Hz3Kr8vrGDFBn4rNqecchAGUkKkoGlB0xp2o+osGrI5ZoNmNfa6YSSRSELrYB1EMB8UdSzDaJF8+xisW0Kt00ej7rAshayhsJPiuAMkT4tKD5F8i5OE3htiA/c8r8MnUQF8VBiTfKG/yv+MXknlzjzuJNGQCxrRoQuzg1ZH1RguKHme8mSwFtgqma/ZDTKUdUXHAAZpCAuJRsNEEAlWtZvB6KQkbCmkh4bDsgi3fcr4jMHRnJwLELipRzziEb/PeNTYR4191Nhvt8Z+9QOyj85eD2yCytV2eq0wfcj76PR20HuPMYT71E8McWsEJCnZM7031iVR1hNMSZRwpBFKzrh1AheSoluQhk5x730/eH25cT32EKwWWEr4fZcicySgCAnNmbhcp7VBHw3FyKmAjRhTuL076HR3TGLcVFTfmZDuRjcwETQFVkkk+i3RhOH46IgBY5A15HWO1t+Fyn2SEyQnshJdkhiX00K3glt4vmdVxAK7cxfS7rNDTBILaSl5jtDmIlWn95D5if1q+rj7QEq474weTkWD0DFsOGIhTi7Eosrr1DlsjWExUhFRllwoJbNkSGVqG5rQelhFdm9YbyhOuPzMznJimHKsCEQG3UBSYkgnDaOk0ELs5lDDPhUbk1kKaOg2igRwP9baADdSUkQC3G8SIzkbQu/RSeacgI7KwCVGSG6GuFAIa1Bzi3sSEumIxyaeU4i5+xzRuAEW35NSIqviJALqZCQtgIcTliQERdV+3XQo1FrfMU4ikbCqzum0sJZI6nU4yzI46qBXKA4a7IV3rNwjHvGI3188auyjxj5q7LdbY/8VDPJgtGBdLqeFMQ7qgLwUaoNb7aHFODqKUIfNTiQxCDB9UqUsy3uC52WhjxgDrNnIyckJRjNEFCce7FoSYxzsbzu3vXEcPbA/QJoe8rKUcKVJGdFCyUpWp952rrcDjsGSC1cbjBabxZjH+Nw7cAPRgssIkD/MX0FCGBZuKzYfwLDJ+hVwVdbkqDu9GdfaYgw2JWaSpBhRiCIJxELQOpdMtuicw1ZSEaskidftiblIYuNIU27lDoTvNjcH90ke0InDchCbDNbAsh0TayYC4s6CkDVA8JoVSRlFGJpRGyyEX3sphXUpFDVyyvM6Qny8tRSakgjinebGMeVy+nCQgiQHcbzv9Ls8j4ZsDmLBnh6d0QaoxrXfrzEp785Cc6RWUuhDqk4Whqd4vW4xjnEPDJXld1vKIXFKkITAwUWfSh2xdlEFl/na4HMUVoqiPoh0zDHq8kHyGJ+5arwf70FcGQ2XFdPE4Nf37x4yPr01jMBlyf1aVENHE2FZhKUYt9Q5UqGsNtfZZGU/4hGP+F3Go8Y+auyjxn67NfarH5CPvSIa+Kjj+sZtb7gu7Ifydj042kGvPS54AspTZgqMx7+DSM6UAsgvJqzbgtUDNwkmpPv7KGNYyKQUF2wc1L1Rbx3NG+ftRO+DlBaWbaGsG9saMjJ5KWTptOsVxRij0fogSUZTpvYedoQtJFwcpmRILPxhhObhJDKoCIIx6qCZgAZDUzTEuO8OPC6Do1mA54mxUGCTAr/F1J1UWeKBic0OMjrRUjKlZJIo+KCPjpJIPiajOXEXUnei4xojMDxCJKQiwUgQcAbeG9adMQyz2HhSTpy2zGlZQtcRn/7q00IypiShZ/ju4Z5JEpudm8XoLZ+pvYf5jDtCp9ad1mLk1brTXChFwoFpetKvqYAPlhxJ7DQwoTbDhuMa2Ce5k0sU1GMkIgIlZVKOe4tnzJyVeJbdDVeCbOGdJDkE80d0uKjQ3UkaeLK7FBAjWOEucfIgIu+6jJoTuSSSOjIaWRNLDoF6CJLK/XRmDKONg96UPtfxfftPmpASr+nz3y2lUJYlvkfidGZJSt4K25J520MmSNz+tRR9xCMe8Vccjxr7qLGPGvvt1tivVt+9DtyNWg+u152jgy5nhkOtnVoPVAbHvmMps20bU6EDweNmEjdFVUM7zw21gXjDgaP67NQ0dPs0o7nQ2y3kP9zJpVDWhbyutKkjuJQLKZ+5toEqaNuxesVaOMUcw2kOwzvLupESIaY+QrTbgTqgOxA4fXrvwfIUmTilwRg9Rksq5Ltlp/XQ66uDXTxGK33goqS8zDwKAoBIyKLknClJyASDNcY5IcJdSmK0kKDpw4J84dGpQuhGzuaaY3RgSpgw3WJyIs3kGKOFtIp4JN5MnowGp1amPSThTT7moiop9CdVnKQFF6F1wzLIJH1YMw4/UFWW5CThHWNmU/exJMcl4QM6wdRdUiLnEHR39xgNKUG0cI/uV2I0455iI7fZ16qG/E1KaMpxfzw2I6GTs0Pv7yOWlNIsOMK6FEQKe4suuvmg23QYsmDXCk4gxpT0fqKhYEJ2ZcmJJYWGI8SGxRwXBuHBURoqjirs1TlajKmSxulDkoTnGAmJhAOUkIJ0MgYiYYeasnJaMiLCXivqdzLIIx7xiN9jPGrso8Y+auy3W2O/+gH505c3zEIjb6+doZnsFRzebjutN05bpraODyMv23s3Ak7JJSQ0JlZo21IclY+BilN7OPSYhwSMa4w7chb6nZm7nSmSSSnwQaMNBoPeKp9/GaSslGwkGv3YwYzeOyqZsoDrXZtPkOb0YeHIMnyC7Z02jhjpqFKrhUyJO3h0fKIeMjMqyJRPce+BkxodNyOkA30+CEWnHWZgdgq5FNayULTEA03KkjNlbmxN4XrE6KXZIPgFAeI3A5/X1XuNhX5vdeeCOo79/c+aQtpltLBWLDlGUGZC7YYnJU18W2g6Ahi1NYZ1zouErztgZBTovYEoVjuaE1WEPGV4on9WUsmB8WKSGwiiQsopZIgIfcIYu8xkUw1HIHj3T2eOtphECZVIZOtGaxNHR2hEioNJD+bqu7i6oilR8l3z0fBeqX1aTk7sHsL7fXSHPqBoWFeObjR1tqKkJUenOzFb0dVn3EJ+Z9kiEXWE/M/17QrrEs9+jorcld6im+4ToTYGHLUhCOtWWFKI1Z8vBdcgQ6T0OEF+xCN+r/GosY8a+6ix326N/Wr1/fK200efbNOMSaL1zqiNuleW0wkYyGSkjuGYCuoa3R2CS3y9pOgSAOrewQVzKBodXTdjKQtmjVpHdDm60qygJVxPauvUMTA3attZPJi6vQ+yGNYabk5vzrYVVIRhxr4fkXDmuOYYN8zxiw8La8TIVZayIAq9VtwhkYKFGa1WLASEVPLEJXVEMsPCaSb0KGN8klI4+CzrSs5KUVjyEg+8aCRVIOYD82ROO2q8NjlW1+wQIyRce9xxxhQwD5ZrCKBPbUEBxhzHTUkesxbJuRR6EnKORNHZFUbHmPHp586wOWAyuvUQ69YQCG+9IaqsOd5LUg8RepEpdG4z4UIzMefAZAmhiyniZE00CUmjJcf982n39M7oTjGOKnMEiQ/WJMGiHpGsd8LCfacNXBJTI3HqSWZYi2PWqS3slfK6MkawXsuykFKadqyd5EryIF2EjBHcPe9jxhYnBoFty+gdYKWDFTif1uiYHTTn0L8UBRr9qIzeuY75PlsweZehDMssmpCUOW0bR63Ivat+xCMe8buLR4191NhHjf12a+y/ArGo73/2oATQRqXvO0kWSingxrou8+hc8Ik3CRR3dHp3r28bjqJ010joLGR3WjNKKYgMaq9haemKeSRaooXOn88kmt1NrQfuA3yEDt4IDNQYwrhVci7U3qi1IgpLyWAjXHUsMEajdo42MILZe/QegHINKZJoo2LTadMRZyklNAm7s+aCjT47WaGIcN7OrNsch9l0gVkXIIDt25pnAsYi22vlVjvXvdK7hdg4FdHCGJU70/Ku7zdwVKC1sBL1ERuAIZMYYciYLFQboE5rHZGET6qv+0A1xZ10nzaRCiOIIDmF4LdPYoOqM7ySyFNA3lGWYNhqPP2i8W+KThH5KelTluV9PJJLMKBtJFoWSor72s1xEr071WxCjBzUGRgqcwRkoX8pGklsHmsK7yQCZzf6iJMHC6HxYcS9mTAyZLJ/NfBMY8oPaUqIj2BkM1hTZk2wpLBATZqiu573S1WClawx0tGUcOusa0Fa6GIOc2zEOGq4IqngrdNGdLXxeo57Ar9ricKS4yRA9PEB+RGP+L3Go8Y+auyjxn67NfarH5BLTvRhU5LF8VHxesBoLKeNpSSEhbQVMGO/NlqrLLJMOQ9YStg11jYQjz8vSfmy7yHc7KBrCJ/3FkiVuNHpXbx6zHFNH51fXXyM2jqtx+IuJSMj/MrNnN4rflTMnNFb4LMIwoJZMCPHcGxeHyj16Dg2O9NMCloq7j51HB1kjkXcYQClsBShJJ06kHBaMtu2cjqtYCEFU5bM8JAyWZZCr40xjL3Fr7db5/V6hBtPLH1Sksk6jpMCdWfRAM+3Ftg189BwTElhsn+dWKBCjL+E0IfMObOW6C6ZXeAdeuXqeDfEY5MGnQkO4uOd/WrWSVOiZYyOpFhcQoiKJwWRgQqUlEiauWs+LrOLTBrWnWWOVHrrgVPqxo0OovSR5muGH338UjTFXuoe2DYLijROFASfz8vGQDXTJ8atDw/2L0pOMY4KwodMS9Y4gckps6hRBNaibEXZlkxJitlAZABxIlKWJe6dE+L4KYTZx7TeNJzh0LpRzWbnLYzp/uRuwaDOOnU/5Q6/ouQ8Gc0PFYtHPOL3Go8a+6ixjxr77dbYrwMcLR6kiGC903vHegczlqxctoXn8wWRzn7U6EhuYVmYirIuC89nJSu83o5wTGGw3wbDnNoDO3VJA8khr5KTBtrGjTFGMDDfL/a+aGKT2PfA7JAS3SrZO6r3cYAxWo9uWAQ0Ric2ZWzchTZ6jJx6p7cWjN9cosuygXmHHMf+vfdIoKmT2D2wNlpWlmJc1sxWCiXP0U5JaLonUUI1hLDFjHbUd//zvg9aG8HS7AOzkFUpuTCMibua4PM5kBEVDu/UXllyIeV7JxckgWHzuvUuxu4sWVmLkpMh79aRoc/o74kcDOhhgSdacppdZgDfw0M9CAwpFUwm4H4Mkpb5HuJEY1lSjIdm0rmBagl2sQZ71AZxwqGNlGYicsOrz+cdsjE2HCO0IjUnkNhIs8OQAdJjozXDLUZ5jEEdleEhKt/64O7UgyhCRjTRR4v1NTtmRzDJkAUthVRyeN2neObiIZ2jqoj1WWDSOzFjXQQ3wd7vY8d9ygL1yWZmMm7dcY21OMxorc2fE9aZy7K848ge8YhH/A7jUWMfNRYeNfYbrbFf/YAsklAc84F7jzGDKNv5xNPlxA/PZ85bQtW4JaWgFO3sNcY558vGDx8KSZx1yYxApNNPK3Uo7eWNZp3rtXM5bWiKLmlJIRXCxKb4FB1HBJfo7q5vr4whpLxEtyOCS8IIJ5WSElrCQx1RNCeWHP//vuhyKYQG+QgCgymmCR8dxJEUIHWzuOkiAtaxHt33kLCA3NbCkpVtSQHg14xOO1DHaM1odYB2GB1rHU1Cq43WevAA3GORWkjiuCSuxwFmXE6niXkPt5zWYlPNOYeDDdDMcRuUnEg67ROnlqQIwfItOYS4JbrL0TsiS2CJmDir7vjUUzQJ68k0GaUiUErGp8ajGRO0HxuLWQiBS0qoKEa0zuKAGXW/RfJmJYv8el9zWE0mdbbpahRMVyEk2IWiTmKgnoLB63ESce8K0xRC533cE13h6FEEfI54JOXohF1C0xEwh9oNwVgzuGZcF0wXPC14KjCZ11lASkYI2RqVcEgSWd5HkyklclFGC5JKckPuG4sFdixICA4eYyHMkT4QOjbsnZG8Luu/VmIf8YhH/JXGo8Y+auyjxn67NfarH5BDUsao7QYkPK+4Zra18PHDd1wuG2tWSglP7afLB7a3G6+3cJ+5bAvPTxtYZ10S+9FpzbBtYZjQe+V1N6x19qNxOi3kKdURWKCQ8TAzeg9NQdW42FwSquFfjjhJUyQqoY2YkpI1Ls+Z1pY2QgTbp7WjJ9roDI+O0UZ0LuJOWkpIjEx6p0zmcIyKjCQL5NhIhgmdQm1OSsKi+X280nqfYypjWTP7Xjmub1wuJ7obXTwWmg9sDGoL5u6+7/zy+TMfP34IK8xoUsGMBMgU5a4TW4TcNRpjxBSA+BFagmIsObOU8KB3N7xV9qO+32uf16apzGWvQRZwx0QpKcgOWcF9kJMg6f6cDJU07TIVUGoNYHwszoGNGti0iQvbSmHbMkvKiGTcE6Ih7L4UQXQweoxyVGWynKPbb4P3rj1IDxZEiOK4xXixHWMWHXsfXbkDI4gEmg2XXzFJNowsSrhOzi50wOjQupOKTLxSCLzfcUsy/3eMARZ4qTG7WBWfDkNQJDYUE94F6AHENdyZUMRlspknY1iieDziEY/4fcajxj5q7KPGfrs19qsfkJ8/nMEH+zU6JdWCkbk8PfPh+Sm6um2JK7T4/g/PG9f9BsB5O1GKTuFtD3ceJxiHaXA5LTjGoSFBM0awLZ3oAnIWtrKiYhw1mLNTAJLn7YnbUWk9Ho6q00Yna2geZnXurGCb2JSUEr0dIelCeMrvx0E96mRKKmMMsoZeX56ddM45MEgquHeSFnIOKXAxox6NFzc4LZxSBklYDy3G3mJsdhyD/eb88vkXlpxJy4aTwkdcBZGGyK8dkLnzw3dPJA1CQJobUdLQXuzDYmPJieM4MAg9vzkmyzmjqpQsFBVKik3IzZGUKMuGaKYePfA6EgkhDJILPuaJgVl0dh6i7ZaEnBKZYNXeXRrv4yERGK0Gm3mSGcYY9N7fsUtg9Kz0I3FeC5oyeVnfbT5TjuQYOuLnptC5VBGOvYLFBqsagPzR+9xg7yO3jHRD+sG0BIployFMr6rvsjaj9/fTjJjFgDJdftzpR6WlRJIl+AyaaBb6lHgQO0QNGS1sOcn0Gl0rFhvdoDPopJzwYXiP52tznJRI9DE4GJQ8AmsXxxnYJK884hGP+P3Fo8Y+auyjxn67NfarH5D//Mfv6O3KrTitO2FvuLJuZ5ZlYVkySxJeX99wG/R68Py0spXzhMAbbT+o3WjDGW7sR6X3MUcPwmXbSKLs1NAgzMqyrKQsLOvCeUswOvsxF6zEAhYzPn0ZvI0aD3uyeEvJ5DIlceaYJnoQp4+BTcHxW620XmmtTR1Jm6MDQ0Z40Yf2omLtjmURcg6x6RwW4XdzHcYY7PtBSspqSpHoUno92N+uvFxv1NbpNni6XLDhHK2hKcYQIvNnJ+g9cFBJEznHhrIsZSZfJExYM965xgt7HXPUJYgUzBOShG6NotHN/5poE2s2u9o+xnu3ZhYaiO4Db7ObV6jWSJ5xhLQuSJ5WjpNB7A7mHfUUm4sN9npgLvN5G40gh2gOrcsM3Fol9UbqkahIODYFsl5RzbGJpLjhIpNkYhZjEw9LVVzpcyO/Y49wKGmKwM/r7sMDsJ8ybRhuHfE+SQ5McoHOTnrgGGNUjipT3F5nEXCOIxjep20j6RS3txYM8dExa3ESoKAlhz5mH5PRG5uJ2/SZ92BDj6GwLjF+FKVPifVHPOIRv7941NhHjX3U2G+3xn71A/LH5wt9N6gBgnZdIOUQ5V5DMma0ndv1FbFEbY06FtaS2Upi9Er1g9YGexvU1qZ7TTA1j72Gg09W+lBa67QBWz5xOm1sa2JJjeNQcnFSCb09741W46aIODkvoMpSMpqVO+C+9w5qpLmIe2v03ql1cNt3zIO5CzEaggDep7ROu8MYMbgHoSHa2fi7YLQSeBkZKDoxRyGwnnS8d6r7fsNb5VQyuWyzK7R4QMFwwFXmAwu2bLOQUymlkPNA7+zLHMzf0YOEIO7IlGDBjWFBwPAkJAvsTyFsPu9JG0Lgwf40AvfU7kxj552Bi/scP0wCh3XcMkd3SBnBQ3RcBBkxltKJT+qjTktT56iNYcJwGJLQkTBXNGdMBgWnHfs8hUjk9UyebjcpT9vQvDLs4DCnoQxkariHOJLKdAmyYMCWpMiSMIuNOwTBE9lDwgYNjdCcY+wn82cEuSQuRJOGu484vY0Qvp9dtYoyzOZIcuDWoou3IML00RkWzOFgHWvcn4nnGh7kGeb7u29IECciKoWKwWj/Wo19xCMe8Vcajxr7qLGPGvvt1tivfkBOGnqAd0yLu80XM3xUhje6NcyMuhvkjaWCJmHhfe3jLuwHHCMkYMRDsLvWhpmzrAvreiIXI+eFbV3Z1gVVwywWj0gPLb45GjGLriZPS0e7402QmUQhzxJjJeg2qPWIDaT3OJZv0dXJXQRboKTCskztQR/x4CU6JUdxE1qLpFxyCFiLO+I6N4zKvoOuiozOUa/0vrOumcvlhA2huUUyaYxSzAZWO0kTKgMjxijuofFXyhpJruEIZG6kXHAXwp2ozg4zLDTdWiyQKddztFiwSWLjdIRhA7M7NmigEqOXMdrs2vV+KBCyM6qBF/KJ3UHwJKw55HdcY3PpQ9j3kNfpYyYsib0FK9YmMWOQMDVOS2ZVI3mMvrx3bi3WUioLpThZFa1vSAI3mVahAzEBJLQ79Y5fmhutCCJ5MmvjuiUnVlWwgRBMXzPFRlx7YMUkRoZoEBXmJiFiMIw++lyPgXPqfbDvndo7tQ+GC+sS+LhW2yRdTEKFT6F/i999bpT3AY9OjcvWo6PN5Y4De8QjHvF7jEeNfdTYR439dmvsVz8gjxa4njoIYLQ1PCnLyOzHwPoeen2S2dsNORrnOcroU6rjut/46efKbSS0JGwciFlYX7rSGmyXjQQkYFsKOQ2sH6DBiBQxUgpczRgOctfvC4vHQfy8NkJ7MaVwisEGrY542HL37JZ3SRtNyrotmDGtM4Vt296xT0mVXAoyGs06SGKMkHgpa2FNioij7pTZ8Zp1WhNqWsMdCGE7n+OkoA9qt4Cna5Aj4sEZNjpLLhwyvd7dMU3zEenE7zjDooNGJYS/p+B30hjnCBbSOCYIk0QxoHqL95hLJDgJ8199yh0Hu79MbNgiCZfwdHecMRqZ8C4fbdBNAwA/8UnmQuuN1i1IFSM6aRtGrdGlqWiwmT061KM5S4aMhLuODmw09mtD8kYumbUUthLkj/smFe+4xf7ihV7rxIjJtI4MdnY3wyy6SvGEuJNTeK8XUSwXrNy72kGofIIjNAvR/IQh2t8ldlQ1fOd7o7ZBrcY+jGNKHi1bnIDU28GwQS6FnMIVyEc8H+b6lYkzU/11w8ZD1udu3/qIRzzi9xmPGvuosY8a++3W2K9+QK6t8Xo7uB2DNrtEWQuv1xtqho1KFudyPvH0/IwTN2VYo3en1Z3bXrn1QXNI3RALJx5JCknIeUPzMm+cE1j9sKjMaYmxkw966yGarWBjcL1WWu2BLVFAnHocIaQ9YrzUR+CwxnD6HLNEVwIimdMps66ZdlTozrasbMsyxyLB6LXeUeL7xzCGH2gp5Lve4wSC995xV1TD1WWYYQguhbwonUxzpxOWnyrhce5zBJRE6Rg5J6R11AnZluPAPVNSiu4PCdzVdJcJt5kUItoam1YzJiPVcG+hXeiCkWPkReCF3EJiRgnB8e7GmNfjFk453Y3FJU4BcpwAuAWWyQRqCwb06IHPCnaoUXusGZdgtL5vMglA8Vaprb9rLyYJS86sTtZMbZVxXCll5ZY650XZspCTkEok2DBHPLrmPux9xJVKAQ9Jnz5PInIJYkoXZ0kx8lIN5nWaTGGdVp7WB6128EaXiUWbeDAfg4xQazCnjzna3FuPrtSd2gcm+i5Un3KLQpBj89CykLRw3N5CozJHV3sXVxcchk890P/VtfYRj3jEX1k8auyjxj5q7LdbY7/6AbmPwV47tyNukGumINT9YIzAztz6zul85vnpzK129v3GWjbUjaN2+gjx8JwEa+G6ozlGNsuyknMOyY6UQvh6UdR9Jq1hYzBaC6bqMLoPjuuNYz8Cg9I7uRRAwhPdjVoN6JjbZGPqe0dNSizrikhiWwtJjS6VbS08X1ZEnaPH6ysCw2MEJooqjO6oBD7GUQYhVN2wyQKNcVGrA/ERHacot70Hdmr6tzuCTzkbG52ETnC6cN4KrTUgxMdzTncnzhAMF2evNXzQNZOTklLgdDqdIrM/8/Bmj/9KnAxYLGAzx8eI8YPcnW4EFWeMiqYVccHGwCTsMsOhBpjp33tshGMMWu+BTZrjuT6MNp99rR2fY0TRER2zNMSms80RHWMMYADf75AhUhrknGhVGVtiW5RFFwRlb0IfFZVE7MrTkeqwSRaJEaAISP+VuVznxovAmgMrJfivxIr5TsxmhyxCFqG3FmvMKnUMao/kbcPCpnXMEVePNdTnGk49xPnXqTsq3RBpcYoxxc5T0nhWzvs6thFkhUc84hG/z3jU2EeNfdTYb7fGfvUDcgC6w27Q0XByQXFXnEHZTtxuA0kxylhKotaDL18GyyKMNtirgYdlYrBZ4+aEe4/ShtNtQHccR30KRSuRxONuYziobbAfO/t+o7XoHNyd9bxiZqx5ofVOF0NIiDVIAfJeS8JR8rohkiaQO/BHDjw/PbGksJzsEqB1kJCICUQRgiApsS6FdcmUnDhub4wW2CbzeLgiLUgHOI6FOw4E9sZDd+/uw47cOysJVjEZcUNNGczOCkPdw3XIQw4oq4RwuSrmCabne5w6BMbJRdGSZgdu0/pRQitxCpzrO5g9nreNPuVnnCEhFD46IcI9ryPw9dHV1tapPXBZsc4MH51anVs1mjOxWDaxWYDMe+BE0kmM2kSCbewjNh9VJedB70rvyuhKPxVOFpi7ICYYKTs5BfvXxq9EELM58kvE2EcyPoxrO2gjNpOlFLZF0RQyPMOCdaHD3t+zijJ6DVmjKWp/jI4JcUoz7haXsbZj83L2EZ2+irPkhOGhcWkVZ8SasejSVYAlh96ppLjLI3LkEY94xO8zHjX2UWMfNfbbrbFfP0HugUlRkXA+8XhgeLinqIaA+XFU9pQ4Wuc4dtx/dVU5mmAk9qOyHw0Itqt5dJvenZQDg1Ob0TtkiSPxJCDWaK1xHJ299infMbNbwnUm5YJYCJiHdiGUvJDTim87ozVKLrFZWMKnreNeK2MYy7KFgLqEGPXiQvOwiAz8UxAfcFDNrEXRMaj7G2MEZgkEmpO3jFtndMckyAyadMqgCGXJLJpQ9QClu8NcZCUnxmio+PSIDwmabVtpbY8RUyCZEDpKmt2gz2cTsj6igVtyj8WoqqScUJQ25XbS7GpDtVDeN2ozjSTV6U/v4DPBbfgUQXeOXhlzxLO3EDG/j+72WrnunT7tJW2+5/v4Cld0GE1jQ1HidVVkjr3ieu7ajjknhIUDBzes2yRXxOmHpIQkjS4XeSeE/CpDk4N8IAQBxoXeOtXm2GYUtnUhq7MscdrSPBJVVBneURX6gNyjc477A6pOTs6Ydqzm4SQV+p+xXkUGo2fa4axFKTlNIFrcmWFGEkKIXRZEAutmZni2/9Ka+4hHPOKvJB419lFjHzX2262xX/2AvB8NTQnReBNmxjJ1A60FK3JLkby3/aDWxpgJ31qNB5U3hnVut2NiPZzeWnimJ2EQzN3igvXJ4BQNj3Q6SqMfB/ut0YdPwe9ELgI6KJoQBzPYj4M+IllImXLKrJrR3hjdqF0YLbBS4ZyjYdf5tLKdlDRauMMkAcLeMSePReGGSGJZTqjCsb9Npi7gITuS7huOh9Ulw0jLiuQ4zi85c9421sTU8oNjj27KcZIkimZsMdShtUiwY98RDdC5jRHSKCiR+w2ReIw2F27JsUCHOR0HTTMhM1mj0w0LxrsjzT0ZxiR22CQFhC6lmsXmhVNb4M1aDzxQrR0XZV2c1uBaO3ttdDfCjz062nDcmW475rhP60x3lKm7OU83dH5fH9PK0kOaZaO8s6zvrG8RwRhTrzIWusqv+CcksGlukBMMBtWcbs6waYE6QFB8EWSyYjFBTZGUGHPTiQ4+TgtSknAFGvaOfUqSqLVDJ05hjhrvR4M0kcUZA9ayhCPSZGyEADxMP1TccmCxfLK7H/GIR/wu41FjHzX2UWO/3Rr71Q/Ib68HaYmO4d4puBmaNWwBR8WGsR+No8avGMnE0Tsq5DUwI/txEEh/Dy9zSjxcVYYb0p0ks9daQog8uTHqgfeKzhESI/QMVQX1gYrSWmWvPUZKKEUzeCallXXb6Le3wK7M/7QxAtithcv5wvmUyVphOCVnBk7RcP3RiZtBZiM6Drwb6o1tySHQbU4WJ2OUlMmphMxJDt1A0RRs3nWhLDHewhK3W8WBXMrE10zpFE1xOjDDJyvURsIkNkcfHt1gFkou9A49wEt0DzlJNOF+/zmKSYqTBwc0z4SK141NiIkb+lXGZ4hTNDzj7+SFVittWMjKeDgKteOgNWPMruw+NhsTs2QecjHRw8VIzntsCGFtOv9WQ+5FzCdXWFAD72Mu9IzbXI8zeTugyXEXSlF0OhXhMHyw94FqBjo+YgOqbXAXO+8TJ4Y4sS3OTSsVvE2hezc0JWqfrOMRyWvDKDmSHLdgI0/mcu8tiBY2sXYSm0Y3yCrkFCMvlZAKSgQ2Kin43CiWZflaij7iEY/4K45HjX3U2EeN/XZr7NdPkGsjz+5EMNyMbkK/GksWertRa+d1j0XYPdxdeutTNy9RtMNoWK+UspFyvOSI2UR0TinwV46+2yFiIUXi3Th6oxuz24oxVGv9XWOw9yu9B+DaJDEmfqY146UPxtHotXM0Y29tYk6UdSnv4Hzx0A0kEQxMlykbEtdsNtCUJtg/Ok3Fg/EpoDLtM+cDCRvKuC5JwYDd1kTJik5SQs4LfeyYRbK6h0N5zhmsg1l0dqKoBqZryQvJBfO7g0yhJCFJJicApw0NXJoZiqISFpJuE/HvSm8xOvGp0Ri95RyvjLi+YTY1OiOx3Z2jhktTH0YdA5NfNSvvOpn+T/6N34H9Hgv7DtRHYkTFxGklFVKS91OQGE4lhjm7dbqFzuGWNTQj5+uEb/x0KrKFUsIRqFnD3agjRNpD40UYo89iFN0kwBUQVZIISxaQRLVZUHJCutC70czog+iOh1GS8OFyQj3cjnLOlDTQyeTGB0mi7+6E8P2wRk5K8US+s3o9Tje0G0n7+2lGfyAsHvGI3208auyjxj5q7LdbY7/+Abk7a5rdig2OuuN9UJuxFNiyY31gLqScUTNghL1fn7iPMcAGpWRKCb/16JIGx34jS4g+55RxCUzO6EITCwKAxzF9e0+6IBy0VsPaEbARWnYyQgTHR8Ot0P+/7P1prG1pmucH/Z53WMMez3iHuDFWZtZcXUWV3W1X0wYjjMGABRKSja1uMNhiaCzLAswXBBYyn0AIGTBItmgmYyEbgRGWh7YbqHKX3dXV3dVZU2ZlVWZGZEbc8Ux7WNM78eFd59wTURk3IzNjupHrp7hx991nn73X3ns963nfZ/g/DnxyxMHTtnmmfCKNhfB592CMRsWARxPHk9yoXNDtncf1A4PP3ZimKPMuSY11QjFP3ymswigFKlFowdgSo/JOBW1RukRZjVJ5ZrpzeTxkCDmF0XVd7sxM5KGHElFjXZWIGmuf8vQff12UrhQpxvwerMH7Hm10Tts4x3XZuR6F0pUIweeC+5TUeIHNZ0aSfKbFkHeQSsjdzD4QgT5mQ/Mhy67kFFHKYt8pIikbrpA/1zjK41wX1cdxp37TlHG9cx8bG8Yfcj13XannYysZd6CJiI95JCiVobKGGAMgeJ/FxPOozzF1JfmxIYaxSSV3hAs53SjCKKjPzTE67+n6hBGbL3aDJ2lFktzM0Y7nQj8EnMvvuSoMVVFgJcLY6BHG40op1+sNZGMWxjGueuywBpJKKIkkBcEohhhIQ+64DSkiKrzIRCcmJl5iJh87+djJx35+fewLF8i50NrhnMd7hxtcnvXuIsMgUOd6IG1s/rJiR4wBH3OtDuSdhEohfwAp3EzDiSF3i4YIQx8xFaBUrjmSUevQeyRFQhgL0SOk5PEhF8prnXc+UXJ6pVBCjCrXUCU3/n4ieE9M+UTMRyUUZYm1lpjylxvGDlKjNRLz7rEfOoZhGIXTFT4IpjBEDVVpMabAKqFUCqMVxuRCfa3MuMO1hKRQpiQJxBjGEZH5xPaDI/hcKB9Q9D7k3XFuwwVJaJNPyBQjCsZdcJ78U2qdDSiOqRGVUCqhhVykrhSQ63DSKOqefCCJyfqVMc9BjzGPsLxO3UGi9yGLkaOy8HoYchPBuINlTJfkLtbR9sgpwusLzo1AekqjQcpzmZeUSCk3RMg4ASdPkOImtaN1FlrP8jQ5jdJHkF7GnWM2/DyXPeBiQkJAe8f15tWNhsQ4hlLGNJ4eZXquq49izN3Wzsd8scaTRJCoiEkxuFz35VzAOcfgxlSbSvR9i5j8PSTSmIZMhJSyiHoaU4jjB6VCxOmEVprSCHWh0aIIKTu9KKDHi4mf1scTE19cJh87+djJx35ufewLF8gpJdquJ4Zx9GSCvu9wHrwotOTVfWENIonBe7oh3Zpio8axignRudNWyELixmqyrAtZvHlMm1wbpfce5/MxCNc1Q4HBDSit0dogY6essTpP9hnrsrJ0Sd49hJh3cVprRAlaaURZTFGC5Ok+IcVxvGSi7RsGIlWZBaRDzB2VStuxMzbr5mlbUpaWQguVEZTkblHGdEVVFqQQSSHrJoYEzrssxJ6yuPrQ9/R9nzMyY6F4CCE/j1zrFubLjdImj1Ak15QlNMbUuOgRgcrOiGlAKU2KoKIex1ZmuSAk5o5ePL7vIeQuzqQVznuCyjPV47h77kMWIu9dIMV8FHnqZD4Js/Hl+iWQsXHkuug9G+H1v7lOhZCn3FyrIF4baboZM8rNZyCSd7r5qa4vKvk5OheIKU9WyoX32VBC8NlOQxZ3h7xDVirXLuXmbHkuVj4+n5CbLYbBozAoF/P7BrTR4045oU1B3+8JMeSucK1ROttEGK5rtoTBhee1Yokx7TVeKGIkSpadySLzWYMxVQoVx+iMgHP5wmbctEKemPiiMvnYycdOPvbz62NfXGLRNTjn8peAjEXqcXwjWSOwUhZjBDcM9D4xjDtBkSxIbZSiUDZ/gGRRa/QoVh3BiLqZtgJpPDfiuBOMxJBnnCMmz0nXiaoqx5B9Qulc6C3ja8WxE9iPMiV58kqWkikLO45AVCijEAlZ11AJyfejvl/uwHVh3NWlcScVItg8UccWJVpbEIMnsvcRQ6Aw2eCVsaRxZ+8C9EMgoQnRo7XC+UD0nm7osj5lyhcvNWo2igJGUW+t8khHPV6wvM8nt08RM56YWue/BZUnBo0SNIHnuyyl9I3moIypinC93U8wDKMANwnnIq3Lk4RiJAuc6/z9PTfc8fMfO2+vDfam9umWA7i+ACOKmEJ+TW6f0M+N9/oCfn0RSOPJf30xYDS0zuULh1WMU5gUpFGb8TqtNe6qQ/A3v5vtJ8vWjFvy8fiAkOhdJOBHZ6LQiVGMfuzGJU/fUZJ1JQmOwXuiyt3aSimshtw9zM1FJPH8s76uE4uSRc5TiogGlUKOrgAp5FTh4PyLTHRiYuIlZvKxk4+dfOzn18d+n0EhYQzzczPjHGWI4qjLgrIsmM1qtHg6HyCQJUKUQmmN0WOBNDLuRPMH5sPYsci4szVmFJG+1umLiBG8i6SxnqqsKoJ3aGPyB6tA0MQkJKXG8+p6dGDKaaiQR3cmhMKMU31GLT+R8WRI+eQcwnUNj0abvLvoB5fHbEahNDmtlL8IyU0KQ2BwLTF4KqsorEWpxFIXtP1AcI7OpzwOc2xCyALjjnHqZ07b5KqwcZLPdQoli3mHEFHaorQhBk9dz+mbPS4Kg3cURjMER9/3zOcFmkRpNL2PpBgIcRTnTp6kJO8kR+MRxdgx6/AxG0UEuiHgY7wReE9jgfv1jjR3qz7fzd7e0ea/5ZbBXL+lmNNw4wVaxi5ebvbvz1M/1891PZd9PBsJId48P+Qi/sSobUgiqufGcq3cEsbGj+vn07duX6ejro0rkOv9QkxYa7IuYxqjM+NuW4lglSApksIAMaB11l4sDEQiYoU0Ntzc7ODT81TT9QUjpDgeORgnWHLaUGIkxbxbD+H5hXBiYuKLxeRjJx87+djPr4+V2zuRiYmJiYmJiYmJiR93pjm2ExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyBMTExMTExMTExO3mBbIExMTExMTExMTE7eYFsgTExMTExMTExMTt5gWyC8hIvKmiPzu97j/2yJy8lkc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\n",
-      "text/plain": [
-       "<Figure size 720x432 with 6 Axes>"
-      ]
-     },
-     "metadata": {
-      "needs_background": "light"
-     },
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "from wildlife_tools.data.dataset import WildlifeDataset\n",
-    "from torchvision.transforms import Resize\n",
-    "import pandas as pd\n",
-    "%matplotlib inline\n",
-    "import matplotlib.pyplot as plt\n",
-    "\n",
-    "fig, axes = plt.subplots(2, 3, figsize=(10, 6))\n",
-    "axes = axes.flatten()\n",
-    "\n",
-    "methods = ['full', 'full_mask', 'full_hide', 'bbox', 'bbox_mask', 'bbox_hide']\n",
-    "for i, method in enumerate(methods):\n",
-    "    dataset = WildlifeDataset(metadata, dataset_root, img_load=method, transform=Resize(256))\n",
-    "    img, _ = dataset[0]\n",
-    "\n",
-    "    axes[i].imshow(img)\n",
-    "    axes[i].axis('off')\n",
-    "    axes[i].set_title(method, fontsize=10, pad=5)\n",
-    "\n",
-    "plt.tight_layout()\n",
-    "plt.savefig('loading_methods.png')\n",
-    "plt.show()"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "27811633",
-   "metadata": {},
-   "source": [
-    "## 3. Add Transform"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "id": "61523752",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "torch.Size([3, 256, 256])\n"
-     ]
-    },
-    {
-     "data": {
-      "text/plain": [
-       "tensor([[[0.2000, 0.2000, 0.2039,  ..., 0.1725, 0.1804, 0.1804],\n",
-       "         [0.2000, 0.2000, 0.2039,  ..., 0.1922, 0.2275, 0.2275],\n",
-       "         [0.2000, 0.2000, 0.2000,  ..., 0.2353, 0.2275, 0.2000],\n",
-       "         ...,\n",
-       "         [0.3961, 0.3804, 0.3843,  ..., 0.2824, 0.2706, 0.2824],\n",
-       "         [0.3922, 0.3804, 0.3882,  ..., 0.2784, 0.2627, 0.2588],\n",
-       "         [0.3922, 0.3843, 0.3882,  ..., 0.2706, 0.2549, 0.2471]],\n",
-       "\n",
-       "        [[0.3333, 0.3333, 0.3373,  ..., 0.2824, 0.2902, 0.2902],\n",
-       "         [0.3333, 0.3333, 0.3373,  ..., 0.3020, 0.3333, 0.3333],\n",
-       "         [0.3333, 0.3333, 0.3333,  ..., 0.3412, 0.3294, 0.3020],\n",
-       "         ...,\n",
-       "         [0.3451, 0.3294, 0.3333,  ..., 0.2314, 0.2196, 0.2314],\n",
-       "         [0.3451, 0.3294, 0.3373,  ..., 0.2275, 0.2118, 0.2118],\n",
-       "         [0.3451, 0.3373, 0.3412,  ..., 0.2196, 0.2118, 0.2118]],\n",
-       "\n",
-       "        [[0.3804, 0.3804, 0.3765,  ..., 0.3255, 0.3333, 0.3373],\n",
-       "         [0.3804, 0.3804, 0.3765,  ..., 0.3569, 0.4039, 0.4039],\n",
-       "         [0.3804, 0.3804, 0.3725,  ..., 0.4118, 0.4000, 0.3725],\n",
-       "         ...,\n",
-       "         [0.3098, 0.2941, 0.2980,  ..., 0.2000, 0.1882, 0.2000],\n",
-       "         [0.3059, 0.2941, 0.3020,  ..., 0.1961, 0.1804, 0.1804],\n",
-       "         [0.2980, 0.2902, 0.2980,  ..., 0.1882, 0.1725, 0.1725]]])"
-      ]
-     },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "from torchvision import transforms as T\n",
-    "transform = T.Compose([\n",
-    "    T.Resize([256, 256]),\n",
-    "    T.ToTensor(),\n",
-    "])\n",
-    "dataset = WildlifeDataset(metadata, root=root, img_load='full', transform=transform)\n",
-    "img, label = dataset[0]\n",
-    "print(img.shape)\n",
-    "img"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "48e82378",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.10.4"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/examples/example_deep_features.ipynb b/examples/example_deep_features.ipynb
deleted file mode 100644
index 9d70a92..0000000
--- a/examples/example_deep_features.ipynb
+++ /dev/null
@@ -1,216 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "id": "8de0c8b7",
-   "metadata": {
-    "scrolled": true
-   },
-   "outputs": [],
-   "source": [
-    "import timm\n",
-    "import pandas as pd\n",
-    "import torchvision.transforms as T\n",
-    "\n",
-    "from wildlife_tools.data import WildlifeDataset, SplitMetadata\n",
-    "from wildlife_tools.features import DeepFeatures\n",
-    "from wildlife_tools.similarity import CosineSimilarity\n",
-    "from wildlife_tools.inference import KnnClassifier"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "02049c82",
-   "metadata": {},
-   "source": [
-    "# Prepare dataset\n",
-    "- Load metadata from pandas dataframe\n",
-    "- Create two datasets using split information from the metadata \n",
-    "    - query - created from test split\n",
-    "    - database - created from train subset."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "id": "57e1482c",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "metadata = pd.read_csv('ExampleDataset/metadata.csv')\n",
-    "image_root = 'ExampleDataset'\n",
-    "\n",
-    "transform = T.Compose([\n",
-    "    T.Resize([224, 224]),\n",
-    "    T.ToTensor(),\n",
-    "    T.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),\n",
-    "])\n",
-    "\n",
-    "dataset_database = WildlifeDataset(\n",
-    "    metadata = metadata, \n",
-    "    root = image_root,\n",
-    "    split = SplitMetadata('split', 'train'),\n",
-    "    transform=transform\n",
-    ")\n",
-    "\n",
-    "dataset_query = WildlifeDataset(\n",
-    "    metadata = metadata, \n",
-    "    root = image_root,\n",
-    "    split = SplitMetadata('split', 'test'),\n",
-    "    transform=transform\n",
-    ")"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "10846eec",
-   "metadata": {},
-   "source": [
-    "# Extract features\n",
-    "- Extract features using MegaDescriptor-Tiny (https://huggingface.co/BVRA/MegaDescriptor-T-224)\n",
-    "\n",
-    "- Input to the extractor is WildlifeDataset object.\n",
-    "- Output is numpy array with shape (n_images x dim_embeddings)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "id": "d03cbcaa",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/mnt/appl/software/PyTorch/2.0.1-foss-2022a-CUDA-11.7.0/lib/python3.10/site-packages/torch/functional.py:504: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at /tmp/eb-build/PyTorch/2.0.1/foss-2022a-CUDA-11.7.0/pytorch-v2.0.1/aten/src/ATen/native/TensorShape.cpp:3483.)\n",
-      "  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]\n",
-      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  4.35it/s]\n",
-      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  3.47it/s]"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Query features shape: (1, 768), Database features shape: (2, 768)\n"
-     ]
-    },
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "\n"
-     ]
-    }
-   ],
-   "source": [
-    "from wildlife_tools.features import DeepFeatures\n",
-    "import timm\n",
-    "\n",
-    "backbone = timm.create_model('hf-hub:BVRA/MegaDescriptor-T-224', num_classes=0, pretrained=True)\n",
-    "extractor = DeepFeatures(backbone)\n",
-    "query, database = extractor(dataset_query), extractor(dataset_database)\n",
-    "\n",
-    "print(f'Query features shape: {query.shape}, Database features shape: {database.shape}')"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "62c2f49a",
-   "metadata": {},
-   "source": [
-    "## Similarity and k-nn classification\n",
-    "- Calculate cosine similarity between query and database features.\n",
-    "    - Inputs are arrays with query and database features\n",
-    "    - Output is matrix with shape n_query x n_database.\n",
-    "\n",
-    "- Use the similarity for KNN classifier\n",
-    "    - Output is array of n_query length.\n",
-    "    - Values in the array are nearest labels in the database. (with ordinal encoding - indexes of columns in the similarity matrix)."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "id": "8ebcf594",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Similarity matrix: \n",
-      " (1, 2)\n",
-      "Prediction \t ['a']\n",
-      "Ground truth \t ['a']\n",
-      "\n",
-      " Accuracy:  1.0\n"
-     ]
-    }
-   ],
-   "source": [
-    "# Cosine similarity between deep features\n",
-    "similarity = CosineSimilarity()\n",
-    "sim = similarity(query, database)['cosine']\n",
-    "print(\"Similarity matrix: \\n\", sim.shape)\n",
-    "\n",
-    "\n",
-    "# Nearest neigbour classifier using the similarity\n",
-    "classifier = KnnClassifier(k=1, database_labels=dataset_database.labels_map)\n",
-    "preds = classifier(sim)\n",
-    "print(\"Prediction \\t\", preds)\n",
-    "print(\"Ground truth \\t\", dataset_query.labels_string)\n",
-    "\n",
-    "acc = sum(preds == dataset_query.labels_string) / len(dataset_query.labels_string)\n",
-    "print('\\n Accuracy: ', acc)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "ea2ca8e6",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "ad5f6917",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "cf45278f",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.10.4"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/examples/example_sift_features.ipynb b/examples/example_sift_features.ipynb
deleted file mode 100644
index 5ccdde6..0000000
--- a/examples/example_sift_features.ipynb
+++ /dev/null
@@ -1,221 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "8de0c8b7",
-   "metadata": {
-    "scrolled": true
-   },
-   "outputs": [],
-   "source": [
-    "import timm\n",
-    "import pandas as pd\n",
-    "import torchvision.transforms as T\n",
-    "\n",
-    "from wildlife_tools.data import WildlifeDataset, SplitMetadata\n",
-    "from wildlife_tools.features import SIFTFeatures\n",
-    "from wildlife_tools.similarity import MatchDescriptors\n",
-    "from wildlife_tools.inference import KnnClassifier"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "02049c82",
-   "metadata": {},
-   "source": [
-    "# Prepare dataset\n",
-    "- Load metadata from pandas dataframe\n",
-    "- Create two datasets using split information from the metadata \n",
-    "    - query - created from test split\n",
-    "    - database - created from train subset."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "id": "57e1482c",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "metadata = pd.read_csv('ExampleDataset/metadata.csv')\n",
-    "image_root = 'ExampleDataset'\n",
-    "\n",
-    "transform = T.Compose([\n",
-    "    T.Resize([224, 224]),\n",
-    "    T.Grayscale()\n",
-    "])\n",
-    "\n",
-    "dataset_database = WildlifeDataset(\n",
-    "    metadata = metadata, \n",
-    "    root = image_root,\n",
-    "    split = SplitMetadata('split', 'train'),\n",
-    "    transform=transform\n",
-    ")\n",
-    "\n",
-    "dataset_query = WildlifeDataset(\n",
-    "    metadata = metadata, \n",
-    "    root = image_root,\n",
-    "    split = SplitMetadata('split', 'test'),\n",
-    "    transform=transform\n",
-    ")"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "10846eec",
-   "metadata": {},
-   "source": [
-    "# SIFT Feature Extraction\n",
-    "\n",
-    "This process involves extracting a set of SIFT descriptors for each image in the dataset. \n",
-    "\n",
-    "The extractor takes a WildlifeDataset object as input and produces a list of arrays, where each array corresponds to an image. These arrays are 2D with a shape of (n_descriptors x 128), where \"n_descriptors\" varies depending on the number of SIFT descriptors extracted for the respective image."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "id": "d03cbcaa",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "100%|█████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  6.67it/s]\n",
-      "100%|█████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 35.56it/s]"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "First 5 query features shape: [(238, 128)]\n",
-      "First 5 database features shape: [(182, 128), (190, 128)]\n"
-     ]
-    },
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "\n"
-     ]
-    }
-   ],
-   "source": [
-    "extractor = SIFTFeatures()\n",
-    "query, database = extractor(dataset_query), extractor(dataset_database)\n",
-    "\n",
-    "print(f'First 5 query features shape: {[i.shape for i in query[:5]]}')\n",
-    "print(f'First 5 database features shape: {[i.shape for i in database[:5]]}')"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "62c2f49a",
-   "metadata": {},
-   "source": [
-    "## Similarity and k-nn classification\n",
-    "- Calculate similarity between query and database as number of SIFT correspondences after filtering with Low ratio test.\n",
-    "    - Output is matrix with shape n_query x n_database.\n",
-    "- Use the similarity for KNN classifier\n",
-    "    - Output is array of n_query length.\n",
-    "    - Values in the array are nearest labels in the database. (with ordinal encoding - indexes of columns in the similarity matrix)."
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "id": "8ebcf594",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "100%|█████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 37.49it/s]"
-     ]
-    },
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Number of SIFT correspondences after 0.8 ratio test threshold: \n",
-      " [[34. 28.]]\n"
-     ]
-    },
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "\n"
-     ]
-    }
-   ],
-   "source": [
-    "similarity = MatchDescriptors(descriptor_dim=128, thresholds=[0.8])\n",
-    "sim = similarity(query, database)[0.8]\n",
-    "\n",
-    "print(\"Number of SIFT correspondences after 0.8 ratio test threshold: \\n\", sim)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "7cac17cc",
-   "metadata": {},
-   "source": [
-    "# Knn classification"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "id": "4f6739c6",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stdout",
-     "output_type": "stream",
-     "text": [
-      "Prediction \t ['a']\n",
-      "Ground truth \t ['a']\n",
-      "\n",
-      " Accuracy:  1.0\n"
-     ]
-    }
-   ],
-   "source": [
-    "# Nearest neigbour classifier using the similarity\n",
-    "classifier = KnnClassifier(k=1, database_labels=dataset_database.labels_map)\n",
-    "preds = classifier(sim)\n",
-    "print(\"Prediction \\t\", preds)\n",
-    "print(\"Ground truth \\t\", dataset_query.labels_string)\n",
-    "\n",
-    "acc = sum(preds == dataset_query.labels_string) / len(dataset_query.labels_string)\n",
-    "print('\\n Accuracy: ', acc)"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.10.4"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/examples/example_training.ipynb b/examples/example_training.ipynb
deleted file mode 100644
index 1cb3edd..0000000
--- a/examples/example_training.ipynb
+++ /dev/null
@@ -1,242 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "637facd4",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "from itertools import chain\n",
-    "import timm\n",
-    "import pandas as pd\n",
-    "import torchvision.transforms as T\n",
-    "from torch.optim import SGD\n",
-    "\n",
-    "from wildlife_tools.data import WildlifeDataset, SplitMetadata\n",
-    "from wildlife_tools.train import ArcFaceLoss, BasicTrainer"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "id": "7072ca67",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/mnt/appl/software/PyTorch/2.0.1-foss-2022a-CUDA-11.7.0/lib/python3.10/site-packages/torch/functional.py:504: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at /tmp/eb-build/PyTorch/2.0.1/foss-2022a-CUDA-11.7.0/pytorch-v2.0.1/aten/src/ATen/native/TensorShape.cpp:3483.)\n",
-      "  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]\n",
-      "Epoch 0: : 1it [00:02,  2.03s/it]\n",
-      "Epoch 1: : 1it [00:02,  2.18s/it]\n",
-      "Epoch 2: : 1it [00:02,  2.54s/it]\n",
-      "Epoch 3: : 1it [00:02,  2.21s/it]\n",
-      "Epoch 4: : 1it [00:02,  2.32s/it]\n",
-      "Epoch 5: : 1it [00:02,  2.29s/it]\n",
-      "Epoch 6: : 1it [00:02,  2.41s/it]\n",
-      "Epoch 7: : 1it [00:01,  1.99s/it]\n",
-      "Epoch 8: : 1it [00:02,  2.04s/it]\n",
-      "Epoch 9: : 1it [00:02,  2.49s/it]\n"
-     ]
-    }
-   ],
-   "source": [
-    "metadata = pd.read_csv('ExampleDataset/metadata.csv')\n",
-    "image_root = 'ExampleDataset'\n",
-    "\n",
-    "transform = T.Compose([\n",
-    "    T.Resize(size=256),\n",
-    "    T.CenterCrop(size=(224, 224)),\n",
-    "    T.ToTensor(),\n",
-    "    T.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),\n",
-    "])\n",
-    "\n",
-    "dataset = WildlifeDataset(\n",
-    "    metadata = metadata, \n",
-    "    root = image_root,\n",
-    "    split = SplitMetadata('split', 'train'),\n",
-    "    transform=transform\n",
-    ")\n",
-    "\n",
-    "# MegaDescriptor-T backbone from HuggingFace Hub\n",
-    "backbone = timm.create_model('hf-hub:BVRA/MegaDescriptor-T-224', num_classes=0, pretrained=True)\n",
-    "\n",
-    "# Arcface loss - needs backbone output size and number of classes.\n",
-    "objective = ArcFaceLoss(num_classes=dataset.num_classes, embedding_size=768, margin=0.5, scale=64)\n",
-    "\n",
-    "# Optimize parameters in backbone and in objective using single optimizer.\n",
-    "params = chain(backbone.parameters(), objective.parameters())\n",
-    "optimizer = SGD(params=params, lr=0.001, momentum=0.9)\n",
-    "\n",
-    "\n",
-    "trainer = BasicTrainer(\n",
-    "    dataset=dataset,\n",
-    "    model=backbone,\n",
-    "    objective=objective,\n",
-    "    optimizer=optimizer,\n",
-    "    epochs=10,\n",
-    "    device='cpu',\n",
-    ")\n",
-    "\n",
-    "trainer.train()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "5193dd33",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "markdown",
-   "id": "676ed674",
-   "metadata": {},
-   "source": [
-    "# Yaml config\n",
-    "Equivalently, it can be achieved using following Yaml config:"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "id": "de82caaa",
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "Epoch 0: : 1it [00:01,  1.53s/it]\n",
-      "Epoch 1: : 1it [00:02,  2.02s/it]\n",
-      "Epoch 2: : 1it [00:02,  2.05s/it]\n",
-      "Epoch 3: : 1it [00:02,  2.02s/it]\n",
-      "Epoch 4: : 1it [00:02,  2.10s/it]\n",
-      "Epoch 5: : 1it [00:02,  2.86s/it]\n",
-      "Epoch 6: : 1it [00:02,  2.16s/it]\n",
-      "Epoch 7: : 1it [00:02,  2.20s/it]\n",
-      "Epoch 8: : 1it [00:02,  2.22s/it]\n",
-      "Epoch 9: : 1it [00:02,  2.23s/it]\n"
-     ]
-    }
-   ],
-   "source": [
-    "from wildlife_tools.tools import parse_yaml, realize\n",
-    "\n",
-    "yaml_config = \"\"\"\n",
-    "trainer:\n",
-    "  method: EmbeddingTrainer\n",
-    "  device: cpu\n",
-    "  epochs: 10\n",
-    "\n",
-    "  dataset:\n",
-    "    method: WildlifeDataset\n",
-    "    metadata: ExampleDataset/metadata.csv\n",
-    "    root: ExampleDataset\n",
-    "    split:\n",
-    "      method: SplitMetadata\n",
-    "      col: split\n",
-    "      value: train\n",
-    "    transform:\n",
-    "      method: TransformTorchvision\n",
-    "      compose:\n",
-    "        - Resize(size=256)\n",
-    "        - CenterCrop(size=(224, 224))\n",
-    "        - ToTensor()\n",
-    "\n",
-    "  objective:\n",
-    "    method: ArcFaceLoss\n",
-    "    margin: 0.5\n",
-    "    scale: 64\n",
-    "\n",
-    "  optimizer:\n",
-    "    method: OptimizerSGD\n",
-    "    lr: 0.001\n",
-    "    momentum: 0.9\n",
-    "\n",
-    "  backbone:\n",
-    "    method: TimmBackbone\n",
-    "    model_name: hf-hub:BVRA/MegaDescriptor-T-224\n",
-    "    pretrained: true\n",
-    "\"\"\"\n",
-    "\n",
-    "\n",
-    "config = parse_yaml(yaml_config)\n",
-    "trainer = realize(config['trainer'])\n",
-    "trainer.train()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "b04c04bb",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "8821408f",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "4959c544",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "6917dfd3",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "32ea7ca3",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "e8a67406",
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.10.4"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/examples/loading_methods.png b/examples/loading_methods.png
deleted file mode 100644
index f0c2c7d..0000000
Binary files a/examples/loading_methods.png and /dev/null differ
diff --git a/mkdocs.yml b/mkdocs.yml
index d401aa3..be04602 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -19,14 +19,23 @@ plugins:
         python:
           paths: [wildlife_tools]
           options:
+            show_source: false
+            docstring_style: google
             annotations_path: brief
-
+            members_order: source
+            merge_init_into_class: true
+            show_root_full_path: true
+            show_root_toc_entry: true
 
 nav:
   - Introduction: index.md  
-  - Wildlife Dataset: wildlife_dataset.md
+  - Datasets: dataset.md
   - Train: training.md
   - Feature Extraction: features.md
-  - Similarity: similarity.md
+  - Similarity:
+    - Global Similarity: sim_global.md
+    - Matching Similarity: sim_matching.md
+    - Calibration: sim_calibration.md
+    - WildFusion: sim_wildfusion.md
   - Inference: inference.md
   - Baseline Results: baseline.md
diff --git a/pyproject.toml b/pyproject.toml
index 90136ef..5396b53 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -35,14 +35,13 @@ dependencies=[
           'opencv-python>=4.5.5.62',
           'Pillow>=7.1.2',
           'scikit-learn>=1.0.1',
-          'faiss-gpu ; platform_system != "Windows"',
-          'faiss-cpu ; platform_system == "Windows"',
           'pycocotools',
           'tensorboard',
           'pytorch_metric_learning',
           'transformers>=4.30.2',
           'wildlife-datasets>=0.3.4',
           'kornia>=0.6.12',
+          'gluefactory @ git+https://github.com/cvg/glue-factory.git@1f56839db2242929960d70f85bfac6c19ef2821c',
 ]
 
 [project.urls]
@@ -61,3 +60,12 @@ packages = [
   "wildlife_tools.train",
 ]
 
+[tool.flake8]
+max-line-length = 120
+
+[tool.black]
+line-length = 120
+
+[tool.isort]
+profile = "black"
+line_length = 120
\ No newline at end of file
diff --git a/wildlife_tools/__init__.py b/wildlife_tools/__init__.py
index b34443e..e69de29 100644
--- a/wildlife_tools/__init__.py
+++ b/wildlife_tools/__init__.py
@@ -1,1 +0,0 @@
-from .tools import realize
diff --git a/wildlife_tools/data/__init__.py b/wildlife_tools/data/__init__.py
index d6170ff..937b7c0 100644
--- a/wildlife_tools/data/__init__.py
+++ b/wildlife_tools/data/__init__.py
@@ -1,3 +1,1 @@
-from .dataset import FeatureDatabase, FeatureDataset, WildlifeDataset
-from .split import SplitChain, SplitChunk, SplitMetadata, SplitWildlife
-from .transform import TransformTimm, TransformTorchvision
+from .dataset import FeatureDatabase, FeatureDataset, ImageDataset, WildlifeDataset
diff --git a/wildlife_tools/data/dataset.py b/wildlife_tools/data/dataset.py
index 1d2a03e..09377dc 100644
--- a/wildlife_tools/data/dataset.py
+++ b/wildlife_tools/data/dataset.py
@@ -9,21 +9,15 @@
 import pycocotools.mask as mask_coco
 from PIL import Image
 
-from wildlife_tools.tools import realize
 
-
-class WildlifeDataset:
+class ImageDataset:
     """
-    PyTorch-style dataset for a wildlife datasets
+    PyTorch-style dataset for a image datasets
 
     Args:
         metadata: A pandas dataframe containing image metadata.
-        root: Root directory if paths in metadata are relative. If None, paths in metadata are used.
-        split: A function that splits metadata, e.g., instance of data.Split.
+        root: Root directory if paths in metadata are relative. If None, absolute paths in metadata are used.
         transform: A function that takes in an image and returns its transformed version.
-        img_load: Method to load images.
-            Options: 'full', 'full_mask', 'full_hide', 'bbox', 'bbox_mask', 'bbox_hide',
-                      and 'crop_black'.
         col_path: Column name in the metadata containing image file paths.
         col_label: Column name in the metadata containing class labels.
         load_label: If False, \_\_getitem\_\_ returns only image instead of (image, label) tuple.
@@ -39,27 +33,18 @@ def __init__(
         self,
         metadata: pd.DataFrame,
         root: str | None = None,
-        split: Callable | None = None,
         transform: Callable | None = None,
-        img_load: str = "full",
         col_path: str = "path",
         col_label: str = "identity",
         load_label: bool = True,
     ):
-        self.split = split
-        if self.split:
-            metadata = self.split(metadata)
-
         self.metadata = metadata.reset_index(drop=True)
         self.root = root
         self.transform = transform
-        self.img_load = img_load
         self.col_path = col_path
         self.col_label = col_label
         self.load_label = load_label
-        self.labels, self.labels_map = pd.factorize(
-            self.metadata[self.col_label].values
-        )
+        self.labels, self.labels_map = pd.factorize(self.metadata[self.col_label].values)
 
     @property
     def labels_string(self):
@@ -86,15 +71,84 @@ def __getitem__(self, idx):
             img_path = data[self.col_path]
         img = self.get_image(img_path)
 
-        if self.img_load in ["full_mask", "full_hide", "bbox_mask", "bbox_hide"]:
+        if self.transform:
+            img = self.transform(img)
+
+        if self.load_label:
+            return img, self.labels[idx]
+        else:
+            return img
+
+
+class WildlifeDataset(ImageDataset):
+    """
+    PyTorch-style dataset for a datasets from wildlife-datasets library.
+
+    Args:
+        metadata: A pandas dataframe containing image metadata.
+        root: Root directory if paths in metadata are relative. If None, absolute paths in metadata are used.
+        transform: A function that takes in an image and returns its transformed version.
+        img_load: Method to load images.
+            Options: 'full', 'full_mask', 'full_hide', 'bbox', 'bbox_mask', 'bbox_hide',
+                      and 'crop_black'.
+        col_path: Column name in the metadata containing image file paths.
+        col_label: Column name in the metadata containing class labels.
+        load_label: If False, \_\_getitem\_\_ returns only image instead of (image, label) tuple.
+
+    Attributes:
+        labels np.array : An integers array of ordinal encoding of labels.
+        labels_string np.array: A strings array of original labels.
+        labels_map dict: A mapping between labels and their ordinal encoding.
+        num_classes int: Return the number of unique classes in the dataset.
+    """
+
+    def __init__(
+        self,
+        metadata: pd.DataFrame,
+        root: str | None = None,
+        transform: Callable | None = None,
+        img_load: str = "full",
+        col_path: str = "path",
+        col_label: str = "identity",
+        load_label: bool = True,
+    ):
+        self.metadata = metadata.reset_index(drop=True)
+        self.root = root
+        self.transform = transform
+        self.img_load = img_load
+        self.col_path = col_path
+        self.col_label = col_label
+        self.load_label = load_label
+        self.labels, self.labels_map = pd.factorize(self.metadata[self.col_label].values)
+
+    def __getitem__(self, idx):
+        data = self.metadata.iloc[idx]
+        if self.root:
+            img_path = os.path.join(self.root, data[self.col_path])
+        else:
+            img_path = data[self.col_path]
+        img = self.get_image(img_path)
+
+        if self.img_load in ["full_mask", "full_hide", "bbox_mask", "bbox_hide", "mask_crop"]:
             if not ("segmentation" in data):
                 raise ValueError(f"{self.img_load} selected but no segmentation found.")
             if type(data["segmentation"]) == str:
                 segmentation = eval(data["segmentation"])
             else:
                 segmentation = data["segmentation"]
-
-        if self.img_load in ["bbox", "bbox_mask", "bbox_hide"]:
+            if isinstance(segmentation, list) or isinstance(segmentation, np.ndarray):
+                # Convert polygon to compressed RLE
+                w, h = img.size
+                rles = mask_coco.frPyObjects([segmentation], h, w)
+                segmentation = mask_coco.merge(rles)
+            if isinstance(segmentation, dict) and (
+                isinstance(segmentation["counts"], list) or isinstance(segmentation["counts"], np.ndarray)
+            ):
+                # Convert uncompressed RLE to compressed RLE
+                h, w = segmentation["size"]
+                segmentation = mask_coco.frPyObjects(segmentation, h, w)
+
+        if self.img_load in ["bbox"]:
             if not ("bbox" in data):
                 raise ValueError(f"{self.img_load} selected but no bbox found.")
             if type(data["bbox"]) == str:
@@ -108,29 +162,50 @@ def __getitem__(self, idx):
 
         # Mask background using segmentation mask.
         elif self.img_load == "full_mask":
-            mask = mask_coco.decode(segmentation).astype("bool")
-            img = Image.fromarray(img * mask[..., np.newaxis])
+            if not np.any(pd.isnull(segmentation)):
+                mask = mask_coco.decode(segmentation).astype("bool")
+                img = Image.fromarray(img * mask[..., np.newaxis])
 
         # Hide object using segmentation mask
         elif self.img_load == "full_hide":
-            mask = mask_coco.decode(segmentation).astype("bool")
-            img = Image.fromarray(img * ~mask[..., np.newaxis])
+            if not np.any(pd.isnull(segmentation)):
+                mask = mask_coco.decode(segmentation).astype("bool")
+                img = Image.fromarray(img * ~mask[..., np.newaxis])
 
         # Crop to bounding box
         elif self.img_load == "bbox":
-            img = img.crop((bbox[0], bbox[1], bbox[0] + bbox[2], bbox[1] + bbox[3]))
+            if not np.any(pd.isnull(bbox)):
+                img = img.crop((bbox[0], bbox[1], bbox[0] + bbox[2], bbox[1] + bbox[3]))
 
         # Mask background using segmentation mask and crop to bounding box.
         elif self.img_load == "bbox_mask":
-            mask = mask_coco.decode(segmentation).astype("bool")
-            img = Image.fromarray(img * mask[..., np.newaxis])
-            img = img.crop((bbox[0], bbox[1], bbox[0] + bbox[2], bbox[1] + bbox[3]))
+            if not np.any(pd.isnull(segmentation)):
+                mask = mask_coco.decode(segmentation).astype("bool")
+                img = Image.fromarray(img * mask[..., np.newaxis])
+                y_nonzero, x_nonzero, _ = np.nonzero(img)
+                img = img.crop(
+                    (
+                        np.min(x_nonzero),
+                        np.min(y_nonzero),
+                        np.max(x_nonzero),
+                        np.max(y_nonzero),
+                    )
+                )
 
         # Hide object using segmentation mask and crop to bounding box.
         elif self.img_load == "bbox_hide":
-            mask = mask_coco.decode(segmentation).astype("bool")
-            img = Image.fromarray(img * ~mask[..., np.newaxis])
-            img = img.crop((bbox[0], bbox[1], bbox[0] + bbox[2], bbox[1] + bbox[3]))
+            if not np.any(pd.isnull(segmentation)):
+                mask = mask_coco.decode(segmentation).astype("bool")
+                img = Image.fromarray(img * ~mask[..., np.newaxis])
+                y_nonzero, x_nonzero, _ = np.nonzero(img)
+                img = img.crop(
+                    (
+                        np.min(x_nonzero),
+                        np.min(y_nonzero),
+                        np.max(x_nonzero),
+                        np.max(y_nonzero),
+                    )
+                )
 
         # Crop black background around images
         elif self.img_load == "crop_black":
@@ -155,21 +230,30 @@ def __getitem__(self, idx):
         else:
             return img
 
-    @classmethod
-    def from_config(cls, config):
-        config["split"] = realize(config.get("split"))
-        config["transform"] = realize(config.get("transform"))
-        config["metadata"] = pd.read_csv(config["metadata"], index_col=False)
-        return cls(**config)
-
 
 class FeatureDataset:
+    """
+    PyTorch-style dataset for a extracted features. Couples features with metadata.
+
+    Args:
+        features: list, np.array or tensor of features. Index of features should match with metadata.
+        metadata: A pandas dataframe containing features metadata.
+        col_label: Column name in the metadata containing class labels.
+        load_label: If False, \_\_getitem\_\_ returns only image instead of (image, label) tuple.
+
+    Attributes:
+        labels np.array : An integers array of ordinal encoding of labels.
+        labels_string np.array: A strings array of original labels.
+        labels_map dict: A mapping between labels and their ordinal encoding.
+        num_classes int: Return the number of unique classes in the dataset.
+    """
+
     def __init__(
         self,
-        features,
-        metadata,
-        col_label="identity",
-        load_label=True,
+        features: list,
+        metadata: pd.DataFrame,
+        col_label: str = "identity",
+        load_label: bool = True,
     ):
 
         if len(features) != len(metadata):
@@ -179,9 +263,7 @@ def __init__(
         self.features = features
         self.metadata = metadata.reset_index(drop=True)
         self.col_label = col_label
-        self.labels, self.labels_map = pd.factorize(
-            self.metadata[self.col_label].values
-        )
+        self.labels, self.labels_map = pd.factorize(self.metadata[self.col_label].values)
 
     @property
     def labels_string(self):
diff --git a/wildlife_tools/data/split.py b/wildlife_tools/data/split.py
index b95f5e6..2bda319 100644
--- a/wildlife_tools/data/split.py
+++ b/wildlife_tools/data/split.py
@@ -1,17 +1,7 @@
-""" Split metadata to a subset. """
-
-from copy import deepcopy
-
 import numpy as np
 
-from wildlife_tools.tools import realize
-
-
-class Split:
-    pass
 
-
-class SplitChunk(Split):
+class SplitChunk:
     """Returns split as given nth chunk of metadata from equally sized metadata chunks."""
 
     def __init__(self, chunk=1, chunk_total=1):
@@ -21,96 +11,3 @@ def __init__(self, chunk=1, chunk_total=1):
     def __call__(self, metadata):
         metadata_chunks = np.array_split(metadata, self.chunk_total)
         return metadata_chunks[self.chunk - 1]
-
-
-class SplitWildlife(Split):
-    """
-    Returns split given wildlife splitter.
-    A splitter is callable that returns list of (train_idx, test_idx) given metadata.
-    Example:
-        method: SplitWildlife
-        splitter:
-            method: closed_set
-            seed: 0
-            ratio_train: 0.3
-        split: train
-    """
-
-    def __init__(self, splitter, split="train", split_map=None, repeat_idx=0):
-        self.splitter = splitter
-        self.split = split
-        self.split_map = split_map
-        self.repeat_idx = repeat_idx
-
-    def __call__(self, metadata):
-        if self.split_map is None:
-            dataset_idx = {"train": 0, "test": 1}[self.split]
-        else:
-            dataset_idx = self.split_map[self.split]
-
-        splits = self.splitter.split(metadata)
-        idx = splits[self.repeat_idx][dataset_idx]
-        return metadata.iloc[idx]
-
-    @classmethod
-    def from_config(cls, config):
-
-        # TODO: add this to wildlife datasets library
-        """
-        class RandomProportion():
-            def __init__(self, seed=1):
-                self.splitter = splits.TimeProportionSplit(seed=seed)
-
-            def split(self, df):
-                final_splits = []
-                for idx_train, idx_test in self.splitter.split(df):
-                    final_splits.append(self.splitter.resplit_random(df, idx_train, idx_test))
-                return final_splits
-        """
-
-        config = deepcopy(config)
-        from wildlife_datasets import splits
-
-        splitters = {
-            "open": splits.OpenSetSplit,
-            "closed": splits.ClosedSetSplit,
-            "disjoint": splits.DisjointSetSplit,
-            "time_proportion": splits.TimeProportionSplit,
-            # "random_proportion": splits.RandomProportionSplit,
-        }
-
-        splitter_config = config.pop("splitter")
-        method = splitter_config.pop("method")
-        splitter = splitters[method](**splitter_config)
-        return cls(splitter=splitter, **config)
-
-
-class SplitMetadata(Split):
-    """Returns split based on value in one of the metadata columns."""
-
-    def __init__(self, col, value):
-        self.col = col
-        self.value = value
-
-    def __call__(self, metadata):
-        return metadata[metadata[self.col] == self.value]
-
-
-class SplitChain(Split):
-    """Returns split from sequence of splits"""
-
-    def __init__(self, steps):
-        self.steps = steps
-
-    def __call__(self, metadata):
-        for step in self.steps:
-            metadata = step(metadata)
-        return metadata
-
-    @classmethod
-    def from_config(cls, config):
-        config = deepcopy(config)
-        steps = []
-        for config_step in config["steps"]:
-            steps.append(realize(config_step))
-        return cls(steps=steps)
diff --git a/wildlife_tools/data/transform.py b/wildlife_tools/data/transform.py
deleted file mode 100644
index 303a026..0000000
--- a/wildlife_tools/data/transform.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import timm
-import torchvision.transforms as T
-
-
-class TransformTimm:
-    """
-    Pytorch transform function from timm library.
-    Example configs in YAML file:
-
-    transform:
-        method: TransformTimm
-        input_size: 224
-        is_training: True
-        auto_augment: 'rand-m10-n2-mstd1'
-    """
-
-    @classmethod
-    def from_config(cls, config):
-        return timm.data.transforms_factory.create_transform(**config)
-
-
-class TransformTorchvision:
-    """
-    Pytorch transform function from torchvision library.
-    Example configs in YAML file:
-
-    transform:
-        method: TransformTorchvision
-        compose:
-            - 'Resize(size=256)'
-            - 'ToTensor()'
-    """
-
-    @classmethod
-    def from_config(cls, config):
-        compose = config["compose"]
-        return T.Compose([eval(s, globals(), T.__dict__) for s in compose])
diff --git a/wildlife_tools/features/__init__.py b/wildlife_tools/features/__init__.py
index 4d78e46..b0e39f8 100644
--- a/wildlife_tools/features/__init__.py
+++ b/wildlife_tools/features/__init__.py
@@ -1,5 +1,3 @@
 from .deep import ClipFeatures, DeepFeatures
+from .local import AlikedExtractor, DiskExtractor, SiftExtractor, SuperPointExtractor
 from .memory import DataToMemory
-from .sift import SIFTFeatures
-
-# from .superpoint import SuperPointFeatures #TODO: Fix import
diff --git a/wildlife_tools/features/base.py b/wildlife_tools/features/base.py
deleted file mode 100644
index 42fbbca..0000000
--- a/wildlife_tools/features/base.py
+++ /dev/null
@@ -1,23 +0,0 @@
-import os
-import pickle
-
-
-class FeatureExtractor:
-    def __call__(self, dataset):
-        raise NotImplementedError()
-
-    def run_and_save(self, dataset, save_path):
-        features = self(dataset)
-
-        os.makedirs(save_path, exist_ok=True)
-        name = self.__class__.__name__
-        data = {
-            "name": name,
-            "features": features,
-            "metadata": getattr(dataset, "metadata", None),
-        }
-
-        file_name = os.path.join(save_path, name + ".pkl")
-        with open(file_name, "wb") as file:
-            pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL)
-        return file_name
diff --git a/wildlife_tools/features/deep.py b/wildlife_tools/features/deep.py
index 7992ae7..537be8a 100644
--- a/wildlife_tools/features/deep.py
+++ b/wildlife_tools/features/deep.py
@@ -2,39 +2,47 @@
 from tqdm import tqdm
 from transformers import CLIPModel, CLIPProcessor
 
-from wildlife_tools.data import WildlifeDataset
-from wildlife_tools.features.base import FeatureExtractor
-from wildlife_tools.tools import realize
+from ..data import FeatureDataset, ImageDataset
 
 
-class DeepFeatures(FeatureExtractor):
+class DeepFeatures:
     """
     Extracts features using forward pass of pytorch model.
-
-    Args:
-        model: Pytorch model used for the feature extraction.
-        batch_size: Batch size used for the feature extraction.
-        num_workers: Number of workers used for data loading.
-        device: Select between cuda and cpu devices.
-
-    Returns:
-        An array with a shape of `n_input` x `dim_embedding`.
-
     """
 
     def __init__(
         self,
-        model,
+        model: torch.nn.Module,
         batch_size: int = 128,
         num_workers: int = 1,
         device: str = "cpu",
     ):
+        """
+        Args:
+            model: Pytorch model used for the feature extraction.
+            batch_size: Batch size used for the feature extraction.
+            num_workers: Number of workers used for data loading.
+            device: Select between cuda and cpu devices.
+
+        """
+
         self.batch_size = batch_size
         self.num_workers = num_workers
         self.device = device
         self.model = model
 
-    def __call__(self, dataset: WildlifeDataset):
+    def __call__(self, dataset: ImageDataset) -> FeatureDataset:
+        """
+        Extract features from input dataset and return them as a new FeatureDataset.
+
+        Args:
+            dataset: Extract features from this dataset.
+
+
+        Returns:
+            feature_dataset: A FeatureDataset containing the extracted features
+        """
+
         self.model = self.model.to(self.device)
         self.model = self.model.eval()
 
@@ -45,32 +53,25 @@ def __call__(self, dataset: WildlifeDataset):
             shuffle=False,
         )
         outputs = []
-        for image, label in tqdm(loader, mininterval=1, ncols=100):
+        for image, _ in tqdm(loader, mininterval=1, ncols=100):
             with torch.no_grad():
                 output = self.model(image.to(self.device))
                 outputs.append(output.cpu())
-        return torch.cat(outputs).numpy()
 
-    @classmethod
-    def from_config(cls, config):
-        model = realize(config.pop("model"))
-        return cls(model=model, **config)
+        self.model = self.model.to("cpu")
+        features = torch.cat(outputs).numpy()
+
+        return FeatureDataset(
+            metadata=dataset.metadata,
+            features=features,
+            col_label=dataset.col_label,
+        )
 
 
 class ClipFeatures:
     """
     Extract features using CLIP model (https://arxiv.org/pdf/2103.00020.pdf).
-    Uses raw images of input WildlifeDataset (i.e. dataset.transform = None)
-
-    Args:
-        model: transformer.CLIPModel. Uses VIT-L backbone by default.
-        processor: transformer.CLIPProcessor. Uses VIT-L processor by default.
-        batch_size: Batch size used for the feature extraction.
-        num_workers: Number of workers used for data loading.
-        device: Select between cuda and cpu devices.
-
-    Returns:
-        An array with a shape of `n_input` x `dim_embedding`.
+    Uses raw images of input ImageDataset (i.e. dataset.transform = None)
     """
 
     def __init__(
@@ -81,10 +82,17 @@ def __init__(
         num_workers=1,
         device="cpu",
     ):
+        """
+        Args:
+            model: transformer.CLIPModel. Uses VIT-L backbone by default.
+            processor: transformer.CLIPProcessor. Uses VIT-L processor by default.
+            batch_size: Batch size used for the feature extraction.
+            num_workers: Number of workers used for data loading.
+            device: Select between cuda and cpu devices.
+
+        """
         if model is None:
-            model = CLIPModel.from_pretrained(
-                "openai/clip-vit-large-patch14"
-            ).vision_model
+            model = CLIPModel.from_pretrained("openai/clip-vit-large-patch14").vision_model
 
         if processor is None:
             processor = CLIPProcessor.from_pretrained("openai/clip-vit-large-patch14")
@@ -94,11 +102,19 @@ def __init__(
         self.batch_size = batch_size
         self.num_workers = num_workers
         self.device = device
-        self.transform = lambda x: processor(images=x, return_tensors="pt")[
-            "pixel_values"
-        ]
+        self.transform = lambda x: processor(images=x, return_tensors="pt")["pixel_values"]
+
+    def __call__(self, dataset: ImageDataset) -> FeatureDataset:
+        """
+        Extract clip features from input dataset and return them as a new FeatureDataset.
 
-    def __call__(self, dataset: WildlifeDataset):
+        Args:
+            dataset: Extract features from this dataset.
+
+
+        Returns:
+            feature_dataset: A FeatureDataset containing the extracted features
+        """
         self.model = self.model.to(self.device)
         self.model = self.model.eval()
 
@@ -116,4 +132,10 @@ def __call__(self, dataset: WildlifeDataset):
             with torch.no_grad():
                 output = self.model(self.transform(image).to(self.device)).pooler_output
                 outputs.append(output.cpu())
-        return torch.cat(outputs).numpy()
+        features = torch.cat(outputs).numpy()
+
+        return FeatureDataset(
+            metadata=dataset.metadata,
+            features=features,
+            col_label=dataset.col_label,
+        )
diff --git a/wildlife_tools/features/gluefactory_fix.py b/wildlife_tools/features/gluefactory_fix.py
new file mode 100644
index 0000000..303baad
--- /dev/null
+++ b/wildlife_tools/features/gluefactory_fix.py
@@ -0,0 +1,91 @@
+"""
+Fix SIFT extractor bugs in Gluefactory.
+
+- Fixes forcing number of keypoints - Pending PR https://github.com/cvg/glue-factory/pull/50
+- Fixes situation with no keypoint and descriptors for OpenCV SIFT.
+"""
+
+import numpy as np
+import torch
+from packaging import version
+
+try:
+    import pycolmap
+except ImportError:
+    pycolmap = None
+
+from gluefactory.models.extractors.sift import filter_dog_point, run_opencv_sift
+from gluefactory.models.utils.misc import pad_to_length
+
+
+def extract_single_image_fix(self, image: torch.Tensor):
+    image_np = image.cpu().numpy().squeeze(0)
+    if self.conf.backend.startswith("pycolmap"):
+        if version.parse(pycolmap.__version__) >= version.parse("0.5.0"):
+            detections, descriptors = self.sift.extract(image_np)
+            scores = None  # Scores are not exposed by COLMAP anymore.
+        else:
+            detections, scores, descriptors = self.sift.extract(image_np)
+        keypoints = detections[:, :2]  # Keep only (x, y).
+        scales, angles = detections[:, -2:].T
+        if scores is not None and (self.conf.backend == "pycolmap_cpu" or not pycolmap.has_cuda):
+            # Set the scores as a combination of abs. response and scale.
+            scores = np.abs(scores) * scales
+    elif self.conf.backend == "opencv":
+        # TODO: Check if opencv keypoints are already in corner convention
+        keypoints, scores, scales, angles, descriptors = run_opencv_sift(self.sift, (image_np * 255.0).astype(np.uint8))
+
+    if (descriptors is None) or (descriptors.size == 0):
+        descriptors = np.empty(shape=(0, 128), dtype=np.float32)
+
+    if (keypoints is None) or (keypoints.size == 0):
+        keypoints = np.empty(shape=(0, 2), dtype=np.float32)
+
+    pred = {
+        "keypoints": keypoints,
+        "scales": scales,
+        "oris": angles,
+        "descriptors": descriptors,
+    }
+    if scores is not None:
+        pred["keypoint_scores"] = scores
+
+    # sometimes pycolmap returns points outside the image. We remove them
+    if self.conf.backend.startswith("pycolmap"):
+        is_inside = (pred["keypoints"] + 0.5 < np.array([image_np.shape[-2:][::-1]])).all(-1)
+        pred = {k: v[is_inside] for k, v in pred.items()}
+
+    if self.conf.nms_radius is not None:
+        keep = filter_dog_point(
+            pred["keypoints"],
+            pred["scales"],
+            pred["oris"],
+            image_np.shape,
+            self.conf.nms_radius,
+            pred["keypoint_scores"],
+        )
+        pred = {k: v[keep] for k, v in pred.items()}
+
+    pred = {k: torch.from_numpy(v) for k, v in pred.items()}
+    if scores is not None:
+        # Keep the k keypoints with highest score
+        num_points = self.conf.max_num_keypoints
+        if num_points is not None and len(pred["keypoints"]) > num_points:
+            indices = torch.topk(pred["keypoint_scores"], num_points).indices
+            pred = {k: v[indices] for k, v in pred.items()}
+
+    if self.conf.force_num_keypoints:
+        num_points = max(self.conf.max_num_keypoints, len(pred["keypoints"]))
+        pred["keypoints"] = pad_to_length(
+            pred["keypoints"],
+            num_points,
+            -2,
+            mode="random_c",
+            bounds=(0, min(image.shape[1:])),
+        )
+        pred["scales"] = pad_to_length(pred["scales"], num_points, -1, mode="zeros")
+        pred["oris"] = pad_to_length(pred["oris"], num_points, -1, mode="zeros")
+        pred["descriptors"] = pad_to_length(pred["descriptors"], num_points, -2, mode="zeros")
+        if pred["keypoint_scores"] is not None:
+            pred["keypoint_scores"] = pad_to_length(pred["keypoint_scores"], num_points, -1, mode="zeros")
+    return pred
diff --git a/wildlife_tools/features/local.py b/wildlife_tools/features/local.py
new file mode 100644
index 0000000..adbc540
--- /dev/null
+++ b/wildlife_tools/features/local.py
@@ -0,0 +1,180 @@
+import types
+
+import torch
+from gluefactory.models import get_model
+from omegaconf import OmegaConf
+from tqdm import tqdm
+
+from ..data import FeatureDataset, ImageDataset
+from .gluefactory_fix import extract_single_image_fix  # https://github.com/cvg/glue-factory/pull/50
+
+
+class GlueFactoryExtractor:
+    """
+    Base class for Gluefactory extractors.
+
+    Common configuration of extractors:
+
+        1. max_num_keypoints: Maximum number of keypoints to return.
+        1. detection_threshold: Threshold for keypoints detection (use 0.0 if force_num_keypoints = True).
+        1. force_num_keypoints: Force to return exactly max_num_keypoints keypoints.
+
+    """
+
+    def __init__(
+        self,
+        config: dict,
+        device: None | str = None,
+        num_workers: int = 1,
+    ):
+        """
+        Args:
+            config: Configuration dictionary for the model.
+            device: Select between cuda and cpu devices.
+            num_workers: Number of workers used for data loading.
+
+        """
+
+        config = OmegaConf.create(config)
+        if device is None:
+            device = "cuda" if torch.cuda.is_available() else "cpu"
+        self.model = get_model(config.name)(config)
+        self.device = device
+        self.num_workers = num_workers
+
+    def __call__(self, dataset: ImageDataset) -> FeatureDataset:
+        """
+        Extract clip features from input dataset and return them as a new FeatureDataset.
+        Gluefactory extractors requires with 3 channel RBG tensors scaled to [0, 1].
+
+        Args:
+            dataset: Extract features from this dataset.
+        Returns:
+            feature_dataset: A FeatureDataset containing the extracted features
+        """
+        features = []
+        loader = torch.utils.data.DataLoader(
+            dataset,
+            num_workers=self.num_workers,
+            batch_size=1,
+            shuffle=False,
+        )
+
+        self.model.to(self.device)
+        for image, _ in tqdm(loader, mininterval=1, ncols=100):
+            image = image.to(self.device)
+            with torch.inference_mode():
+                output = self.model({"image": image})
+                output = {k: v.squeeze(0).cpu() for k, v in output.items()}
+                output["image_size"] = torch.tensor(image.shape[2:])
+            features.append(output)
+
+        self.model.to("cpu")
+        return FeatureDataset(
+            metadata=dataset.metadata,
+            features=features,
+            col_label=dataset.col_label,
+        )
+
+
+class SuperPointExtractor(GlueFactoryExtractor):
+    """
+    Superpoint keypoints and descriptors.
+
+    - Paper: SuperPoint: Self-Supervised Interest Point Detection and Description
+    - Link: https://arxiv.org/abs/1712.07629
+    """
+
+    def __init__(
+        self,
+        detection_threshold=0.0,
+        force_num_keypoints=True,
+        max_num_keypoints=256,
+        device: None | str = None,
+        **model_config,
+    ):
+        config = {
+            "name": "gluefactory_nonfree.superpoint",
+            "nms_radius": 3,
+            "detection_threshold": detection_threshold,
+            "force_num_keypoints": force_num_keypoints,
+            "max_num_keypoints": max_num_keypoints,
+        } | model_config
+        super().__init__(config, device=device)
+
+
+class DiskExtractor(GlueFactoryExtractor):
+    """
+    DISK keypoints and descriptors.
+
+    - Paper: DISK: learning local features with policy gradient
+    - Link: https://arxiv.org/abs/2006.13566
+    """
+
+    def __init__(
+        self,
+        detection_threshold=0.0,
+        force_num_keypoints=True,
+        max_num_keypoints=256,
+        device: None | str = None,
+        **model_config,
+    ):
+        config = {
+            "name": "extractors.disk_kornia",
+            "detection_threshold": detection_threshold,
+            "force_num_keypoints": force_num_keypoints,
+            "max_num_keypoints": max_num_keypoints,
+        } | model_config
+        super().__init__(config, device=device)
+
+
+class AlikedExtractor(GlueFactoryExtractor):
+    """
+    ALIKED keypoints and descriptors.
+
+    - Paper: ALIKED: A Lighter Keypoint and Descriptor Extraction Network via Deformable Transformation
+    - Link: https://arxiv.org/abs/2304.03608
+    """
+
+    def __init__(
+        self,
+        detection_threshold=0.0,
+        force_num_keypoints=True,
+        max_num_keypoints=256,
+        device: None | str = None,
+        **model_config,
+    ):
+
+        config = {
+            "name": "extractors.aliked",
+            "detection_threshold": detection_threshold,
+            "force_num_keypoints": force_num_keypoints,
+            "max_num_keypoints": max_num_keypoints,
+        } | model_config
+        super().__init__(config, device=device)
+
+
+class SiftExtractor(GlueFactoryExtractor):
+    """SIFT keypoints and descriptors."""
+
+    def __init__(
+        self,
+        backend="opencv",
+        detection_threshold=0.0,
+        force_num_keypoints=True,
+        max_num_keypoints=256,
+        device: None | str = None,
+        **model_config,
+    ):
+
+        config = {
+            "name": "extractors.sift",
+            "backend": backend,
+            "detection_threshold": detection_threshold,
+            "force_num_keypoints": force_num_keypoints,
+            "max_num_keypoints": max_num_keypoints,
+        } | model_config
+        super().__init__(config)
+
+        # Fix extract_single_image method.
+        self.model.extract_single_image = types.MethodType(extract_single_image_fix, self.model)
diff --git a/wildlife_tools/features/memory.py b/wildlife_tools/features/memory.py
index 566f1aa..5fd22dc 100644
--- a/wildlife_tools/features/memory.py
+++ b/wildlife_tools/features/memory.py
@@ -1,14 +1,26 @@
 from tqdm import tqdm
 
-from wildlife_tools.data import WildlifeDataset
-from wildlife_tools.features.base import FeatureExtractor
+from ..data import FeatureDataset, ImageDataset
 
 
-class DataToMemory(FeatureExtractor):
-    """Loads dataset to memory for faster access."""
+class DataToMemory:
+    """
+    Loads the dataset into memory for quicker access
+
+    Ideal for LOFTR, which operates directly on images, because loading images from storage can
+    become a bottleneck when matching all query-database pairs, requiring n_query x n_database
+    image loads.
+
+    """
+
+    def __call__(self, dataset: ImageDataset):
+        """Loads data from input dataset into array and returns them as a new FeatureDataset."""
 
-    def __call__(self, dataset: WildlifeDataset):
         features = []
-        for x, y in tqdm(dataset, mininterval=1, ncols=100):
+        for x, _ in tqdm(dataset, mininterval=1, ncols=100):
             features.append(x)
-        return features
+        return FeatureDataset(
+            metadata=dataset.metadata,
+            features=features,
+            col_label=dataset.col_label,
+        )
diff --git a/wildlife_tools/features/models/superpoint.py b/wildlife_tools/features/models/superpoint.py
deleted file mode 100644
index 1df99df..0000000
--- a/wildlife_tools/features/models/superpoint.py
+++ /dev/null
@@ -1,221 +0,0 @@
-# %BANNER_BEGIN%
-# ---------------------------------------------------------------------
-# %COPYRIGHT_BEGIN%
-#
-#  Magic Leap, Inc. ("COMPANY") CONFIDENTIAL
-#
-#  Unpublished Copyright (c) 2020
-#  Magic Leap, Inc., All Rights Reserved.
-#
-# NOTICE:  All information contained herein is, and remains the property
-# of COMPANY. The intellectual and technical concepts contained herein
-# are proprietary to COMPANY and may be covered by U.S. and Foreign
-# Patents, patents in process, and are protected by trade secret or
-# copyright law.  Dissemination of this information or reproduction of
-# this material is strictly forbidden unless prior written permission is
-# obtained from COMPANY.  Access to the source code contained herein is
-# hereby forbidden to anyone except current COMPANY employees, managers
-# or contractors who have executed Confidentiality and Non-disclosure
-# agreements explicitly covering such access.
-#
-# The copyright notice above does not evidence any actual or intended
-# publication or disclosure  of  this source code, which includes
-# information that is confidential and/or proprietary, and is a trade
-# secret, of  COMPANY.   ANY REPRODUCTION, MODIFICATION, DISTRIBUTION,
-# PUBLIC  PERFORMANCE, OR PUBLIC DISPLAY OF OR THROUGH USE  OF THIS
-# SOURCE CODE  WITHOUT THE EXPRESS WRITTEN CONSENT OF COMPANY IS
-# STRICTLY PROHIBITED, AND IN VIOLATION OF APPLICABLE LAWS AND
-# INTERNATIONAL TREATIES.  THE RECEIPT OR POSSESSION OF  THIS SOURCE
-# CODE AND/OR RELATED INFORMATION DOES NOT CONVEY OR IMPLY ANY RIGHTS
-# TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, OR TO MANUFACTURE,
-# USE, OR SELL ANYTHING THAT IT  MAY DESCRIBE, IN WHOLE OR IN PART.
-#
-# %COPYRIGHT_END%
-# ----------------------------------------------------------------------
-# %AUTHORS_BEGIN%
-#
-#  Originating Authors: Paul-Edouard Sarlin
-#
-# %AUTHORS_END%
-# --------------------------------------------------------------------*/
-# %BANNER_END%
-
-from pathlib import Path
-
-import torch
-from torch import nn
-
-
-def simple_nms(scores, nms_radius: int):
-    """Fast Non-maximum suppression to remove nearby points."""
-    assert nms_radius >= 0
-
-    def max_pool(x):
-        return torch.nn.functional.max_pool2d(
-            x, kernel_size=nms_radius * 2 + 1, stride=1, padding=nms_radius
-        )
-
-    zeros = torch.zeros_like(scores)
-    max_mask = scores == max_pool(scores)
-    for _ in range(2):
-        supp_mask = max_pool(max_mask.float()) > 0
-        supp_scores = torch.where(supp_mask, zeros, scores)
-        new_max_mask = supp_scores == max_pool(supp_scores)
-        max_mask = max_mask | (new_max_mask & (~supp_mask))
-    return torch.where(max_mask, scores, zeros)
-
-
-def remove_borders(keypoints, scores, border: int, height: int, width: int):
-    """Removes keypoints too close to the border."""
-    mask_h = (keypoints[:, 0] >= border) & (keypoints[:, 0] < (height - border))
-    mask_w = (keypoints[:, 1] >= border) & (keypoints[:, 1] < (width - border))
-    mask = mask_h & mask_w
-    return keypoints[mask], scores[mask]
-
-
-def top_k_keypoints(keypoints, scores, k: int):
-    if k >= len(keypoints):
-        return keypoints, scores
-    scores, indices = torch.topk(scores, k, dim=0)
-    return keypoints[indices], scores
-
-
-def sample_descriptors(keypoints, descriptors, s: int = 8):
-    """Interpolate descriptors at keypoint locations."""
-    b, c, h, w = descriptors.shape
-    keypoints = keypoints - s / 2 + 0.5
-    keypoints /= torch.tensor([(w * s - s / 2 - 0.5), (h * s - s / 2 - 0.5)],).to(
-        keypoints
-    )[None]
-    keypoints = keypoints * 2 - 1  # normalize to (-1, 1)
-    args = {"align_corners": True} if torch.__version__ >= "1.3" else {}
-    descriptors = torch.nn.functional.grid_sample(
-        descriptors, keypoints.view(b, 1, -1, 2), mode="bilinear", **args
-    )
-    descriptors = torch.nn.functional.normalize(
-        descriptors.reshape(b, c, -1), p=2, dim=1
-    )
-    return descriptors
-
-
-class SuperPoint(nn.Module):
-    """SuperPoint Convolutional Detector and Descriptor.
-
-    SuperPoint: Self-Supervised Interest Point Detection and
-    Description. Daniel DeTone, Tomasz Malisiewicz, and Andrew
-    Rabinovich. In CVPRW, 2019. https://arxiv.org/abs/1712.07629
-
-    """
-
-    default_config = {
-        "descriptor_dim": 256,
-        "nms_radius": 4,
-        "keypoint_threshold": 0.005,
-        "max_keypoints": -1,
-        "remove_borders": 4,
-    }
-
-    def __init__(self, config):
-        super().__init__()
-        self.config = {**self.default_config, **config}
-
-        self.relu = nn.ReLU(inplace=True)
-        self.pool = nn.MaxPool2d(kernel_size=2, stride=2)
-        c1, c2, c3, c4, c5 = 64, 64, 128, 128, 256
-
-        self.conv1a = nn.Conv2d(1, c1, kernel_size=3, stride=1, padding=1)
-        self.conv1b = nn.Conv2d(c1, c1, kernel_size=3, stride=1, padding=1)
-        self.conv2a = nn.Conv2d(c1, c2, kernel_size=3, stride=1, padding=1)
-        self.conv2b = nn.Conv2d(c2, c2, kernel_size=3, stride=1, padding=1)
-        self.conv3a = nn.Conv2d(c2, c3, kernel_size=3, stride=1, padding=1)
-        self.conv3b = nn.Conv2d(c3, c3, kernel_size=3, stride=1, padding=1)
-        self.conv4a = nn.Conv2d(c3, c4, kernel_size=3, stride=1, padding=1)
-        self.conv4b = nn.Conv2d(c4, c4, kernel_size=3, stride=1, padding=1)
-
-        self.convPa = nn.Conv2d(c4, c5, kernel_size=3, stride=1, padding=1)
-        self.convPb = nn.Conv2d(c5, 65, kernel_size=1, stride=1, padding=0)
-
-        self.convDa = nn.Conv2d(c4, c5, kernel_size=3, stride=1, padding=1)
-        self.convDb = nn.Conv2d(
-            c5, self.config["descriptor_dim"], kernel_size=1, stride=1, padding=0
-        )
-
-        path = Path(__file__).parent / "weights/superpoint_v1.pth"
-        self.load_state_dict(torch.load(str(path)))
-
-        mk = self.config["max_keypoints"]
-        if mk == 0 or mk < -1:
-            raise ValueError('"max_keypoints" must be positive or "-1"')
-
-        print("Loaded SuperPoint model")
-
-    def forward(self, data):
-        """Compute keypoints, scores, descriptors for image."""
-        # Shared Encoder
-        x = self.relu(self.conv1a(data["image"]))
-        x = self.relu(self.conv1b(x))
-        x = self.pool(x)
-        x = self.relu(self.conv2a(x))
-        x = self.relu(self.conv2b(x))
-        x = self.pool(x)
-        x = self.relu(self.conv3a(x))
-        x = self.relu(self.conv3b(x))
-        x = self.pool(x)
-        x = self.relu(self.conv4a(x))
-        x = self.relu(self.conv4b(x))
-
-        # Compute the dense keypoint scores
-        cPa = self.relu(self.convPa(x))
-        scores = self.convPb(cPa)
-        scores = torch.nn.functional.softmax(scores, 1)[:, :-1]
-        b, _, h, w = scores.shape
-        scores = scores.permute(0, 2, 3, 1).reshape(b, h, w, 8, 8)
-        scores = scores.permute(0, 1, 3, 2, 4).reshape(b, h * 8, w * 8)
-        scores = simple_nms(scores, self.config["nms_radius"])
-
-        # Extract keypoints
-        keypoints = [
-            torch.nonzero(s > self.config["keypoint_threshold"]) for s in scores
-        ]
-        scores = [s[tuple(k.t())] for s, k in zip(scores, keypoints)]
-
-        # Discard keypoints near the image borders
-        keypoints, scores = list(
-            zip(
-                *[
-                    remove_borders(k, s, self.config["remove_borders"], h * 8, w * 8)
-                    for k, s in zip(keypoints, scores)
-                ]
-            )
-        )
-
-        # Keep the k keypoints with highest score
-        if self.config["max_keypoints"] >= 0:
-            keypoints, scores = list(
-                zip(
-                    *[
-                        top_k_keypoints(k, s, self.config["max_keypoints"])
-                        for k, s in zip(keypoints, scores)
-                    ]
-                )
-            )
-
-        # Convert (h, w) to (x, y)
-        keypoints = [torch.flip(k, [1]).float() for k in keypoints]
-
-        # Compute the dense descriptors
-        cDa = self.relu(self.convDa(x))
-        descriptors = self.convDb(cDa)
-        descriptors = torch.nn.functional.normalize(descriptors, p=2, dim=1)
-
-        # Extract descriptors
-        descriptors = [
-            sample_descriptors(k[None], d[None], 8)[0]
-            for k, d in zip(keypoints, descriptors)
-        ]
-
-        return {
-            "keypoints": keypoints,
-            "scores": scores,
-            "descriptors": descriptors,
-        }
diff --git a/wildlife_tools/features/models/weights/superglue_indoor.pth b/wildlife_tools/features/models/weights/superglue_indoor.pth
deleted file mode 100644
index 2b54532..0000000
Binary files a/wildlife_tools/features/models/weights/superglue_indoor.pth and /dev/null differ
diff --git a/wildlife_tools/features/models/weights/superglue_outdoor.pth b/wildlife_tools/features/models/weights/superglue_outdoor.pth
deleted file mode 100644
index 5ca3392..0000000
Binary files a/wildlife_tools/features/models/weights/superglue_outdoor.pth and /dev/null differ
diff --git a/wildlife_tools/features/models/weights/superpoint_v1.pth b/wildlife_tools/features/models/weights/superpoint_v1.pth
deleted file mode 100644
index 107a444..0000000
Binary files a/wildlife_tools/features/models/weights/superpoint_v1.pth and /dev/null differ
diff --git a/wildlife_tools/features/sift.py b/wildlife_tools/features/sift.py
deleted file mode 100644
index 119435e..0000000
--- a/wildlife_tools/features/sift.py
+++ /dev/null
@@ -1,38 +0,0 @@
-import cv2
-import numpy as np
-from tqdm import tqdm
-
-from wildlife_tools.data import WildlifeDataset
-from wildlife_tools.features.base import FeatureExtractor
-
-
-class SIFTFeatures(FeatureExtractor):
-    """
-    Extracts SIFT descriptors for each image in the dataset.
-
-    Args:
-        max_keypoints: Limit number of extracted keypoints / descriptors.
-
-    Returns:
-        list of arrays, each corresponds to an input image and have shape `[n_descriptors x 128]`.
-    """
-
-    descriptor_dim: int = 128
-
-    def __init__(self, max_keypoints: int | None = None):
-        self.max_keypoints = max_keypoints
-
-    def __call__(self, dataset: WildlifeDataset):
-        if self.max_keypoints:
-            sift = cv2.SIFT_create(nfeatures=self.max_keypoints)
-        else:
-            sift = cv2.SIFT_create()
-
-        descriptors = []
-        for img, y in tqdm(dataset, mininterval=1, ncols=100):
-            keypoint, d = sift.detectAndCompute(np.array(img), None)
-            if len(keypoint) <= 1:
-                descriptors.append(None)
-            else:
-                descriptors.append(d)
-        return descriptors
diff --git a/wildlife_tools/features/superpoint.py b/wildlife_tools/features/superpoint.py
deleted file mode 100644
index 8183e67..0000000
--- a/wildlife_tools/features/superpoint.py
+++ /dev/null
@@ -1,58 +0,0 @@
-import torch
-from tqdm import tqdm
-
-from wildlife_tools.features.base import FeatureExtractor
-from wildlife_tools.features.models.superpoint import SuperPoint
-
-
-class SuperPointFeatures(FeatureExtractor):
-    def __init__(
-        self,
-        descriptor_dim: int = 256,
-        max_keypoints: int | None = None,
-        nms_radius: int = 4,
-        keypoint_threshold: float = 0.005,
-        remove_borders: int = 4,
-        device: str = "cpu",
-        num_workers: int = 1,
-        batch_size: int = 128,
-    ):
-        self.descriptor_dim = descriptor_dim
-        self.max_keypoints = max_keypoints
-        self.nms_radius = nms_radius
-        self.keypoint_threshold = keypoint_threshold
-        self.remove_borders = remove_borders
-        self.device = device
-        self.num_workers = num_workers
-        self.batch_size = batch_size
-
-    def __call__(self, dataset):
-        if not self.max_keypoints:
-            max_keypoints = -1
-        else:
-            max_keypoints = self.max_keypoints
-
-        model = SuperPoint(
-            config={
-                "descriptor_dim": self.descriptor_dim,
-                "nms_radius": self.nms_radius,
-                "keypoint_threshold": self.keypoint_threshold,
-                "max_keypoints": max_keypoints,
-                "remove_borders": self.remove_borders,
-            }
-        ).to(self.device)
-        loader = torch.utils.data.DataLoader(
-            dataset,
-            num_workers=self.num_workers,
-            batch_size=self.batch_size,
-            shuffle=False,
-        )
-
-        descriptors = []
-        for image, label in tqdm(loader, mininterval=1, ncols=100):
-            with torch.no_grad():
-                output = model({"image": image.to(self.device)})
-            descriptors.extend(
-                [d.permute(1, 0).cpu().numpy() for d in output["descriptors"]]
-            )
-        return descriptors
diff --git a/wildlife_tools/inference/__init__.py b/wildlife_tools/inference/__init__.py
index 78c0634..99de385 100644
--- a/wildlife_tools/inference/__init__.py
+++ b/wildlife_tools/inference/__init__.py
@@ -1,1 +1,1 @@
-from .classifier import KnnClassifier, KnnMatcher
+from .classifier import KnnClassifier, TopkClassifier
diff --git a/wildlife_tools/inference/classifier.py b/wildlife_tools/inference/classifier.py
index 47a3805..c7c07f8 100644
--- a/wildlife_tools/inference/classifier.py
+++ b/wildlife_tools/inference/classifier.py
@@ -1,86 +1,142 @@
 from __future__ import annotations
 
-from collections import defaultdict
-
 import numpy as np
 import pandas as pd
 import torch
 
-from wildlife_tools.similarity import CosineSimilarity
-
 
 class KnnClassifier:
     """
-    Predict query label as k labels of nearest matches in database. If there is tie at given k,
-    prediction from k-1 is used. Input is similarity matrix with `n_query` x `n_database` shape.
-
-
-    Args:
-        k: use k nearest in database for the majority voting.
-        database_labels: list of labels in database. If provided, decode predictions to database
-        (e.g. string) labels.
-    Returns:
-        1D array with length `n_query` of database labels (col index of the similarity matrix).
+    Predict query label as k labels of nearest matches in the database.
+    If there is a tie at a given k, the prediction with the best score is used.
     """
 
-    def __init__(self, k: int = 1, database_labels: np.array | None = None):
+    def __init__(self, database_labels: np.array, k: int = 1, return_scores=False):
+        """
+        Args:
+            database_labels (np.array): Array containing the labels of the database.
+            k (int): The number of nearest neighbors to consider.
+            return_scores (bool): Indicates whether to return scores along with predictions.
+        """
         self.k = k
         self.database_labels = database_labels
+        self.return_scores = return_scores
 
     def __call__(self, similarity):
-        similarity = torch.tensor(similarity, dtype=float)
-        scores, idx = similarity.topk(k=self.k, dim=1)
-        pred = self.aggregate(idx)[:, self.k - 1]
-
-        if self.database_labels is not None:
-            pred = self.database_labels[pred]
-        return pred
-
-    def aggregate(self, predictions):
         """
-        Aggregates array of nearest neighbours to single prediction for each k.
-        If there is tie at given k, prediction from k-1 is used.
+        Predicts the label for each query based on the k nearest matches in the database.
 
         Args:
-            array of with shape [n_query, k] of nearest neighbours.
+            similarity: A 2D similarity matrix with `n_query` x `n_database` shape.
+
         Returns:
-            array with predictions [n_query, k]. Column dimensions are predictions for [k=1,...,k=k]
-        """
+            If `return_scores` is False:
 
-        results = defaultdict(list)
-        for k in range(1, predictions.shape[1] + 1):
-            for row in predictions[:, :k]:
-                vals, counts = np.unique(row, return_counts=True)
-                best = vals[np.argmax(counts)]
+                - preds: Prediction for each query.
 
-                counts_sorted = sorted(counts)
-                if (len(counts_sorted)) > 1 and (counts_sorted[0] == counts_sorted[1]):
-                    best = None
-                results[k].append(best)
+            If `return_scores` is True, tuple of two arrays:
 
-        results = pd.DataFrame(results).T.fillna(method="ffill").T
-        return results.values
+                - preds: Prediction for each query.
+                - scores: The similarity scores corresponding to the predictions (mean for k > 1).
 
+        """
 
-class KnnMatcher:
+        # Get ranked predictions and scores.
+        similarity = torch.tensor(similarity, dtype=torch.float32)
+        scores, idx = similarity.topk(k=self.k, dim=1)
+        preds = self.database_labels[idx]
+
+        preds = np.array(preds)
+        scores = np.array(scores)
+
+        # Aggregate k nearest neighbors
+        data = []
+        for pred, score in zip(preds, scores):
+            vals, counts = np.unique(pred, return_counts=True)
+            winners = vals[counts.max() == counts]
+
+            # Check for ties
+            if len(winners) == 1:
+                best_pred = winners[0]
+                best_score = score[best_pred == pred].mean()
+            else:
+                is_winner = np.isin(pred, winners)
+                ties = pd.Series(score[is_winner]).groupby(pred[is_winner]).mean()
+                best_pred = ties.idxmax()
+                best_score = ties.max()
+            data.append([best_pred, best_score])
+
+        preds, scores = list(zip(*data))
+        preds = np.array(preds)
+        scores = np.array(scores)
+
+        if self.return_scores:
+            return preds, scores
+        else:
+            return preds
+
+
+class TopkClassifier:
     """
-    Find nearest match to query in existing database of features.
-    Combines CosineSimilarity and KnnClassifier.
+    Predict top k query labels given nearest matches in the database.
     """
 
-    def __init__(self, database, k=1):
-        self.similarity = CosineSimilarity()
-        self.database = database
-        self.classifier = KnnClassifier(
-            database_labels=self.database.labels_string, k=k
-        )
+    def __init__(self, database_labels: np.array, k: int = 10, return_all: bool = False):
+        """
+        Args:
+            database_labels (np.array): Array containing the labels of the database.
+            k (int): The number of top predictions to return.
+            return_all (bool): Indicates whether to return scores along with predictions.
+        """
+        self.k = k
+        self.database_labels = database_labels
+        self.return_all = return_all
+
+    def __call__(self, similarity):
+        """
+        Predicts the top k labels for each query based on the similarity matrix.
+
+        Args:
+            similarity: A 2D similarity matrix with `n_query` x `n_database` shape
 
-    def __call__(self, query):
-        if isinstance(query, list):
-            query = np.concatenate(query)
+        Returns:
+            If `return_all` is False, single 2D array of shape `n_query` x `k`
 
-        if not isinstance(query, np.ndarray):
-            raise ValueError("Query should be array or list of features.")
+                - preds: The top k predicted labels for each query.
+
+            If `return_all` is True, tuple of three 2D arrays of shape `n_query` x `k`:
+
+                - preds: The top k predicted labels for each query.
+                - scores: The similarity scores corresponding to the top k predictions.
+                - idx: The indices of the database entries corresponding to the top k predictions.
+        """
 
-        sim_matrix = self.similarity(query, self.database.features)["cosine"]
-        return self.classifier(sim_matrix)
+        # Get ranked predictions, scores, and database index.
+        similarity = torch.tensor(similarity, dtype=torch.float32)
+        scores, idx = similarity.topk(k=similarity.shape[1], dim=1)
+        preds = self.database_labels[idx]
+
+        preds = np.array(preds)
+        scores = np.array(scores)
+        idx = np.array(idx)
+
+        # Collect data for first label occurrence
+        data = []
+        for j, row in enumerate(preds):
+            data_row = []
+            visited = set()
+            for i, value in enumerate(row):
+                if value not in visited:
+                    visited.add(value)
+                    data_row.append((value, scores[j, i], idx[j, i]))
+            data.append(list(zip(*data_row)))
+
+        preds, scores, idx = list(zip(*data))
+        preds = np.array(preds)[:, : self.k]
+        scores = np.array(scores)[:, : self.k]
+        idx = np.array(idx)[:, : self.k]
+
+        if self.return_all:
+            return preds, scores, idx
+        else:
+            return preds
diff --git a/wildlife_tools/similarity/__init__.py b/wildlife_tools/similarity/__init__.py
index 73927b0..5a5d56e 100644
--- a/wildlife_tools/similarity/__init__.py
+++ b/wildlife_tools/similarity/__init__.py
@@ -1,3 +1,4 @@
 from .cosine import CosineSimilarity
-from .descriptors import MatchDescriptors
-from .loftr import MatchLOFTR
+from .pairwise.lightglue import MatchLightGlue
+from .pairwise.loftr import MatchLOFTR
+from .wildfusion import SimilarityPipeline, WildFusion
diff --git a/wildlife_tools/similarity/base.py b/wildlife_tools/similarity/base.py
deleted file mode 100644
index 532b5ba..0000000
--- a/wildlife_tools/similarity/base.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import os
-import pickle
-
-
-class Similarity:
-    def __call__(self, query, database):
-        raise NotImplementedError()
-
-    def run_and_save(
-        self, query, database, save_path, query_metadata=None, database_metadata=None
-    ):
-        similarities = self(query, database)
-
-        os.makedirs(save_path, exist_ok=True)
-        file_names = []
-        for key, similarity in similarities.items():
-            name = self.__class__.__name__ + "-" + str(key)
-            data = {
-                "name": key,
-                "similarity": similarity,
-                "metadata_query": query_metadata,
-                "metadata_database": database_metadata,
-            }
-
-            file_name = os.path.join(save_path, name + ".pkl")
-            with open(file_name, "wb") as file:
-                pickle.dump(data, file, protocol=pickle.HIGHEST_PROTOCOL)
-            file_names.append(file_name)
-
-        return file_names
diff --git a/wildlife_tools/similarity/calibration.py b/wildlife_tools/similarity/calibration.py
new file mode 100644
index 0000000..38b2ffc
--- /dev/null
+++ b/wildlife_tools/similarity/calibration.py
@@ -0,0 +1,170 @@
+import matplotlib.pyplot as plt
+import numpy as np
+import pandas as pd
+from scipy.interpolate import PchipInterpolator
+from sklearn.isotonic import IsotonicRegression
+from sklearn.linear_model import LogisticRegression
+
+
+class LogisticCalibration:
+    """Performs logistic regression calibration."""
+
+    def __init__(self):
+        self.model = LogisticRegression()
+
+    def fit(self, scores: np.ndarray, hits: np.ndarray):
+        """
+        Fit the logistic regression model to calibrate raw scores.
+
+        Args:
+            scores (np.array): Raw uncalibrated scores.
+            hits (np.array): Ground truth binary labels.
+
+        """
+        self.model.fit(np.atleast_2d(scores).T, hits)
+
+    def predict(self, scores: np.ndarray):
+        """
+        Predict calibrated scores using a fitted calibration model.
+
+        Args:
+            scores (np.array): Raw uncalibrated scores.
+
+        Returns:
+            prediction (np.array): Calibrated scores.
+        """
+        return self.model.predict_proba(np.atleast_2d(scores).T)[:, 1]
+
+
+class IsotonicCalibration:
+    """
+    Performs isotonic regression calibration for ranking.
+
+    Compared to standard isotonic regression, this implementation uses spline interpolation
+    to ensure that the calibration curve is strictly increasing, which is necessary for ranking.
+    """
+
+    def __init__(self, interpolate: bool = True, strict: bool = True):
+        """
+        Args:
+            interpolate (bool): If True, use spline interpolation for calibration.
+            strict (bool): If True, apply strict adjustment to predictions.
+        """
+
+        self.calibration = IsotonicRegression(out_of_bounds="clip")
+        self.spline = None
+        self.strict = strict
+        self.interpolate = interpolate
+        self.x_min = None
+        self.x_max = None
+        self.y_min = None
+        self.y_max = None
+
+    def fit(self, scores: np.ndarray, hits: np.ndarray):
+        """Fit the isotonic regression model to calibrate the scores.
+
+        Args:
+            scores (np.array): Raw uncalibrated scores.
+            hits (np.array): Ground truth binary labels.
+        """
+
+        x = scores
+        y = hits
+        self.x_min, self.x_max = np.max(x), np.min(x)
+        self.y_min, self.y_max = np.max(y), np.min(y)
+        self.calibration.fit(x, y)
+
+        if self.interpolate:
+            bin_centers = self.calibration.f_.x
+            x_new = (bin_centers[:-1] + bin_centers[1:]) / 2
+            x_new = np.concatenate([x_new, [self.x_min, self.x_max]])
+            x_new = np.sort(x_new)
+            y_new = self.calibration.predict(x_new)
+            self.spline = PchipInterpolator(x_new, y_new)
+
+    def predict(self, scores: np.ndarray):
+        """
+        Predict calibrated scores using a fitted calibration model.
+
+        Args:
+            scores (np.array): Raw uncalibrated scores.
+
+        Returns:
+            calibrated_scores (np.array): Calibrated scores.
+        """
+        x = np.float64(scores)
+
+        if self.interpolate:
+            y = self.spline(x)
+            y = np.where(x < self.x_max, self.y_max, y)
+            y = np.where(x > self.x_min, self.y_min, y)
+        else:
+            y = self.calibration.predict(x)
+
+        if self.strict:
+            y = y + x * np.finfo(np.float64).eps
+        return y
+
+
+def reliability_diagram(
+    scores: np.ndarray,
+    hits: np.ndarray,
+    ax=None,
+    skip_plot: bool = False,
+    num_bins: int = 10,
+    title: str = "Reliability Diagram",
+):
+    """
+    Calculates ECE (Expected calibration error) and plots reliability diagram for a given set of
+    scores and hits.
+
+    Args:
+        scores (np.array): Raw uncalibrated scores.
+        hits (np.array): Ground truth binary labels.
+        ax (matplotlib.axes.Axes): Axes to plot the diagram on. If None, a new figure is created.
+        skip_plot (bool): If True, only return ECE value.
+        num_bins (int): Number of bins to divide the scores into.
+        title (str): Title of the plot.
+
+    Returns:
+        ece (float): Expected Calibration Error.
+    """
+
+    df = pd.DataFrame({"score": scores, "hits": hits})
+    bins = np.linspace(0, 1, num_bins + 1)
+    df_bins = pd.cut(df["score"], bins)
+    results = df.groupby(df_bins)["hits"].mean()
+    sizes = df.groupby(df_bins)["hits"].size()
+    x_values = bins[:-1] + (bins[1] - bins[0]) / 2
+
+    # Plot calibration diagram as a bar plot
+    ece = np.sum(sizes * np.abs(results.values - x_values)) / np.sum(sizes)
+
+    if skip_plot:
+        return ece
+
+    if ax is None:
+        fig, ax = plt.subplots(figsize=(10, 6))
+    bars = ax.bar(x_values, results.values, align="center", width=0.08, color="skyblue")
+
+    for bar, value, size in zip(bars, results.values, sizes):
+        height = bar.get_height()
+        if pd.isnull(height):
+            height = 0
+        if pd.isna(value):
+            print_value = "NaN"
+        else:
+            print_value = f"{value:.2f}"
+        x_pos = bar.get_x() + bar.get_width() / 2
+        ax.text(x_pos, height + 0.05, print_value, ha="center", va="bottom")
+        ax.text(x_pos, 0.03, size, ha="center", va="top")
+
+    ax.plot([0, 1], [0, 1], color="red", linestyle="--")
+    ax.set_xlabel("Predicted probability")
+    ax.set_ylabel("Accuracy")
+    ax.set_title(title)
+    ax.set_xticks(np.arange(0, 1.1, 0.1))
+    ax.set_xlim(0, 1)
+    ax.set_ylim(0, 1)
+    ax.grid(axis="y", linestyle="--", alpha=0.7)
+    return ece
diff --git a/wildlife_tools/similarity/cosine.py b/wildlife_tools/similarity/cosine.py
index 71fa0e5..4212a7a 100644
--- a/wildlife_tools/similarity/cosine.py
+++ b/wildlife_tools/similarity/cosine.py
@@ -1,22 +1,35 @@
+import numpy as np
 import torch
 import torch.nn.functional as F
 
-from wildlife_tools.similarity.base import Similarity
+from ..data import FeatureDataset
 
 
-class CosineSimilarity(Similarity):
+def cosine_similarity(a, b):
+    """
+    Calculate cosine similarity between two sets of vectors.
+    Pytorch Equivalent to `sklearn.metrics.pairwise.cosine_similarity`.
     """
-    Calculates cosine similarity, equivalently to `sklearn.metrics.pairwise.cosine_similarity`
 
-    Returns:
-        dict: dictionary with `cosine` key. Value is 2D array with cosine similarity.
+    a, b = torch.tensor(a), torch.tensor(b)
+    similarity = torch.matmul(F.normalize(a), F.normalize(b).T)
+    return similarity.numpy()
 
-    """
 
-    def __call__(self, query, database):
-        return {"cosine": self.cosine_similarity(query, database)}
+class CosineSimilarity:
+    """Wraps cosine similarity to be usable in SimilarityPipeline."""
+
+    def __call__(self, query: FeatureDataset, database: FeatureDataset, **kwargs) -> np.ndarray:
+        """
+        Calculates cosine similarity given query and database feature datasets.
+
+        Args:
+            query (FeatureDataset): Query dataset of deep features.
+            database (FeatureDataset): Database dataset of deep features.
+
+        Returns:
+            similarity (np.array): 2D numpy array with cosine similarity.
+
+        """
 
-    def cosine_similarity(self, a, b):
-        a, b = torch.tensor(a), torch.tensor(b)
-        similarity = torch.matmul(F.normalize(a), F.normalize(b).T)
-        return similarity.numpy()
+        return cosine_similarity(query.features, database.features)
diff --git a/wildlife_tools/similarity/descriptors.py b/wildlife_tools/similarity/descriptors.py
deleted file mode 100644
index 1432a17..0000000
--- a/wildlife_tools/similarity/descriptors.py
+++ /dev/null
@@ -1,72 +0,0 @@
-import itertools
-
-import faiss
-import numpy as np
-from tqdm import tqdm
-
-from wildlife_tools.similarity.base import Similarity
-
-
-def get_faiss_index(d, device="cpu"):
-    if device == "cuda":
-        resource = faiss.StandardGpuResources()
-        config = faiss.GpuIndexFlatConfig()
-        config.device = 0
-        return faiss.GpuIndexFlatL2(resource, d, config)
-    elif device == "cpu":
-        return faiss.IndexFlatL2(d)
-    else:
-        raise ValueError(f"Invalid device: {device}")
-
-
-class MatchDescriptors(Similarity):
-    """
-    Calculate similarity between query and database as number of descriptors correspondences
-    after filtering with Low ratio test.
-
-    Args:
-        descriptor_dim: dimensionality of descriptors. 128 for SIFT, 256 for SuperPoint.
-        thresholds: iterable with ratio test thresholds. Should be in [0, 1] interval.
-        device: Specifies device used for nearest neigbour search.
-
-    Returns:
-        dict: Values are 2D array with number of correspondences for each threshold.
-    """
-
-    def __init__(
-        self,
-        descriptor_dim: int,
-        thresholds: tuple[float] = (0.5,),
-        device: str = "cpu",
-    ):
-
-        self.descriptor_dim = descriptor_dim
-        self.thresholds = thresholds
-        self.device = device
-
-    def __call__(self, query, database):
-        iterator = itertools.product(enumerate(query), enumerate(database))
-        iterator_size = len(query) * len(database)
-        similarities = {
-            t: np.full((len(query), len(database)), np.nan, dtype=np.float16)
-            for t in self.thresholds
-        }
-
-        index = get_faiss_index(d=self.descriptor_dim, device=self.device)
-        for pair in tqdm(iterator, total=iterator_size, mininterval=1, ncols=100):
-            (q_idx, q_data), (d_idx, d_data) = pair
-
-            if (q_data is None) or (d_data is None):
-                for t in self.thresholds:
-                    similarities[t][q_idx, d_idx] = 0
-
-            else:
-                index.reset()
-                index.add(q_data)
-                score, idx = index.search(d_data, k=2)
-                with np.errstate(divide="ignore"):
-                    ratio = score[:, 0] / score[:, 1]
-                for t in self.thresholds:
-                    similarities[t][q_idx, d_idx] = np.sum(ratio < t)
-
-        return similarities
diff --git a/wildlife_tools/similarity/loftr.py b/wildlife_tools/similarity/loftr.py
deleted file mode 100644
index 773ead5..0000000
--- a/wildlife_tools/similarity/loftr.py
+++ /dev/null
@@ -1,83 +0,0 @@
-import itertools
-
-import kornia.feature as KF
-import numpy as np
-import pandas as pd
-import torch
-from tqdm import tqdm
-
-from wildlife_tools.similarity.base import Similarity
-
-
-def batched(iterable, n):
-    """
-    Batch data into tuples of length n. The last batch may be shorter.
-    Example: batched('ABCDEFG', 3) --> ABC DEF G
-    """
-    if n < 1:
-        raise ValueError("n must be at least one")
-    it = iter(iterable)
-    while batch := tuple(itertools.islice(it, n)):
-        yield batch
-
-
-class MatchLOFTR(Similarity):
-    """
-    Calculate similarity between query and database as number of descriptors correspondences
-    after filtering with Low ratio test.
-
-    Args:
-        pretrained: LOFTR model used. `outdoor` or `indoor`.
-        thresholds: Iterable with confidence thresholds. Should be in [0, 1] interval.
-        batch_size: Batch size used for the inference.
-        device: Specifies device used for the inference.
-        silent: disable tqdm bar.
-
-    Returns:
-        dict: Values are 2D array with number of correspondences for each threshold.
-    """
-
-    def __init__(
-        self,
-        pretrained: str = "outdoor",
-        thresholds: tuple[float] = (0.99,),
-        batch_size: int = 128,
-        device: str = "cuda",
-        silent: bool = False,
-    ):
-        self.device = device
-        self.matcher = KF.LoFTR(pretrained=pretrained).to(device)
-        self.thresholds = thresholds
-        self.batch_size = batch_size
-        self.silent = silent
-
-    def __call__(self, query, database):
-        iterator = batched(
-            itertools.product(enumerate(query), enumerate(database)), self.batch_size
-        )
-        iterator_size = int(np.ceil(len(query) * len(database) / self.batch_size))
-        similarities = {
-            t: np.full((len(query), len(database)), np.nan, dtype=np.float16)
-            for t in self.thresholds
-        }
-
-        for pair_batch in tqdm(
-            iterator, total=iterator_size, mininterval=1, ncols=100, disable=self.silent
-        ):
-            q, d = zip(*pair_batch)
-            q_idx, q_data = list(zip(*q))
-            d_idx, d_data = list(zip(*d))
-            input_dict = {
-                "image0": torch.stack(q_data).to(self.device),
-                "image1": torch.stack(d_data).to(self.device),
-            }
-            with torch.inference_mode():
-                correspondences = self.matcher(input_dict)
-
-            batch_idx = correspondences["batch_indexes"].cpu().numpy()
-            confidence = correspondences["confidence"].cpu().numpy()
-            for t in self.thresholds:
-                series = pd.Series(confidence > t)
-                for j, group in series.groupby(batch_idx):
-                    similarities[t][q_idx[j], d_idx[j]] = group.sum()
-        return similarities
diff --git a/wildlife_tools/features/models/__init__.py b/wildlife_tools/similarity/pairwise/__init__.py
similarity index 100%
rename from wildlife_tools/features/models/__init__.py
rename to wildlife_tools/similarity/pairwise/__init__.py
diff --git a/wildlife_tools/similarity/pairwise/base.py b/wildlife_tools/similarity/pairwise/base.py
new file mode 100644
index 0000000..bd89c87
--- /dev/null
+++ b/wildlife_tools/similarity/pairwise/base.py
@@ -0,0 +1,174 @@
+import itertools
+
+import cv2
+import matplotlib.pyplot as plt
+import numpy as np
+import torch
+from tqdm import tqdm
+
+from ...data import FeatureDataset
+from .collectors import CollectCounts
+
+
+def visualise_matches(img0, keypoints0, img1, keypoints1):
+    keypoints0 = [cv2.KeyPoint(int(x[0]), int(x[1]), 1) for x in keypoints0]
+    keypoints1 = [cv2.KeyPoint(int(x[0]), int(x[1]), 1) for x in keypoints1]
+
+    # Create dummy matches (DMatch objects)
+    matches = [cv2.DMatch(i, i, 0) for i in range(len(keypoints0))]
+
+    # Draw matches
+    img_matches = cv2.drawMatches(
+        img0,
+        keypoints0,
+        img1,
+        keypoints1,
+        matches,
+        None,
+        flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS,
+    )
+    plt.imshow(img_matches)
+    plt.show()
+
+
+class PairDataset(torch.utils.data.IterableDataset):
+    """
+    Create iterable style dataset from two mapping style datasets.
+    By default, product is used - each item in dataset0 creates pair with each item in dataset1.
+    Can iterate over some specific pairs if list of those pairs is provided.
+
+    Each iteration returns 4-tuple (idx0, <dataset0 data at idx0>, idx1, <dataset1 data at idx1>)
+
+    Args:
+        dataset0: Dataset for first of the pair.
+        dataset1: Dataset for second of the pair.
+        pairs: list of 2-tuples with indexes. If provided, iterate only over those pairs.
+        load_all: If True, all elements from datasets are used. If False, only first element is used.
+
+
+    Example:
+
+        dataset = PairProductDataset(['x', 'y'], ['a', 'b'])
+        iterator = iter(dataset)
+        next(iterator)
+        >>> (0, 'x', 0, 'a')
+        next(iterator)
+        >>> (0, 'x', 1, 'b')
+    """
+
+    def __init__(self, dataset0, dataset1, pairs=None, load_all=False):
+        super().__init__()
+        self.dataset0 = dataset0
+        self.dataset1 = dataset1
+        self.pairs = pairs
+        self.load_all = load_all
+
+    def __len__(self):
+        """Number of pairs in dataset."""
+        if self.pairs is None:
+            return len(self.dataset0) * len(self.dataset1)
+        else:
+            return len(self.pairs)
+
+    @property
+    def grid_shape(self):
+        """Indicates max possible value of the idx0 and idx1 indexes."""
+        return len(self.dataset0), len(self.dataset1)
+
+    def __iter__(self):
+        if self.pairs is None:
+            iterator = itertools.product(range(len(self.dataset0)), range(len(self.dataset1)))
+        else:
+            iterator = self.pairs
+
+        # Get Worker specific iterator
+        worker = torch.utils.data.get_worker_info()
+        if worker:
+            iterator = itertools.islice(iterator, worker.id, None, worker.num_workers)
+
+        for idx0, idx1 in iterator:
+            if self.load_all:
+                yield idx0, self.dataset0[idx0], idx1, self.dataset1[idx1]
+            else:
+                yield idx0, self.dataset0[idx0][0], idx1, self.dataset1[idx1][0]
+
+
+class MatchPairs:
+    """
+    Base class for matching pairs from two datasets.
+    Any child class needs to implement `get_matches` method that implements processing of pair batches.
+    """
+
+    def __init__(
+        self,
+        batch_size: int = 128,
+        num_workers: int = 0,
+        tqdm_silent: bool = False,
+        collector=None,
+    ):
+        """
+        Args:
+            batch_size: Number of pairs processed in one batch.
+            num_workers: Number of workers used for data loading.
+            tqdm_silent: If True, progress bar is disabled.
+            collector: Collector object used for storing results.
+                By default, CollectCounts(thresholds=[0.5]) is used.
+        """
+
+        if collector is None:
+            collector = CollectCounts(thresholds=[0.5])
+
+        self.collector = collector
+        self.batch_size = batch_size
+        self.num_workers = num_workers
+        self.tqdm_kwargs = {"mininterval": 1, "ncols": 100, "disable": tqdm_silent}
+
+    def __call__(
+        self,
+        dataset0: FeatureDataset,
+        dataset1: FeatureDataset,
+        pairs: np.ndarray | None = None,
+    ):
+        """
+        Match pairs of features from two feature datasets.
+        Output for each pair is stored and processed using the collector.
+
+        Args:
+            dataset0: First dataset (e.g. query).
+            dataset1: Second dataset (e.g. database).
+            pairs: Numpy array with pairs of indexes. If None, all pairs are used.
+
+        Returns:
+            Exact output is determined by the used collector.
+
+        """
+        dataset_pairs = PairDataset(dataset0, dataset1, pairs=pairs)
+
+        loader_length = int(np.ceil(len(dataset_pairs) / self.batch_size))
+        loader = torch.utils.data.DataLoader(
+            dataset_pairs,
+            num_workers=self.num_workers,
+            batch_size=self.batch_size,
+            shuffle=False,
+        )
+
+        self.collector.init_store(grid_shape=dataset_pairs.grid_shape)
+        for batch in tqdm(loader, total=loader_length, **self.tqdm_kwargs):
+            matches = self.get_matches(batch)
+            self.collector.add(matches)
+
+        results = self.collector.process_results()
+        return results
+
+    def get_matches(self, batch: tuple):
+        """
+        Process batch and get matches of pairs for the batch. Implemented in child classes.
+
+        Args:
+            batch: 4-tuple with indexes and data from PairDataset.
+
+        Returns:
+            list of standartized dictionaries with keys: idx0, idx1, score, kpts0, kpts1.
+               Length of list is equal to batch size.
+        """
+        raise NotImplementedError
diff --git a/wildlife_tools/similarity/pairwise/collectors.py b/wildlife_tools/similarity/pairwise/collectors.py
new file mode 100644
index 0000000..e10a28c
--- /dev/null
+++ b/wildlife_tools/similarity/pairwise/collectors.py
@@ -0,0 +1,130 @@
+from typing import Any
+
+import cv2
+import numpy as np
+
+
+class CollectAll:
+    """
+    Collect the results without additional processing.
+    Collected data is list of matcher results for each pair. Usefull for keypoint visualizations.
+    """
+
+    def __init__(self, **kwargs):
+        self.data = None
+
+    def init_store(self, **kwargs):
+        self.data = []
+
+    def add(self, results_list: list[dict]):
+        self.data.extend(results_list)
+
+    def process_results(self):
+        return self.data
+
+
+class CollectCounts:
+    """
+    Collect count of significant matches given confidence thresholds.
+    Output is stored in [n_query x n_database] grid.
+
+    If multiple thresholds are provided, returns a dictionary with each threshold as a key and
+    the corresponding grid as value.
+    """
+
+    def __init__(self, grid_dtype: str = "float16", thresholds: tuple = (0.5,), **kwargs):
+        """
+        Args:
+            grid_dtype (str, optional): Data type of the output grid.
+            thresholds (tuple, optional): Confidence thresholds for counting.
+        """
+
+        self.data = None
+        self.grid_shape = None
+        self.grid_dtype = grid_dtype
+        self.thresholds = thresholds
+
+    def init_store(self, grid_shape: tuple | None = None):
+        if grid_shape is not None:
+            self.grid_shape = grid_shape
+            self.data = {t: np.full(grid_shape, np.nan, dtype=self.grid_dtype) for t in self.thresholds}
+        else:
+            self.data = {"idx0": [], "idx1": []} + {t: [] for t in self.thresholds}
+
+    def add(self, results_list: dict):
+        for item in results_list:
+            i0, i1, scores = item["idx0"], item["idx1"], item["scores"]
+
+            if self.grid_shape is not None:
+                for t in self.thresholds:
+                    self.data[t][i0, i1] = np.sum(scores > t)
+
+            else:
+                self.data["idx0"].append(i0)
+                self.data["idx1"].append(i1)
+                for t in self.thresholds:
+                    self.data[t].append(np.sum(scores > t))
+
+    def process_results(self):
+        if len(self.data) == 1:  # if dictionary have one key, return only value.
+            return list(self.data.values())[0]
+        else:
+            return self.data
+
+
+class CollectCountsRansac(CollectCounts):
+    """
+    Collect count of RANSAC inliers of fundamental matrix estimate.
+    Output is stored in [n_query x n_database] grid.
+    """
+
+    def __init__(
+        self,
+        grid_dtype: str = "float16",
+        ransacReprojThreshold: float = 1.0,
+        method: Any = cv2.USAC_MAGSAC,
+        confidence: float = 0.999,
+        maxIters: float = 100,
+        **kwargs,
+    ):
+        """
+        Args:
+            grid_dtype (str, optional): Data type of the output grid.
+            ransacReprojThreshold: OpenCV RANSAC reprojection threshold.
+            method: OpenCV RANSAC method.
+            confidence: OpenCV RANSAC confidence.
+            maxIters: OpenCV RANSAC max iterations.
+        """
+        self.data = None
+        self.grid_shape = None
+        self.grid_dtype = grid_dtype
+        self.config = {
+            "ransacReprojThreshold": ransacReprojThreshold,
+            "method": method,
+            "confidence": confidence,
+            "maxIters": maxIters,
+        }
+
+    def init_store(self, grid_shape: tuple | None = None):
+        if grid_shape is not None:
+            self.grid_shape = grid_shape
+            self.data = {"score": np.full(grid_shape, np.nan, dtype=self.grid_dtype)}
+        else:
+            self.data = {"idx0": [], "idx1": [], "score": []}
+
+    def add(self, results_list: dict):
+        for item in results_list:
+            i0, i1, kpts0, kpts1 = item["idx0"], item["idx1"], item["kpts0"], item["kpts1"]
+
+            if (len(kpts0) < 8) or (len(kpts1) < 8):  # findFundamentalMat needs 8 + samples
+                score = 0
+            else:
+                F, mask = cv2.findFundamentalMat(kpts0, kpts1, **self.config)
+                score = np.sum(mask == 1)
+
+            if self.grid_shape is not None:
+                self.data["score"][i0, i1] = score
+            else:
+                self.data["idx0"].append(i0)
+                self.data["idx1"].append(i1)
+                self.data["score"].append(score)
diff --git a/wildlife_tools/similarity/pairwise/lightglue.py b/wildlife_tools/similarity/pairwise/lightglue.py
new file mode 100644
index 0000000..58e67b2
--- /dev/null
+++ b/wildlife_tools/similarity/pairwise/lightglue.py
@@ -0,0 +1,85 @@
+import torch
+from gluefactory.models import get_model
+from omegaconf import OmegaConf
+
+from .base import MatchPairs
+
+
+class MatchLightGlue(MatchPairs):
+    """
+    Implements matching using LightGlue model correspondences.
+    Introduced in: "LightGlue: Local Feature Matching at Light Speed"
+    """
+
+    def __init__(
+        self,
+        features: str,
+        init_threshold: float = 0.1,
+        device: str | None = None,
+        **kwargs,
+    ):
+        """
+        Args:
+            features (str): Features used for matching. Options: 'sift', 'superpoint', 'aliked',
+                'disk'. Must match extracted features from the dataset.
+            init_threshold (float, optional): Keep matches only over this threshold. Matches with
+                lower values are not passed to the collector.
+            device (str, optional): Device used for inference. Defaults to None.
+        """
+        super().__init__(**kwargs)
+
+        if device is None:
+            device = "cuda" if torch.cuda.is_available() else "cpu"
+
+        # Setup config with deaults
+        config = OmegaConf.create(
+            {
+                "name": "matchers.lightglue_pretrained",
+                "features": features,
+                "depth_confidence": -1,
+                "width_confidence": -1,
+                "filter_threshold": init_threshold,
+            }
+        )
+
+        self.model = get_model(config.name)(config).to(device)
+        self.device = device
+
+    def get_matches(self, batch):
+        idx0, data0, idx1, data1 = batch
+        data = {
+            "keypoints0": data0["keypoints"].to(self.device),
+            "descriptors0": data0["descriptors"].to(self.device),
+            "view0": {"image_size": data0["image_size"].to(self.device)},
+            "keypoints1": data1["keypoints"].to(self.device),
+            "descriptors1": data1["descriptors"].to(self.device),
+            "view1": {"image_size": data1["image_size"].to(self.device)},
+        }
+
+        if ("scales" in data1) and ("oris" in data1):
+            data["scales1"] = data1["scales"].to(self.device)
+            data["oris1"] = data1["oris"].to(self.device)
+
+        if ("scales" in data0) and ("oris" in data0):
+            data["scales0"] = data0["scales"].to(self.device)
+            data["oris0"] = data0["oris"].to(self.device)
+
+        with torch.inference_mode():
+            output = self.model(data)
+
+        data = []
+        for i, (i0, i1, scores, matches) in enumerate(zip(idx0, idx1, output["scores"], output["matches"])):
+            matches = matches.cpu()
+            kpts0 = data0["keypoints"][i][matches[:, 0]].cpu().numpy()
+            kpts1 = data1["keypoints"][i][matches[:, 1]].cpu().numpy()
+            scores = scores.cpu().numpy()
+            data.append(
+                {
+                    "idx0": i0.item(),
+                    "idx1": i1.item(),
+                    "kpts0": kpts0,
+                    "kpts1": kpts1,
+                    "scores": scores,
+                }
+            )
+        return data
diff --git a/wildlife_tools/similarity/pairwise/loftr.py b/wildlife_tools/similarity/pairwise/loftr.py
new file mode 100644
index 0000000..be9f832
--- /dev/null
+++ b/wildlife_tools/similarity/pairwise/loftr.py
@@ -0,0 +1,225 @@
+from copy import deepcopy
+
+import numpy as np
+import torch
+from kornia.feature.loftr.loftr import *
+
+from .base import MatchPairs
+
+
+# Modified Kornia LoFTR module that enables skiping finegrained refinement
+class LoFTR(Module):
+    r"""Module, which finds correspondences between two images.
+
+    This is based on the original code from paper "LoFTR: Detector-Free Local
+    Feature Matching with Transformers". See :cite:`LoFTR2021` for more details.
+
+    If the distance matrix dm is not provided, :py:func:`torch.cdist` is used.
+
+    Args:
+        config: Dict with initialization parameters. Do not pass it,
+            unless you know what you are doing`.
+        pretrained: Download and set pretrained weights to the model. Options: 'outdoor', 'indoor'.
+            'outdoor' is trained on the MegaDepth dataset and 'indoor' on the ScanNet.
+
+    Returns:
+        Dictionary with image correspondences and confidence scores.
+
+    Example:
+        >>> img1 = torch.rand(1, 1, 320, 200)
+        >>> img2 = torch.rand(1, 1, 128, 128)
+        >>> input = {"image0": img1, "image1": img2}
+        >>> loftr = LoFTR('outdoor')
+        >>> out = loftr(input)
+    """
+
+    def __init__(
+        self,
+        pretrained: str = "outdoor",
+        config: dict[str, Any] = default_cfg,
+        apply_fine=True,
+        thr: float = 0.2,
+    ) -> None:
+
+        super().__init__()
+        config = deepcopy(config)
+        config["match_coarse"]["thr"] = thr
+
+        self.apply_fine = apply_fine
+        # Misc
+        self.config = config
+        if pretrained == "indoor_new":
+            self.config["coarse"]["temp_bug_fix"] = True
+        # Modules
+        self.backbone = build_backbone(config)
+        self.pos_encoding = PositionEncodingSine(
+            config["coarse"]["d_model"], temp_bug_fix=config["coarse"]["temp_bug_fix"]
+        )
+        self.loftr_coarse = LocalFeatureTransformer(config["coarse"])
+        self.coarse_matching = CoarseMatching(config["match_coarse"])
+        self.fine_preprocess = FinePreprocess(config)
+        self.loftr_fine = LocalFeatureTransformer(config["fine"])
+        self.fine_matching = FineMatching()
+        self.pretrained = pretrained
+        if pretrained is not None:
+            if pretrained not in urls.keys():
+                raise ValueError(f"pretrained should be None or one of {urls.keys()}")
+
+            pretrained_dict = torch.hub.load_state_dict_from_url(urls[pretrained], map_location=torch.device("cpu"))
+            self.load_state_dict(pretrained_dict["state_dict"])
+        self.eval()
+
+    def forward(self, data: dict[str, Tensor]) -> dict[str, Tensor]:
+        """
+        Args:
+            data: dictionary containing the input data in the following format:
+
+        Keyword Args:
+            image0: left image with shape :math:`(N, 1, H1, W1)`.
+            image1: right image with shape :math:`(N, 1, H2, W2)`.
+            mask0 (optional): left image mask. '0' indicates a padded position :math:`(N, H1, W1)`.
+            mask1 (optional): right image mask. '0' indicates a padded position :math:`(N, H2, W2)`.
+
+        Returns:
+            - ``keypoints0``, matching keypoints from image0 :math:`(NC, 2)`.
+            - ``keypoints1``, matching keypoints from image1 :math:`(NC, 2)`.
+            - ``confidence``, confidence score [0, 1] :math:`(NC)`.
+            - ``batch_indexes``, batch indexes for the keypoints and lafs :math:`(NC)`.
+        """
+        # 1. Local Feature CNN
+        _data: dict[str, Tensor | int | torch.Size] = {
+            "bs": data["image0"].size(0),
+            "hw0_i": data["image0"].shape[2:],
+            "hw1_i": data["image1"].shape[2:],
+        }
+
+        if _data["hw0_i"] == _data["hw1_i"]:  # faster & better BN convergence
+            feats_c, feats_f = self.backbone(torch.cat([data["image0"], data["image1"]], dim=0))
+            (feat_c0, feat_c1), (feat_f0, feat_f1) = feats_c.split(_data["bs"]), feats_f.split(_data["bs"])
+        else:  # handle different input shapes
+            (feat_c0, feat_f0), (feat_c1, feat_f1) = self.backbone(data["image0"]), self.backbone(data["image1"])
+
+        _data.update(
+            {
+                "hw0_c": feat_c0.shape[2:],
+                "hw1_c": feat_c1.shape[2:],
+                "hw0_f": feat_f0.shape[2:],
+                "hw1_f": feat_f1.shape[2:],
+            }
+        )
+
+        # 2. coarse-level loftr module
+        # add featmap with positional encoding, then flatten it to sequence [N, HW, C]
+
+        # feat_c0 = rearrange(self.pos_encoding(feat_c0), 'n c h w -> n (h w) c')
+        # feat_c1 = rearrange(self.pos_encoding(feat_c1), 'n c h w -> n (h w) c')
+        feat_c0 = self.pos_encoding(feat_c0).permute(0, 2, 3, 1)
+        n, h, w, c = feat_c0.shape
+        feat_c0 = feat_c0.reshape(n, -1, c)
+
+        feat_c1 = self.pos_encoding(feat_c1).permute(0, 2, 3, 1)
+        n1, h1, w1, c1 = feat_c1.shape
+        feat_c1 = feat_c1.reshape(n1, -1, c1)
+
+        mask_c0 = mask_c1 = None  # mask is useful in training
+        if "mask0" in _data:
+            mask_c0 = resize(data["mask0"], _data["hw0_c"], interpolation="nearest").flatten(-2)
+        if "mask1" in _data:
+            mask_c1 = resize(data["mask1"], _data["hw1_c"], interpolation="nearest").flatten(-2)
+        feat_c0, feat_c1 = self.loftr_coarse(feat_c0, feat_c1, mask_c0, mask_c1)
+
+        # 3. match coarse-level
+        self.coarse_matching(feat_c0, feat_c1, _data, mask_c0=mask_c0, mask_c1=mask_c1)
+
+        # Make fine-level optional
+        if self.apply_fine:
+            # 4. fine-level refinement
+            feat_f0_unfold, feat_f1_unfold = self.fine_preprocess(feat_f0, feat_f1, feat_c0, feat_c1, _data)
+            if feat_f0_unfold.size(0) != 0:  # at least one coarse level predicted
+                feat_f0_unfold, feat_f1_unfold = self.loftr_fine(feat_f0_unfold, feat_f1_unfold)
+
+            # 5. match fine-level
+            self.fine_matching(feat_f0_unfold, feat_f1_unfold, _data)
+        if self.apply_fine:
+            rename_keys: dict[str, str] = {
+                "mkpts0_f": "keypoints0",
+                "mkpts1_f": "keypoints1",
+                "mconf": "confidence",
+                "b_ids": "batch_indexes",
+            }
+        else:
+            rename_keys: dict[str, str] = {
+                "mkpts0_c": "keypoints0",
+                "mkpts1_c": "keypoints1",
+                "mconf": "confidence",
+                "b_ids": "batch_indexes",
+            }
+        out: dict[str, Tensor] = {}
+        for k, v in rename_keys.items():
+            _d = _data[k]
+            if isinstance(_d, Tensor):
+                out[v] = _d
+            else:
+                raise TypeError(f"Expected Tensor for item `{k}`. Gotcha {type(_d)}")
+        return out
+
+
+class MatchLOFTR(MatchPairs):
+    """
+    Implements matching pairs using LoFTR model correspondences.
+    Introduced in: "LoFTR: Detector-Free Local Feature Matching with Transformers"
+
+    """
+
+    def __init__(
+        self,
+        pretrained: str = "outdoor",
+        init_threshold: float = 0.2,
+        device: str | None = None,
+        apply_fine: bool = False,
+        **kwargs,
+    ):
+        """
+        Args:
+            pretrained: LOFTR model used. `outdoor` or `indoor`.
+            device: Specifies device used for the inference.
+            init_threshold: Keep matches only over this threshold.
+            apply_fine: Use LoFTR fine refinement of keypoints locations. Has no effect on
+                confidence, but is faster without fine refinement. False by default.
+        """
+
+        super().__init__(**kwargs)
+
+        if device is None:
+            device = "cuda" if torch.cuda.is_available() else "cpu"
+
+        self.model = LoFTR(pretrained=pretrained, apply_fine=apply_fine, thr=init_threshold).to(device)
+        self.device = device
+
+    def get_matches(self, batch):
+        idx0, data0, idx1, data1 = batch
+        data = {
+            "image0": data0.to(self.device),
+            "image1": data1.to(self.device),
+        }
+        with torch.inference_mode():
+            output = self.model(data)
+
+        batch_idx = output["batch_indexes"].cpu().numpy()
+        confidence = output["confidence"].cpu().numpy()
+        kpts0 = output["keypoints0"].cpu().numpy()
+        kpts1 = output["keypoints1"].cpu().numpy()
+
+        data = []
+        for b, (i0, i1) in enumerate(zip(idx0, idx1)):
+            (current,) = np.where(batch_idx == b)
+            data.append(
+                {
+                    "idx0": i0.item(),
+                    "idx1": i1.item(),
+                    "kpts0": kpts0[current],
+                    "kpts1": kpts1[current],
+                    "scores": confidence[current],
+                }
+            )
+        return data
diff --git a/wildlife_tools/similarity/wildfusion.py b/wildlife_tools/similarity/wildfusion.py
new file mode 100644
index 0000000..0421f2f
--- /dev/null
+++ b/wildlife_tools/similarity/wildfusion.py
@@ -0,0 +1,213 @@
+from typing import Callable
+
+import numpy as np
+import torch
+
+from ..data import FeatureDataset, ImageDataset
+
+
+def get_hits(dataset0, dataset1):
+    """Return grid of label correspondences given two labeled datasets."""
+
+    gt0 = dataset0.labels_string
+    gt1 = dataset1.labels_string
+    gt_grid0 = np.tile(gt0, (len(gt1), 1)).T
+    gt_grid1 = np.tile(gt1, (len(gt0), 1))
+    return gt_grid0 == gt_grid1
+
+
+class SimilarityPipeline:
+    """
+    Implements pipeline for matching and calculating similarity scores between two image datasets.
+
+    Given two (query and database) image datasets, the pipeline consists of the following steps:
+
+        1. Apply image transforms.
+        2. Extract features for both datasets.
+        3. Compute similarity scores between query and database images.
+        4. Calibrate similarity scores.
+    """
+
+    def __init__(
+        self,
+        matcher: Callable | None = None,
+        extractor: Callable | None = None,
+        calibration: Callable | None = None,
+        transform: Callable | None = None,
+    ):
+        """
+        Args:
+            matcher (callable): A matcher that computes scores between two feature datasets.
+            extractor (callable, optional): A function to extract features from the image datasets.
+                Not needed for some matchers.
+            calibration (callable, optional): A calibration model to refine similarity scores.
+            transform (callable, optional): Image transformation function applied before feature
+                extraction.
+        """
+
+        self.matcher = matcher
+        self.calibration = calibration
+        self.calibration_done = False
+        self.extractor = extractor
+        self.transform = transform
+
+    def get_feature_dataset(self, dataset: ImageDataset) -> FeatureDataset:
+        """Apply transformations and extract features from the image dataset."""
+
+        if self.transform is not None:
+            dataset.transform = self.transform
+        if self.extractor is not None:
+            return self.extractor(dataset)
+        else:
+            return dataset
+
+    def fit_calibration(self, dataset0: ImageDataset, dataset1: ImageDataset):
+        """
+        Fit the calibration model using given two image datasets.
+        Fitting the calibration model uses all possible pairs of images from the two datasets.
+        Input scores are similarity scores calculated by the matcher.
+        Binary input labels are based on ground truth labels (identity is the same or not).
+
+        Args:
+            dataset0 (ImageDataset): The first dataset (e.g., part of training set).
+            dataset1 (ImageDataset): The second dataset (e.g., part of training set).
+
+        """
+
+        if self.calibration is None:
+            raise ValueError("Calibration method is not assigned.")
+
+        dataset0 = self.get_feature_dataset(dataset0)
+        dataset1 = self.get_feature_dataset(dataset1)
+        score = self.matcher(dataset0, dataset1)
+
+        hits = get_hits(dataset0, dataset1)
+        self.calibration.fit(score.flatten(), hits.flatten())
+        self.calibration_done = True
+
+    def __call__(self, dataset0: ImageDataset, dataset1: ImageDataset, pairs: list | None = None) -> np.ndarray:
+        """
+        Compute similarity scores between two image datasets, with optional calibration.
+
+        Args:
+            dataset0 (ImageDataset): The first dataset (e.g., query set).
+            dataset1 (ImageDataset): The second dataset (e.g., database set).
+            pairs (list of tuples, optional): Specific pairs of images to compute similarity scores.
+                If None, compute similarity scores for all pairs.
+
+        Returns:
+            np.ndarray: 2D array of similarity scores between the query and database images.
+                If `calibration` is provided, return the calibrated similarity scores.
+        """
+
+        if not self.calibration_done and (self.calibration is not None):
+            raise ValueError("Calibration is not fitted. Use fit_calibration method.")
+
+        dataset0 = self.get_feature_dataset(dataset0)
+        dataset1 = self.get_feature_dataset(dataset1)
+        score = self.matcher(dataset0, dataset1, pairs=pairs)
+
+        if self.calibration is not None:
+            if pairs is not None:
+                pairs = np.array(pairs)
+                idx0 = pairs[:, 0]
+                idx1 = pairs[:, 1]
+                score[idx0, idx1] = self.calibration.predict(score[idx0, idx1])
+            else:
+                score = self.calibration.predict(score.flatten()).reshape(score.shape)
+        return score
+
+
+class WildFusion:
+    """
+    `WildFusion` uses the mean of multiple calibrated `SimilarityPipeline` to calculate fused scores.
+
+    Since many local feature matching models require deep neural network inference for each query and
+    database pair, the computation quickly becomes infeasible even for moderately sized datasets.
+
+    WildFusion can be used with a limited computational budget by applying it only B times per query
+    image. It uses a fast-to-compute similarity score (e.g., cosine similarity of deep features) provided
+    by the priority_pipeline to construct a shortlist of the most promising matches for a given query.
+    Final ranking is then based on WildFusion scores calculated for the pairs in the shortlist.
+    """
+
+    def __init__(
+        self,
+        calibrated_pipelines: list[SimilarityPipeline],
+        priority_pipeline: SimilarityPipeline | None = None,
+    ):
+        """
+        Args:
+            calibrated_pipelines (list[SimilarityPipeline]): List of SimilarityPipeline objects.
+            priority_pipeline (SimilarityPipeline, optional): Fast-to-compute similarity matcher
+                used for shortlisting.
+        """
+
+        self.calibrated_pipelines = calibrated_pipelines
+        self.priority_pipeline = priority_pipeline
+
+    def fit_calibration(self, dataset0: ImageDataset, dataset1: ImageDataset):
+        """
+        Fit the all calibration models for all matchers in `calibrated_pipelines`.
+
+        Args:
+            dataset0 (ImageDataset): The first dataset (e.g., part of training set).
+            dataset1 (ImageDataset): The second dataset (e.g., part of training set).
+        """
+
+        for matcher in self.calibrated_pipelines:
+            matcher.fit_calibration(dataset0, dataset1)
+
+        if (self.priority_pipeline is not None) and (self.priority_pipeline.calibration is not None):
+            self.priority_pipeline.fit_calibration(dataset0, dataset1)
+
+    def get_priority_pairs(self, dataset0: ImageDataset, dataset1: ImageDataset, B: int) -> np.ndarray:
+        """Implements shortlisting strategy for selection of most relevant pairs."""
+
+        if self.priority_pipeline is None:
+            raise ValueError("Priority matcher is not assigned.")
+
+        priority = self.priority_pipeline(dataset0, dataset1)
+        _, idx1 = torch.topk(torch.tensor(priority), min(B, priority.shape[1]))
+        idx0 = np.indices(idx1.numpy().shape)[0]
+        grid_indices = np.stack([idx0.flatten(), idx1.flatten()]).T
+        return grid_indices
+
+    def __call__(
+        self,
+        dataset0: ImageDataset,
+        dataset1: ImageDataset,
+        pairs: list | None = None,
+        B: int = None,
+    ):
+        """
+        Compute fused similarity scores between two images datasets using multiple calibrated
+        matchers. WildFusion score is is calculated as mean of calibrated similarity scores.
+
+        Optionally, to limit the number of pairs to compute, shortlist strategy to select the most
+        promising pairs can be used.
+
+        Args:
+            dataset0 (ImageDataset): The first dataset (e.g., query set).
+            dataset1 (ImageDataset): The second dataset (e.g., database set).
+            pairs (list of tuples, optional): Specific pairs of images to compute similarity scores.
+                                              If None, compute similarity scores for all pairs.
+                                              Is ignored if `B` is provided.
+            B (int, optional): Number of pairs to compute similarity scores for. Required `priority_pipeline` to be assigned.
+                                              If None, compute similarity scores for all pairs.
+
+        Returns:
+            np.ndarray: 2D array of similarity scores between the query and database images.
+                        If `calibration` is provided, returns the calibrated similarity scores.
+
+        """
+        if B is not None:
+            pairs = self.get_priority_pairs(dataset0, dataset1, B=B)
+
+        scores = []
+        for matcher in self.calibrated_pipelines:
+            scores.append(matcher(dataset0, dataset1, pairs=pairs))
+
+        score_combined = np.mean(scores, axis=0)
+        score_combined = np.where(np.isnan(score_combined), -np.inf, score_combined)
+        return score_combined
diff --git a/wildlife_tools/tools.py b/wildlife_tools/tools.py
index 2ce679d..92029ea 100644
--- a/wildlife_tools/tools.py
+++ b/wildlife_tools/tools.py
@@ -1,123 +1,11 @@
-import importlib
 import os
 import random
-from copy import deepcopy
 
+import matplotlib.pyplot as plt
 import numpy as np
 import torch
 import torch.backends.cudnn
-import yaml
-from jinja2 import Environment, meta
-
-
-class Store:
-    """Dictionary with components. Components are imported as needed."""
-
-    modules = {
-        # Data
-        "SplitChunk": ("wildlife_tools.data.split", "SplitChunk"),
-        "SplitWildlife": ("wildlife_tools.data.split", "SplitWildlife"),
-        "SplitMetadata": ("wildlife_tools.data.split", "SplitMetadata"),
-        "SplitChain": ("wildlife_tools.data.split", "SplitChain"),
-        "TransformTimm": ("wildlife_tools.data.transform", "TransformTimm"),
-        "TransformTorchvision": (
-            "wildlife_tools.data.transform",
-            "TransformTorchvision",
-        ),
-        "WildlifeDataset": ("wildlife_tools.data.dataset", "WildlifeDataset"),
-        "FeatureDataset": ("wildlife_tools.data.dataset", "FeatureDataset"),
-        # Features & Similarity
-        "SimilarityPipeline": (
-            "wildlife_tools.pipelines.similarity",
-            "SimilarityPipeline",
-        ),
-        # Train
-        "TrainingPipeline": ("wildlife_tools.pipelines.train", "TrainingPipeline"),
-        "EpochCallbacks": ("wildlife_tools.train.callbacks", "EpochCallbacks"),
-        "EpochLog": ("wildlife_tools.train.callbacks", "EpochLog"),
-        "EpochCheckpoint": ("wildlife_tools.train.callbacks", "EpochCheckpoint"),
-        "EmbeddingTrainer": ("wildlife_tools.train.trainer", "EmbeddingTrainer"),
-        "ClassifierTrainer": ("wildlife_tools.train.trainer", "ClassifierTrainer"),
-        "OptimizerAdam": ("wildlife_tools.train.optim", "OptimizerAdam"),
-        "OptimizerSGD": ("wildlife_tools.train.optim", "OptimizerSGD"),
-        "SchedulerCosine": ("wildlife_tools.train.optim", "SchedulerCosine"),
-        "TimmBackbone": ("wildlife_tools.train.backbone", "TimmBackbone"),
-        "ArcFaceLoss": ("wildlife_tools.train.objective", "ArcFaceLoss"),
-        "TripletLoss": ("wildlife_tools.train.objective", "TripletLoss"),
-        "SoftmaxLoss": ("wildlife_tools.train.objective", "SoftmaxLoss"),
-    }
-
-    def __getitem__(self, key):
-        module_path, class_name = self.modules[key]
-        module = importlib.import_module(module_path)
-        return getattr(module, class_name)
-
-    def __contains__(self, key):
-        return key in self.modules
-
-
-def realize(config, store=None, **kwargs):
-    """realize object from config given its name and method store"""
-
-    if config is None:
-        return None
-
-    if store is None:
-        store = Store()
-
-    config_local = deepcopy(config)
-    name = config_local.pop("method", None)
-
-    if name is None:
-        raise ValueError("No 'method' attribute in config")
-    if name not in store:
-        raise ValueError(f"No method {name} in method store.")
-
-    obj_class = store[name]
-    if hasattr(obj_class, "from_config"):
-        obj = obj_class.from_config(config=config_local, **kwargs)
-    else:
-        obj = obj_class(**config_local, **kwargs)
-
-    obj.source_config = deepcopy(config)
-    return obj
-
-
-def parse_yaml(yaml_string):
-    '''
-    Impute variables with in "{{ }}" with values from top level of the yaml dictionary.
-    Example:
-
-    yaml_string = """
-    a:
-        name: test
-    b:
-        uses: "{{a}}"
-    """
-    parse_yaml(yaml_string)
-    >>> {'a': {'name': 'test'}, 'b': {'uses': {'name': 'test'}}}
-    '''
-
-    env = Environment(
-        variable_start_string="'{{",
-        variable_end_string="}}'",
-    )
-
-    data = yaml.safe_load(yaml_string)
-    data_str = str(data)
-    variables = meta.find_undeclared_variables(env.parse(data_str))
-
-    while len(variables) != 0:
-        data_str = env.from_string(data_str).render(data)
-        data = yaml.safe_load(data_str)
-        variables_new = meta.find_undeclared_variables(env.parse(data_str))
-
-        # Check if number of resolved variables changed
-        if len(variables) == len(variables_new):
-            raise ValueError(f"Unable to impute variables in all places: {variables}")
-
-        variables = variables_new
-    return data
+from PIL import Image
 
 
 def set_seed(seed=0, device="cuda"):
@@ -129,3 +17,36 @@ def set_seed(seed=0, device="cuda"):
         torch.cuda.manual_seed(seed)
         torch.backends.cudnn.deterministic = True
         torch.backends.cudnn.benchmark = False
+
+
+def frame_image(img, frame_width, color=(255, 0, 0)):
+    b = frame_width
+    ny, nx = img.shape[0], img.shape[1]
+    framed_img = np.array(Image.new("RGB", (b + ny + b, b + nx + b), color))
+    framed_img[b:-b, b:-b] = img
+    return framed_img
+
+
+def plot_predictions(images, labels, figsize=(15, 3), frame_size=5):
+    N = len(images)
+    fig, ax = plt.subplots(1, N, figsize=figsize)
+    for i in range(N):
+        img = images[i].mul(255).add_(0.5).clamp_(0, 255).permute(1, 2, 0).to("cpu", torch.uint8).numpy()
+
+        if labels[i] == labels[0]:
+            color = "green"
+        else:
+            color = "red"
+        if i == 0:
+            color = "yellow"
+
+        img = frame_image(img, frame_size, color=color)
+        ax[i].imshow(img)
+        ax[i].axis("off")
+        if len(labels[i]) > 10:
+            label = labels[i][:10] + "..."
+        else:
+            label = labels[i]
+        ax[i].text(0.5, 1.05, label, transform=ax[i].transAxes, rotation=30)
+    fig.subplots_adjust(wspace=0.0)
+    return fig
diff --git a/wildlife_tools/train/__init__.py b/wildlife_tools/train/__init__.py
index 7c3646b..87c7038 100644
--- a/wildlife_tools/train/__init__.py
+++ b/wildlife_tools/train/__init__.py
@@ -1,6 +1,3 @@
-from .backbone import TimmBackbone
 from .callbacks import EpochCallbacks
 from .objective import ArcFaceLoss, SoftmaxLoss, TripletLoss
-from .optim import OptimizerAdam, OptimizerSGD
-from .trainer import (BasicTrainer, ClassifierTrainer, EmbeddingTrainer,
-                      set_seed)
+from .trainer import BasicTrainer, set_seed
diff --git a/wildlife_tools/train/backbone.py b/wildlife_tools/train/backbone.py
deleted file mode 100644
index 70135dc..0000000
--- a/wildlife_tools/train/backbone.py
+++ /dev/null
@@ -1,18 +0,0 @@
-import timm
-
-
-class TimmBackbone:
-    """
-    Example config in YAML file:
-
-    backbone:
-        method: TimmBackbone
-        model_name: 'efficientnet_b0'
-        pretrained: True
-    """
-
-    @classmethod
-    def from_config(cls, config, output_size=None):
-        if output_size is None:
-            output_size = 0
-        return timm.create_model(num_classes=output_size, **config)
diff --git a/wildlife_tools/train/callbacks.py b/wildlife_tools/train/callbacks.py
index df68ccb..5870701 100644
--- a/wildlife_tools/train/callbacks.py
+++ b/wildlife_tools/train/callbacks.py
@@ -1,12 +1,11 @@
 import os
-from copy import deepcopy
 
 from torch.utils.tensorboard import SummaryWriter
 
-from wildlife_tools.tools import realize
-
 
 class EpochCheckpoint:
+    """Save trainer checkpoint after epoch."""
+
     def __init__(self, folder=".", save_step=1):
         self.folder = folder
         self.save_step = save_step
@@ -14,21 +13,20 @@ def __init__(self, folder=".", save_step=1):
     def __call__(self, trainer, **kwargs):
         os.makedirs(self.folder, exist_ok=True)
         if trainer.epoch % self.save_step == 0:
-            trainer.save(
-                folder=self.folder, file_name=f"checkpoint-{trainer.epoch}.pth"
-            )
+            trainer.save(folder=self.folder, file_name=f"checkpoint-{trainer.epoch}.pth")
 
 
 class EpochLog:
-    def __init__(self, folder="."):
-        self.folder = folder
-        self.writer = SummaryWriter(log_dir=folder)
+    """Log epoch training data into tensorboad."""
+
+    def __init__(self, folder=".", writer=None):
+        if writer is None:
+            writer = SummaryWriter(log_dir=folder)
+        self.writer = writer
 
     def __call__(self, trainer, epoch_data: dict[str, int], **kwargs):
         if trainer.scheduler is not None:
-            self.writer.add_scalar(
-                "lr", trainer.scheduler.get_last_lr()[0], trainer.epoch
-            )
+            self.writer.add_scalar("lr", trainer.scheduler.get_last_lr()[0], trainer.epoch)
 
         for key, value in epoch_data.items():
             self.writer.add_scalar(key, value, trainer.epoch)
@@ -43,11 +41,3 @@ def __init__(self, steps):
     def __call__(self, trainer, **kwargs):
         for step in self.steps:
             step(trainer=trainer, **kwargs)
-
-    @classmethod
-    def from_config(cls, config):
-        config = deepcopy(config)
-        steps = []
-        for config_step in config["steps"]:
-            steps.append(realize(config_step))
-        return cls(steps=steps)
diff --git a/wildlife_tools/train/objective.py b/wildlife_tools/train/objective.py
index 38c8c24..ffbe3b2 100644
--- a/wildlife_tools/train/objective.py
+++ b/wildlife_tools/train/objective.py
@@ -6,11 +6,14 @@ class ArcFaceLoss(nn.Module):
     """
     Wraps Pytorch Metric Learning ArcFaceLoss.
 
-    Default margin (in radians): 0.5
-    Default scale: 64
+    Args:
+        num_classes (int): Number of classes.
+        embedding_size (int): Size of the input embeddings.
+        margin (int): Margin for ArcFace loss (in radians).
+        scale (int): Scale parameter for ArcFace loss.
     """
 
-    def __init__(self, num_classes, embedding_size, margin=0.5, scale=64):
+    def __init__(self, num_classes: int, embedding_size: int, margin: int = 0.5, scale: int = 64):
         super().__init__()
         self.loss = losses.ArcFaceLoss(
             num_classes=num_classes,
@@ -27,11 +30,14 @@ class TripletLoss(nn.Module):
     """
     Wraps Pytorch Metric Learning TripletMarginLoss.
 
-    Mining is one of: 'all', 'hard', 'semihard'
-    Distance is one of: 'cosine', 'l2', 'l2_squared'
+    Args:
+        margin (int): Margin for triplet loss.
+        mining (str): Type of triplet mining. One of: 'all', 'hard', 'semihard'
+        distance (str): Distance metric for triplet loss. One of: 'cosine', 'l2', 'l2_squared'
+
     """
 
-    def __init__(self, margin=0.2, mining="seminard", distance="l2_squared"):
+    def __init__(self, margin: int = 0.2, mining: str = "seminard", distance: str = "l2_squared"):
         super().__init__()
         if distance == "cosine":
             distance = distances.CosineSimilarity()
@@ -43,9 +49,7 @@ def __init__(self, margin=0.2, mining="seminard", distance="l2_squared"):
             raise ValueError(f"Invalid distance: {distance}")
 
         self.loss = losses.TripletMarginLoss(distance=distance, margin=margin)
-        self.miner = miners.TripletMarginMiner(
-            distance=distance, type_of_triplets=mining, margin=margin
-        )
+        self.miner = miners.TripletMarginMiner(distance=distance, type_of_triplets=mining, margin=margin)
 
     def forward(self, embeddings, y):
         indices_tuple = self.miner(embeddings, y)
@@ -53,9 +57,15 @@ def forward(self, embeddings, y):
 
 
 class SoftmaxLoss(nn.Module):
-    """CE with single dense layer classification head."""
+    """
+    CE with single dense layer classification head.
+
+    Args:
+        num_classes (int): Number of classes.
+        embedding_size (int): Size of the input embeddings.
+    """
 
-    def __init__(self, num_classes, embedding_size):
+    def __init__(self, num_classes: int, embedding_size: int):
         super().__init__()
         self.criterion = nn.CrossEntropyLoss()
         self.linear = nn.Linear(embedding_size, num_classes)
diff --git a/wildlife_tools/train/optim.py b/wildlife_tools/train/optim.py
deleted file mode 100644
index ed24b78..0000000
--- a/wildlife_tools/train/optim.py
+++ /dev/null
@@ -1,49 +0,0 @@
-import torch
-
-
-class OptimizerAdam:
-    """
-    Example config in YAML file:
-    - Needs model params for initialization.
-
-    optimizer:
-        method: 'OptimizerAdam'
-        lr: 1e-3
-    """
-
-    @classmethod
-    def from_config(cls, config, params):
-        return torch.optim.Adam(params=params, **config)
-
-
-class OptimizerSGD:
-    """
-    Example config in YAML file:
-    - Needs model params for initialization.
-
-    optimizer:
-        method: 'OptimizerSGD'
-        lr: 1e-3
-    """
-
-    @classmethod
-    def from_config(cls, config, params):
-        return torch.optim.SGD(params=params, **config)
-
-
-class SchedulerCosine:
-    """
-    Example config in YAML file:
-    - Needs optimizer and number of epochs for initialization.
-
-    scheduler:
-        method: SchedulerCosine
-    """
-
-    @classmethod
-    def from_config(cls, config, optimizer, epochs):
-        lr = optimizer.defaults.get("lr")
-        lr_min = lr * 1e-3 if lr is not None else 1e-5
-        return torch.optim.lr_scheduler.CosineAnnealingLR(
-            optimizer, T_max=epochs, eta_min=lr_min, **config
-        )
diff --git a/wildlife_tools/train/trainer.py b/wildlife_tools/train/trainer.py
index 5225fb8..3e8ccc8 100644
--- a/wildlife_tools/train/trainer.py
+++ b/wildlife_tools/train/trainer.py
@@ -1,15 +1,11 @@
 import os
 import random
-from copy import deepcopy
-from itertools import chain
 
 import numpy as np
 import torch
 import torch.backends.cudnn
 from tqdm import tqdm
 
-from wildlife_tools.tools import realize
-
 
 def set_seed(seed=0):
     os.environ["PYTHONHASHSEED"] = str(seed)
@@ -22,17 +18,17 @@ def set_seed(seed=0):
 
 
 def set_random_states(states):
-    if 'os_rng_state' in states and states["os_rng_state"]:
+    if "os_rng_state" in states and states["os_rng_state"]:
         os.environ["PYTHONHASHSEED"] = states["os_rng_state"]
-    if 'random_rng_state' in states:
+    if "random_rng_state" in states:
         random.setstate(states["random_rng_state"])
-    if 'numpy_rng_state' in states:
+    if "numpy_rng_state" in states:
         np.random.set_state(states["numpy_rng_state"])
-    if 'torch_rng_state' in states:
+    if "torch_rng_state" in states:
         torch.set_rng_state(states["torch_rng_state"])
-    if 'torch_cuda_rng_state' in states:
+    if "torch_cuda_rng_state" in states:
         torch.cuda.set_rng_state(states["torch_cuda_rng_state"])
-    if 'torch_cuda_rng_state_all' in states:
+    if "torch_cuda_rng_state_all" in states:
         torch.cuda.set_rng_state_all(states["torch_cuda_rng_state_all"])
 
     torch.backends.cudnn.deterministic = True
@@ -40,6 +36,7 @@ def set_random_states(states):
 
 
 def get_random_states():
+    """Gives dictionary of random states for reproducibility."""
     states = {}
     states["os_rng_state"] = os.environ.get("PYTHONHASHSEED")
     states["random_rng_state"] = random.getstate()
@@ -52,6 +49,36 @@ def get_random_states():
 
 
 class BasicTrainer:
+    """
+    Implements basic training loop for Pytorch models.
+    Checkpoints includes random states - any restarts from checkpoint preservers reproducibility.
+
+    Args:
+        dataset ():
+            Training dataset that gives (x, y) tensor pairs.
+        model (dict):
+            Pytorch nn.Module for model / backbone.
+        objective (dict):
+            Pytorch nn.Module for objective / loss function.
+        optimizer:
+            Pytorch optimizer.
+        scheduler (optional):
+            Pytorch scheduler.
+        epochs (int):
+            Number of training epochs.
+        device (str, default: 'cuda'):
+            Device to be used for training.
+        batch_size (int, default: 128):
+            Training batch size.
+        num_workers (int, default: 1):
+            Number of data loading workers in torch DataLoader.
+        accumulation_steps (int, default: 1):
+            Number of gradient accumulation steps.
+        epoch_callback:
+            Callback function to be called after each epoch.
+
+    """
+
     def __init__(
         self,
         dataset,
@@ -97,9 +124,7 @@ def train(self):
     def train_epoch(self, loader):
         model = self.model.train()
         losses = []
-        for i, batch in enumerate(
-            tqdm(loader, desc=f"Epoch {self.epoch}: ", mininterval=1, ncols=100)
-        ):
+        for i, batch in enumerate(tqdm(loader, desc=f"Epoch {self.epoch}: ", mininterval=1, ncols=100)):
             x, y = batch
             x, y = x.to(self.device), y.to(self.device)
 
@@ -148,141 +173,3 @@ def load(self, path, load_rng=True):
             set_random_states(checkpoint["rng_states"])
         if "scheduler" in checkpoint and self.scheduler:
             self.scheduler.load_state_dict(checkpoint["scheduler"])
-
-
-class ClassifierTrainer:
-    @classmethod
-    def from_config(cls, config):
-        """
-        Use config dict to setup BasicTrainer for training classifier.
-
-        Config keys:
-            dataset (dict):
-                Config dictionary of the training dataset.
-            backbone (dict):
-                Config dictionary of the backbone.
-            objective (dict):
-                Config dictionary of the objective.
-            scheduler (dict | None, default: None):
-                Config dictionary of the scheduler (no scheduler is used by default).
-            epochs (int):
-                Number of training epochs.
-            device (str, default: 'cuda'):
-                Device to be used.
-            batch_size (int, default: 128):
-                Training batch size.
-            num_workers (int, default: 1):
-                Number of data loading workers in torch DataLoader.
-            accumulation_steps (int, default: 1):
-                Number of gradient accumulation steps.
-
-        Returns:
-            Ready to use BasicTrainer
-
-        """
-
-        config = deepcopy(config)
-
-        dataset = realize(
-            config=config.pop("dataset"),
-        )
-        model = realize(
-            config=config.pop("backbone"),
-            output_size=dataset.num_classes,
-        )
-        objective = realize(
-            config=config.pop("objective"),
-        )
-        optimizer = realize(
-            config=config.pop("optimizer"),
-            params=model.parameters(),
-        )
-        scheduler = realize(
-            config=config.pop("scheduler", None),
-            epochs=config.get("epochs"),
-        )
-        epoch_callback = realize(
-            config=config.pop("epoch_callback", None),
-        )
-
-        return BasicTrainer(
-            model=model,
-            dataset=dataset,
-            objective=objective,
-            optimizer=optimizer,
-            scheduler=scheduler,
-            epoch_callback=epoch_callback,
-            **config,
-        )
-
-
-class EmbeddingTrainer:
-    @classmethod
-    def from_config(cls, config):
-        """Use config dict to setup BasicTrainer for training embedder.
-
-        Config keys:
-            dataset (dict):
-                Config dictionary of the training dataset.
-            backbone (dict):
-                Config dictionary of the backbone.
-            objective (dict):
-                Config dictionary of the objective.
-            scheduler (dict | None, default: None):
-                Config dictionary of the scheduler (no scheduler is used by default).
-            embedding_size (int | None, default: None):
-                Adds a linear layer after the backbone with the target embedding size.
-                By default, embedding size is inferred from backbone (e.g., num_classes=0 in TIMM).
-            epochs (int):
-                Number of training epochs.
-            device (str, default: 'cuda'):
-                Device to be used.
-            batch_size (int, default: 128):
-                Training batch size.
-            num_workers (int, default: 1):
-                Number of data loading workers in torch DataLoader.
-            accumulation_steps (int, default: 1):
-                Number of gradient accumulation steps.
-
-        Returns:
-            Instance of BasicTrainer
-
-        """
-
-        config = deepcopy(config)
-        embedding_size = config.pop("embedding_size", None)
-
-        dataset = realize(config=config.pop("dataset"))
-        backbone = realize(config=config.pop("backbone"), output_size=embedding_size)
-
-        if embedding_size is None:  # Infer embedding size
-            with torch.no_grad():
-                x = dataset[0][0].unsqueeze(0)
-                embedding_size = backbone(x).shape[1]
-
-        objective = realize(
-            config=config.pop("objective"),
-            embedding_size=embedding_size,
-            num_classes=dataset.num_classes,
-        )
-        optimizer = realize(
-            config=config.pop("optimizer"),
-            params=chain(backbone.parameters(), objective.parameters()),
-        )
-        scheduler = realize(
-            optimizer=optimizer,
-            config=config.pop("scheduler", None),
-            epochs=config.get("epochs"),
-        )
-        epoch_callback = realize(
-            config=config.pop("epoch_callback", None),
-        )
-        return BasicTrainer(
-            model=backbone,
-            dataset=dataset,
-            objective=objective,
-            optimizer=optimizer,
-            scheduler=scheduler,
-            epoch_callback=epoch_callback,
-            **config,
-        )


Test patch:
diff --git a/tests/conftest.py b/tests/conftest.py
index 9590d52..beec18c 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,9 +1,9 @@
 import pytest
 import torchvision.transforms as T
 import pandas as pd
-from wildlife_tools.data import WildlifeDataset
-from wildlife_tools.features import DeepFeatures, SIFTFeatures
-from wildlife_tools.similarity import CosineSimilarity, MatchDescriptors
+from wildlife_tools.data import ImageDataset
+from wildlife_tools.features import DeepFeatures, SiftExtractor, SuperPointExtractor
+from wildlife_tools.similarity import CosineSimilarity, MatchLightGlue
 import numpy as np
 import timm
 
@@ -20,31 +20,37 @@ def array():
 
 @pytest.fixture(scope="session")
 def dataset(metadata):
-    return WildlifeDataset(**metadata)
+    return ImageDataset(**metadata)
 
 
 @pytest.fixture(scope="session")
 def dataset_deep(metadata):
     transform = T.Compose([T.Resize([224, 224]), T.ToTensor()])
-    return WildlifeDataset(**metadata, transform=transform)
+    return ImageDataset(**metadata, transform=transform)
 
 
 @pytest.fixture(scope="session")
-def dataset_sift(metadata):
-    transform = T.Compose([T.Resize([224, 224]), T.Grayscale()])
-    return WildlifeDataset(**metadata, transform=transform)
+def dataset_lightglue(metadata):
+    transform = T.Compose([T.Resize([224, 224]), T.ToTensor()])
+    return ImageDataset(**metadata, transform=transform)
 
 
 @pytest.fixture(scope="session")
 def dataset_loftr(metadata):
     transform = T.Compose([T.Resize([224, 224]), T.Grayscale(), T.ToTensor()])
-    return WildlifeDataset(**metadata, transform=transform, load_label=False)
+    return ImageDataset(**metadata, transform=transform, load_label=False)
+
+
+@pytest.fixture(scope="session")
+def features_sift(dataset_lightglue):
+    extractor = SiftExtractor()
+    return extractor(dataset_lightglue)
 
 
 @pytest.fixture(scope="session")
-def features_sift(dataset_sift):
-    extractor = SIFTFeatures()
-    return extractor(dataset_sift)
+def features_superpoint(dataset_lightglue):
+    extractor = SuperPointExtractor()
+    return extractor(dataset_lightglue)
 
 
 @pytest.fixture(scope="session")
@@ -62,5 +68,11 @@ def similarity_deep(features_deep):
 
 @pytest.fixture(scope="session")
 def similarity_sift(features_sift):
-    similarity = MatchDescriptors(descriptor_dim=128, thresholds=[0.8])
-    return similarity(features_sift, features_sift)[0.8]
\ No newline at end of file
+    similarity = MatchLightGlue(features='sift', descriptor_dim=128, thresholds=[0.5])
+    return similarity(features_sift, features_sift)
+
+
+@pytest.fixture(scope="session")
+def similarity_superpoint(features_superpoint):
+    similarity = MatchLightGlue(features='sift', descriptor_dim=128, thresholds=[0.5])
+    return similarity(features_superpoint, features_superpoint)
\ No newline at end of file
diff --git a/tests/test_inference.py b/tests/test_inference.py
index f008fe0..1eef126 100644
--- a/tests/test_inference.py
+++ b/tests/test_inference.py
@@ -1,24 +1,110 @@
 
-from wildlife_tools.inference import KnnMatcher, KnnClassifier
-from wildlife_tools.data import FeatureDataset
+import pytest
+import numpy as np
+from wildlife_tools.inference import TopkClassifier, KnnClassifier
+    
 
+@pytest.fixture
+def database_labels():
+    return np.array(['A', 'B', 'C', 'D', 'E'])
 
-def test_knn_classifier_deep(similarity_deep, dataset):
-    classifier = KnnClassifier(k=1, database_labels=dataset.labels_string)
-    output = classifier(similarity_deep)
-    assert len(output) == len(dataset)
 
+@pytest.fixture
+def similarity():
+    return np.array([
+        [0.9, 0.8, 0.7, 0.6, 0.5],  # query 1
+        [0.1, 0.4, 0.5, 0.2, 0.3],  # query 2
+        [0.3, 0.6, 0.1, 0.4, 0.2],  # query 3
+        [0.5, 0.6, 0.7, 0.6, 0.5]   # query 4
+    ])
 
-def test_knn_classifier_sift(similarity_sift, dataset):
-    classifier = KnnClassifier(k=1, database_labels=dataset.labels_string)
-    output = classifier(similarity_sift)
-    assert len(output) == len(dataset)
 
+def test_knn_without_scores_k1(database_labels, similarity):
+    classifier = KnnClassifier(database_labels, k=1, return_scores=False)
+    preds = classifier(similarity)
+    expected_preds = np.array(['A', 'C', 'B', 'C'])
+    np.testing.assert_array_equal(preds, expected_preds)
 
-def test_knn_matcher(features_deep, dataset):
-    feature_dataset = FeatureDataset(features_deep, metadata=dataset.metadata)
-    matcher = KnnMatcher(feature_dataset)
-    output = matcher(features_deep)
-    assert len(output) == len(features_deep)
 
+def test_knn_with_scores_k1(database_labels, similarity):
+    classifier = KnnClassifier(database_labels, k=1, return_scores=True)
+    preds, scores = classifier(similarity)
+    expected_preds = np.array(['A', 'C', 'B', 'C'])
+    expected_scores = np.array([0.9, 0.5, 0.6, 0.7])
+    np.testing.assert_array_equal(preds, expected_preds)
+    np.testing.assert_array_almost_equal(scores, expected_scores)
 
+
+def test_knn_without_scores_k2(database_labels, similarity):
+    classifier = KnnClassifier(database_labels, k=2, return_scores=False)
+    preds = classifier(similarity)
+    expected_preds = np.array(['A', 'C', 'B', 'C'])
+    np.testing.assert_array_equal(preds, expected_preds)
+
+
+def test_knn_with_scores_k2(database_labels, similarity):
+    classifier = KnnClassifier(database_labels, k=2, return_scores=True)
+    preds, scores = classifier(similarity)
+    expected_preds = np.array(['A', 'C', 'B', 'C'])
+    expected_scores = np.array([0.9, 0.5, 0.6, 0.7])
+    np.testing.assert_array_equal(preds, expected_preds)
+    np.testing.assert_array_almost_equal(scores, expected_scores)
+
+
+def test_knn_with_ties_k3():
+    database_labels = np.array(['A', 'A', 'B', 'B'])
+    similarity = np.array([[0.9, 0.9, 0.8, 0.8]])
+
+    classifier = KnnClassifier(database_labels, k=4, return_scores=True)
+    preds, scores = classifier(similarity)
+    expected_preds = np.array(['A'])  # 'A' is selected because of mean score
+    expected_scores = np.array([0.9])
+    np.testing.assert_array_equal(preds, expected_preds)
+    np.testing.assert_array_almost_equal(scores, expected_scores)
+
+
+def test_topk_without_scores_k1(database_labels, similarity):
+    classifier = TopkClassifier(database_labels, k=1, return_all=False)
+    preds = classifier(similarity)
+    expected_preds = np.array([['A'], ['C'], ['B'], ['C']])
+    np.testing.assert_array_equal(preds, expected_preds)
+
+
+def test_topk_with_scores_k1(database_labels, similarity):
+    classifier = TopkClassifier(database_labels, k=1, return_all=True)
+    preds, scores, _ = classifier(similarity)
+    expected_preds = np.array([['A'], ['C'], ['B'], ['C']])
+    expected_scores = np.array([[0.9], [0.5], [0.6], [0.7]])
+    np.testing.assert_array_equal(preds, expected_preds)
+    np.testing.assert_array_almost_equal(scores, expected_scores)
+
+
+def test_topk_with_scores_k3(database_labels, similarity):
+    classifier = TopkClassifier(database_labels, k=3, return_all=True)
+    preds, scores, _ = classifier(similarity)
+    expected_preds = np.array([
+        ['A', 'B', 'C'],
+        ['C', 'B', 'E'],
+        ['B', 'D', 'A'],
+        ['C', 'B', 'D'],
+    ])
+    expected_scores = np.array([
+        [0.9, 0.8, 0.7],
+        [0.5, 0.4, 0.3],
+        [0.6, 0.4, 0.3],
+        [0.7, 0.6, 0.6]
+    ])
+    np.testing.assert_array_equal(preds, expected_preds)
+    np.testing.assert_array_almost_equal(scores, expected_scores)
+
+
+def test_topk_large_k(database_labels, similarity):
+    classifier = TopkClassifier(database_labels, k=10, return_all=False)
+    preds = classifier(similarity)
+    expected_preds = np.array([
+        ['A', 'B', 'C', 'D', 'E'],
+        ['C', 'B', 'E', 'D', 'A'],
+        ['B', 'D', 'A', 'E', 'C'],
+        ['C', 'B', 'D', 'A', 'E']
+    ])
+    np.testing.assert_array_equal(preds, expected_preds)