Full Code of zhu-xlab/SSL4EO-S12 for AI

main 2156913c5d8e cached
319 files
4.1 MB
1.1M tokens
1795 symbols
1 requests
Download .txt
Showing preview only (4,393K chars total). Download the full file or copy to clipboard to get everything.
Repository: zhu-xlab/SSL4EO-S12
Branch: main
Commit: 2156913c5d8e
Files: 319
Total size: 4.1 MB

Directory structure:
gitextract_cmyl0w8x/

├── .gitignore
├── LICENSE
├── README.md
├── data/
│   ├── 50k_ids_random.csv
│   └── void_ids.csv
└── src/
    ├── benchmark/
    │   ├── pretrain_data2vec/
    │   │   └── readme.md
    │   ├── pretrain_ssl/
    │   │   ├── datasets/
    │   │   │   └── SSL4EO/
    │   │   │       ├── ssl4eo_dataset.py
    │   │   │       └── ssl4eo_dataset_lmdb.py
    │   │   ├── models/
    │   │   │   ├── data2vec/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── README_Original.md
    │   │   │   │   ├── dall_e/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── decoder.py
    │   │   │   │   │   ├── encoder.py
    │   │   │   │   │   └── utils.py
    │   │   │   │   ├── dataset_folder.py
    │   │   │   │   ├── datasets.py
    │   │   │   │   ├── engine_for_cyclical.py
    │   │   │   │   ├── engine_for_cyclical_joint.py
    │   │   │   │   ├── engine_for_finetuning.py
    │   │   │   │   ├── engine_for_pretraining.py
    │   │   │   │   ├── get_started_for_image_classification.md
    │   │   │   │   ├── masking_generator.py
    │   │   │   │   ├── modeling_cyclical.py
    │   │   │   │   ├── modeling_cyclical_joint.py
    │   │   │   │   ├── modeling_discrete_vae.py
    │   │   │   │   ├── modeling_finetune.py
    │   │   │   │   ├── modeling_pretrain.py
    │   │   │   │   ├── models.py
    │   │   │   │   ├── optim_factory.py
    │   │   │   │   ├── requirements.txt
    │   │   │   │   ├── run_beit_pretraining.py
    │   │   │   │   ├── run_class_finetuning.py
    │   │   │   │   ├── run_cyclical.py
    │   │   │   │   ├── run_cyclical_joint.py
    │   │   │   │   ├── semantic_segmentation/
    │   │   │   │   │   ├── README.md
    │   │   │   │   │   ├── backbone/
    │   │   │   │   │   │   └── beit.py
    │   │   │   │   │   ├── configs/
    │   │   │   │   │   │   ├── _base_/
    │   │   │   │   │   │   │   ├── datasets/
    │   │   │   │   │   │   │   │   ├── ade20k.py
    │   │   │   │   │   │   │   │   └── ade20k_640x640.py
    │   │   │   │   │   │   │   ├── default_runtime.py
    │   │   │   │   │   │   │   ├── models/
    │   │   │   │   │   │   │   │   └── upernet_beit.py
    │   │   │   │   │   │   │   └── schedules/
    │   │   │   │   │   │   │       ├── schedule_160k.py
    │   │   │   │   │   │   │       └── schedule_320k.py
    │   │   │   │   │   │   └── beit/
    │   │   │   │   │   │       └── upernet/
    │   │   │   │   │   │           ├── upernet_beit_base_12_512_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_512_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_640_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_640_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_512_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_512_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_640_slide_160k_ade20k.py
    │   │   │   │   │   │           └── upernet_beit_large_24_640_slide_160k_ade20k_ms.py
    │   │   │   │   │   ├── mmcv_custom/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── apex_runner/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── apex_iter_based_runner.py
    │   │   │   │   │   │   │   ├── checkpoint.py
    │   │   │   │   │   │   │   └── optimizer.py
    │   │   │   │   │   │   ├── checkpoint.py
    │   │   │   │   │   │   ├── layer_decay_optimizer_constructor.py
    │   │   │   │   │   │   ├── resize_transform.py
    │   │   │   │   │   │   └── train_api.py
    │   │   │   │   │   └── tools/
    │   │   │   │   │       ├── dist_test.sh
    │   │   │   │   │       ├── dist_train.sh
    │   │   │   │   │       ├── test.py
    │   │   │   │   │       └── train.py
    │   │   │   │   ├── transforms.py
    │   │   │   │   └── utils.py
    │   │   │   ├── dino/
    │   │   │   │   ├── utils.py
    │   │   │   │   └── vision_transformer.py
    │   │   │   ├── mae/
    │   │   │   │   ├── engine_finetune.py
    │   │   │   │   ├── engine_finetune_BE.py
    │   │   │   │   ├── engine_finetune_EU.py
    │   │   │   │   ├── engine_finetune_SS.py
    │   │   │   │   ├── engine_pretrain.py
    │   │   │   │   ├── main_finetune.py
    │   │   │   │   ├── main_linprobe.py
    │   │   │   │   ├── main_pretrain.py
    │   │   │   │   ├── models_mae.py
    │   │   │   │   ├── models_vit.py
    │   │   │   │   ├── submitit_finetune.py
    │   │   │   │   ├── submitit_linprobe.py
    │   │   │   │   ├── submitit_pretrain.py
    │   │   │   │   └── util/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── crop.py
    │   │   │   │       ├── datasets.py
    │   │   │   │       ├── lars.py
    │   │   │   │       ├── lr_decay.py
    │   │   │   │       ├── lr_sched.py
    │   │   │   │       ├── misc.py
    │   │   │   │       └── pos_embed.py
    │   │   │   ├── moco/
    │   │   │   │   ├── builder.py
    │   │   │   │   └── loader.py
    │   │   │   ├── moco_v2/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── builder.py
    │   │   │   │   ├── detection/
    │   │   │   │   │   ├── README.md
    │   │   │   │   │   ├── configs/
    │   │   │   │   │   │   ├── Base-RCNN-C4-BN.yaml
    │   │   │   │   │   │   ├── coco_R_50_C4_2x.yaml
    │   │   │   │   │   │   ├── coco_R_50_C4_2x_moco.yaml
    │   │   │   │   │   │   ├── pascal_voc_R_50_C4_24k.yaml
    │   │   │   │   │   │   └── pascal_voc_R_50_C4_24k_moco.yaml
    │   │   │   │   │   ├── convert-pretrain-to-detectron2.py
    │   │   │   │   │   └── train_net.py
    │   │   │   │   ├── loader.py
    │   │   │   │   └── main_lincls.py
    │   │   │   ├── moco_v3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── builder.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── optimizer.py
    │   │   │   │   └── vits.py
    │   │   │   ├── rs_transforms_float32.py
    │   │   │   └── rs_transforms_uint8.py
    │   │   ├── pretrain_data2vec.py
    │   │   ├── pretrain_dino_s2c.py
    │   │   ├── pretrain_mae_s2c.py
    │   │   ├── pretrain_moco_v2_s2c.py
    │   │   ├── pretrain_moco_v2_seco_ms.py
    │   │   ├── pretrain_moco_v2_sen12ms_ms.py
    │   │   ├── pretrain_moco_v3_s2c.py
    │   │   └── scripts/
    │   │       └── pretrain/
    │   │           ├── srun_train_SEN12MS_moco_rn50_rgb.sh
    │   │           ├── srun_train_SEN12MS_moco_rn50_s2c.sh
    │   │           ├── srun_train_SeCo_moco_rn50_s2a.sh
    │   │           ├── srun_train_dino_rn50_s2c.sh
    │   │           ├── srun_train_dino_vits16_s2c.sh
    │   │           ├── srun_train_mae_vits16_s2c.sh
    │   │           ├── srun_train_moco_rn50_s2c.sh
    │   │           ├── srun_train_moco_vits16_s2c.sh
    │   │           ├── submit_pretrain_data2vec.sh
    │   │           └── train_data2vec_vits16_s2c.sh
    │   ├── transfer_change_detection/
    │   │   ├── datasets/
    │   │   │   ├── __init__.py
    │   │   │   ├── oscd_datamodule.py
    │   │   │   └── oscd_dataset.py
    │   │   ├── main_oscd.py
    │   │   ├── models/
    │   │   │   ├── __init__.py
    │   │   │   └── segmentation.py
    │   │   ├── readme.md
    │   │   ├── test.sh
    │   │   ├── train.sh
    │   │   ├── utils/
    │   │   │   ├── __init__.py
    │   │   │   ├── data.py
    │   │   │   └── transforms.py
    │   │   └── validate_oscd.py
    │   ├── transfer_classification/
    │   │   ├── datasets/
    │   │   │   ├── BigEarthNet/
    │   │   │   │   ├── bigearthnet_dataset_seco.py
    │   │   │   │   └── bigearthnet_dataset_seco_lmdb_s2_uint8.py
    │   │   │   ├── EuroSat/
    │   │   │   │   └── eurosat_dataset.py
    │   │   │   └── So2Sat/
    │   │   │       └── so2sat_lcz42_dataset.py
    │   │   ├── linear_BE_data2vec.py
    │   │   ├── linear_BE_dino.py
    │   │   ├── linear_BE_mae.py
    │   │   ├── linear_BE_moco.py
    │   │   ├── linear_BE_moco_v3.py
    │   │   ├── linear_BE_sup.py
    │   │   ├── linear_EU_data2vec.py
    │   │   ├── linear_EU_dino.py
    │   │   ├── linear_EU_mae.py
    │   │   ├── linear_EU_moco.py
    │   │   ├── linear_EU_moco_v3.py
    │   │   ├── linear_SS_data2vec.py
    │   │   ├── linear_SS_dino.py
    │   │   ├── linear_SS_mae.py
    │   │   ├── linear_SS_moco.py
    │   │   ├── linear_SS_moco_v3.py
    │   │   ├── models/
    │   │   │   ├── data2vec/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── README_Original.md
    │   │   │   │   ├── dall_e/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── decoder.py
    │   │   │   │   │   ├── encoder.py
    │   │   │   │   │   └── utils.py
    │   │   │   │   ├── dataset_folder.py
    │   │   │   │   ├── datasets.py
    │   │   │   │   ├── engine_for_cyclical.py
    │   │   │   │   ├── engine_for_cyclical_joint.py
    │   │   │   │   ├── engine_for_finetuning.py
    │   │   │   │   ├── engine_for_pretraining.py
    │   │   │   │   ├── get_started_for_image_classification.md
    │   │   │   │   ├── masking_generator.py
    │   │   │   │   ├── modeling_cyclical.py
    │   │   │   │   ├── modeling_cyclical_joint.py
    │   │   │   │   ├── modeling_discrete_vae.py
    │   │   │   │   ├── modeling_finetune.py
    │   │   │   │   ├── modeling_pretrain.py
    │   │   │   │   ├── models.py
    │   │   │   │   ├── optim_factory.py
    │   │   │   │   ├── requirements.txt
    │   │   │   │   ├── run_beit_pretraining.py
    │   │   │   │   ├── run_class_finetuning.py
    │   │   │   │   ├── run_cyclical.py
    │   │   │   │   ├── run_cyclical_joint.py
    │   │   │   │   ├── semantic_segmentation/
    │   │   │   │   │   ├── README.md
    │   │   │   │   │   ├── backbone/
    │   │   │   │   │   │   └── beit.py
    │   │   │   │   │   ├── configs/
    │   │   │   │   │   │   ├── _base_/
    │   │   │   │   │   │   │   ├── datasets/
    │   │   │   │   │   │   │   │   ├── ade20k.py
    │   │   │   │   │   │   │   │   └── ade20k_640x640.py
    │   │   │   │   │   │   │   ├── default_runtime.py
    │   │   │   │   │   │   │   ├── models/
    │   │   │   │   │   │   │   │   └── upernet_beit.py
    │   │   │   │   │   │   │   └── schedules/
    │   │   │   │   │   │   │       ├── schedule_160k.py
    │   │   │   │   │   │   │       └── schedule_320k.py
    │   │   │   │   │   │   └── beit/
    │   │   │   │   │   │       └── upernet/
    │   │   │   │   │   │           ├── upernet_beit_base_12_512_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_512_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_640_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_640_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_512_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_512_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_640_slide_160k_ade20k.py
    │   │   │   │   │   │           └── upernet_beit_large_24_640_slide_160k_ade20k_ms.py
    │   │   │   │   │   ├── mmcv_custom/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── apex_runner/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── apex_iter_based_runner.py
    │   │   │   │   │   │   │   ├── checkpoint.py
    │   │   │   │   │   │   │   └── optimizer.py
    │   │   │   │   │   │   ├── checkpoint.py
    │   │   │   │   │   │   ├── layer_decay_optimizer_constructor.py
    │   │   │   │   │   │   ├── resize_transform.py
    │   │   │   │   │   │   └── train_api.py
    │   │   │   │   │   └── tools/
    │   │   │   │   │       ├── dist_test.sh
    │   │   │   │   │       ├── dist_train.sh
    │   │   │   │   │       ├── test.py
    │   │   │   │   │       └── train.py
    │   │   │   │   ├── transforms.py
    │   │   │   │   └── utils.py
    │   │   │   ├── dino/
    │   │   │   │   ├── utils.py
    │   │   │   │   └── vision_transformer.py
    │   │   │   ├── mae/
    │   │   │   │   ├── engine_finetune.py
    │   │   │   │   ├── engine_finetune_BE.py
    │   │   │   │   ├── engine_finetune_EU.py
    │   │   │   │   ├── engine_finetune_SS.py
    │   │   │   │   ├── engine_pretrain.py
    │   │   │   │   ├── main_finetune.py
    │   │   │   │   ├── main_linprobe.py
    │   │   │   │   ├── main_pretrain.py
    │   │   │   │   ├── models_mae.py
    │   │   │   │   ├── models_vit.py
    │   │   │   │   ├── submitit_finetune.py
    │   │   │   │   ├── submitit_linprobe.py
    │   │   │   │   ├── submitit_pretrain.py
    │   │   │   │   └── util/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── crop.py
    │   │   │   │       ├── datasets.py
    │   │   │   │       ├── lars.py
    │   │   │   │       ├── lr_decay.py
    │   │   │   │       ├── lr_sched.py
    │   │   │   │       ├── misc.py
    │   │   │   │       └── pos_embed.py
    │   │   │   ├── moco/
    │   │   │   │   ├── builder.py
    │   │   │   │   └── loader.py
    │   │   │   ├── moco_v2/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── builder.py
    │   │   │   │   ├── detection/
    │   │   │   │   │   ├── README.md
    │   │   │   │   │   ├── configs/
    │   │   │   │   │   │   ├── Base-RCNN-C4-BN.yaml
    │   │   │   │   │   │   ├── coco_R_50_C4_2x.yaml
    │   │   │   │   │   │   ├── coco_R_50_C4_2x_moco.yaml
    │   │   │   │   │   │   ├── pascal_voc_R_50_C4_24k.yaml
    │   │   │   │   │   │   └── pascal_voc_R_50_C4_24k_moco.yaml
    │   │   │   │   │   ├── convert-pretrain-to-detectron2.py
    │   │   │   │   │   └── train_net.py
    │   │   │   │   ├── loader.py
    │   │   │   │   └── main_lincls.py
    │   │   │   ├── moco_v3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── builder.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── optimizer.py
    │   │   │   │   └── vits.py
    │   │   │   ├── rs_transforms_float32.py
    │   │   │   └── rs_transforms_uint8.py
    │   │   └── scripts/
    │   │       ├── ablation/
    │   │       │   ├── srun_ImageNet_ft_moco-v2-ep800_pad_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_ImageNet_lc_moco-v2-ep200_pad_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_ImageNet_lc_moco-v2-ep800_pad_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_ImageNet_lc_sup_pad_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_ImageNet_lc_sup_reinit_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_rgb_BE_10.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_rgb_BE_100.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_rgb_EU.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_s2c_BE_100.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_s2c_EU.sh
    │   │       │   ├── srun_SeCo_lc_moco_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_SeCo_lc_moco_rn50_s2c_BE_100.sh
    │   │       │   └── srun_SeCo_lc_moco_rn50_s2c_EU.sh
    │   │       └── benchmark/
    │   │           ├── ft_data2vec_vit16_s2c_BE_100.sh
    │   │           ├── ft_data2vec_vits16_s2c_EU_100.sh
    │   │           ├── ft_data2vec_vits16_s2c_SS_100.sh
    │   │           ├── lc_data2vec_vit16_s2c_BE_100.sh
    │   │           ├── lc_data2vec_vits16_s2c_EU_100.sh
    │   │           ├── lc_data2vec_vits16_s2c_SS_100.sh
    │   │           ├── srun_ft_dino_rn50_s2c_BE.sh
    │   │           ├── srun_ft_dino_rn50_s2c_EU.sh
    │   │           ├── srun_ft_dino_rn50_s2c_SS.sh
    │   │           ├── srun_ft_dino_vits16_s2_BE.sh
    │   │           ├── srun_ft_dino_vits16_s2c_EU.sh
    │   │           ├── srun_ft_dino_vits16_s2c_SS.sh
    │   │           ├── srun_ft_mae_vits16_s2c_BE.sh
    │   │           ├── srun_ft_mae_vits16_s2c_EU.sh
    │   │           ├── srun_ft_mae_vits16_s2c_SS.sh
    │   │           ├── srun_ft_moco_rn50_s2c_BE.sh
    │   │           ├── srun_ft_moco_rn50_s2c_EU.sh
    │   │           ├── srun_ft_moco_rn50_s2c_SS.sh
    │   │           ├── srun_ft_moco_vits16_s2c_BE.sh
    │   │           ├── srun_ft_moco_vits16_s2c_EU.sh
    │   │           ├── srun_ft_moco_vits16_s2c_SS.sh
    │   │           ├── srun_lc_dino_rn50_s2c_BE.sh
    │   │           ├── srun_lc_dino_rn50_s2c_EU.sh
    │   │           ├── srun_lc_dino_rn50_s2c_SS.sh
    │   │           ├── srun_lc_dino_vits16_s2c_BE.sh
    │   │           ├── srun_lc_dino_vits16_s2c_EU.sh
    │   │           ├── srun_lc_dino_vits16_s2c_SS.sh
    │   │           ├── srun_lc_mae_vits16_s2c_BE.sh
    │   │           ├── srun_lc_mae_vits16_s2c_EU.sh
    │   │           ├── srun_lc_mae_vits16_s2c_SS.sh
    │   │           ├── srun_lc_moco_rn50_s2c_BE.sh
    │   │           ├── srun_lc_moco_rn50_s2c_EU.sh
    │   │           ├── srun_lc_moco_rn50_s2c_SS.sh
    │   │           ├── srun_lc_moco_vits16_s2c_BE.sh
    │   │           ├── srun_lc_moco_vits16_s2c_EU.sh
    │   │           └── srun_lc_moco_vits16_s2c_SS.sh
    │   ├── transfer_segmentation/
    │   │   └── readme.md
    │   └── utils/
    │       ├── convert_model_torchvision.py
    │       └── vis_tsne.ipynb
    └── download_data/
        ├── convert_rgb.py
        ├── readme.md
        ├── ssl4eo_downloader.py
        └── ssl4eo_s12_downloader.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
**/.ipynb_checkpoints/*
**/.vscode/*
**/__pycache__/*
**/srun_outputs/*
**/checkpoints/*
**/lightning_logs/
**/results/*

================================================
FILE: LICENSE
================================================
Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# SSL4EO-S12
The [SSL4EO-S12 dataset](https://arxiv.org/abs/2211.07044) is a large-scale multimodal multitemporal dataset for unsupervised/self-supervised pre-training in Earth observation. The dataset consists of unlabeled patch triplets (Sentinel-1 dual-pol SAR, Sentinel-2 top-of-atmosphere multispectral, Sentinel-2 surface reflectance multispectral) from 251079 locations across the globe, each patch covering 2640mx2640m and including four seasonal time stamps.

![ssl4eo-s12](assets/hello.png)

### Access the dataset
- [x] **Raw dataset**: The full SSL4EO-S12 dataset (1.5TB, 500GB for each modality) is accessible at [mediaTUM](https://mediatum.ub.tum.de/1660427). There are some void IDs (gaps in folder names), see `data/void_ids.csv`. Center coordinates of all locations are available [here](https://drive.google.com/file/d/1RyJnGznSbMparS88BhHkXxETf0K-qYqI/view?usp=sharing).
- [x] **Example subset**: An example 100-patch subset (600MB) is available at [Google Drive](https://drive.google.com/file/d/1sRWcYbaWs-efXza6kw03GlJQdZHq5iRN/view?usp=sharing).
- [x] **Compressed dataset**: A compressed 8-bit version (20-50GB for each modality, including an RGB version) is available at [mediaTUM](https://mediatum.ub.tum.de/1702379). The raw 16/32-bit values are normalized by mean and std and converted to uint8, plus a default geotiff JPEG compression with quality 75. *Note: in our experiments, 8-bit input (without JPEG compression) performs comparably well as 16-bit.*
- [ ] A 50k (random) RGB subset (18GB) is available here (link broken). Sample IDs see `data/50k_ids_random.csv`.

**Updates**
- For faster access in some regions, we have hosted a copy of the data in [HuggingFace](https://huggingface.co/datasets/wangyi111/SSL4EO-S12). Note that only the original data in mediaTUM has a proper DOI.
- We've got some feedback that the compressed dataset (with JPEG compression) has a performance drop compared to the raw data, which could be because of the lossy compression. We plan to update it with a lossless version (yet the file size will increase). Also, do you have INode (number of single files) limit on your server? We could consider updating one resampled GeoTiff for all bands (as in [SSL4EO-L](https://arxiv.org/abs/2306.09424)). If you have any issues or wish for updates, let us know!

### Collect your own data
Check [`src/download_data`](src/download_data) for instructions to download sentinel or other products from Google Earth Engine.


### Pre-trained models
The pre-trained models with different SSL methods are provided as follows (13 bands of S2-L1C, 100 epochs, input clip to [0,1] by dividing 10000).


| SSL method |   Arch   | BigEarthNet* | EuroSAT | So2Sat-LCZ42 |                                                   Download                                                  |          |      | Usage |
|:----------:|:--------:|:-----------:|:-------:|:------------:|:-----------------------------------------------------------------------------------------------------------:|:--------:|:----:|:----:|
|    [MoCo](https://github.com/facebookresearch/moco)    | ResNet50 |    [91.8%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_moco_rn50_s2c_BE.sh)    |  [99.1%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_moco_rn50_s2c_EU.sh)  |     [60.9%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_moco_vits16_s2c_SS.sh)    |    [full ckpt](https://drive.google.com/file/d/1OrtPfG2wkO05bimstQ_T9Dza8z3zp8i-/view?usp=sharing)    | [backbone](https://drive.google.com/file/d/1MAe3dCW4hPasSaBMZAVkJVX80LONkrLY/view?usp=sharing) | [logs](https://drive.google.com/file/d/1G66pdvJmeD6Rc-OZdOKA1h2Vnvq_0nnt/view?usp=sharing) | [define model](https://github.com/zhu-xlab/SSL4EO-S12/blob/d2868adfada65e40910bfcedfc49bc3b20df2248/src/benchmark/transfer_classification/linear_BE_moco.py#L228-L236), [load weights](https://github.com/zhu-xlab/SSL4EO-S12/blob/d2868adfada65e40910bfcedfc49bc3b20df2248/src/benchmark/transfer_classification/linear_BE_moco.py#L248-L276) |
|    [MoCo](https://github.com/facebookresearch/moco-v3)        | ViT-S/16 |    [89.9%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_moco_vits16_s2c_BE.sh)    |  [98.6%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_moco_vits16_s2c_EU.sh)  |     [61.6%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_moco_vits16_s2c_SS.sh)    |   [full ckpt](https://drive.google.com/file/d/1Tx07L6OilkfcgE2HWiSXHRmRepCPdn6V/view?usp=sharing)   | [backbone](https://drive.google.com/file/d/1LREGuI6w7Gq6Xm0jFQdxxtp8QkmLvJWk/view?usp=sharing) | [logs](https://drive.google.com/file/d/1f05B85T4Y2-RntfAw42uICKm9mwilHXF/view?usp=sharing) | [define model](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/linear_BE_moco_v3.py#L182-L184), [load weights](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/linear_BE_moco_v3.py#L199-L220) |
|    [DINO](https://github.com/facebookresearch/dino)    | ResNet50 |    [90.7%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_dino_rn50_s2c_BE.sh)    |  [99.1%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_dino_rn50_s2c_EU.sh)  |     [63.6%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_dino_rn50_s2c_SS.sh)    |    [full ckpt](https://drive.google.com/file/d/1iSHHp_cudPjZlshqWXVZj5TK74P32a2q/view?usp=sharing)    | [backbone](https://drive.google.com/file/d/1B4o_NvY7O6fJrvsOUR-7QzLYNpRL1ieA/view?usp=sharing) | [logs](https://drive.google.com/file/d/1VxjT-3n1ckbvnlsF81jZwmm9Wvb3YX0H/view?usp=sharing) | [define model](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/linear_BE_dino.py#L57-L61), [load weights](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/models/dino/utils.py#L92-L103) |
|   [DINO](https://github.com/facebookresearch/dino)         | ViT-S/16 |    [90.5%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_dino_vits16_s2_BE.sh)    |  [99.0%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_dino_vits16_s2c_EU.sh)  |     [62.2%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_dino_vits16_s2c_SS.sh)    |   [full ckpt](https://drive.google.com/file/d/1CseO5vvMReGlAulm5o4ZgbjUgj8VlAH7/view?usp=sharing)   | [backbone](https://drive.google.com/file/d/1kjQWfPRI5z43EmRkw5fzgHU01hB7E_4H/view?usp=sharing) | [logs](https://drive.google.com/file/d/1eeKrKFMa6akGyXugBRF6-rJ7oTIeZAno/view?usp=sharing) | [define model](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/linear_BE_dino.py#L53-L55), [load weights](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/models/dino/utils.py#L92-L103) |
|     [MAE](https://github.com/facebookresearch/mae)    | ViT-S/16 |    [88.9%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_mae_vits16_s2c_BE.sh)    |  [98.7%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_mae_vits16_s2c_EU.sh)  |     [63.9%](src/benchmark/transfer_classification/scripts/benchmark/srun_ft_mae_vits16_s2c_SS.sh)    |    [full ckpt](https://drive.google.com/file/d/1QTBKl1asxgQCNd6bO2azXZNPfoQ3Sazv/view?usp=sharing)   | [backbone](https://drive.google.com/file/d/1hdie-7orFnj5Q1E1C2BudqwQCvMk3Fza/view?usp=sharing) | [logs](https://drive.google.com/file/d/1uJojq9q_fKMdD6cO1YXCPguZYEmfj35s/view?usp=sharing) | [define model](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/linear_BE_mae.py#L232-L236), [load weights](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/linear_BE_mae.py#L238-L259) |
|  [Data2vec](https://github.com/facebookresearch/fairseq/tree/main/examples/data2vec)  | ViT-S/16 |    [90.3%](src/benchmark/transfer_classification/scripts/benchmark/ft_data2vec_vit16_s2c_BE_100.sh)    |  [99.1%](src/benchmark/transfer_classification/scripts/benchmark/ft_data2vec_vits16_s2c_EU_100.sh)  |     [64.8%](src/benchmark/transfer_classification/scripts/benchmark/lc_data2vec_vits16_s2c_SS_100.sh)    | [full ckpt](https://drive.google.com/file/d/1VbIGBwzZYndv4v1vx9FiD6IP-YwsHEns/view?usp=sharing) | [backbone](https://drive.google.com/file/d/1YecuYPAxl1NIzLmsmdbUROjCb5g0t80l/view?usp=sharing) | logs | [define model](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/linear_BE_data2vec.py#L372-L390), [load weights](https://github.com/zhu-xlab/SSL4EO-S12/blob/1a668f76fd46762a19780293675a6e23e5204e72/src/benchmark/transfer_classification/linear_BE_data2vec.py#L406-L553) |

\* Note the results for BigEarthNet are based on the train/val split following [SeCo](https://github.com/ServiceNow/seasonal-contrast/blob/8285173ec205b64bc3e53b880344dd6c3f79fa7a/datasets/bigearthnet_dataset.py#L119) and [In-domain representation learning for RS](https://github.com/google-research/google-research/tree/master/remote_sensing_representations).

Other pre-trained models:

| SSL method |   Arch   | Input |                                                           Download                                                           |          |      |
|:----------:|:--------:|:----------------:|:----------------------------------------------------------------------------------------------------------------------------:|:--------:|:----:|
|    MoCo    | ResNet18 | S2-L1C 13 bands      |             [full ckpt](https://drive.google.com/file/d/1iWLm7ljQ6tKZiVp47pJUPDe3Un0BUd9o/view?usp=sharing)            | backbone | logs |
|            | ResNet18 | S2-L1C RGB            | [full ckpt](https://drive.google.com/file/d/1HfgXS5VpQA39k8mFrWMbHvYwuT_j6Mbi/view?usp=sharing), [full ckpt ep200](https://drive.google.com/file/d/1U_m39Owahk15Vg1uL1MYbPAmAyUWBKfI/view?usp=sharing) | backbone | logs |
|            | ResNet50 | S2-L1C RGB            |             [full ckpt](https://drive.google.com/file/d/1UEpA9sOcA47W0cmwQhkSeXfQxrL-EcJB/view?usp=sharing)            | backbone | logs |
|            | ResNet50 | S1 SAR 2 bands            |             [full ckpt](https://drive.google.com/file/d/1gjTTWikf1qORJyFifWD1ksk9HzezqQ0b/view?usp=sharing)            | [backbone](https://drive.google.com/file/d/1E5MvVI1SnQneQXe37QAWx_B6aoTiSN24/view?usp=sharing) | logs |
| MAE |        ViT-S/16 | S1 SAR 2 bands | [full ckpt](https://huggingface.co/wangyi111/SSL4EO-S12/resolve/main/B2_vits16_mae_ep99.pth) | backbone  |
|     |        ViT-B/16 | S1 SAR 2 bands | [full ckpt](https://huggingface.co/wangyi111/SSL4EO-S12/resolve/main/B2_vitb16_mae_ep99.pth) | backbone  |
|     |        ViT-L/16 | S1 SAR 2 bands | [full ckpt](https://huggingface.co/wangyi111/SSL4EO-S12/resolve/main/B2_vitl16_mae_ep99.pth) | backbone  |
|     |        ViT-H/14 | S1 SAR 2 bands | [full ckpt](https://huggingface.co/wangyi111/SSL4EO-S12/resolve/main/B2_vith14_mae_ep199.pth) | backbone  |
|     |        ViT-B/16 | S2-L1C 13 bands | [full ckpt](https://huggingface.co/wangyi111/SSL4EO-S12/resolve/main/B13_vitb16_mae_ep99.pth) | backbone |
|     |        ViT-L/16 | S2-L1C 13 bands | [full ckpt](https://huggingface.co/wangyi111/SSL4EO-S12/resolve/main/B13_vitl16_mae_ep99.pth) | backbone |
|     |        ViT-H/14 | S2-L1C 13 bands | [full ckpt](https://huggingface.co/wangyi111/SSL4EO-S12/resolve/main/B13_vith14_mae_ep199.pth) | backbone |

**\* The pretrained models are also available in [TorchGeo](https://github.com/microsoft/torchgeo).**

### License
This repository is released under the Apache 2.0 license. The dataset and pretrained model weights are released under the CC-BY-4.0 license.


### Citation
```BibTeX
@article{wang2022ssl4eo,
  title={SSL4EO-S12: A Large-Scale Multi-Modal, Multi-Temporal Dataset for Self-Supervised Learning in Earth Observation},
  author={Wang, Yi and Braham, Nassim Ait Ali and Xiong, Zhitong and Liu, Chenying and Albrecht, Conrad M and Zhu, Xiao Xiang},
  journal={arXiv preprint arXiv:2211.07044},
  year={2022}
}
```


================================================
FILE: data/50k_ids_random.csv
================================================
2
9
13
15
22
24
34
44
48
51
55
64
70
75
84
89
92
106
111
121
123
129
132
138
140
142
147
148
149
150
156
165
168
170
171
173
177
179
188
189
201
203
208
215
221
222
227
239
251
256
262
263
268
284
285
287
295
301
307
312
314
316
317
319
320
324
330
335
337
343
357
366
373
376
380
381
382
383
386
390
392
395
402
410
413
414
415
417
422
424
440
443
453
465
471
493
500
510
512
518
522
528
536
540
546
547
553
558
565
571
572
575
576
583
585
589
590
602
604
607
634
640
641
644
648
650
652
660
662
672
673
677
685
694
698
699
700
701
704
705
716
717
724
727
728
731
732
738
739
743
747
751
756
765
770
783
787
790
793
800
801
805
806
808
814
820
823
830
838
842
845
850
854
856
867
871
872
874
880
883
892
896
899
903
904
907
910
919
926
929
931
941
942
943
944
946
950
956
963
968
969
970
971
972
975
981
983
990
994
1000
1006
1008
1017
1029
1051
1059
1066
1067
1070
1077
1081
1089
1095
1098
1117
1119
1120
1121
1123
1125
1127
1129
1130
1134
1137
1138
1143
1145
1156
1158
1166
1176
1182
1187
1198
1199
1206
1218
1219
1221
1223
1228
1235
1242
1249
1254
1257
1261
1265
1266
1275
1276
1285
1287
1289
1294
1295
1296
1298
1299
1303
1304
1312
1314
1318
1324
1325
1331
1334
1335
1346
1349
1351
1352
1358
1361
1364
1366
1372
1376
1385
1386
1395
1397
1405
1411
1433
1453
1460
1462
1468
1471
1472
1479
1487
1492
1499
1507
1517
1521
1523
1532
1537
1538
1540
1544
1545
1546
1547
1556
1560
1567
1579
1584
1591
1592
1600
1604
1607
1637
1639
1640
1644
1648
1649
1654
1655
1664
1665
1666
1668
1671
1673
1678
1682
1683
1691
1693
1702
1703
1707
1708
1719
1721
1723
1725
1726
1729
1733
1734
1735
1736
1737
1747
1759
1763
1774
1776
1790
1794
1795
1804
1805
1811
1812
1823
1826
1828
1830
1833
1837
1843
1846
1857
1858
1864
1870
1874
1885
1892
1893
1894
1898
1901
1902
1903
1911
1914
1919
1921
1926
1942
1946
1947
1949
1950
1951
1986
1989
1992
1993
1998
2006
2012
2015
2020
2026
2034
2040
2050
2051
2061
2062
2064
2070
2071
2074
2076
2080
2082
2085
2089
2090
2095
2100
2104
2110
2113
2114
2117
2118
2122
2125
2127
2128
2139
2143
2147
2150
2164
2168
2179
2180
2184
2186
2192
2193
2197
2206
2207
2209
2210
2211
2218
2220
2221
2222
2225
2230
2237
2238
2242
2259
2260
2268
2270
2272
2274
2287
2291
2292
2307
2315
2316
2321
2322
2323
2325
2332
2333
2334
2336
2340
2347
2367
2369
2383
2390
2391
2394
2396
2398
2400
2408
2418
2424
2426
2427
2429
2431
2434
2439
2441
2442
2454
2461
2463
2467
2470
2477
2486
2489
2492
2510
2512
2515
2517
2518
2525
2527
2528
2534
2535
2537
2544
2548
2550
2551
2553
2570
2574
2580
2583
2585
2589
2593
2598
2603
2607
2611
2615
2634
2658
2661
2663
2675
2678
2681
2690
2692
2696
2698
2705
2706
2713
2725
2728
2730
2732
2734
2735
2736
2743
2748
2765
2767
2770
2772
2776
2778
2780
2789
2797
2799
2803
2806
2807
2814
2823
2824
2825
2826
2848
2857
2861
2870
2871
2877
2884
2888
2895
2897
2898
2904
2907
2915
2922
2934
2937
2938
2939
2961
2964
2974
2975
2977
2987
2990
2993
2997
3000
3009
3021
3022
3023
3024
3037
3041
3044
3052
3066
3070
3078
3080
3090
3097
3098
3106
3109
3116
3117
3128
3133
3134
3135
3138
3140
3145
3151
3153
3155
3163
3164
3168
3175
3176
3189
3195
3198
3199
3200
3204
3207
3215
3221
3230
3234
3235
3239
3240
3241
3255
3256
3258
3263
3265
3270
3294
3297
3303
3307
3310
3316
3320
3332
3335
3337
3338
3341
3342
3347
3351
3353
3364
3368
3372
3381
3388
3398
3399
3406
3418
3419
3420
3430
3439
3441
3444
3452
3455
3457
3458
3461
3462
3478
3482
3484
3487
3511
3515
3524
3525
3533
3538
3551
3552
3554
3567
3570
3571
3575
3577
3579
3581
3582
3584
3600
3602
3607
3609
3615
3637
3643
3647
3648
3650
3655
3656
3660
3665
3667
3673
3690
3692
3694
3700
3703
3708
3711
3712
3714
3718
3723
3724
3725
3730
3740
3754
3758
3760
3763
3765
3767
3771
3778
3779
3802
3812
3816
3819
3843
3851
3855
3860
3861
3864
3868
3872
3875
3883
3887
3888
3895
3902
3905
3906
3908
3912
3914
3916
3918
3919
3930
3935
3943
3949
3980
3993
3999
4019
4023
4028
4036
4043
4053
4054
4055
4066
4071
4077
4081
4083
4087
4097
4099
4101
4104
4109
4117
4123
4134
4136
4141
4144
4147
4154
4161
4164
4167
4175
4177
4180
4182
4195
4202
4203
4204
4205
4209
4214
4225
4232
4237
4244
4247
4251
4252
4257
4261
4264
4265
4267
4268
4270
4273
4284
4293
4295
4296
4299
4303
4306
4307
4308
4310
4341
4348
4359
4361
4367
4371
4373
4374
4375
4382
4384
4389
4396
4397
4408
4415
4419
4426
4427
4428
4430
4432
4435
4444
4446
4453
4454
4461
4476
4479
4484
4486
4488
4493
4494
4496
4502
4504
4506
4507
4512
4520
4526
4527
4531
4544
4547
4553
4555
4558
4560
4569
4571
4574
4577
4578
4579
4587
4592
4597
4599
4603
4626
4627
4629
4632
4642
4651
4655
4658
4675
4692
4694
4696
4710
4715
4720
4723
4732
4734
4735
4737
4739
4742
4743
4752
4760
4763
4764
4778
4779
4782
4793
4794
4802
4816
4820
4830
4842
4850
4855
4867
4876
4881
4883
4888
4892
4897
4906
4907
4912
4913
4918
4919
4929
4938
4941
4944
4945
4947
4964
4966
4973
4975
4981
4985
4997
5001
5005
5006
5013
5036
5038
5039
5043
5047
5053
5058
5066
5081
5084
5099
5101
5105
5106
5107
5113
5119
5120
5123
5127
5130
5140
5145
5150
5159
5162
5167
5169
5175
5176
5183
5185
5186
5188
5193
5199
5205
5209
5211
5217
5218
5221
5222
5224
5230
5236
5243
5250
5256
5263
5271
5283
5289
5303
5309
5321
5330
5342
5347
5348
5353
5356
5372
5376
5377
5383
5405
5417
5423
5428
5430
5431
5433
5435
5438
5445
5450
5454
5455
5458
5459
5467
5488
5502
5503
5514
5515
5517
5524
5535
5544
5551
5558
5559
5560
5570
5571
5575
5576
5580
5588
5589
5597
5598
5599
5621
5626
5627
5631
5633
5634
5653
5655
5660
5664
5672
5675
5677
5682
5683
5686
5688
5690
5697
5701
5706
5709
5710
5714
5719
5727
5728
5734
5735
5742
5744
5749
5751
5755
5758
5776
5780
5781
5797
5800
5801
5802
5826
5829
5832
5833
5839
5858
5865
5866
5867
5870
5875
5884
5891
5893
5894
5896
5899
5905
5909
5910
5912
5913
5917
5920
5925
5933
5936
5941
5948
5953
5955
5959
5963
5985
5987
5991
6005
6007
6009
6013
6014
6015
6017
6018
6019
6021
6031
6036
6037
6039
6043
6044
6047
6055
6060
6061
6064
6065
6066
6071
6075
6079
6081
6092
6098
6106
6109
6124
6127
6132
6135
6136
6139
6142
6145
6161
6163
6165
6168
6182
6193
6195
6203
6207
6208
6211
6212
6218
6220
6226
6227
6232
6233
6237
6242
6247
6248
6253
6258
6267
6272
6273
6282
6285
6287
6291
6297
6298
6299
6302
6306
6309
6314
6319
6320
6326
6328
6329
6345
6350
6351
6355
6363
6365
6372
6399
6402
6417
6421
6422
6424
6428
6438
6442
6445
6458
6463
6465
6470
6473
6476
6479
6482
6483
6485
6494
6497
6498
6500
6502
6522
6524
6525
6530
6531
6533
6536
6537
6540
6556
6559
6560
6575
6593
6603
6621
6624
6625
6627
6629
6631
6634
6636
6646
6649
6651
6657
6658
6659
6662
6663
6664
6672
6675
6680
6693
6695
6704
6716
6721
6722
6726
6729
6731
6735
6742
6746
6757
6758
6761
6771
6774
6780
6786
6792
6793
6794
6800
6805
6808
6813
6814
6815
6832
6837
6841
6850
6854
6867
6872
6874
6880
6881
6882
6884
6890
6896
6898
6901
6906
6908
6909
6911
6914
6924
6926
6927
6931
6933
6938
6947
6950
6956
6960
6964
6984
6985
6986
6991
7003
7012
7015
7021
7022
7027
7029
7031
7032
7035
7037
7050
7051
7052
7054
7055
7069
7071
7088
7090
7095
7104
7120
7122
7123
7133
7134
7148
7155
7156
7158
7160
7162
7163
7168
7169
7179
7186
7190
7195
7200
7206
7208
7216
7217
7219
7223
7229
7231
7235
7240
7249
7252
7254
7262
7263
7274
7281
7291
7292
7302
7306
7311
7314
7325
7328
7330
7332
7334
7337
7341
7345
7352
7353
7360
7362
7378
7382
7385
7389
7394
7398
7401
7406
7407
7412
7420
7423
7428
7437
7438
7456
7465
7470
7485
7489
7491
7493
7516
7518
7523
7529
7535
7539
7542
7544
7545
7548
7553
7554
7555
7559
7567
7569
7573
7576
7577
7580
7585
7588
7589
7592
7600
7604
7608
7612
7613
7616
7617
7619
7632
7639
7643
7647
7650
7652
7657
7660
7661
7662
7670
7672
7675
7677
7680
7681
7682
7687
7688
7695
7697
7706
7721
7722
7724
7728
7729
7732
7738
7747
7750
7751
7756
7765
7766
7776
7781
7786
7791
7796
7802
7809
7811
7812
7828
7837
7840
7848
7853
7856
7858
7859
7861
7868
7870
7886
7891
7899
7909
7913
7914
7918
7919
7931
7933
7939
7951
7953
7955
7960
7968
7976
7989
7990
7991
7996
8000
8004
8011
8014
8020
8027
8028
8029
8030
8036
8049
8055
8078
8079
8089
8094
8097
8101
8103
8112
8120
8121
8124
8134
8137
8138
8147
8149
8152
8160
8163
8165
8167
8171
8172
8174
8177
8178
8186
8189
8192
8198
8206
8211
8218
8224
8225
8231
8234
8239
8240
8243
8244
8251
8255
8259
8262
8264
8274
8276
8283
8285
8291
8295
8303
8305
8311
8319
8321
8329
8331
8335
8340
8357
8360
8364
8366
8375
8380
8386
8397
8404
8407
8410
8413
8414
8417
8419
8424
8443
8445
8448
8449
8458
8460
8468
8472
8473
8479
8483
8484
8486
8488
8489
8501
8502
8514
8516
8520
8522
8527
8530
8536
8539
8545
8547
8555
8556
8561
8564
8565
8568
8570
8571
8575
8576
8581
8591
8596
8605
8608
8613
8614
8624
8625
8645
8652
8655
8657
8664
8669
8674
8675
8678
8693
8695
8700
8703
8713
8718
8720
8722
8727
8740
8746
8749
8750
8753
8758
8767
8771
8778
8781
8784
8789
8791
8797
8801
8804
8810
8813
8819
8829
8848
8849
8852
8853
8854
8857
8866
8869
8873
8881
8883
8889
8901
8911
8916
8923
8932
8934
8942
8943
8960
8969
8971
8984
9002
9003
9009
9012
9013
9029
9045
9052
9057
9068
9072
9083
9086
9093
9103
9105
9111
9122
9125
9129
9135
9138
9140
9153
9165
9171
9173
9176
9196
9205
9207
9208
9213
9215
9223
9225
9226
9236
9244
9247
9254
9258
9260
9269
9270
9287
9291
9311
9321
9330
9332
9336
9341
9355
9357
9358
9364
9370
9375
9384
9393
9395
9401
9402
9410
9414
9432
9438
9444
9451
9453
9456
9461
9463
9467
9470
9478
9483
9491
9514
9525
9526
9533
9536
9545
9546
9549
9562
9563
9564
9568
9569
9570
9571
9581
9582
9595
9597
9598
9599
9602
9606
9607
9609
9612
9615
9619
9620
9626
9628
9629
9633
9637
9645
9646
9651
9667
9681
9691
9692
9695
9700
9701
9703
9704
9705
9709
9710
9713
9720
9723
9732
9736
9741
9752
9754
9770
9771
9773
9775
9777
9782
9783
9791
9792
9793
9794
9796
9798
9802
9806
9808
9813
9817
9820
9821
9823
9832
9840
9841
9854
9858
9862
9865
9866
9871
9880
9882
9887
9889
9892
9894
9895
9897
9902
9905
9918
9926
9931
9934
9937
9944
9946
9951
9969
9974
9996
10008
10011
10012
10028
10030
10035
10036
10040
10044
10055
10057
10074
10076
10079
10086
10093
10095
10106
10112
10116
10120
10123
10132
10137
10139
10147
10151
10152
10164
10166
10167
10174
10178
10201
10202
10205
10207
10208
10211
10217
10221
10227
10233
10239
10242
10245
10247
10255
10260
10261
10273
10278
10289
10299
10305
10306
10310
10312
10315
10322
10323
10327
10329
10330
10334
10335
10337
10340
10342
10351
10358
10359
10367
10369
10378
10382
10385
10418
10420
10421
10422
10431
10437
10440
10442
10444
10449
10450
10453
10455
10458
10460
10461
10464
10469
10470
10472
10488
10489
10496
10501
10506
10512
10519
10539
10546
10552
10553
10559
10568
10569
10572
10575
10580
10584
10586
10595
10598
10600
10603
10605
10623
10628
10633
10637
10645
10651
10652
10653
10656
10667
10668
10678
10679
10688
10689
10693
10713
10714
10715
10716
10718
10722
10730
10735
10740
10742
10750
10752
10753
10754
10756
10758
10761
10766
10770
10774
10780
10784
10785
10786
10787
10794
10795
10798
10811
10815
10833
10860
10865
10869
10879
10886
10888
10892
10902
10907
10913
10920
10927
10932
10940
10941
10942
10946
10950
10955
10956
10957
10964
10965
10970
10971
10973
10976
10977
10981
10982
10984
10985
10992
10998
11000
11002
11004
11008
11016
11017
11018
11020
11021
11026
11027
11036
11042
11051
11056
11058
11060
11070
11071
11072
11078
11079
11081
11084
11087
11089
11093
11103
11113
11119
11128
11130
11142
11145
11147
11149
11154
11155
11156
11159
11160
11162
11164
11173
11175
11187
11192
11193
11195
11197
11204
11205
11208
11221
11223
11228
11233
11239
11248
11262
11271
11272
11274
11292
11302
11307
11310
11321
11328
11329
11332
11341
11345
11354
11355
11363
11364
11367
11387
11388
11389
11390
11394
11397
11398
11412
11426
11431
11432
11434
11441
11446
11450
11453
11460
11466
11470
11475
11479
11482
11483
11484
11488
11493
11494
11495
11496
11501
11502
11508
11509
11512
11518
11537
11538
11539
11542
11543
11544
11552
11557
11566
11568
11572
11576
11579
11593
11596
11599
11608
11611
11612
11615
11622
11635
11643
11653
11654
11656
11662
11667
11668
11672
11690
11693
11694
11696
11700
11705
11713
11716
11721
11722
11723
11725
11726
11727
11732
11739
11744
11749
11758
11763
11764
11771
11777
11791
11792
11793
11797
11805
11818
11821
11827
11831
11837
11840
11842
11847
11850
11854
11857
11858
11860
11864
11866
11872
11876
11877
11884
11887
11893
11902
11903
11905
11910
11913
11917
11920
11921
11923
11925
11930
11931
11943
11949
11950
11951
11955
11957
11961
11974
11978
11981
11984
11991
11992
11994
12000
12004
12006
12007
12011
12012
12029
12038
12039
12043
12051
12053
12056
12058
12059
12078
12082
12090
12095
12102
12103
12109
12110
12113
12114
12116
12145
12152
12158
12162
12166
12168
12170
12173
12178
12189
12192
12199
12205
12206
12222
12226
12233
12235
12239
12248
12251
12262
12266
12274
12281
12288
12290
12291
12292
12302
12309
12311
12315
12317
12319
12329
12332
12333
12339
12340
12343
12351
12354
12359
12363
12370
12372
12375
12381
12384
12397
12404
12415
12416
12430
12434
12439
12448
12449
12458
12460
12466
12467
12479
12492
12502
12506
12511
12512
12514
12515
12517
12518
12519
12520
12521
12525
12526
12530
12531
12534
12539
12552
12559
12560
12563
12571
12572
12573
12577
12581
12583
12587
12591
12595
12596
12598
12600
12603
12607
12620
12621
12634
12641
12644
12658
12669
12673
12690
12692
12705
12706
12716
12717
12725
12728
12729
12732
12736
12742
12750
12753
12755
12757
12760
12761
12770
12779
12785
12789
12796
12797
12800
12802
12806
12807
12822
12823
12827
12832
12833
12838
12844
12847
12853
12856
12865
12867
12872
12880
12884
12886
12891
12893
12901
12902
12921
12922
12923
12926
12927
12930
12941
12943
12969
12971
12975
12980
12986
12988
12997
13010
13011
13015
13018
13020
13028
13032
13044
13049
13050
13052
13057
13060
13065
13073
13075
13081
13083
13085
13091
13096
13106
13107
13113
13114
13119
13121
13124
13125
13126
13128
13138
13139
13144
13164
13175
13181
13185
13197
13199
13200
13217
13226
13231
13237
13243
13248
13253
13255
13257
13258
13261
13265
13274
13280
13289
13292
13297
13301
13305
13307
13310
13316
13317
13331
13339
13344
13347
13348
13350
13357
13358
13364
13367
13368
13383
13391
13398
13400
13405
13408
13410
13420
13428
13429
13430
13432
13444
13450
13459
13460
13462
13463
13468
13473
13475
13482
13486
13491
13494
13497
13505
13510
13513
13516
13521
13526
13528
13529
13531
13541
13565
13570
13571
13575
13580
13586
13587
13595
13597
13599
13601
13615
13631
13634
13637
13641
13645
13650
13653
13654
13657
13659
13661
13662
13665
13668
13669
13678
13681
13684
13690
13699
13710
13714
13717
13718
13725
13727
13736
13740
13742
13745
13751
13753
13755
13758
13760
13761
13768
13774
13779
13791
13792
13799
13804
13807
13820
13828
13834
13839
13849
13851
13854
13856
13858
13859
13860
13861
13864
13867
13886
13897
13898
13903
13907
13910
13911
13912
13914
13915
13918
13924
13927
13929
13934
13944
13946
13951
13956
13960
13961
13981
13983
13997
13998
14003
14004
14005
14008
14017
14021
14025
14034
14038
14039
14044
14049
14053
14058
14062
14063
14068
14071
14076
14079
14088
14095
14098
14101
14103
14107
14110
14112
14125
14147
14148
14149
14151
14155
14163
14172
14175
14176
14177
14188
14189
14192
14194
14200
14205
14206
14209
14216
14217
14226
14227
14231
14235
14240
14241
14244
14246
14252
14257
14260
14264
14269
14276
14287
14288
14289
14293
14296
14299
14304
14314
14315
14321
14326
14331
14332
14337
14348
14349
14355
14358
14360
14362
14364
14368
14369
14383
14389
14395
14396
14397
14403
14408
14425
14426
14434
14437
14448
14457
14463
14468
14493
14498
14503
14511
14517
14518
14519
14523
14526
14528
14532
14533
14545
14547
14558
14563
14575
14578
14582
14584
14589
14597
14600
14611
14624
14625
14628
14630
14632
14637
14643
14644
14647
14656
14659
14660
14662
14663
14673
14676
14679
14685
14690
14692
14693
14694
14701
14703
14706
14710
14711
14721
14723
14724
14725
14734
14742
14754
14757
14766
14773
14792
14795
14796
14797
14805
14814
14836
14838
14841
14849
14851
14854
14859
14860
14864
14867
14877
14883
14886
14894
14902
14906
14910
14911
14913
14916
14937
14945
14947
14957
14973
14984
14985
14990
14996
15001
15005
15007
15011
15025
15028
15029
15036
15050
15057
15061
15063
15070
15072
15079
15081
15082
15085
15093
15094
15100
15105
15106
15112
15126
15135
15144
15150
15152
15154
15174
15179
15184
15188
15189
15207
15212
15224
15239
15252
15253
15260
15283
15286
15297
15301
15312
15313
15321
15323
15331
15332
15335
15338
15351
15354
15357
15358
15359
15367
15370
15373
15374
15383
15388
15396
15400
15401
15403
15410
15411
15413
15417
15433
15436
15443
15444
15448
15461
15462
15465
15466
15472
15485
15504
15507
15508
15509
15521
15524
15536
15541
15549
15551
15559
15560
15563
15565
15569
15570
15581
15596
15597
15603
15612
15616
15617
15621
15633
15634
15637
15640
15642
15655
15665
15669
15672
15678
15695
15697
15699
15701
15705
15706
15708
15710
15714
15720
15723
15727
15728
15732
15738
15739
15742
15744
15752
15756
15757
15765
15774
15780
15789
15795
15798
15803
15809
15821
15834
15840
15845
15846
15851
15853
15857
15872
15876
15880
15889
15894
15896
15908
15912
15913
15915
15928
15932
15935
15936
15938
15939
15941
15945
15946
15955
15959
15963
15964
15970
15979
15980
15985
15986
15989
15997
16005
16012
16014
16019
16025
16029
16034
16038
16041
16043
16044
16051
16056
16060
16062
16068
16077
16082
16085
16091
16096
16100
16101
16104
16105
16113
16116
16117
16126
16129
16153
16158
16166
16175
16177
16178
16189
16198
16210
16218
16219
16222
16233
16238
16253
16255
16261
16270
16272
16279
16281
16285
16289
16292
16303
16322
16326
16327
16338
16339
16354
16357
16360
16370
16379
16398
16400
16408
16411
16417
16427
16453
16455
16458
16461
16462
16464
16474
16478
16484
16485
16492
16496
16497
16501
16506
16513
16517
16523
16541
16543
16545
16547
16549
16560
16562
16571
16572
16573
16577
16582
16585
16589
16593
16597
16599
16601
16603
16604
16611
16617
16622
16628
16629
16636
16641
16645
16648
16652
16653
16658
16661
16667
16675
16679
16683
16685
16689
16690
16700
16704
16714
16718
16722
16726
16734
16743
16744
16745
16748
16757
16759
16766
16767
16769
16774
16777
16784
16785
16788
16791
16796
16798
16800
16804
16820
16833
16837
16838
16839
16846
16847
16849
16874
16879
16884
16885
16889
16900
16912
16938
16948
16949
16952
16953
16959
16963
16968
16974
16976
16979
16987
16990
16997
17006
17008
17019
17023
17024
17027
17028
17040
17046
17047
17052
17070
17072
17073
17080
17085
17107
17114
17116
17119
17123
17126
17129
17133
17135
17138
17147
17150
17159
17160
17163
17170
17178
17186
17187
17192
17194
17201
17203
17215
17217
17218
17219
17223
17226
17235
17239
17242
17243
17246
17253
17257
17261
17269
17278
17280
17290
17292
17296
17305
17306
17307
17311
17316
17317
17324
17328
17331
17332
17337
17350
17357
17359
17361
17363
17366
17376
17378
17382
17385
17386
17389
17397
17404
17408
17414
17428
17432
17441
17443
17444
17448
17458
17476
17479
17483
17491
17496
17498
17503
17505
17509
17515
17516
17517
17532
17536
17537
17539
17544
17547
17553
17556
17559
17562
17565
17566
17569
17576
17583
17586
17590
17592
17598
17599
17600
17601
17604
17605
17607
17609
17615
17624
17625
17632
17634
17639
17640
17645
17650
17652
17658
17661
17663
17666
17668
17670
17681
17698
17701
17703
17706
17708
17710
17711
17713
17720
17738
17741
17749
17752
17761
17771
17773
17776
17777
17778
17782
17786
17798
17811
17813
17815
17817
17823
17824
17826
17852
17861
17865
17868
17872
17880
17885
17887
17900
17906
17908
17914
17924
17925
17931
17933
17934
17936
17941
17947
17962
17980
17985
17987
17993
17994
17995
17998
18006
18012
18014
18021
18025
18031
18033
18037
18046
18047
18055
18059
18068
18076
18080
18092
18114
18117
18120
18127
18129
18130
18141
18142
18143
18151
18152
18154
18155
18157
18159
18176
18180
18188
18189
18192
18198
18203
18204
18205
18206
18207
18208
18216
18233
18239
18240
18241
18243
18247
18253
18265
18278
18281
18282
18286
18287
18299
18300
18308
18319
18325
18333
18342
18343
18344
18346
18357
18370
18373
18376
18377
18386
18404
18411
18423
18441
18445
18450
18451
18455
18458
18465
18480
18487
18489
18495
18496
18507
18509
18523
18533
18538
18539
18550
18561
18565
18567
18574
18575
18577
18579
18580
18589
18590
18592
18605
18607
18610
18613
18615
18620
18622
18643
18647
18653
18659
18664
18666
18668
18673
18675
18682
18688
18700
18702
18703
18709
18713
18715
18717
18719
18726
18730
18732
18763
18772
18774
18781
18784
18788
18791
18805
18807
18808
18810
18823
18826
18827
18828
18858
18859
18865
18871
18876
18879
18883
18885
18887
18894
18900
18901
18905
18918
18926
18928
18967
18971
18975
18989
18995
18999
19002
19013
19016
19023
19028
19029
19032
19037
19042
19044
19050
19052
19055
19057
19063
19070
19071
19077
19079
19080
19085
19091
19094
19100
19104
19105
19109
19113
19115
19123
19126
19129
19130
19134
19140
19143
19144
19150
19151
19158
19174
19175
19177
19179
19184
19187
19192
19197
19201
19204
19208
19212
19234
19245
19246
19248
19252
19265
19267
19269
19275
19287
19297
19305
19306
19312
19313
19316
19317
19322
19323
19328
19333
19334
19338
19346
19352
19360
19362
19368
19369
19375
19378
19381
19389
19393
19395
19397
19405
19412
19416
19420
19421
19441
19443
19445
19448
19449
19451
19469
19478
19479
19485
19486
19489
19490
19492
19499
19502
19506
19507
19510
19512
19514
19516
19521
19529
19532
19538
19554
19563
19568
19578
19602
19614
19615
19616
19617
19625
19626
19627
19629
19647
19657
19660
19661
19663
19671
19673
19674
19675
19676
19677
19682
19687
19690
19692
19698
19702
19707
19724
19727
19729
19731
19735
19739
19744
19751
19753
19755
19757
19761
19762
19765
19768
19774
19783
19785
19796
19798
19805
19807
19810
19843
19848
19865
19883
19893
19905
19906
19916
19922
19926
19927
19929
19930
19931
19947
19949
19950
19956
19958
19959
19979
19982
19988
19993
19998
20003
20004
20014
20015
20017
20019
20021
20022
20027
20030
20039
20044
20053
20054
20058
20061
20062
20063
20065
20073
20077
20081
20083
20096
20104
20107
20114
20118
20131
20133
20135
20138
20139
20140
20141
20143
20148
20154
20155
20164
20168
20171
20177
20178
20179
20194
20195
20197
20202
20203
20208
20228
20237
20239
20255
20266
20270
20275
20278
20285
20286
20288
20298
20301
20303
20309
20310
20311
20314
20317
20322
20325
20328
20335
20338
20346
20356
20361
20377
20378
20381
20382
20386
20391
20393
20396
20397
20403
20404
20411
20417
20419
20430
20431
20436
20445
20451
20466
20468
20474
20479
20480
20484
20488
20490
20499
20505
20508
20510
20512
20542
20543
20550
20554
20559
20563
20564
20567
20572
20575
20576
20584
20587
20590
20599
20603
20605
20606
20616
20620
20621
20622
20625
20626
20629
20633
20644
20645
20647
20649
20656
20660
20664
20667
20672
20674
20678
20683
20690
20691
20693
20697
20701
20707
20714
20715
20717
20723
20726
20727
20729
20738
20744
20748
20751
20757
20764
20768
20772
20776
20781
20783
20784
20800
20811
20814
20815
20817
20822
20826
20828
20831
20832
20833
20834
20852
20855
20868
20871
20877
20883
20886
20890
20894
20900
20910
20915
20916
20921
20924
20928
20946
20951
20952
20958
20960
20963
20969
20973
20975
20979
20981
20987
20988
20989
20995
20996
20998
21000
21011
21012
21016
21019
21025
21030
21035
21036
21037
21042
21044
21052
21054
21062
21063
21069
21072
21087
21091
21103
21104
21107
21116
21122
21127
21129
21133
21135
21159
21160
21171
21178
21179
21184
21186
21199
21214
21222
21227
21250
21267
21272
21274
21275
21282
21289
21292
21305
21307
21313
21314
21330
21340
21347
21350
21361
21365
21366
21378
21382
21386
21392
21393
21419
21428
21435
21442
21445
21452
21461
21469
21471
21473
21479
21481
21482
21484
21488
21491
21495
21498
21504
21505
21518
21520
21539
21544
21545
21548
21550
21551
21556
21560
21564
21566
21569
21577
21582
21586
21588
21597
21600
21605
21606
21607
21615
21622
21629
21638
21639
21644
21655
21656
21657
21661
21662
21663
21664
21665
21671
21674
21675
21677
21704
21708
21711
21717
21726
21731
21743
21748
21749
21752
21756
21757
21758
21767
21777
21781
21782
21791
21796
21799
21800
21811
21816
21818
21820
21822
21823
21824
21828
21831
21834
21837
21838
21840
21845
21857
21859
21871
21874
21886
21889
21906
21910
21912
21914
21917
21918
21919
21924
21934
21938
21939
21943
21945
21946
21964
21969
21972
21977
21980
21984
21987
21990
21996
22001
22006
22011
22012
22020
22023
22027
22028
22030
22032
22035
22037
22047
22049
22085
22093
22100
22101
22106
22112
22124
22125
22134
22138
22140
22149
22158
22160
22165
22172
22173
22179
22180
22186
22187
22188
22189
22192
22194
22203
22208
22214
22215
22217
22219
22224
22228
22230
22233
22236
22240
22246
22247
22256
22260
22266
22270
22273
22277
22278
22280
22282
22283
22284
22292
22295
22302
22303
22315
22319
22322
22324
22327
22328
22329
22331
22341
22343
22348
22352
22362
22368
22370
22377
22380
22386
22411
22422
22438
22439
22442
22443
22446
22453
22464
22467
22475
22478
22479
22485
22490
22495
22497
22506
22508
22511
22524
22530
22531
22532
22545
22547
22548
22549
22564
22568
22569
22575
22578
22586
22589
22593
22594
22600
22626
22634
22636
22638
22643
22645
22651
22652
22653
22655
22661
22662
22668
22669
22676
22686
22707
22718
22724
22737
22744
22749
22753
22761
22765
22770
22772
22775
22790
22791
22796
22800
22802
22806
22808
22809
22813
22826
22830
22832
22834
22840
22842
22847
22850
22854
22856
22867
22870
22872
22884
22887
22905
22907
22938
22942
22943
22947
22960
22963
22964
22969
22971
22973
22982
22984
22990
22995
22997
23006
23011
23013
23014
23021
23048
23053
23055
23070
23073
23074
23079
23084
23092
23098
23100
23102
23105
23111
23116
23123
23125
23129
23131
23132
23137
23138
23141
23156
23166
23168
23169
23174
23177
23180
23181
23183
23185
23186
23189
23205
23207
23210
23212
23218
23224
23228
23246
23247
23249
23252
23254
23255
23258
23259
23272
23282
23296
23297
23320
23324
23331
23336
23337
23346
23358
23367
23378
23379
23380
23390
23392
23398
23402
23406
23409
23413
23416
23417
23420
23431
23436
23438
23443
23444
23446
23451
23452
23454
23455
23456
23472
23476
23480
23486
23491
23493
23495
23498
23500
23502
23503
23506
23518
23522
23533
23541
23547
23553
23579
23584
23585
23587
23588
23599
23605
23608
23614
23616
23619
23627
23629
23636
23638
23640
23644
23648
23651
23654
23658
23659
23660
23668
23670
23672
23673
23678
23683
23684
23692
23695
23697
23703
23706
23707
23708
23710
23711
23715
23716
23731
23732
23735
23738
23740
23760
23762
23767
23770
23780
23784
23785
23791
23797
23800
23811
23818
23820
23827
23831
23833
23838
23839
23842
23846
23851
23861
23878
23882
23883
23885
23889
23890
23892
23899
23901
23905
23907
23910
23914
23918
23931
23940
23943
23949
23952
23953
23956
23960
23961
23964
23977
23987
23991
24002
24008
24009
24012
24017
24022
24029
24031
24037
24038
24039
24042
24053
24054
24064
24080
24084
24091
24092
24100
24101
24102
24106
24109
24111
24114
24121
24122
24124
24125
24130
24135
24143
24147
24149
24154
24176
24180
24182
24187
24188
24195
24197
24199
24207
24216
24225
24232
24238
24239
24241
24243
24245
24252
24256
24261
24275
24289
24295
24308
24312
24320
24325
24330
24332
24333
24338
24340
24344
24354
24357
24360
24363
24365
24366
24370
24373
24381
24386
24387
24393
24395
24396
24399
24404
24406
24412
24416
24419
24429
24434
24436
24437
24439
24440
24441
24442
24443
24446
24448
24450
24453
24455
24468
24474
24480
24486
24490
24491
24498
24503
24505
24509
24510
24511
24513
24516
24520
24528
24530
24531
24538
24540
24545
24548
24560
24561
24562
24580
24585
24587
24591
24593
24601
24605
24612
24617
24620
24624
24631
24643
24648
24652
24656
24664
24667
24669
24671
24672
24679
24683
24690
24693
24694
24697
24705
24706
24710
24716
24718
24721
24724
24726
24736
24739
24745
24762
24768
24774
24776
24786
24790
24791
24792
24794
24804
24815
24825
24828
24831
24833
24836
24839
24840
24848
24863
24881
24882
24891
24896
24899
24903
24924
24926
24935
24944
24951
24956
24961
24962
24964
24967
24968
24975
24976
24984
24998
24999
25004
25005
25013
25018
25021
25026
25032
25037
25043
25045
25048
25049
25054
25056
25062
25072
25075
25079
25082
25108
25119
25121
25122
25123
25129
25137
25143
25145
25153
25154
25159
25161
25170
25176
25178
25189
25190
25195
25197
25198
25209
25213
25219
25230
25233
25239
25244
25248
25253
25260
25262
25267
25270
25297
25305
25306
25307
25313
25315
25319
25323
25328
25344
25350
25353
25356
25365
25370
25378
25386
25390
25392
25394
25398
25401
25409
25410
25418
25422
25424
25444
25446
25447
25451
25453
25454
25459
25460
25466
25470
25472
25478
25488
25496
25504
25511
25518
25519
25522
25523
25527
25531
25532
25534
25540
25542
25544
25552
25561
25573
25586
25591
25599
25600
25603
25604
25607
25608
25611
25612
25615
25616
25618
25627
25634
25641
25653
25655
25666
25676
25677
25681
25686
25689
25691
25706
25712
25726
25732
25743
25747
25756
25758
25759
25760
25762
25763
25766
25767
25774
25779
25784
25797
25799
25806
25811
25816
25826
25831
25835
25841
25846
25849
25857
25860
25862
25865
25869
25877
25885
25887
25894
25897
25900
25908
25910
25921
25926
25940
25945
25954
25957
25964
25967
25969
25974
25979
25989
25991
25999
26006
26009
26011
26013
26029
26039
26045
26062
26067
26070
26072
26074
26102
26103
26106
26110
26130
26132
26136
26137
26138
26140
26141
26143
26151
26153
26155
26164
26172
26175
26180
26181
26182
26186
26189
26191
26192
26200
26203
26205
26206
26209
26212
26216
26219
26226
26228
26229
26231
26237
26238
26244
26245
26246
26248
26249
26250
26253
26258
26260
26266
26267
26268
26275
26281
26282
26284
26287
26290
26295
26309
26310
26311
26313
26316
26318
26328
26329
26332
26333
26334
26336
26340
26346
26347
26349
26352
26357
26358
26363
26364
26387
26390
26410
26412
26414
26417
26426
26435
26449
26451
26453
26459
26470
26471
26474
26475
26476
26477
26484
26493
26496
26508
26510
26513
26526
26535
26544
26545
26546
26549
26551
26552
26554
26555
26556
26565
26582
26584
26588
26589
26591
26599
26607
26608
26609
26610
26614
26617
26622
26623
26631
26635
26637
26640
26641
26648
26651
26653
26659
26664
26665
26669
26672
26673
26676
26680
26686
26689
26692
26693
26698
26704
26712
26714
26721
26725
26732
26740
26744
26753
26755
26760
26774
26784
26793
26796
26799
26804
26805
26808
26810
26814
26818
26820
26823
26824
26827
26837
26844
26847
26848
26850
26856
26863
26864
26868
26875
26876
26882
26887
26892
26893
26895
26897
26899
26903
26907
26912
26919
26924
26933
26940
26946
26947
26949
26952
26956
26970
26973
26975
26979
26983
26986
26989
26994
26995
27003
27008
27013
27017
27026
27027
27029
27030
27037
27051
27053
27054
27059
27062
27063
27068
27069
27074
27076
27077
27094
27097
27108
27110
27115
27121
27130
27132
27146
27149
27150
27154
27158
27159
27161
27164
27165
27169
27172
27174
27177
27180
27182
27187
27192
27201
27208
27213
27214
27220
27222
27226
27229
27232
27233
27238
27242
27243
27244
27249
27253
27258
27262
27279
27282
27283
27287
27289
27291
27300
27311
27315
27328
27331
27345
27346
27348
27349
27361
27362
27367
27370
27373
27383
27390
27395
27403
27404
27406
27411
27416
27419
27420
27423
27431
27434
27438
27453
27460
27474
27475
27483
27485
27488
27493
27499
27502
27512
27515
27525
27534
27536
27542
27559
27560
27561
27570
27573
27574
27583
27584
27586
27603
27621
27632
27638
27648
27659
27666
27691
27692
27695
27697
27698
27706
27726
27730
27742
27743
27745
27750
27751
27753
27757
27758
27759
27768
27772
27778
27783
27789
27790
27792
27798
27805
27818
27821
27822
27832
27835
27842
27845
27848
27850
27852
27856
27863
27864
27866
27871
27873
27874
27876
27880
27883
27894
27896
27898
27899
27900
27903
27906
27909
27910
27916
27917
27920
27921
27924
27929
27931
27937
27940
27941
27946
27949
27953
27954
27958
27967
27971
27978
27982
27988
27989
28000
28001
28004
28006
28012
28020
28033
28037
28039
28041
28042
28044
28051
28053
28058
28059
28062
28063
28066
28068
28069
28071
28080
28085
28086
28089
28092
28094
28097
28102
28107
28117
28128
28134
28137
28149
28150
28152
28154
28163
28170
28179
28181
28186
28190
28195
28209
28215
28220
28222
28226
28228
28230
28241
28244
28250
28251
28252
28254
28258
28259
28260
28262
28263
28269
28273
28279
28280
28283
28293
28301
28313
28314
28320
28321
28332
28336
28337
28338
28341
28359
28365
28368
28381
28385
28391
28399
28402
28404
28416
28417
28418
28424
28426
28433
28440
28449
28461
28478
28481
28484
28493
28498
28501
28503
28506
28514
28529
28535
28543
28544
28546
28560
28564
28566
28581
28587
28601
28604
28606
28614
28616
28622
28623
28624
28628
28633
28644
28645
28647
28652
28653
28656
28663
28668
28669
28670
28672
28673
28674
28676
28694
28699
28708
28714
28732
28734
28743
28750
28756
28758
28763
28765
28766
28780
28789
28793
28794
28798
28803
28808
28812
28816
28819
28833
28834
28845
28847
28850
28855
28867
28869
28870
28871
28876
28882
28885
28888
28898
28900
28903
28918
28919
28923
28929
28935
28945
28948
28951
28953
28957
28982
28993
28995
29001
29005
29010
29011
29019
29030
29038
29041
29046
29052
29057
29060
29062
29065
29066
29069
29070
29071
29073
29077
29079
29080
29081
29083
29087
29089
29090
29096
29100
29106
29115
29119
29120
29126
29133
29139
29140
29141
29146
29150
29158
29167
29170
29174
29182
29184
29193
29198
29203
29204
29211
29212
29221
29222
29223
29235
29236
29240
29242
29253
29267
29273
29274
29275
29277
29287
29303
29305
29322
29325
29327
29328
29330
29337
29338
29342
29346
29347
29348
29358
29363
29366
29377
29389
29395
29403
29414
29420
29428
29442
29447
29456
29457
29467
29472
29484
29488
29489
29492
29494
29496
29499
29502
29505
29509
29513
29520
29522
29529
29531
29538
29541
29542
29546
29548
29551
29554
29555
29557
29559
29561
29575
29576
29579
29580
29581
29592
29603
29605
29608
29610
29612
29613
29618
29621
29623
29637
29643
29648
29656
29665
29667
29670
29673
29677
29683
29711
29716
29719
29720
29721
29724
29739
29743
29759
29762
29765
29768
29776
29781
29783
29792
29796
29800
29812
29836
29839
29840
29841
29845
29850
29852
29853
29855
29857
29860
29867
29868
29872
29873
29875
29876
29887
29889
29890
29891
29896
29904
29907
29921
29923
29927
29931
29938
29940
29945
29946
29960
29969
29970
29984
29986
29992
29995
29999
30001
30004
30005
30007
30008
30013
30015
30016
30019
30024
30026
30029
30036
30044
30045
30047
30053
30054
30059
30063
30065
30070
30073
30075
30076
30078
30083
30087
30091
30093
30100
30108
30116
30121
30125
30142
30151
30167
30168
30184
30186
30187
30190
30191
30192
30195
30196
30202
30211
30219
30222
30224
30226
30234
30236
30237
30252
30253
30255
30258
30261
30267
30279
30287
30289
30293
30295
30299
30315
30318
30324
30327
30335
30338
30353
30359
30361
30362
30363
30365
30367
30369
30375
30382
30388
30391
30396
30397
30402
30405
30407
30410
30415
30424
30425
30426
30432
30436
30440
30447
30452
30457
30459
30465
30468
30471
30477
30479
30483
30488
30490
30494
30495
30498
30505
30508
30515
30520
30526
30528
30529
30534
30538
30539
30543
30555
30556
30559
30573
30578
30585
30586
30600
30603
30612
30614
30626
30629
30630
30638
30649
30650
30655
30657
30662
30663
30673
30675
30677
30688
30725
30726
30731
30732
30741
30747
30748
30753
30756
30761
30762
30767
30772
30779
30783
30793
30794
30797
30803
30806
30816
30817
30823
30841
30843
30846
30858
30859
30862
30863
30865
30870
30874
30875
30876
30881
30884
30885
30887
30888
30896
30897
30899
30900
30907
30910
30913
30919
30923
30931
30937
30947
30948
30953
30982
30987
30991
30992
31001
31002
31003
31013
31015
31018
31019
31024
31030
31034
31036
31041
31043
31048
31051
31054
31061
31062
31064
31066
31067
31068
31071
31077
31087
31089
31098
31103
31105
31106
31117
31118
31127
31130
31133
31137
31140
31143
31145
31150
31157
31163
31174
31176
31182
31187
31193
31199
31201
31202
31207
31212
31213
31216
31217
31222
31224
31230
31236
31239
31245
31252
31253
31254
31255
31263
31275
31281
31282
31287
31288
31294
31300
31307
31311
31326
31333
31340
31348
31350
31363
31365
31373
31374
31378
31392
31409
31425
31427
31431
31434
31435
31441
31444
31451
31453
31456
31457
31469
31477
31490
31506
31520
31522
31530
31531
31535
31536
31538
31539
31542
31550
31551
31552
31553
31578
31579
31583
31587
31592
31597
31598
31612
31615
31618
31625
31629
31636
31637
31638
31650
31652
31660
31664
31665
31667
31668
31684
31685
31701
31708
31710
31714
31720
31722
31725
31728
31732
31733
31739
31748
31752
31772
31779
31781
31782
31785
31788
31791
31801
31802
31813
31814
31827
31829
31831
31833
31834
31835
31838
31844
31847
31854
31856
31860
31861
31863
31865
31867
31875
31882
31903
31906
31907
31924
31926
31932
31936
31941
31945
31948
31971
31975
31976
31979
31985
31987
31988
31990
31995
32006
32007
32011
32012
32018
32022
32023
32025
32028
32031
32041
32042
32054
32061
32067
32068
32071
32079
32080
32089
32099
32108
32113
32118
32119
32123
32143
32148
32154
32160
32167
32177
32181
32205
32211
32216
32221
32228
32233
32237
32239
32248
32255
32258
32261
32263
32269
32271
32272
32273
32284
32286
32289
32295
32296
32298
32301
32305
32307
32318
32321
32330
32334
32344
32350
32352
32353
32357
32365
32367
32372
32373
32374
32375
32386
32398
32399
32405
32412
32415
32417
32433
32434
32447
32448
32451
32456
32464
32472
32483
32497
32508
32514
32520
32526
32529
32530
32536
32541
32542
32545
32548
32552
32568
32575
32586
32588
32590
32598
32599
32602
32603
32618
32621
32630
32631
32633
32635
32653
32655
32663
32668
32669
32675
32676
32683
32684
32686
32687
32693
32701
32702
32706
32713
32715
32718
32722
32732
32733
32737
32739
32752
32765
32773
32774
32778
32779
32783
32784
32791
32792
32794
32802
32805
32812
32819
32829
32830
32837
32841
32845
32848
32853
32854
32858
32862
32866
32867
32882
32902
32911
32913
32915
32917
32938
32941
32956
32967
32968
32972
32984
32986
32997
33001
33010
33013
33015
33025
33031
33035
33042
33044
33048
33051
33054
33058
33062
33067
33076
33078
33080
33083
33087
33088
33089
33090
33093
33094
33095
33096
33097
33103
33105
33107
33108
33110
33115
33116
33126
33128
33134
33138
33139
33142
33146
33150
33154
33156
33161
33162
33163
33169
33170
33177
33182
33199
33203
33214
33217
33228
33233
33234
33242
33244
33245
33249
33252
33259
33262
33264
33266
33274
33280
33286
33306
33315
33322
33324
33327
33332
33337
33340
33342
33347
33350
33364
33366
33367
33377
33383
33395
33401
33402
33405
33406
33408
33409
33411
33413
33432
33437
33438
33442
33444
33456
33470
33480
33482
33498
33499
33500
33507
33510
33515
33516
33517
33518
33520
33524
33530
33532
33539
33540
33543
33548
33555
33560
33569
33577
33582
33589
33592
33604
33606
33607
33610
33617
33618
33619
33625
33628
33634
33642
33645
33654
33655
33657
33665
33675
33683
33686
33692
33694
33699
33728
33730
33741
33744
33748
33754
33755
33757
33760
33761
33766
33768
33769
33782
33783
33787
33788
33789
33798
33799
33803
33812
33817
33825
33833
33839
33841
33849
33852
33865
33869
33873
33886
33895
33900
33907
33917
33921
33922
33927
33928
33938
33941
33944
33948
33949
33952
33965
33972
33977
33984
34003
34004
34009
34010
34017
34018
34019
34020
34026
34028
34046
34050
34051
34053
34054
34060
34075
34076
34080
34083
34084
34086
34092
34094
34095
34096
34098
34103
34108
34113
34130
34135
34141
34149
34153
34159
34164
34166
34177
34187
34205
34207
34212
34213
34219
34222
34224
34231
34234
34243
34247
34249
34250
34253
34259
34261
34264
34266
34278
34279
34287
34288
34290
34293
34303
34308
34314
34323
34336
34338
34344
34346
34347
34353
34356
34362
34374
34377
34382
34391
34392
34393
34394
34401
34405
34406
34413
34416
34417
34424
34438
34448
34449
34450
34451
34461
34473
34478
34483
34490
34497
34500
34507
34510
34518
34523
34526
34529
34536
34543
34547
34548
34549
34551
34553
34554
34564
34566
34568
34569
34574
34579
34580
34581
34588
34591
34598
34602
34606
34608
34610
34614
34617
34621
34642
34644
34645
34648
34649
34652
34655
34658
34659
34664
34665
34671
34673
34675
34679
34680
34684
34685
34686
34692
34696
34702
34706
34708
34710
34711
34716
34718
34720
34722
34735
34737
34739
34744
34746
34761
34767
34773
34774
34777
34778
34779
34784
34786
34789
34791
34795
34810
34815
34823
34824
34839
34847
34849
34854
34855
34857
34862
34873
34877
34886
34890
34895
34903
34906
34908
34918
34921
34928
34933
34935
34948
34954
34958
34962
34972
34988
34990
34991
34992
34994
34998
34999
35000
35003
35005
35009
35013
35014
35020
35025
35032
35043
35055
35057
35072
35078
35080
35096
35100
35107
35110
35113
35114
35115
35121
35123
35126
35128
35130
35133
35148
35150
35151
35160
35179
35181
35188
35193
35194
35197
35200
35201
35203
35207
35211
35213
35214
35215
35226
35228
35232
35233
35239
35243
35250
35251
35255
35256
35262
35268
35270
35271
35279
35286
35293
35294
35295
35308
35311
35312
35314
35315
35317
35319
35328
35342
35350
35355
35360
35365
35370
35374
35376
35377
35383
35411
35416
35419
35446
35450
35455
35456
35460
35469
35478
35483
35486
35501
35502
35504
35514
35516
35517
35519
35522
35531
35540
35541
35543
35546
35549
35554
35557
35559
35563
35564
35568
35570
35572
35576
35578
35580
35581
35587
35591
35592
35595
35621
35626
35628
35636
35639
35648
35654
35660
35672
35673
35675
35678
35679
35680
35683
35684
35694
35698
35699
35702
35706
35707
35716
35717
35728
35729
35730
35738
35746
35749
35751
35757
35763
35764
35769
35777
35781
35783
35784
35791
35793
35796
35798
35815
35816
35823
35824
35836
35837
35839
35855
35865
35866
35874
35876
35880
35885
35887
35889
35892
35894
35898
35900
35901
35907
35912
35923
35929
35930
35936
35941
35947
35948
35956
35960
35964
35969
35970
35971
35975
35977
35982
35983
35985
35990
35995
36000
36006
36009
36025
36026
36030
36034
36036
36037
36041
36042
36048
36051
36052
36059
36060
36061
36067
36070
36071
36081
36086
36090
36095
36099
36102
36104
36113
36115
36116
36119
36123
36140
36141
36142
36149
36162
36167
36174
36189
36191
36193
36196
36197
36199
36202
36203
36204
36212
36223
36233
36234
36238
36239
36242
36248
36254
36259
36262
36264
36271
36273
36279
36280
36282
36283
36286
36302
36305
36307
36309
36312
36319
36323
36325
36327
36335
36337
36339
36357
36361
36363
36368
36370
36375
36383
36394
36396
36402
36405
36409
36416
36419
36424
36429
36437
36441
36456
36457
36473
36477
36484
36490
36491
36498
36499
36508
36510
36511
36513
36514
36516
36517
36520
36529
36548
36551
36558
36566
36571
36574
36579
36581
36582
36586
36588
36603
36604
36608
36609
36610
36623
36624
36628
36629
36641
36642
36645
36651
36653
36655
36657
36659
36662
36663
36664
36667
36676
36677
36681
36682
36683
36685
36687
36689
36692
36700
36701
36703
36705
36710
36729
36735
36747
36754
36757
36767
36770
36773
36777
36779
36786
36789
36793
36797
36804
36811
36815
36817
36822
36840
36847
36850
36853
36856
36860
36863
36868
36870
36878
36881
36883
36885
36888
36893
36898
36913
36916
36919
36921
36922
36923
36926
36927
36930
36937
36938
36939
36963
37000
37024
37027
37028
37029
37035
37038
37039
37041
37048
37049
37052
37053
37055
37056
37058
37060
37062
37065
37071
37074
37076
37083
37084
37087
37090
37092
37093
37097
37099
37101
37102
37105
37108
37110
37117
37128
37133
37137
37139
37142
37148
37155
37159
37161
37162
37163
37165
37170
37180
37181
37182
37189
37191
37192
37202
37211
37214
37221
37222
37231
37234
37246
37247
37251
37255
37256
37261
37269
37277
37279
37286
37287
37297
37307
37309
37313
37315
37318
37320
37322
37329
37331
37341
37343
37344
37345
37364
37380
37382
37387
37388
37391
37392
37393
37400
37405
37408
37410
37411
37413
37423
37428
37430
37433
37440
37444
37448
37452
37456
37466
37474
37485
37490
37506
37507
37508
37509
37512
37517
37528
37529
37531
37535
37538
37539
37542
37545
37549
37550
37552
37554
37563
37571
37573
37581
37582
37594
37606
37614
37623
37635
37637
37646
37651
37654
37656
37658
37661
37674
37675
37688
37691
37694
37700
37710
37715
37720
37722
37736
37743
37744
37747
37753
37755
37757
37763
37764
37767
37768
37785
37788
37789
37798
37800
37807
37809
37818
37821
37831
37834
37838
37839
37840
37841
37848
37849
37853
37855
37856
37862
37864
37879
37883
37897
37901
37906
37907
37910
37917
37920
37923
37929
37930
37932
37940
37944
37946
37955
37964
37965
37966
37971
37987
37995
38002
38007
38021
38024
38029
38049
38050
38051
38058
38059
38061
38068
38076
38078
38082
38087
38094
38096
38104
38107
38109
38111
38116
38131
38141
38145
38147
38150
38151
38156
38158
38160
38161
38164
38173
38174
38179
38181
38193
38195
38198
38208
38211
38212
38223
38225
38232
38239
38249
38250
38252
38255
38257
38258
38268
38275
38285
38296
38300
38302
38304
38308
38313
38324
38325
38327
38331
38336
38337
38339
38359
38362
38384
38385
38389
38397
38401
38406
38410
38415
38417
38418
38419
38425
38427
38431
38433
38437
38442
38451
38456
38458
38463
38465
38467
38468
38469
38470
38481
38497
38498
38499
38501
38505
38509
38517
38531
38555
38557
38565
38569
38571
38577
38579
38594
38598
38603
38607
38609
38611
38614
38615
38624
38625
38626
38627
38629
38631
38633
38636
38642
38645
38646
38647
38648
38652
38659
38662
38663
38666
38669
38671
38680
38684
38689
38693
38696
38701
38712
38713
38716
38721
38730
38738
38739
38744
38746
38750
38765
38766
38771
38782
38783
38785
38789
38797
38800
38803
38806
38811
38819
38821
38831
38833
38840
38841
38849
38864
38868
38871
38878
38882
38884
38885
38886
38890
38891
38892
38897
38898
38901
38906
38912
38927
38929
38945
38946
38953
38956
38957
38960
38962
38963
38965
38968
38986
38987
39006
39011
39020
39021
39032
39033
39036
39043
39046
39047
39051
39054
39056
39067
39073
39084
39097
39099
39105
39107
39111
39115
39116
39121
39122
39124
39125
39129
39131
39133
39135
39139
39140
39143
39145
39150
39151
39158
39160
39162
39166
39171
39177
39186
39195
39201
39203
39206
39211
39219
39225
39227
39230
39234
39235
39239
39244
39247
39248
39262
39282
39284
39295
39299
39302
39303
39308
39310
39311
39325
39333
39338
39341
39342
39343
39344
39345
39355
39370
39379
39381
39384
39399
39410
39413
39419
39422
39423
39431
39436
39445
39451
39452
39454
39458
39462
39463
39465
39470
39472
39479
39482
39484
39498
39500
39511
39514
39516
39517
39525
39535
39539
39540
39547
39559
39561
39565
39567
39570
39571
39572
39589
39591
39593
39597
39610
39617
39619
39621
39627
39630
39642
39653
39663
39670
39672
39674
39681
39683
39684
39686
39689
39696
39697
39700
39706
39715
39724
39727
39728
39731
39733
39742
39743
39747
39750
39753
39758
39759
39764
39767
39768
39769
39774
39780
39785
39786
39787
39790
39803
39805
39815
39816
39831
39834
39841
39850
39852
39859
39873
39885
39886
39899
39900
39904
39907
39912
39913
39916
39922
39926
39927
39934
39936
39938
39940
39946
39948
39949
39951
39953
39956
39968
39975
39976
39977
39984
40004
40011
40013
40014
40024
40025
40029
40032
40034
40038
40042
40045
40046
40055
40056
40065
40066
40070
40073
40091
40094
40100
40105
40112
40113
40117
40120
40133
40141
40144
40146
40148
40149
40154
40156
40158
40159
40167
40175
40185
40187
40191
40193
40194
40204
40206
40213
40219
40221
40222
40235
40236
40238
40241
40246
40249
40255
40256
40262
40268
40279
40284
40285
40289
40291
40292
40294
40299
40301
40305
40311
40315
40323
40328
40334
40339
40345
40347
40348
40351
40360
40361
40362
40368
40369
40371
40376
40382
40390
40391
40392
40395
40400
40403
40404
40405
40406
40407
40409
40413
40414
40415
40421
40428
40429
40433
40436
40437
40438
40439
40440
40442
40444
40447
40454
40458
40464
40485
40504
40507
40515
40517
40520
40526
40534
40546
40550
40557
40560
40561
40563
40568
40570
40571
40572
40573
40574
40578
40579
40581
40595
40596
40617
40628
40630
40632
40633
40635
40638
40642
40646
40648
40650
40664
40675
40682
40685
40689
40693
40698
40704
40709
40711
40714
40731
40732
40733
40739
40749
40755
40758
40760
40761
40774
40775
40776
40777
40780
40781
40784
40786
40789
40794
40797
40800
40816
40820
40826
40831
40833
40856
40861
40862
40864
40868
40870
40875
40877
40879
40886
40892
40893
40908
40910
40914
40916
40919
40922
40939
40946
40949
40958
40965
40966
40975
40976
40978
40979
40996
41004
41013
41022
41033
41034
41036
41044
41047
41049
41065
41070
41075
41083
41085
41086
41094
41099
41101
41104
41114
41117
41124
41128
41130
41137
41142
41143
41144
41148
41149
41150
41152
41154
41157
41159
41165
41170
41171
41183
41187
41191
41202
41211
41230
41231
41237
41246
41250
41258
41259
41260
41262
41263
41264
41270
41273
41274
41283
41286
41288
41289
41296
41301
41306
41311
41317
41331
41334
41338
41339
41341
41345
41349
41352
41354
41361
41372
41374
41382
41392
41394
41396
41400
41403
41405
41412
41414
41419
41430
41431
41439
41444
41460
41463
41464
41465
41472
41477
41492
41496
41498
41501
41503
41507
41512
41517
41520
41522
41525
41532
41535
41537
41560
41574
41575
41576
41577
41579
41581
41586
41606
41614
41615
41616
41623
41624
41630
41641
41651
41658
41660
41663
41672
41673
41674
41686
41687
41694
41696
41698
41711
41712
41722
41726
41727
41731
41732
41736
41737
41739
41747
41750
41752
41761
41767
41768
41770
41774
41778
41784
41793
41797
41799
41800
41804
41806
41807
41808
41827
41842
41844
41849
41853
41859
41864
41868
41874
41875
41880
41882
41886
41889
41892
41893
41896
41898
41907
41910
41916
41917
41919
41932
41938
41939
41943
41947
41948
41950
41952
41956
41960
41961
41973
41974
41978
41982
41986
42002
42004
42007
42009
42012
42024
42025
42026
42027
42032
42033
42034
42039
42040
42046
42052
42061
42063
42089
42096
42098
42121
42123
42130
42134
42136
42146
42150
42159
42174
42175
42180
42183
42186
42188
42193
42197
42204
42217
42230
42231
42232
42239
42259
42260
42263
42265
42269
42271
42274
42282
42292
42293
42301
42304
42306
42311
42314
42317
42327
42329
42330
42339
42342
42349
42352
42355
42357
42366
42383
42386
42394
42404
42413
42415
42422
42423
42424
42425
42431
42434
42437
42440
42454
42455
42458
42463
42466
42467
42474
42480
42482
42490
42491
42494
42499
42507
42519
42520
42532
42537
42540
42543
42547
42549
42562
42565
42573
42578
42579
42584
42585
42596
42598
42600
42601
42605
42611
42620
42623
42626
42636
42638
42639
42655
42659
42662
42666
42674
42678
42688
42689
42692
42698
42703
42705
42708
42709
42713
42717
42730
42731
42737
42738
42741
42752
42754
42763
42767
42770
42777
42784
42786
42793
42796
42800
42805
42810
42813
42819
42820
42825
42826
42829
42832
42834
42836
42853
42864
42867
42871
42873
42874
42882
42884
42886
42893
42904
42907
42911
42919
42930
42935
42936
42947
42956
42964
42967
42976
42982
42990
42995
42998
43002
43010
43020
43022
43029
43032
43033
43038
43043
43045
43054
43055
43063
43064
43068
43076
43084
43089
43091
43102
43105
43108
43117
43131
43132
43133
43134
43150
43155
43157
43158
43163
43171
43175
43183
43188
43192
43198
43205
43206
43207
43210
43211
43220
43223
43226
43229
43233
43245
43246
43249
43253
43255
43265
43269
43278
43283
43287
43291
43302
43309
43311
43318
43321
43342
43343
43345
43359
43362
43364
43386
43389
43391
43395
43404
43407
43409
43411
43412
43414
43420
43422
43423
43424
43437
43448
43449
43453
43459
43466
43469
43474
43482
43490
43495
43497
43498
43501
43507
43511
43516
43528
43542
43543
43546
43548
43549
43558
43565
43567
43569
43570
43572
43574
43580
43597
43604
43605
43608
43609
43611
43616
43617
43618
43625
43632
43636
43638
43642
43643
43646
43650
43656
43663
43680
43684
43685
43690
43696
43704
43708
43713
43718
43720
43721
43725
43728
43741
43742
43743
43746
43747
43750
43751
43754
43756
43758
43761
43768
43777
43778
43779
43781
43783
43787
43790
43813
43821
43826
43832
43835
43843
43844
43850
43852
43857
43861
43872
43874
43878
43879
43881
43885
43891
43903
43905
43911
43915
43925
43928
43931
43932
43935
43946
43947
43950
43952
43956
43963
43967
43978
43980
43983
43984
43985
43992
43995
44007
44008
44009
44010
44019
44020
44037
44040
44053
44054
44064
44066
44072
44074
44079
44081
44082
44085
44089
44090
44091
44092
44094
44097
44098
44101
44105
44114
44117
44118
44122
44139
44140
44144
44159
44168
44171
44174
44179
44182
44193
44198
44206
44207
44212
44222
44223
44229
44230
44238
44242
44245
44250
44252
44263
44265
44287
44290
44296
44298
44304
44308
44317
44318
44322
44323
44334
44344
44352
44358
44369
44371
44386
44390
44399
44424
44428
44433
44440
44448
44455
44471
44483
44490
44491
44496
44506
44514
44521
44529
44542
44547
44553
44560
44567
44590
44592
44596
44605
44614
44617
44620
44622
44625
44626
44627
44646
44647
44648
44653
44657
44665
44667
44671
44672
44677
44684
44688
44689
44691
44694
44695
44698
44708
44709
44713
44718
44721
44723
44728
44730
44745
44747
44751
44753
44754
44755
44757
44760
44767
44774
44776
44778
44782
44792
44796
44800
44804
44810
44818
44824
44834
44852
44855
44857
44862
44863
44877
44879
44891
44895
44898
44900
44915
44916
44919
44920
44924
44927
44937
44946
44955
44965
44984
44988
44989
44995
44997
45000
45004
45018
45019
45020
45025
45027
45029
45030
45034
45035
45043
45047
45049
45051
45055
45061
45062
45103
45106
45115
45120
45124
45127
45141
45143
45145
45154
45159
45168
45178
45183
45187
45191
45194
45198
45201
45202
45215
45216
45225
45227
45231
45233
45235
45239
45242
45249
45252
45257
45260
45262
45263
45287
45288
45290
45293
45300
45317
45319
45321
45322
45323
45325
45329
45337
45339
45340
45342
45361
45363
45366
45373
45385
45398
45403
45412
45414
45419
45420
45421
45427
45430
45433
45439
45443
45444
45452
45458
45459
45468
45472
45476
45477
45479
45481
45482
45484
45491
45493
45497
45503
45513
45517
45521
45528
45529
45534
45537
45538
45544
45553
45559
45560
45563
45564
45573
45574
45578
45585
45590
45591
45603
45612
45620
45630
45636
45640
45641
45643
45651
45660
45664
45665
45666
45669
45673
45677
45681
45686
45687
45693
45694
45699
45705
45706
45712
45731
45742
45743
45744
45745
45748
45754
45756
45765
45773
45780
45797
45800
45802
45805
45822
45824
45826
45830
45840
45847
45851
45862
45870
45872
45876
45878
45881
45882
45884
45888
45892
45893
45896
45898
45900
45907
45908
45910
45913
45914
45915
45924
45925
45930
45932
45935
45936
45945
45946
45950
45961
45967
45969
45976
45979
45987
45990
45993
46004
46006
46007
46008
46013
46019
46021
46033
46039
46040
46042
46044
46057
46058
46059
46064
46065
46066
46077
46079
46081
46088
46095
46098
46107
46111
46113
46122
46133
46140
46142
46144
46146
46154
46157
46161
46162
46163
46165
46166
46173
46176
46182
46188
46194
46205
46222
46233
46241
46242
46251
46276
46293
46296
46297
46299
46302
46306
46317
46318
46326
46330
46341
46345
46353
46355
46365
46367
46369
46372
46375
46378
46380
46384
46406
46407
46408
46409
46411
46413
46414
46415
46419
46421
46422
46427
46428
46432
46437
46438
46443
46448
46449
46452
46456
46461
46480
46481
46484
46490
46493
46507
46509
46510
46511
46512
46516
46519
46520
46528
46534
46547
46549
46551
46552
46563
46565
46566
46572
46576
46584
46585
46591
46602
46612
46613
46620
46635
46637
46643
46645
46646
46647
46659
46661
46662
46663
46664
46677
46679
46685
46687
46691
46703
46709
46712
46714
46716
46726
46729
46730
46737
46742
46744
46746
46770
46777
46780
46785
46788
46803
46810
46813
46824
46828
46829
46830
46832
46839
46848
46850
46852
46853
46863
46867
46870
46874
46881
46888
46891
46897
46903
46904
46913
46916
46919
46923
46925
46929
46934
46935
46945
46948
46960
46961
46963
46968
46971
46972
46977
46982
46987
46988
46993
47001
47008
47012
47013
47014
47016
47018
47021
47026
47032
47039
47044
47055
47059
47068
47072
47075
47089
47103
47105
47110
47118
47125
47131
47132
47134
47135
47137
47141
47153
47154
47155
47156
47160
47161
47163
47164
47166
47169
47181
47186
47194
47195
47200
47201
47202
47215
47233
47248
47253
47254
47257
47259
47262
47263
47265
47268
47273
47277
47279
47282
47284
47289
47292
47294
47295
47297
47303
47305
47306
47311
47319
47320
47334
47335
47338
47341
47343
47345
47350
47357
47360
47362
47368
47369
47371
47379
47392
47395
47398
47407
47408
47412
47426
47429
47430
47433
47434
47443
47459
47460
47465
47470
47473
47475
47480
47483
47489
47493
47497
47509
47510
47516
47522
47541
47543
47554
47568
47572
47576
47582
47584
47588
47589
47599
47601
47603
47606
47609
47619
47620
47624
47628
47634
47637
47638
47639
47643
47645
47652
47654
47656
47665
47666
47668
47676
47679
47681
47691
47700
47706
47708
47709
47726
47731
47749
47755
47757
47761
47764
47767
47769
47773
47776
47783
47788
47794
47804
47809
47812
47813
47816
47821
47828
47841
47855
47868
47870
47872
47875
47877
47880
47882
47885
47887
47889
47895
47901
47907
47911
47912
47915
47938
47940
47942
47958
47969
47976
47978
47981
47982
47984
47990
47992
47996
47999
48001
48009
48014
48018
48019
48031
48037
48043
48059
48064
48066
48069
48078
48079
48088
48090
48100
48108
48113
48115
48120
48121
48138
48141
48147
48152
48154
48165
48166
48171
48172
48174
48183
48187
48194
48195
48200
48202
48203
48204
48206
48210
48211
48216
48219
48222
48224
48228
48231
48232
48246
48247
48251
48254
48255
48269
48271
48283
48284
48288
48295
48296
48298
48301
48303
48314
48319
48325
48328
48329
48335
48346
48352
48353
48359
48364
48370
48382
48387
48390
48398
48405
48406
48414
48420
48430
48431
48435
48437
48439
48445
48446
48451
48452
48453
48454
48460
48464
48465
48467
48477
48482
48484
48489
48493
48494
48499
48501
48503
48517
48519
48525
48526
48529
48530
48535
48576
48592
48594
48630
48633
48636
48638
48639
48645
48646
48647
48656
48663
48664
48669
48672
48677
48681
48683
48689
48690
48694
48704
48712
48736
48738
48740
48741
48742
48757
48760
48764
48770
48771
48773
48775
48776
48797
48798
48800
48803
48809
48810
48817
48820
48828
48834
48839
48840
48842
48852
48860
48863
48868
48870
48882
48883
48886
48889
48890
48899
48900
48904
48906
48908
48910
48911
48913
48916
48923
48928
48931
48935
48940
48952
48958
48960
48961
48966
48967
48970
48973
48976
48977
48984
48992
48996
49009
49010
49014
49028
49033
49046
49048
49050
49060
49064
49068
49071
49089
49096
49097
49103
49111
49118
49120
49123
49129
49134
49135
49149
49157
49160
49163
49165
49173
49185
49192
49193
49197
49200
49215
49217
49227
49229
49236
49238
49242
49243
49248
49256
49261
49265
49266
49270
49272
49273
49275
49277
49280
49283
49296
49301
49302
49303
49304
49306
49324
49325
49330
49334
49335
49341
49342
49344
49345
49347
49350
49361
49367
49369
49371
49372
49375
49377
49379
49381
49392
49394
49398
49406
49409
49420
49427
49431
49432
49442
49450
49452
49454
49457
49458
49467
49488
49489
49498
49505
49508
49512
49518
49521
49522
49524
49526
49537
49550
49553
49557
49561
49565
49568
49571
49574
49582
49585
49617
49623
49635
49637
49638
49640
49648
49649
49663
49665
49666
49667
49675
49678
49688
49692
49693
49698
49700
49702
49709
49713
49716
49747
49748
49752
49757
49763
49767
49768
49770
49773
49774
49775
49780
49785
49793
49795
49798
49803
49811
49813
49828
49834
49841
49843
49845
49851
49855
49857
49862
49875
49882
49889
49905
49908
49911
49912
49914
49917
49918
49921
49923
49933
49935
49936
49950
49957
49958
49959
49967
49975
49998
50003
50005
50012
50013
50017
50037
50040
50045
50047
50051
50059
50060
50064
50065
50070
50071
50083
50084
50092
50096
50111
50112
50124
50136
50138
50139
50140
50152
50167
50172
50197
50203
50211
50213
50222
50224
50231
50234
50238
50241
50245
50248
50249
50254
50289
50291
50292
50298
50301
50306
50309
50313
50333
50337
50342
50359
50360
50364
50371
50377
50378
50382
50384
50394
50396
50400
50407
50409
50425
50437
50441
50443
50446
50447
50448
50453
50454
50455
50457
50464
50465
50468
50469
50474
50477
50479
50483
50484
50485
50486
50490
50496
50499
50502
50504
50514
50519
50521
50527
50531
50540
50544
50553
50554
50561
50568
50574
50577
50578
50584
50591
50594
50602
50608
50611
50614
50618
50621
50622
50625
50627
50634
50635
50636
50641
50644
50650
50658
50661
50673
50674
50679
50681
50691
50692
50694
50696
50703
50714
50719
50724
50728
50732
50735
50737
50738
50739
50749
50754
50760
50761
50763
50765
50767
50777
50782
50792
50795
50807
50811
50814
50815
50816
50818
50830
50838
50846
50852
50854
50860
50874
50877
50886
50896
50897
50900
50903
50909
50915
50918
50930
50935
50939
50941
50942
50944
50950
50954
50961
50970
50973
50974
50979
50985
50993
50995
50998
51003
51004
51013
51015
51018
51025
51026
51027
51036
51038
51040
51043
51047
51051
51058
51065
51067
51083
51086
51087
51088
51092
51098
51103
51112
51114
51124
51138
51142
51151
51152
51155
51157
51159
51178
51179
51180
51188
51196
51219
51224
51226
51228
51236
51245
51249
51261
51264
51266
51274
51289
51292
51295
51304
51305
51306
51316
51320
51321
51330
51337
51339
51342
51344
51347
51349
51353
51359
51376
51377
51384
51396
51399
51400
51402
51406
51408
51412
51419
51420
51425
51426
51430
51450
51452
51454
51455
51458
51459
51467
51471
51472
51477
51491
51493
51498
51500
51503
51510
51515
51520
51523
51525
51535
51544
51548
51549
51553
51560
51565
51570
51572
51574
51592
51610
51627
51638
51651
51653
51661
51664
51674
51676
51712
51713
51719
51720
51727
51738
51739
51742
51746
51751
51768
51771
51782
51785
51787
51795
51803
51806
51811
51826
51831
51832
51839
51840
51847
51854
51857
51858
51867
51872
51877
51878
51884
51886
51889
51891
51895
51897
51901
51905
51909
51915
51927
51931
51932
51934
51938
51939
51943
51964
51968
51974
51976
51979
51982
51988
51990
52012
52014
52015
52019
52023
52024
52025
52026
52029
52050
52051
52054
52063
52066
52068
52071
52074
52078
52082
52083
52088
52094
52101
52124
52133
52143
52155
52157
52158
52162
52163
52164
52166
52179
52181
52189
52195
52196
52198
52200
52205
52209
52213
52216
52220
52223
52225
52228
52234
52236
52245
52261
52263
52274
52275
52281
52285
52286
52289
52290
52293
52296
52299
52303
52316
52326
52332
52335
52341
52343
52346
52348
52349
52353
52355
52359
52363
52372
52375
52376
52395
52398
52403
52410
52417
52425
52427
52432
52435
52436
52441
52444
52445
52448
52451
52459
52461
52466
52475
52476
52496
52497
52500
52503
52505
52506
52508
52509
52510
52515
52520
52524
52526
52535
52549
52560
52562
52574
52578
52587
52598
52599
52603
52604
52611
52612
52619
52627
52631
52635
52636
52637
52652
52661
52671
52673
52675
52685
52694
52701
52723
52730
52740
52741
52753
52759
52760
52764
52771
52777
52779
52796
52798
52800
52812
52813
52832
52834
52840
52844
52845
52848
52859
52864
52867
52874
52875
52876
52877
52878
52881
52884
52889
52896
52924
52931
52935
52943
52950
52951
52952
52956
52968
52970
52973
52978
52986
52992
52994
53001
53004
53008
53020
53030
53032
53033
53034
53036
53037
53044
53046
53056
53070
53079
53090
53092
53096
53099
53107
53115
53119
53121
53127
53136
53139
53142
53154
53160
53163
53171
53176
53193
53208
53210
53215
53217
53219
53220
53221
53238
53240
53246
53247
53248
53252
53253
53254
53260
53262
53264
53267
53272
53284
53288
53295
53299
53303
53318
53334
53335
53356
53360
53361
53365
53366
53369
53371
53374
53375
53397
53404
53407
53412
53415
53421
53425
53429
53435
53437
53448
53456
53463
53466
53472
53477
53483
53487
53488
53489
53496
53497
53501
53510
53514
53520
53528
53530
53531
53535
53538
53539
53540
53544
53545
53554
53569
53575
53578
53584
53585
53587
53588
53598
53599
53607
53610
53611
53624
53627
53632
53645
53646
53651
53657
53658
53661
53663
53664
53670
53677
53685
53707
53710
53711
53717
53728
53747
53756
53767
53769
53770
53771
53773
53774
53780
53788
53790
53793
53804
53814
53818
53822
53834
53840
53844
53846
53849
53856
53862
53869
53879
53882
53883
53891
53892
53893
53905
53907
53912
53916
53924
53927
53930
53931
53942
53945
53950
53952
53953
53957
53965
53972
53973
53977
53979
53984
53987
53999
54002
54003
54009
54010
54021
54023
54030
54035
54039
54043
54051
54052
54054
54056
54061
54065
54066
54069
54075
54077
54082
54087
54089
54091
54094
54098
54114
54120
54127
54139
54144
54153
54154
54160
54164
54171
54186
54193
54194
54200
54204
54205
54206
54213
54220
54222
54223
54224
54229
54230
54235
54236
54244
54248
54251
54265
54268
54279
54286
54295
54296
54298
54299
54300
54302
54305
54310
54311
54316
54317
54318
54321
54323
54328
54330
54336
54343
54346
54350
54351
54353
54361
54363
54380
54385
54387
54388
54391
54404
54408
54430
54439
54442
54445
54446
54454
54455
54456
54469
54470
54483
54488
54502
54504
54515
54518
54522
54523
54524
54527
54530
54552
54554
54561
54565
54576
54580
54583
54584
54588
54589
54590
54594
54595
54598
54600
54607
54616
54624
54625
54629
54631
54638
54643
54649
54665
54669
54679
54685
54688
54690
54699
54703
54706
54707
54710
54719
54723
54724
54730
54731
54734
54737
54741
54744
54745
54748
54752
54759
54771
54779
54780
54784
54789
54790
54801
54806
54807
54810
54814
54818
54827
54837
54841
54846
54848
54850
54852
54866
54868
54877
54887
54888
54901
54907
54912
54921
54925
54926
54941
54942
54947
54955
54957
54958
54963
54967
54973
54974
54976
54981
54983
54988
54990
54994
54996
54998
55003
55004
55008
55009
55012
55017
55018
55019
55024
55028
55029
55041
55043
55058
55060
55063
55064
55065
55070
55072
55073
55075
55084
55098
55103
55107
55112
55114
55119
55126
55127
55131
55136
55137
55151
55159
55163
55171
55183
55185
55189
55193
55200
55203
55209
55210
55211
55212
55213
55215
55217
55223
55228
55234
55239
55243
55247
55251
55254
55255
55262
55265
55273
55274
55275
55295
55307
55309
55314
55315
55318
55328
55329
55330
55342
55361
55362
55369
55373
55376
55380
55383
55384
55387
55388
55392
55407
55408
55414
55421
55422
55423
55426
55427
55438
55441
55447
55448
55462
55480
55481
55485
55490
55505
55518
55521
55524
55535
55538
55540
55541
55543
55545
55550
55564
55568
55577
55591
55598
55602
55605
55616
55620
55621
55631
55639
55644
55647
55655
55663
55668
55678
55684
55699
55703
55706
55709
55724
55729
55738
55741
55742
55752
55758
55759
55768
55772
55773
55775
55778
55798
55809
55824
55827
55839
55844
55848
55851
55853
55869
55872
55877
55882
55883
55891
55892
55893
55897
55911
55921
55924
55925
55926
55929
55938
55942
55945
55946
55947
55953
55959
55965
55971
55983
55987
56001
56002
56003
56008
56020
56029
56032
56033
56039
56041
56044
56054
56065
56071
56072
56079
56086
56094
56095
56097
56102
56106
56119
56122
56124
56126
56127
56130
56137
56144
56148
56149
56160
56170
56182
56187
56188
56203
56214
56216
56217
56218
56221
56227
56228
56233
56238
56244
56248
56255
56260
56275
56276
56286
56300
56304
56307
56310
56311
56314
56318
56326
56332
56347
56352
56355
56359
56366
56367
56370
56374
56378
56384
56388
56390
56395
56398
56400
56409
56414
56415
56416
56421
56441
56443
56449
56477
56478
56480
56483
56485
56490
56494
56498
56509
56510
56513
56514
56515
56522
56523
56526
56530
56532
56537
56543
56545
56555
56563
56568
56579
56596
56598
56609
56610
56614
56632
56633
56644
56658
56659
56666
56672
56676
56683
56684
56696
56697
56703
56710
56716
56717
56718
56723
56724
56728
56734
56738
56739
56741
56742
56748
56756
56757
56765
56767
56768
56772
56774
56778
56779
56782
56788
56799
56804
56808
56816
56818
56820
56828
56834
56839
56852
56874
56883
56884
56888
56889
56893
56903
56931
56934
56936
56942
56947
56948
56949
56952
56955
56956
56970
56975
56994
56997
56999
57001
57006
57018
57021
57023
57027
57038
57039
57045
57046
57049
57052
57056
57061
57068
57071
57075
57082
57087
57091
57093
57096
57102
57103
57106
57114
57118
57121
57124
57126
57128
57138
57149
57152
57155
57160
57168
57182
57183
57189
57191
57195
57199
57202
57213
57214
57215
57227
57232
57234
57237
57243
57245
57248
57249
57252
57255
57256
57262
57263
57264
57265
57267
57270
57274
57285
57289
57294
57295
57303
57305
57310
57312
57314
57329
57336
57346
57347
57353
57359
57362
57366
57367
57372
57374
57375
57376
57384
57385
57391
57395
57397
57403
57405
57409
57410
57414
57415
57417
57426
57428
57434
57440
57443
57445
57455
57460
57481
57482
57491
57493
57497
57498
57504
57515
57517
57518
57520
57526
57530
57547
57555
57561
57568
57570
57593
57595
57606
57608
57609
57614
57629
57633
57636
57638
57642
57650
57657
57659
57661
57674
57688
57696
57718
57720
57726
57728
57729
57733
57738
57746
57747
57753
57757
57759
57760
57761
57767
57769
57770
57771
57774
57775
57786
57787
57788
57804
57805
57807
57810
57812
57815
57817
57819
57820
57821
57826
57829
57830
57835
57839
57843
57845
57847
57848
57857
57861
57863
57864
57877
57878
57880
57887
57894
57906
57909
57926
57936
57939
57942
57945
57946
57948
57950
57963
57969
57972
57985
58005
58009
58010
58015
58016
58018
58025
58030
58033
58035
58040
58049
58070
58071
58077
58082
58083
58090
58097
58104
58115
58129
58131
58135
58137
58138
58141
58143
58144
58153
58158
58160
58164
58166
58174
58175
58181
58190
58196
58199
58205
58211
58218
58220
58229
58230
58233
58246
58247
58250
58255
58259
58260
58262
58264
58265
58266
58271
58272
58276
58287
58289
58291
58293
58302
58309
58311
58312
58322
58324
58341
58343
58364
58367
58371
58376
58379
58381
58389
58398
58405
58411
58413
58415
58426
58429
58431
58436
58438
58440
58449
58451
58464
58465
58467
58471
58472
58503
58506
58513
58514
58520
58523
58529
58530
58538
58544
58545
58546
58548
58563
58568
58574
58575
58577
58589
58593
58600
58602
58603
58622
58624
58636
58650
58657
58659
58664
58665
58666
58667
58669
58676
58678
58679
58687
58695
58696
58701
58703
58710
58716
58720
58724
58725
58736
58745
58754
58758
58770
58771
58774
58778
58780
58783
58784
58787
58800
58801
58802
58803
58804
58807
58822
58835
58837
58838
58839
58843
58847
58855
58856
58857
58858
58861
58863
58872
58874
58878
58886
58888
58890
58903
58908
58909
58928
58932
58936
58941
58947
58958
58959
58965
58986
58988
58989
59000
59001
59008
59011
59016
59027
59041
59042
59044
59046
59057
59068
59072
59073
59084
59085
59097
59105
59111
59112
59113
59118
59122
59123
59126
59127
59135
59142
59143
59146
59147
59152
59155
59158
59162
59164
59170
59176
59180
59183
59191
59195
59200
59203
59204
59207
59209
59211
59214
59215
59226
59234
59245
59251
59252
59254
59267
59269
59286
59293
59294
59296
59303
59308
59312
59314
59316
59322
59324
59334
59338
59339
59345
59347
59353
59355
59356
59366
59368
59374
59386
59392
59395
59411
59412
59421
59424
59425
59427
59430
59432
59441
59444
59446
59449
59459
59461
59464
59465
59481
59487
59500
59502
59507
59510
59522
59524
59525
59528
59539
59540
59542
59579
59580
59589
59596
59600
59605
59608
59610
59611
59614
59616
59618
59624
59633
59634
59641
59649
59651
59652
59654
59656
59658
59660
59662
59675
59676
59685
59694
59700
59701
59704
59711
59722
59726
59727
59728
59729
59736
59740
59742
59747
59749
59756
59757
59759
59762
59763
59764
59768
59783
59797
59798
59799
59805
59814
59816
59821
59825
59838
59839
59844
59854
59857
59866
59868
59874
59878
59898
59914
59917
59920
59922
59934
59936
59937
59948
59950
59954
59956
59958
59960
59967
59969
59980
59981
59989
59995
60005
60006
60011
60015
60017
60029
60033
60043
60051
60054
60061
60062
60070
60080
60085
60088
60093
60098
60116
60117
60118
60119
60124
60125
60127
60131
60145
60153
60154
60158
60163
60166
60169
60170
60173
60181
60199
60205
60206
60215
60220
60224
60231
60232
60233
60236
60240
60243
60244
60254
60256
60261
60271
60274
60290
60293
60294
60298
60309
60310
60312
60320
60322
60323
60324
60332
60339
60364
60377
60383
60384
60396
60397
60404
60414
60419
60421
60422
60433
60434
60443
60450
60454
60457
60461
60474
60482
60496
60500
60504
60505
60508
60510
60517
60525
60526
60527
60532
60535
60536
60540
60546
60547
60552
60559
60568
60578
60597
60599
60607
60610
60611
60623
60624
60635
60640
60646
60651
60664
60667
60668
60674
60679
60680
60691
60695
60701
60704
60712
60718
60720
60724
60731
60732
60737
60739
60742
60744
60751
60754
60765
60769
60772
60773
60779
60780
60789
60791
60792
60814
60817
60826
60831
60834
60840
60844
60845
60847
60848
60849
60850
60855
60856
60864
60865
60866
60875
60882
60885
60886
60903
60912
60924
60928
60930
60933
60951
60959
60961
60964
60965
60966
60972
60976
60980
60982
60986
60987
60990
60991
60993
60994
60998
61006
61017
61022
61024
61029
61032
61036
61039
61045
61057
61074
61075
61078
61079
61089
61099
61108
61115
61124
61125
61126
61138
61149
61150
61156
61157
61164
61173
61175
61179
61190
61191
61194
61207
61211
61216
61218
61219
61224
61225
61226
61229
61239
61252
61253
61269
61270
61273
61274
61275
61277
61282
61286
61291
61295
61299
61306
61307
61329
61342
61346
61351
61352
61362
61377
61379
61384
61396
61399
61409
61421
61428
61430
61442
61451
61452
61460
61461
61465
61467
61471
61474
61480
61481
61504
61506
61507
61522
61524
61526
61529
61530
61534
61543
61546
61550
61551
61552
61556
61560
61562
61565
61567
61569
61570
61571
61584
61588
61600
61603
61606
61607
61609
61617
61629
61631
61633
61636
61643
61645
61654
61657
61658
61659
61661
61664
61667
61677
61680
61682
61686
61697
61703
61704
61724
61725
61731
61740
61752
61761
61765
61770
61771
61772
61782
61788
61797
61807
61814
61826
61842
61849
61852
61853
61857
61864
61870
61876
61878
61891
61895
61898
61900
61906
61914
61915
61917
61919
61930
61935
61936
61937
61938
61941
61943
61945
61947
61948
61951
61953
61957
61960
61961
61965
61966
61969
61976
61982
61985
61994
61998
61999
62010
62013
62022
62027
62040
62051
62057
62058
62059
62060
62061
62062
62064
62068
62074
62083
62090
62102
62113
62117
62122
62132
62154
62159
62162
62164
62182
62183
62188
62190
62195
62202
62216
62227
62229
62234
62239
62245
62250
62254
62267
62271
62274
62279
62280
62284
62295
62296
62298
62299
62303
62320
62322
62328
62334
62336
62345
62358
62362
62365
62366
62367
62372
62376
62379
62383
62389
62391
62400
62407
62410
62424
62429
62434
62441
62447
62448
62449
62456
62460
62462
62468
62478
62483
62484
62485
62505
62516
62517
62531
62533
62535
62540
62541
62544
62551
62552
62556
62557
62570
62575
62583
62591
62592
62596
62601
62604
62611
62621
62624
62647
62652
62657
62668
62670
62681
62692
62694
62696
62697
62699
62709
62716
62718
62719
62721
62723
62726
62730
62734
62735
62739
62741
62746
62749
62759
62761
62763
62764
62770
62791
62796
62799
62808
62809
62815
62821
62829
62834
62840
62841
62879
62895
62910
62912
62920
62921
62924
62931
62933
62935
62939
62941
62942
62951
62953
62954
62966
62973
62983
62985
62993
62999
63002
63003
63005
63009
63011
63012
63016
63017
63019
63038
63041
63045
63048
63050
63051
63058
63062
63069
63072
63078
63089
63092
63093
63098
63102
63103
63105
63108
63116
63117
63132
63138
63143
63146
63148
63150
63156
63168
63174
63188
63198
63200
63201
63209
63211
63216
63220
63229
63231
63235
63239
63248
63253
63261
63265
63270
63272
63275
63281
63288
63290
63292
63293
63306
63322
63343
63351
63357
63367
63370
63373
63381
63385
63392
63394
63395
63396
63401
63402
63408
63411
63419
63422
63426
63427
63430
63431
63436
63437
63441
63444
63445
63453
63459
63465
63481
63482
63490
63498
63502
63504
63513
63515
63518
63521
63531
63532
63533
63537
63544
63550
63554
63558
63560
63561
63568
63569
63570
63574
63578
63580
63591
63592
63594
63598
63603
63608
63615
63617
63625
63626
63627
63629
63633
63638
63640
63661
63663
63671
63673
63683
63690
63694
63700
63705
63707
63708
63713
63718
63719
63720
63724
63737
63740
63742
63753
63755
63761
63762
63765
63767
63768
63772
63776
63780
63783
63792
63794
63804
63807
63828
63836
63844
63850
63854
63855
63858
63866
63867
63869
63871
63876
63878
63879
63880
63882
63884
63885
63892
63898
63911
63913
63915
63917
63918
63925
63926
63927
63930
63931
63940
63947
63953
63954
63959
63970
63972
63980
63982
63989
64006
64014
64017
64022
64023
64027
64032
64034
64037
64040
64046
64057
64058
64059
64064
64065
64076
64088
64092
64096
64099
64103
64105
64107
64111
64117
64121
64124
64131
64133
64141
64144
64150
64154
64155
64159
64175
64177
64179
64183
64184
64189
64193
64194
64196
64205
64209
64210
64225
64226
64228
64237
64241
64243
64248
64254
64258
64264
64267
64284
64285
64291
64300
64302
64303
64307
64308
64315
64317
64319
64321
64327
64332
64343
64348
64355
64360
64362
64365
64371
64373
64379
64381
64383
64385
64391
64394
64397
64400
64404
64408
64414
64416
64424
64428
64431
64432
64442
64449
64459
64461
64462
64463
64464
64468
64478
64487
64488
64489
64495
64497
64506
64512
64513
64516
64521
64528
64532
64533
64536
64538
64543
64545
64551
64559
64562
64563
64568
64570
64574
64578
64579
64587
64591
64596
64604
64605
64607
64615
64619
64623
64640
64642
64644
64645
64651
64658
64679
64692
64694
64696
64707
64722
64726
64731
64733
64736
64741
64754
64756
64765
64767
64784
64785
64789
64792
64794
64803
64812
64819
64823
64830
64842
64844
64852
64853
64855
64858
64864
64867
64871
64880
64883
64885
64888
64894
64900
64901
64910
64915
64944
64945
64946
64955
64962
64964
64967
64974
64986
64987
64990
64996
64998
65004
65006
65015
65024
65031
65040
65043
65055
65061
65063
65064
65068
65069
65071
65072
65074
65075
65079
65080
65082
65086
65093
65095
65098
65100
65101
65147
65152
65156
65161
65162
65164
65174
65175
65176
65180
65183
65184
65186
65188
65195
65196
65201
65202
65203
65205
65211
65212
65213
65216
65221
65227
65241
65249
65259
65263
65265
65267
65273
65275
65277
65279
65281
65284
65285
65294
65297
65299
65301
65303
65306
65309
65312
65320
65325
65329
65338
65347
65350
65370
65371
65376
65383
65394
65396
65401
65402
65405
65412
65415
65432
65434
65443
65451
65456
65457
65474
65476
65478
65485
65486
65494
65495
65496
65497
65498
65508
65515
65516
65518
65520
65527
65531
65532
65534
65536
65541
65542
65547
65548
65551
65556
65557
65560
65561
65565
65569
65571
65573
65580
65581
65583
65588
65593
65602
65608
65610
65619
65632
65636
65638
65643
65662
65670
65675
65676
65677
65683
65688
65692
65693
65694
65695
65700
65707
65711
65712
65716
65718
65738
65746
65769
65784
65791
65800
65810
65814
65816
65824
65829
65842
65850
65852
65854
65858
65860
65863
65867
65871
65880
65883
65884
65887
65893
65895
65898
65903
65906
65910
65911
65921
65923
65951
65953
65954
65961
65967
65973
65978
65981
65994
66009
66012
66013
66020
66027
66033
66036
66042
66044
66047
66050
66059
66063
66066
66071
66073
66077
66078
66086
66089
66092
66099
66101
66107
66120
66128
66129
66131
66143
66145
66147
66159
66162
66164
66169
66185
66190
66198
66200
66210
66216
66226
66230
66234
66238
66241
66247
66249
66253
66254
66255
66261
66264
66273
66283
66286
66288
66291
66301
66305
66317
66325
66332
66338
66339
66343
66351
66355
66362
66373
66374
66375
66379
66393
66395
66404
66409
66410
66419
66421
66422
66423
66433
66436
66444
66453
66457
66463
66485
66488
66489
66492
66494
66511
66513
66519
66520
66521
66526
66530
66533
66534
66554
66557
66565
66578
66591
66595
66600
66607
66611
66621
66627
66631
66642
66647
66660
66662
66664
66682
66685
66687
66689
66690
66694
66704
66706
66711
66715
66718
66720
66722
66723
66731
66734
66743
66765
66772
66773
66774
66775
66777
66781
66785
66786
66796
66797
66808
66810
66817
66823
66827
66828
66838
66845
66846
66850
66858
66873
66877
66884
66885
66889
66910
66914
66920
66921
66925
66926
66932
66934
66936
66938
66939
66940
66947
66956
66965
66966
66974
66975
66982
66983
66985
66986
66992
66999
67019
67028
67033
67037
67045
67051
67053
67054
67061
67065
67067
67068
67080
67088
67089
67090
67091
67092
67100
67105
67115
67117
67127
67133
67135
67168
67172
67181
67183
67200
67215
67220
67222
67225
67228
67239
67258
67263
67281
67284
67289
67293
67308
67312
67327
67333
67334
67343
67353
67358
67359
67363
67365
67389
67394
67395
67412
67416
67417
67426
67439
67440
67447
67451
67456
67457
67459
67460
67461
67463
67468
67470
67475
67476
67487
67503
67512
67535
67539
67549
67551
67552
67558
67572
67577
67582
67585
67586
67590
67595
67602
67603
67609
67610
67612
67615
67618
67628
67634
67636
67640
67646
67647
67655
67656
67658
67669
67676
67681
67683
67685
67686
67687
67689
67695
67701
67704
67706
67708
67715
67718
67725
67730
67737
67747
67754
67758
67772
67777
67787
67794
67795
67796
67803
67804
67805
67806
67813
67814
67826
67832
67847
67848
67851
67856
67860
67880
67888
67892
67894
67902
67907
67909
67911
67915
67919
67925
67931
67938
67945
67950
67954
67960
67978
67987
67988
67993
68005
68007
68012
68019
68023
68024
68026
68032
68036
68037
68042
68046
68047
68048
68051
68056
68058
68060
68066
68067
68068
68071
68075
68078
68080
68093
68094
68096
68098
68106
68107
68110
68120
68132
68146
68152
68157
68159
68160
68165
68166
68167
68183
68186
68190
68196
68198
68201
68202
68204
68213
68216
68217
68228
68230
68233
68246
68247
68263
68264
68273
68275
68283
68289
68304
68307
68319
68333
68334
68335
68340
68343
68344
68345
68348
68351
68355
68356
68358
68360
68363
68368
68369
68379
68383
68385
68388
68400
68411
68413
68416
68417
68424
68428
68429
68435
68443
68445
68447
68451
68453
68454
68455
68456
68458
68475
68476
68485
68487
68494
68498
68506
68514
68548
68550
68564
68566
68573
68578
68580
68590
68591
68593
68597
68600
68602
68604
68609
68621
68623
68624
68626
68628
68629
68633
68638
68642
68652
68658
68661
68663
68670
68672
68678
68679
68680
68681
68701
68702
68716
68718
68719
68720
68724
68729
68730
68747
68750
68751
68754
68758
68774
68776
68779
68784
68785
68786
68790
68796
68800
68801
68804
68808
68810
68812
68815
68821
68827
68844
68845
68848
68853
68858
68859
68863
68867
68871
68876
68883
68885
68891
68892
68895
68898
68899
68904
68905
68908
68927
68930
68936
68938
68942
68945
68957
68958
68963
68967
68973
68975
68989
69000
69005
69008
69012
69016
69021
69026
69028
69035
69040
69042
69045
69046
69048
69049
69050
69058
69072
69073
69074
69082
69086
69089
69093
69094
69113
69119
69125
69126
69129
69134
69142
69149
69152
69156
69162
69164
69167
69171
69176
69180
69182
69201
69213
69216
69221
69233
69235
69238
69241
69256
69257
69258
69262
69264
69268
69276
69280
69282
69293
69299
69300
69309
69315
69326
69328
69329
69334
69336
69337
69339
69341
69342
69348
69351
69353
69362
69375
69377
69380
69384
69388
69389
69396
69402
69408
69409
69421
69423
69436
69442
69444
69459
69465
69469
69470
69472
69474
69475
69483
69487
69500
69504
69508
69515
69520
69521
69523
69526
69537
69538
69543
69547
69549
69559
69562
69564
69573
69574
69590
69591
69601
69605
69607
69619
69625
69629
69631
69633
69637
69650
69651
69664
69665
69668
69677
69681
69687
69697
69699
69700
69702
69708
69719
69725
69731
69732
69734
69740
69751
69763
69767
69775
69777
69783
69788
69797
69798
69801
69835
69844
69847
69862
69868
69875
69887
69889
69892
69897
69906
69919
69920
69923
69928
69930
69932
69934
69941
69946
69956
69966
69975
69982
69986
69990
69991
69994
70004
70006
70007
70012
70015
70020
70027
70036
70037
70054
70062
70067
70072
70076
70077
70079
70082
70086
70089
70109
70112
70116
70121
70126
70132
70147
70152
70155
70160
70164
70167
70169
70171
70183
70185
70186
70191
70197
70202
70204
70212
70214
70225
70226
70232
70234
70237
70247
70248
70250
70256
70262
70267
70285
70292
70307
70308
70310
70312
70320
70324
70335
70337
70339
70342
70347
70349
70358
70361
70363
70365
70367
70373
70375
70380
70389
70390
70393
70395
70401
70402
70406
70407
70421
70425
70428
70429
70430
70442
70444
70445
70450
70454
70462
70464
70470
70481
70495
70503
70513
70515
70520
70522
70524
70528
70529
70532
70536
70538
70546
70548
70551
70553
70558
70560
70564
70567
70578
70580
70581
70582
70592
70600
70601
70602
70605
70609
70611
70617
70621
70623
70624
70626
70630
70638
70643
70650
70662
70664
70676
70677
70679
70684
70698
70702
70707
70717
70718
70723
70739
70741
70746
70755
70757
70762
70765
70772
70778
70792
70793
70796
70800
70802
70810
70811
70818
70820
70824
70834
70837
70844
70848
70853
70857
70864
70870
70874
70876
70887
70888
70892
70893
70905
70912
70925
70933
70954
70962
70968
70972
70973
70975
70987
71002
71006
71012
71016
71019
71023
71027
71031
71038
71044
71045
71054
71055
71061
71063
71065
71069
71075
71106
71108
71114
71122
71139
71141
71152
71159
71161
71164
71165
71170
71171
71186
71195
71197
71203
71204
71217
71219
71228
71230
71241
71253
71257
71259
71266
71267
71270
71276
71277
71287
71288
71291
71293
71297
71298
71330
71331
71332
71338
71349
71352
71355
71367
71378
71380
71381
71389
71391
71394
71407
71411
71416
71423
71436
71441
71451
71456
71457
71463
71464
71470
71474
71478
71481
71489
71495
71496
71501
71510
71512
71520
71522
71525
71531
71538
71544
71548
71558
71567
71568
71570
71572
71577
71600
71602
71609
71616
71622
71631
71636
71644
71647
71649
71651
71653
71658
71660
71661
71665
71676
71682
71683
71685
71688
71691
71695
71703
71710
71721
71722
71730
71731
71732
71734
71740
71755
71765
71768
71771
71774
71787
71791
71793
71799
71800
71802
71805
71807
71817
71818
71819
71820
71821
71832
71836
71837
71840
71845
71852
71864
71866
71870
71873
71881
71888
71890
71895
71898
71909
71911
71913
71918
71930
71936
71937
71942
71945
71946
71949
71953
71968
71970
71973
71979
71981
71983
71984
71999
72004
72009
72015
72019
72021
72028
72029
72033
72034
72051
72060
72063
72073
72076
72079
72080
72084
72089
72093
72094
72097
72098
72105
72106
72110
72115
72116
72118
72129
72137
72146
72151
72157
72165
72167
72174
72188
72192
72197
72198
72201
72203
72205
72210
72212
72227
72233
72236
72244
72249
72250
72259
72267
72288
72292
72293
72296
72299
72301
72305
72316
72319
72320
72327
72330
72332
72335
72336
72337
72338
72340
72341
72349
72357
72363
72367
72372
72375
72377
72380
72387
72389
72396
72399
72404
72406
72408
72411
72416
72422
72428
72433
72442
72446
72447
72452
72459
72463
72465
72468
72470
72478
72482
72484
72486
72495
72517
72522
72529
72530
72533
72535
72542
72551
72574
72575
72578
72583
72588
72596
72605
72613
72626
72635
72637
72638
72641
72651
72659
72660
72662
72670
72673
72675
72676
72685
72689
72695
72698
72700
72702
72704
72707
72712
72715
72717
72725
72727
72730
72736
72738
72739
72758
72762
72780
72788
72789
72793
72802
72806
72807
72812
72813
72816
72819
72822
72833
72836
72838
72839
72842
72843
72845
72856
72857
72858
72859
72867
72868
72869
72870
72874
72884
72888
72898
72905
72909
72910
72912
72917
72926
72933
72935
72938
72943
72954
72955
72958
72965
72966
72974
72976
72985
72986
72992
72993
72994
72995
73000
73001
73010
73011
73012
73014
73016
73018
73022
73024
73033
73034
73040
73043
73048
73054
73056
73059
73071
73075
73080
73085
73099
73106
73109
73112
73119
73124
73128
73129
73139
73145
73150
73162
73167
73170
73175
73179
73182
73184
73194
73202
73210
73216
73218
73221
73224
73232
73248
73254
73258
73260
73261
73267
73268
73272
73278
73279
73294
73299
73303
73308
73310
73311
73319
73327
73329
73332
73341
73342
73343
73344
73347
73348
73351
73354
73362
73380
73382
73384
73387
73394
73396
73399
73411
73419
73431
73437
73441
73442
73443
73448
73451
73453
73464
73470
73479
73487
73491
73492
73493
73494
73495
73496
73498
73504
73508
73516
73520
73539
73542
73546
73549
73552
73558
73560
73561
73574
73575
73580
73583
73590
73598
73600
73601
73602
73605
73612
73614
73616
73618
73623
73629
73635
73637
73644
73645
73655
73658
73662
73674
73684
73697
73698
73717
73723
73730
73736
73744
73755
73762
73765
73767
73768
73771
73779
73780
73793
73797
73798
73799
73806
73811
73817
73826
73830
73844
73849
73854
73858
73860
73864
73869
73871
73875
73880
73882
73884
73887
73897
73902
73908
73920
73923
73931
73936
73942
73949
73950
73954
73963
73975
73978
73979
73983
73992
73997
74000
74003
74005
74006
74010
74020
74030
74035
74044
74045
74047
74049
74051
74060
74061
74071
74080
74081
74094
74102
74109
74112
74114
74131
74137
74141
74144
74158
74162
74167
74174
74178
74184
74185
74186
74191
74197
74201
74202
74208
74210
74216
74220
74231
74237
74245
74250
74251
74256
74261
74264
74267
74286
74287
74289
74291
74293
74297
74300
74303
74305
74312
74313
74335
74342
74345
74347
74352
74356
74364
74367
74369
74371
74378
74384
74392
74401
74419
74424
74425
74429
74438
74439
74452
74461
74463
74471
74473
74475
74479
74485
74487
74494
74498
74504
74508
74510
74512
74519
74521
74522
74533
74537
74539
74544
74548
74549
74559
74563
74565
74566
74575
74576
74578
74583
74587
74589
74596
74597
74608
74619
74626
74632
74633
74643
74648
74656
74659
74660
74661
74668
74674
74675
74683
74684
74688
74690
74691
74692
74694
74701
74706
74707
74712
74718
74720
74721
74722
74725
74727
74729
74734
74746
74751
74765
74771
74773
74774
74775
74776
74778
74779
74793
74794
74800
74803
74811
74816
74819
74830
74833
74835
74839
74851
74855
74862
74882
74895
74901
74902
74907
74911
74913
74928
74930
74931
74934
74938
74950
74954
74974
74983
74985
74990
74992
74996
74997
75002
75024
75032
75043
75047
75063
75080
75088
75095
75096
75101
75103
75108
75110
75119
75121
75131
75133
75134
75135
75137
75144
75151
75153
75160
75171
75173
75174
75181
75187
75188
75189
75192
75195
75197
75199
75202
75203
75205
75212
75219
75227
75236
75243
75247
75252
75255
75256
75259
75283
75284
75286
75288
75290
75299
75305
75306
75311
75315
75321
75328
75334
75338
75345
75347
75358
75359
75363
75366
75372
75381
75385
75399
75400
75402
75409
75414
75415
75418
75420
75425
75428
75442
75445
75446
75453
75454
75456
75457
75474
75481
75487
75489
75491
75493
75495
75500
75505
75506
75514
75515
75524
75535
75554
75561
75565
75568
75570
75577
75580
75586
75595
75604
75610
75616
75620
75622
75639
75641
75643
75647
75655
75657
75658
75660
75663
75673
75678
75697
75701
75702
75705
75708
75716
75741
75745
75746
75753
75755
75760
75765
75775
75778
75784
75787
75799
75802
75809
75814
75825
75828
75829
75831
75835
75843
75845
75846
75851
75854
75860
75861
75876
75877
75881
75882
75893
75894
75906
75914
75915
75920
75923
75926
75927
75931
75935
75942
75953
75960
75964
75976
75978
75980
75981
75984
75985
75989
75994
75996
76003
76010
76016
76021
76025
76031
76036
76038
76040
76047
76053
76054
76061
76068
76070
76071
76072
76073
76077
76078
76091
76096
76114
76116
76121
76122
76126
76137
76140
76149
76154
76155
76169
76170
76172
76173
76176
76177
76179
76181
76182
76192
76194
76199
76206
76212
76224
76228
76231
76232
76238
76242
76243
76250
76259
76265
76277
76283
76296
76300
76304
76305
76311
76314
76318
76319
76328
76330
76337
76341
76346
76351
76355
76364
76370
76375
76377
76382
76393
76394
76396
76397
76401
76404
76413
76415
76419
76434
76439
76447
76450
76457
76461
76464
76472
76481
76486
76495
76496
76499
76504
76506
76509
76511
76517
76519
76525
76529
76540
76541
76550
76551
76555
76569
76576
76578
76580
76581
76582
76587
76592
76609
76615
76618
76629
76633
76637
76639
76653
76654
76663
76674
76675
76685
76686
76691
76704
76707
76712
76721
76722
76725
76731
76734
76743
76751
76756
76764
76765
76768
76787
76797
76798
76799
76802
76803
76811
76817
76825
76830
76839
76841
76843
76848
76850
76852
76853
76854
76859
76871
76891
76896
76898
76904
76910
76911
76912
76918
76924
76926
76931
76932
76939
76940
76951
76955
76958
76965
76968
76977
76978
76979
76984
76998
77000
77008
77009
77013
77021
77026
77034
77047
77050
77056
77057
77065
77071
77074
77083
77085
77086
77099
77108
77113
77115
77116
77118
77120
77123
77128
77132
77136
77154
77177
77180
77182
77183
77205
77206
77208
77212
77213
77214
77218
77219
77229
77232
77243
77250
77253
77257
77260
77279
77282
77288
77300
77305
77306
77308
77309
77310
77313
77314
77317
77326
77328
77332
77336
77338
77342
77345
77360
77361
77369
77372
77374
77382
77385
77392
77394
77395
77402
77404
77409
77417
77424
77431
77436
77441
77442
77445
77456
77458
77461
77468
77469
77472
77474
77476
77478
77490
77491
77494
77496
77499
77500
77504
77508
77518
77519
77520
77521
77522
77531
77538
77539
77540
77541
77546
77548
77555
77556
77561
77571
77586
77590
77593
77595
77600
77603
77605
77613
77621
77622
77632
77645
77648
77656
77658
77659
77664
77681
77689
77695
77702
77708
77713
77724
77727
77733
77735
77749
77751
77755
77758
77767
77771
77780
77783
77785
77788
77791
77796
77802
77803
77810
77811
77812
77817
77819
77831
77836
77839
77845
77862
77874
77888
77898
77906
77910
77940
77944
77948
77949
77954
77961
77967
77970
77973
77974
77979
77985
77990
77998
77999
78002
78004
78010
78013
78017
78021
78026
78035
78042
78045
78051
78061
78069
78070
78079
78082
78087
78096
78105
78106
78108
78113
78125
78128
78130
78131
78133
78154
78161
78165
78168
78169
78171
78178
78183
78184
78186
78189
78190
78197
78207
78209
78210
78212
78214
78215
78221
78224
78234
78235
78239
78240
78243
78249
78252
78259
78262
78264
78270
78278
78279
78284
78289
78305
78312
78316
78326
78330
78332
78334
78339
78342
78343
78347
78353
78357
78358
78364
78388
78400
78403
78404
78407
78419
78421
78427
78433
78441
78442
78443
78446
78447
78453
78455
78457
78458
78465
78469
78471
78477
78480
78503
78505
78514
78515
78516
78517
78526
78531
78536
78541
78546
78548
78556
78566
78567
78568
78573
78578
78585
78588
78591
78596
78597
78602
78604
78605
78610
78613
78614
78616
78619
78623
78631
78632
78636
78638
78641
78642
78646
78652
78659
78664
78665
78669
78670
78671
78681
78687
78688
78691
78694
78696
78699
78703
78705
78707
78710
78712
78715
78716
78717
78722
78725
78727
78730
78732
78733
78738
78742
78746
78750
78751
78752
78757
78763
78769
78774
78775
78779
78792
78793
78795
78796
78800
78804
78810
78816
78824
78825
78836
78844
78846
78867
78874
78876
78877
78881
78883
78892
78904
78921
78924
78933
78935
78937
78939
78940
78944
78945
78947
78952
78955
78956
78957
78959
78972
78979
78982
78993
78996
78997
78999
79001
79013
79015
79017
79024
79027
79028
79030
79031
79044
79045
79052
79053
79058
79070
79074
79075
79079
79092
79105
79107
79125
79127
79132
79143
79148
79151
79152
79153
79154
79160
79163
79165
79172
79173
79176
79178
79180
79185
79190
79192
79193
79194
79198
79199
79205
79207
79217
79218
79225
79235
79237
79240
79246
79250
79253
79262
79269
79284
79295
79298
79300
79301
79303
79308
79310
79312
79313
79325
79332
79339
79346
79348
79352
79353
79355
79357
79363
79364
79366
79367
79374
79377
79382
79383
79384
79385
79392
79406
79411
79415
79417
79418
79427
79433
79439
79441
79444
79450
79455
79456
79476
79478
79480
79481
79482
79490
79492
79497
79498
79510
79519
79520
79526
79537
79539
79544
79546
79548
79551
79552
79559
79566
79579
79580
79583
79591
79597
79598
79600
79605
79619
79632
79635
79636
79648
79658
79666
79668
79669
79673
79674
79676
79693
79700
79703
79708
79710
79711
79713
79715
79721
79724
79733
79740
79742
79748
79753
79759
79764
79767
79770
79776
79785
79787
79793
79804
79806
79826
79833
79835
79837
79848
79849
79852
79859
79860
79864
79865
79870
79871
79872
79876
79881
79883
79886
79897
79906
79911
79919
79925
79930
79934
79937
79943
79952
79966
79971
79972
79973
79977
79984
79985
79991
79992
79996
80003
80025
80035
80036
80038
80046
80053
80054
80065
80071
80074
80077
80079
80085
80087
80090
80096
80097
80103
80106
80109
80111
80114
80119
80121
80127
80130
80141
80145
80150
80157
80169
80172
80176
80177
80189
80194
80202
80215
80224
80232
80233
80234
80235
80246
80251
80260
80261
80269
80270
80276
80283
80285
80288
80298
80304
80307
80319
80320
80324
80332
80345
80346
80360
80361
80368
80378
80379
80382
80387
80389
80392
80405
80411
80414
80422
80424
80427
80430
80431
80432
80436
80450
80451
80456
80463
80469
80476
80486
80500
80503
80509
80516
80522
80530
80534
80540
80545
80557
80559
80566
80570
80576
80579
80580
80582
80590
80604
80608
80612
80616
80625
80630
80633
80635
80638
80642
80648
80649
80652
80655
80665
80669
80680
80683
80690
80691
80705
80730
80734
80742
80744
80749
80750
80752
80756
80757
80761
80762
80766
80773
80777
80784
80785
80808
80810
80814
80821
80825
80826
80829
80832
80837
80841
80850
80851
80866
80869
80874
80875
80877
80882
80889
80891
80898
80917
80940
80941
80951
80962
80967
80974
80983
80984
80988
80998
80999
81002
81007
81014
81016
81029
81031
81033
81035
81046
81051
81063
81072
81074
81077
81078
81082
81083
81087
81089
81091
81099
81115
81117
81125
81126
81131
81133
81134
81136
81138
81144
81150
81155
81158
81165
81175
81180
81186
81187
81188
81189
81190
81191
81196
81200
81202
81203
81205
81215
81218
81226
81227
81235
81238
81240
81249
81259
81265
81271
81280
81284
81289
81291
81297
81306
81307
81309
81321
81323
81325
81336
81341
81346
81354
81358
81363
81367
81371
81372
81374
81388
81392
81396
81398
81402
81406
81422
81424
81425
81426
81443
81447
81457
81458
81459
81461
81465
81472
81474
81475
81478
81488
81491
81498
81513
81515
81521
81524
81527
81531
81536
81538
81539
81550
81557
81559
81562
81568
81569
81573
81576
81578
81579
81586
81622
81625
81639
81646
81648
81653
81654
81657
81671
81675
81677
81680
81683
81685
81687
81688
81693
81697
81701
81706
81714
81725
81726
81727
81741
81743
81747
81759
81760
81777
81778
81790
81794
81802
81803
81804
81813
81815
81817
81826
81834
81835
81838
81846
81851
81855
81856
81880
81889
81892
81896
81904
81906
81909
81914
81919
81926
81929
81930
81932
81941
81946
81953
81954
81960
81962
81963
81964
81974
81976
81982
81994
82010
82014
82017
82024
82030
82031
82034
82036
82037
82038
82048
82053
82055
82056
82064
82065
82066
82070
82072
82078
82088
82093
82096
82099
82100
82101
82103
82105
82107
82109
82119
82121
82124
82128
82138
82143
82145
82148
82151
82157
82158
82159
82168
82171
82175
82177
82178
82192
82196
82198
82201
82203
82204
82209
82220
82221
82222
82228
82232
82233
82239
82240
82246
82248
82258
82264
82268
82272
82279
82280
82288
82289
82291
82299
82300
82301
82302
82303
82316
82317
82320
82321
82328
82332
82336
82337
82343
82346
82357
82361
82365
82368
82372
82375
82384
82386
82390
82406
82407
82409
82414
82416
82422
82431
82433
82437
82440
82444
82445
82448
82456
82459
82465
82490
82497
82505
82509
82519
82524
82525
82527
82539
82548
82549
82550
82552
82571
82573
82577
82585
82587
82591
82594
82604
82608
82614
82615
82619
82622
82624
82631
82634
82642
82645
82660
82661
82663
82666
82681
82684
82687
82694
82695
82706
82707
82717
82718
82719
82721
82731
82738
82746
82755
82765
82766
82771
82786
82797
82798
82811
82817
82818
82822
82829
82838
82846
82847
82853
82856
82863
82873
82883
82885
82892
82893
82900
82916
82924
82931
82933
82934
82938
82940
82943
82944
82961
82963
82965
82966
82972
82977
82994
83001
83009
83010
83012
83015
83025
83027
83030
83031
83051
83064
83067
83068
83083
83084
83092
83095
83096
83102
83105
83106
83110
83117
83122
83123
83129
83147
83149
83168
83173
83174
83177
83182
83183
83185
83187
83188
83198
83199
83220
83223
83229
83231
83237
83240
83244
83256
83261
83280
83295
83297
83298
83299
83302
83304
83305
83308
83322
83324
83331
83340
83341
83349
83353
83358
83359
83360
83362
83374
83376
83382
83387
83394
83395
83403
83408
83418
83426
83428
83434
83435
83438
83441
83442
83443
83449
83450
83451
83452
83455
83466
83471
83472
83477
83485
83488
83493
83500
83502
83508
83510
83513
83516
83522
83530
83533
83541
83542
83549
83554
83558
83563
83586
83591
83593
83598
83599
83600
83606
83607
83610
83613
83629
83630
83634
83640
83654
83657
83660
83663
83678
83686
83689
83702
83706
83707
83709
83711
83713
83728
83729
83736
83738
83744
83745
83748
83756
83759
83761
83762
83764
83775
83777
83778
83788
83789
83792
83799
83802
83809
83812
83820
83822
83824
83830
83844
83853
83860
83864
83869
83873
83886
83890
83892
83895
83896
83901
83907
83916
83917
83922
83926
83935
83938
83939
83943
83946
83947
83953
83956
83967
83968
83969
83983
83985
83992
83999
84000
84001
84007
84008
84010
84012
84013
84016
84017
84031
84033
84047
84052
84053
84054
84060
84067
84068
84069
84072
84076
84078
84079
84080
84085
84108
84113
84116
84130
84131
84135
84137
84143
84144
84145
84158
84163
84167
84169
84173
84178
84185
84188
84189
84192
84194
84203
84205
84208
84213
84218
84223
84224
84236
84240
84251
84252
84254
84264
84281
84283
84286
84291
84295
84302
84306
84309
84315
84316
84319
84320
84321
84323
84326
84330
84346
84348
84352
84358
84364
84366
84367
84369
84372
84375
84379
84387
84389
84416
84431
84435
84439
84441
84450
84451
84452
84458
84466
84470
84472
84475
84479
84480
84481
84490
84494
84507
84509
84510
84511
84516
84520
84534
84536
84540
84549
84562
84567
84568
84569
84575
84581
84583
84586
84588
84594
84597
84598
84600
84609
84620
84621
84625
84635
84637
84639
84640
84646
84647
84659
84661
84662
84670
84672
84677
84678
84680
84683
84686
84689
84692
84697
84700
84703
84715
84717
84718
84722
84727
84732
84736
84743
84744
84745
84746
84755
84758
84761
84768
84771
84778
84780
84782
84790
84792
84793
84813
84824
84826
84830
84831
84841
84843
84845
84848
84850
84862
84863
84864
84873
84874
84891
84893
84904
84912
84914
84915
84916
84919
84920
84923
84928
84929
84930
84934
84938
84946
84953
84954
84974
84975
84977
84981
84982
84986
84988
84989
84991
84996
85003
85004
85008
85013
85016
85017
85027
85031
85032
85033
85035
85047
85051
85053
85068
85069
85077
85079
85081
85083
85084
85091
85094
85098
85100
85101
85106
85116
85122
85124
85134
85136
85141
85161
85166
85167
85169
85174
85175
85177
85196
85200
85202
85209
85220
85221
85222
85223
85226
85232
85233
85245
85249
85253
85256
85261
85273
85292
85295
85300
85310
85311
85315
85322
85323
85324
85334
85337
85344
85375
85376
85400
85403
85404
85412
85420
85424
85429
85451
85453
85454
85455
85461
85462
85466
85468
85475
85479
85486
85489
85492
85493
85496
85498
85506
85511
85523
85524
85526
85530
85536
85539
85555
85557
85559
85563
85574
85576
85590
85598
85599
85600
85601
85613
85618
85621
85624
85626
85630
85633
85643
85646
85647
85653
85655
85657
85660
85661
85674
85676
85677
85680
85684
85688
85697
85709
85718
85736
85739
85744
85750
85751
85758
85760
85777
85780
85781
85783
85788
85794
85796
85797
85798
85799
85801
85803
85806
85809
85813
85815
85816
85818
85819
85820
85823
85825
85828
85835
85836
85841
85844
85858
85862
85864
85873
85885
85892
85893
85895
85899
85902
85915
85918
85921
85925
85929
85941
85943
85948
85951
85954
85957
85962
85964
85968
85974
85984
86006
86007
86009
86013
86014
86015
86019
86023
86026
86032
86034
86050
86051
86060
86071
86073
86077
86101
86103
86108
86116
86120
86123
86127
86129
86130
86131
86132
86137
86138
86145
86146
86147
86150
86153
86155
86156
86162
86164
86172
86174
86180
86186
86192
86197
86200
86203
86206
86211
86216
86232
86235
86270
86278
86297
86300
86304
86305
86308
86315
86316
86320
86331
86339
86344
86347
86356
86357
86373
86378
86380
86387
86388
86394
86405
86409
86414
86418
86424
86426
86435
86439
86442
86447
86456
86462
86463
86472
86476
86480
86489
86493
86496
86506
86514
86520
86533
86544
86547
86549
86552
86553
86557
86559
86566
86572
86573
86574
86576
86584
86587
86593
86594
86600
86614
86617
86619
86620
86622
86633
86642
86647
86650
86655
86662
86663
86664
86665
86667
86671
86676
86680
86682
86686
86691
86702
86704
86708
86714
86723
86729
86730
86738
86741
86742
86743
86748
86766
86768
86773
86775
86777
86778
86785
86787
86794
86798
86803
86804
86807
86808
86813
86817
86820
86825
86831
86832
86837
86840
86842
86843
86845
86850
86852
86853
86855
86863
86869
86870
86874
86876
86878
86881
86888
86899
86900
86901
86902
86904
86913
86914
86916
86917
86922
86926
86952
86957
86958
86960
86962
86967
86975
86976
86979
86996
86999
87000
87001
87012
87014
87024
87030
87035
87036
87042
87044
87051
87054
87061
87064
87068
87072
87080
87088
87107
87109
87114
87118
87120
87145
87147
87149
87166
87167
87190
87195
87196
87203
87206
87221
87222
87230
87237
87241
87242
87249
87251
87253
87257
87260
87266
87269
87272
87284
87285
87297
87298
87299
87300
87301
87304
87311
87312
87331
87332
87341
87347
87355
87361
87363
87368
87369
87374
87377
87380
87383
87388
87390
87406
87409
87415
87420
87427
87429
87431
87433
87435
87436
87439
87443
87448
87455
87462
87483
87487
87491
87492
87493
87494
87499
87501
87504
87516
87517
87520
87538
87541
87554
87556
87558
87566
87570
87572
87574
87577
87601
87605
87620
87626
87630
87633
87635
87637
87654
87658
87683
87685
87690
87692
87693
87697
87701
87706
87710
87715
87725
87726
87728
87730
87733
87736
87741
87742
87745
87749
87755
87776
87777
87780
87784
87791
87799
87804
87809
87814
87817
87821
87822
87829
87831
87832
87833
87834
87839
87841
87845
87846
87850
87854
87857
87867
87868
87876
87877
87881
87893
87894
87896
87906
87922
87927
87940
87941
87950
87953
87958
87965
87967
87968
87972
87979
87984
87991
87995
88000
88014
88015
88034
88040
88048
88051
88060
88067
88071
88077
88087
88109
88114
88119
88124
88127
88137
88138
88149
88153
88154
88155
88157
88167
88170
88175
88178
88184
88213
88224
88227
88236
88246
88248
88251
88253
88256
88258
88269
88280
88281
88283
88285
88292
88293
88296
88298
88300
88303
88332
88342
88346
88350
88362
88371
88372
88373
88377
88383
88384
88388
88389
88399
88409
88410
88417
88424
88425
88430
88432
88434
88437
88440
88442
88444
88446
88449
88450
88463
88471
88473
88476
88478
88481
88482
88488
88490
88494
88498
88501
88504
88506
88511
88516
88519
88521
88524
88525
88530
88531
88535
88539
88540
88545
88552
88558
88561
88566
88569
88570
88572
88575
88583
88584
88587
88588
88590
88591
88593
88609
88614
88616
88621
88623
88627
88638
88643
88646
88672
88683
88684
88688
88693
88694
88700
88705
88706
88715
88717
88719
88728
88729
88732
88736
88746
88748
88751
88756
88758
88767
88770
88777
88784
88789
88792
88794
88798
88802
88823
88826
88833
88835
88841
88848
88855
88857
88858
88861
88866
88867
88872
88876
88880
88888
88889
88896
88897
88906
88913
88941
88943
88946
88980
88992
89001
89007
89008
89019
89020
89024
89028
89035
89039
89040
89042
89055
89058
89070
89072
89079
89081
89082
89085
89087
89089
89092
89096
89099
89101
89107
89110
89113
89117
89120
89123
89124
89135
89140
89145
89146
89147
89157
89159
89165
89171
89174
89176
89177
89179
89187
89191
89194
89198
89203
89205
89211
89213
89217
89228
89230
89246
89251
89263
89268
89284
89285
89293
89297
89301
89313
89314
89315
89316
89319
89321
89327
89328
89339
89342
89345
89352
89360
89361
89363
89366
89372
89376
89383
89386
89393
89397
89408
89416
89421
89426
89428
89451
89454
89458
89468
89475
89478
89480
89482
89484
89485
89487
89489
89495
89499
89501
89505
89509
89510
89517
89519
89535
89540
89546
89548
89556
89561
89562
89572
89573
89579
89582
89583
89586
89597
89602
89626
89630
89641
89651
89655
89658
89659
89665
89678
89679
89685
89686
89690
89692
89693
89698
89700
89701
89705
89711
89716
89728
89737
89738
89749
89751
89755
89760
89764
89766
89769
89783
89796
89811
89812
89818
89819
89821
89828
89829
89834
89838
89841
89842
89844
89845
89846
89860
89865
89875
89878
89884
89888
89889
89891
89899
89900
89902
89905
89932
89935
89939
89940
89945
89948
89956
89959
89974
89978
89981
89982
89983
89986
89987
89991
89992
90000
90007
90009
90010
90018
90021
90024
90027
90030
90034
90045
90047
90052
90053
90058
90065
90066
90076
90079
90081
90087
90091
90106
90109
90113
90122
90129
90132
90137
90138
90143
90147
90151
90163
90165
90169
90180
90182
90186
90190
90191
90208
90209
90211
90213
90214
90218
90228
90233
90236
90242
90243
90246
90247
90259
90269
90270
90280
90286
90291
90292
90293
90301
90303
90312
90315
90316
90321
90329
90335
90338
90342
90354
90356
90361
90364
90365
90371
90374
90376
90387
90410
90416
90418
90424
90425
90428
90430
90431
90432
90434
90441
90448
90452
90455
90459
90462
90472
90474
90477
90478
90481
90482
90484
90485
90487
90493
90499
90502
90504
90505
90507
90508
90516
90518
90528
90531
90533
90536
90538
90540
90544
90546
90551
90587
90619
90628
90636
90642
90647
90655
90656
90661
90664
90665
90680
90689
90699
90703
90707
90728
90729
90730
90743
90745
90759
90764
90769
90774
90777
90784
90797
90812
90834
90845
90862
90867
90868
90872
90873
90879
90885
90886
90889
90899
90900
90902
90906
90907
90908
90914
90916
90922
90925
90927
90929
90934
90943
90944
90953
90957
90963
90970
90971
90993
91008
91017
91039
91043
91046
91047
91052
91054
91061
91067
91075
91078
91085
91088
91090
91110
91115
91119
91122
91127
91129
91138
91142
91146
91152
91159
91165
91167
91174
91182
91183
91184
91187
91189
91191
91194
91206
91207
91208
91210
91215
91221
91222
91230
91234
91241
91242
91248
91251
91273
91281
91286
91291
91304
91306
91309
91312
91313
91315
91318
91327
91356
91360
91362
91364
91367
91371
91373
91375
91377
91387
91391
91396
91400
91404
91410
91412
91433
91435
91436
91440
91444
91447
91449
91451
91455
91462
91470
91471
91477
91479
91487
91490
91493
91494
91502
91515
91516
91546
91556
91560
91564
91565
91566
91567
91570
91574
91579
91582
91586
91588
91593
91612
91616
91624
91635
91640
91641
91646
91648
91658
91660
91663
91676
91677
91679
91687
91688
91696
91703
91708
91715
91725
91735
91740
91743
91752
91766
91773
91775
91780
91781
91807
91817
91823
91833
91838
91843
91845
91852
91854
91857
91869
91871
91876
91882
91886
91895
91905
91906
91908
91911
91915
91916
91929
91942
91948
91955
91958
91964
91972
91991
92002
92018
92022
92026
92029
92034
92036
92037
92038
92047
92050
92055
92058
92061
92065
92073
92080
92083
92105
92112
92118
92122
92125
92128
92142
92147
92152
92155
92157
92163
92176
92177
92181
92189
92191
92194
92197
92203
92211
92213
92219
92220
92223
92225
92237
92239
92247
92251
92256
92259
92263
92267
92270
92281
92291
92302
92305
92312
92320
92327
92330
92337
92339
92340
92341
92343
92347
92353
92357
92358
92359
92364
92373
92378
92379
92382
92383
92389
92400
92401
92411
92421
92424
92430
92434
92438
92449
92458
92461
92469
92474
92475
92488
92492
92509
92510
92513
92514
92521
92535
92537
92539
92542
92562
92568
92570
92574
92582
92583
92594
92597
92598
92599
92606
92613
92618
92620
92624
92625
92633
92655
92663
92677
92681
92689
92691
92692
92693
92697
92702
92704
92714
92717
92725
92726
92730
92739
92746
92753
92755
92760
92762
92763
92770
92772
92773
92776
92781
92782
92784
92795
92799
92803
92809
92810
92836
92842
92849
92856
92874
92875
92876
92878
92881
92883
92887
92890
92895
92897
92907
92908
92910
92914
92923
92926
92938
92944
92958
92963
92964
92967
92968
92971
92972
92976
92977
92980
92985
92989
93001
93003
93009
93014
93015
93024
93048
93050
93058
93063
93077
93078
93081
93089
93097
93099
93101
93102
93124
93132
93134
93135
93141
93148
93150
93151
93160
93163
93171
93181
93187
93188
93195
93196
93210
93214
93216
93224
93233
93253
93255
93256
93263
93269
93273
93280
93281
93284
93286
93294
93296
93309
93317
93319
93327
93330
93331
93335
93336
93341
93348
93349
93367
93378
93385
93386
93388
93391
93393
93396
93409
93417
93429
93441
93450
93452
93454
93456
93459
93464
93474
93482
93486
93492
93493
93496
93499
93505
93507
93516
93539
93540
93543
93554
93555
93559
93563
93568
93569
93574
93576
93578
93596
93603
93604
93606
93610
93614
93618
93621
93627
93636
93649
93651
93652
93658
93666
93671
93675
93676
93680
93681
93686
93688
93693
93694
93698
93699
93710
93711
93720
93721
93723
93725
93731
93740
93742
93753
93768
93772
93780
93781
93782
93797
93800
93815
93817
93822
93825
93827
93832
93837
93838
93839
93848
93849
93869
93870
93872
93874
93875
93877
93879
93882
93888
93891
93897
93905
93911
93922
93924
93931
93939
93943
93949
93953
93954
93969
93971
93977
93978
93980
93981
93996
94001
94002
94004
94008
94021
94022
94024
94026
94029
94036
94037
94041
94042
94044
94052
94053
94055
94056
94066
94079
94080
94088
94092
94098
94104
94105
94110
94113
94119
94121
94126
94133
94134
94139
94147
94155
94157
94169
94171
94173
94175
94177
94178
94182
94184
94210
94219
94221
94231
94237
94246
94248
94254
94256
94262
94278
94289
94303
94309
94334
94340
94346
94348
94350
94356
94374
94399
94404
94407
94408
94421
94422
94425
94428
94429
94433
94438
94447
94452
94454
94458
94465
94470
94474
94483
94485
94490
94493
94500
94501
94508
94514
94519
94520
94527
94530
94534
94540
94555
94559
94562
94580
94589
94595
94596
94602
94606
94614
94617
94624
94630
94631
94635
94649
94650
94659
94665
94666
94667
94675
94676
94680
94685
94688
94689
94694
94699
94704
94714
94716
94718
94721
94724
94734
94738
94742
94746
94755
94756
94757
94759
94761
94763
94766
94773
94791
94792
94797
94799
94800
94801
94803
94805
94807
94809
94810
94814
94816
94819
94823
94833
94836
94838
94839
94840
94844
94845
94846
94847
94849
94851
94855
94857
94864
94866
94870
94886
94888
94895
94899
94903
94906
94909
94911
94919
94921
94924
94926
94927
94928
94935
94945
94949
94954
94955
94966
94969
94972
94973
94991
94994
94996
95000
95004
95012
95033
95035
95040
95045
95046
95047
95052
95068
95075
95080
95085
95086
95092
95106
95110
95120
95142
95143
95153
95156
95157
95158
95163
95201
95202
95204
95207
95229
95232
95235
95237
95239
95244
95245
95247
95248
95252
95254
95256
95259
95267
95271
95272
95276
95277
95282
95283
95284
95304
95305
95309
95310
95313
95319
95320
95327
95337
95339
95344
95351
95363
95364
95366
95377
95385
95387
95393
95412
95414
95417
95429
95436
95440
95442
95444
95455
95462
95469
95471
95474
95475
95478
95479
95481
95492
95496
95498
95500
95533
95542
95544
95549
95550
95555
95559
95564
95570
95591
95593
95596
95597
95598
95599
95611
95615
95618
95620
95621
95638
95639
95646
95647
95653
95661
95677
95686
95688
95700
95703
95705
95725
95726
95730
95735
95739
95746
95752
95756
95758
95760
95761
95775
95778
95780
95790
95793
95795
95798
95802
95812
95832
95835
95837
95841
95845
95848
95849
95851
95859
95862
95864
95868
95877
95885
95886
95887
95890
95893
95895
95896
95897
95903
95907
95924
95928
95931
95936
95937
95938
95947
95955
95958
95973
95976
95985
95992
95999
96008
96011
96014
96021
96030
96032
96037
96046
96052
96058
96060
96066
96067
96081
96095
96099
96100
96105
96113
96119
96121
96125
96132
96133
96135
96136
96145
96152
96160
96163
96164
96170
96177
96178
96189
96193
96195
96198
96199
96204
96211
96220
96228
96234
96236
96251
96256
96263
96278
96281
96284
96291
96294
96295
96297
96318
96322
96326
96332
96334
96338
96341
96349
96353
96354
96364
96366
96373
96375
96385
96387
96392
96400
96401
96427
96428
96431
96433
96437
96444
96448
96452
96453
96460
96462
96470
96472
96474
96482
96483
96489
96492
96499
96506
96507
96516
96530
96532
96536
96540
96543
96544
96547
96548
96561
96562
96563
96566
96581
96591
96598
96600
96611
96617
96618
96619
96620
96622
96634
96636
96639
96647
96660
96662
96667
96678
96684
96686
96687
96694
96696
96697
96699
96701
96703
96707
96709
96710
96712
96721
96725
96736
96743
96747
96749
96760
96765
96781
96787
96789
96791
96795
96808
96809
96818
96824
96829
96830
96836
96845
96846
96848
96855
96867
96869
96871
96872
96879
96884
96886
96893
96896
96898
96899
96907
96919
96920
96923
96932
96935
96939
96943
96946
96959
96960
96974
96977
96984
96986
96995
96998
97004
97006
97007
97008
97013
97032
97040
97044
97049
97053
97054
97060
97070
97078
97090
97092
97099
97103
97109
97116
97119
97128
97132
97134
97135
97139
97140
97142
97154
97178
97179
97181
97186
97197
97198
97199
97200
97209
97211
97212
97216
97217
97221
97223
97226
97229
97236
97238
97242
97245
97246
97247
97248
97249
97251
97253
97254
97258
97260
97262
97273
97275
97277
97301
97306
97311
97315
97316
97320
97321
97322
97325
97326
97337
97343
97349
97359
97361
97367
97377
97379
97380
97394
97396
97404
97405
97408
97410
97421
97428
97434
97437
97439
97444
97451
97460
97465
97476
97480
97483
97491
97503
97504
97505
97508
97509
97521
97538
97546
97547
97548
97554
97561
97568
97576
97580
97584
97586
97591
97592
97596
97598
97609
97612
97613
97616
97619
97631
97632
97633
97638
97639
97642
97645
97646
97649
97651
97658
97668
97675
97680
97687
97693
97695
97710
97718
97726
97729
97730
97732
97733
97735
97739
97740
97743
97744
97748
97757
97761
97769
97774
97777
97783
97785
97786
97793
97800
97806
97808
97811
97813
97816
97817
97818
97821
97825
97827
97830
97831
97832
97836
97840
97849
97854
97858
97859
97862
97864
97872
97881
97889
97904
97906
97915
97918
97926
97931
97934
97943
97946
97948
97954
97955
97958
97979
97987
97989
97993
97994
97998
98005
98010
98011
98012
98013
98017
98018
98019
98024
98031
98034
98035
98048
98051
98066
98069
98073
98085
98091
98094
98095
98098
98100
98102
98103
98104
98108
98109
98110
98111
98120
98121
98122
98126
98129
98136
98148
98162
98165
98179
98180
98182
98186
98195
98197
98210
98212
98225
98226
98229
98232
98243
98247
98250
98255
98261
98262
98281
98284
98290
98293
98295
98303
98308
98311
98315
98317
98320
98332
98333
98341
98342
98349
98350
98354
98367
98370
98378
98381
98384
98389
98395
98401
98402
98415
98417
98418
98424
98426
98438
98441
98443
98454
98455
98468
98473
98478
98482
98483
98500
98506
98519
98520
98531
98543
98545
98546
98551
98555
98557
98559
98561
98568
98578
98580
98582
98584
98591
98596
98597
98600
98617
98618
98620
98631
98638
98642
98648
98652
98654
98664
98665
98668
98686
98690
98703
98705
98711
98713
98716
98718
98725
98739
98744
98751
98754
98755
98758
98761
98771
98773
98782
98786
98787
98788
98794
98796
98797
98800
98802
98803
98809
98816
98822
98823
98825
98830
98835
98836
98837
98842
98843
98845
98849
98850
98856
98857
98859
98862
98869
98872
98880
98883
98885
98888
98893
98897
98899
98902
98904
98908
98909
98912
98913
98925
98928
98929
98931
98934
98939
98949
98958
98961
98964
98965
98970
98973
98974
98975
98983
98988
98992
98993
98996
99000
99002
99014
99016
99017
99019
99021
99029
99032
99037
99045
99050
99052
99057
99063
99066
99069
99070
99082
99084
99090
99109
99112
99113
99118
99121
99126
99141
99145
99168
99184
99186
99191
99196
99199
99202
99204
99208
99221
99226
99228
99230
99233
99234
99240
99246
99256
99257
99268
99277
99278
99280
99291
99300
99306
99308
99310
99326
99328
99329
99330
99331
99332
99336
99337
99339
99341
99345
99348
99349
99363
99364
99374
99377
99379
99382
99385
99390
99401
99402
99414
99416
99421
99425
99433
99436
99438
99449
99450
99454
99458
99464
99468
99469
99471
99479
99485
99494
99498
99504
99512
99513
99534
99549
99555
99562
99570
99572
99574
99575
99578
99581
99584
99585
99594
99595
99606
99611
99614
99617
99619
99622
99623
99633
99640
99641
99644
99647
99651
99654
99655
99657
99662
99664
99665
99669
99673
99680
99681
99682
99684
99689
99690
99694
99707
99712
99713
99714
99723
99727
99732
99737
99744
99747
99754
99755
99762
99765
99773
99784
99788
99790
99791
99798
99806
99819
99828
99829
99842
99846
99851
99855
99860
99863
99869
99878
99883
99884
99895
99897
99900
99911
99917
99918
99919
99926
99931
99932
99936
99937
99938
99942
99945
99952
99953
99960
99965
99972
99974
99978
99979
99985
99986
99987
99989
99990
99993
99996
99997
100003
100004
100005
100008
100012
100020
100024
100026
100028
100029
100035
100038
100039
100043
100047
100052
100055
100065
100078
100081
100089
100095
100105
100116
100124
100134
100135
100139
100140
100141
100144
100151
100158
100165
100168
100174
100180
100188
100192
100193
100197
100199
100202
100208
100219
100223
100236
100241
100245
100246
100247
100250
100252
100255
100256
100258
100264
100266
100269
100270
100275
100280
100281
100288
100289
100291
100292
100293
100300
100301
100302
100304
100315
100321
100328
100330
100343
100345
100346
100348
100353
100362
100363
100383
100387
100389
100393
100395
100405
100410
100412
100413
100418
100419
100421
100426
100444
100449
100458
100462
100471
100472
100480
100484
100485
100487
100493
100505
100524
100529
100531
100539
100545
100551
100552
100554
100558
100566
100571
100587
100588
100589
100590
100592
100596
100597
100599
100615
100619
100622
100634
100642
100645
100646
100648
100649
100652
100657
100660
100670
100671
100673
100676
100680
100681
100685
100686
100689
100700
100702
100706
100708
100709
100713
100715
100722
100728
100735
100739
100742
100748
100754
100757
100759
100769
100773
100774
100779
100781
100786
100787
100789
100815
100819
100827
100837
100844
100845
100850
100853
100858
100860
100864
100868
100872
100874
100879
100888
100893
100897
100899
100915
100930
100933
100938
100940
100941
100943
100950
100972
100973
100976
100987
100988
100996
100998
101006
101008
101012
101014
101020
101021
101025
101033
101046
101050
101058
101063
101064
101067
101073
101076
101080
101083
101093
101097
101103
101113
101127
101140
101141
101144
101153
101154
101155
101157
101159
101162
101165
101170
101171
101179
101186
101201
101208
101212
101217
101218
101219
101231
101240
101248
101250
101260
101262
101270
101279
101283
101287
101290
101296
101301
101324
101333
101335
101343
101344
101345
101348
101356
101360
101371
101373
101377
101380
101384
101388
101401
101402
101407
101412
101416
101418
101419
101423
101424
101437
101440
101446
101454
101456
101475
101476
101477
101481
101482
101494
101498
101500
101504
101511
101521
101526
101529
101536
101538
101546
101554
101555
101556
101558
101561
101567
101568
101570
101577
101578
101580
101587
101588
101589
101595
101600
101603
101611
101612
101615
101632
101633
101637
101645
101652
101659
101662
101668
101672
101674
101680
101682
101684
101685
101686
101691
101693
101694
101699
101717
101718
101720
101728
101735
101736
101737
101740
101741
101742
101744
101747
101750
101758
101765
101770
101776
101779
101780
101781
101783
101790
101791
101801
101806
101811
101815
101820
101821
101822
101827
101830
101833
101835
101842
101843
101844
101845
101852
101855
101860
101861
101864
101866
101868
101869
101879
101880
101881
101883
101900
101913
101915
101920
101923
101930
101933
101934
101936
101939
101944
101955
101956
101972
101975
101978
101980
101984
101988
101990
101991
101994
101995
101997
102001
102006
102010
102015
102017
102022
102026
102029
102037
102042
102046
102049
102050
102062
102063
102066
102079
102086
102095
102099
102101
102105
102114
102120
102121
102122
102125
102134
102137
102139
102153
102161
102163
102164
102176
102177
102183
102190
102192
102195
102196
102200
102204
102214
102218
102219
102220
102222
102223
102231
102232
102234
102252
102254
102258
102263
102265
102273
102276
102281
102284
102300
102315
102325
102333
102335
102341
102342
102344
102345
102346
102347
102348
102355
102362
102366
102371
102390
102392
102393
102395
102398
102399
102402
102404
102412
102415
102417
102420
102422
102423
102427
102429
102433
102436
102439
102443
102444
102445
102449
102456
102457
102458
102462
102468
102474
102477
102478
102488
102491
102493
102494
102496
102498
102505
102514
102519
102521
102525
102530
102533
102538
102541
102547
102555
102560
102566
102574
102580
102584
102593
102597
102599
102607
102609
102630
102632
102633
102655
102657
102662
102663
102665
102675
102689
102690
102692
102695
102697
102704
102705
102710
102723
102729
102733
102736
102737
102738
102749
102750
102756
102763
102780
102787
102797
102802
102805
102809
102814
102815
102821
102826
102827
102835
102836
102839
102841
102847
102865
102868
102871
102890
102891
102903
102905
102913
102914
102925
102926
102933
102936
102944
102967
102970
102975
102976
102977
102982
102991
102992
102993
102995
102996
103001
103005
103008
103009
103010
103011
103016
103019
103029
103032
103037
103040
103043
103044
103060
103068
103070
103075
103086
103087
103089
103092
103093
103100
103105
103108
103113
103116
103119
103123
103125
103126
103127
103146
103149
103152
103154
103155
103164
103165
103167
103184
103185
103186
103191
103193
103194
103210
103217
103225
103231
103233
103234
103243
103245
103259
103260
103266
103270
103285
103290
103297
103302
103306
103314
103324
103325
103329
103333
103336
103337
103347
103355
103367
103368
103369
103375
103376
103378
103382
103386
103389
103394
103395
103396
103415
103420
103423
103424
103427
103432
103435
103442
103443
103449
103455
103459
103467
103470
103473
103481
103489
103490
103495
103497
103516
103518
103522
103529
103536
103539
103546
103551
103563
103569
103571
103576
103578
103581
103584
103590
103592
103596
103610
103615
103617
103626
103628
103630
103640
103650
103654
103658
103659
103665
103666
103668
103669
103670
103677
103683
103684
103687
103693
103699
103701
103703
103707
103712
103715
103728
103743
103747
103752
103754
103758
103759
103763
103775
103782
103789
103795
103805
103806
103807
103809
103816
103821
103823
103830
103831
103852
103856
103865
103868
103871
103873
103889
103897
103898
103899
103900
103902
103903
103905
103908
103911
103912
103920
103922
103928
103935
103937
103943
103952
103956
103960
103966
103974
103978
103980
103985
103993
103994
104007
104009
104014
104023
104028
104034
104041
104043
104044
104045
104052
104056
104062
104065
104069
104071
104074
104083
104088
104089
104090
104092
104094
104096
104098
104105
104111
104118
104127
104139
104144
104152
104162
104164
104179
104190
104193
104197
104199
104200
104203
104207
104210
104212
104216
104217
104223
104237
104241
104245
104252
104254
104258
104272
104276
104284
104285
104288
104296
104298
104299
104301
104302
104306
104313
104315
104316
104325
104326
104331
104332
104342
104343
104356
104361
104366
104367
104369
104371
104373
104374
104375
104380
104386
104389
104392
104394
104395
104396
104397
104410
104413
104417
104424
104427
104430
104437
104438
104440
104444
104445
104455
104456
104462
104464
104471
104488
104489
104500
104501
104508
104509
104511
104514
104521
104524
104528
104532
104549
104550
104558
104564
104565
104568
104571
104573
104577
104579
104593
104595
104614
104621
104622
104625
104630
104631
104634
104642
104645
104653
104654
104657
104658
104661
104668
104672
104673
104682
104684
104685
104688
104691
104700
104701
104705
104708
104709
104757
104762
104766
104770
104773
104781
104786
104787
104794
104796
104804
104806
104809
104818
104825
104827
104830
104842
104850
104859
104863
104871
104873
104874
104879
104885
104891
104900
104904
104907
104910
104911
104913
104917
104918
104919
104921
104923
104925
104937
104938
104939
104942
104947
104958
104963
104965
104974
104975
104976
104977
104978
104983
105002
105004
105010
105012
105013
105016
105017
105018
105019
105021
105026
105031
105035
105042
105043
105051
105054
105058
105061
105062
105063
105065
105068
105070
105071
105076
105080
105085
105086
105090
105091
105097
105100
105103
105104
105105
105128
105130
105133
105144
105147
105150
105155
105159
105162
105181
105191
105192
105193
105194
105195
105196
105201
105203
105205
105207
105208
105212
105218
105221
105229
105231
105235
105237
105240
105241
105243
105247
105250
105255
105256
105258
105265
105267
105271
105281
105284
105290
105291
105298
105304
105308
105309
105310
105324
105326
105327
105328
105330
105331
105346
105349
105353
105369
105371
105372
105382
105384
105389
105396
105398
105399
105410
105411
105416
105418
105426
105432
105439
105440
105442
105451
105454
105460
105465
105485
105486
105492
105497
105500
105502
105510
105512
105514
105515
105522
105525
105533
105537
105544
105548
105552
105554
105561
105563
105564
105579
105586
105594
105598
105604
105606
105617
105622
105627
105628
105635
105637
105639
105641
105644
105675
105689
105695
105701
105704
105707
105710
105714
105716
105717
105721
105723
105724
105726
105740
105744
105746
105747
105752
105753
105759
105783
105785
105789
105802
105814
105815
105818
105827
105830
105831
105846
105847
105856
105863
105879
105883
105889
105894
105897
105904
105907
105909
105912
105927
105931
105936
105940
105945
105952
105957
105958
105960
105961
105963
105968
105970
105978
105979
105980
105981
105989
105990
106008
106011
106016
106017
106020
106022
106023
106027
106030
106034
106036
106038
106042
106045
106050
106051
106052
106053
106061
106063
106064
106067
106073
106090
106092
106106
106108
106115
106121
106125
106130
106133
106134
106136
106142
106146
106151
106164
106166
106175
106176
106180
106186
106190
106192
106194
106195
106203
106208
106216
106217
106220
106226
106227
106235
106241
106243
106251
106254
106262
106270
106277
106286
106287
106288
106291
106296
106301
106303
106308
106309
106311
106332
106333
106340
106343
106348
106349
106360
106365
106367
106375
106376
106382
106389
106394
106395
106402
106410
106426
106427
106437
106439
106442
106446
106447
106450
106451
106454
106456
106457
106461
106462
106468
106481
106485
106488
106491
106496
106498
106500
106505
106506
106517
106521
106522
106529
106530
106531
106533
106535
106539
106542
106545
106564
106565
106566
106569
106570
106573
106580
106581
106582
106590
106592
106595
106597
106600
106613
106615
106619
106622
106623
106626
106631
106634
106635
106639
106657
106658
106659
106660
106668
106672
106691
106693
106694
106708
106712
106724
106727
106729
106733
106734
106736
106737
106740
106743
106744
106746
106749
106757
106762
106763
106765
106766
106767
106770
106780
106792
106796
106797
106809
106812
106816
106822
106826
106827
106828
106838
106840
106843
106844
106849
106854
106858
106860
106861
106864
106867
106870
106881
106882
106889
106899
106907
106908
106909
106925
106931
106937
106940
106952
106954
106956
106961
106966
106974
106977
106985
106990
107000
107002
107005
107009
107021
107022
107031
107032
107044
107046
107049
107053
107056
107057
107059
107066
107083
107086
107089
107090
107092
107093
107094
107098
107107
107108
107109
107110
107113
107114
107117
107124
107129
107136
107155
107156
107157
107160
107161
107162
107164
107174
107176
107179
107182
107184
107204
107206
107210
107218
107225
107227
107252
107253
107254
107260
107263
107267
107270
107271
107272
107274
107282
107287
107290
107297
107330
107337
107338
107349
107368
107371
107372
107373
107381
107395
107408
107413
107415
107417
107427
107428
107429
107432
107435
107442
107447
107455
107457
107459
107463
107473
107476
107478
107481
107488
107504
107508
107518
107527
107530
107534
107536
107546
107547
107556
107560
107561
107562
107573
107575
107576
107577
107580
107599
107613
107614
107615
107617
107621
107627
107638
107652
107667
107670
107671
107673
107680
107682
107683
107686
107687
107690
107691
107695
107697
107698
107704
107711
107712
107714
107720
107724
107728
107731
107747
107756
107760
107766
107767
107769
107771
107774
107776
107790
107791
107792
107796
107801
107806
107807
107812
107814
107815
107817
107829
107833
107870
107878
107882
107883
107894
107897
107900
107903
107904
107910
107913
107918
107922
107923
107927
107928
107930
107934
107940
107949
107953
107964
107966
107976
107984
107987
108001
108004
108006
108011
108015
108016
108017
108034
108036
108041
108047
108056
108058
108073
108077
108080
108088
108092
108093
108097
108106
108111
108114
108118
108122
108148
108153
108155
108158
108159
108171
108172
108173
108174
108180
108184
108195
108198
108206
108208
108212
108217
108219
108232
108237
108240
108248
108251
108254
108255
108258
108270
108277
108280
108282
108293
108298
108308
108309
108316
108319
108320
108325
108330
108332
108335
108337
108338
108342
108344
108347
108358
108369
108371
108372
108375
108381
108386
108390
108398
108403
108406
108411
108412
108418
108419
108425
108427
108429
108433
108448
108451
108460
108464
108466
108469
108477
108478
108481
108482
108489
108491
108493
108506
108509
108513
108515
108523
108524
108528
108532
108538
108539
108541
108546
108549
108552
108555
108557
108571
108575
108578
108586
108602
108609
108611
108612
108625
108637
108643
108644
108650
108651
108657
108662
108665
108673
108678
108688
108689
108693
108712
108713
108715
108717
108738
108755
108757
108759
108761
108762
108770
108773
108774
108777
108792
108795
108803
108809
108810
108823
108830
108838
108842
108861
108862
108863
108864
108877
108886
108889
108892
108901
108903
108904
108909
108917
108918
108921
108923
108924
108929
108932
108938
108940
108942
108949
108951
108952
108955
108956
108962
108968
108969
108973
108976
108981
108986
108992
108999
109004
109011
109014
109022
109033
109038
109039
109040
109043
109045
109047
109049
109050
109054
109059
109061
109073
109077
109097
109103
109110
109114
109117
109119
109126
109131
109133
109137
109142
109144
109151
109154
109161
109180
109181
109185
109188
109190
109192
109193
109197
109200
109202
109205
109214
109219
109232
109249
109254
109255
109257
109269
109270
109272
109277
109286
109290
109293
109299
109301
109302
109307
109312
109314
109329
109337
109346
109350
109355
109361
109374
109375
109378
109381
109391
109397
109401
109404
109419
109439
109440
109441
109446
109447
109451
109463
109464
109465
109468
109470
109492
109493
109494
109495
109498
109504
109507
109516
109534
109538
109542
109543
109544
109546
109547
109550
109557
109568
109572
109581
109595
109597
109599
109601
109602
109607
109611
109614
109617
109623
109631
109634
109638
109640
109642
109646
109655
109656
109662
109665
109667
109670
109673
109674
109678
109683
109684
109700
109709
109716
109719
109721
109724
109731
109739
109740
109741
109749
109750
109752
109754
109758
109768
109775
109778
109780
109782
109787
109792
109794
109799
109808
109824
109825
109828
109832
109835
109838
109839
109840
109843
109849
109853
109855
109859
109860
109862
109864
109865
109871
109872
109876
109894
109897
109899
109901
109902
109907
109910
109914
109918
109930
109935
109954
109965
109973
109974
109988
109990
109994
110007
110009
110017
110018
110019
110021
110027
110028
110041
110043
110045
110046
110047
110052
110054
110056
110065
110066
110069
110072
110076
110093
110097
110100
110104
110107
110115
110116
110134
110138
110145
110146
110152
110159
110164
110165
110175
110183
110193
110195
110199
110207
110217
110222
110224
110229
110233
110260
110265
110268
110275
110277
110279
110289
110290
110293
110300
110312
110318
110324
110326
110327
110328
110341
110352
110355
110356
110357
110358
110364
110366
110368
110377
110380
110382
110386
110387
110388
110389
110399
110407
110421
110424
110427
110428
110431
110435
110437
110441
110448
110450
110464
110468
110469
110471
110473
110483
110493
110499
110510
110517
110519
110528
110539
110540
110541
110546
110548
110551
110555
110556
110558
110559
110560
110561
110569
110576
110578
110580
110583
110586
110593
110598
110603
110604
110607
110608
110611
110615
110620
110622
110625
110628
110629
110630
110631
110640
110646
110656
110657
110666
110673
110674
110682
110687
110689
110691
110693
110704
110707
110711
110716
110718
110720
110723
110726
110728
110731
110739
110744
110745
110748
110751
110753
110763
110765
110772
110778
110779
110785
110799
110807
110808
110814
110820
110837
110845
110847
110850
110852
110853
110857
110866
110868
110869
110870
110872
110876
110882
110884
110888
110897
110900
110901
110905
110911
110913
110919
110920
110923
110928
110930
110933
110936
110946
110949
110951
110953
110954
110956
110960
110963
110985
110993
110997
110998
111003
111011
111017
111023
111028
111031
111033
111034
111037
111038
111041
111047
111049
111059
111062
111069
111070
111080
111083
111084
111091
111098
111101
111102
111105
111109
111112
111117
111118
111121
111134
111139
111144
111152
111153
111159
111166
111169
111172
111173
111181
111182
111183
111185
111196
111203
111206
111207
111213
111217
111221
111223
111225
111227
111230
111231
111254
111257
111273
111276
111280
111283
111286
111304
111316
111319
111331
111333
111334
111346
111351
111360
111363
111366
111367
111371
111373
111375
111381
111388
111391
111405
111406
111407
111408
111417
111424
111433
111441
111447
111449
111450
111451
111455
111463
111470
111475
111478
111485
111489
111495
111501
111505
111516
111517
111521
111530
111533
111534
111539
111541
111543
111558
111560
111564
111568
111571
111579
111583
111590
111592
111593
111594
111595
111597
111599
111600
111620
111621
111633
111636
111645
111647
111649
111652
111654
111661
111672
111677
111678
111684
111692
111693
111695
111700
111703
111713
111716
111725
111728
111736
111737
111738
111744
111745
111752
111757
111762
111765
111768
111770
111774
111776
111791
111795
111796
111797
111805
111808
111810
111821
111827
111828
111837
111838
111847
111854
111865
111867
111870
111871
111872
111873
111874
111888
111891
111900
111901
111912
111914
111931
111949
111954
111955
111960
111961
111963
111964
111965
111967
111970
111971
111972
111974
111986
111988
111992
112000
112007
112020
112022
112024
112030
112039
112041
112054
112060
112065
112066
112069
112071
112079
112081
112085
112087
112094
112103
112110
112115
112119
112120
112124
112126
112127
112133
112136
112138
112141
112145
112148
112153
112160
112166
112168
112173
112175
112177
112187
112189
112199
112200
112204
112225
112226
112228
112236
112237
112241
112245
112249
112267
112278
112287
112293
112296
112297
112298
112302
112303
112304
112305
112311
112312
112321
112328
112330
112334
112336
112337
112339
112346
112351
112357
112358
112362
112367
112373
112378
112381
112382
112395
112405
112413
112415
112417
112434
112438
112442
112447
112448
112449
112459
112466
112468
112476
112483
112486
112489
112495
112499
112501
112502
112503
112510
112513
112520
112521
112522
112529
112531
112534
112540
112541
112544
112553
112554
112560
112561
112564
112567
112576
112578
112586
112590
112599
112601
112604
112628
112634
112639
112643
112648
112649
112657
112664
112666
112667
112670
112679
112684
112687
112689
112690
112692
112694
112699
112702
112711
112714
112715
112720
112721
112724
112727
112734
112738
112739
112740
112743
112744
112746
112749
112750
112771
112774
112785
112797
112802
112806
112816
112822
112828
112832
112836
112839
112841
112862
112872
112874
112876
112881
112882
112883
112884
112885
112893
112900
112901
112910
112912
112928
112932
112937
112939
112944
112954
112958
112959
112965
112970
112971
112978
112994
112997
113005
113006
113007
113010
113012
113022
113025
113042
113045
113046
113048
113050
113056
113062
113064
113066
113068
113073
113077
113086
113092
113094
113101
113105
113108
113111
113113
113114
113119
113123
113144
113146
113158
113165
113170
113171
113177
113184
113189
113190
113193
113199
113204
113206
113212
113213
113222
113229
113231
113232
113236
113243
113244
113246
113247
113250
113253
113259
113266
113281
113287
113290
113297
113298
113302
113303
113309
113313
113315
113321
113331
113338
113340
113350
113351
113352
113362
113371
113373
113374
113376
113378
113389
113397
113401
113408
113409
113416
113421
113426
113440
113451
113453
113458
113462
113465
113468
113469
113470
113471
113473
113484
113489
113494
113495
113500
113510
113514
113538
113543
113547
113549
113568
113576
113584
113585
113598
113607
113608
113615
113621
113622
113626
113628
113631
113645
113656
113672
113675
113680
113682
113692
113694
113696
113698
113700
113709
113717
113719
113723
113725
113727
113728
113732
113737
113738
113745
113746
113760
113762
113763
113764
113784
113787
113789
113790
113798
113804
113808
113809
113812
113816
113818
113823
113834
113835
113838
113844
113849
113850
113854
113856
113868
113870
113879
113897
113899
113902
113913
113917
113918
113926
113932
113934
113936
113942
113946
113947
113951
113961
113962
113964
113971
113974
113975
113978
113993
113997
114003
114004
114008
114016
114017
114023
114024
114026
114027
114028
114034
114054
114057
114060
114063
114067
114069
114071
114073
114074
114082
114083
114086
114091
114094
114100
114104
114120
114122
114125
114129
114131
114134
114135
114137
114138
114141
114143
114148
114149
114158
114160
114161
114165
114173
114183
114185
114196
114203
114209
114211
114213
114227
114235
114239
114243
114246
114247
114249
114250
114251
114254
114259
114262
114264
114266
114267
114270
114271
114275
114276
114281
114292
114309
114311
114312
114325
114327
114329
114331
114333
114337
114341
114343
114344
114352
114355
114357
114371
114372
114382
114389
114398
114404
114405
114407
114416
114420
114427
114430
114432
114433
114438
114448
114465
114467
114473
114481
114486
114487
114500
114501
114506
114518
114522
114528
114529
114538
114540
114542
114544
114547
114561
114569
114576
114579
114580
114584
114602
114604
114611
114620
114626
114643
114649
114650
114651
114662
114666
114667
114675
114680
114681
114684
114686
114688
114691
114697
114698
114700
114714
114722
114723
114726
114731
114733
114734
114735
114741
114744
114745
114746
114750
114752
114755
114758
114767
114773
114779
114785
114795
114800
114804
114806
114814
114829
114834
114835
114844
114845
114847
114848
114849
114851
114852
114859
114861
114862
114864
114867
114876
114887
114890
114891
114903
114905
114913
114916
114920
114923
114928
114938
114955
114957
114960
114962
114964
114969
114972
114985
114992
114995
114997
115007
115025
115027
115040
115047
115049
115053
115056
115059
115068
115070
115071
115073
115074
115075
115083
115085
115088
115089
115099
115109
115115
115121
115128
115130
115131
115138
115142
115153
115155
115158
115167
115172
115174
115189
115191
115205
115206
115210
115221
115226
115232
115238
115239
115242
115249
115255
115261
115273
115274
115275
115276
115281
115292
115307
115309
115316
115319
115333
115335
115336
115337
115340
115341
115348
115351
115353
115354
115355
115364
115369
115370
115380
115383
115391
115401
115407
115416
115423
115424
115425
115426
115434
115436
115450
115452
115458
115464
115466
115474
115482
115485
115492
115494
115497
115499
115500
115505
115513
115515
115523
115526
115528
115530
115534
115555
115556
115557
115559
115560
115566
115576
115588
115592
115598
115599
115610
115615
115622
115629
115633
115635
115662
115679
115680
115694
115701
115703
115704
115705
115710
115711
115741
115744
115747
115753
115757
115767
115770
115775
115785
115793
115796
115811
115814
115824
115825
115831
115834
115837
115840
115841
115846
115849
115851
115854
115855
115864
115867
115873
115878
115879
115882
115886
115887
115888
115895
115905
115907
115909
115916
115917
115920
115922
115927
115931
115935
115936
115937
115938
115946
115956
115958
115959
115962
115966
115968
115973
115994
115999
116002
116003
116005
116008
116013
116015
116017
116019
116021
116029
116030
116033
116035
116038
116049
116055
116056
116069
116072
116076
116080
116082
116090
116092
116096
116103
116107
116114
116116
116117
116119
116124
116128
116130
116132
116146
116154
116155
116158
116159
116164
116171
116178
116181
116206
116212
116226
116228
116229
116230
116234
116235
116237
116242
116246
116248
116256
116271
116277
116287
116295
116297
116299
116301
116307
116320
116329
116332
116337
116341
116342
116343
116345
116353
116355
116363
116367
116373
116375
116376
116377
116379
116380
116383
116385
116388
116397
116402
116405
116409
116410
116415
116419
116424
116426
116428
116431
116433
116441
116444
116446
116449
116452
116472
116474
116477
116478
116479
116480
116492
116498
116504
116509
116511
116515
116517
116522
116524
116527
116538
116543
116546
116547
116555
116557
116566
116568
116573
116574
116577
116584
116594
116605
116607
116608
116613
116627
116628
116629
116632
116633
116636
116638
116656
116667
116668
116669
116671
116673
116674
116681
116683
116684
116685
116691
116693
116698
116699
116700
116702
116710
116721
116723
116724
116731
116737
116738
116739
116747
116756
116767
116770
116774
116780
116789
116796
116800
116805
116815
116824
116828
116829
116838
116845
116855
116857
116858
116866
116873
116874
116885
116893
116894
116898
116901
116909
116911
116918
116919
116930
116934
116936
116940
116942
116943
116946
116949
116954
116957
116959
116965
116974
116983
116986
116987
116991
117004
117007
117022
117023
117031
117035
117041
117044
117047
117050
117059
117072
117077
117080
117081
117082
117087
117095
117098
117105
117109
117112
117118
117120
117129
117131
117132
117135
117140
117160
117183
117187
117196
117197
117198
117200
117212
117220
117223
117232
117235
117236
117239
117252
117254
117259
117261
117264
117265
117277
117285
117290
117291
117296
117304
117306
117309
117321
117330
117345
117347
117372
117377
117389
117392
117393
117394
117403
117405
117415
117423
117437
117446
117448
117466
117476
117483
117486
117491
117492
117497
117502
117507
117511
117512
117525
117534
117538
117551
117552
117559
117563
117566
117569
117571
117581
117585
117589
117592
117598
117601
117604
117606
117607
117611
117618
117622
117633
117641
117649
117654
117655
117656
117659
117661
117665
117666
117675
117677
117678
117679
117681
117683
117684
117694
117698
117703
117704
117709
117713
117715
117718
117720
117722
117736
117747
117752
117755
117757
117758
117768
117773
117775
117783
117786
117788
117792
117800
117803
117807
117808
117811
117818
117822
117825
117829
117832
117835
117836
117837
117841
117842
117851
117853
117858
117863
117864
117870
117871
117878
117879
117888
117894
117898
117900
117903
117906
117907
117908
117919
117922
117925
117926
117930
117931
117944
117946
117949
117951
117955
117957
117958
117976
117980
117983
117988
117995
118001
118002
118019
118025
118030
118035
118040
118046
118052
118057
118059
118063
118074
118077
118079
118080
118093
118096
118097
118099
118101
118109
118111
118116
118127
118129
118134
118138
118155
118161
118164
118166
118171
118175
118190
118192
118195
118197
118198
118206
118210
118211
118220
118227
118244
118253
118259
118260
118265
118266
118267
118276
118279
118284
118287
118302
118303
118306
118318
118321
118323
118324
118336
118337
118342
118350
118351
118353
118354
118355
118357
118359
118366
118367
118372
118386
118397
118400
118409
118417
118420
118421
118428
118435
118450
118453
118460
118462
118463
118464
118466
118467
118469
118483
118486
118490
118500
118503
118510
118516
118518
118521
118535
118541
118553
118559
118570
118572
118578
118580
118582
118586
118587
118594
118596
118599
118602
118604
118606
118622
118628
118636
118637
118643
118644
118646
118650
118652
118655
118657
118677
118687
118690
118694
118700
118701
118704
118710
118727
118729
118741
118742
118744
118752
118754
118763
118765
118766
118767
118777
118779
118785
118787
118789
118801
118803
118811
118812
118819
118825
118826
118838
118848
118858
118859
118864
118865
118867
118872
118874
118882
118885
118887
118889
118890
118891
118893
118894
118896
118901
118909
118912
118913
118919
118920
118922
118928
118929
118936
118938
118940
118943
118944
118946
118949
118950
118951
118956
118959
118965
118973
118976
118978
118988
118994
119002
119010
119019
119021
119022
119025
119027
119031
119033
119034
119041
119045
119048
119050
119065
119069
119070
119071
119081
119091
119092
119094
119103
119104
119109
119110
119116
119119
119122
119124
119125
119126
119127
119132
119133
119136
119139
119158
119165
119178
119179
119182
119187
119188
119192
119193
119194
119195
119196
119201
119208
119212
119219
119225
119228
119229
119233
119237
119242
119260
119263
119269
119271
119272
119273
119274
119275
119277
119279
119281
119282
119287
119327
119329
119332
119339
119343
119361
119362
119364
119365
119373
119383
119384
119388
119391
119398
119405
119428
119435
119440
119450
119455
119462
119481
119490
119502
119506
119509
119515
119518
119522
119536
119537
119540
119544
119545
119550
119554
119555
119559
119562
119565
119586
119590
119591
119592
119594
119604
119605
119610
119613
119614
119618
119620
119632
119652
119654
119655
119658
119666
119673
119678
119680
119686
119699
119701
119703
119704
119714
119715
119727
119733
119734
119743
119746
119756
119770
119772
119773
119778
119780
119782
119785
119787
119795
119796
119808
119809
119811
119820
119821
119824
119829
119835
119843
119847
119851
119858
119860
119861
119874
119884
119892
119896
119901
119913
119932
119935
119939
119941
119942
119944
119949
119950
119968
119974
119977
119986
119989
119993
119997
119998
120001
120006
120010
120015
120016
120023
120025
120028
120031
120033
120035
120037
120038
120041
120058
120061
120063
120064
120070
120072
120073
120083
120084
120088
120100
120102
120103
120104
120114
120115
120125
120126
120135
120136
120149
120153
120159
120162
120171
120179
120180
120182
120186
120194
120200
120202
120213
120215
120217
120219
120228
120230
120233
120234
120240
120248
120250
120257
120258
120259
120262
120264
120265
120277
120281
120284
120285
120288
120296
120299
120301
120312
120323
120329
120344
120348
120353
120354
120357
120374
120383
120384
120386
120388
120398
120408
120417
120420
120422
120423
120426
120435
120445
120450
120452
120456
120473
120476
120481
120483
120487
120491
120496
120498
120500
120502
120506
120507
120517
120521
120525
120530
120533
120541
120542
120543
120557
120568
120587
120588
120589
120592
120604
120611
120616
120628
120629
120630
120635
120639
120642
120644
120647
120648
120649
120651
120657
120658
120662
120665
120676
120677
120679
120683
120686
120688
120715
120718
120719
120735
120738
120740
120744
120748
120750
120755
120757
120766
120767
120768
120772
120773
120774
120775
120780
120781
120786
120788
120796
120797
120803
120805
120808
120810
120821
120822
120824
120830
120831
120836
120841
120844
120847
120854
120856
120858
120859
120871
120873
120876
120887
120888
120895
120901
120904
120911
120912
120917
120922
120923
120929
120936
120939
120941
120945
120951
120953
120954
120965
120966
120971
120973
120974
120976
120992
120994
121011
121016
121020
121026
121031
121035
121038
121043
121050
121064
121065
121073
121085
121095
121096
121101
121104
121115
121116
121117
121119
121121
121124
121126
121141
121142
121149
121154
121166
121170
121178
121183
121184
121198
121200
121207
121208
121209
121216
121221
121225
121226
121233
121238
121243
121251
121255
121259
121261
121265
121275
121286
121288
121291
121292
121293
121297
121300
121309
121310
121311
121312
121320
121322
121332
121340
121341
121348
121373
121374
121376
121379
121380
121387
121389
121393
121400
121402
121419
121421
121426
121432
121437
121444
121451
121454
121455
121463
121466
121468
121470
121471
121484
121491
121492
121495
121498
121499
121504
121508
121510
121515
121524
121525
121528
121529
121532
121536
121540
121543
121549
121551
121552
121555
121569
121572
121577
121582
121585
121588
121594
121603
121612
121614
121615
121616
121620
121622
121625
121632
121633
121637
121638
121640
121644
121676
121689
121691
121692
121699
121701
121703
121704
121705
121707
121712
121715
121725
121729
121737
121740
121748
121750
121767
121778
121779
121798
121803
121804
121805
121806
121807
121812
121818
121820
121827
121832
121834
121841
121848
121850
121856
121858
121862
121863
121866
121876
121880
121881
121882
121886
121889
121893
121900
121905
121912
121920
121921
121950
121961
121963
121972
121974
121984
121989
121995
122000
122021
122033
122037
122054
122058
122059
122075
122078
122079
122080
122084
122088
122100
122110
122115
122121
122127
122133
122135
122139
122146
122151
122160
122163
122164
122173
122178
122187
122195
122212
122214
122224
122225
122242
122245
122247
122250
122266
122267
122274
122277
122281
122282
122296
122299
122301
122303
122304
122305
122306
122312
122321
122325
122328
122331
122342
122358
122369
122372
122379
122385
122388
122396
122402
122409
122427
122432
122440
122442
122444
122451
122456
122471
122479
122485
122491
122492
122498
122499
122503
122508
122510
122514
122515
122520
122523
122526
122527
122529
122536
122541
122548
122549
122562
122565
122570
122576
122581
122601
122604
122612
122614
122616
122659
122669
122673
122678
122684
122686
122688
122691
122696
122698
122705
122708
122709
122710
122714
122716
122722
122740
122754
122755
122761
122763
122768
122770
122782
122784
122786
122790
122794
122797
122800
122805
122811
122817
122823
122831
122835
122852
122857
122865
122866
122868
122870
122872
122873
122876
122877
122883
122885
122895
122898
122911
122912
122914
122924
122926
122934
122940
122949
122963
122967
122974
122982
122987
122997
123000
123004
123006
123008
123013
123014
123017
123018
123021
123031
123049
123059
123073
123074
123082
123084
123087
123094
123095
123096
123116
123122
123129
123132
123135
123142
123146
123147
123158
123159
123160
123162
123163
123171
123173
123174
123179
123184
123195
123197
123199
123202
123208
123210
123213
123219
123227
123233
123235
123237
123239
123243
123246
123250
123256
123261
123262
123268
123272
123275
123276
123284
123288
123290
123292
123308
123309
123312
123321
123324
123330
123333
123337
123338
123339
123340
123348
123350
123361
123374
123378
123382
123387
123388
123390
123394
123398
123400
123404
123412
123414
123417
123419
123421
123424
123437
123440
123443
123451
123452
123454
123455
123464
123467
123469
123470
123471
123473
123480
123485
123493
123498
123513
123518
123519
123521
123524
123526
123527
123534
123543
123547
123560
123562
123564
123569
123570
123574
123578
123594
123598
123607
123608
123610
123628
123631
123634
123643
123645
123646
123649
123650
123654
123656
123667
123670
123690
123693
123699
123705
123706
123709
123715
123718
123725
123727
123730
123733
123747
123750
123759
123760
123773
123776
123779
123781
123788
123789
123796
123803
123807
123810
123812
123813
123817
123818
123835
123837
123841
123850
123851
123852
123856
123857
123873
123875
123880
123892
123893
123899
123904
123905
123907
123923
123931
123940
123945
123948
123964
123972
123987
123988
123990
123991
124001
124006
124028
124029
124036
124039
124040
124042
124053
124054
124055
124057
124062
124066
124074
124082
124087
124091
124094
124098
124100
124101
124104
124106
124111
124112
124122
124129
124130
124131
124132
124137
124139
124141
124143
124144
124145
124147
124150
124160
124162
124166
124168
124172
124174
124184
124185
124186
124188
124189
124192
124197
124204
124211
124216
124219
124222
124223
124227
124228
124231
124232
124236
124242
124246
124252
124253
124256
124268
124281
124291
124292
124299
124300
124308
124317
124325
124326
124336
124337
124348
124353
124360
124363
124364
124370
124371
124376
124381
124382
124387
124391
124404
124408
124409
124410
124413
124416
124420
124431
124433
124443
124448
124449
124452
124455
124460
124471
124472
124476
124477
124478
124480
124484
124489
124490
124491
124503
124519
124541
124547
124548
124554
124558
124565
124566
124569
124570
124573
124575
124576
124578
124588
124589
124592
124593
124602
124606
124616
124617
124623
124632
124640
124648
124649
124676
124681
124682
124683
124689
124695
124699
124701
124705
124708
124711
124727
124735
124737
124742
124746
124751
124757
124768
124781
124783
124789
124791
124792
124793
124804
124812
124818
124821
124822
124823
124829
124832
124838
124841
124842
124843
124844
124845
124846
124849
124850
124851
124855
124859
124874
124877
124888
124892
124895
124909
124912
124919
124921
124923
124925
124926
124938
124940
124942
124943
124944
124947
124955
124957
124964
124979
124982
124984
124987
125078
125098
125116
125124
125126
125132
125133
125147
125149
125151
125160
125161
125163
125173
125181
125193
125198
125200
125202
125205
125222
125223
125224
125226
125232
125233
125241
125249
125258
125259
125273
125277
125285
125296
125299
125301
125308
125319
125323
125341
125342
125352
125356
125362
125366
125367
125369
125370
125375
125377
125378
125383
125386
125388
125389
125400
125402
125406
125414
125418
125420
125423
125425
125429
125434
125440
125443
125444
125449
125470
125475
125479
125485
125486
125488
125492
125494
125497
125498
125500
125501
125507
125511
125518
125519
125520
125534
125536
125541
125542
125543
125546
125548
125550
125558
125562
125563
125564
125568
125569
125572
125575
125582
125584
125587
125595
125600
125602
125609
125610
125611
125616
125618
125628
125637
125644
125648
125651
125656
125662
125670
125687
125693
125695
125697
125701
125702
125704
125708
125716
125722
125723
125725
125726
125732
125738
125742
125745
125746
125748
125757
125767
125772
125777
125780
125790
125791
125793
125800
125807
125812
125817
125820
125833
125836
125840
125849
125875
125879
125883
125894
125900
125903
125905
125915
125917
125918
125920
125926
125929
125931
125933
125934
125940
125943
125944
125946
125949
125951
125952
125956
125959
125967
125968
125969
125973
125977
125983
125991
125992
125994
125997
125999
126000
126003
126005
126006
126008
126008
126010
126011
126013
126020
126024
126029
126030
126031
126032
126033
126035
126035
126036
126037
126040
126050
126050
126051
126052
126059
126060
126069
126070
126070
126071
126073
126074
126079
126080
126084
126096
126099
126103
126120
126121
126123
126131
126136
126137
126138
126143
126148
126151
126154
126165
126166
126169
126185
126191
126195
126196
126198
126213
126214
126217
126221
126226
126230
126241
126242
126247
126249
126253
126255
126262
126266
126270
126277
126284
126295
126308
126313
126314
126334
126345
126346
126347
126351
126353
126361
126367
126370
126372
126382
126385
126387
126390
126391
126395
126397
126398
126402
126403
126406
126416
126420
126426
126429
126451
126456
126469
126475
126476
126484
126493
126498
126499
126507
126508
126518
126527
126530
126538
126542
126546
126555
126557
126562
126568
126575
126586
126590
126596
126597
126601
126607
126614
126622
126625
126627
126636
126642
126646
126648
126659
126663
126669
126670
126685
126686
126687
126688
126693
126694
126699
126707
126713
126717
126719
126726
126727
126734
126739
126745
126747
126780
126784
126785
126786
126789
126804
126807
126809
126810
126813
126814
126820
126827
126834
126837
126842
126844
126854
126864
126877
126887
126889
126905
126908
126918
126922
126924
126927
126929
126938
126940
126941
126942
126943
126944
126948
126950
126967
126970
126983
126984
126990
126998
127001
127003
127010
127017
127018
127022
127023
127029
127034
127035
127037
127045
127051
127055
127060
127064
127069
127076
127078
127085
127107
127113
127118
127128
127145
127152
127155
127169
127183
127190
127192
127204
127210
127217
127219
127228
127236
127237
127240
127241
127248
127251
127255
127262
127264
127272
127273
127283
127288
127293
127295
127296
127307
127308
127311
127313
127323
127336
127355
127360
127363
127365
127371
127375
127376
127379
127380
127382
127383
127384
127393
127394
127397
127399
127401
127426
127428
127429
127438
127440
127443
127444
127454
127456
127461
127466
127469
127473
127477
127479
127484
127495
127497
127512
127525
127531
127533
127537
127538
127542
127543
127544
127548
127560
127564
127567
127568
127574
127577
127579
127581
127585
127591
127605
127612
127613
127618
127621
127624
127625
127627
127631
127636
127655
127656
127658
127674
127678
127679
127714
127716
127720
127722
127724
127736
127739
127741
127742
127743
127749
127753
127754
127757
127764
127772
127781
127783
127788
127793
127794
127796
127799
127808
127816
127830
127832
127833
127839
127865
127870
127872
127873
127882
127885
127887
127888
127889
127890
127900
127906
127912
127927
127937
127958
127967
127976
127983
127984
127986
127988
127994
127996
127997
127998
127999
128006
128007
128009
128012
128020
128022
128027
128045
128064
128065
128066
128069
128073
128077
128080
128085
128087
128089
128090
128109
128116
128117
128132
128134
128137
128143
128144
128151
128152
128154
128157
128159
128160
128164
128165
128174
128177
128182
128184
128185
128189
128190
128198
128201
128203
128206
128211
128213
128214
128215
128216
128225
128233
128234
128235
128244
128245
128249
128254
128263
128277
128279
128286
128295
128308
128315
128329
128330
128332
128335
128339
128348
128349
128350
128351
128354
128356
128365
128373
128378
128398
128401
128410
128420
128426
128427
128432
128435
128439
128456
128458
128465
128474
128475
128477
128497
128500
128503
128508
128516
128521
128523
128529
128531
128536
128537
128544
128558
128559
128564
128566
128572
128582
128583
128586
128591
128594
128595
128597
128603
128604
128606
128608
128615
128624
128628
128631
128632
128647
128648
128651
128654
128661
128662
128665
128668
128672
128675
128680
128683
128691
128697
128699
128701
128702
128711
128713
128714
128722
128730
128737
128738
128739
128749
128757
128765
128775
128779
128784
128787
128792
128800
128802
128815
128816
128819
128823
128824
128829
128831
128834
128836
128838
128848
128854
128863
128875
128881
128882
128887
128891
128892
128894
128901
128902
128908
128913
128916
128927
128938
128945
128947
128956
128964
128973
128977
128982
128983
128986
128989
128990
128999
129010
129012
129023
129024
129034
129035
129047
129056
129064
129073
129085
129094
129098
129105
129107
129110
129127
129132
129133
129138
129139
129142
129144
129145
129149
129152
129156
129158
129160
129161
129170
129174
129179
129185
129190
129191
129194
129195
129197
129207
129222
129223
129227
129231
129233
129234
129235
129236
129239
129242
129250
129252
129258
129261
129263
129269
129276
129297
129303
129304
129313
129321
129325
129327
129329
129331
129337
129343
129344
129346
129348
129349
129355
129359
129363
129364
129372
129376
129382
129386
129388
129398
129400
129423
129427
129434
129444
129445
129448
129451
129460
129474
129476
129478
129481
129496
129502
129504
129517
129525
129526
129528
129529
129538
129543
129551
129553
129559
129561
129563
129576
129579
129589
129592
129595
129597
129598
129607
129608
129622
129628
129633
129636
129638
129639
129657
129666
129667
129670
129680
129686
129695
129705
129706
129713
129717
129723
129731
129733
129734
129737
129742
129743
129753
129754
129755
129759
129767
129768
129772
129775
129795
129803
129806
129809
129811
129814
129816
129824
129831
129833
129836
129839
129840
129841
129842
129843
129845
129847
129850
129854
129855
129861
129868
129874
129880
129884
129886
129894
129895
129904
129910
129911
129916
129920
129922
129924
129940
129945
129946
129957
129963
129967
129969
129971
129975
129980
129982
129988
129996
129999
130003
130005
130009
130013
130016
130017
130024
130025
130033
130038
130056
130057
130061
130062
130069
130071
130073
130076
130078
130109
130112
130115
130116
130118
130122
130123
130124
130127
130128
130129
130131
130132
130139
130141
130145
130162
130169
130171
130172
130179
130190
130194
130195
130198
130199
130200
130213
130214
130215
130242
130245
130253
130254
130259
130260
130267
130270
130271
130272
130273
130286
130294
130295
130298
130299
130302
130312
130318
130320
130323
130336
130341
130343
130344
130357
130358
130370
130377
130382
130383
130386
130396
130406
130411
130417
130420
130422
130427
130429
130431
130446
130447
130450
130456
130460
130463
130469
130471
130474
130479
130482
130484
130496
130502
130503
130504
130521
130528
130539
130542
130549
130554
130555
130557
130562
130563
130576
130578
130583
130588
130600
130605
130617
130622
130623
130646
130650
130651
130655
130657
130664
130667
130672
130676
130683
130701
130707
130716
130718
130719
130723
130734
130738
130746
130748
130749
130754
130757
130764
130776
130781
130782
130784
130785
130786
130790
130797
130803
130806
130809
130818
130819
130821
130834
130838
130844
130845
130863
130865
130867
130870
130875
130878
130888
130889
130892
130909
130919
130923
130926
130930
130941
130943
130960
130962
130963
130964
130965
130966
130969
130982
130988
130989
130992
130994
130999
131000
131019
131022
131023
131027
131028
131029
131034
131036
131038
131042
131050
131058
131063
131070
131072
131082
131084
131086
131092
131096
131101
131104
131115
131122
131124
131127
131128
131137
131140
131155
131157
131161
131170
131175
131185
131186
131188
131193
131194
131195
131196
131197
131198
131203
131204
131225
131228
131235
131238
131239
131241
131242
131243
131244
131251
131255
131275
131279
131280
131291
131294
131297
131311
131322
131326
131327
131329
131335
131340
131346
131347
131354
131357
131359
131366
131383
131395
131399
131400
131403
131415
131428
131430
131434
131443
131452
131453
131465
131471
131481
131487
131491
131496
131522
131525
131531
131534
131538
131542
131546
131548
131549
131553
131559
131560
131562
131581
131594
131595
131598
131604
131607
131608
131612
131615
131617
131618
131622
131640
131642
131646
131649
131652
131656
131671
131672
131676
131681
131682
131683
131685
131689
131695
131696
131699
131701
131710
131720
131721
131727
131732
131735
131746
131750
131757
131763
131767
131773
131777
131797
131800
131803
131804
131815
131819
131822
131833
131843
131844
131858
131869
131874
131884
131893
131894
131896
131898
131902
131912
131914
131920
131921
131925
131929
131935
131941
131944
131946
131947
131952
131953
131957
131958
131960
131968
131969
131974
131975
131978
131979
131983
131985
131988
131995
132006
132010
132020
132028
132042
132045
132054
132059
132063
132072
132075
132078
132086
132088
132092
132093
132094
132099
132107
132108
132112
132124
132125
132138
132149
132154
132165
132167
132171
132172
132176
132177
132187
132197
132203
132214
132224
132231
132234
132240
132246
132254
132262
132264
132265
132275
132286
132287
132288
132300
132302
132310
132311
132320
132324
132328
132335
132347
132349
132352
132358
132377
132379
132388
132389
132398
132415
132419
132423
132430
132431
132432
132439
132444
132454
132459
132475
132476
132489
132494
132497
132499
132504
132509
132510
132519
132521
132527
132530
132531
132537
132538
132547
132551
132554
132555
132557
132562
132574
132588
132589
132591
132593
132597
132603
132605
132606
132614
132617
132622
132629
132631
132633
132634
132643
132652
132653
132661
132667
132676
132683
132684
132691
132705
132707
132718
132722
132732
132733
132737
132755
132760
132771
132787
132790
132791
132793
132796
132800
132804
132805
132816
132822
132824
132825
132829
132832
132833
132834
132839
132853
132865
132867
132883
132888
132890
132896
132899
132901
132905
132922
132924
132935
132936
132937
132939
132941
132944
132953
132966
132967
132974
132979
132980
132983
132984
132987
132989
132992
132993
132995
133001
133007
133011
133014
133015
133016
133018
133025
133030
133034
133037
133040
133047
133048
133053
133054
133060
133064
133065
133070
133073
133075
133080
133085
133087
133098
133100
133122
133124
133132
133140
133146
133149
133155
133157
133181
133184
133191
133195
133210
133212
133216
133226
133227
133228
133232
133236
133239
133256
133257
133259
133262
133263
133264
133267
133278
133297
133305
133310
133318
133319
133324
133330
133332
133341
133344
133348
133351
133352
133357
133361
133362
133364
133367
133369
133376
133385
133388
133397
133398
133400
133404
133415
133423
133439
133442
133446
133448
133451
133454
133457
133460
133463
133467
133469
133470
133472
133478
133482
133492
133495
133504
133514
133529
133532
133537
133540
133546
133564
133568
133569
133574
133581
133590
133603
133610
133614
133618
133627
133657
133658
133674
133677
133680
133681
133693
133698
133704
133713
133744
133748
133758
133761
133763
133767
133779
133781
133791
133801
133804
133807
133809
133811
133820
133823
133828
133833
133834
133836
133837
133848
133860
133864
133865
133870
133874
133883
133888
133897
133898
133902
133904
133908
133909
133924
133928
133930
133931
133935
133936
133940
133945
133956
133962
133964
133967
133976
133981
133986
133987
133990
133998
134000
134001
134010
134018
134026
134028
134035
134036
134043
134049
134050
134055
134064
134066
134067
134070
134073
134085
134090
134097
134101
134102
134108
134112
134126
134130
134131
134133
134134
134139
134140
134141
134144
134146
134148
134150
134162
134166
134177
134180
134187
134191
134204
134209
134213
134216
134217
134225
134244
134255
134256
134271
134277
134286
134292
134294
134299
134308
134310
134316
134319
134327
134333
134343
134346
134347
134348
134355
134356
134362
134364
134370
134382
134383
134386
134387
134388
134389
134391
134399
134406
134423
134425
134426
134431
134439
134446
134451
134468
134474
134477
134491
134502
134512
134515
134517
134526
134528
134539
134542
134544
134550
134551
134553
134555
134557
134568
134569
134572
134573
134575
134580
134582
134588
134590
134596
134600
134601
134605
134607
134611
134614
134615
134627
134628
134637
134642
134654
134659
134660
134662
134674
134688
134698
134701
134707
134714
134715
134719
134722
134727
134728
134734
134746
134752
134756
134757
134771
134772
134774
134777
134782
134784
134789
134791
134794
134804
134807
134809
134812
134821
134823
134825
134829
134839
134846
134850
134855
134856
134870
134871
134883
134898
134899
134917
134921
134922
134926
134931
134932
134934
134935
134939
134941
134943
134957
134972
134975
134976
134977
134978
134981
134986
134998
135006
135007
135013
135017
135030
135074
135077
135082
135085
135086
135100
135102
135104
135105
135107
135118
135119
135122
135136
135137
135142
135153
135164
135170
135178
135179
135192
135194
135204
135207
135210
135217
135220
135237
135242
135248
135252
135255
135264
135268
135296
135299
135304
135307
135317
135321
135322
135325
135335
135337
135339
135345
135346
135350
135355
135356
135359
135362
135363
135370
135384
135388
135392
135396
135397
135398
135417
135419
135426
135430
135434
135440
135450
135452
135459
135466
135471
135480
135489
135493
135495
135503
135511
135515
135520
135521
135527
135530
135531
135534
135536
135539
135543
135546
135549
135560
135562
135572
135584
135586
135593
135595
135596
135601
135605
135607
135619
135620
135622
135631
135639
135659
135667
135679
135680
135681
135688
135704
135706
135723
135724
135727
135730
135746
135753
135760
135778
135779
135788
135789
135792
135802
135811
135816
135817
135830
135835
135843
135844
135849
135863
135867
135872
135905
135907
135911
135913
135918
135928
135929
135931
135935
135938
135940
135945
135946
135947
135952
135953
135954
135960
135962
135969
135974
135986
135990
135999
136005
136006
136007
136017
136021
136024
136025
136026
136029
136035
136038
136043
136044
136048
136049
136051
136065
136071
136078
136088
136090
136115
136125
136133
136139
136141
136152
136156
136158
136164
136168
136169
136175
136179
136196
136201
136207
136215
136224
136227
136229
136231
136233
136237
136243
136246
136249
136251
136252
136253
136256
136264
136268
136273
136288
136292
136293
136298
136301
136302
136313
136314
136318
136325
136327
136329
136334
136335
136336
136344
136356
136359
136369
136372
136376
136382
136383
136388
136390
136395
136397
136402
136404
136427
136428
136438
136448
136449
136466
136468
136470
136471
136473
136477
136482
136485
136488
136495
136496
136503
136509
136512
136517
136519
136543
136549
136557
136560
136567
136575
136578
136582
136587
136591
136596
136600
136601
136604
136607
136613
136620
136631
136639
136642
136644
136654
136655
136659
136665
136674
136695
136698
136700
136708
136719
136753
136757
136761
136766
136772
136773
136774
136777
136778
136781
136783
136788
136804
136813
136818
136825
136828
136833
136834
136835
136844
136846
136850
136856
136861
136880
136894
136897
136898
136905
136909
136917
136922
136926
136929
136936
136940
136954
136957
136965
136974
136980
136983
136985
136986
136989
136991
136992
137008
137012
137013
137017
137025
137027
137030
137032
137035
137039
137042
137043
137044
137046
137058
137059
137062
137068
137071
137079
137087
137089
137093
137094
137099
137102
137110
137112
137117
137120
137122
137124
137125
137128
137132
137133
137139
137145
137150
137153
137158
137167
137168
137171
137176
137182
137184
137189
137194
137195
137198
137203
137207
137221
137224
137228
137232
137236
137246
137247
137251
137254
137258
137265
137283
137290
137301
137304
137309
137312
137315
137325
137328
137329
137332
137343
137346
137348
137353
137358
137359
137364
137367
137368
137381
137385
137394
137410
137413
137424
137426
137428
137437
137438
137446
137448
137462
137463
137464
137467
137472
137476
137477
137480
137484
137487
137490
137492
137495
137499
137501
137511
137517
137520
137524
137530
137532
137541
137550
137556
137560
137563
137567
137571
137572
137577
137580
137581
137599
137613
137615
137618
137637
137638
137640
137644
137645
137651
137658
137671
137675
137676
137679
137680
137686
137687
137692
137693
137694
137696
137704
137713
137720
137728
137729
137739
137750
137758
137761
137766
137771
137776
137778
137794
137796
137807
137812
137814
137818
137839
137840
137841
137842
137845
137850
137874
137877
137878
137880
137883
137888
137890
137891
137901
137903
137910
137922
137927
137938
137943
137952
137954
137958
137965
137972
137980
137990
137994
138001
138002
138005
138007
138012
138027
138033
138034
138035
138036
138037
138039
138052
138066
138073
138078
138082
138085
138091
138093
138097
138100
138109
138111
138119
138125
138130
138132
138134
138135
138141
138145
138149
138163
138168
138180
138199
138203
138204
138209
138218
138222
138226
138238
138251
138265
138267
138270
138277
138284
138294
138304
138318
138326
138331
138334
138337
138348
138352
138354
138355
138357
138360
138362
138371
138380
138383
138386
138400
138408
138432
138441
138444
138452
138453
138454
138457
138473
138487
138488
138492
138496
138497
138500
138505
138516
138523
138539
138544
138550
138557
138562
138571
138593
138600
138604
138611
138612
138626
138631
138632
138638
138639
138641
138646
138654
138657
138658
138660
138663
138674
138677
138678
138679
138683
138694
138696
138698
138699
138704
138705
138710
138711
138714
138722
138723
138729
138733
138735
138741
138748
138750
138755
138761
138775
138777
138780
138783
138787
138794
138821
138829
138834
138839
138841
138844
138857
138868
138876
138887
138888
138891
138893
138897
138907
138915
138919
138920
138934
138945
138956
138959
138964
138979
138987
138988
139002
139016
139028
139029
139031
139036
139041
139042
139045
139047
139052
139053
139057
139062
139066
139067
139069
139072
139080
139082
139083
139090
139091
139092
139094
139095
139096
139101
139105
139116
139118
139123
139130
139131
139138
139151
139153
139156
139157
139159
139160
139163
139164
139166
139168
139172
139173
139176
139177
139180
139181
139186
139188
139202
139205
139207
139209
139210
139212
139214
139215
139229
139230
139231
139233
139234
139242
139249
139265
139268
139274
139275
139311
139321
139330
139334
139335
139336
139344
139345
139348
139363
139365
139371
139377
139379
139380
139384
139385
139391
139398
139414
139423
139425
139427
139431
139433
139435
139441
139442
139443
139445
139455
139463
139485
139495
139497
139510
139512
139513
139516
139523
139530
139532
139534
139536
139538
139540
139545
139549
139552
139556
139567
139568
139583
139584
139588
139589
139593
139595
139597
139606
139613
139615
139621
139627
139635
139644
139645
139649
139654
139655
139656
139667
139676
139677
139682
139684
139688
139690
139707
139712
139726
139730
139733
139734
139756
139757
139763
139769
139775
139776
139779
139785
139797
139798
139809
139829
139833
139839
139845
139848
139849
139863
139865
139868
139871
139872
139873
139884
139885
139888
139891
139892
139893
139895
139897
139903
139907
139924
139926
139927
139928
139929
139932
139936
139940
139949
139956
139958
139959
139969
139971
139972
139976
139979
139980
139987
140008
140011
140015
140017
140019
140020
140021
140026
140029
140031
140032
140033
140045
140052
140056
140061
140062
140067
140069
140070
140081
140083
140085
140092
140095
140096
140098
140109
140113
140119
140120
140125
140127
140130
140136
140140
140142
140147
140149
140151
140153
140156
140157
140161
140177
140182
140183
140184
140185
140193
140197
140203
140210
140223
140225
140233
140239
140241
140243
140244
140250
140253
140254
140255
140268
140272
140274
140277
140286
140291
140293
140296
140303
140305
140314
140316
140323
140326
140330
140334
140341
140344
140355
140356
140364
140367
140369
140370
140371
140374
140379
140381
140384
140386
140390
140394
140396
140405
140411
140413
140417
140419
140420
140430
140440
140444
140452
140465
140472
140473
140479
140484
140486
140489
140494
140497
140512
140522
140523
140526
140527
140536
140548
140550
140556
140564
140565
140566
140568
140569
140573
140577
140584
140587
140588
140589
140590
140599
140601
140607
140611
140615
140618
140621
140623
140626
140627
140628
140629
140632
140633
140635
140642
140645
140655
140656
140657
140659
140661
140674
140680
140682
140690
140699
140724
140729
140732
140733
140742
140743
140746
140753
140755
140756
140762
140763
140773
140777
140780
140782
140786
140792
140801
140804
140811
140823
140828
140832
140833
140839
140841
140842
140860
140865
140870
140873
140874
140877
140878
140884
140885
140889
140894
140902
140905
140907
140911
140913
140914
140917
140919
140925
140926
140929
140930
140932
140937
140938
140943
140951
140961
140962
140963
140964
140969
140971
140972
140974
140985
140986
140999
141000
141006
141008
141011
141014
141019
141020
141024
141026
141034
141043
141067
141078
141081
141084
141088
141089
141091
141092
141095
141096
141100
141105
141110
141112
141114
141119
141120
141129
141132
141137
141138
141139
141141
141142
141143
141148
141151
141154
141184
141185
141186
141188
141192
141195
141203
141218
141223
141225
141228
141229
141234
141235
141237
141241
141242
141245
141246
141260
141267
141268
141273
141278
141284
141287
141289
141290
141296
141299
141300
141302
141303
141315
141321
141326
141335
141336
141347
141351
141355
141356
141358
141366
141370
141371
141373
141374
141377
141389
141394
141398
141402
141405
141406
141407
141415
141420
141446
141447
141449
141456
141459
141460
141461
141463
141470
141473
141479
141485
141494
141496
141497
141513
141515
141519
141522
141524
141539
141540
141543
141544
141552
141554
141561
141563
141570
141577
141582
141590
141591
141596
141597
141600
141605
141608
141613
141614
141619
141625
141629
141634
141637
141644
141654
141661
141673
141674
141675
141684
141686
141696
141698
141702
141703
141705
141709
141710
141711
141720
141723
141732
141758
141759
141764
141773
141777
141778
141780
141782
141785
141789
141791
141798
141818
141820
141821
141823
141824
141825
141830
141839
141857
141862
141865
141868
141875
141887
141889
141894
141900
141911
141912
141914
141925
141929
141933
141937
141939
141942
141944
141947
141949
141950
141962
141963
141968
141970
141971
141978
141983
141991
141999
142002
142004
142006
142013
142018
142019
142020
142021
142023
142024
142032
142037
142038
142044
142056
142066
142072
142073
142075
142081
142082
142092
142093
142098
142114
142115
142117
142
Download .txt
gitextract_cmyl0w8x/

├── .gitignore
├── LICENSE
├── README.md
├── data/
│   ├── 50k_ids_random.csv
│   └── void_ids.csv
└── src/
    ├── benchmark/
    │   ├── pretrain_data2vec/
    │   │   └── readme.md
    │   ├── pretrain_ssl/
    │   │   ├── datasets/
    │   │   │   └── SSL4EO/
    │   │   │       ├── ssl4eo_dataset.py
    │   │   │       └── ssl4eo_dataset_lmdb.py
    │   │   ├── models/
    │   │   │   ├── data2vec/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── README_Original.md
    │   │   │   │   ├── dall_e/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── decoder.py
    │   │   │   │   │   ├── encoder.py
    │   │   │   │   │   └── utils.py
    │   │   │   │   ├── dataset_folder.py
    │   │   │   │   ├── datasets.py
    │   │   │   │   ├── engine_for_cyclical.py
    │   │   │   │   ├── engine_for_cyclical_joint.py
    │   │   │   │   ├── engine_for_finetuning.py
    │   │   │   │   ├── engine_for_pretraining.py
    │   │   │   │   ├── get_started_for_image_classification.md
    │   │   │   │   ├── masking_generator.py
    │   │   │   │   ├── modeling_cyclical.py
    │   │   │   │   ├── modeling_cyclical_joint.py
    │   │   │   │   ├── modeling_discrete_vae.py
    │   │   │   │   ├── modeling_finetune.py
    │   │   │   │   ├── modeling_pretrain.py
    │   │   │   │   ├── models.py
    │   │   │   │   ├── optim_factory.py
    │   │   │   │   ├── requirements.txt
    │   │   │   │   ├── run_beit_pretraining.py
    │   │   │   │   ├── run_class_finetuning.py
    │   │   │   │   ├── run_cyclical.py
    │   │   │   │   ├── run_cyclical_joint.py
    │   │   │   │   ├── semantic_segmentation/
    │   │   │   │   │   ├── README.md
    │   │   │   │   │   ├── backbone/
    │   │   │   │   │   │   └── beit.py
    │   │   │   │   │   ├── configs/
    │   │   │   │   │   │   ├── _base_/
    │   │   │   │   │   │   │   ├── datasets/
    │   │   │   │   │   │   │   │   ├── ade20k.py
    │   │   │   │   │   │   │   │   └── ade20k_640x640.py
    │   │   │   │   │   │   │   ├── default_runtime.py
    │   │   │   │   │   │   │   ├── models/
    │   │   │   │   │   │   │   │   └── upernet_beit.py
    │   │   │   │   │   │   │   └── schedules/
    │   │   │   │   │   │   │       ├── schedule_160k.py
    │   │   │   │   │   │   │       └── schedule_320k.py
    │   │   │   │   │   │   └── beit/
    │   │   │   │   │   │       └── upernet/
    │   │   │   │   │   │           ├── upernet_beit_base_12_512_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_512_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_640_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_640_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_512_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_512_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_640_slide_160k_ade20k.py
    │   │   │   │   │   │           └── upernet_beit_large_24_640_slide_160k_ade20k_ms.py
    │   │   │   │   │   ├── mmcv_custom/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── apex_runner/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── apex_iter_based_runner.py
    │   │   │   │   │   │   │   ├── checkpoint.py
    │   │   │   │   │   │   │   └── optimizer.py
    │   │   │   │   │   │   ├── checkpoint.py
    │   │   │   │   │   │   ├── layer_decay_optimizer_constructor.py
    │   │   │   │   │   │   ├── resize_transform.py
    │   │   │   │   │   │   └── train_api.py
    │   │   │   │   │   └── tools/
    │   │   │   │   │       ├── dist_test.sh
    │   │   │   │   │       ├── dist_train.sh
    │   │   │   │   │       ├── test.py
    │   │   │   │   │       └── train.py
    │   │   │   │   ├── transforms.py
    │   │   │   │   └── utils.py
    │   │   │   ├── dino/
    │   │   │   │   ├── utils.py
    │   │   │   │   └── vision_transformer.py
    │   │   │   ├── mae/
    │   │   │   │   ├── engine_finetune.py
    │   │   │   │   ├── engine_finetune_BE.py
    │   │   │   │   ├── engine_finetune_EU.py
    │   │   │   │   ├── engine_finetune_SS.py
    │   │   │   │   ├── engine_pretrain.py
    │   │   │   │   ├── main_finetune.py
    │   │   │   │   ├── main_linprobe.py
    │   │   │   │   ├── main_pretrain.py
    │   │   │   │   ├── models_mae.py
    │   │   │   │   ├── models_vit.py
    │   │   │   │   ├── submitit_finetune.py
    │   │   │   │   ├── submitit_linprobe.py
    │   │   │   │   ├── submitit_pretrain.py
    │   │   │   │   └── util/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── crop.py
    │   │   │   │       ├── datasets.py
    │   │   │   │       ├── lars.py
    │   │   │   │       ├── lr_decay.py
    │   │   │   │       ├── lr_sched.py
    │   │   │   │       ├── misc.py
    │   │   │   │       └── pos_embed.py
    │   │   │   ├── moco/
    │   │   │   │   ├── builder.py
    │   │   │   │   └── loader.py
    │   │   │   ├── moco_v2/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── builder.py
    │   │   │   │   ├── detection/
    │   │   │   │   │   ├── README.md
    │   │   │   │   │   ├── configs/
    │   │   │   │   │   │   ├── Base-RCNN-C4-BN.yaml
    │   │   │   │   │   │   ├── coco_R_50_C4_2x.yaml
    │   │   │   │   │   │   ├── coco_R_50_C4_2x_moco.yaml
    │   │   │   │   │   │   ├── pascal_voc_R_50_C4_24k.yaml
    │   │   │   │   │   │   └── pascal_voc_R_50_C4_24k_moco.yaml
    │   │   │   │   │   ├── convert-pretrain-to-detectron2.py
    │   │   │   │   │   └── train_net.py
    │   │   │   │   ├── loader.py
    │   │   │   │   └── main_lincls.py
    │   │   │   ├── moco_v3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── builder.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── optimizer.py
    │   │   │   │   └── vits.py
    │   │   │   ├── rs_transforms_float32.py
    │   │   │   └── rs_transforms_uint8.py
    │   │   ├── pretrain_data2vec.py
    │   │   ├── pretrain_dino_s2c.py
    │   │   ├── pretrain_mae_s2c.py
    │   │   ├── pretrain_moco_v2_s2c.py
    │   │   ├── pretrain_moco_v2_seco_ms.py
    │   │   ├── pretrain_moco_v2_sen12ms_ms.py
    │   │   ├── pretrain_moco_v3_s2c.py
    │   │   └── scripts/
    │   │       └── pretrain/
    │   │           ├── srun_train_SEN12MS_moco_rn50_rgb.sh
    │   │           ├── srun_train_SEN12MS_moco_rn50_s2c.sh
    │   │           ├── srun_train_SeCo_moco_rn50_s2a.sh
    │   │           ├── srun_train_dino_rn50_s2c.sh
    │   │           ├── srun_train_dino_vits16_s2c.sh
    │   │           ├── srun_train_mae_vits16_s2c.sh
    │   │           ├── srun_train_moco_rn50_s2c.sh
    │   │           ├── srun_train_moco_vits16_s2c.sh
    │   │           ├── submit_pretrain_data2vec.sh
    │   │           └── train_data2vec_vits16_s2c.sh
    │   ├── transfer_change_detection/
    │   │   ├── datasets/
    │   │   │   ├── __init__.py
    │   │   │   ├── oscd_datamodule.py
    │   │   │   └── oscd_dataset.py
    │   │   ├── main_oscd.py
    │   │   ├── models/
    │   │   │   ├── __init__.py
    │   │   │   └── segmentation.py
    │   │   ├── readme.md
    │   │   ├── test.sh
    │   │   ├── train.sh
    │   │   ├── utils/
    │   │   │   ├── __init__.py
    │   │   │   ├── data.py
    │   │   │   └── transforms.py
    │   │   └── validate_oscd.py
    │   ├── transfer_classification/
    │   │   ├── datasets/
    │   │   │   ├── BigEarthNet/
    │   │   │   │   ├── bigearthnet_dataset_seco.py
    │   │   │   │   └── bigearthnet_dataset_seco_lmdb_s2_uint8.py
    │   │   │   ├── EuroSat/
    │   │   │   │   └── eurosat_dataset.py
    │   │   │   └── So2Sat/
    │   │   │       └── so2sat_lcz42_dataset.py
    │   │   ├── linear_BE_data2vec.py
    │   │   ├── linear_BE_dino.py
    │   │   ├── linear_BE_mae.py
    │   │   ├── linear_BE_moco.py
    │   │   ├── linear_BE_moco_v3.py
    │   │   ├── linear_BE_sup.py
    │   │   ├── linear_EU_data2vec.py
    │   │   ├── linear_EU_dino.py
    │   │   ├── linear_EU_mae.py
    │   │   ├── linear_EU_moco.py
    │   │   ├── linear_EU_moco_v3.py
    │   │   ├── linear_SS_data2vec.py
    │   │   ├── linear_SS_dino.py
    │   │   ├── linear_SS_mae.py
    │   │   ├── linear_SS_moco.py
    │   │   ├── linear_SS_moco_v3.py
    │   │   ├── models/
    │   │   │   ├── data2vec/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── README_Original.md
    │   │   │   │   ├── dall_e/
    │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   ├── decoder.py
    │   │   │   │   │   ├── encoder.py
    │   │   │   │   │   └── utils.py
    │   │   │   │   ├── dataset_folder.py
    │   │   │   │   ├── datasets.py
    │   │   │   │   ├── engine_for_cyclical.py
    │   │   │   │   ├── engine_for_cyclical_joint.py
    │   │   │   │   ├── engine_for_finetuning.py
    │   │   │   │   ├── engine_for_pretraining.py
    │   │   │   │   ├── get_started_for_image_classification.md
    │   │   │   │   ├── masking_generator.py
    │   │   │   │   ├── modeling_cyclical.py
    │   │   │   │   ├── modeling_cyclical_joint.py
    │   │   │   │   ├── modeling_discrete_vae.py
    │   │   │   │   ├── modeling_finetune.py
    │   │   │   │   ├── modeling_pretrain.py
    │   │   │   │   ├── models.py
    │   │   │   │   ├── optim_factory.py
    │   │   │   │   ├── requirements.txt
    │   │   │   │   ├── run_beit_pretraining.py
    │   │   │   │   ├── run_class_finetuning.py
    │   │   │   │   ├── run_cyclical.py
    │   │   │   │   ├── run_cyclical_joint.py
    │   │   │   │   ├── semantic_segmentation/
    │   │   │   │   │   ├── README.md
    │   │   │   │   │   ├── backbone/
    │   │   │   │   │   │   └── beit.py
    │   │   │   │   │   ├── configs/
    │   │   │   │   │   │   ├── _base_/
    │   │   │   │   │   │   │   ├── datasets/
    │   │   │   │   │   │   │   │   ├── ade20k.py
    │   │   │   │   │   │   │   │   └── ade20k_640x640.py
    │   │   │   │   │   │   │   ├── default_runtime.py
    │   │   │   │   │   │   │   ├── models/
    │   │   │   │   │   │   │   │   └── upernet_beit.py
    │   │   │   │   │   │   │   └── schedules/
    │   │   │   │   │   │   │       ├── schedule_160k.py
    │   │   │   │   │   │   │       └── schedule_320k.py
    │   │   │   │   │   │   └── beit/
    │   │   │   │   │   │       └── upernet/
    │   │   │   │   │   │           ├── upernet_beit_base_12_512_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_512_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_640_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_base_12_640_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_512_slide_160k_ade20k.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_512_slide_160k_ade20k_ms.py
    │   │   │   │   │   │           ├── upernet_beit_large_24_640_slide_160k_ade20k.py
    │   │   │   │   │   │           └── upernet_beit_large_24_640_slide_160k_ade20k_ms.py
    │   │   │   │   │   ├── mmcv_custom/
    │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   ├── apex_runner/
    │   │   │   │   │   │   │   ├── __init__.py
    │   │   │   │   │   │   │   ├── apex_iter_based_runner.py
    │   │   │   │   │   │   │   ├── checkpoint.py
    │   │   │   │   │   │   │   └── optimizer.py
    │   │   │   │   │   │   ├── checkpoint.py
    │   │   │   │   │   │   ├── layer_decay_optimizer_constructor.py
    │   │   │   │   │   │   ├── resize_transform.py
    │   │   │   │   │   │   └── train_api.py
    │   │   │   │   │   └── tools/
    │   │   │   │   │       ├── dist_test.sh
    │   │   │   │   │       ├── dist_train.sh
    │   │   │   │   │       ├── test.py
    │   │   │   │   │       └── train.py
    │   │   │   │   ├── transforms.py
    │   │   │   │   └── utils.py
    │   │   │   ├── dino/
    │   │   │   │   ├── utils.py
    │   │   │   │   └── vision_transformer.py
    │   │   │   ├── mae/
    │   │   │   │   ├── engine_finetune.py
    │   │   │   │   ├── engine_finetune_BE.py
    │   │   │   │   ├── engine_finetune_EU.py
    │   │   │   │   ├── engine_finetune_SS.py
    │   │   │   │   ├── engine_pretrain.py
    │   │   │   │   ├── main_finetune.py
    │   │   │   │   ├── main_linprobe.py
    │   │   │   │   ├── main_pretrain.py
    │   │   │   │   ├── models_mae.py
    │   │   │   │   ├── models_vit.py
    │   │   │   │   ├── submitit_finetune.py
    │   │   │   │   ├── submitit_linprobe.py
    │   │   │   │   ├── submitit_pretrain.py
    │   │   │   │   └── util/
    │   │   │   │       ├── __init__.py
    │   │   │   │       ├── crop.py
    │   │   │   │       ├── datasets.py
    │   │   │   │       ├── lars.py
    │   │   │   │       ├── lr_decay.py
    │   │   │   │       ├── lr_sched.py
    │   │   │   │       ├── misc.py
    │   │   │   │       └── pos_embed.py
    │   │   │   ├── moco/
    │   │   │   │   ├── builder.py
    │   │   │   │   └── loader.py
    │   │   │   ├── moco_v2/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── builder.py
    │   │   │   │   ├── detection/
    │   │   │   │   │   ├── README.md
    │   │   │   │   │   ├── configs/
    │   │   │   │   │   │   ├── Base-RCNN-C4-BN.yaml
    │   │   │   │   │   │   ├── coco_R_50_C4_2x.yaml
    │   │   │   │   │   │   ├── coco_R_50_C4_2x_moco.yaml
    │   │   │   │   │   │   ├── pascal_voc_R_50_C4_24k.yaml
    │   │   │   │   │   │   └── pascal_voc_R_50_C4_24k_moco.yaml
    │   │   │   │   │   ├── convert-pretrain-to-detectron2.py
    │   │   │   │   │   └── train_net.py
    │   │   │   │   ├── loader.py
    │   │   │   │   └── main_lincls.py
    │   │   │   ├── moco_v3/
    │   │   │   │   ├── __init__.py
    │   │   │   │   ├── builder.py
    │   │   │   │   ├── loader.py
    │   │   │   │   ├── optimizer.py
    │   │   │   │   └── vits.py
    │   │   │   ├── rs_transforms_float32.py
    │   │   │   └── rs_transforms_uint8.py
    │   │   └── scripts/
    │   │       ├── ablation/
    │   │       │   ├── srun_ImageNet_ft_moco-v2-ep800_pad_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_ImageNet_lc_moco-v2-ep200_pad_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_ImageNet_lc_moco-v2-ep800_pad_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_ImageNet_lc_sup_pad_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_ImageNet_lc_sup_reinit_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_rgb_BE_10.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_rgb_BE_100.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_rgb_EU.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_s2c_BE_100.sh
    │   │       │   ├── srun_SEN12MS_lc_moco_rn50_s2c_EU.sh
    │   │       │   ├── srun_SeCo_lc_moco_rn50_s2c_BE_10.sh
    │   │       │   ├── srun_SeCo_lc_moco_rn50_s2c_BE_100.sh
    │   │       │   └── srun_SeCo_lc_moco_rn50_s2c_EU.sh
    │   │       └── benchmark/
    │   │           ├── ft_data2vec_vit16_s2c_BE_100.sh
    │   │           ├── ft_data2vec_vits16_s2c_EU_100.sh
    │   │           ├── ft_data2vec_vits16_s2c_SS_100.sh
    │   │           ├── lc_data2vec_vit16_s2c_BE_100.sh
    │   │           ├── lc_data2vec_vits16_s2c_EU_100.sh
    │   │           ├── lc_data2vec_vits16_s2c_SS_100.sh
    │   │           ├── srun_ft_dino_rn50_s2c_BE.sh
    │   │           ├── srun_ft_dino_rn50_s2c_EU.sh
    │   │           ├── srun_ft_dino_rn50_s2c_SS.sh
    │   │           ├── srun_ft_dino_vits16_s2_BE.sh
    │   │           ├── srun_ft_dino_vits16_s2c_EU.sh
    │   │           ├── srun_ft_dino_vits16_s2c_SS.sh
    │   │           ├── srun_ft_mae_vits16_s2c_BE.sh
    │   │           ├── srun_ft_mae_vits16_s2c_EU.sh
    │   │           ├── srun_ft_mae_vits16_s2c_SS.sh
    │   │           ├── srun_ft_moco_rn50_s2c_BE.sh
    │   │           ├── srun_ft_moco_rn50_s2c_EU.sh
    │   │           ├── srun_ft_moco_rn50_s2c_SS.sh
    │   │           ├── srun_ft_moco_vits16_s2c_BE.sh
    │   │           ├── srun_ft_moco_vits16_s2c_EU.sh
    │   │           ├── srun_ft_moco_vits16_s2c_SS.sh
    │   │           ├── srun_lc_dino_rn50_s2c_BE.sh
    │   │           ├── srun_lc_dino_rn50_s2c_EU.sh
    │   │           ├── srun_lc_dino_rn50_s2c_SS.sh
    │   │           ├── srun_lc_dino_vits16_s2c_BE.sh
    │   │           ├── srun_lc_dino_vits16_s2c_EU.sh
    │   │           ├── srun_lc_dino_vits16_s2c_SS.sh
    │   │           ├── srun_lc_mae_vits16_s2c_BE.sh
    │   │           ├── srun_lc_mae_vits16_s2c_EU.sh
    │   │           ├── srun_lc_mae_vits16_s2c_SS.sh
    │   │           ├── srun_lc_moco_rn50_s2c_BE.sh
    │   │           ├── srun_lc_moco_rn50_s2c_EU.sh
    │   │           ├── srun_lc_moco_rn50_s2c_SS.sh
    │   │           ├── srun_lc_moco_vits16_s2c_BE.sh
    │   │           ├── srun_lc_moco_vits16_s2c_EU.sh
    │   │           └── srun_lc_moco_vits16_s2c_SS.sh
    │   ├── transfer_segmentation/
    │   │   └── readme.md
    │   └── utils/
    │       ├── convert_model_torchvision.py
    │       └── vis_tsne.ipynb
    └── download_data/
        ├── convert_rgb.py
        ├── readme.md
        ├── ssl4eo_downloader.py
        └── ssl4eo_s12_downloader.py
Download .txt
SYMBOL INDEX (1795 symbols across 175 files)

FILE: src/benchmark/pretrain_ssl/datasets/SSL4EO/ssl4eo_dataset.py
  function normalize (line 36) | def normalize(img, mean, std):
  class SSL4EO (line 45) | class SSL4EO(torch.utils.data.Dataset):
    method __init__ (line 47) | def __init__(self,root, normalize=False, mode=['s1','s2a','s2c'], dtyp...
    method __getitem__ (line 56) | def __getitem__(self,index):
    method __len__ (line 75) | def __len__(self):
    method get_array (line 78) | def get_array(self, patch_id, mode):
  class Subset (line 127) | class Subset(Dataset):
    method __init__ (line 129) | def __init__(self, dataset, indices):
    method __getitem__ (line 133) | def __getitem__(self, idx):
    method __len__ (line 136) | def __len__(self):
    method __getattr__ (line 139) | def __getattr__(self, name):
  function random_subset (line 143) | def random_subset(dataset, frac, seed=None):
  class _RepeatSampler (line 149) | class _RepeatSampler(object):
    method __init__ (line 156) | def __init__(self, sampler):
    method __iter__ (line 159) | def __iter__(self):
  class InfiniteDataLoader (line 164) | class InfiniteDataLoader(DataLoader):
    method __init__ (line 170) | def __init__(self, *args, **kwargs):
    method __len__ (line 175) | def __len__(self):
    method __iter__ (line 178) | def __iter__(self):
  function make_lmdb (line 183) | def make_lmdb(dataset, lmdb_file, num_workers=6,mode=['s1','s2a','s2c']):

FILE: src/benchmark/pretrain_ssl/datasets/SSL4EO/ssl4eo_dataset_lmdb.py
  function normalize (line 23) | def normalize(img, mean, std):
  class Subset (line 32) | class Subset(Dataset):
    method __init__ (line 34) | def __init__(self, dataset, indices):
    method __getitem__ (line 38) | def __getitem__(self, idx):
    method __len__ (line 41) | def __len__(self):
    method __getattr__ (line 44) | def __getattr__(self, name):
  function random_subset (line 48) | def random_subset(dataset, frac, seed=None):
  class _RepeatSampler (line 54) | class _RepeatSampler(object):
    method __init__ (line 61) | def __init__(self, sampler):
    method __iter__ (line 64) | def __iter__(self):
  class InfiniteDataLoader (line 69) | class InfiniteDataLoader(DataLoader):
    method __init__ (line 75) | def __init__(self, *args, **kwargs):
    method __len__ (line 80) | def __len__(self):
    method __iter__ (line 83) | def __iter__(self):
  function make_lmdb (line 88) | def make_lmdb(dataset, lmdb_file, num_workers=6,mode=['s1','s2a','s2c']):
  class LMDBDataset (line 121) | class LMDBDataset(Dataset):
    method __init__ (line 123) | def __init__(self, lmdb_file, is_slurm_job=False, s1_transform=None, s...
    method _init_db (line 146) | def _init_db(self):
    method __getitem__ (line 152) | def __getitem__(self, index):
    method __len__ (line 228) | def __len__(self):
  class TwoCropsTransform (line 247) | class TwoCropsTransform:
    method __init__ (line 250) | def __init__(self, base_transform, season='fixed'):
    method __call__ (line 254) | def __call__(self, x):
  class GaussianBlur (line 276) | class GaussianBlur(object):
    method __init__ (line 279) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 282) | def __call__(self, x):
  class RandomBrightness (line 289) | class RandomBrightness(object):
    method __init__ (line 292) | def __init__(self, brightness=0.4):
    method __call__ (line 295) | def __call__(self, sample):
  class RandomContrast (line 301) | class RandomContrast(object):
    method __init__ (line 304) | def __init__(self, contrast=0.4):
    method __call__ (line 307) | def __call__(self, sample):
  class ToGray (line 313) | class ToGray(object):
    method __init__ (line 314) | def __init__(self, out_channels):
    method __call__ (line 316) | def __call__(self,sample):
  class RandomChannelDrop (line 323) | class RandomChannelDrop(object):
    method __init__ (line 326) | def __init__(self, min_n_drop=1, max_n_drop=8):
    method __call__ (line 330) | def __call__(self, sample):

FILE: src/benchmark/pretrain_ssl/models/data2vec/dall_e/__init__.py
  function load_model (line 9) | def load_model(path: str, device: torch.device = None) -> nn.Module:

FILE: src/benchmark/pretrain_ssl/models/data2vec/dall_e/decoder.py
  class DecoderBlock (line 13) | class DecoderBlock(nn.Module):
    method __attrs_post_init__ (line 21) | def __attrs_post_init__(self) -> None:
    method forward (line 38) | def forward(self, x: torch.Tensor) -> torch.Tensor:
  class Decoder (line 42) | class Decoder(nn.Module):
    method __attrs_post_init__ (line 54) | def __attrs_post_init__(self) -> None:
    method forward (line 86) | def forward(self, x: torch.Tensor) -> torch.Tensor:

FILE: src/benchmark/pretrain_ssl/models/data2vec/dall_e/encoder.py
  class EncoderBlock (line 13) | class EncoderBlock(nn.Module):
    method __attrs_post_init__ (line 21) | def __attrs_post_init__(self) -> None:
    method forward (line 38) | def forward(self, x: torch.Tensor) -> torch.Tensor:
  class Encoder (line 42) | class Encoder(nn.Module):
    method __attrs_post_init__ (line 53) | def __attrs_post_init__(self) -> None:
    method forward (line 85) | def forward(self, x: torch.Tensor) -> torch.Tensor:

FILE: src/benchmark/pretrain_ssl/models/data2vec/dall_e/utils.py
  class Conv2d (line 11) | class Conv2d(nn.Module):
    method __attrs_post_init__ (line 20) | def __attrs_post_init__(self) -> None:
    method forward (line 31) | def forward(self, x: torch.Tensor) -> torch.Tensor:
  function map_pixels (line 45) | def map_pixels(x: torch.Tensor) -> torch.Tensor:
  function unmap_pixels (line 51) | def unmap_pixels(x: torch.Tensor) -> torch.Tensor:

FILE: src/benchmark/pretrain_ssl/models/data2vec/dataset_folder.py
  function has_file_allowed_extension (line 21) | def has_file_allowed_extension(filename: str, extensions: Tuple[str, ......
  function is_image_file (line 34) | def is_image_file(filename: str) -> bool:
  function make_dataset (line 46) | def make_dataset(
  class DatasetFolder (line 76) | class DatasetFolder(VisionDataset):
    method __init__ (line 108) | def __init__(
    method _find_classes (line 138) | def _find_classes(self, dir: str) -> Tuple[List[str], Dict[str, int]]:
    method __getitem__ (line 156) | def __getitem__(self, index: int) -> Tuple[Any, Any]:
    method __len__ (line 180) | def __len__(self) -> int:
  function pil_loader (line 187) | def pil_loader(path: str) -> Image.Image:
  function accimage_loader (line 195) | def accimage_loader(path: str) -> Any:
  function default_loader (line 204) | def default_loader(path: str) -> Any:
  class ImageFolder (line 234) | class ImageFolder(DatasetFolder):
    method __init__ (line 261) | def __init__(

FILE: src/benchmark/pretrain_ssl/models/data2vec/datasets.py
  class SeasonTransform (line 35) | class SeasonTransform:
    method __init__ (line 37) | def __init__(self, base_transform, season='fixed'):
    method __call__ (line 41) | def __call__(self, x):
  class DataAugmentations (line 64) | class DataAugmentations(object):
    method __init__ (line 65) | def __init__(self, args):
    method __call__ (line 130) | def __call__(self, image):
    method __repr__ (line 141) | def __repr__(self):
  function build_beit_pretraining_dataset (line 152) | def build_beit_pretraining_dataset(args):
  function build_transform (line 167) | def build_transform(is_train, args):

FILE: src/benchmark/pretrain_ssl/models/data2vec/engine_for_cyclical.py
  function train_one_epoch (line 23) | def train_one_epoch(model: torch.nn.Module, model_ema: torch.nn.Module, ...

FILE: src/benchmark/pretrain_ssl/models/data2vec/engine_for_cyclical_joint.py
  function train_one_epoch (line 24) | def train_one_epoch(model: torch.nn.Module, model_ema: torch.nn.Module, ...

FILE: src/benchmark/pretrain_ssl/models/data2vec/engine_for_finetuning.py
  function train_class_batch (line 27) | def train_class_batch(model, samples, target, criterion, bool_masked_pos...
  function get_loss_scale_for_deepspeed (line 33) | def get_loss_scale_for_deepspeed(model):
  function train_one_epoch (line 38) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 173) | def evaluate(data_loader, model, device, metric='acc', padd=False, oneho...

FILE: src/benchmark/pretrain_ssl/models/data2vec/engine_for_pretraining.py
  function train_one_epoch (line 22) | def train_one_epoch(model: torch.nn.Module, d_vae: torch.nn.Module,

FILE: src/benchmark/pretrain_ssl/models/data2vec/masking_generator.py
  class MaskingGenerator (line 29) | class MaskingGenerator:
    method __init__ (line 30) | def __init__(
    method __repr__ (line 46) | def __repr__(self):
    method get_shape (line 52) | def get_shape(self):
    method _mask (line 55) | def _mask(self, mask, max_mask_patches):
    method __call__ (line 79) | def __call__(self):

FILE: src/benchmark/pretrain_ssl/models/data2vec/modeling_cyclical.py
  function trunc_normal_ (line 22) | def trunc_normal_(tensor, mean=0.0, std=1.0):
  class VisionTransformerForCyclicalTraining (line 32) | class VisionTransformerForCyclicalTraining(nn.Module):
    method __init__ (line 33) | def __init__(
    method fix_init_weight (line 127) | def fix_init_weight(self):
    method _init_weights (line 135) | def _init_weights(self, m):
    method no_weight_decay (line 149) | def no_weight_decay(self):
    method get_num_layers (line 152) | def get_num_layers(self):
    method forward_features (line 155) | def forward_features(self, x, bool_masked_pos, layer_results):
    method forward (line 194) | def forward(self, x, bool_masked_pos, return_all_tokens=False, layer_r...
  function beit_base_patch16_224 (line 214) | def beit_base_patch16_224(pretrained=False, **kwargs):
  function beit_small_patch16_224 (line 234) | def beit_small_patch16_224(pretrained=False, **kwargs):
  function beit_large_patch16_224 (line 255) | def beit_large_patch16_224(pretrained=False, **kwargs):
  function beit_huge_patch16_224 (line 275) | def beit_huge_patch16_224(pretrained=False, **kwargs):

FILE: src/benchmark/pretrain_ssl/models/data2vec/modeling_cyclical_joint.py
  function trunc_normal_ (line 22) | def trunc_normal_(tensor, mean=0.0, std=1.0):
  class VisionTransformerForCyclicalJointTraining (line 32) | class VisionTransformerForCyclicalJointTraining(nn.Module):
    method __init__ (line 33) | def __init__(
    method fix_init_weight (line 126) | def fix_init_weight(self):
    method _init_weights (line 134) | def _init_weights(self, m):
    method no_weight_decay (line 148) | def no_weight_decay(self):
    method get_num_layers (line 151) | def get_num_layers(self):
    method forward_features (line 154) | def forward_features(self, x, bool_masked_pos, layer_results):
    method forward (line 183) | def forward(self, x, bool_masked_pos, return_all_tokens=False, layer_r...
  function beit_base_joint_patch16_224 (line 203) | def beit_base_joint_patch16_224(pretrained=False, **kwargs):

FILE: src/benchmark/pretrain_ssl/models/data2vec/modeling_discrete_vae.py
  function top_k (line 19) | def top_k(logits, thres = 0.5):
  function exists (line 28) | def exists(val):
  function default (line 32) | def default(val, d):
  function eval_decorator (line 36) | def eval_decorator(fn):
  class BasicVAE (line 46) | class BasicVAE(nn.Module):
    method get_codebook_indices (line 48) | def get_codebook_indices(self, images):
    method decode (line 51) | def decode(self, img_seq):
    method get_codebook_probs (line 54) | def get_codebook_probs(self, img_seq):
    method get_image_tokens_size (line 57) | def get_image_tokens_size(self):
    method get_image_size (line 60) | def get_image_size(self):
  class ResBlock (line 64) | class ResBlock(nn.Module):
    method __init__ (line 65) | def __init__(self, chan_in, hidden_size, chan_out):
    method forward (line 75) | def forward(self, x):
  class DiscreteVAE (line 79) | class DiscreteVAE(BasicVAE):
    method __init__ (line 80) | def __init__(
    method get_image_size (line 127) | def get_image_size(self):
    method get_image_tokens_size (line 130) | def get_image_tokens_size(self):
    method get_codebook_indices (line 135) | def get_codebook_indices(self, images):
    method get_codebook_probs (line 142) | def get_codebook_probs(self, images):
    method decode (line 146) | def decode(
    method forward (line 158) | def forward(
  class Dalle_VAE (line 206) | class Dalle_VAE(BasicVAE):
    method __init__ (line 207) | def __init__(self, image_size):
    method load_model (line 213) | def load_model(self, model_dir, device):
    method decode (line 217) | def decode(self, img_seq):
    method get_codebook_indices (line 223) | def get_codebook_indices(self, images):
    method get_codebook_probs (line 227) | def get_codebook_probs(self, images):
    method forward (line 231) | def forward(self, img_seq_prob, no_process=False):

FILE: src/benchmark/pretrain_ssl/models/data2vec/modeling_finetune.py
  function _cfg (line 23) | def _cfg(url='', **kwargs):
  class DropPath (line 33) | class DropPath(nn.Module):
    method __init__ (line 36) | def __init__(self, drop_prob=None):
    method forward (line 40) | def forward(self, x):
    method extra_repr (line 43) | def extra_repr(self) -> str:
  class Mlp (line 47) | class Mlp(nn.Module):
    method __init__ (line 48) | def __init__(self, in_features, hidden_features=None, out_features=Non...
    method forward (line 57) | def forward(self, x):
  class Attention (line 67) | class Attention(nn.Module):
    method __init__ (line 68) | def __init__(
    method forward (line 121) | def forward(self, x, rel_pos_bias=None):
  class Block (line 154) | class Block(nn.Module):
    method __init__ (line 156) | def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_sc...
    method forward (line 177) | def forward(self, x, rel_pos_bias=None):
  class PatchEmbed (line 189) | class PatchEmbed(nn.Module):
    method __init__ (line 192) | def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=...
    method forward (line 204) | def forward(self, x, **kwargs):
  class RelativePositionBias (line 213) | class RelativePositionBias(nn.Module):
    method __init__ (line 215) | def __init__(self, window_size, num_heads):
    method forward (line 244) | def forward(self):
  class VisionTransformer (line 252) | class VisionTransformer(nn.Module):
    method __init__ (line 255) | def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classe...
    method fix_init_weight (line 315) | def fix_init_weight(self):
    method _init_weights (line 323) | def _init_weights(self, m):
    method get_num_layers (line 334) | def get_num_layers(self):
    method no_weight_decay (line 338) | def no_weight_decay(self):
    method get_classifier (line 341) | def get_classifier(self):
    method reset_classifier (line 344) | def reset_classifier(self, num_classes, global_pool=''):
    method forward_features (line 348) | def forward_features(self, x, bool_masked_pos=None):
    method forward (line 391) | def forward(self, x, bool_masked_pos=None):
  function beit_small_patch16_224 (line 398) | def beit_small_patch16_224(pretrained=False, **kwargs):
  function beit_base_patch16_224 (line 407) | def beit_base_patch16_224(pretrained=False, **kwargs):
  function beit_base_patch16_384 (line 416) | def beit_base_patch16_384(pretrained=False, **kwargs):
  function beit_large_patch16_224 (line 425) | def beit_large_patch16_224(pretrained=False, **kwargs):
  function beit_large_patch16_384 (line 434) | def beit_large_patch16_384(pretrained=False, **kwargs):
  function beit_large_patch16_512 (line 443) | def beit_large_patch16_512(pretrained=False, **kwargs):

FILE: src/benchmark/pretrain_ssl/models/data2vec/modeling_pretrain.py
  function trunc_normal_ (line 22) | def trunc_normal_(tensor, mean=0., std=1.):
  class VisionTransformerForMaskedImageModeling (line 32) | class VisionTransformerForMaskedImageModeling(nn.Module):
    method __init__ (line 33) | def __init__(self, img_size=224, patch_size=16, in_chans=3, vocab_size...
    method fix_init_weight (line 79) | def fix_init_weight(self):
    method _init_weights (line 87) | def _init_weights(self, m):
    method no_weight_decay (line 101) | def no_weight_decay(self):
    method get_num_layers (line 104) | def get_num_layers(self):
    method forward_features (line 107) | def forward_features(self, x, bool_masked_pos):
    method forward (line 129) | def forward(self, x, bool_masked_pos, return_all_tokens=False):
  function beit_base_patch16_224_8k_vocab (line 140) | def beit_base_patch16_224_8k_vocab(pretrained=False, **kwargs):
  function beit_large_patch16_224_8k_vocab (line 155) | def beit_large_patch16_224_8k_vocab(pretrained=False, **kwargs):

FILE: src/benchmark/pretrain_ssl/models/data2vec/models.py
  function _cfg (line 32) | def _cfg(url='', **kwargs):
  class Attention (line 71) | class Attention(nn.Module):
    method __init__ (line 72) | def __init__(
    method forward (line 127) | def forward(self, x, rel_pos_bias: Optional[torch.Tensor] = None):
  class Block (line 157) | class Block(nn.Module):
    method __init__ (line 159) | def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, drop=...
    method forward (line 179) | def forward(self, x, rel_pos_bias: Optional[torch.Tensor] = None):
  class RelativePositionBias (line 189) | class RelativePositionBias(nn.Module):
    method __init__ (line 191) | def __init__(self, window_size, num_heads):
    method forward (line 220) | def forward(self):
  class Beit (line 228) | class Beit(nn.Module):
    method __init__ (line 232) | def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classe...
    method fix_init_weight (line 281) | def fix_init_weight(self):
    method _init_weights (line 289) | def _init_weights(self, m):
    method get_num_layers (line 298) | def get_num_layers(self):
    method no_weight_decay (line 302) | def no_weight_decay(self):
    method get_classifier (line 305) | def get_classifier(self):
    method reset_classifier (line 308) | def reset_classifier(self, num_classes, global_pool=''):
    method forward_features (line 312) | def forward_features(self, x):
    method forward (line 333) | def forward(self, x):
  function _create_beit (line 339) | def _create_beit(variant, pretrained=False, default_cfg=None, **kwargs):
  function beit_base_patch16_224 (line 354) | def beit_base_patch16_224(pretrained=False, **kwargs):
  function beit_base_patch16_384 (line 366) | def beit_base_patch16_384(pretrained=False, **kwargs):
  function beit_base_patch16_224_in22k (line 375) | def beit_base_patch16_224_in22k(pretrained=False, **kwargs):
  function beit_large_patch16_224 (line 384) | def beit_large_patch16_224(pretrained=False, **kwargs):
  function beit_large_patch16_384 (line 393) | def beit_large_patch16_384(pretrained=False, **kwargs):
  function beit_large_patch16_512 (line 402) | def beit_large_patch16_512(pretrained=False, **kwargs):
  function beit_large_patch16_224_in22k (line 411) | def beit_large_patch16_224_in22k(pretrained=False, **kwargs):

FILE: src/benchmark/pretrain_ssl/models/data2vec/optim_factory.py
  function get_num_layer_for_vit (line 33) | def get_num_layer_for_vit(var_name, num_max_layer):
  class LayerDecayValueAssigner (line 47) | class LayerDecayValueAssigner(object):
    method __init__ (line 48) | def __init__(self, values):
    method get_scale (line 51) | def get_scale(self, layer_id):
    method get_layer_id (line 54) | def get_layer_id(self, var_name):
  function get_parameter_groups (line 58) | def get_parameter_groups(model, weight_decay=1e-5, skip_list=(), get_num...
  function create_optimizer (line 100) | def create_optimizer(args, model, get_num_layer=None, get_layer_scale=No...

FILE: src/benchmark/pretrain_ssl/models/data2vec/run_beit_pretraining.py
  function get_args (line 34) | def get_args():
  function get_model (line 139) | def get_model(args):
  function main (line 154) | def main(args):

FILE: src/benchmark/pretrain_ssl/models/data2vec/run_class_finetuning.py
  function get_args (line 39) | def get_args():
  function main (line 241) | def main(args, ds_init):

FILE: src/benchmark/pretrain_ssl/models/data2vec/run_cyclical.py
  function get_args (line 37) | def get_args():
  function get_model (line 280) | def get_model(args):
  function main (line 304) | def main(args):

FILE: src/benchmark/pretrain_ssl/models/data2vec/run_cyclical_joint.py
  function get_args (line 36) | def get_args():
  function get_model (line 264) | def get_model(args):
  function main (line 279) | def main(args):

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/backbone/beit.py
  class DropPath (line 26) | class DropPath(nn.Module):
    method __init__ (line 29) | def __init__(self, drop_prob=None):
    method forward (line 33) | def forward(self, x):
    method extra_repr (line 36) | def extra_repr(self) -> str:
  class Mlp (line 40) | class Mlp(nn.Module):
    method __init__ (line 41) | def __init__(self, in_features, hidden_features=None, out_features=Non...
    method forward (line 50) | def forward(self, x):
  class Attention (line 60) | class Attention(nn.Module):
    method __init__ (line 61) | def __init__(
    method forward (line 117) | def forward(self, x, rel_pos_bias=None):
  class Block (line 150) | class Block(nn.Module):
    method __init__ (line 152) | def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_sc...
    method forward (line 172) | def forward(self, x, rel_pos_bias=None):
  class PatchEmbed (line 182) | class PatchEmbed(nn.Module):
    method __init__ (line 185) | def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=...
    method forward (line 197) | def forward(self, x, **kwargs):
  class HybridEmbed (line 209) | class HybridEmbed(nn.Module):
    method __init__ (line 213) | def __init__(self, backbone, img_size=224, feature_size=None, in_chans...
    method forward (line 237) | def forward(self, x):
  class RelativePositionBias (line 244) | class RelativePositionBias(nn.Module):
    method __init__ (line 246) | def __init__(self, window_size, num_heads):
    method forward (line 275) | def forward(self):
  class BEiT (line 284) | class BEiT(nn.Module):
    method __init__ (line 287) | def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classe...
    method fix_init_weight (line 366) | def fix_init_weight(self):
    method _init_weights (line 374) | def _init_weights(self, m):
    method init_weights (line 383) | def init_weights(self, pretrained=None):
    method get_num_layers (line 409) | def get_num_layers(self):
    method no_weight_decay (line 413) | def no_weight_decay(self):
    method forward_features (line 416) | def forward_features(self, x):
    method forward (line 441) | def forward(self, x):

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/apex_iter_based_runner.py
  class IterBasedRunnerAmp (line 20) | class IterBasedRunnerAmp(IterBasedRunner):
    method save_checkpoint (line 26) | def save_checkpoint(self,
    method resume (line 68) | def resume(self,

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/checkpoint.py
  function save_checkpoint (line 19) | def save_checkpoint(model, filename, optimizer=None, meta=None):

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/optimizer.py
  class DistOptimizerHook (line 9) | class DistOptimizerHook(OptimizerHook):
    method __init__ (line 12) | def __init__(self, update_interval=1, grad_clip=None, coalesce=True, b...
    method before_run (line 19) | def before_run(self, runner):
    method after_train_iter (line 22) | def after_train_iter(self, runner):

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/checkpoint.py
  function _get_mmcv_home (line 34) | def _get_mmcv_home():
  function load_state_dict (line 45) | def load_state_dict(module, state_dict, strict=False, logger=None):
  function load_url_dist (line 113) | def load_url_dist(url, model_dir=None, map_location="cpu"):
  function load_pavimodel_dist (line 127) | def load_pavimodel_dist(model_path, map_location=None):
  function load_fileclient_dist (line 155) | def load_fileclient_dist(filename, backend, map_location):
  function get_torchvision_models (line 176) | def get_torchvision_models():
  function get_external_models (line 188) | def get_external_models():
  function get_mmcls_models (line 202) | def get_mmcls_models():
  function get_deprecated_model_names (line 209) | def get_deprecated_model_names():
  function _process_mmcls_checkpoint (line 218) | def _process_mmcls_checkpoint(checkpoint):
  function _load_checkpoint (line 229) | def _load_checkpoint(filename, map_location=None):
  function cosine_scheduler (line 290) | def cosine_scheduler(base_value, final_value, epochs, niter_per_ep, warm...
  function load_checkpoint (line 310) | def load_checkpoint(model,
  function weights_to_cpu (line 476) | def weights_to_cpu(state_dict):
  function _save_to_state_dict (line 491) | def _save_to_state_dict(module, destination, prefix, keep_vars):
  function get_state_dict (line 511) | def get_state_dict(module, destination=None, prefix='', keep_vars=False):
  function save_checkpoint (line 555) | def save_checkpoint(model, filename, optimizer=None, meta=None):

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/layer_decay_optimizer_constructor.py
  function get_num_layer_for_vit (line 6) | def get_num_layer_for_vit(var_name, num_max_layer):
  class LayerDecayOptimizerConstructor (line 19) | class LayerDecayOptimizerConstructor(DefaultOptimizerConstructor):
    method add_params (line 20) | def add_params(self, params, module, prefix='', is_dcn_module=None):

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/resize_transform.py
  class SETR_Resize (line 8) | class SETR_Resize(object):
    method __init__ (line 35) | def __init__(self,
    method random_select (line 66) | def random_select(img_scales):
    method random_sample (line 84) | def random_sample(img_scales):
    method random_sample_ratio (line 111) | def random_sample_ratio(img_scale, ratio_range):
    method _random_scale (line 137) | def _random_scale(self, results):
    method _resize_img (line 170) | def _resize_img(self, results):
    method _resize_seg (line 206) | def _resize_seg(self, results):
    method __call__ (line 217) | def __call__(self, results):
    method __repr__ (line 235) | def __repr__(self):

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/train_api.py
  function set_random_seed (line 18) | def set_random_seed(seed, deterministic=False):
  function train_segmentor (line 37) | def train_segmentor(model,

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/tools/test.py
  function parse_args (line 17) | def parse_args():
  function main (line 67) | def main():

FILE: src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/tools/train.py
  function parse_args (line 23) | def parse_args():
  function main (line 67) | def main():

FILE: src/benchmark/pretrain_ssl/models/data2vec/transforms.py
  class ToNumpy (line 20) | class ToNumpy:
    method __call__ (line 22) | def __call__(self, pil_img):
  class ToTensor (line 30) | class ToTensor:
    method __init__ (line 32) | def __init__(self, dtype=torch.float32):
    method __call__ (line 35) | def __call__(self, pil_img):
  function _pil_interp (line 53) | def _pil_interp(method):
  class RandomResizedCropAndInterpolationWithTwoPic (line 68) | class RandomResizedCropAndInterpolationWithTwoPic:
    method __init__ (line 83) | def __init__(self, size, second_size=None, scale=(0.08, 1.0), ratio=(3...
    method get_params (line 109) | def get_params(img, scale, ratio):
    method __call__ (line 151) | def __call__(self, img):
    method __repr__ (line 170) | def __repr__(self):

FILE: src/benchmark/pretrain_ssl/models/data2vec/utils.py
  class SmoothedValue (line 33) | class SmoothedValue(object):
    method __init__ (line 38) | def __init__(self, window_size=20, fmt=None):
    method update (line 46) | def update(self, value, n=1):
    method synchronize_between_processes (line 51) | def synchronize_between_processes(self):
    method median (line 65) | def median(self):
    method avg (line 70) | def avg(self):
    method global_avg (line 75) | def global_avg(self):
    method max (line 79) | def max(self):
    method value (line 83) | def value(self):
    method __str__ (line 86) | def __str__(self):
  class MetricLogger (line 95) | class MetricLogger(object):
    method __init__ (line 96) | def __init__(self, delimiter="\t"):
    method update (line 100) | def update(self, **kwargs):
    method __getattr__ (line 109) | def __getattr__(self, attr):
    method __str__ (line 117) | def __str__(self):
    method synchronize_between_processes (line 125) | def synchronize_between_processes(self):
    method add_meter (line 129) | def add_meter(self, name, meter):
    method log_every (line 132) | def log_every(self, iterable, print_freq, header=None):
  class TensorboardLogger (line 179) | class TensorboardLogger(object):
    method __init__ (line 180) | def __init__(self, log_dir):
    method set_step (line 184) | def set_step(self, step=None):
    method update (line 190) | def update(self, head='scalar', step=None, **kwargs):
    method flush (line 199) | def flush(self):
  function _load_checkpoint_for_ema (line 203) | def _load_checkpoint_for_ema(model_ema, checkpoint):
  function setup_for_distributed (line 217) | def setup_for_distributed(is_master):
  function is_dist_avail_and_initialized (line 232) | def is_dist_avail_and_initialized():
  function get_world_size (line 240) | def get_world_size():
  function get_rank (line 246) | def get_rank():
  function is_main_process (line 252) | def is_main_process():
  function save_on_master (line 256) | def save_on_master(*args, **kwargs):
  function init_distributed_mode (line 261) | def init_distributed_mode(args):
  function load_state_dict (line 314) | def load_state_dict(model, state_dict, prefix='', ignore_missing="relati...
  class NativeScalerWithGradNormCount (line 363) | class NativeScalerWithGradNormCount:
    method __init__ (line 366) | def __init__(self):
    method __call__ (line 369) | def __call__(self, loss, optimizer, clip_grad=None, parameters=None, c...
    method state_dict (line 385) | def state_dict(self):
    method load_state_dict (line 388) | def load_state_dict(self, state_dict):
  function get_grad_norm_ (line 392) | def get_grad_norm_(parameters, norm_type: float = 2.0) -> torch.Tensor:
  function cosine_scheduler (line 407) | def cosine_scheduler(base_value, final_value, epochs, niter_per_ep, warm...
  function tri_phase_scheduler (line 426) | def tri_phase_scheduler(base_value, final_value, epochs, niter_per_ep, w...
  function save_model (line 461) | def save_model(args, epoch, model, model_without_ddp, optimizer, loss_sc...
  function auto_load_model (line 486) | def auto_load_model(args, model, model_without_ddp, optimizer, loss_scal...
  function create_d_vae (line 541) | def create_d_vae(weight_path, d_vae_type, image_size, device):
  function get_dalle_vae (line 550) | def get_dalle_vae(weight_path, image_size, device):
  function get_d_vae (line 556) | def get_d_vae(weight_path, image_size, device):
  function create_ds_config (line 576) | def create_ds_config(args):

FILE: src/benchmark/pretrain_ssl/models/dino/utils.py
  class GaussianBlur (line 37) | class GaussianBlur(object):
    method __init__ (line 41) | def __init__(self, p=0.5, radius_min=0.1, radius_max=2.):
    method __call__ (line 46) | def __call__(self, img):
  class cvGaussianBlur (line 58) | class cvGaussianBlur(object):
    method __init__ (line 61) | def __init__(self, p=0.5, sigma=[.1, 2.]):
    method __call__ (line 65) | def __call__(self, x):
  class Solarization (line 78) | class Solarization(object):
    method __init__ (line 82) | def __init__(self, p):
    method __call__ (line 85) | def __call__(self, img):
  function load_pretrained_weights (line 92) | def load_pretrained_weights(model, pretrained_weights, checkpoint_key, m...
  function load_pretrained_linear_weights (line 133) | def load_pretrained_linear_weights(linear_classifier, model_name, patch_...
  function clip_gradients (line 153) | def clip_gradients(model, clip):
  function cancel_gradients_last_layer (line 165) | def cancel_gradients_last_layer(epoch, model, freeze_last_layer):
  function restart_from_checkpoint (line 173) | def restart_from_checkpoint(ckp_path, run_variables=None, **kwargs):
  function cosine_scheduler (line 208) | def cosine_scheduler(base_value, final_value, epochs, niter_per_ep, warm...
  function bool_flag (line 222) | def bool_flag(s):
  function fix_random_seeds (line 236) | def fix_random_seeds(seed=31):
  class SmoothedValue (line 245) | class SmoothedValue(object):
    method __init__ (line 250) | def __init__(self, window_size=20, fmt=None):
    method update (line 258) | def update(self, value, n=1):
    method synchronize_between_processes (line 263) | def synchronize_between_processes(self):
    method median (line 277) | def median(self):
    method avg (line 282) | def avg(self):
    method global_avg (line 287) | def global_avg(self):
    method max (line 291) | def max(self):
    method value (line 295) | def value(self):
    method __str__ (line 298) | def __str__(self):
  function reduce_dict (line 307) | def reduce_dict(input_dict, average=True):
  class MetricLogger (line 334) | class MetricLogger(object):
    method __init__ (line 335) | def __init__(self, delimiter="\t"):
    method update (line 339) | def update(self, **kwargs):
    method __getattr__ (line 346) | def __getattr__(self, attr):
    method __str__ (line 354) | def __str__(self):
    method synchronize_between_processes (line 362) | def synchronize_between_processes(self):
    method add_meter (line 366) | def add_meter(self, name, meter):
    method log_every (line 369) | def log_every(self, iterable, print_freq, header=None):
  function get_sha (line 424) | def get_sha():
  function is_dist_avail_and_initialized (line 444) | def is_dist_avail_and_initialized():
  function get_world_size (line 452) | def get_world_size():
  function get_rank (line 458) | def get_rank():
  function is_main_process (line 464) | def is_main_process():
  function save_on_master (line 468) | def save_on_master(*args, **kwargs):
  function setup_for_distributed (line 473) | def setup_for_distributed(is_master):
  function init_distributed_mode (line 488) | def init_distributed_mode(args):
  function accuracy (line 526) | def accuracy(output, target, topk=(1,)):
  function _no_grad_trunc_normal_ (line 536) | def _no_grad_trunc_normal_(tensor, mean, std, a, b):
  function trunc_normal_ (line 572) | def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.):
  class LARS (line 577) | class LARS(torch.optim.Optimizer):
    method __init__ (line 581) | def __init__(self, params, lr=0, weight_decay=0, momentum=0.9, eta=0.001,
    method step (line 589) | def step(self):
  class MultiCropWrapper (line 618) | class MultiCropWrapper(nn.Module):
    method __init__ (line 627) | def __init__(self, backbone, head):
    method forward (line 634) | def forward(self, x):
  function get_params_groups (line 656) | def get_params_groups(model):
  function has_batchnorms (line 670) | def has_batchnorms(model):
  class PCA (line 678) | class PCA():
    method __init__ (line 682) | def __init__(self, dim=256, whit=0.5):
    method train_pca (line 687) | def train_pca(self, cov):
    method apply (line 713) | def apply(self, x):
  function compute_ap (line 732) | def compute_ap(ranks, nres):
  function compute_map (line 767) | def compute_map(ranks, gnd, kappas=[]):
  function multi_scale (line 839) | def multi_scale(samples, model):

FILE: src/benchmark/pretrain_ssl/models/dino/vision_transformer.py
  function drop_path (line 27) | def drop_path(x, drop_prob: float = 0., training: bool = False):
  class DropPath (line 38) | class DropPath(nn.Module):
    method __init__ (line 41) | def __init__(self, drop_prob=None):
    method forward (line 45) | def forward(self, x):
  class Mlp (line 49) | class Mlp(nn.Module):
    method __init__ (line 50) | def __init__(self, in_features, hidden_features=None, out_features=Non...
    method forward (line 59) | def forward(self, x):
  class Attention (line 68) | class Attention(nn.Module):
    method __init__ (line 69) | def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, at...
    method forward (line 80) | def forward(self, x):
  class Block (line 95) | class Block(nn.Module):
    method __init__ (line 96) | def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_sc...
    method forward (line 107) | def forward(self, x, return_attention=False):
  class PatchEmbed (line 116) | class PatchEmbed(nn.Module):
    method __init__ (line 119) | def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=...
    method forward (line 128) | def forward(self, x):
  class VisionTransformer (line 134) | class VisionTransformer(nn.Module):
    method __init__ (line 136) | def __init__(self, img_size=[224], patch_size=16, in_chans=3, num_clas...
    method _init_weights (line 165) | def _init_weights(self, m):
    method interpolate_pos_encoding (line 174) | def interpolate_pos_encoding(self, x, w, h):
    method prepare_tokens (line 196) | def prepare_tokens(self, x):
    method forward (line 209) | def forward(self, x):
    method get_last_selfattention (line 216) | def get_last_selfattention(self, x):
    method get_intermediate_layers (line 225) | def get_intermediate_layers(self, x, n=1):
  function vit_tiny (line 236) | def vit_tiny(patch_size=16, **kwargs):
  function vit_small (line 243) | def vit_small(patch_size=16, **kwargs):
  function vit_base (line 250) | def vit_base(patch_size=16, **kwargs):
  class DINOHead (line 257) | class DINOHead(nn.Module):
    method __init__ (line 258) | def __init__(self, in_dim, out_dim, use_bn=False, norm_last_layer=True...
    method _init_weights (line 281) | def _init_weights(self, m):
    method forward (line 287) | def forward(self, x):

FILE: src/benchmark/pretrain_ssl/models/mae/engine_finetune.py
  function train_one_epoch (line 25) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 99) | def evaluate(data_loader, model, device):

FILE: src/benchmark/pretrain_ssl/models/mae/engine_finetune_BE.py
  function train_one_epoch (line 29) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 107) | def evaluate(data_loader, model, device, criterion):

FILE: src/benchmark/pretrain_ssl/models/mae/engine_finetune_EU.py
  function train_one_epoch (line 29) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 104) | def evaluate(data_loader, model, device, criterion):

FILE: src/benchmark/pretrain_ssl/models/mae/engine_finetune_SS.py
  function train_one_epoch (line 29) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 104) | def evaluate(data_loader, model, device, criterion):

FILE: src/benchmark/pretrain_ssl/models/mae/engine_pretrain.py
  function train_one_epoch (line 23) | def train_one_epoch(model: torch.nn.Module,

FILE: src/benchmark/pretrain_ssl/models/mae/main_finetune.py
  function get_args_parser (line 42) | def get_args_parser():
  function main (line 158) | def main(args):

FILE: src/benchmark/pretrain_ssl/models/mae/main_linprobe.py
  function get_args_parser (line 47) | def get_args_parser():
  function main (line 121) | def main(args):

FILE: src/benchmark/pretrain_ssl/models/mae/main_pretrain.py
  class SeasonTransform (line 41) | class SeasonTransform:
    method __init__ (line 43) | def __init__(self, base_transform, season='fixed'):
    method __call__ (line 47) | def __call__(self, x):
  function get_args_parser (line 72) | def get_args_parser():
  function main (line 151) | def main(args):

FILE: src/benchmark/pretrain_ssl/models/mae/models_mae.py
  class MaskedAutoencoderViT (line 22) | class MaskedAutoencoderViT(nn.Module):
    method __init__ (line 25) | def __init__(self, img_size=224, patch_size=16, in_chans=3,
    method initialize_weights (line 67) | def initialize_weights(self):
    method _init_weights (line 87) | def _init_weights(self, m):
    method patchify (line 97) | def patchify(self, imgs):
    method unpatchify (line 111) | def unpatchify(self, x):
    method random_masking (line 125) | def random_masking(self, x, mask_ratio):
    method forward_encoder (line 152) | def forward_encoder(self, x, mask_ratio):
    method forward_decoder (line 174) | def forward_decoder(self, x, ids_restore):
    method forward_loss (line 200) | def forward_loss(self, imgs, pred, mask):
    method forward (line 218) | def forward(self, imgs, mask_ratio=0.75):
  function mae_vit_small_patch16_dec512d8b (line 225) | def mae_vit_small_patch16_dec512d8b(**kwargs):
  function mae_vit_base_patch16_dec512d8b (line 232) | def mae_vit_base_patch16_dec512d8b(**kwargs):
  function mae_vit_large_patch16_dec512d8b (line 240) | def mae_vit_large_patch16_dec512d8b(**kwargs):
  function mae_vit_huge_patch14_dec512d8b (line 248) | def mae_vit_huge_patch14_dec512d8b(**kwargs):

FILE: src/benchmark/pretrain_ssl/models/mae/models_vit.py
  class VisionTransformer (line 20) | class VisionTransformer(timm.models.vision_transformer.VisionTransformer):
    method __init__ (line 23) | def __init__(self, global_pool=False, **kwargs):
    method forward_features (line 34) | def forward_features(self, x):
  function vit_small_patch16 (line 55) | def vit_small_patch16(**kwargs):
  function vit_base_patch16 (line 61) | def vit_base_patch16(**kwargs):
  function vit_large_patch16 (line 68) | def vit_large_patch16(**kwargs):
  function vit_huge_patch14 (line 75) | def vit_huge_patch14(**kwargs):

FILE: src/benchmark/pretrain_ssl/models/mae/submitit_finetune.py
  function parse_args (line 19) | def parse_args():
  function get_shared_folder (line 33) | def get_shared_folder() -> Path:
  function get_init_file (line 42) | def get_init_file():
  class Trainer (line 51) | class Trainer(object):
    method __init__ (line 52) | def __init__(self, args):
    method __call__ (line 55) | def __call__(self):
    method checkpoint (line 61) | def checkpoint(self):
    method _setup_gpu_args (line 73) | def _setup_gpu_args(self):
  function main (line 86) | def main():

FILE: src/benchmark/pretrain_ssl/models/mae/submitit_linprobe.py
  function parse_args (line 19) | def parse_args():
  function get_shared_folder (line 33) | def get_shared_folder() -> Path:
  function get_init_file (line 42) | def get_init_file():
  class Trainer (line 51) | class Trainer(object):
    method __init__ (line 52) | def __init__(self, args):
    method __call__ (line 55) | def __call__(self):
    method checkpoint (line 61) | def checkpoint(self):
    method _setup_gpu_args (line 73) | def _setup_gpu_args(self):
  function main (line 86) | def main():

FILE: src/benchmark/pretrain_ssl/models/mae/submitit_pretrain.py
  function parse_args (line 19) | def parse_args():
  function get_shared_folder (line 33) | def get_shared_folder() -> Path:
  function get_init_file (line 42) | def get_init_file():
  class Trainer (line 51) | class Trainer(object):
    method __init__ (line 52) | def __init__(self, args):
    method __call__ (line 55) | def __call__(self):
    method checkpoint (line 61) | def checkpoint(self):
    method _setup_gpu_args (line 73) | def _setup_gpu_args(self):
  function main (line 86) | def main():

FILE: src/benchmark/pretrain_ssl/models/mae/util/crop.py
  class RandomResizedCrop (line 15) | class RandomResizedCrop(transforms.RandomResizedCrop):
    method get_params (line 23) | def get_params(img, scale, ratio):

FILE: src/benchmark/pretrain_ssl/models/mae/util/datasets.py
  function build_dataset (line 20) | def build_dataset(is_train, args):
  function build_transform (line 31) | def build_transform(is_train, args):

FILE: src/benchmark/pretrain_ssl/models/mae/util/lars.py
  class LARS (line 14) | class LARS(torch.optim.Optimizer):
    method __init__ (line 18) | def __init__(self, params, lr=0, weight_decay=0, momentum=0.9, trust_c...
    method step (line 23) | def step(self):

FILE: src/benchmark/pretrain_ssl/models/mae/util/lr_decay.py
  function param_groups_lrd (line 15) | def param_groups_lrd(model, weight_decay=0.05, no_weight_decay_list=[], ...
  function get_layer_id_for_vit (line 64) | def get_layer_id_for_vit(name, num_layers):

FILE: src/benchmark/pretrain_ssl/models/mae/util/lr_sched.py
  function adjust_learning_rate (line 9) | def adjust_learning_rate(optimizer, epoch, args):

FILE: src/benchmark/pretrain_ssl/models/mae/util/misc.py
  class SmoothedValue (line 24) | class SmoothedValue(object):
    method __init__ (line 29) | def __init__(self, window_size=20, fmt=None):
    method update (line 37) | def update(self, value, n=1):
    method synchronize_between_processes (line 42) | def synchronize_between_processes(self):
    method median (line 56) | def median(self):
    method avg (line 61) | def avg(self):
    method global_avg (line 66) | def global_avg(self):
    method max (line 70) | def max(self):
    method value (line 74) | def value(self):
    method __str__ (line 77) | def __str__(self):
  class MetricLogger (line 86) | class MetricLogger(object):
    method __init__ (line 87) | def __init__(self, delimiter="\t"):
    method update (line 91) | def update(self, **kwargs):
    method __getattr__ (line 100) | def __getattr__(self, attr):
    method __str__ (line 108) | def __str__(self):
    method synchronize_between_processes (line 116) | def synchronize_between_processes(self):
    method add_meter (line 120) | def add_meter(self, name, meter):
    method log_every (line 123) | def log_every(self, iterable, print_freq, header=None):
  function setup_for_distributed (line 170) | def setup_for_distributed(is_master):
  function is_dist_avail_and_initialized (line 187) | def is_dist_avail_and_initialized():
  function get_world_size (line 195) | def get_world_size():
  function get_rank (line 201) | def get_rank():
  function is_main_process (line 207) | def is_main_process():
  function save_on_master (line 211) | def save_on_master(*args, **kwargs):
  function init_distributed_mode (line 216) | def init_distributed_mode(args):
  class NativeScalerWithGradNormCount (line 253) | class NativeScalerWithGradNormCount:
    method __init__ (line 256) | def __init__(self):
    method __call__ (line 259) | def __call__(self, loss, optimizer, clip_grad=None, parameters=None, c...
    method state_dict (line 275) | def state_dict(self):
    method load_state_dict (line 278) | def load_state_dict(self, state_dict):
  function get_grad_norm_ (line 282) | def get_grad_norm_(parameters, norm_type: float = 2.0) -> torch.Tensor:
  function save_model (line 297) | def save_model(args, epoch, model, model_without_ddp, optimizer, loss_sc...
  function load_model (line 317) | def load_model(args, model_without_ddp, optimizer, loss_scaler):
  function all_reduce_mean (line 334) | def all_reduce_mean(x):

FILE: src/benchmark/pretrain_ssl/models/mae/util/pos_embed.py
  function get_2d_sincos_pos_embed (line 20) | def get_2d_sincos_pos_embed(embed_dim, grid_size, cls_token=False):
  function get_2d_sincos_pos_embed_from_grid (line 38) | def get_2d_sincos_pos_embed_from_grid(embed_dim, grid):
  function get_1d_sincos_pos_embed_from_grid (line 49) | def get_1d_sincos_pos_embed_from_grid(embed_dim, pos):
  function interpolate_pos_embed (line 75) | def interpolate_pos_embed(model, checkpoint_model):

FILE: src/benchmark/pretrain_ssl/models/moco/builder.py
  class MoCo (line 6) | class MoCo(nn.Module):
    method __init__ (line 11) | def __init__(self, base_encoder, dim=128, K=65536, m=0.999, T=0.07, ml...
    method _momentum_update_key_encoder (line 68) | def _momentum_update_key_encoder(self):
    method _dequeue_and_enqueue (line 76) | def _dequeue_and_enqueue(self, keys):
    method _batch_shuffle_ddp (line 92) | def _batch_shuffle_ddp(self, x):
    method _batch_unshuffle_ddp (line 120) | def _batch_unshuffle_ddp(self, x, idx_unshuffle):
    method forward (line 138) | def forward(self, im_q, im_k):
  function concat_all_gather (line 188) | def concat_all_gather(tensor):

FILE: src/benchmark/pretrain_ssl/models/moco/loader.py
  class TwoCropsTransform (line 11) | class TwoCropsTransform:
    method __init__ (line 14) | def __init__(self, base_transform):
    method __call__ (line 17) | def __call__(self, x):
  class GaussianBlur (line 23) | class GaussianBlur(object):
    method __init__ (line 26) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 29) | def __call__(self, x):

FILE: src/benchmark/pretrain_ssl/models/moco_v2/builder.py
  class MoCo (line 6) | class MoCo(nn.Module):
    method __init__ (line 11) | def __init__(self, base_encoder, dim=128, K=65536, m=0.999, T=0.07, ml...
    method _momentum_update_key_encoder (line 57) | def _momentum_update_key_encoder(self):
    method _dequeue_and_enqueue (line 65) | def _dequeue_and_enqueue(self, keys):
    method _batch_shuffle_ddp (line 81) | def _batch_shuffle_ddp(self, x):
    method _batch_unshuffle_ddp (line 109) | def _batch_unshuffle_ddp(self, x, idx_unshuffle):
    method forward (line 127) | def forward(self, im_q, im_k):
  function concat_all_gather (line 177) | def concat_all_gather(tensor):

FILE: src/benchmark/pretrain_ssl/models/moco_v2/detection/train_net.py
  class Res5ROIHeadsExtraNorm (line 15) | class Res5ROIHeadsExtraNorm(Res5ROIHeads):
    method _build_res5_block (line 20) | def _build_res5_block(self, cfg):
  class Trainer (line 28) | class Trainer(DefaultTrainer):
    method build_evaluator (line 30) | def build_evaluator(cls, cfg, dataset_name, output_folder=None):
  function setup (line 40) | def setup(args):
  function main (line 49) | def main(args):

FILE: src/benchmark/pretrain_ssl/models/moco_v2/loader.py
  class TwoCropsTransform (line 11) | class TwoCropsTransform:
    method __init__ (line 14) | def __init__(self, base_transform):
    method __call__ (line 17) | def __call__(self, x):
  class GaussianBlur (line 23) | class GaussianBlur(object):
    method __init__ (line 26) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 29) | def __call__(self, x):

FILE: src/benchmark/pretrain_ssl/models/moco_v2/main_lincls.py
  function main (line 86) | def main():
  function main_worker (line 121) | def main_worker(gpu, ngpus_per_node, args):
  function train (line 308) | def train(train_loader, model, criterion, optimizer, epoch, args):
  function validate (line 360) | def validate(val_loader, model, criterion, args):
  function save_checkpoint (line 404) | def save_checkpoint(state, is_best, filename='checkpoint.pth.tar'):
  function sanity_check (line 410) | def sanity_check(state_dict, pretrained_weights):
  class AverageMeter (line 434) | class AverageMeter(object):
    method __init__ (line 436) | def __init__(self, name, fmt=':f'):
    method reset (line 441) | def reset(self):
    method update (line 447) | def update(self, val, n=1):
    method __str__ (line 453) | def __str__(self):
  class ProgressMeter (line 458) | class ProgressMeter(object):
    method __init__ (line 459) | def __init__(self, num_batches, meters, prefix=""):
    method display (line 464) | def display(self, batch):
    method _get_batch_fmtstr (line 469) | def _get_batch_fmtstr(self, num_batches):
  function adjust_learning_rate (line 475) | def adjust_learning_rate(optimizer, epoch, args):
  function accuracy (line 484) | def accuracy(output, target, topk=(1,)):

FILE: src/benchmark/pretrain_ssl/models/moco_v3/builder.py
  class MoCo (line 11) | class MoCo(nn.Module):
    method __init__ (line 16) | def __init__(self, base_encoder, dim=256, mlp_dim=4096, T=1.0):
    method _build_mlp (line 36) | def _build_mlp(self, num_layers, input_dim, mlp_dim, output_dim, last_...
    method _build_projector_and_predictor_mlps (line 54) | def _build_projector_and_predictor_mlps(self, dim, mlp_dim):
    method _update_momentum_encoder (line 58) | def _update_momentum_encoder(self, m):
    method contrastive_loss (line 63) | def contrastive_loss(self, q, k):
    method forward (line 75) | def forward(self, x1, x2, m):
  class MoCo_ResNet (line 99) | class MoCo_ResNet(MoCo):
    method _build_projector_and_predictor_mlps (line 100) | def _build_projector_and_predictor_mlps(self, dim, mlp_dim):
  class MoCo_ViT (line 112) | class MoCo_ViT(MoCo):
    method _build_projector_and_predictor_mlps (line 113) | def _build_projector_and_predictor_mlps(self, dim, mlp_dim):
  function concat_all_gather (line 127) | def concat_all_gather(tensor):

FILE: src/benchmark/pretrain_ssl/models/moco_v3/loader.py
  class TwoCropsTransform (line 14) | class TwoCropsTransform:
    method __init__ (line 17) | def __init__(self, base_transform1, base_transform2):
    method __call__ (line 21) | def __call__(self, x):
  class GaussianBlur (line 27) | class GaussianBlur(object):
    method __init__ (line 30) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 33) | def __call__(self, x):
  class Solarize (line 40) | class Solarize(object):
    method __call__ (line 43) | def __call__(self, x):
  class cvGaussianBlur (line 50) | class cvGaussianBlur(object):
    method __init__ (line 53) | def __init__(self, p=0.5, sigma=[.1, 2.]):
    method __call__ (line 57) | def __call__(self, x):

FILE: src/benchmark/pretrain_ssl/models/moco_v3/optimizer.py
  class LARS (line 10) | class LARS(torch.optim.Optimizer):
    method __init__ (line 14) | def __init__(self, params, lr=0, weight_decay=0, momentum=0.9, trust_c...
    method step (line 19) | def step(self):

FILE: src/benchmark/pretrain_ssl/models/moco_v3/vits.py
  class VisionTransformerMoCo (line 25) | class VisionTransformerMoCo(VisionTransformer):
    method __init__ (line 26) | def __init__(self, stop_grad_conv1=False, **kwargs):
    method build_2d_sincos_position_embedding (line 53) | def build_2d_sincos_position_embedding(self, temperature=10000.):
  class ConvStem (line 72) | class ConvStem(nn.Module):
    method __init__ (line 76) | def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=...
    method forward (line 104) | def forward(self, x):
  function vit_small (line 115) | def vit_small(**kwargs):
  function vit_base (line 122) | def vit_base(**kwargs):
  function vit_conv_small (line 129) | def vit_conv_small(**kwargs):
  function vit_conv_base (line 137) | def vit_conv_base(**kwargs):

FILE: src/benchmark/pretrain_ssl/models/rs_transforms_float32.py
  class RandomBrightness (line 7) | class RandomBrightness(object):
    method __init__ (line 10) | def __init__(self, brightness=0.4):
    method __call__ (line 13) | def __call__(self, sample):
  class RandomContrast (line 19) | class RandomContrast(object):
    method __init__ (line 22) | def __init__(self, contrast=0.4):
    method __call__ (line 25) | def __call__(self, sample):
  class ToGray (line 31) | class ToGray(object):
    method __init__ (line 32) | def __init__(self, out_channels):
    method __call__ (line 34) | def __call__(self,sample):
  class RandomChannelDrop (line 41) | class RandomChannelDrop(object):
    method __init__ (line 44) | def __init__(self, min_n_drop=1, max_n_drop=8):
    method __call__ (line 48) | def __call__(self, sample):

FILE: src/benchmark/pretrain_ssl/models/rs_transforms_uint8.py
  class RandomBrightness (line 7) | class RandomBrightness(object):
    method __init__ (line 10) | def __init__(self, brightness=0.4):
    method __call__ (line 13) | def __call__(self, sample):
  class RandomContrast (line 19) | class RandomContrast(object):
    method __init__ (line 22) | def __init__(self, contrast=0.4):
    method __call__ (line 25) | def __call__(self, sample):
  class ToGray (line 31) | class ToGray(object):
    method __init__ (line 32) | def __init__(self, out_channels):
    method __call__ (line 34) | def __call__(self,sample):
  class RandomChannelDrop (line 41) | class RandomChannelDrop(object):
    method __init__ (line 44) | def __init__(self, min_n_drop=1, max_n_drop=8):
    method __call__ (line 48) | def __call__(self, sample):
  class GaussianBlur (line 57) | class GaussianBlur(object):
    method __init__ (line 60) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 63) | def __call__(self, x):
  class Solarize (line 70) | class Solarize(object):
    method __init__ (line 72) | def __init__(self, threshold=0.5):
    method __call__ (line 75) | def __call__(self, x):
  class RandomSensorDrop_S1S2 (line 82) | class RandomSensorDrop_S1S2(object):
    method __init__ (line 85) | def __init__(self):
    method __call__ (line 88) | def __call__(self, sample):
  class SensorDrop_S1S2 (line 98) | class SensorDrop_S1S2(object):
    method __init__ (line 99) | def __init__(self, sensor):
    method __call__ (line 101) | def __call__(self,sample):
  class RandomSensorDrop_RGBD (line 109) | class RandomSensorDrop_RGBD(object):
    method __init__ (line 112) | def __init__(self):
    method __call__ (line 115) | def __call__(self, sample):
  class SensorDrop_RGBD (line 125) | class SensorDrop_RGBD(object):
    method __init__ (line 126) | def __init__(self, sensor):
    method __call__ (line 128) | def __call__(self,sample):

FILE: src/benchmark/pretrain_ssl/pretrain_data2vec.py
  function get_args (line 38) | def get_args():
  function get_model (line 293) | def get_model(args):
  function main (line 317) | def main(args):

FILE: src/benchmark/pretrain_ssl/pretrain_dino_s2c.py
  function get_args_parser (line 54) | def get_args_parser():
  function train_dino (line 158) | def train_dino(args):
  function train_one_epoch (line 369) | def train_one_epoch(student, teacher, teacher_without_ddp, dino_loss, da...
  class DINOLoss (line 434) | class DINOLoss(nn.Module):
    method __init__ (line 435) | def __init__(self, out_dim, ncrops, warmup_teacher_temp, teacher_temp,
    method forward (line 451) | def forward(self, student_output, teacher_output, epoch):
    method update_center (line 478) | def update_center(self, teacher_output):
  class DataAugmentationDINO (line 491) | class DataAugmentationDINO(object):
    method __init__ (line 492) | def __init__(self, global_crops_scale, local_crops_scale, local_crops_...
    method __call__ (line 534) | def __call__(self, image):
  class DataAugmentationDINO_S2 (line 549) | class DataAugmentationDINO_S2(object):
    method __init__ (line 550) | def __init__(self, global_crops_scale, local_crops_scale, local_crops_...
    method __call__ (line 591) | def __call__(self, image):
  class DataAugmentationDINO_S1 (line 618) | class DataAugmentationDINO_S1(object):
    method __init__ (line 619) | def __init__(self, global_crops_scale, local_crops_scale, local_crops_...
    method __call__ (line 657) | def __call__(self, image):

FILE: src/benchmark/pretrain_ssl/pretrain_mae_s2c.py
  class SeasonTransform (line 41) | class SeasonTransform:
    method __init__ (line 43) | def __init__(self, base_transform, season='fixed'):
    method __call__ (line 47) | def __call__(self, x):
  function get_args_parser (line 72) | def get_args_parser():
  function main (line 153) | def main(args):

FILE: src/benchmark/pretrain_ssl/pretrain_moco_v2_s2c.py
  class TwoCropsTransform (line 128) | class TwoCropsTransform:
    method __init__ (line 131) | def __init__(self, base_transform, season='fixed'):
    method __call__ (line 135) | def __call__(self, x):
  function main (line 157) | def main():
  function main_worker (line 213) | def main_worker(gpu, ngpus_per_node, args):
  function train (line 388) | def train(train_loader, model, criterion, optimizer, epoch, args):
  function save_checkpoint (line 442) | def save_checkpoint(state, is_best, filename='checkpoint.pth.tar'):
  class AverageMeter (line 448) | class AverageMeter(object):
    method __init__ (line 450) | def __init__(self, name, fmt=':f'):
    method reset (line 455) | def reset(self):
    method update (line 461) | def update(self, val, n=1):
    method __str__ (line 467) | def __str__(self):
  class ProgressMeter (line 472) | class ProgressMeter(object):
    method __init__ (line 473) | def __init__(self, num_batches, meters, prefix=""):
    method display (line 478) | def display(self, batch):
    method _get_batch_fmtstr (line 483) | def _get_batch_fmtstr(self, num_batches):
  function adjust_learning_rate (line 489) | def adjust_learning_rate(optimizer, epoch, args):
  function accuracy (line 501) | def accuracy(output, target, topk=(1,)):

FILE: src/benchmark/pretrain_ssl/pretrain_moco_v2_seco_ms.py
  class SeCoDataset (line 135) | class SeCoDataset(torch.utils.data.Dataset):
    method __init__ (line 137) | def __init__(self,root, normalize=False, dtype='uint8'):
    method __getitem__ (line 145) | def __getitem__(self,index):
    method __len__ (line 152) | def __len__(self):
    method get_array (line 155) | def get_array(self, patch_id, season):
  class LMDBDataset (line 173) | class LMDBDataset(torch.utils.data.Dataset):
    method __init__ (line 175) | def __init__(self, lmdb_file, is_slurm_job=False, s2a_transform=None):
    method _init_db (line 189) | def _init_db(self):
    method __getitem__ (line 195) | def __getitem__(self, index):
    method __len__ (line 212) | def __len__(self):
  class TwoCropsTransform (line 217) | class TwoCropsTransform:
    method __init__ (line 220) | def __init__(self, base_transform):
    method __call__ (line 223) | def __call__(self, x):
  function main (line 234) | def main():
  function main_worker (line 290) | def main_worker(gpu, ngpus_per_node, args):
  function train (line 463) | def train(train_loader, model, criterion, optimizer, epoch, args):
  function save_checkpoint (line 517) | def save_checkpoint(state, is_best, filename='checkpoint.pth.tar'):
  class AverageMeter (line 523) | class AverageMeter(object):
    method __init__ (line 525) | def __init__(self, name, fmt=':f'):
    method reset (line 530) | def reset(self):
    method update (line 536) | def update(self, val, n=1):
    method __str__ (line 542) | def __str__(self):
  class ProgressMeter (line 547) | class ProgressMeter(object):
    method __init__ (line 548) | def __init__(self, num_batches, meters, prefix=""):
    method display (line 553) | def display(self, batch):
    method _get_batch_fmtstr (line 558) | def _get_batch_fmtstr(self, num_batches):
  function adjust_learning_rate (line 564) | def adjust_learning_rate(optimizer, epoch, args):
  function accuracy (line 576) | def accuracy(output, target, topk=(1,)):

FILE: src/benchmark/pretrain_ssl/pretrain_moco_v2_sen12ms_ms.py
  class SEN12MSDataset (line 134) | class SEN12MSDataset(torch.utils.data.Dataset):
    method __init__ (line 135) | def __init__(self, root_dir, mode, transform):
    method __getitem__ (line 141) | def __getitem__(self,index):
    method __len__ (line 157) | def __len__(self):
  class LMDBDataset (line 161) | class LMDBDataset(torch.utils.data.Dataset):
    method __init__ (line 163) | def __init__(self, lmdb_file, is_slurm_job=False, s2c_transform=None):
    method _init_db (line 177) | def _init_db(self):
    method __getitem__ (line 183) | def __getitem__(self, index):
    method __len__ (line 200) | def __len__(self):
  class TwoCropsTransform (line 205) | class TwoCropsTransform:
    method __init__ (line 208) | def __init__(self, base_transform):
    method __call__ (line 211) | def __call__(self, x):
  function main (line 222) | def main():
  function main_worker (line 278) | def main_worker(gpu, ngpus_per_node, args):
  function train (line 451) | def train(train_loader, model, criterion, optimizer, epoch, args):
  function save_checkpoint (line 505) | def save_checkpoint(state, is_best, filename='checkpoint.pth.tar'):
  class AverageMeter (line 511) | class AverageMeter(object):
    method __init__ (line 513) | def __init__(self, name, fmt=':f'):
    method reset (line 518) | def reset(self):
    method update (line 524) | def update(self, val, n=1):
    method __str__ (line 530) | def __str__(self):
  class ProgressMeter (line 535) | class ProgressMeter(object):
    method __init__ (line 536) | def __init__(self, num_batches, meters, prefix=""):
    method display (line 541) | def display(self, batch):
    method _get_batch_fmtstr (line 546) | def _get_batch_fmtstr(self, num_batches):
  function adjust_learning_rate (line 552) | def adjust_learning_rate(optimizer, epoch, args):
  function accuracy (line 564) | def accuracy(output, target, topk=(1,)):

FILE: src/benchmark/pretrain_ssl/pretrain_moco_v3_s2c.py
  class TwoCropsTransform (line 141) | class TwoCropsTransform:
    method __init__ (line 144) | def __init__(self, base_transform1, base_transform2, season='fixed'):
    method __call__ (line 149) | def __call__(self, x):
  function main (line 172) | def main():
  function main_worker (line 216) | def main_worker(gpu, ngpus_per_node, args):
  function train (line 447) | def train(train_loader, model, optimizer, scaler, summary_writer, epoch,...
  function save_checkpoint (line 498) | def save_checkpoint(state, is_best, filename='checkpoint.pth.tar'):
  class AverageMeter (line 504) | class AverageMeter(object):
    method __init__ (line 506) | def __init__(self, name, fmt=':f'):
    method reset (line 511) | def reset(self):
    method update (line 517) | def update(self, val, n=1):
    method __str__ (line 523) | def __str__(self):
  class ProgressMeter (line 528) | class ProgressMeter(object):
    method __init__ (line 529) | def __init__(self, num_batches, meters, prefix=""):
    method display (line 534) | def display(self, batch):
    method _get_batch_fmtstr (line 539) | def _get_batch_fmtstr(self, num_batches):
  function adjust_learning_rate (line 545) | def adjust_learning_rate(optimizer, epoch, args):
  function adjust_moco_momentum (line 556) | def adjust_moco_momentum(epoch, args):

FILE: src/benchmark/transfer_change_detection/datasets/oscd_datamodule.py
  class RandomFlip (line 15) | class RandomFlip:
    method __call__ (line 17) | def __call__(self, *xs):
  class RandomRotation (line 23) | class RandomRotation:
    method __init__ (line 25) | def __init__(self):
    method __call__ (line 28) | def __call__(self, *xs):
  class RandomSwap (line 33) | class RandomSwap:
    method __call__ (line 35) | def __call__(self, x1, x2, y):
  class ToTensor (line 42) | class ToTensor:
    method __call__ (line 44) | def __call__(self, *xs):
  class Compose (line 48) | class Compose:
    method __init__ (line 50) | def __init__(self, transforms):
    method __call__ (line 53) | def __call__(self, *xs):
  class ChangeDetectionDataModule (line 59) | class ChangeDetectionDataModule(LightningDataModule):
    method __init__ (line 61) | def __init__(self, data_dir, RGB_bands=True, BGR_bands=False, S2A_band...
    method setup (line 79) | def setup(self, stage=None):
    method train_dataloader (line 97) | def train_dataloader(self):
    method val_dataloader (line 107) | def val_dataloader(self):

FILE: src/benchmark/transfer_change_detection/datasets/oscd_dataset.py
  function read_image (line 48) | def read_image(path, bands, normalize=True, value_discard=True):
  class ChangeDetectionDataset (line 81) | class ChangeDetectionDataset(Dataset):
    method __init__ (line 83) | def __init__(self, root, split='all', bands=None, transform=None,
    method __getitem__ (line 104) | def __getitem__(self, index):
    method __len__ (line 128) | def __len__(self):

FILE: src/benchmark/transfer_change_detection/main_oscd.py
  function get_args (line 21) | def get_args():
  function dice_loss (line 43) | def dice_loss(out,mask,epsilon=1e-5):
  class SiamSegment (line 49) | class SiamSegment(LightningModule):
    method __init__ (line 51) | def __init__(self, backbone, feature_indices, feature_channels):
    method forward (line 60) | def forward(self, x1, x2):
    method training_step (line 63) | def training_step(self, batch, batch_idx):
    method validation_step (line 83) | def validation_step(self, batch, batch_idx):
    method shared_step (line 103) | def shared_step(self, batch):
    method configure_optimizers (line 114) | def configure_optimizers(self):
  function load_ssl_resnet_encoder (line 122) | def load_ssl_resnet_encoder(net, ckp_path, pf_sdict='module.encoder_q.'):

FILE: src/benchmark/transfer_change_detection/models/segmentation.py
  function get_segmentation_model (line 6) | def get_segmentation_model(backbone, feature_indices, feature_channels):
  class SegmentationEncoder (line 23) | class SegmentationEncoder(torch.nn.Module):
    method __init__ (line 24) | def __init__(self, backbone, feature_indices, diff=False):
    method forward (line 39) | def forward(self, x1, x2):
    method concatenate (line 64) | def concatenate(self, x1, x2):
  class DoubleConv (line 71) | class DoubleConv(nn.Module):
    method __init__ (line 72) | def __init__(self, in_channels, out_channels, mid_channels=None):
    method forward (line 85) | def forward(self, x):
  class Down (line 89) | class Down(nn.Module):
    method __init__ (line 92) | def __init__(self, in_channels, out_channels):
    method forward (line 99) | def forward(self, x):
  class Up (line 103) | class Up(nn.Module):
    method __init__ (line 106) | def __init__(self, in_channels, out_channels, bilinear=True):
    method forward (line 117) | def forward(self, x1, x2):
  class OutConv (line 132) | class OutConv(nn.Module):
    method __init__ (line 133) | def __init__(self, in_channels, out_channels):
    method forward (line 137) | def forward(self, x):
  class UNet (line 165) | class UNet(nn.Module):
    method __init__ (line 166) | def __init__(self, encoder, feature_channels, n_classes, concat_mult=2...
    method forward (line 196) | def forward(self, *in_x):
  class UNetSmall (line 220) | class UNetSmall(nn.Module):
    method __init__ (line 221) | def __init__(self, encoder, feature_channels, n_classes, concat_mult=2...
    method forward (line 245) | def forward(self, *in_x):

FILE: src/benchmark/transfer_change_detection/utils/data.py
  class Subset (line 10) | class Subset(Dataset):
    method __init__ (line 12) | def __init__(self, dataset, indices):
    method __getitem__ (line 16) | def __getitem__(self, idx):
    method __len__ (line 19) | def __len__(self):
    method __getattr__ (line 22) | def __getattr__(self, name):
  function random_subset (line 26) | def random_subset(dataset, frac, seed=None):
  class _RepeatSampler (line 32) | class _RepeatSampler(object):
    method __init__ (line 39) | def __init__(self, sampler):
    method __iter__ (line 42) | def __iter__(self):
  class InfiniteDataLoader (line 47) | class InfiniteDataLoader(DataLoader):
    method __init__ (line 53) | def __init__(self, *args, **kwargs):
    method __len__ (line 58) | def __len__(self):
    method __iter__ (line 61) | def __iter__(self):
  function make_lmdb (line 66) | def make_lmdb(dataset, lmdb_file, num_workers=8):
  class LMDBDataset (line 84) | class LMDBDataset(Dataset):
    method __init__ (line 86) | def __init__(self, lmdb_file, transform=None, target_transform=None):
    method __getitem__ (line 95) | def __getitem__(self, index):
    method __len__ (line 111) | def __len__(self):

FILE: src/benchmark/transfer_change_detection/utils/transforms.py
  class Map (line 2) | class Map:
    method __init__ (line 4) | def __init__(self, transform):
    method __call__ (line 7) | def __call__(self, inputs):
  class ApplyN (line 11) | class ApplyN:
    method __init__ (line 13) | def __init__(self, transform, n):
    method __call__ (line 17) | def __call__(self, input):
  class LeaveOneOut (line 21) | class LeaveOneOut:
    method __init__ (line 23) | def __init__(self, transforms):
    method __call__ (line 26) | def __call__(self, input):
  class AddOne (line 37) | class AddOne:
    method __init__ (line 39) | def __init__(self, transforms):
    method __call__ (line 42) | def __call__(self, input):

FILE: src/benchmark/transfer_change_detection/validate_oscd.py
  function get_args (line 21) | def get_args():
  class SiamSegment (line 44) | class SiamSegment(LightningModule):
    method __init__ (line 46) | def __init__(self, backbone, feature_indices, feature_channels):
    method forward (line 54) | def forward(self, x1, x2):
    method training_step (line 57) | def training_step(self, batch, batch_idx):
    method validation_step (line 77) | def validation_step(self, batch, batch_idx):
    method shared_step (line 97) | def shared_step(self, batch):
    method configure_optimizers (line 107) | def configure_optimizers(self):
  function load_ssl_resnet_encoder (line 115) | def load_ssl_resnet_encoder(net, ckp_path, pf_sdict='module.encoder_q.'):

FILE: src/benchmark/transfer_classification/datasets/BigEarthNet/bigearthnet_dataset_seco.py
  function normalize (line 117) | def normalize(img, mean, std):
  class Bigearthnet (line 125) | class Bigearthnet(Dataset):
    method __init__ (line 138) | def __init__(self, root, split, bands=None, transform=None, target_tra...
    method __getitem__ (line 165) | def __getitem__(self, index):
    method __len__ (line 192) | def __len__(self):
    method get_multihot_old (line 196) | def get_multihot_old(labels):
    method get_multihot_new (line 203) | def get_multihot_new(labels):

FILE: src/benchmark/transfer_classification/datasets/BigEarthNet/bigearthnet_dataset_seco_lmdb_s2_uint8.py
  function normalize (line 17) | def normalize(img, mean, std):
  class Subset (line 24) | class Subset(Dataset):
    method __init__ (line 26) | def __init__(self, dataset, indices):
    method __getitem__ (line 30) | def __getitem__(self, idx):
    method __len__ (line 33) | def __len__(self):
    method __getattr__ (line 36) | def __getattr__(self, name):
  function random_subset (line 40) | def random_subset(dataset, frac, seed=None):
  class _RepeatSampler (line 46) | class _RepeatSampler(object):
    method __init__ (line 53) | def __init__(self, sampler):
    method __iter__ (line 56) | def __iter__(self):
  class InfiniteDataLoader (line 61) | class InfiniteDataLoader(DataLoader):
    method __init__ (line 67) | def __init__(self, *args, **kwargs):
    method __len__ (line 72) | def __len__(self):
    method __iter__ (line 75) | def __iter__(self):
  function make_lmdb (line 80) | def make_lmdb(dataset, lmdb_file, num_workers=6):
  class LMDBDataset (line 98) | class LMDBDataset(Dataset):
    method __init__ (line 100) | def __init__(self, lmdb_file, is_slurm_job=False, transform=None, norm...
    method _init_db (line 122) | def _init_db(self):
    method __getitem__ (line 128) | def __getitem__(self, index):
    method __len__ (line 149) | def __len__(self):

FILE: src/benchmark/transfer_classification/datasets/EuroSat/eurosat_dataset.py
  function is_valid_file (line 51) | def is_valid_file(filename):
  function normalize (line 54) | def normalize(img, mean, std):
  class EurosatDataset (line 61) | class EurosatDataset(Dataset):
    method __init__ (line 63) | def __init__(self, root, bands='B13', transform=None, normalize=False):
    method __getitem__ (line 89) | def __getitem__(self, index):
    method __len__ (line 123) | def __len__(self):
  class Subset (line 127) | class Subset(Dataset):
    method __init__ (line 135) | def __init__(self, dataset, indices, transform=None):
    method __getitem__ (line 140) | def __getitem__(self, idx):
    method __len__ (line 146) | def __len__(self):

FILE: src/benchmark/transfer_classification/datasets/So2Sat/so2sat_lcz42_dataset.py
  class Subset (line 52) | class Subset(Dataset):
    method __init__ (line 54) | def __init__(self, dataset, indices):
    method __getitem__ (line 58) | def __getitem__(self, idx):
    method __len__ (line 61) | def __len__(self):
    method __getattr__ (line 64) | def __getattr__(self, name):
  function random_subset (line 68) | def random_subset(dataset, frac, seed=None):
  function normalize (line 90) | def normalize(img, mean, std):
  class So2SatDataset (line 100) | class So2SatDataset(Dataset):
    method __init__ (line 101) | def __init__(self,path,bands=None,quantile=None,transform=None, normal...
    method __getitem__ (line 113) | def __getitem__(self, index):
    method __len__ (line 161) | def __len__(self):

FILE: src/benchmark/transfer_classification/linear_BE_data2vec.py
  function build_dataset_be (line 41) | def build_dataset_be(is_train, args):
  function get_args (line 83) | def get_args():
  function main (line 292) | def main(args, ds_init):

FILE: src/benchmark/transfer_classification/linear_BE_dino.py
  function eval_linear (line 41) | def eval_linear(args):
  function train (line 212) | def train(model, linear_classifier, optimizer, loader, epoch, n, avgpool):
  function validate_network (line 259) | def validate_network(val_loader, model, linear_classifier, n, avgpool):
  class LinearClassifier (line 311) | class LinearClassifier(nn.Module):
    method __init__ (line 313) | def __init__(self, dim, num_labels=1000):
    method forward (line 320) | def forward(self, x):

FILE: src/benchmark/transfer_classification/linear_BE_mae.py
  function get_args_parser (line 47) | def get_args_parser():
  function main (line 127) | def main(args):

FILE: src/benchmark/transfer_classification/linear_BE_moco.py
  function init_distributed_mode (line 69) | def init_distributed_mode(args):
  function fix_random_seeds (line 98) | def fix_random_seeds(seed=42):
  function adjust_learning_rate (line 106) | def adjust_learning_rate(optimizer, epoch, args):
  function main (line 118) | def main():

FILE: src/benchmark/transfer_classification/linear_BE_moco_v3.py
  function main (line 113) | def main():
  function main_worker (line 157) | def main_worker(gpu, ngpus_per_node, args):
  function train (line 407) | def train(train_loader, model, criterion, optimizer, epoch, args):
  function validate (line 471) | def validate(val_loader, model, criterion, args):
  function save_checkpoint (line 526) | def save_checkpoint(state, is_best, filename='checkpoint.pth.tar'):
  function sanity_check (line 532) | def sanity_check(state_dict, pretrained_weights, linear_keyword):
  class AverageMeter (line 556) | class AverageMeter(object):
    method __init__ (line 558) | def __init__(self, name, fmt=':f'):
    method reset (line 563) | def reset(self):
    method update (line 569) | def update(self, val, n=1):
    method __str__ (line 575) | def __str__(self):
  class ProgressMeter (line 580) | class ProgressMeter(object):
    method __init__ (line 581) | def __init__(self, num_batches, meters, prefix=""):
    method display (line 586) | def display(self, batch):
    method _get_batch_fmtstr (line 591) | def _get_batch_fmtstr(self, num_batches):
  function adjust_learning_rate (line 597) | def adjust_learning_rate(optimizer, epoch, args):
  function accuracy (line 610) | def accuracy(output, target, topk=(1,)):

FILE: src/benchmark/transfer_classification/linear_BE_sup.py
  function init_distributed_mode (line 71) | def init_distributed_mode(args):
  function fix_random_seeds (line 100) | def fix_random_seeds(seed=42):
  function adjust_learning_rate (line 108) | def adjust_learning_rate(optimizer, epoch, args):
  function main (line 120) | def main():

FILE: src/benchmark/transfer_classification/linear_EU_data2vec.py
  function build_dataset_eu (line 44) | def build_dataset_eu(is_train, args):
  function get_args (line 76) | def get_args():
  function main (line 285) | def main(args, ds_init):

FILE: src/benchmark/transfer_classification/linear_EU_dino.py
  function eval_linear (line 43) | def eval_linear(args):
  function train (line 199) | def train(model, linear_classifier, optimizer, loader, epoch, n, avgpool):
  function validate_network (line 243) | def validate_network(val_loader, model, linear_classifier, n, avgpool):
  class LinearClassifier (line 293) | class LinearClassifier(nn.Module):
    method __init__ (line 295) | def __init__(self, dim, num_labels=1000):
    method forward (line 302) | def forward(self, x):

FILE: src/benchmark/transfer_classification/linear_EU_mae.py
  function get_args_parser (line 48) | def get_args_parser():
  function main (line 127) | def main(args):

FILE: src/benchmark/transfer_classification/linear_EU_moco.py
  function init_distributed_mode (line 57) | def init_distributed_mode(args):
  function fix_random_seeds (line 86) | def fix_random_seeds(seed=42):
  function adjust_learning_rate (line 94) | def adjust_learning_rate(optimizer, epoch, args):
  function main (line 106) | def main():

FILE: src/benchmark/transfer_classification/linear_EU_moco_v3.py
  function init_distributed_mode (line 60) | def init_distributed_mode(args):
  function fix_random_seeds (line 89) | def fix_random_seeds(seed=42):
  function adjust_learning_rate (line 97) | def adjust_learning_rate(optimizer, epoch, args):
  function main (line 109) | def main():

FILE: src/benchmark/transfer_classification/linear_SS_data2vec.py
  function build_dataset_ss (line 42) | def build_dataset_ss(is_train, args):
  function get_args (line 76) | def get_args():
  function main (line 287) | def main(args, ds_init):

FILE: src/benchmark/transfer_classification/linear_SS_dino.py
  function eval_linear (line 39) | def eval_linear(args):
  function train (line 201) | def train(model, linear_classifier, optimizer, loader, epoch, n, avgpool):
  function validate_network (line 245) | def validate_network(val_loader, model, linear_classifier, n, avgpool):
  class LinearClassifier (line 295) | class LinearClassifier(nn.Module):
    method __init__ (line 297) | def __init__(self, dim, num_labels=1000):
    method forward (line 304) | def forward(self, x):

FILE: src/benchmark/transfer_classification/linear_SS_mae.py
  function get_args_parser (line 46) | def get_args_parser():
  function main (line 125) | def main(args):

FILE: src/benchmark/transfer_classification/linear_SS_moco.py
  function init_distributed_mode (line 53) | def init_distributed_mode(args):
  function fix_random_seeds (line 82) | def fix_random_seeds(seed=42):
  function adjust_learning_rate (line 90) | def adjust_learning_rate(optimizer, epoch, args):
  function main (line 102) | def main():

FILE: src/benchmark/transfer_classification/linear_SS_moco_v3.py
  function init_distributed_mode (line 60) | def init_distributed_mode(args):
  function fix_random_seeds (line 89) | def fix_random_seeds(seed=42):
  function adjust_learning_rate (line 97) | def adjust_learning_rate(optimizer, epoch, args):
  function main (line 109) | def main():

FILE: src/benchmark/transfer_classification/models/data2vec/dall_e/__init__.py
  function load_model (line 9) | def load_model(path: str, device: torch.device = None) -> nn.Module:

FILE: src/benchmark/transfer_classification/models/data2vec/dall_e/decoder.py
  class DecoderBlock (line 13) | class DecoderBlock(nn.Module):
    method __attrs_post_init__ (line 21) | def __attrs_post_init__(self) -> None:
    method forward (line 38) | def forward(self, x: torch.Tensor) -> torch.Tensor:
  class Decoder (line 42) | class Decoder(nn.Module):
    method __attrs_post_init__ (line 54) | def __attrs_post_init__(self) -> None:
    method forward (line 86) | def forward(self, x: torch.Tensor) -> torch.Tensor:

FILE: src/benchmark/transfer_classification/models/data2vec/dall_e/encoder.py
  class EncoderBlock (line 13) | class EncoderBlock(nn.Module):
    method __attrs_post_init__ (line 21) | def __attrs_post_init__(self) -> None:
    method forward (line 38) | def forward(self, x: torch.Tensor) -> torch.Tensor:
  class Encoder (line 42) | class Encoder(nn.Module):
    method __attrs_post_init__ (line 53) | def __attrs_post_init__(self) -> None:
    method forward (line 85) | def forward(self, x: torch.Tensor) -> torch.Tensor:

FILE: src/benchmark/transfer_classification/models/data2vec/dall_e/utils.py
  class Conv2d (line 11) | class Conv2d(nn.Module):
    method __attrs_post_init__ (line 20) | def __attrs_post_init__(self) -> None:
    method forward (line 31) | def forward(self, x: torch.Tensor) -> torch.Tensor:
  function map_pixels (line 45) | def map_pixels(x: torch.Tensor) -> torch.Tensor:
  function unmap_pixels (line 51) | def unmap_pixels(x: torch.Tensor) -> torch.Tensor:

FILE: src/benchmark/transfer_classification/models/data2vec/dataset_folder.py
  function has_file_allowed_extension (line 21) | def has_file_allowed_extension(filename: str, extensions: Tuple[str, ......
  function is_image_file (line 34) | def is_image_file(filename: str) -> bool:
  function make_dataset (line 46) | def make_dataset(
  class DatasetFolder (line 76) | class DatasetFolder(VisionDataset):
    method __init__ (line 108) | def __init__(
    method _find_classes (line 138) | def _find_classes(self, dir: str) -> Tuple[List[str], Dict[str, int]]:
    method __getitem__ (line 156) | def __getitem__(self, index: int) -> Tuple[Any, Any]:
    method __len__ (line 180) | def __len__(self) -> int:
  function pil_loader (line 187) | def pil_loader(path: str) -> Image.Image:
  function accimage_loader (line 195) | def accimage_loader(path: str) -> Any:
  function default_loader (line 204) | def default_loader(path: str) -> Any:
  class ImageFolder (line 234) | class ImageFolder(DatasetFolder):
    method __init__ (line 261) | def __init__(

FILE: src/benchmark/transfer_classification/models/data2vec/datasets.py
  class SeasonTransform (line 35) | class SeasonTransform:
    method __init__ (line 37) | def __init__(self, base_transform, season='fixed'):
    method __call__ (line 41) | def __call__(self, x):
  class DataAugmentations (line 64) | class DataAugmentations(object):
    method __init__ (line 65) | def __init__(self, args):
    method __call__ (line 130) | def __call__(self, image):
    method __repr__ (line 141) | def __repr__(self):
  function build_beit_pretraining_dataset (line 152) | def build_beit_pretraining_dataset(args):
  function build_transform (line 167) | def build_transform(is_train, args):

FILE: src/benchmark/transfer_classification/models/data2vec/engine_for_cyclical.py
  function train_one_epoch (line 23) | def train_one_epoch(model: torch.nn.Module, model_ema: torch.nn.Module, ...

FILE: src/benchmark/transfer_classification/models/data2vec/engine_for_cyclical_joint.py
  function train_one_epoch (line 24) | def train_one_epoch(model: torch.nn.Module, model_ema: torch.nn.Module, ...

FILE: src/benchmark/transfer_classification/models/data2vec/engine_for_finetuning.py
  function train_class_batch (line 27) | def train_class_batch(model, samples, target, criterion, bool_masked_pos...
  function get_loss_scale_for_deepspeed (line 33) | def get_loss_scale_for_deepspeed(model):
  function train_one_epoch (line 38) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 173) | def evaluate(data_loader, model, device, metric='acc', padd=False, oneho...

FILE: src/benchmark/transfer_classification/models/data2vec/engine_for_pretraining.py
  function train_one_epoch (line 22) | def train_one_epoch(model: torch.nn.Module, d_vae: torch.nn.Module,

FILE: src/benchmark/transfer_classification/models/data2vec/masking_generator.py
  class MaskingGenerator (line 29) | class MaskingGenerator:
    method __init__ (line 30) | def __init__(
    method __repr__ (line 46) | def __repr__(self):
    method get_shape (line 52) | def get_shape(self):
    method _mask (line 55) | def _mask(self, mask, max_mask_patches):
    method __call__ (line 79) | def __call__(self):

FILE: src/benchmark/transfer_classification/models/data2vec/modeling_cyclical.py
  function trunc_normal_ (line 22) | def trunc_normal_(tensor, mean=0.0, std=1.0):
  class VisionTransformerForCyclicalTraining (line 32) | class VisionTransformerForCyclicalTraining(nn.Module):
    method __init__ (line 33) | def __init__(
    method fix_init_weight (line 127) | def fix_init_weight(self):
    method _init_weights (line 135) | def _init_weights(self, m):
    method no_weight_decay (line 149) | def no_weight_decay(self):
    method get_num_layers (line 152) | def get_num_layers(self):
    method forward_features (line 155) | def forward_features(self, x, bool_masked_pos, layer_results):
    method forward (line 194) | def forward(self, x, bool_masked_pos, return_all_tokens=False, layer_r...
  function beit_base_patch16_224 (line 214) | def beit_base_patch16_224(pretrained=False, **kwargs):
  function beit_small_patch16_224 (line 234) | def beit_small_patch16_224(pretrained=False, **kwargs):
  function beit_large_patch16_224 (line 255) | def beit_large_patch16_224(pretrained=False, **kwargs):
  function beit_huge_patch16_224 (line 275) | def beit_huge_patch16_224(pretrained=False, **kwargs):

FILE: src/benchmark/transfer_classification/models/data2vec/modeling_cyclical_joint.py
  function trunc_normal_ (line 22) | def trunc_normal_(tensor, mean=0.0, std=1.0):
  class VisionTransformerForCyclicalJointTraining (line 32) | class VisionTransformerForCyclicalJointTraining(nn.Module):
    method __init__ (line 33) | def __init__(
    method fix_init_weight (line 126) | def fix_init_weight(self):
    method _init_weights (line 134) | def _init_weights(self, m):
    method no_weight_decay (line 148) | def no_weight_decay(self):
    method get_num_layers (line 151) | def get_num_layers(self):
    method forward_features (line 154) | def forward_features(self, x, bool_masked_pos, layer_results):
    method forward (line 183) | def forward(self, x, bool_masked_pos, return_all_tokens=False, layer_r...
  function beit_base_joint_patch16_224 (line 203) | def beit_base_joint_patch16_224(pretrained=False, **kwargs):

FILE: src/benchmark/transfer_classification/models/data2vec/modeling_discrete_vae.py
  function top_k (line 19) | def top_k(logits, thres = 0.5):
  function exists (line 28) | def exists(val):
  function default (line 32) | def default(val, d):
  function eval_decorator (line 36) | def eval_decorator(fn):
  class BasicVAE (line 46) | class BasicVAE(nn.Module):
    method get_codebook_indices (line 48) | def get_codebook_indices(self, images):
    method decode (line 51) | def decode(self, img_seq):
    method get_codebook_probs (line 54) | def get_codebook_probs(self, img_seq):
    method get_image_tokens_size (line 57) | def get_image_tokens_size(self):
    method get_image_size (line 60) | def get_image_size(self):
  class ResBlock (line 64) | class ResBlock(nn.Module):
    method __init__ (line 65) | def __init__(self, chan_in, hidden_size, chan_out):
    method forward (line 75) | def forward(self, x):
  class DiscreteVAE (line 79) | class DiscreteVAE(BasicVAE):
    method __init__ (line 80) | def __init__(
    method get_image_size (line 127) | def get_image_size(self):
    method get_image_tokens_size (line 130) | def get_image_tokens_size(self):
    method get_codebook_indices (line 135) | def get_codebook_indices(self, images):
    method get_codebook_probs (line 142) | def get_codebook_probs(self, images):
    method decode (line 146) | def decode(
    method forward (line 158) | def forward(
  class Dalle_VAE (line 206) | class Dalle_VAE(BasicVAE):
    method __init__ (line 207) | def __init__(self, image_size):
    method load_model (line 213) | def load_model(self, model_dir, device):
    method decode (line 217) | def decode(self, img_seq):
    method get_codebook_indices (line 223) | def get_codebook_indices(self, images):
    method get_codebook_probs (line 227) | def get_codebook_probs(self, images):
    method forward (line 231) | def forward(self, img_seq_prob, no_process=False):

FILE: src/benchmark/transfer_classification/models/data2vec/modeling_finetune.py
  function _cfg (line 23) | def _cfg(url='', **kwargs):
  class DropPath (line 33) | class DropPath(nn.Module):
    method __init__ (line 36) | def __init__(self, drop_prob=None):
    method forward (line 40) | def forward(self, x):
    method extra_repr (line 43) | def extra_repr(self) -> str:
  class Mlp (line 47) | class Mlp(nn.Module):
    method __init__ (line 48) | def __init__(self, in_features, hidden_features=None, out_features=Non...
    method forward (line 57) | def forward(self, x):
  class Attention (line 67) | class Attention(nn.Module):
    method __init__ (line 68) | def __init__(
    method forward (line 121) | def forward(self, x, rel_pos_bias=None):
  class Block (line 154) | class Block(nn.Module):
    method __init__ (line 156) | def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_sc...
    method forward (line 177) | def forward(self, x, rel_pos_bias=None):
  class PatchEmbed (line 189) | class PatchEmbed(nn.Module):
    method __init__ (line 192) | def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=...
    method forward (line 204) | def forward(self, x, **kwargs):
  class RelativePositionBias (line 213) | class RelativePositionBias(nn.Module):
    method __init__ (line 215) | def __init__(self, window_size, num_heads):
    method forward (line 244) | def forward(self):
  class VisionTransformer (line 252) | class VisionTransformer(nn.Module):
    method __init__ (line 255) | def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classe...
    method fix_init_weight (line 315) | def fix_init_weight(self):
    method _init_weights (line 323) | def _init_weights(self, m):
    method get_num_layers (line 334) | def get_num_layers(self):
    method no_weight_decay (line 338) | def no_weight_decay(self):
    method get_classifier (line 341) | def get_classifier(self):
    method reset_classifier (line 344) | def reset_classifier(self, num_classes, global_pool=''):
    method forward_features (line 348) | def forward_features(self, x, bool_masked_pos=None):
    method forward (line 391) | def forward(self, x, bool_masked_pos=None):
  function beit_small_patch16_224 (line 398) | def beit_small_patch16_224(pretrained=False, **kwargs):
  function beit_base_patch16_224 (line 407) | def beit_base_patch16_224(pretrained=False, **kwargs):
  function beit_base_patch16_384 (line 416) | def beit_base_patch16_384(pretrained=False, **kwargs):
  function beit_large_patch16_224 (line 425) | def beit_large_patch16_224(pretrained=False, **kwargs):
  function beit_large_patch16_384 (line 434) | def beit_large_patch16_384(pretrained=False, **kwargs):
  function beit_large_patch16_512 (line 443) | def beit_large_patch16_512(pretrained=False, **kwargs):

FILE: src/benchmark/transfer_classification/models/data2vec/modeling_pretrain.py
  function trunc_normal_ (line 22) | def trunc_normal_(tensor, mean=0., std=1.):
  class VisionTransformerForMaskedImageModeling (line 32) | class VisionTransformerForMaskedImageModeling(nn.Module):
    method __init__ (line 33) | def __init__(self, img_size=224, patch_size=16, in_chans=3, vocab_size...
    method fix_init_weight (line 79) | def fix_init_weight(self):
    method _init_weights (line 87) | def _init_weights(self, m):
    method no_weight_decay (line 101) | def no_weight_decay(self):
    method get_num_layers (line 104) | def get_num_layers(self):
    method forward_features (line 107) | def forward_features(self, x, bool_masked_pos):
    method forward (line 129) | def forward(self, x, bool_masked_pos, return_all_tokens=False):
  function beit_base_patch16_224_8k_vocab (line 140) | def beit_base_patch16_224_8k_vocab(pretrained=False, **kwargs):
  function beit_large_patch16_224_8k_vocab (line 155) | def beit_large_patch16_224_8k_vocab(pretrained=False, **kwargs):

FILE: src/benchmark/transfer_classification/models/data2vec/models.py
  function _cfg (line 32) | def _cfg(url='', **kwargs):
  class Attention (line 71) | class Attention(nn.Module):
    method __init__ (line 72) | def __init__(
    method forward (line 127) | def forward(self, x, rel_pos_bias: Optional[torch.Tensor] = None):
  class Block (line 157) | class Block(nn.Module):
    method __init__ (line 159) | def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, drop=...
    method forward (line 179) | def forward(self, x, rel_pos_bias: Optional[torch.Tensor] = None):
  class RelativePositionBias (line 189) | class RelativePositionBias(nn.Module):
    method __init__ (line 191) | def __init__(self, window_size, num_heads):
    method forward (line 220) | def forward(self):
  class Beit (line 228) | class Beit(nn.Module):
    method __init__ (line 232) | def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classe...
    method fix_init_weight (line 281) | def fix_init_weight(self):
    method _init_weights (line 289) | def _init_weights(self, m):
    method get_num_layers (line 298) | def get_num_layers(self):
    method no_weight_decay (line 302) | def no_weight_decay(self):
    method get_classifier (line 305) | def get_classifier(self):
    method reset_classifier (line 308) | def reset_classifier(self, num_classes, global_pool=''):
    method forward_features (line 312) | def forward_features(self, x):
    method forward (line 333) | def forward(self, x):
  function _create_beit (line 339) | def _create_beit(variant, pretrained=False, default_cfg=None, **kwargs):
  function beit_base_patch16_224 (line 354) | def beit_base_patch16_224(pretrained=False, **kwargs):
  function beit_base_patch16_384 (line 366) | def beit_base_patch16_384(pretrained=False, **kwargs):
  function beit_base_patch16_224_in22k (line 375) | def beit_base_patch16_224_in22k(pretrained=False, **kwargs):
  function beit_large_patch16_224 (line 384) | def beit_large_patch16_224(pretrained=False, **kwargs):
  function beit_large_patch16_384 (line 393) | def beit_large_patch16_384(pretrained=False, **kwargs):
  function beit_large_patch16_512 (line 402) | def beit_large_patch16_512(pretrained=False, **kwargs):
  function beit_large_patch16_224_in22k (line 411) | def beit_large_patch16_224_in22k(pretrained=False, **kwargs):

FILE: src/benchmark/transfer_classification/models/data2vec/optim_factory.py
  function get_num_layer_for_vit (line 33) | def get_num_layer_for_vit(var_name, num_max_layer):
  class LayerDecayValueAssigner (line 47) | class LayerDecayValueAssigner(object):
    method __init__ (line 48) | def __init__(self, values):
    method get_scale (line 51) | def get_scale(self, layer_id):
    method get_layer_id (line 54) | def get_layer_id(self, var_name):
  function get_parameter_groups (line 58) | def get_parameter_groups(model, weight_decay=1e-5, skip_list=(), get_num...
  function create_optimizer (line 100) | def create_optimizer(args, model, get_num_layer=None, get_layer_scale=No...

FILE: src/benchmark/transfer_classification/models/data2vec/run_beit_pretraining.py
  function get_args (line 34) | def get_args():
  function get_model (line 139) | def get_model(args):
  function main (line 154) | def main(args):

FILE: src/benchmark/transfer_classification/models/data2vec/run_class_finetuning.py
  function get_args (line 39) | def get_args():
  function main (line 241) | def main(args, ds_init):

FILE: src/benchmark/transfer_classification/models/data2vec/run_cyclical.py
  function get_args (line 37) | def get_args():
  function get_model (line 280) | def get_model(args):
  function main (line 304) | def main(args):

FILE: src/benchmark/transfer_classification/models/data2vec/run_cyclical_joint.py
  function get_args (line 36) | def get_args():
  function get_model (line 264) | def get_model(args):
  function main (line 279) | def main(args):

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/backbone/beit.py
  class DropPath (line 26) | class DropPath(nn.Module):
    method __init__ (line 29) | def __init__(self, drop_prob=None):
    method forward (line 33) | def forward(self, x):
    method extra_repr (line 36) | def extra_repr(self) -> str:
  class Mlp (line 40) | class Mlp(nn.Module):
    method __init__ (line 41) | def __init__(self, in_features, hidden_features=None, out_features=Non...
    method forward (line 50) | def forward(self, x):
  class Attention (line 60) | class Attention(nn.Module):
    method __init__ (line 61) | def __init__(
    method forward (line 117) | def forward(self, x, rel_pos_bias=None):
  class Block (line 150) | class Block(nn.Module):
    method __init__ (line 152) | def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_sc...
    method forward (line 172) | def forward(self, x, rel_pos_bias=None):
  class PatchEmbed (line 182) | class PatchEmbed(nn.Module):
    method __init__ (line 185) | def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=...
    method forward (line 197) | def forward(self, x, **kwargs):
  class HybridEmbed (line 209) | class HybridEmbed(nn.Module):
    method __init__ (line 213) | def __init__(self, backbone, img_size=224, feature_size=None, in_chans...
    method forward (line 237) | def forward(self, x):
  class RelativePositionBias (line 244) | class RelativePositionBias(nn.Module):
    method __init__ (line 246) | def __init__(self, window_size, num_heads):
    method forward (line 275) | def forward(self):
  class BEiT (line 284) | class BEiT(nn.Module):
    method __init__ (line 287) | def __init__(self, img_size=224, patch_size=16, in_chans=3, num_classe...
    method fix_init_weight (line 366) | def fix_init_weight(self):
    method _init_weights (line 374) | def _init_weights(self, m):
    method init_weights (line 383) | def init_weights(self, pretrained=None):
    method get_num_layers (line 409) | def get_num_layers(self):
    method no_weight_decay (line 413) | def no_weight_decay(self):
    method forward_features (line 416) | def forward_features(self, x):
    method forward (line 441) | def forward(self, x):

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/apex_iter_based_runner.py
  class IterBasedRunnerAmp (line 20) | class IterBasedRunnerAmp(IterBasedRunner):
    method save_checkpoint (line 26) | def save_checkpoint(self,
    method resume (line 68) | def resume(self,

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/checkpoint.py
  function save_checkpoint (line 19) | def save_checkpoint(model, filename, optimizer=None, meta=None):

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/optimizer.py
  class DistOptimizerHook (line 9) | class DistOptimizerHook(OptimizerHook):
    method __init__ (line 12) | def __init__(self, update_interval=1, grad_clip=None, coalesce=True, b...
    method before_run (line 19) | def before_run(self, runner):
    method after_train_iter (line 22) | def after_train_iter(self, runner):

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/mmcv_custom/checkpoint.py
  function _get_mmcv_home (line 34) | def _get_mmcv_home():
  function load_state_dict (line 45) | def load_state_dict(module, state_dict, strict=False, logger=None):
  function load_url_dist (line 113) | def load_url_dist(url, model_dir=None, map_location="cpu"):
  function load_pavimodel_dist (line 127) | def load_pavimodel_dist(model_path, map_location=None):
  function load_fileclient_dist (line 155) | def load_fileclient_dist(filename, backend, map_location):
  function get_torchvision_models (line 176) | def get_torchvision_models():
  function get_external_models (line 188) | def get_external_models():
  function get_mmcls_models (line 202) | def get_mmcls_models():
  function get_deprecated_model_names (line 209) | def get_deprecated_model_names():
  function _process_mmcls_checkpoint (line 218) | def _process_mmcls_checkpoint(checkpoint):
  function _load_checkpoint (line 229) | def _load_checkpoint(filename, map_location=None):
  function cosine_scheduler (line 290) | def cosine_scheduler(base_value, final_value, epochs, niter_per_ep, warm...
  function load_checkpoint (line 310) | def load_checkpoint(model,
  function weights_to_cpu (line 476) | def weights_to_cpu(state_dict):
  function _save_to_state_dict (line 491) | def _save_to_state_dict(module, destination, prefix, keep_vars):
  function get_state_dict (line 511) | def get_state_dict(module, destination=None, prefix='', keep_vars=False):
  function save_checkpoint (line 555) | def save_checkpoint(model, filename, optimizer=None, meta=None):

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/mmcv_custom/layer_decay_optimizer_constructor.py
  function get_num_layer_for_vit (line 6) | def get_num_layer_for_vit(var_name, num_max_layer):
  class LayerDecayOptimizerConstructor (line 19) | class LayerDecayOptimizerConstructor(DefaultOptimizerConstructor):
    method add_params (line 20) | def add_params(self, params, module, prefix='', is_dcn_module=None):

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/mmcv_custom/resize_transform.py
  class SETR_Resize (line 8) | class SETR_Resize(object):
    method __init__ (line 35) | def __init__(self,
    method random_select (line 66) | def random_select(img_scales):
    method random_sample (line 84) | def random_sample(img_scales):
    method random_sample_ratio (line 111) | def random_sample_ratio(img_scale, ratio_range):
    method _random_scale (line 137) | def _random_scale(self, results):
    method _resize_img (line 170) | def _resize_img(self, results):
    method _resize_seg (line 206) | def _resize_seg(self, results):
    method __call__ (line 217) | def __call__(self, results):
    method __repr__ (line 235) | def __repr__(self):

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/mmcv_custom/train_api.py
  function set_random_seed (line 18) | def set_random_seed(seed, deterministic=False):
  function train_segmentor (line 37) | def train_segmentor(model,

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/tools/test.py
  function parse_args (line 17) | def parse_args():
  function main (line 67) | def main():

FILE: src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/tools/train.py
  function parse_args (line 23) | def parse_args():
  function main (line 67) | def main():

FILE: src/benchmark/transfer_classification/models/data2vec/transforms.py
  class ToNumpy (line 20) | class ToNumpy:
    method __call__ (line 22) | def __call__(self, pil_img):
  class ToTensor (line 30) | class ToTensor:
    method __init__ (line 32) | def __init__(self, dtype=torch.float32):
    method __call__ (line 35) | def __call__(self, pil_img):
  function _pil_interp (line 53) | def _pil_interp(method):
  class RandomResizedCropAndInterpolationWithTwoPic (line 68) | class RandomResizedCropAndInterpolationWithTwoPic:
    method __init__ (line 83) | def __init__(self, size, second_size=None, scale=(0.08, 1.0), ratio=(3...
    method get_params (line 109) | def get_params(img, scale, ratio):
    method __call__ (line 151) | def __call__(self, img):
    method __repr__ (line 170) | def __repr__(self):

FILE: src/benchmark/transfer_classification/models/data2vec/utils.py
  class SmoothedValue (line 33) | class SmoothedValue(object):
    method __init__ (line 38) | def __init__(self, window_size=20, fmt=None):
    method update (line 46) | def update(self, value, n=1):
    method synchronize_between_processes (line 51) | def synchronize_between_processes(self):
    method median (line 65) | def median(self):
    method avg (line 70) | def avg(self):
    method global_avg (line 75) | def global_avg(self):
    method max (line 79) | def max(self):
    method value (line 83) | def value(self):
    method __str__ (line 86) | def __str__(self):
  class MetricLogger (line 95) | class MetricLogger(object):
    method __init__ (line 96) | def __init__(self, delimiter="\t"):
    method update (line 100) | def update(self, **kwargs):
    method __getattr__ (line 109) | def __getattr__(self, attr):
    method __str__ (line 117) | def __str__(self):
    method synchronize_between_processes (line 125) | def synchronize_between_processes(self):
    method add_meter (line 129) | def add_meter(self, name, meter):
    method log_every (line 132) | def log_every(self, iterable, print_freq, header=None):
  class TensorboardLogger (line 179) | class TensorboardLogger(object):
    method __init__ (line 180) | def __init__(self, log_dir):
    method set_step (line 184) | def set_step(self, step=None):
    method update (line 190) | def update(self, head='scalar', step=None, **kwargs):
    method flush (line 199) | def flush(self):
  function _load_checkpoint_for_ema (line 203) | def _load_checkpoint_for_ema(model_ema, checkpoint):
  function setup_for_distributed (line 217) | def setup_for_distributed(is_master):
  function is_dist_avail_and_initialized (line 232) | def is_dist_avail_and_initialized():
  function get_world_size (line 240) | def get_world_size():
  function get_rank (line 246) | def get_rank():
  function is_main_process (line 252) | def is_main_process():
  function save_on_master (line 256) | def save_on_master(*args, **kwargs):
  function init_distributed_mode (line 261) | def init_distributed_mode(args):
  function load_state_dict (line 314) | def load_state_dict(model, state_dict, prefix='', ignore_missing="relati...
  class NativeScalerWithGradNormCount (line 363) | class NativeScalerWithGradNormCount:
    method __init__ (line 366) | def __init__(self):
    method __call__ (line 369) | def __call__(self, loss, optimizer, clip_grad=None, parameters=None, c...
    method state_dict (line 385) | def state_dict(self):
    method load_state_dict (line 388) | def load_state_dict(self, state_dict):
  function get_grad_norm_ (line 392) | def get_grad_norm_(parameters, norm_type: float = 2.0) -> torch.Tensor:
  function cosine_scheduler (line 407) | def cosine_scheduler(base_value, final_value, epochs, niter_per_ep, warm...
  function tri_phase_scheduler (line 426) | def tri_phase_scheduler(base_value, final_value, epochs, niter_per_ep, w...
  function save_model (line 461) | def save_model(args, epoch, model, model_without_ddp, optimizer, loss_sc...
  function auto_load_model (line 486) | def auto_load_model(args, model, model_without_ddp, optimizer, loss_scal...
  function create_d_vae (line 541) | def create_d_vae(weight_path, d_vae_type, image_size, device):
  function get_dalle_vae (line 550) | def get_dalle_vae(weight_path, image_size, device):
  function get_d_vae (line 556) | def get_d_vae(weight_path, image_size, device):
  function create_ds_config (line 576) | def create_ds_config(args):

FILE: src/benchmark/transfer_classification/models/dino/utils.py
  class GaussianBlur (line 37) | class GaussianBlur(object):
    method __init__ (line 41) | def __init__(self, p=0.5, radius_min=0.1, radius_max=2.):
    method __call__ (line 46) | def __call__(self, img):
  class cvGaussianBlur (line 58) | class cvGaussianBlur(object):
    method __init__ (line 61) | def __init__(self, p=0.5, sigma=[.1, 2.]):
    method __call__ (line 65) | def __call__(self, x):
  class Solarization (line 78) | class Solarization(object):
    method __init__ (line 82) | def __init__(self, p):
    method __call__ (line 85) | def __call__(self, img):
  function load_pretrained_weights (line 92) | def load_pretrained_weights(model, pretrained_weights, checkpoint_key, m...
  function load_pretrained_linear_weights (line 133) | def load_pretrained_linear_weights(linear_classifier, model_name, patch_...
  function clip_gradients (line 153) | def clip_gradients(model, clip):
  function cancel_gradients_last_layer (line 165) | def cancel_gradients_last_layer(epoch, model, freeze_last_layer):
  function restart_from_checkpoint (line 173) | def restart_from_checkpoint(ckp_path, run_variables=None, **kwargs):
  function cosine_scheduler (line 208) | def cosine_scheduler(base_value, final_value, epochs, niter_per_ep, warm...
  function bool_flag (line 222) | def bool_flag(s):
  function fix_random_seeds (line 236) | def fix_random_seeds(seed=31):
  class SmoothedValue (line 245) | class SmoothedValue(object):
    method __init__ (line 250) | def __init__(self, window_size=20, fmt=None):
    method update (line 258) | def update(self, value, n=1):
    method synchronize_between_processes (line 263) | def synchronize_between_processes(self):
    method median (line 277) | def median(self):
    method avg (line 282) | def avg(self):
    method global_avg (line 287) | def global_avg(self):
    method max (line 291) | def max(self):
    method value (line 295) | def value(self):
    method __str__ (line 298) | def __str__(self):
  function reduce_dict (line 307) | def reduce_dict(input_dict, average=True):
  class MetricLogger (line 334) | class MetricLogger(object):
    method __init__ (line 335) | def __init__(self, delimiter="\t"):
    method update (line 339) | def update(self, **kwargs):
    method __getattr__ (line 346) | def __getattr__(self, attr):
    method __str__ (line 354) | def __str__(self):
    method synchronize_between_processes (line 362) | def synchronize_between_processes(self):
    method add_meter (line 366) | def add_meter(self, name, meter):
    method log_every (line 369) | def log_every(self, iterable, print_freq, header=None):
  function get_sha (line 424) | def get_sha():
  function is_dist_avail_and_initialized (line 444) | def is_dist_avail_and_initialized():
  function get_world_size (line 452) | def get_world_size():
  function get_rank (line 458) | def get_rank():
  function is_main_process (line 464) | def is_main_process():
  function save_on_master (line 468) | def save_on_master(*args, **kwargs):
  function setup_for_distributed (line 473) | def setup_for_distributed(is_master):
  function init_distributed_mode (line 488) | def init_distributed_mode(args):
  function accuracy (line 526) | def accuracy(output, target, topk=(1,)):
  function _no_grad_trunc_normal_ (line 536) | def _no_grad_trunc_normal_(tensor, mean, std, a, b):
  function trunc_normal_ (line 572) | def trunc_normal_(tensor, mean=0., std=1., a=-2., b=2.):
  class LARS (line 577) | class LARS(torch.optim.Optimizer):
    method __init__ (line 581) | def __init__(self, params, lr=0, weight_decay=0, momentum=0.9, eta=0.001,
    method step (line 589) | def step(self):
  class MultiCropWrapper (line 618) | class MultiCropWrapper(nn.Module):
    method __init__ (line 627) | def __init__(self, backbone, head):
    method forward (line 634) | def forward(self, x):
  function get_params_groups (line 656) | def get_params_groups(model):
  function has_batchnorms (line 670) | def has_batchnorms(model):
  class PCA (line 678) | class PCA():
    method __init__ (line 682) | def __init__(self, dim=256, whit=0.5):
    method train_pca (line 687) | def train_pca(self, cov):
    method apply (line 713) | def apply(self, x):
  function compute_ap (line 732) | def compute_ap(ranks, nres):
  function compute_map (line 767) | def compute_map(ranks, gnd, kappas=[]):
  function multi_scale (line 839) | def multi_scale(samples, model):

FILE: src/benchmark/transfer_classification/models/dino/vision_transformer.py
  function drop_path (line 27) | def drop_path(x, drop_prob: float = 0., training: bool = False):
  class DropPath (line 38) | class DropPath(nn.Module):
    method __init__ (line 41) | def __init__(self, drop_prob=None):
    method forward (line 45) | def forward(self, x):
  class Mlp (line 49) | class Mlp(nn.Module):
    method __init__ (line 50) | def __init__(self, in_features, hidden_features=None, out_features=Non...
    method forward (line 59) | def forward(self, x):
  class Attention (line 68) | class Attention(nn.Module):
    method __init__ (line 69) | def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, at...
    method forward (line 80) | def forward(self, x):
  class Block (line 95) | class Block(nn.Module):
    method __init__ (line 96) | def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_sc...
    method forward (line 107) | def forward(self, x, return_attention=False):
  class PatchEmbed (line 116) | class PatchEmbed(nn.Module):
    method __init__ (line 119) | def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=...
    method forward (line 128) | def forward(self, x):
  class VisionTransformer (line 134) | class VisionTransformer(nn.Module):
    method __init__ (line 136) | def __init__(self, img_size=[224], patch_size=16, in_chans=3, num_clas...
    method _init_weights (line 165) | def _init_weights(self, m):
    method interpolate_pos_encoding (line 174) | def interpolate_pos_encoding(self, x, w, h):
    method prepare_tokens (line 196) | def prepare_tokens(self, x):
    method forward (line 209) | def forward(self, x):
    method get_last_selfattention (line 216) | def get_last_selfattention(self, x):
    method get_intermediate_layers (line 225) | def get_intermediate_layers(self, x, n=1):
  function vit_tiny (line 236) | def vit_tiny(patch_size=16, **kwargs):
  function vit_small (line 243) | def vit_small(patch_size=16, **kwargs):
  function vit_base (line 250) | def vit_base(patch_size=16, **kwargs):
  class DINOHead (line 257) | class DINOHead(nn.Module):
    method __init__ (line 258) | def __init__(self, in_dim, out_dim, use_bn=False, norm_last_layer=True...
    method _init_weights (line 281) | def _init_weights(self, m):
    method forward (line 287) | def forward(self, x):

FILE: src/benchmark/transfer_classification/models/mae/engine_finetune.py
  function train_one_epoch (line 25) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 99) | def evaluate(data_loader, model, device):

FILE: src/benchmark/transfer_classification/models/mae/engine_finetune_BE.py
  function train_one_epoch (line 29) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 107) | def evaluate(data_loader, model, device, criterion):

FILE: src/benchmark/transfer_classification/models/mae/engine_finetune_EU.py
  function train_one_epoch (line 29) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 104) | def evaluate(data_loader, model, device, criterion):

FILE: src/benchmark/transfer_classification/models/mae/engine_finetune_SS.py
  function train_one_epoch (line 29) | def train_one_epoch(model: torch.nn.Module, criterion: torch.nn.Module,
  function evaluate (line 104) | def evaluate(data_loader, model, device, criterion):

FILE: src/benchmark/transfer_classification/models/mae/engine_pretrain.py
  function train_one_epoch (line 23) | def train_one_epoch(model: torch.nn.Module,

FILE: src/benchmark/transfer_classification/models/mae/main_finetune.py
  function get_args_parser (line 42) | def get_args_parser():
  function main (line 158) | def main(args):

FILE: src/benchmark/transfer_classification/models/mae/main_linprobe.py
  function get_args_parser (line 47) | def get_args_parser():
  function main (line 121) | def main(args):

FILE: src/benchmark/transfer_classification/models/mae/main_pretrain.py
  class SeasonTransform (line 41) | class SeasonTransform:
    method __init__ (line 43) | def __init__(self, base_transform, season='fixed'):
    method __call__ (line 47) | def __call__(self, x):
  function get_args_parser (line 72) | def get_args_parser():
  function main (line 151) | def main(args):

FILE: src/benchmark/transfer_classification/models/mae/models_mae.py
  class MaskedAutoencoderViT (line 22) | class MaskedAutoencoderViT(nn.Module):
    method __init__ (line 25) | def __init__(self, img_size=224, patch_size=16, in_chans=3,
    method initialize_weights (line 67) | def initialize_weights(self):
    method _init_weights (line 87) | def _init_weights(self, m):
    method patchify (line 97) | def patchify(self, imgs):
    method unpatchify (line 111) | def unpatchify(self, x):
    method random_masking (line 125) | def random_masking(self, x, mask_ratio):
    method forward_encoder (line 152) | def forward_encoder(self, x, mask_ratio):
    method forward_decoder (line 174) | def forward_decoder(self, x, ids_restore):
    method forward_loss (line 200) | def forward_loss(self, imgs, pred, mask):
    method forward (line 218) | def forward(self, imgs, mask_ratio=0.75):
  function mae_vit_small_patch16_dec512d8b (line 225) | def mae_vit_small_patch16_dec512d8b(**kwargs):
  function mae_vit_base_patch16_dec512d8b (line 232) | def mae_vit_base_patch16_dec512d8b(**kwargs):
  function mae_vit_large_patch16_dec512d8b (line 240) | def mae_vit_large_patch16_dec512d8b(**kwargs):
  function mae_vit_huge_patch14_dec512d8b (line 248) | def mae_vit_huge_patch14_dec512d8b(**kwargs):

FILE: src/benchmark/transfer_classification/models/mae/models_vit.py
  class VisionTransformer (line 20) | class VisionTransformer(timm.models.vision_transformer.VisionTransformer):
    method __init__ (line 23) | def __init__(self, global_pool=False, **kwargs):
    method forward_features (line 34) | def forward_features(self, x):
  function vit_small_patch16 (line 55) | def vit_small_patch16(**kwargs):
  function vit_base_patch16 (line 61) | def vit_base_patch16(**kwargs):
  function vit_large_patch16 (line 68) | def vit_large_patch16(**kwargs):
  function vit_huge_patch14 (line 75) | def vit_huge_patch14(**kwargs):

FILE: src/benchmark/transfer_classification/models/mae/submitit_finetune.py
  function parse_args (line 19) | def parse_args():
  function get_shared_folder (line 33) | def get_shared_folder() -> Path:
  function get_init_file (line 42) | def get_init_file():
  class Trainer (line 51) | class Trainer(object):
    method __init__ (line 52) | def __init__(self, args):
    method __call__ (line 55) | def __call__(self):
    method checkpoint (line 61) | def checkpoint(self):
    method _setup_gpu_args (line 73) | def _setup_gpu_args(self):
  function main (line 86) | def main():

FILE: src/benchmark/transfer_classification/models/mae/submitit_linprobe.py
  function parse_args (line 19) | def parse_args():
  function get_shared_folder (line 33) | def get_shared_folder() -> Path:
  function get_init_file (line 42) | def get_init_file():
  class Trainer (line 51) | class Trainer(object):
    method __init__ (line 52) | def __init__(self, args):
    method __call__ (line 55) | def __call__(self):
    method checkpoint (line 61) | def checkpoint(self):
    method _setup_gpu_args (line 73) | def _setup_gpu_args(self):
  function main (line 86) | def main():

FILE: src/benchmark/transfer_classification/models/mae/submitit_pretrain.py
  function parse_args (line 19) | def parse_args():
  function get_shared_folder (line 33) | def get_shared_folder() -> Path:
  function get_init_file (line 42) | def get_init_file():
  class Trainer (line 51) | class Trainer(object):
    method __init__ (line 52) | def __init__(self, args):
    method __call__ (line 55) | def __call__(self):
    method checkpoint (line 61) | def checkpoint(self):
    method _setup_gpu_args (line 73) | def _setup_gpu_args(self):
  function main (line 86) | def main():

FILE: src/benchmark/transfer_classification/models/mae/util/crop.py
  class RandomResizedCrop (line 15) | class RandomResizedCrop(transforms.RandomResizedCrop):
    method get_params (line 23) | def get_params(img, scale, ratio):

FILE: src/benchmark/transfer_classification/models/mae/util/datasets.py
  function build_dataset (line 20) | def build_dataset(is_train, args):
  function build_transform (line 31) | def build_transform(is_train, args):

FILE: src/benchmark/transfer_classification/models/mae/util/lars.py
  class LARS (line 14) | class LARS(torch.optim.Optimizer):
    method __init__ (line 18) | def __init__(self, params, lr=0, weight_decay=0, momentum=0.9, trust_c...
    method step (line 23) | def step(self):

FILE: src/benchmark/transfer_classification/models/mae/util/lr_decay.py
  function param_groups_lrd (line 15) | def param_groups_lrd(model, weight_decay=0.05, no_weight_decay_list=[], ...
  function get_layer_id_for_vit (line 64) | def get_layer_id_for_vit(name, num_layers):

FILE: src/benchmark/transfer_classification/models/mae/util/lr_sched.py
  function adjust_learning_rate (line 9) | def adjust_learning_rate(optimizer, epoch, args):

FILE: src/benchmark/transfer_classification/models/mae/util/misc.py
  class SmoothedValue (line 24) | class SmoothedValue(object):
    method __init__ (line 29) | def __init__(self, window_size=20, fmt=None):
    method update (line 37) | def update(self, value, n=1):
    method synchronize_between_processes (line 42) | def synchronize_between_processes(self):
    method median (line 56) | def median(self):
    method avg (line 61) | def avg(self):
    method global_avg (line 66) | def global_avg(self):
    method max (line 70) | def max(self):
    method value (line 74) | def value(self):
    method __str__ (line 77) | def __str__(self):
  class MetricLogger (line 86) | class MetricLogger(object):
    method __init__ (line 87) | def __init__(self, delimiter="\t"):
    method update (line 91) | def update(self, **kwargs):
    method __getattr__ (line 100) | def __getattr__(self, attr):
    method __str__ (line 108) | def __str__(self):
    method synchronize_between_processes (line 116) | def synchronize_between_processes(self):
    method add_meter (line 120) | def add_meter(self, name, meter):
    method log_every (line 123) | def log_every(self, iterable, print_freq, header=None):
  function setup_for_distributed (line 170) | def setup_for_distributed(is_master):
  function is_dist_avail_and_initialized (line 187) | def is_dist_avail_and_initialized():
  function get_world_size (line 195) | def get_world_size():
  function get_rank (line 201) | def get_rank():
  function is_main_process (line 207) | def is_main_process():
  function save_on_master (line 211) | def save_on_master(*args, **kwargs):
  function init_distributed_mode (line 216) | def init_distributed_mode(args):
  class NativeScalerWithGradNormCount (line 253) | class NativeScalerWithGradNormCount:
    method __init__ (line 256) | def __init__(self):
    method __call__ (line 259) | def __call__(self, loss, optimizer, clip_grad=None, parameters=None, c...
    method state_dict (line 275) | def state_dict(self):
    method load_state_dict (line 278) | def load_state_dict(self, state_dict):
  function get_grad_norm_ (line 282) | def get_grad_norm_(parameters, norm_type: float = 2.0) -> torch.Tensor:
  function save_model (line 297) | def save_model(args, epoch, model, model_without_ddp, optimizer, loss_sc...
  function load_model (line 317) | def load_model(args, model_without_ddp, optimizer, loss_scaler):
  function all_reduce_mean (line 334) | def all_reduce_mean(x):

FILE: src/benchmark/transfer_classification/models/mae/util/pos_embed.py
  function get_2d_sincos_pos_embed (line 20) | def get_2d_sincos_pos_embed(embed_dim, grid_size, cls_token=False):
  function get_2d_sincos_pos_embed_from_grid (line 38) | def get_2d_sincos_pos_embed_from_grid(embed_dim, grid):
  function get_1d_sincos_pos_embed_from_grid (line 49) | def get_1d_sincos_pos_embed_from_grid(embed_dim, pos):
  function interpolate_pos_embed (line 75) | def interpolate_pos_embed(model, checkpoint_model):

FILE: src/benchmark/transfer_classification/models/moco/builder.py
  class MoCo (line 6) | class MoCo(nn.Module):
    method __init__ (line 11) | def __init__(self, base_encoder, dim=128, K=65536, m=0.999, T=0.07, ml...
    method _momentum_update_key_encoder (line 68) | def _momentum_update_key_encoder(self):
    method _dequeue_and_enqueue (line 76) | def _dequeue_and_enqueue(self, keys):
    method _batch_shuffle_ddp (line 92) | def _batch_shuffle_ddp(self, x):
    method _batch_unshuffle_ddp (line 120) | def _batch_unshuffle_ddp(self, x, idx_unshuffle):
    method forward (line 138) | def forward(self, im_q, im_k):
  function concat_all_gather (line 188) | def concat_all_gather(tensor):

FILE: src/benchmark/transfer_classification/models/moco/loader.py
  class TwoCropsTransform (line 11) | class TwoCropsTransform:
    method __init__ (line 14) | def __init__(self, base_transform):
    method __call__ (line 17) | def __call__(self, x):
  class GaussianBlur (line 23) | class GaussianBlur(object):
    method __init__ (line 26) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 29) | def __call__(self, x):

FILE: src/benchmark/transfer_classification/models/moco_v2/builder.py
  class MoCo (line 6) | class MoCo(nn.Module):
    method __init__ (line 11) | def __init__(self, base_encoder, dim=128, K=65536, m=0.999, T=0.07, ml...
    method _momentum_update_key_encoder (line 57) | def _momentum_update_key_encoder(self):
    method _dequeue_and_enqueue (line 65) | def _dequeue_and_enqueue(self, keys):
    method _batch_shuffle_ddp (line 81) | def _batch_shuffle_ddp(self, x):
    method _batch_unshuffle_ddp (line 109) | def _batch_unshuffle_ddp(self, x, idx_unshuffle):
    method forward (line 127) | def forward(self, im_q, im_k):
  function concat_all_gather (line 177) | def concat_all_gather(tensor):

FILE: src/benchmark/transfer_classification/models/moco_v2/detection/train_net.py
  class Res5ROIHeadsExtraNorm (line 15) | class Res5ROIHeadsExtraNorm(Res5ROIHeads):
    method _build_res5_block (line 20) | def _build_res5_block(self, cfg):
  class Trainer (line 28) | class Trainer(DefaultTrainer):
    method build_evaluator (line 30) | def build_evaluator(cls, cfg, dataset_name, output_folder=None):
  function setup (line 40) | def setup(args):
  function main (line 49) | def main(args):

FILE: src/benchmark/transfer_classification/models/moco_v2/loader.py
  class TwoCropsTransform (line 11) | class TwoCropsTransform:
    method __init__ (line 14) | def __init__(self, base_transform):
    method __call__ (line 17) | def __call__(self, x):
  class GaussianBlur (line 23) | class GaussianBlur(object):
    method __init__ (line 26) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 29) | def __call__(self, x):

FILE: src/benchmark/transfer_classification/models/moco_v2/main_lincls.py
  function main (line 86) | def main():
  function main_worker (line 121) | def main_worker(gpu, ngpus_per_node, args):
  function train (line 308) | def train(train_loader, model, criterion, optimizer, epoch, args):
  function validate (line 360) | def validate(val_loader, model, criterion, args):
  function save_checkpoint (line 404) | def save_checkpoint(state, is_best, filename='checkpoint.pth.tar'):
  function sanity_check (line 410) | def sanity_check(state_dict, pretrained_weights):
  class AverageMeter (line 434) | class AverageMeter(object):
    method __init__ (line 436) | def __init__(self, name, fmt=':f'):
    method reset (line 441) | def reset(self):
    method update (line 447) | def update(self, val, n=1):
    method __str__ (line 453) | def __str__(self):
  class ProgressMeter (line 458) | class ProgressMeter(object):
    method __init__ (line 459) | def __init__(self, num_batches, meters, prefix=""):
    method display (line 464) | def display(self, batch):
    method _get_batch_fmtstr (line 469) | def _get_batch_fmtstr(self, num_batches):
  function adjust_learning_rate (line 475) | def adjust_learning_rate(optimizer, epoch, args):
  function accuracy (line 484) | def accuracy(output, target, topk=(1,)):

FILE: src/benchmark/transfer_classification/models/moco_v3/builder.py
  class MoCo (line 11) | class MoCo(nn.Module):
    method __init__ (line 16) | def __init__(self, base_encoder, dim=256, mlp_dim=4096, T=1.0):
    method _build_mlp (line 36) | def _build_mlp(self, num_layers, input_dim, mlp_dim, output_dim, last_...
    method _build_projector_and_predictor_mlps (line 54) | def _build_projector_and_predictor_mlps(self, dim, mlp_dim):
    method _update_momentum_encoder (line 58) | def _update_momentum_encoder(self, m):
    method contrastive_loss (line 63) | def contrastive_loss(self, q, k):
    method forward (line 75) | def forward(self, x1, x2, m):
  class MoCo_ResNet (line 99) | class MoCo_ResNet(MoCo):
    method _build_projector_and_predictor_mlps (line 100) | def _build_projector_and_predictor_mlps(self, dim, mlp_dim):
  class MoCo_ViT (line 112) | class MoCo_ViT(MoCo):
    method _build_projector_and_predictor_mlps (line 113) | def _build_projector_and_predictor_mlps(self, dim, mlp_dim):
  function concat_all_gather (line 127) | def concat_all_gather(tensor):

FILE: src/benchmark/transfer_classification/models/moco_v3/loader.py
  class TwoCropsTransform (line 14) | class TwoCropsTransform:
    method __init__ (line 17) | def __init__(self, base_transform1, base_transform2):
    method __call__ (line 21) | def __call__(self, x):
  class GaussianBlur (line 27) | class GaussianBlur(object):
    method __init__ (line 30) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 33) | def __call__(self, x):
  class Solarize (line 40) | class Solarize(object):
    method __call__ (line 43) | def __call__(self, x):
  class cvGaussianBlur (line 50) | class cvGaussianBlur(object):
    method __init__ (line 53) | def __init__(self, p=0.5, sigma=[.1, 2.]):
    method __call__ (line 57) | def __call__(self, x):

FILE: src/benchmark/transfer_classification/models/moco_v3/optimizer.py
  class LARS (line 10) | class LARS(torch.optim.Optimizer):
    method __init__ (line 14) | def __init__(self, params, lr=0, weight_decay=0, momentum=0.9, trust_c...
    method step (line 19) | def step(self):

FILE: src/benchmark/transfer_classification/models/moco_v3/vits.py
  class VisionTransformerMoCo (line 25) | class VisionTransformerMoCo(VisionTransformer):
    method __init__ (line 26) | def __init__(self, stop_grad_conv1=False, **kwargs):
    method build_2d_sincos_position_embedding (line 53) | def build_2d_sincos_position_embedding(self, temperature=10000.):
  class ConvStem (line 72) | class ConvStem(nn.Module):
    method __init__ (line 76) | def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=...
    method forward (line 104) | def forward(self, x):
  function vit_small (line 115) | def vit_small(**kwargs):
  function vit_base (line 122) | def vit_base(**kwargs):
  function vit_conv_small (line 129) | def vit_conv_small(**kwargs):
  function vit_conv_base (line 137) | def vit_conv_base(**kwargs):

FILE: src/benchmark/transfer_classification/models/rs_transforms_float32.py
  class RandomBrightness (line 7) | class RandomBrightness(object):
    method __init__ (line 10) | def __init__(self, brightness=0.4):
    method __call__ (line 13) | def __call__(self, sample):
  class RandomContrast (line 19) | class RandomContrast(object):
    method __init__ (line 22) | def __init__(self, contrast=0.4):
    method __call__ (line 25) | def __call__(self, sample):
  class ToGray (line 31) | class ToGray(object):
    method __init__ (line 32) | def __init__(self, out_channels):
    method __call__ (line 34) | def __call__(self,sample):
  class RandomChannelDrop (line 41) | class RandomChannelDrop(object):
    method __init__ (line 44) | def __init__(self, min_n_drop=1, max_n_drop=8):
    method __call__ (line 48) | def __call__(self, sample):

FILE: src/benchmark/transfer_classification/models/rs_transforms_uint8.py
  class RandomBrightness (line 7) | class RandomBrightness(object):
    method __init__ (line 10) | def __init__(self, brightness=0.4):
    method __call__ (line 13) | def __call__(self, sample):
  class RandomContrast (line 19) | class RandomContrast(object):
    method __init__ (line 22) | def __init__(self, contrast=0.4):
    method __call__ (line 25) | def __call__(self, sample):
  class ToGray (line 31) | class ToGray(object):
    method __init__ (line 32) | def __init__(self, out_channels):
    method __call__ (line 34) | def __call__(self,sample):
  class RandomChannelDrop (line 41) | class RandomChannelDrop(object):
    method __init__ (line 44) | def __init__(self, min_n_drop=1, max_n_drop=8):
    method __call__ (line 48) | def __call__(self, sample):
  class GaussianBlur (line 57) | class GaussianBlur(object):
    method __init__ (line 60) | def __init__(self, sigma=[.1, 2.]):
    method __call__ (line 63) | def __call__(self, x):
  class Solarize (line 70) | class Solarize(object):
    method __init__ (line 72) | def __init__(self, threshold=0.5):
    method __call__ (line 75) | def __call__(self, x):
  class RandomSensorDrop_S1S2 (line 82) | class RandomSensorDrop_S1S2(object):
    method __init__ (line 85) | def __init__(self):
    method __call__ (line 88) | def __call__(self, sample):
  class SensorDrop_S1S2 (line 98) | class SensorDrop_S1S2(object):
    method __init__ (line 99) | def __init__(self, sensor):
    method __call__ (line 101) | def __call__(self,sample):
  class RandomSensorDrop_RGBD (line 109) | class RandomSensorDrop_RGBD(object):
    method __init__ (line 112) | def __init__(self):
    method __call__ (line 115) | def __call__(self, sample):
  class SensorDrop_RGBD (line 125) | class SensorDrop_RGBD(object):
    method __init__ (line 126) | def __init__(self, sensor):
    method __call__ (line 128) | def __call__(self,sample):

FILE: src/download_data/convert_rgb.py
  function normalize (line 73) | def normalize(img,mean,std):
  function get_array (line 82) | def get_array(patch_id, mode, RGB=False, norm=False):

FILE: src/download_data/ssl4eo_downloader.py
  class UniformSampler (line 98) | class UniformSampler:
    method sample_point (line 99) | def sample_point(self) -> List[float]:
  class GaussianSampler (line 105) | class GaussianSampler:
    method __init__ (line 106) | def __init__(
    method sample_point (line 119) | def sample_point(self) -> List[float]:
    method get_world_cities (line 127) | def get_world_cities(download_root: str = "world_cities") -> List[Dict...
    method get_interest_points (line 143) | def get_interest_points(
    method km2deg (line 151) | def km2deg(kms: float, radius: float = 6371) -> float:
    method deg2km (line 155) | def deg2km(deg: float, radius: float = 6371) -> float:
  class BoundedUniformSampler (line 159) | class BoundedUniformSampler:
    method __init__ (line 160) | def __init__(self, boundaries: shape = None) -> None:
    method sample_point (line 166) | def sample_point(self) -> List[float]:
    method get_country_boundaries (line 177) | def get_country_boundaries(
  class OverlapError (line 188) | class OverlapError(Exception):
  function date2str (line 192) | def date2str(date: datetime) -> str:
  function get_period (line 196) | def get_period(date: datetime, days: int = 5) -> Tuple[str, str, str, str]:
  function maskS2clouds (line 212) | def maskS2clouds(args: Any, image: ee.Image) -> ee.Image:
  function get_collection (line 220) | def get_collection(
  function filter_collection (line 230) | def filter_collection(
  function center_crop (line 254) | def center_crop(
  function adjust_coords (line 264) | def adjust_coords(
  function get_properties (line 280) | def get_properties(image: ee.Image) -> Any:
  function get_patch (line 284) | def get_patch(
  function get_random_patches_match (line 329) | def get_random_patches_match(
  function get_random_patches_rtree (line 366) | def get_random_patches_rtree(
  function get_random_patches_grid (line 447) | def get_random_patches_grid(
  function save_geotiff (line 526) | def save_geotiff(
  function save_patch (line 550) | def save_patch(
  class Counter (line 567) | class Counter:
    method __init__ (line 568) | def __init__(self, start: int = 0) -> None:
    method update (line 572) | def update(self, delta: int = 1) -> int:
  function fix_random_seeds (line 578) | def fix_random_seeds(seed: int = 42) -> None:
  function worker (line 756) | def worker(idx: int) -> None:

FILE: src/download_data/ssl4eo_s12_downloader.py
  class GeoSampler (line 59) | class GeoSampler:
    method sample_point (line 61) | def sample_point(self):
  class UniformSampler (line 65) | class UniformSampler(GeoSampler):
    method sample_point (line 67) | def sample_point(self):
  class GaussianSampler (line 74) | class GaussianSampler(GeoSampler):
    method __init__ (line 76) | def __init__(self, interest_points=None, num_cities=1000, std=20):
    method sample_point (line 84) | def sample_point(self,idx):
    method get_world_cities (line 96) | def get_world_cities(download_root=os.path.expanduser('./world_cities/...
    method get_interest_points (line 110) | def get_interest_points(cities, size=10000):
    method km2deg (line 116) | def km2deg(kms, radius=6371):
    method deg2km (line 119) | def deg2km(deg, radius=6371):
  class BoundedUniformSampler (line 123) | class BoundedUniformSampler(GeoSampler):
    method __init__ (line 125) | def __init__(self, boundaries=None):
    method sample_point (line 131) | def sample_point(self):
    method get_country_boundaries (line 143) | def get_country_boundaries(download_root=os.path.expanduser('~/.cache/...
  class OverlapError (line 152) | class OverlapError(Exception):
  function date2str (line 156) | def date2str(date):
  function get_period (line 160) | def get_period(date, days=5):
  function maskS2clouds (line 168) | def maskS2clouds(image):
  function get_collection_s2a (line 179) | def get_collection_s2a(cloud_pct=20):
  function get_collection_s2c (line 185) | def get_collection_s2c(cloud_pct=20):
  function get_collection_s1 (line 191) | def get_collection_s1():
  function filter_collection (line 195) | def filter_collection(collection, coords, period=None):
  function filter_collection_s1 (line 208) | def filter_collection_s1(collection, coords, period=None):
  function center_crop (line 226) | def center_crop(img, out_size):
  function adjust_coords (line 234) | def adjust_coords(coords, old_size, new_size):
  function get_properties (line 245) | def get_properties(image):
  function get_patch_s1 (line 252) | def get_patch_s1(collection, coords, radius, bands=None, crop=None):
  function get_patch_s2 (line 286) | def get_patch_s2(collection, coords, radius, bands=None, crop=None):
  function get_random_patches_grid (line 324) | def get_random_patches_grid(idx, collections, bands, crops, sampler, dat...
  function get_random_patches_rtree (line 382) | def get_random_patches_rtree(idx, collections, bands, crops, sampler, da...
  function get_random_patches_match (line 433) | def get_random_patches_match(idx, collections, bands, crops, sampler, da...
  function save_geotiff (line 471) | def save_geotiff(img, coords, filename):
  function save_patch (line 491) | def save_patch(raster, coords, metadata, path, preview=False):
  class Counter (line 509) | class Counter:
    method __init__ (line 511) | def __init__(self, start=0):
    method update (line 515) | def update(self, delta=1):
  function fix_random_seeds (line 521) | def fix_random_seeds(seed=42):
  function worker (line 639) | def worker(idx):
Condensed preview — 319 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,461K chars).
[
  {
    "path": ".gitignore",
    "chars": 126,
    "preview": "**/.ipynb_checkpoints/*\r\n**/.vscode/*\r\n**/__pycache__/*\r\n**/srun_outputs/*\r\n**/checkpoints/*\r\n**/lightning_logs/\r\n**/res"
  },
  {
    "path": "LICENSE",
    "chars": 11324,
    "preview": "Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licens"
  },
  {
    "path": "README.md",
    "chars": 12402,
    "preview": "# SSL4EO-S12\nThe [SSL4EO-S12 dataset](https://arxiv.org/abs/2211.07044) is a large-scale multimodal multitemporal datase"
  },
  {
    "path": "data/50k_ids_random.csv",
    "chars": 327969,
    "preview": "2\n9\n13\n15\n22\n24\n34\n44\n48\n51\n55\n64\n70\n75\n84\n89\n92\n106\n111\n121\n123\n129\n132\n138\n140\n142\n147\n148\n149\n150\n156\n165\n168\n170\n171"
  },
  {
    "path": "data/void_ids.csv",
    "chars": 679,
    "preview": "124990\n124991\n124992\n124993\n124994\n124995\n124996\n124997\n124998\n124999\n125000\n125001\n125002\n125003\n125004\n125005\n125006\n1"
  },
  {
    "path": "src/benchmark/pretrain_data2vec/readme.md",
    "chars": 81,
    "preview": "Refer to https://github.com/facebookresearch/fairseq/tree/main/examples/data2vec."
  },
  {
    "path": "src/benchmark/pretrain_ssl/datasets/SSL4EO/ssl4eo_dataset.py",
    "chars": 8701,
    "preview": "import numpy as np\nimport rasterio\nimport torch\nimport os\nimport cv2\nimport csv\nimport pickle\nimport torch\nimport numpy "
  },
  {
    "path": "src/benchmark/pretrain_ssl/datasets/SSL4EO/ssl4eo_dataset_lmdb.py",
    "chars": 14420,
    "preview": "import pickle\nimport torch\nimport numpy as np\nfrom torch.utils.data import Dataset, DataLoader\nimport lmdb\nfrom tqdm imp"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/README.md",
    "chars": 6517,
    "preview": "# data2vec\n\ndata2vec is a framework for self-supervised representation learning for images, speech, and text as describe"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/README_Original.md",
    "chars": 12418,
    "preview": "# [BEiT: BERT Pre-Training of Image Transformers](https://arxiv.org/abs/2106.08254)\n\nOfficial PyTorch implementation and"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/dall_e/__init__.py",
    "chars": 577,
    "preview": "import io, requests\nimport torch\nimport torch.nn as nn\n\nfrom .encoder import Encoder\nfrom .decoder import Decoder\nfrom ."
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/dall_e/decoder.py",
    "chars": 3930,
    "preview": "import attr\nimport numpy as np\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom collections  im"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/dall_e/encoder.py",
    "chars": 3769,
    "preview": "import attr\nimport numpy as np\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom collections  im"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/dall_e/utils.py",
    "chars": 1771,
    "preview": "import attr\nimport math\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nlogit_laplace_eps: float = "
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/dataset_folder.py",
    "chars": 10048,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/datasets.py",
    "chars": 7744,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/engine_for_cyclical.py",
    "chars": 9001,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/engine_for_cyclical_joint.py",
    "chars": 6757,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/engine_for_finetuning.py",
    "chars": 9308,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/engine_for_pretraining.py",
    "chars": 4956,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/get_started_for_image_classification.md",
    "chars": 5651,
    "preview": "# Fine-tuning BEiT on ImageNet-1k (image classification)\n\n## Setup\n\n1. [Setup environment](README.md#setup).\n2. Download"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/masking_generator.py",
    "chars": 3664,
    "preview": "\"\"\"\nOriginally inspired by impl at https://github.com/zhunzhong07/Random-Erasing, Apache 2.0\nCopyright Zhun Zhong & Lian"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/modeling_cyclical.py",
    "chars": 10171,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/modeling_cyclical_joint.py",
    "chars": 8084,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/modeling_discrete_vae.py",
    "chars": 7531,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/modeling_finetune.py",
    "chars": 19298,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/modeling_pretrain.py",
    "chars": 6746,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/models.py",
    "chars": 18627,
    "preview": "\"\"\" BEIT: BERT Pre-Training of Image Transformers (https://arxiv.org/abs/2106.08254)\nModel from official source: https:/"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/optim_factory.py",
    "chars": 7032,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/requirements.txt",
    "chars": 130,
    "preview": "torch==1.7.1\ntorchvision==0.8.2\ntimm==0.3.2\nPillow\nblobfile\nmypy\nnumpy\npytest\nrequests\neinops\ntensorboardX\ndeepspeed==0."
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/run_beit_pretraining.py",
    "chars": 12795,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/run_class_finetuning.py",
    "chars": 31719,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/run_cyclical.py",
    "chars": 23577,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/run_cyclical_joint.py",
    "chars": 21342,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/README.md",
    "chars": 2694,
    "preview": "# ADE20k Semantic segmentation with BEiT\n\n## Getting started \n\n1. Install the [mmsegmentation](https://github.com/open-m"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/backbone/beit.py",
    "chars": 19195,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/_base_/datasets/ade20k.py",
    "chars": 1844,
    "preview": "# dataset settings\ndataset_type = 'ADE20KDataset'\ndata_root = 'data/ade/ADEChallengeData2016'\nimg_norm_cfg = dict(\n    m"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/_base_/datasets/ade20k_640x640.py",
    "chars": 1844,
    "preview": "# dataset settings\ndataset_type = 'ADE20KDataset'\ndata_root = 'data/ade/ADEChallengeData2016'\nimg_norm_cfg = dict(\n    m"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/_base_/default_runtime.py",
    "chars": 321,
    "preview": "# yapf:disable\nlog_config = dict(\n    interval=50,\n    hooks=[\n        dict(type='TextLoggerHook', by_epoch=False),\n    "
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/_base_/models/upernet_beit.py",
    "chars": 1834,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/_base_/schedules/schedule_160k.py",
    "chars": 382,
    "preview": "# optimizer\noptimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\noptimizer_config = dict()\n# learnin"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/_base_/schedules/schedule_320k.py",
    "chars": 382,
    "preview": "# optimizer\noptimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\noptimizer_config = dict()\n# learnin"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_base_12_512_slide_160k_ade20k.py",
    "chars": 2712,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_base_12_512_slide_160k_ade20k_ms.py",
    "chars": 3325,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_base_12_640_slide_160k_ade20k.py",
    "chars": 2720,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_base_12_640_slide_160k_ade20k_ms.py",
    "chars": 3511,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_large_24_512_slide_160k_ade20k.py",
    "chars": 2724,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_large_24_512_slide_160k_ade20k_ms.py",
    "chars": 3585,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_large_24_640_slide_160k_ade20k.py",
    "chars": 2944,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_large_24_640_slide_160k_ade20k_ms.py",
    "chars": 3591,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/__init__.py",
    "chars": 397,
    "preview": "# -*- coding: utf-8 -*-\n\nfrom .checkpoint import load_checkpoint\nfrom .layer_decay_optimizer_constructor import LayerDec"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/__init__.py",
    "chars": 206,
    "preview": "# Copyright (c) Open-MMLab. All rights reserved.\nfrom .checkpoint import save_checkpoint\nfrom .apex_iter_based_runner im"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/apex_iter_based_runner.py",
    "chars": 3884,
    "preview": "# Copyright (c) Open-MMLab. All rights reserved.\nimport os.path as osp\nimport platform\nimport shutil\n\nimport torch\nfrom "
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/checkpoint.py",
    "chars": 2883,
    "preview": "# Copyright (c) Open-MMLab. All rights reserved.\nimport os.path as osp\nimport time\nfrom tempfile import TemporaryDirecto"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/apex_runner/optimizer.py",
    "chars": 1158,
    "preview": "from mmcv.runner import OptimizerHook, HOOKS\ntry:\n    import apex\nexcept:\n    print('apex is not installed')\n\n\n@HOOKS.re"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/checkpoint.py",
    "chars": 24160,
    "preview": "# Copyright (c) Open-MMLab. All rights reserved.\nimport io\nimport os\nimport os.path as osp\nimport pkgutil\nimport time\nim"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/layer_decay_optimizer_constructor.py",
    "chars": 3653,
    "preview": "import json\nfrom mmcv.runner import OPTIMIZER_BUILDERS, DefaultOptimizerConstructor\nfrom mmcv.runner import get_dist_inf"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/resize_transform.py",
    "chars": 9164,
    "preview": "import mmcv\nimport numpy as np\n\nfrom mmseg.datasets.builder import PIPELINES\n\n\n@PIPELINES.register_module()\nclass SETR_R"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/mmcv_custom/train_api.py",
    "chars": 4416,
    "preview": "import random\nimport warnings\n\nimport numpy as np\nimport torch\nfrom mmcv.parallel import MMDataParallel, MMDistributedDa"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/tools/dist_test.sh",
    "chars": 271,
    "preview": "#!/usr/bin/env bash\n\nCONFIG=$1\nCHECKPOINT=$2\nGPUS=$3\nPORT=${PORT:-29500}\nPYTHONPATH=\"$(dirname $0)/..\":$PYTHONPATH \\\npyt"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/tools/dist_train.sh",
    "chars": 247,
    "preview": "#!/usr/bin/env bash\n\nCONFIG=$1\nGPUS=$2\nPORT=${PORT:-29500}\n\nPYTHONPATH=\"$(dirname $0)/..\":$PYTHONPATH \\\npython -m torch."
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/tools/test.py",
    "chars": 5467,
    "preview": "import argparse\nimport os\n\nimport mmcv\nimport torch\nfrom mmcv.parallel import MMDataParallel, MMDistributedDataParallel\n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/semantic_segmentation/tools/train.py",
    "chars": 5775,
    "preview": "import argparse\nimport copy\nimport os\nimport os.path as osp\nimport time\n\nimport mmcv\nimport mmcv_custom\nimport torch\nfro"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/transforms.py",
    "chars": 6781,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/data2vec/utils.py",
    "chars": 21527,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/dino/utils.py",
    "chars": 28719,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# \n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/dino/vision_transformer.py",
    "chars": 11162,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# \n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/engine_finetune.py",
    "chars": 4778,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/engine_finetune_BE.py",
    "chars": 5614,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/engine_finetune_EU.py",
    "chars": 5217,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/engine_finetune_SS.py",
    "chars": 5287,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/engine_pretrain.py",
    "chars": 3047,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/main_finetune.py",
    "chars": 15633,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/main_linprobe.py",
    "chars": 13333,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/main_pretrain.py",
    "chars": 11054,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/models_mae.py",
    "chars": 10199,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/models_vit.py",
    "chars": 2615,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/submitit_finetune.py",
    "chars": 4350,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/submitit_linprobe.py",
    "chars": 4354,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/submitit_pretrain.py",
    "chars": 4327,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/util/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/util/crop.py",
    "chars": 1361,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/util/datasets.py",
    "chars": 1902,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/util/lars.py",
    "chars": 1851,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/util/lr_decay.py",
    "chars": 2461,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/util/lr_sched.py",
    "chars": 802,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/util/misc.py",
    "chars": 11587,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/mae/util/pos_embed.py",
    "chars": 4047,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco/builder.py",
    "chars": 7573,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\nimport torch\nimport torch.nn as nn\n\n\nclass MoCo(n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco/loader.py",
    "chars": 941,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# All rights reserved.\n\n# This source code is licensed under the lice"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/README.md",
    "chars": 5596,
    "preview": "## MoCo: Momentum Contrast for Unsupervised Visual Representation Learning\n\n<p align=\"center\">\n  <img src=\"https://user-"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/__init__.py",
    "chars": 71,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/builder.py",
    "chars": 6593,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\nimport torch\nimport torch.nn as nn\n\n\nclass MoCo(n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/detection/README.md",
    "chars": 1898,
    "preview": "\n## MoCo: Transferring to Detection\n\nThe `train_net.py` script reproduces the object detection experiments on Pascal VOC"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/detection/configs/Base-RCNN-C4-BN.yaml",
    "chars": 298,
    "preview": "MODEL:\n  META_ARCHITECTURE: \"GeneralizedRCNN\"\n  RPN:\n    PRE_NMS_TOPK_TEST: 6000\n    POST_NMS_TOPK_TEST: 1000\n  ROI_HEAD"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/detection/configs/coco_R_50_C4_2x.yaml",
    "chars": 310,
    "preview": "_BASE_: \"Base-RCNN-C4-BN.yaml\"\nMODEL:\n  MASK_ON: True\n  WEIGHTS: \"detectron2://ImageNetPretrained/MSRA/R-50.pkl\"\nINPUT:\n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/detection/configs/coco_R_50_C4_2x_moco.yaml",
    "chars": 207,
    "preview": "_BASE_: \"coco_R_50_C4_2x.yaml\"\nMODEL:\n  PIXEL_MEAN: [123.675, 116.280, 103.530]\n  PIXEL_STD: [58.395, 57.120, 57.375]\n  "
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/detection/configs/pascal_voc_R_50_C4_24k.yaml",
    "chars": 408,
    "preview": "_BASE_: \"Base-RCNN-C4-BN.yaml\"\nMODEL:\n  MASK_ON: False\n  WEIGHTS: \"detectron2://ImageNetPretrained/MSRA/R-50.pkl\"\n  ROI_"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/detection/configs/pascal_voc_R_50_C4_24k_moco.yaml",
    "chars": 214,
    "preview": "_BASE_: \"pascal_voc_R_50_C4_24k.yaml\"\nMODEL:\n  PIXEL_MEAN: [123.675, 116.280, 103.530]\n  PIXEL_STD: [58.395, 57.120, 57."
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/detection/convert-pretrain-to-detectron2.py",
    "chars": 1021,
    "preview": "#!/usr/bin/env python\n# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\n\nimport pickle as pkl\nimpor"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/detection/train_net.py",
    "chars": 2250,
    "preview": "#!/usr/bin/env python\n# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\n\nimport os\n\nfrom detectron2"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/loader.py",
    "chars": 941,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# All rights reserved.\n\n# This source code is licensed under the lice"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v2/main_lincls.py",
    "chars": 19571,
    "preview": "#!/usr/bin/env python\n# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\nimport argparse\nimport buil"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v3/__init__.py",
    "chars": 71,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v3/builder.py",
    "chars": 4926,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# All rights reserved.\n\n# This source code is licensed under the lice"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v3/loader.py",
    "chars": 1811,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# All rights reserved.\n\n# This source code is licensed under the lice"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v3/optimizer.py",
    "chars": 1639,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# All rights reserved.\n\n# This source code is licensed under the lice"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/moco_v3/vits.py",
    "chars": 5882,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# All rights reserved.\n\n# This source code is licensed under the lice"
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/rs_transforms_float32.py",
    "chars": 1535,
    "preview": "import numpy as np\nimport torch\nimport random\n\n\n\nclass RandomBrightness(object):\n    \"\"\" Random Brightness \"\"\"\n    \n    "
  },
  {
    "path": "src/benchmark/pretrain_ssl/models/rs_transforms_uint8.py",
    "chars": 3604,
    "preview": "import numpy as np\nimport torch\nimport random\nimport cv2\n\n\nclass RandomBrightness(object):\n    \"\"\" Random Brightness \"\"\""
  },
  {
    "path": "src/benchmark/pretrain_ssl/pretrain_data2vec.py",
    "chars": 24271,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/pretrain_ssl/pretrain_dino_s2c.py",
    "chars": 30828,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# \n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "src/benchmark/pretrain_ssl/pretrain_mae_s2c.py",
    "chars": 11271,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/pretrain_ssl/pretrain_moco_v2_s2c.py",
    "chars": 20753,
    "preview": "#!/usr/bin/env python\n# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\nimport argparse\nimport buil"
  },
  {
    "path": "src/benchmark/pretrain_ssl/pretrain_moco_v2_seco_ms.py",
    "chars": 23424,
    "preview": "#!/usr/bin/env python\n# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\nimport argparse\nimport buil"
  },
  {
    "path": "src/benchmark/pretrain_ssl/pretrain_moco_v2_sen12ms_ms.py",
    "chars": 22701,
    "preview": "#!/usr/bin/env python\n# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved\nimport argparse\nimport buil"
  },
  {
    "path": "src/benchmark/pretrain_ssl/pretrain_moco_v3_s2c.py",
    "chars": 22695,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) Facebook, Inc. and its affiliates.\n# All rights reserved.\n\n# This source code is "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/srun_train_SEN12MS_moco_rn50_rgb.sh",
    "chars": 1481,
    "preview": "#!/usr/bin/env bash\n\n# slurm job configuration\n#SBATCH --nodes=1\n#SBATCH --ntasks=4\n#SBATCH --ntasks-per-node=4\n#SBATCH "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/srun_train_SEN12MS_moco_rn50_s2c.sh",
    "chars": 1483,
    "preview": "#!/usr/bin/env bash\n\n# slurm job configuration\n#SBATCH --nodes=1\n#SBATCH --ntasks=4\n#SBATCH --ntasks-per-node=4\n#SBATCH "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/srun_train_SeCo_moco_rn50_s2a.sh",
    "chars": 1465,
    "preview": "#!/usr/bin/env bash\n\n# slurm job configuration\n#SBATCH --nodes=1\n#SBATCH --ntasks=4\n#SBATCH --ntasks-per-node=4\n#SBATCH "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/srun_train_dino_rn50_s2c.sh",
    "chars": 1525,
    "preview": "#!/usr/bin/env bash\n\n# slurm job configuration\n#SBATCH --nodes=1\n#SBATCH --ntasks=4\n#SBATCH --ntasks-per-node=4\n#SBATCH "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/srun_train_dino_vits16_s2c.sh",
    "chars": 1296,
    "preview": "#!/usr/bin/env bash\n\n# slurm job configuration\n#SBATCH --nodes=1\n#SBATCH --ntasks=4\n#SBATCH --ntasks-per-node=4\n#SBATCH "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/srun_train_mae_vits16_s2c.sh",
    "chars": 1635,
    "preview": "#!/usr/bin/env bash\n\n# slurm job configuration\n#SBATCH --nodes=1\n#SBATCH --ntasks=4\n#SBATCH --ntasks-per-node=4\n#SBATCH "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/srun_train_moco_rn50_s2c.sh",
    "chars": 1410,
    "preview": "#!/usr/bin/env bash\n\n# slurm job configuration\n#SBATCH --nodes=1\n#SBATCH --ntasks=4\n#SBATCH --ntasks-per-node=4\n#SBATCH "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/srun_train_moco_vits16_s2c.sh",
    "chars": 1473,
    "preview": "#!/usr/bin/env bash\n\n# slurm job configuration\n#SBATCH --nodes=1\n#SBATCH --ntasks=4\n#SBATCH --ntasks-per-node=4\n#SBATCH "
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/submit_pretrain_data2vec.sh",
    "chars": 229,
    "preview": "#!/bin/bash -x\n#SBATCH --account=hai_ssl4eo\n#SBATCH --nodes=1\n#SBATCH --output=mpi-out.%j\n#SBATCH --error=mpi-err.%j\n#SB"
  },
  {
    "path": "src/benchmark/pretrain_ssl/scripts/pretrain/train_data2vec_vits16_s2c.sh",
    "chars": 1137,
    "preview": "OMP_NUM_THREADS=1 python -m torch.distributed.launch --nproc_per_node=4 pretrain_data2vec.py \\\n        --data_path '/p/s"
  },
  {
    "path": "src/benchmark/transfer_change_detection/datasets/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/benchmark/transfer_change_detection/datasets/oscd_datamodule.py",
    "chars": 3165,
    "preview": "import random\n\nfrom torch.utils.data import DataLoader\nfrom torchvision.transforms import functional as TF\nfrom pytorch_"
  },
  {
    "path": "src/benchmark/transfer_change_detection/datasets/oscd_dataset.py",
    "chars": 4384,
    "preview": "from pathlib import Path\nfrom itertools import product\n\nfrom torch.utils.data import Dataset\nimport rasterio\nimport nump"
  },
  {
    "path": "src/benchmark/transfer_change_detection/main_oscd.py",
    "chars": 9200,
    "preview": "from pathlib import Path\n# from copy import deepcopy\nfrom argparse import ArgumentParser\n\nimport torch\nfrom torch.nn imp"
  },
  {
    "path": "src/benchmark/transfer_change_detection/models/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/benchmark/transfer_change_detection/models/segmentation.py",
    "chars": 10639,
    "preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\n\ndef get_segmentation_model(backbone, feature_indice"
  },
  {
    "path": "src/benchmark/transfer_change_detection/readme.md",
    "chars": 56,
    "preview": "Refer to https://github.com/ElementAI/seasonal-contrast."
  },
  {
    "path": "src/benchmark/transfer_change_detection/test.sh",
    "chars": 775,
    "preview": "python validate_oscd.py \\\n--data_dir /p/project/hai_ssl4eo/wang_yi/data/oscd \\\n--resnet_type 50 \\\n--init_type random \\\n-"
  },
  {
    "path": "src/benchmark/transfer_change_detection/train.sh",
    "chars": 705,
    "preview": "python main_oscd.py \\\n--data_dir /p/project/hai_ssl4eo/wang_yi/data/oscd \\\n--resnet_type 50 \\\n--init_type random \\\n--n_c"
  },
  {
    "path": "src/benchmark/transfer_change_detection/utils/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "src/benchmark/transfer_change_detection/utils/data.py",
    "chars": 3188,
    "preview": "import pickle\n\nimport numpy as np\nfrom PIL import Image\nfrom torch.utils.data import Dataset, DataLoader\nimport lmdb\nfro"
  },
  {
    "path": "src/benchmark/transfer_change_detection/utils/transforms.py",
    "chars": 1076,
    "preview": "\nclass Map:\n\n    def __init__(self, transform):\n        self.transform = transform\n\n    def __call__(self, inputs):\n    "
  },
  {
    "path": "src/benchmark/transfer_change_detection/validate_oscd.py",
    "chars": 8853,
    "preview": "from pathlib import Path\n# from copy import deepcopy\nfrom argparse import ArgumentParser\n\nimport torch\nfrom torch.nn imp"
  },
  {
    "path": "src/benchmark/transfer_classification/datasets/BigEarthNet/bigearthnet_dataset_seco.py",
    "chars": 10091,
    "preview": "'''\nread data from geotiff files.\nmodified from SeCo, to be final checked.\n'''\n\nimport json\nfrom pathlib import Path\n\nim"
  },
  {
    "path": "src/benchmark/transfer_classification/datasets/BigEarthNet/bigearthnet_dataset_seco_lmdb_s2_uint8.py",
    "chars": 6094,
    "preview": "import pickle\n\nimport numpy as np\nfrom PIL import Image\nfrom torch.utils.data import Dataset, DataLoader\nimport lmdb\nfro"
  },
  {
    "path": "src/benchmark/transfer_classification/datasets/EuroSat/eurosat_dataset.py",
    "chars": 5834,
    "preview": "import numpy as np\nimport torch\nfrom torch.utils.data import Dataset, DataLoader, Subset\nfrom cvtorchvision import cvtra"
  },
  {
    "path": "src/benchmark/transfer_classification/datasets/So2Sat/so2sat_lcz42_dataset.py",
    "chars": 7492,
    "preview": "'''\n1st band: B2\n2nd band: B3\n3rd band: B4\n4th band: B5\n5th band: B6\n6th band: B7\n7th band: B8\n8th band: B8A\n9th band: B"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_BE_data2vec.py",
    "chars": 33782,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_BE_dino.py",
    "chars": 16287,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# \n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_BE_mae.py",
    "chars": 15189,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_BE_moco.py",
    "chars": 17134,
    "preview": "\"\"\"\r\nsupervised training of BigEarthNet (all bands) with resnet18/50\r\n\r\nTODO:\r\n  -- optimize and reduce RAM usage\r\n  -- "
  },
  {
    "path": "src/benchmark/transfer_classification/linear_BE_moco_v3.py",
    "chars": 24861,
    "preview": "#!/usr/bin/env python\n\n# Copyright (c) Facebook, Inc. and its affiliates.\n# All rights reserved.\n\n# This source code is "
  },
  {
    "path": "src/benchmark/transfer_classification/linear_BE_sup.py",
    "chars": 17130,
    "preview": "\"\"\"\r\nsupervised training of BigEarthNet (all bands) with resnet18/50\r\n\r\nTODO:\r\n  -- optimize and reduce RAM usage\r\n  -- "
  },
  {
    "path": "src/benchmark/transfer_classification/linear_EU_data2vec.py",
    "chars": 33706,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_EU_dino.py",
    "chars": 15820,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# \n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_EU_mae.py",
    "chars": 14374,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_EU_moco.py",
    "chars": 14362,
    "preview": "\n\nimport torch\nfrom PIL import Image\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision import models\n\n##"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_EU_moco_v3.py",
    "chars": 14225,
    "preview": "\n\nimport torch\nfrom PIL import Image\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision import models\n\n##"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_SS_data2vec.py",
    "chars": 33593,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_SS_dino.py",
    "chars": 15631,
    "preview": "# Copyright (c) Facebook, Inc. and its affiliates.\n# \n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_SS_mae.py",
    "chars": 14060,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n# All rights reserved.\n\n# This source code is licensed under the li"
  },
  {
    "path": "src/benchmark/transfer_classification/linear_SS_moco.py",
    "chars": 14071,
    "preview": "\nimport torch\nfrom PIL import Image\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision import models\n\n## "
  },
  {
    "path": "src/benchmark/transfer_classification/linear_SS_moco_v3.py",
    "chars": 13898,
    "preview": "\nimport torch\nfrom PIL import Image\nfrom torch.utils.data import Dataset, DataLoader\nfrom torchvision import models\n\n## "
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/README.md",
    "chars": 6517,
    "preview": "# data2vec\n\ndata2vec is a framework for self-supervised representation learning for images, speech, and text as describe"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/README_Original.md",
    "chars": 12418,
    "preview": "# [BEiT: BERT Pre-Training of Image Transformers](https://arxiv.org/abs/2106.08254)\n\nOfficial PyTorch implementation and"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/dall_e/__init__.py",
    "chars": 577,
    "preview": "import io, requests\nimport torch\nimport torch.nn as nn\n\nfrom .encoder import Encoder\nfrom .decoder import Decoder\nfrom ."
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/dall_e/decoder.py",
    "chars": 3930,
    "preview": "import attr\nimport numpy as np\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom collections  im"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/dall_e/encoder.py",
    "chars": 3769,
    "preview": "import attr\nimport numpy as np\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom collections  im"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/dall_e/utils.py",
    "chars": 1771,
    "preview": "import attr\nimport math\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nlogit_laplace_eps: float = "
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/dataset_folder.py",
    "chars": 10048,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/datasets.py",
    "chars": 7744,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/engine_for_cyclical.py",
    "chars": 9001,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/engine_for_cyclical_joint.py",
    "chars": 6757,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/engine_for_finetuning.py",
    "chars": 9308,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/engine_for_pretraining.py",
    "chars": 4956,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/get_started_for_image_classification.md",
    "chars": 5651,
    "preview": "# Fine-tuning BEiT on ImageNet-1k (image classification)\n\n## Setup\n\n1. [Setup environment](README.md#setup).\n2. Download"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/masking_generator.py",
    "chars": 3664,
    "preview": "\"\"\"\nOriginally inspired by impl at https://github.com/zhunzhong07/Random-Erasing, Apache 2.0\nCopyright Zhun Zhong & Lian"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/modeling_cyclical.py",
    "chars": 10171,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/modeling_cyclical_joint.py",
    "chars": 8084,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/modeling_discrete_vae.py",
    "chars": 7531,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/modeling_finetune.py",
    "chars": 19298,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/modeling_pretrain.py",
    "chars": 6746,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/models.py",
    "chars": 18627,
    "preview": "\"\"\" BEIT: BERT Pre-Training of Image Transformers (https://arxiv.org/abs/2106.08254)\nModel from official source: https:/"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/optim_factory.py",
    "chars": 7032,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/requirements.txt",
    "chars": 130,
    "preview": "torch==1.7.1\ntorchvision==0.8.2\ntimm==0.3.2\nPillow\nblobfile\nmypy\nnumpy\npytest\nrequests\neinops\ntensorboardX\ndeepspeed==0."
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/run_beit_pretraining.py",
    "chars": 12795,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/run_class_finetuning.py",
    "chars": 31719,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/run_cyclical.py",
    "chars": 23577,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/run_cyclical_joint.py",
    "chars": 21342,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/README.md",
    "chars": 2694,
    "preview": "# ADE20k Semantic segmentation with BEiT\n\n## Getting started \n\n1. Install the [mmsegmentation](https://github.com/open-m"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/backbone/beit.py",
    "chars": 19195,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/_base_/datasets/ade20k.py",
    "chars": 1844,
    "preview": "# dataset settings\ndataset_type = 'ADE20KDataset'\ndata_root = 'data/ade/ADEChallengeData2016'\nimg_norm_cfg = dict(\n    m"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/_base_/datasets/ade20k_640x640.py",
    "chars": 1844,
    "preview": "# dataset settings\ndataset_type = 'ADE20KDataset'\ndata_root = 'data/ade/ADEChallengeData2016'\nimg_norm_cfg = dict(\n    m"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/_base_/default_runtime.py",
    "chars": 321,
    "preview": "# yapf:disable\nlog_config = dict(\n    interval=50,\n    hooks=[\n        dict(type='TextLoggerHook', by_epoch=False),\n    "
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/_base_/models/upernet_beit.py",
    "chars": 1834,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/_base_/schedules/schedule_160k.py",
    "chars": 382,
    "preview": "# optimizer\noptimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\noptimizer_config = dict()\n# learnin"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/_base_/schedules/schedule_320k.py",
    "chars": 382,
    "preview": "# optimizer\noptimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0005)\noptimizer_config = dict()\n# learnin"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_base_12_512_slide_160k_ade20k.py",
    "chars": 2712,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_base_12_512_slide_160k_ade20k_ms.py",
    "chars": 3325,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_base_12_640_slide_160k_ade20k.py",
    "chars": 2720,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_base_12_640_slide_160k_ade20k_ms.py",
    "chars": 3511,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_large_24_512_slide_160k_ade20k.py",
    "chars": 2724,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  },
  {
    "path": "src/benchmark/transfer_classification/models/data2vec/semantic_segmentation/configs/beit/upernet/upernet_beit_large_24_512_slide_160k_ade20k_ms.py",
    "chars": 3585,
    "preview": "# --------------------------------------------------------\n# BEIT: BERT Pre-Training of Image Transformers (https://arxi"
  }
]

// ... and 119 more files (download for full content)

About this extraction

This page contains the full source code of the zhu-xlab/SSL4EO-S12 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 319 files (4.1 MB), approximately 1.1M tokens, and a symbol index with 1795 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!